REST Resource: hashList

Zasób: HashList

Lista haszy identyfikowanych przez jej nazwę.

Zapis JSON
{
  "name": string,
  "version": string,
  "partialUpdate": boolean,
  "compressedRemovals": {
    object (RiceDeltaEncoded32Bit)
  },
  "minimumWaitDuration": string,
  "metadata": {
    object (HashListMetadata)
  },

  // Union field compressed_additions can be only one of the following:
  "additionsFourBytes": {
    object (RiceDeltaEncoded32Bit)
  },
  "additionsEightBytes": {
    object (RiceDeltaEncoded64Bit)
  },
  "additionsSixteenBytes": {
    object (RiceDeltaEncoded128Bit)
  },
  "additionsThirtyTwoBytes": {
    object (RiceDeltaEncoded256Bit)
  }
  // End of list of possible types for union field compressed_additions.

  // Union field checksum can be only one of the following:
  "sha256Checksum": string
  // End of list of possible types for union field checksum.
}
Pola
name

string

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

string (bytes format)

Wersja listy haszowej. Klient NIE MOŻE modyfikować tych bajtów.

Ciąg zakodowany w formacie base64.

partialUpdate

boolean

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 compressedRemovals będzie puste.

Jeśli zasada ma wartość prawda, klient MUSI zastosować przyrostową aktualizację poprzez zastosowanie najpierw usunięć, a następnie uzupełnień.

compressedRemovals

object (RiceDeltaEncoded32Bit)

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

string (Duration format)

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ą „s”. Przykład: "3.5s".

metadata

object (HashListMetadata)

Metadane dotyczące listy haszowej. Ta wartość nie jest wypełniana przez metodę hashList.get, ale za pomocą metody ListHashLists.

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

object (RiceDeltaEncoded32Bit)

4-bajtowe pliki dodane.

additionsEightBytes

object (RiceDeltaEncoded64Bit)

Dodatki 8-bajtowe.

additionsSixteenBytes

object (RiceDeltaEncoded128Bit)

Dodatki 16-bajtowe.

additionsThirtyTwoBytes

object (RiceDeltaEncoded256Bit)

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

string (bytes format)

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

integer (uint32 format)

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

integer

Parametr Golomb-Rice. Ten parametr musi mieścić się w przedziale od 3 do 30 włącznie.

entriesCount

integer

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 firstValue.

encodedData

string (bytes format)

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

string

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

integer

Parametr Golomb-Rice. Ten parametr musi mieścić się w przedziale od 35 do 62 włącznie.

entriesCount

integer

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 firstValue.

encodedData

string (bytes format)

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

string

Górne 64 bity pierwszego wpisu w zakodowanych danych (hasze). Jeśli to pole jest puste, górne 64 bity mają wartość zero.

firstValueLo

string (uint64 format)

Dolne 64 bity pierwszego wpisu w zakodowanych danych (hasze). Jeśli to pole jest puste, dolne 64 bity mają wartość zero.

riceParameter

integer

Parametr Golomb-Rice. Ten parametr musi mieścić się w zakresie od 99 do 126 włącznie.

entriesCount

integer

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 firstValue.

encodedData

string (bytes format)

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

string

Pierwsze 64 bity pierwszego wpisu w zakodowanych danych (hasze). Jeśli to pole jest puste, pierwsze 64 bity mają wartość zero.

firstValueSecondPart

string (uint64 format)

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

string (uint64 format)

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

string (uint64 format)

Ostatnie 64 bity pierwszego wpisu w zakodowanych danych (hasze). Jeśli to pole jest puste, ostatnie 64 bity mają wartość zero.

riceParameter

integer

Parametr Golomb-Rice. Ten parametr powinien mieścić się w przedziale od 227 do 254 włącznie.

entriesCount

integer

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 firstValue.

encodedData

string (bytes format)

Zakodowane delta z kodera Golomb-Rice.

Ciąg zakodowany w formacie base64.

HashListMetadata

Metadane dotyczące konkretnej listy haszowej.

Zapis JSON
{
  "threatTypes": [
    enum (ThreatType)
  ],
  "likelySafeTypes": [
    enum (LikelySafeType)
  ],
  "mobileOptimized": boolean,
  "description": string,
  "supportedHashLengths": [
    enum (HashLength)
  ]
}
Pola
threatTypes[]

enum (ThreatType)

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[]

enum (LikelySafeType)

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

boolean

Wskazuje, czy lista jest zoptymalizowana pod kątem urządzeń mobilnych (Android i iOS).

description

string

Zrozumiały dla człowieka opis tej listy. Napisane w języku angielskim.

supportedHashLengths[]

enum (HashLength)

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

get

Pobierz najnowszą zawartość listy haszowej.