REST Resource: hashList

Ressource: HashList

Eine Liste von Hashes, die anhand ihres Namens identifiziert werden.

JSON-Darstellung
{
  "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.
}
Felder
name

string

Der Name der Hash-Liste. Der globale Cache ist ebenfalls nur eine Hashliste und kann hier referenziert werden.

version

string (bytes format)

Die Version der Hash-Liste. Der Client darf diese Bytes NICHT manipulieren.

Ein base64-codierter String.

partialUpdate

boolean

Wenn „true“ ist, handelt es sich um eine teilweise Differenz, die Ergänzungen und Entfernungen enthält, die auf dem bereits vorhandenen Inhalt des Clients basieren. Wenn „false“ ist, ist dies die vollständige Hash-Liste.

Wenn „false“ ist, MUSS der Client alle lokal gespeicherten Versionen für diese Hashliste löschen. Das bedeutet, dass entweder die Version des Clients stark veraltet ist oder die Clientdaten beschädigt sind. Das Feld compressedRemovals ist leer.

Wenn „true“ angegeben ist, MUSS der Client ein inkrementelles Update anwenden, indem er zuerst Elemente entfernt und dann hinzufügt.

compressedRemovals

object (RiceDeltaEncoded32Bit)

Die mit Rice-Delta codierte Version von Entfernungsindexen. Da jede Hashliste weniger als 2^32 Einträge hat, werden die Indizes als 32‑Bit-Ganzzahlen behandelt und codiert.

minimumWaitDuration

string (Duration format)

Clients sollten mindestens so lange warten, um die Hash-Liste noch einmal abzurufen. Wenn dieser Parameter weggelassen oder null ist, MÜSSEN Clients ihn sofort abrufen, da dies darauf hinweist, dass der Server ein zusätzliches Update an den Client senden kann, dies aber aufgrund der vom Client angegebenen Einschränkungen nicht konnte.

Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit "s". Beispiel: "3.5s".

sha256Checksum

string (bytes format)

Die sortierte Liste aller Hashes, die noch einmal mit SHA256 gehasht werden. Dies ist die Prüfsumme für die sortierte Liste aller Hashes, die nach dem Anwenden des bereitgestellten Updates in der Datenbank vorhanden sind. Wenn keine Updates bereitgestellt wurden, lässt der Server dieses Feld aus, um anzugeben, dass der Client die vorhandene Prüfsumme verwenden soll.

Ein base64-codierter String.

metadata

object (HashListMetadata)

Metadaten zur Hashliste. Dieser Wert wird nicht mit der Methode hashList.get, sondern mit der Methode ListHashLists ausgefüllt.

Union-Feld compressed_additions. Die mit Rice-Delta codierte Version der Ergänzungen. Die Länge der Hash-Präfixe von Ergänzungen ist für alle Ergänzungen in der Liste gleich. Es ist entweder der vom Client gesendete desired_hash_length oder ein vom Server ausgewählter Wert, wenn der Client dieses Feld ausgelassen hat. Für compressed_additions ist nur einer der folgenden Werte zulässig:
additionsFourBytes

object (RiceDeltaEncoded32Bit)

Die 4-Byte-Zusätze.

additionsEightBytes

object (RiceDeltaEncoded64Bit)

Die 8-Byte-Zusätze.

additionsSixteenBytes

object (RiceDeltaEncoded128Bit)

Die 16-Byte-Zusätze.

additionsThirtyTwoBytes

object (RiceDeltaEncoded256Bit)

Die 32-Byte-Zusätze.

RiceDeltaEncoded32Bit

Die Rice-Golomb-codierten Daten. Wird entweder für Hashes oder Entfernungsindizes verwendet. Es ist garantiert, dass jeder Hash oder Index hier dieselbe Länge hat und diese Länge genau 32 Bit beträgt.

Wenn wir alle Einträge lexikografisch sortieren, stellen wir in der Regel fest, dass sich die Bits höherer Ordnung in der Regel nicht so häufig ändern wie die Bits niedrigerer Ordnung. Wenn wir also auch die benachbarte Differenz zwischen den Einträgen berücksichtigen, haben die Bits höherer Ordnung mit hoher Wahrscheinlichkeit den Wert 0. Diese hohe Wahrscheinlichkeit von Null wird ausgenutzt, indem im Wesentlichen eine bestimmte Anzahl von Bits ausgewählt wird. Alle Bitpositionen, die höher sind, sind wahrscheinlich Null. Daher wird die unary-Codierung verwendet. Siehe Feld riceParameter.

Historischer Hinweis: Die Rice-Delta-Codierung wurde erstmals in Version 4 dieser API verwendet. In Version 5 wurden zwei wichtige Verbesserungen vorgenommen: Erstens ist die Rice-Delta-Codierung jetzt mit Hash-Präfixen verfügbar, die länger als 4 Byte sind. Zweitens werden die codierten Daten jetzt als Big-Endian behandelt, um einen kostspieligen Sortierschritt zu vermeiden.

JSON-Darstellung
{
  "firstValue": integer,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Felder
firstValue

integer (uint32 format)

Der erste Eintrag in den codierten Daten (Hashes oder Indexe) oder, wenn nur ein einzelnes Hash-Präfix oder ein Index codiert wurde, der Wert dieses Eintrags. Wenn das Feld leer ist, ist der Eintrag „0“.

riceParameter

integer

Der Golomb-Rice-Parameter. Dieser Parameter hat garantiert eine Länge von 3 bis 30 Zeichen.

entriesCount

integer

Die Anzahl der Einträge, die in den codierten Daten deltacodiert sind. Wenn nur eine einzelne Ganzzahl codiert wurde, ist dieser Wert null und der einzelne Wert wird in firstValue gespeichert.

encodedData

string (bytes format)

Die codierten Deltas, die mit dem Golomb-Rice-Codierer codiert werden.

Ein base64-codierter String.

RiceDeltaEncoded64Bit

Entspricht RiceDeltaEncoded32Bit, codiert aber 64‑Bit-Zahlen.

JSON-Darstellung
{
  "firstValue": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Felder
firstValue

string

Der erste Eintrag in den codierten Daten (Hashes) oder, wenn nur ein einzelnes Hash-Präfix codiert wurde, der Wert dieses Eintrags. Wenn das Feld leer ist, ist der Eintrag „0“.

riceParameter

integer

Der Golomb-Rice-Parameter. Dieser Parameter liegt garantiert zwischen 35 und 62.

entriesCount

integer

Die Anzahl der Einträge, die in den codierten Daten deltacodiert sind. Wenn nur eine einzelne Ganzzahl codiert wurde, ist dieser Wert null und der einzelne Wert wird in firstValue gespeichert.

encodedData

string (bytes format)

Die codierten Deltas, die mit dem Golomb-Rice-Codierer codiert werden.

Ein base64-codierter String.

RiceDeltaEncoded128Bit

Entspricht RiceDeltaEncoded32Bit, codiert aber 128‑Bit-Zahlen.

JSON-Darstellung
{
  "firstValueHi": string,
  "firstValueLo": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Felder
firstValueHi

string

Die oberen 64 Bit des ersten Eintrags in den codierten Daten (Hashes). Wenn das Feld leer ist, sind die oberen 64 Bit alle Null.

firstValueLo

string (uint64 format)

Die unteren 64 Bit des ersten Eintrags in den codierten Daten (Hashes). Wenn das Feld leer ist, sind die unteren 64 Bit alle Null.

riceParameter

integer

Der Golomb-Rice-Parameter. Dieser Parameter liegt garantiert zwischen 99 und 126.

entriesCount

integer

Die Anzahl der Einträge, die in den codierten Daten deltacodiert sind. Wenn nur eine einzelne Ganzzahl codiert wurde, ist dieser Wert null und der einzelne Wert wird in firstValue gespeichert.

encodedData

string (bytes format)

Die codierten Deltas, die mit dem Golomb-Rice-Codierer codiert werden.

Ein base64-codierter String.

RiceDeltaEncoded256Bit

Entspricht RiceDeltaEncoded32Bit, codiert aber 256‑Bit-Zahlen.

JSON-Darstellung
{
  "firstValueFirstPart": string,
  "firstValueSecondPart": string,
  "firstValueThirdPart": string,
  "firstValueFourthPart": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Felder
firstValueFirstPart

string

Die ersten 64 Bit des ersten Eintrags in den codierten Daten (Hashes). Wenn das Feld leer ist, sind die ersten 64 Bits alle Null.

firstValueSecondPart

string (uint64 format)

Die 65. bis 128. Bit des ersten Eintrags in den codierten Daten (Hashes). Wenn das Feld leer ist, sind die 65. bis 128. Bits alle Null.

firstValueThirdPart

string (uint64 format)

Die 129. bis 192. Bits des ersten Eintrags in den codierten Daten (Hashes). Wenn das Feld leer ist, sind die Bits 129 bis 192 alle Nullen.

firstValueFourthPart

string (uint64 format)

Die letzten 64 Bit des ersten Eintrags in den codierten Daten (Hashes). Wenn das Feld leer ist, sind die letzten 64 Bit alle null.

riceParameter

integer

Der Golomb-Rice-Parameter. Dieser Parameter liegt garantiert zwischen 227 und 254 (einschließlich).

entriesCount

integer

Die Anzahl der Einträge, die in den codierten Daten deltacodiert sind. Wenn nur eine einzelne Ganzzahl codiert wurde, ist dieser Wert null und der einzelne Wert wird in firstValue gespeichert.

encodedData

string (bytes format)

Die codierten Deltas, die mit dem Golomb-Rice-Codierer codiert werden.

Ein base64-codierter String.

HashListMetadata

Metadaten zu einer bestimmten Hashliste.

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

enum (ThreatType)

Unsortierte Liste. Wenn die Liste nicht leer ist, handelt es sich um eine Art von Bedrohungsliste, in der die Art der Bedrohungen aufgelistet ist, die mit Hashes oder Hash-Präfixen in dieser Hash-Liste verknüpft sind. Kann leer sein, wenn der Eintrag keine Bedrohung darstellt, d.h. wenn er einen wahrscheinlich sicheren Typ darstellt.

likelySafeTypes[]

enum (LikelySafeType)

Unsortierte Liste. Wenn die Liste nicht leer ist, gibt sie an, dass die Hash-Liste eine Liste mit wahrscheinlich sicheren Hashes darstellt, und hier werden die Gründe aufgeführt, warum sie als wahrscheinlich sicher eingestuft werden. Dieses Feld schließt das Feld „threatTypes“ aus.

description

string

Eine für Menschen lesbare Beschreibung dieser Liste. Sie muss auf Englisch verfasst sein.

supportedHashLengths[]
(deprecated)

enum (HashLength)

Die unterstützten Hash-Längen für diese Hash-Liste. Jede Hashliste unterstützt mindestens eine Länge. Dieses Feld ist daher nicht leer.

hashLength

enum (HashLength)

Die unterstützte Hash-Länge für diese Hash-Liste. Jede Hashliste unterstützt genau eine Länge. Wenn für dieselbe Gruppe von Bedrohungs- oder sicheren Typen eine andere Hash-Länge eingeführt wird, wird sie als separate Liste mit einem eindeutigen Namen und einer entsprechenden Hash-Länge festgelegt.

ThreatType

Arten von Bedrohungen

Enums
THREAT_TYPE_UNSPECIFIED Unbekannter Bedrohungstyp. Wenn dies vom Server zurückgegeben wird, muss der Client die umschließende FullHashDetail vollständig ignorieren.
MALWARE

Malware-Bedrohungstyp. Malware ist eine Software oder mobile App, die speziell dazu entwickelt wurde, einem Computer, einem Mobilgerät, der darauf ausgeführten Software oder deren Nutzern zu schaden. Malware weist bösartiges Verhalten auf und installiert unter anderem Software ohne das Einverständnis des Nutzers sowie schädliche Software wie Viren.

Weitere Informationen finden Sie hier.

SOCIAL_ENGINEERING

Art der Social Engineering-Bedrohung. Social Engineering-Seiten geben vor, im Namen eines Drittanbieters zu handeln, um Nutzer dazu zu bringen, eine Aktion auszuführen, der sie nur einem echten Vertreter dieses Drittanbieters vertrauen würden. Phishing ist eine Form von Social Engineering, bei der Nutzer dazu verleitet werden, bestimmte Aktionen auszuführen, z. B. die Angabe von Informationen wie Anmeldedaten.

Weitere Informationen finden Sie hier.

UNWANTED_SOFTWARE Bedrohungstyp für unerwünschte Software. Unerwünschte Software ist Software, die nicht den Software-Prinzipien von Google entspricht, aber keine Malware ist.
POTENTIALLY_HARMFUL_APPLICATION Art der Bedrohung durch potenziell schädliche Apps, wie von Google Play Protect für den Play Store verwendet.

LikelySafeType

Arten von Websites, die wahrscheinlich sicher sind

Beachten Sie, dass SearchHashesResponse absichtlich kein LikelySafeType enthält.

Enums
LIKELY_SAFE_TYPE_UNSPECIFIED Unbekannt
GENERAL_BROWSING Diese Website ist wahrscheinlich sicher genug für allgemeines Surfen. Dieser wird auch als globaler Cache bezeichnet.
CSD Diese Website ist wahrscheinlich so sicher, dass keine clientseitigen Erkennungsmodelle oder Passwortschutzprüfungen ausgeführt werden müssen.
DOWNLOAD Diese Website ist wahrscheinlich so sicher, dass Downloads von der Website nicht überprüft werden müssen.

HashLength

Die Länge der Hashes in einer Hash-Liste.

Enums
HASH_LENGTH_UNSPECIFIED Unbestimmte Länge. Der Server gibt diesen Wert nicht in Antworten an den Client zurück (im Feld supportedHashLengths). Der Client darf diesen Wert jedoch an den Server senden (im Feld desiredHashLength). In diesem Fall wählt der Server automatisch einen Wert aus. Clients sollten dem Server erlauben, einen Wert auszuwählen.
FOUR_BYTES Jeder Hash ist ein Präfix mit vier Byte.
EIGHT_BYTES Jeder Hash ist ein Präfix mit acht Byte.
SIXTEEN_BYTES Jeder Hash ist ein 16-Byte-Präfix.
THIRTY_TWO_BYTES Jeder Hash ist ein 32-Byte-Vollhash.

Methoden

get

Ruft den aktuellen Inhalt einer Hash-Liste ab.