REST Resource: hashList

Ressource: HashList

Eine Liste von Hashes, die durch ihren Namen 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. Beachten Sie, dass der globale Cache auch nur eine Hashliste ist und hier darauf verwiesen werden kann.

version

string (bytes format)

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

Ein base64-codierter String.

partialUpdate

boolean

Wenn „true“, handelt es sich um einen partiellen Unterschied, der auf dem basiert, was der Client bereits hat, und der Ergänzungen und Entfernungen enthält. Wenn „false“, ist dies die vollständige Hash-Liste.

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

Wenn „true“ festgelegt ist, MUSS der Client ein inkrementelles Update durchführen, indem er zuerst Entfernungen und dann Ergänzungen anwendet.

compressedRemovals

object (RiceDeltaEncoded32Bit)

Die Rice-Delta-codierte Version der Entfernungsindexe. Da jede Hash-Liste definitiv weniger als 2^32 Einträge hat, werden die Indexe als 32-Bit-Ganzzahlen behandelt und codiert.

minimumWaitDuration

string (Duration format)

Clients sollten mindestens so lange warten, bis sie die Hash-Liste wieder abrufen. Wenn der Wert weggelassen wird oder null ist, SOLLTEN Clients die Daten sofort abrufen, da dies darauf hinweist, dass der Server ein zusätzliches Update für den Client hat, das aufgrund der vom Client angegebenen Einschränkungen nicht gesendet werden 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 wurden. Dies ist die Prüfsumme für die sortierte Liste aller Hashes, die nach der Anwendung 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 Hash-Liste. Diese wird nicht von der Methode hashList.get, sondern von der Methode ListHashLists ausgefüllt.

Union-Feld compressed_additions. Die Rice-Delta-codierte Version der Ergänzungen. Die Hash-Präfixlängen der Ergänzungen sind für alle Ergänzungen in der Liste einheitlich. Für compressed_additions ist nur einer der folgenden Werte zulässig:
additionsFourBytes

object (RiceDeltaEncoded32Bit)

Die 4-Byte-Ergänzungen.

additionsEightBytes

object (RiceDeltaEncoded64Bit)

Die 8‑Byte-Ergänzungen.

additionsSixteenBytes

object (RiceDeltaEncoded128Bit)

Die 16‑Byte-Ergänzungen.

additionsThirtyTwoBytes

object (RiceDeltaEncoded256Bit)

Die 32-Byte-Ergänzungen.

RiceDeltaEncoded32Bit

Die Rice-Golomb-codierten Daten. Wird für Hashes oder Entfernungsindizes verwendet. Jeder Hash oder Index hier hat garantiert dieselbe Länge, nämlich genau 32 Bit.

Wenn wir alle Einträge lexikografisch sortieren, stellen wir fest, dass sich die höherwertigen Bits in der Regel nicht so häufig ändern wie die niederwertigen Bits. Wenn wir also auch die angrenzende Differenz zwischen Einträgen berücksichtigen, ist die Wahrscheinlichkeit, dass die höherwertigen Bits null sind, hoch. Dabei wird die hohe Wahrscheinlichkeit von Null ausgenutzt, indem eine bestimmte Anzahl von Bits ausgewählt wird. Alle Bits, die signifikanter als diese sind, sind wahrscheinlich Null, daher verwenden wir die Unärcode. Sehen Sie sich das Feld riceParameter an.

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, falls nur ein einzelnes Hash-Präfix oder ein einzelner Index codiert wurde, der Wert dieses Eintrags. Wenn das Feld leer ist, ist der Eintrag null.

riceParameter

integer

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

entriesCount

integer

Die Anzahl der Einträge, die in den codierten Daten delta-codiert 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-Coder codiert werden.

Ein base64-codierter String.

RiceDeltaEncoded64Bit

Wie RiceDeltaEncoded32Bit, nur dass hier 64-Bit-Zahlen codiert werden.

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

string

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

riceParameter

integer

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

entriesCount

integer

Die Anzahl der Einträge, die in den codierten Daten delta-codiert 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-Coder codiert werden.

Ein base64-codierter String.

RiceDeltaEncoded128Bit

Wie RiceDeltaEncoded32Bit, nur dass hier 128-Bit-Zahlen codiert werden.

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 Bits 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 (einschließlich).

entriesCount

integer

Die Anzahl der Einträge, die in den codierten Daten delta-codiert 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-Coder codiert werden.

Ein base64-codierter String.

RiceDeltaEncoded256Bit

Wie RiceDeltaEncoded32Bit, nur dass hier 256-Bit-Zahlen codiert werden.

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. Bits des ersten Eintrags in den codierten Daten (Hashes). Wenn das Feld leer ist, sind die Bits 65 bis 128 alle null.

firstValueThirdPart

string (uint64 format)

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

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 Bits 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 delta-codiert 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-Coder codiert werden.

Ein base64-codierter String.

HashListMetadata

Metadaten zu einer bestimmten Hash-Liste.

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

enum (ThreatType)

Unsortierte Liste. Wenn diese Liste nicht leer ist, gibt sie an, dass die Hash-Liste eine Art Bedrohungsliste ist. Außerdem werden die Arten von Bedrohungen aufgeführt, die mit Hashes oder Hash-Präfixen in dieser Hash-Liste verknüpft sind. Kann leer sein, wenn der Eintrag keine Bedrohung darstellt, z.B. wenn er einen wahrscheinlich sicheren Typ darstellt.

likelySafeTypes[]

enum (LikelySafeType)

Unsortierte Liste. Wenn diese Liste nicht leer ist, gibt sie an, dass die Hash-Liste eine Liste wahrscheinlich sicherer Hashes darstellt. Außerdem werden die Gründe dafür aufgeführt, warum sie als wahrscheinlich sicher gelten. Dieses Feld schließt das Feld „threatTypes“ aus.

description

string

Eine für Menschen lesbare Beschreibung dieser Liste. Auf Englisch verfasst.

hashLength

enum (HashLength)

Die unterstützte Hashlänge für diese Hashliste. Jede Hash-Liste unterstützt genau eine Länge. Wenn für dieselben Arten von Bedrohungen oder sicheren Typen eine andere Hash-Länge eingeführt wird, wird sie als separate Liste mit einem eindeutigen Namen und der entsprechenden Hash-Länge eingeführt.

ThreatType

Arten von Bedrohungen.

Enums
THREAT_TYPE_UNSPECIFIED Unbekannter Bedrohungstyp. Wenn dies vom Server zurückgegeben wird, muss der Client das umschließende FullHashDetail 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 findest du hier.

SOCIAL_ENGINEERING

Social-Engineering-Bedrohungstyp. Auf Social Engineering-Seiten wird fälschlicherweise behauptet, dass sie im Namen eines Dritten handeln. Zuschauer sollen so dazu gebracht werden, eine Aktion auszuführen, die sie nur einem echten Vertreter dieses Dritten anvertrauen würden. Phishing ist eine Form von Social Engineering, bei der der Zuschauer durch Täuschung dazu gebracht werden soll, bestimmte Informationen wie Anmeldedaten preiszugeben.

Weitere Informationen findest du hier.

UNWANTED_SOFTWARE Bedrohungstyp „Unerwünschte Software“. Unerwünschte Software ist Software, die nicht den Software-Prinzipien von Google entspricht, aber keine Malware ist.
POTENTIALLY_HARMFUL_APPLICATION Der Bedrohungstyp „Potenziell schädliche App“ wie er von Google Play Protect für den Play Store verwendet wird.

LikelySafeType

Arten von Websites, die wahrscheinlich sicher sind.

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

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

HashLength

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

Enums
HASH_LENGTH_UNSPECIFIED Nicht angegebene Länge.
FOUR_BYTES Jeder Hash ist ein 4‑Byte-Präfix.
EIGHT_BYTES Jeder Hash ist ein Acht-Byte-Präfix.
SIXTEEN_BYTES Jeder Hash ist ein 16‑Byte-Präfix.
THIRTY_TWO_BYTES Jeder Hash ist ein 32 Byte langer vollständiger Hash.

Methoden

get

Ruft die aktuellen Inhalte einer Hash-Liste ab.