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 różnica częściowa zawierająca dodatki i usunięcia na podstawie tego, co klient już ma. Jeśli jest ustawione na false, jest to pełna lista haszy.

Jeśli jest ustawiona na wartość fałsz, klient MUSI usunąć wszystkie wersje zapisane lokalnie dla tej listy haszy. 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, aby ponownie uzyskać listę haszy. Jeśli wartość jest pominięta lub wynosi 0, klienci POWINNI odświeżyć dane natychmiast, ponieważ oznacza to, że serwer ma dodatkowe informacje do wysłania do klienta, ale nie mógł 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 dodatków na liście są takie same. 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 za pomocą algorytmu Rice-Golomb. Służy do haszów lub indeksów usuwania. Gwarantuje się, że każdy z tych haszy lub indeksów 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 (hasze lub indeksy) albo, jeśli zakodowano tylko jeden prefiks haszowania lub indeks, wartość tego wpisu. Jeśli pole jest puste, wpis ma wartość 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. 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.

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 zakodowanych danych (haszach) lub, jeśli zakodowano tylko jeden prefiks haszowania, wartość tego wpisu. Jeśli pole jest puste, wpis ma wartość 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. 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 tą różnicą, ż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 są ustawione na 0.

riceParameter

integer

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

entriesCount

integer

Liczba wpisów zakodowanych w danych zakodowanych. 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, z tą różnicą, że 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 (haszy). Jeśli pole jest puste, pierwsze 64 bity są wszystkie zerami.

firstValueSecondPart

string (uint64 format)

65–128 bity pierwszego wpisu w zakodowanych danych (hasze). 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 mają wartość 0.

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. 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,
  "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 pusty, określa, że lista haszy reprezentuje listę prawdopodobnie bezpiecznych haszy i wylicza sposoby, na jakie są one uznawane za bezpieczne. To pole wyklucza się z polem threatTypes.

description

string

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

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 dla tego samego zbioru typów zagrożeń lub typów bezpiecznych wprowadzimy inną długość hasha, zostanie ona dodana 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 zdezorientować widzów i nakłonić ich do wykonania czynności, do której wykonania 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ść.
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.