REST Resource: hashList

Zasób: HashList

Lista haszów identyfikowanych przez ich nazwy.

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 skrótów. Pamiętaj, że globalna pamięć podręczna to tylko lista skrótów, do której można się odwołać.

version

string (bytes format)

Wersja listy skrótów. Klient NIE MOŻE manipulować tymi bajtami.

Ciąg zakodowany w standardzie base64.

partialUpdate

boolean

Jeśli ma wartość true (prawda), jest to częściowa różnica obejmująca dodanie i usunięcie na podstawie tego, co klient już ma. Jeśli ma wartość false (fałsz), jest to pełna lista skrótów.

Jeśli ma wartość false (fałsz), klient MUSI usunąć dowolną wersję zapisaną lokalnie dla tej listy skrótów. Oznacza to, że wersja posiadana przez klienta jest bardzo nieaktualna lub dane klienta są prawdopodobnie uszkodzone. Pole compressedRemovals będzie puste.

Jeśli ma wartość true (prawda), klient MUSI wprowadzać stopniowe aktualizacje, najpierw usuwając treści, a następnie je uzupełniając.

compressedRemovals

object (RiceDeltaEncoded32Bit)

Wersja indeksów usunięcia zakodowana w formacie delta. Każda lista skrótów zawiera na pewno mniej niż 2^32, dlatego indeksy są traktowane jako 32-bitowe liczby całkowite i zakodowane.

minimumWaitDuration

string (Duration format)

Klienci powinni odczekać co najmniej tyle czasu, aby ponownie otrzymać listę skrótów. Jeśli zostanie pominięty lub zerowy, klient POWINIEN pobrać pobieranie natychmiast, ponieważ wskazuje, że serwer ma dodatkową aktualizację do wysłania do klienta, choć ze względu na ograniczenia określone przez klienta nie było to możliwe.

Czas trwania w sekundach z maksymalnie 9 cyframi po przecinku, kończącym się cyframi „s”. Przykład: "3.5s".

metadata

object (HashListMetadata)

Metadane dotyczące listy skrótów. To pole nie jest wypełniane przez metodę hashList.get, ale jest wypełniane przez metodę ListHashLists.

Pole sumy compressed_additions. Wersja dodania zakodowana w formacie delta. Długość prefiksów skrótów jest taka sama 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 być tylko jedną z tych wartości:
additionsFourBytes

object (RiceDeltaEncoded32Bit)

4-bajtowe dodatki.

additionsEightBytes

object (RiceDeltaEncoded64Bit)

8-bajtowe dodatki.

additionsSixteenBytes

object (RiceDeltaEncoded128Bit)

16-bajtowe dodatki.

additionsThirtyTwoBytes

object (RiceDeltaEncoded256Bit)

32-bajtowe dodatki.

Pole sumy checksum. To jest suma kontrolna dla posortowanej listy wszystkich haszów obecnych w bazie danych po zastosowaniu podanej aktualizacji. To pole „jedno z” pozwala na użycie wielu algorytmów szyfrowania. Serwer może też pomijać to pole (jeśli nie wprowadzono żadnych aktualizacji) w celu wskazania, że klient powinien użyć istniejącej sumy kontrolnej. checksum może być tylko jedną z tych wartości:
sha256Checksum

string (bytes format)

Posortowana lista wszystkich haszów, ponownie zaszyfrowana za pomocą algorytmu SHA256.

Ciąg zakodowany w standardzie base64.

RyceDeltaEncoded32-bit

Dane zakodowane w postaci ryżu-golomba. Używana na potrzeby haszowania lub indeksów usuwania. Każdy hasz lub indeks ma taką samą długość i wynosi dokładnie 32 bity.

Jeśli posortujemy wszystkie wpisy leksykograficznie, okaże się, że bity o wyższej kolejności nie zmieniają się tak często, jak bity niższego rzędu. Oznacza to, że jeśli weźmiemy również sąsiednie różnice między wpisami, prawdopodobieństwo wystąpienia wartości zero w bitach wyższego rzędu jest duże. To wykorzystuje wysokie prawdopodobieństwo zerowe przez wybranie określonej liczby bitów. Wszystkie bity o większym znaczeniu mają wartość 0, dlatego używamy kodowania jednoargumentowego. Zobacz pole riceParameter.

Uwaga historyczna: kodowanie Rice-delta zostało po raz pierwszy użyte w wersji 4 tego interfejsu API. W wersji 5 wprowadziliśmy dwa istotne ulepszenia: po pierwsze dostępne jest kodowanie ryżu-delta, które jest teraz dostępne z prefiksami haszującymi dłuższymi niż 4 bajty. Po drugie, zakodowane dane są teraz traktowane jako big-endian, aby uniknąć kosztownego 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 został zakodowany tylko pojedynczy prefiks lub indeks skrótu, wartość tego wpisu. Jeśli pole jest puste, wartość wynosi zero.

riceParameter

integer

Parametr Golomb-Rice. Gwarantujemy, że ten parametr ma wartość od 3 do 30 włącznie.

entriesCount

integer

Liczba wpisów zakodowanych delta w zakodowanych danych. Jeśli zakodowana jest tylko jedna liczba całkowita, wartość wynosi 0 i pojedyncza wartość zostanie zapisana w funkcji firstValue.

encodedData

string (bytes format)

Zakodowane delta zakodowane za pomocą kodera Golomb-Rice.

Ciąg zakodowany w standardzie base64.

RyceDeltaEncoded64-bit

Taka sama jak w funkcji RiceDeltaEncoded32Bit, ale oprócz tego koduje liczby 64-bitowe.

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

string

Pierwszy wpis w zakodowanych danych (hasze) lub, jeśli zakodowany był tylko pojedynczy prefiks skrótu, wartość tego wpisu. Jeśli pole jest puste, wartość wynosi zero.

riceParameter

integer

Parametr Golomb-Rice. Gwarantujemy, że ten parametr ma wartość od 35 do 62 włącznie.

entriesCount

integer

Liczba wpisów zakodowanych delta w zakodowanych danych. Jeśli zakodowana jest tylko jedna liczba całkowita, wartość wynosi 0 i pojedyncza wartość zostanie zapisana w funkcji firstValue.

encodedData

string (bytes format)

Zakodowane delta zakodowane za pomocą kodera Golomb-Rice.

Ciąg zakodowany w standardzie base64.

RyceDeltaEncoded128-bit

Taka sama jak w funkcji RiceDeltaEncoded32Bit, ale oprócz tego 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, wszystkie 64 bity mają wartość zero.

firstValueLo

string (uint64 format)

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

riceParameter

integer

Parametr Golomb-Rice. Gwarantujemy, że ten parametr ma wartość od 99 do 126 włącznie.

entriesCount

integer

Liczba wpisów zakodowanych delta w zakodowanych danych. Jeśli zakodowana jest tylko jedna liczba całkowita, wartość wynosi 0 i pojedyncza wartość zostanie zapisana w funkcji firstValue.

encodedData

string (bytes format)

Zakodowane delta zakodowane za pomocą kodera Golomb-Rice.

Ciąg zakodowany w standardzie base64.

RyceDeltaEncoded256-bit

Taka sama jak w funkcji RiceDeltaEncoded32Bit, ale oprócz tego 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 pole jest puste, pierwsze 64 bity mają wartość zero.

firstValueSecondPart

string (uint64 format)

Od 65 do 128 bitów pierwszego wpisu w zakodowanych danych (haszach). Jeśli pole jest puste, wartość wszystkich bitów 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 pole jest puste, wartość od 129 do 192 bitów ma wartość 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. Gwarantujemy, że ten parametr ma wartość od 227 do 254 włącznie.

entriesCount

integer

Liczba wpisów zakodowanych delta w zakodowanych danych. Jeśli zakodowana jest tylko jedna liczba całkowita, wartość wynosi 0 i pojedyncza wartość zostanie zapisana w funkcji firstValue.

encodedData

string (bytes format)

Zakodowane delta zakodowane za pomocą kodera Golomb-Rice.

Ciąg zakodowany w standardzie base64.

HashListMetadata

Metadane dotyczące konkretnej listy skrótów.

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

enum (ThreatType)

Lista nieuporządkowana. Jeśli ta lista nie jest pusta, oznacza to, że lista haszowania jest rodzajem listy zagrożeń i podaje rodzaj zagrożeń związanych z haszami lub prefiksami skrótów na tej liście. Może być pusta, jeśli wpis nie stanowi zagrożenia, tzn. reprezentuje prawdopodobnie bezpieczny typ.

likelySafeTypes[]

enum (LikelySafeType)

Lista nieuporządkowana. Jeśli ta wartość nie jest pusta, wskazuje, że lista skrótów przedstawia listę prawdopodobnych bezpiecznych haszów oraz podaje sposoby, w jakie są one potencjalnie bezpieczne. To pole wyklucza się wzajemnie z polem threatTypes.

mobileOptimized

boolean

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

description

string

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

supportedHashLengths[]

enum (HashLength)

Obsługiwane długości skrótu dla tej listy skrótów. Każda lista skrótów obsługuje co najmniej jedną długość. Dlatego to pole nie będzie puste.

ThreatType

Typy zagrożeń.

Wartości w polu enum
THREAT_TYPE_UNSPECIFIED Nieznany typ zagrożenia. Jeśli zostanie ona zwrócona przez serwer, klient całkowicie zignoruje treść FullHashDetail.
MALWARE

Rodzaj zagrożenia związany 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

Rodzaj zagrożenia związany z inżynierią społeczną. Strony stosujące inżynierię społeczną fałszywie sugerują, że działają w imieniu osoby trzeciej w celu skłonienia widzów do wykonania czynności, którą widz zaufałby wyłącznie prawdziwemu przedstawicielowi tej firmy. Phishing (wyłudzanie informacji) to rodzaj inżynierii społecznej, który polega na nakłonieniu widza do wykonania określonej czynności polegającej na udostępnieniu informacji, takich jak dane logowania.

Więcej informacji znajdziesz tutaj.

UNWANTED_SOFTWARE Typ zagrożenia związanego z niechcianym oprogramowaniem. 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 rodzaj zagrożenia dla aplikacji wykorzystywany przez Google Play Protect w Sklepie Play.

LikelySafeType

Typy witryn prawdopodobnie bezpiecznych.

Zauważ, że SearchHashesResponse celowo nie zawiera LikelySafeType.

Wartości w polu enum
LIKELY_SAFE_TYPE_UNSPECIFIED Nieznany.
GENERAL_BROWSING Ta witryna jest prawdopodobnie wystarczająco bezpieczna, by przeglądać strony. Jest to też tzw. globalna pamięć podręczna.
CSD Witryna jest prawdopodobnie na tyle bezpieczna, że nie trzeba w niej uruchamiać modeli wykrywania po stronie klienta ani testów ochrony haseł.
DOWNLOAD Ta witryna jest prawdopodobnie na tyle bezpieczna, że nie trzeba sprawdzać z niej pobieranych plików.

HashLength

Długość skrótów 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 na żądania klienta (w polu supportedHashLengths), ale klient może ją wysłać na serwer (w polu desiredHashLength). W takim przypadku serwer wybierze wartość automatycznie. Klienci POWINNY wybrać wartość przez serwer.
FOUR_BYTES Każdy hasz to czterobajtowy prefiks.
EIGHT_BYTES Każdy hasz to ośmiobajtowy prefiks.
SIXTEEN_BYTES Każdy hasz to 16-bajtowy prefiks.
THIRTY_TWO_BYTES Każdy hasz to 32-bajtowy hasz o długości 32 bajtów.

Metody

get

Pobierz najnowszą zawartość listy skrótów.