REST Resource: hashList

Zasób: HashList

Lista haszy zidentyfikowanych po nazwie.

Zapis JSON
{
  "name": string,
  "version": string,
  "partialUpdate": boolean,
  "compressedRemovals": {
    object (RiceDeltaEncoded32Bit)
  },
  "minimumWaitDuration": string,
  "sha256Checksum": 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.
}
Pola
name

string

Nazwa listy haszy. Pamiętaj, że globalny bufor jest również tylko listą haszy i może być tutaj używany.

version

string (bytes format)

Wersja listy haszy. Klient NIE MOŻE manipulować tymi bajtami.

Ciąg znaków zakodowany w formacie Base64.

partialUpdate

boolean

Jeśli wartość jest prawdziwa, jest to częściowa różnica zawierająca dodatki i usunięcia na podstawie tego, co klient już ma. Jeśli wartość to false, jest to pełna lista haszy.

Jeśli jest ustawiona na wartość false, klient MUSI usunąć wszystkie wersje tej listy haszy zapisane lokalnie. Oznacza to, że wersja klienta jest bardzo przestarzała lub dane klienta są uszkodzone. Pole compressedRemovals będzie puste.

Jeśli wartość to prawda, klient MUSI zastosować aktualizację przyrostową, najpierw stosując usunięcia, a potem dodania.

compressedRemovals

object (RiceDeltaEncoded32Bit)

Wersja kodowana według metody Rice-delta indeksów usuwania. Każda lista haszy ma mniej niż 2^32 pozycji, więc indeksy są traktowane jako 32-bitowe liczby całkowite i kodowane.

minimumWaitDuration

string (Duration format)

Klienci powinni odczekać co najmniej tyle czasu, aby ponownie uzyskać listę haszy. Jeśli wartość jest pominięta lub wynosi 0, klienci powinni pobrać dane natychmiast, ponieważ oznacza to, że serwer ma dodatkowe dane do wysłania do klienta, ale nie może tego zrobić z powodu ograniczeń określonych przez klienta.

Czas w sekundach z maksymalnie 9 miejscami po przecinku, zakończony literą „s”. Przykład: "3.5s".

sha256Checksum

string (bytes format)

Posortowana lista wszystkich haszy, zaszyfrowanych ponownie za pomocą algorytmu SHA256. Jest to suma kontrolna posortowanej listy wszystkich haszy obecnych w bazie danych po zastosowaniu dostarczonej aktualizacji. Jeśli nie zostały przesłane żadne aktualizacje, serwer pominie to pole, aby wskazać, że klient powinien użyć istniejącej sumy kontrolnej.

Ciąg znaków zakodowany w formacie Base64.

metadata

object (HashListMetadata)

Metadane dotyczące listy haszy. Nie jest ono wypełniane za pomocą metody hashList.get, ale za pomocą metody ListHashLists.

Pole unii compressed_additions. Wersja dodatków zakodowana metodą Rice-delta. Długości prefiksów haszy wszystkich elementów na liście są takie same. 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 być tylko jednym z tych elementów:
additionsFourBytes

object (RiceDeltaEncoded32Bit)

Dodatki 4-bajtowe.

additionsEightBytes

object (RiceDeltaEncoded64Bit)

Dodatki 8-bajtowe.

additionsSixteenBytes

object (RiceDeltaEncoded128Bit)

Dodatki 16-bajtowe.

additionsThirtyTwoBytes

object (RiceDeltaEncoded256Bit)

Dodatki 32-bajtowe.

RiceDeltaEncoded32Bit

Dane zakodowane algorytmem Rice-Golomb. Służy do haszów lub indeksów usuwania. Gwarantuje się, że każdy hasz lub indeks ma taką samą długość, która wynosi dokładnie 32 bity.

Ogólnie rzecz biorąc, jeśli posortujemy wszystkie wpisy w kolejności alfabetycznej, zauważymy, że bity o większej mocy nie zmieniają się tak często jak bity o mniejszej mocy. Oznacza to, że jeśli weźmiemy pod uwagę różnicę między sąsiednimi wpisami, bity o wyższym priorytecie z dużym prawdopodobieństwem będą miały wartość 0. Wykorzystuje to wysokie prawdopodobieństwo wystąpienia zera, wybierając określoną liczbę bitów. Wszystkie bity o większym znaczeniu niż ten prawdopodobnie będą równe zeru, więc używamy kodowania jednobitowego. Zapoznaj się z polem riceParameter.

Uwaga historyczna: kodowanie Rice-delta zostało po raz pierwszy użyte w wersji 4 tego interfejsu API. W wersji 5 wprowadzono 2 istotne ulepszenia: po pierwsze, kodowanie Rice-delta jest teraz dostępne z prefiksami szyfrowania dłuższymi niż 4 bajty; po drugie, zakodowane dane są teraz traktowane jako duże, aby uniknąć czasochłonnego etapu sortowania.

Zapis JSON
{
  "firstValue": integer,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Pola
firstValue

integer (uint32 format)

Pierwszy wpis w zakodowanych danych (hasła lub indeksy) albo, jeśli zakodowano tylko jeden prefiks hasła lub indeks, wartość tego wpisu. Jeśli pole jest puste, wpis jest równy 0.

riceParameter

integer

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

entriesCount

integer

Liczba wpisów zakodowanych w danych zakodowanych za pomocą kodowania delty. Jeśli zakodowana została tylko jedna liczba całkowita, będzie ona miała wartość 0, a jedyna wartość zostanie zapisana w polu firstValue.

encodedData

string (bytes format)

zakodowane delty, które są kodowane za pomocą kodera Golomb-Rice;

Ciąg znaków zakodowany w formacie Base64.

RiceDeltaEncoded64Bit

To samo co RiceDeltaEncoded32Bit, ale koduje liczby 64-bitowe.

Zapis JSON
{
  "firstValue": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Pola
firstValue

string

Pierwszy wpis w zaszyfrowanych danych (haszach) lub, jeśli zakodowano tylko jeden prefiks haszowania, wartość tego wpisu. Jeśli pole jest puste, wpis jest równy 0.

riceParameter

integer

Parametr Golomb-Rice. Parametr ten musi zawierać się w przedziale od 35 do 62 włącznie.

entriesCount

integer

Liczba wpisów zakodowanych w danych zakodowanych za pomocą kodowania delty. Jeśli zakodowana została tylko jedna liczba całkowita, będzie ona równa 0, a jedyna wartość zostanie zapisana w polu firstValue.

encodedData

string (bytes format)

zakodowane delty, które są kodowane za pomocą kodera Golomb-Rice;

Ciąg znaków zakodowany w formacie Base64.

RiceDeltaEncoded128Bit

To samo co RiceDeltaEncoded32Bit, z tym że 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 (haszy). Jeśli pole jest puste, 64 górne bity są ustawione na 0.

firstValueLo

string (uint64 format)

64 najniższe bity pierwszego wpisu w zakodowanych danych (haszy). Jeśli pole jest puste, 64 najniższe bity mają wartość 0.

riceParameter

integer

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

entriesCount

integer

Liczba wpisów zakodowanych w danych zakodowanych za pomocą kodowania delty. Jeśli zakodowana została tylko jedna liczba całkowita, będzie ona równa 0, a jedyna wartość zostanie zapisana w polu firstValue.

encodedData

string (bytes format)

zakodowane delty, które są kodowane za pomocą kodera Golomb-Rice;

Ciąg znaków zakodowany w formacie Base64.

RiceDeltaEncoded256Bit

To samo co RiceDeltaEncoded32Bit, ale z kodowaniem liczb 256-bitowych.

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 zaszyfrowanych danych (hasze). Jeśli pole jest puste, pierwsze 64 bity są wszystkie zerami.

firstValueSecondPart

string (uint64 format)

65–128 bity pierwszego wpisu w zakodowanych danych (haszy). Jeśli pole jest puste, bity od 65. do 128. są ustawione na 0.

firstValueThirdPart

string (uint64 format)

129–192 bity pierwszego wpisu w zakodowanych danych (hasze). Jeśli pole jest puste, bity od 129 do 192 są wszystkie zerami.

firstValueFourthPart

string (uint64 format)

Ostatnie 64 bity pierwszego wpisu w zaszyfrowanych danych (hasze). Jeśli pole jest puste, ostatnie 64 bity są ustawione na 0.

riceParameter

integer

Parametr Golomb-Rice. Wartość tego parametru musi mieścić się w przedziale od 227 do 254 (włącznie).

entriesCount

integer

Liczba wpisów zakodowanych w danych zakodowanych za pomocą kodowania delty. Jeśli zakodowana została tylko jedna liczba całkowita, będzie ona równa 0, a jedyna wartość zostanie zapisana w polu firstValue.

encodedData

string (bytes format)

zakodowane delty, które są kodowane za pomocą kodera Golomb-Rice;

Ciąg znaków zakodowany w formacie Base64.

HashListMetadata

Metadane dotyczące konkretnej listy haszy.

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

enum (ThreatType)

lista nieuporządkowana, Jeśli nie jest pusta, określa, że lista haszy jest rodzajem listy zagrożeń i wylicza rodzaje zagrożeń powiązanych z haszami lub prefiksami haszy na tej liście. Może być pusty, jeśli wpis nie stanowi zagrożenia, czyli jest to prawdopodobnie bezpieczny typ.

likelySafeTypes[]

enum (LikelySafeType)

lista nieuporządkowana, Jeśli nie jest pusta, określa, że lista haszy reprezentuje listę prawdopodobnie bezpiecznych haszy i wylicza sposoby, na jakie są one uznawane za bezpieczne. To pole jest wzajemnie wykluczone z polem threatTypes.

description

string

Zrozumiały dla człowieka opis tej listy. musi być napisany w języku angielskim.

supportedHashLengths[]
(deprecated)

enum (HashLength)

Obsługiwane długości haszy dla tej listy haszy. Każda lista skrótów powinna obsługiwać co najmniej jedną długość. To pole nie będzie więc puste.

hashLength

enum (HashLength)

Obsługiwana długość hasha na tej liście haszy. Każda lista haszy będzie obsługiwać dokładnie jedną długość. Jeśli w przypadku tego samego zbioru typów zagrożeń lub typów bezpiecznych wprowadzimy inną długość hasha, zostanie ona wprowadzona jako osobna lista z odrębną nazwą i odpowiednim zbiorem długości hasha.

ThreatType

Rodzaje zagrożeń

Wartości w polu enum
THREAT_TYPE_UNSPECIFIED Nieznany typ zagrożenia. Jeśli serwer zwróci ten kod, klient powinien całkowicie zignorować otoczkę FullHashDetail.
MALWARE

Typ zagrożenia związanego ze złośliwym oprogramowaniem. 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 związanego z inżynierią społeczną. Strony wykorzystujące inżynierię społeczną podają się za osoby działające w imieniu osób trzecich, aby wprowadzić widzów w błąd i zmusić ich do wykonania czynności, do której widzowie zaufaliby tylko prawdziwemu przedstawicielowi danej osoby trzeciej. Phishing to rodzaj inżynierii społecznej, który podstępem nakłania widza do wykonania określonego działania, np. podania informacji, takich jak dane logowania.

Więcej informacji znajdziesz tutaj.

UNWANTED_SOFTWARE Typ zagrożenia związanego z niechcianym oprogramowaniem. Niechciane oprogramowanie to dowolne oprogramowanie, które nie jest zgodne z zasadami Google dotyczącymi oprogramowania, ale nie jest złośliwym oprogramowaniem.
POTENTIALLY_HARMFUL_APPLICATION Typ zagrożenia związanego z potencjalnie szkodliwą aplikacją wykorzystywany przez Google Play Protect w Sklepie Play.

LikelySafeType

Typy bezpiecznych witryn

Uwaga: SearchHashesResponse celowo nie zawiera LikelySafeType.

Wartości w polu enum
LIKELY_SAFE_TYPE_UNSPECIFIED Nieznany.
GENERAL_BROWSING Ta witryna jest prawdopodobnie wystarczająco bezpieczna do ogólnego przeglądania. Jest to tak zwana pamięć podręczna globalna.
CSD Ta strona jest prawdopodobnie na tyle bezpieczna, że nie trzeba uruchamiać modeli wykrywania po stronie klienta ani sprawdzać ochrony hasłem.
DOWNLOAD Ta strona jest prawdopodobnie na tyle bezpieczna, że nie trzeba sprawdzać plików pobieranych z niej.

HashLength

Długość haszy na liście haszy.

Wartości w polu enum
HASH_LENGTH_UNSPECIFIED Nieokreślona długość. Serwer nie zwraca tej wartości w odpowiedziach dla klienta (w polu supportedHashLengths), ale klient może wysłać tę wartość do serwera (w polu desiredHashLength). W tym przypadku serwer wybierze wartość automatycznie. Klienci POWINNI pozwolić serwerowi wybrać wartość.
FOUR_BYTES Każdy hasz to 4-bajtowy prefiks.
EIGHT_BYTES Każdy skrót jest 8-bajtowym prefiksem.
SIXTEEN_BYTES Każdy skrót jest 16-bajtowym prefiksem.
THIRTY_TWO_BYTES Każdy hasz to 32-bajtowy pełny hasz.

Metody

get

Pobierz najnowsze treści z listy haszy.