- Zasób: HashList
- RiceDeltaEncoded32Bit,
- RiceDeltaEncoded64Bit,
- RiceDeltaEncoded128Bit,
- RiceDeltaEncoded256Bit,
- HashListMetadata
- ThreatType
- LikelySafeType
- HashLength
- Metody
Zasób: HashList
Lista haszy identyfikowanych przez jej nazwę.
Zapis JSON |
---|
{ "name": string, "version": string, "partialUpdate": boolean, "compressedRemovals": { object ( |
Pola | |
---|---|
name |
Nazwa listy haszowej. Pamiętaj, że globalna pamięć podręczna jest tylko listą skrótów i tutaj można się do niej odwoływać. |
version |
Wersja listy haszowej. Klient NIE MOŻE modyfikować tych bajtów. Ciąg zakodowany w formacie base64. |
partialUpdate |
Jeśli ma wartość prawda, jest to częściowe różnice obejmujące zmiany i usunięcia na podstawie tego, co klient już miał. Jeśli ma wartość false (fałsz), to jest pełna lista skrótów. W przypadku wartości false (fałsz) klient MUSI usunąć każdą lokalnie przechowywaną wersję tej listy haszu. Oznacza to, że wersja posiadana przez klienta jest poważnie nieaktualna lub że dane klienta są uszkodzone. Pole Jeśli zasada ma wartość prawda, klient MUSI zastosować przyrostową aktualizację poprzez zastosowanie najpierw usunięć, a następnie uzupełnień. |
compressedRemovals |
Wersja indeksów usuwania zakodowana w formacie Rice-delta. Ponieważ każda lista skrótów ma mniej niż 2^32 wpisy, indeksy są zakodowane i traktowane jako 32-bitowe liczby całkowite. |
minimumWaitDuration |
Klienci powinni czekać co najmniej tak długo na ponowne pobranie listy haszowej. Jeśli ta zasada jest pominięta lub wynosi zero, klienty POWINIEN pobrać natychmiast, ponieważ wskazują, że serwer ma dodatkową aktualizację do wysłania do klienta, ale nie było to możliwe ze względu na ograniczenia określone przez klienta. Czas trwania w sekundach składający się z maksymalnie 9 cyfr po przecinku, kończący się cyfrą „ |
metadata |
Metadane dotyczące listy haszowej. Ta wartość nie jest wypełniana przez metodę |
Pole sumy compressed_additions . Wersja dodatków zakodowana w formacie Rice-delta. Długości prefiksów skrótu dodawanych elementów są jednakowe we wszystkich elementach na liście. Jest to wartość desired_hash_length wysłana przez klienta lub wartość wybrana przez serwer, jeśli klient pominął to pole. compressed_additions może mieć tylko jedną z tych wartości: |
|
additionsFourBytes |
4-bajtowe pliki dodane. |
additionsEightBytes |
Dodatki 8-bajtowe. |
additionsSixteenBytes |
Dodatki 16-bajtowe. |
additionsThirtyTwoBytes |
Dodatki 32-bajtowe. |
Pole sumy checksum . To jest suma kontrolna posortowanej listy wszystkich haszów znajdujących się w bazie danych po zastosowaniu dostarczonej aktualizacji. To jest „oneof” pozwalające na stosowanie wielu algorytmów haszujących. Serwer może też pominąć to pole (w przypadku braku aktualizacji), by wskazać, że klient powinien użyć istniejącej sumy kontrolnej. checksum może mieć tylko jedną z tych wartości: |
|
sha256Checksum |
Posortowana lista wszystkich haszów, ponownie zahaszowana za pomocą algorytmu SHA256. Ciąg zakodowany w formacie base64. |
32-bitowy kod ryżowy
Dane zakodowane przez Rice-Golomb. Używana w przypadku haszy lub indeksów usunięć. Każdy hasz lub indeks ma tutaj taką samą długość, która wynosi dokładnie 32 bity.
Ogólnie rzecz biorąc, jeśli posortujemy wszystkie wpisy leksykograficznie, okaże się, że bity wyższego rzędu nie zmieniają się tak często, jak bity niższego rzędu. Oznacza to, że jeśli weźmiemy też pod uwagę sąsiednią różnicę między wpisami, istnieje duże prawdopodobieństwo, że bity wyższego rzędu będą miały zerowe prawdopodobieństwo. Wykorzystuje to wysokie prawdopodobieństwo zera przez wybór określonej liczby bitów. dla wszystkich bitów o większym znaczeniu prawdopodobnie będzie zerowa wartość, dlatego używamy kodowania jednoargumentowego. Zobacz pole riceParameter
.
Uwaga historyczna: w wersji 4 tego interfejsu API po raz pierwszy użyto kodowania Rice-delta. W wersji 5 wprowadziliśmy 2 ważne ulepszenia: po pierwsze, dostępne jest kodowanie Rice-delta z prefiksami skrótu dłuższymi niż 4 bajty. po drugie, zakodowane dane są teraz traktowane jako big-endian, co pozwala uniknąć kosztownego sortowania.
Zapis JSON |
---|
{ "firstValue": integer, "riceParameter": integer, "entriesCount": integer, "encodedData": string } |
Pola | |
---|---|
firstValue |
Pierwszy wpis w kodowanych danych (hasze lub indeksy) lub wartość tego wpisu, jeśli zakodowano tylko pojedynczy prefiks lub indeks skrótu. Jeśli to pole jest puste, wartość wynosi zero. |
riceParameter |
Parametr Golomb-Rice. Ten parametr musi mieścić się w przedziale od 3 do 30 włącznie. |
entriesCount |
Liczba wpisów zakodowanych delta w zakodowanych danych. Jeśli zakodowana została tylko jedna liczba całkowita, będzie ona wynosić 0, a pojedyncza wartość zostanie zapisana w polu |
encodedData |
Zakodowane delta z kodera Golomb-Rice. Ciąg zakodowany w formacie base64. |
DeltaEncoded64-bitowe
Element taki sam jak RiceDeltaEncoded32Bit
, ale ten koduje liczby 64-bitowe.
Zapis JSON |
---|
{ "firstValue": string, "riceParameter": integer, "entriesCount": integer, "encodedData": string } |
Pola | |
---|---|
firstValue |
Pierwszy wpis w kodowanych danych (hasze) lub wartość tego wpisu, jeśli zakodowano tylko pojedynczy prefiks skrótu. Jeśli to pole jest puste, wartość wynosi zero. |
riceParameter |
Parametr Golomb-Rice. Ten parametr musi mieścić się w przedziale od 35 do 62 włącznie. |
entriesCount |
Liczba wpisów zakodowanych delta w zakodowanych danych. Jeśli zakodowana została tylko jedna liczba całkowita, będzie ona wynosić 0, a pojedyncza wartość zostanie zapisana w polu |
encodedData |
Zakodowane delta z kodera Golomb-Rice. Ciąg zakodowany w formacie base64. |
Kodowanie ryżowego 128-bitowego
Tak samo jak RiceDeltaEncoded32Bit
, ale ten koduje liczby 128-bitowe.
Zapis JSON |
---|
{ "firstValueHi": string, "firstValueLo": string, "riceParameter": integer, "entriesCount": integer, "encodedData": string } |
Pola | |
---|---|
firstValueHi |
Górne 64 bity pierwszego wpisu w zakodowanych danych (hasze). Jeśli to pole jest puste, górne 64 bity mają wartość zero. |
firstValueLo |
Dolne 64 bity pierwszego wpisu w zakodowanych danych (hasze). Jeśli to pole jest puste, dolne 64 bity mają wartość zero. |
riceParameter |
Parametr Golomb-Rice. Ten parametr musi mieścić się w zakresie od 99 do 126 włącznie. |
entriesCount |
Liczba wpisów zakodowanych delta w zakodowanych danych. Jeśli zakodowana została tylko jedna liczba całkowita, będzie ona wynosić 0, a pojedyncza wartość zostanie zapisana w polu |
encodedData |
Zakodowane delta z kodera Golomb-Rice. Ciąg zakodowany w formacie base64. |
DeltaEncoded 256-bitowego ryce
Element taki sam jak RiceDeltaEncoded32Bit
, ale ten koduje liczby 256-bitowe.
Zapis JSON |
---|
{ "firstValueFirstPart": string, "firstValueSecondPart": string, "firstValueThirdPart": string, "firstValueFourthPart": string, "riceParameter": integer, "entriesCount": integer, "encodedData": string } |
Pola | |
---|---|
firstValueFirstPart |
Pierwsze 64 bity pierwszego wpisu w zakodowanych danych (hasze). Jeśli to pole jest puste, pierwsze 64 bity mają wartość zero. |
firstValueSecondPart |
Od 65 do 128 bitów pierwszego wpisu w zakodowanych danych (hasze). Jeśli to pole jest puste, wartość od 65 do 128 bitów wynosi zero. |
firstValueThirdPart |
Od 129 do 192 bitów pierwszego wpisu w zakodowanych danych (hasze). Jeśli to pole jest puste, wartość od 129 do 192 bitów wynosi zero. |
firstValueFourthPart |
Ostatnie 64 bity pierwszego wpisu w zakodowanych danych (hasze). Jeśli to pole jest puste, ostatnie 64 bity mają wartość zero. |
riceParameter |
Parametr Golomb-Rice. Ten parametr powinien mieścić się w przedziale od 227 do 254 włącznie. |
entriesCount |
Liczba wpisów zakodowanych delta w zakodowanych danych. Jeśli zakodowana została tylko jedna liczba całkowita, będzie ona wynosić 0, a pojedyncza wartość zostanie zapisana w polu |
encodedData |
Zakodowane delta z kodera Golomb-Rice. Ciąg zakodowany w formacie base64. |
HashListMetadata
Metadane dotyczące konkretnej listy haszowej.
Zapis JSON |
---|
{ "threatTypes": [ enum ( |
Pola | |
---|---|
threatTypes[] |
Lista nieuporządkowana. Jeśli pole nie jest puste, wskazuje, że lista haszująca jest swego rodzaju listą zagrożeń i wylicza rodzaje zagrożeń powiązane z haszami lub prefiksami skrótu na tej liście. Pole może być puste, jeśli wpis nie stanowi zagrożenia, tj. w przypadku, gdy reprezentuje potencjalnie bezpieczny typ. |
likelySafeTypes[] |
Lista nieuporządkowana. Jeśli pole nie jest puste, określa, że lista haszów reprezentuje listę prawdopodobnych bezpiecznych wartości hash i wylicza sposoby, w jakie są one uważane za bezpieczne. To pole wyklucza się z pola threatTypes. |
mobileOptimized |
Wskazuje, czy lista jest zoptymalizowana pod kątem urządzeń mobilnych (Android i iOS). |
description |
Zrozumiały dla człowieka opis tej listy. Napisane w języku angielskim. |
supportedHashLengths[] |
Długości hashów obsługiwane na tej liście haszów. Każda lista haszowa obsługuje co najmniej 1 długość. To pole nie będzie więc puste. |
ThreatType
Rodzaje zagrożeń.
Wartości w polu enum | |
---|---|
THREAT_TYPE_UNSPECIFIED |
Nieznany typ zagrożenia. Jeśli serwer zwróci taką wartość, klient całkowicie zignoruje zamykający element FullHashDetail . |
MALWARE |
Typ zagrożenia ze względu na złośliwe oprogramowanie. Termin „złośliwe oprogramowanie” odnosi się do programów komputerowych lub aplikacji mobilnych zaprojektowanych specjalnie w celu zaszkodzenia użytkownikom lub zakłócania pracy komputera, urządzenia mobilnego bądź zainstalowanych na nim aplikacji. Działanie złośliwego oprogramowania objawia się instalowaniem programów bez zgody użytkownika lub instalowaniem szkodliwych aplikacji, np. wirusów. Więcej informacji znajdziesz tutaj. |
SOCIAL_ENGINEERING |
Typ zagrożenia typu inżynieria społeczna. Strony stosujące inżynierię społeczną fałszywie podają się, że działają w imieniu osoby trzeciej, z zamiarem wprowadzenia widzów w błąd, aby wykonali działanie, do którego mógłby ufać jedynie prawdziwy agent tej osoby trzeciej. Wyłudzanie informacji to rodzaj inżynierii społecznej, w którym użytkownik podstępem nakłania użytkownika do podania określonych informacji, np. danych logowania. Więcej informacji znajdziesz tutaj. |
UNWANTED_SOFTWARE |
Niechciany typ zagrożenia oprogramowania. Niechciane oprogramowanie to takie, które nie jest zgodne z zasadami Google dotyczącymi oprogramowania, ale nie jest złośliwym oprogramowaniem. |
POTENTIALLY_HARMFUL_APPLICATION |
Potencjalnie szkodliwy typ zagrożeń dla aplikacji używanych przez Google Play Protect w Sklepie Play. |
LikelySafeType
Typy prawdopodobnie bezpiecznych stron.
Zauważ, że pole SearchHashesResponse
celowo nie zawiera LikelySafeType
.
Wartości w polu enum | |
---|---|
LIKELY_SAFE_TYPE_UNSPECIFIED |
Nieznany. |
GENERAL_BROWSING |
Ta witryna prawdopodobnie jest wystarczająco bezpieczna do przeglądania internetu. Jest to tzw. globalna pamięć podręczna. |
CSD |
Ta witryna jest prawdopodobnie na tyle bezpieczna, że nie trzeba uruchamiać modeli wykrywania po stronie klienta ani sprawdzać ochrony hasłem. |
DOWNLOAD |
Prawdopodobnie ta strona jest na tyle bezpieczna, że nie trzeba sprawdzać pobieranych z niej plików. |
HashLength
Długość haszy na liście skrótów.
Wartości w polu enum | |
---|---|
HASH_LENGTH_UNSPECIFIED |
Nieokreślona długość. Serwer nie zwraca tej wartości w odpowiedziach do klienta (w polu supportedHashLengths ), ale klient może wysłać tę wartość do serwera (w polu desiredHashLength ). W takim przypadku serwer wybierze wartość automatycznie. Klienty MUSZĄ pozwolić serwerowi wybrać wartość. |
FOUR_BYTES |
Każdy hasz to czterobajtowy prefiks. |
EIGHT_BYTES |
Każdy hasz to 8-bajtowy prefiks. |
SIXTEEN_BYTES |
Każdy hasz to 16-bajtowy prefiks. |
THIRTY_TWO_BYTES |
Każdy hasz to 32-bajtowy hasz. |
Metody |
|
---|---|
|
Pobierz najnowszą zawartość listy haszowej. |