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,
  "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.
}
Felder
name

string

Der Name der Hash-Liste. Beachten Sie, dass der globale Cache auch nur eine Hash-Liste ist, auf die hier verwiesen werden kann.

version

string (bytes format)

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

Ein base64-codierter String.

partialUpdate

boolean

Wenn wahr, ist dies ein partieller Unterschied, der Ergänzungen und Löschungen auf Basis dessen enthält, was der Client bereits hat. Bei „false“ ist dies die vollständige Hash-Liste.

Bei „false“ MUSS der Client jede lokal gespeicherte Version für diese Hash-Liste löschen. Das bedeutet, dass entweder die dem Client vorhandene Version erheblich veraltet ist oder die Kundendaten als beschädigt angesehen werden. Das Feld „compressedRemovals“ ist leer.

Wenn der Wert „true“ ist, MÜSSEN die Kunden eine schrittweise Aktualisierung vornehmen, indem sie zuerst Löschungen und dann Ergänzungen anwenden.

compressedRemovals

object (RiceDeltaEncoded32Bit)

Die für die Rice-Delta-codierte Version der Entfernungsindexe. Da jede Hash-Liste definitiv weniger als 2^32 Einträge enthält, werden die Indizes als 32-Bit-Ganzzahlen behandelt und codiert.

minimumWaitDuration

string (Duration format)

Clients sollten mindestens so lange warten, bis sie die Hash-Liste noch einmal erhalten. Wenn der Wert weggelassen wird oder null ist, SOLLTEN die Clients sofort abrufen, da dies bedeutet, dass vom Server ein zusätzliches Update an den Client gesendet werden muss, dies aufgrund der vom Client festgelegten Einschränkungen jedoch nicht möglich ist.

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

metadata

object (HashListMetadata)

Metadaten zur Hash-Liste. Dieses Feld wird nicht von der hashList.get-Methode ausgefüllt, sondern von der ListHashLists-Methode.

Union-Feld compressed_additions. Die für die Rice-Delta-codierte Version der Ergänzungen. Die Hash-Präfixlängen von Hinzufügungen sind für alle Zusätze in der Liste einheitlich. Es handelt sich entweder um die desired_hash_length, die vom Client gesendet wurde, oder einen vom Server ausgewählten Wert, falls der Client dieses Feld ausgelassen hat. 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.

Union-Feld checksum. Dies ist die Prüfsumme für die sortierte Liste aller Hashes, die nach dem Anwenden des Updates in der Datenbank vorhanden sind. Dies ist ein „oneof“ , um mehrere Hash-Algorithmen zuzulassen. Es ist auch möglich, dass der Server dieses Feld auslässt (falls keine Aktualisierungen bereitgestellt wurden), um anzugeben, dass der Client die vorhandene Prüfsumme verwenden soll. Für checksum ist nur einer der folgenden Werte zulässig:
sha256Checksum

string (bytes format)

Die sortierte Liste aller Hashes, wieder mit SHA256 gehasht.

Ein base64-codierter String.

RiceDeltaEncoded32Bit

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

Wenn wir alle Einträge lexikografisch sortieren, werden wir im Allgemeinen feststellen, dass sich die Bits höherer Ordnung weniger häufig ändern als die Bits niedrigerer Ordnung. Wenn wir also auch die benachbarte Differenz zwischen den Einträgen nehmen, haben die Bits höherer Ordnung eine hohe Wahrscheinlichkeit, null zu sein. Diese hohe Wahrscheinlichkeit von Null wird ausgenutzt, indem im Grunde eine bestimmte Anzahl von Bits ausgewählt wird. dass alle Bits wahrscheinlich Null sind, also verwenden wir eine unäre Codierung. Weitere Informationen finden Sie im Feld riceParameter.

Historischer Hinweis: Die Rice-Delta-Codierung wurde erstmals in Version 4 dieses APIs verwendet. In Version 5 wurden zwei wesentliche 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 nun 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 der Wert dieses Eintrags, wenn nur ein einziger Hash-Präfix oder Index codiert wurde. Wenn das Feld leer ist, lautet der Eintrag null.

riceParameter

integer

Der Parameter Golomb-Rice. 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 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 bei RiceDeltaEncoded32Bit, außer dass damit 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, wenn nur ein einzelnes Hash-Präfix codiert wurde, der Wert dieses Eintrags. Wenn das Feld leer ist, lautet der Eintrag null.

riceParameter

integer

Der Parameter Golomb-Rice. 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 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

Entspricht RiceDeltaEncoded32Bit, außer dass 128-Bit-Zahlen codiert werden.

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

string

Die oberen 64 Bits 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 Bits des ersten Eintrags in den codierten Daten (Hashes). Wenn das Feld leer ist, sind die unteren 64 Bit alle null.

riceParameter

integer

Der Parameter Golomb-Rice. 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 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 bei RiceDeltaEncoded32Bit, außer dass damit 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 Bits des ersten Eintrags in den codierten Daten (Hashes). Wenn das Feld leer ist, sind die ersten 64 Bit 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 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 129- bis 192. Bits alle null.

firstValueFourthPart

string (uint64 format)

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

riceParameter

integer

Der Parameter Golomb-Rice. 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 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)
  ],
  "mobileOptimized": boolean,
  "description": string,
  "supportedHashLengths": [
    enum (HashLength)
  ]
}
Felder
threatTypes[]

enum (ThreatType)

Unsortierte Liste. Wenn das Feld nicht leer ist, wird damit angegeben, dass die Hash-Liste eine Art Bedrohungsliste ist. Außerdem werden die mit Hashes oder Hash-Präfixen verbundenen Bedrohungen aufgeführt. Kann leer sein, wenn der Eintrag keine Bedrohung darstellt, d.h. wenn es sich um einen wahrscheinlich sicheren Typ handelt.

likelySafeTypes[]

enum (LikelySafeType)

Unsortierte Liste. Wenn das Feld nicht leer ist, gibt dies an, dass die Hash-Liste eine Liste wahrscheinlich sicherer Hashes darstellt. Dadurch werden die Arten aufgelistet, auf die sie als wahrscheinlich sicher eingestuft werden. Dieses Feld schließt sich mit dem Feld „ ThreatTypes“ gegenseitig aus.

mobileOptimized

boolean

Gibt an, ob diese Liste für Mobilgeräte (Android und iOS) optimiert ist.

description

string

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

supportedHashLengths[]

enum (HashLength)

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

ThreatType

Arten von Bedrohungen

Enums
THREAT_TYPE_UNSPECIFIED Unbekannter Bedrohungstyp. Wenn dies vom Server zurückgegeben wird, muss der Client das 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

Social-Engineering-Bedrohungstyp. Social-Engineering-Seiten geben vor, im Namen eines Dritten zu handeln, um Zuschauer dazu zu bringen, eine Aktion durchzuführen, bei der sie nur einem echten Vertreter dieses Drittanbieters vertrauen würden. Phishing ist eine Form von Social Engineering, bei der Zuschauer dazu verleitet werden, bestimmte Informationen wie Anmeldedaten anzugeben.

Weitere Informationen finden Sie hier.

UNWANTED_SOFTWARE Der Bedrohungstyp für unerwünschte Software. Unerwünschte Software ist Software, die nicht den Google-Prinzipien in Bezug auf Software entspricht, aber keine Malware ist.
POTENTIALLY_HARMFUL_APPLICATION Potenziell schädlicher Anwendungsbedrohungstyp, wie er von Google Play Protect für den Play Store verwendet wird.

LikelySafeType

Arten von wahrscheinlich sicheren Websites.

Beachte, dass SearchHashesResponse LikelySafeType absichtlich nicht enthält.

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

HashLength

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

Enums
HASH_LENGTH_UNSPECIFIED Länge nicht angegeben. Der Server gibt diesen Wert nicht in Antworten an den Client zurück (im Feld supportedHashLengths). Der Client kann diesen Wert jedoch an den Server senden (im Feld desiredHashLength). In diesem Fall wählt der Server automatisch einen Wert aus. Clients sollten zulassen, dass der Server einen Wert auswählt.
FOUR_BYTES Jeder Hash ist ein 4-Byte-Präfix.
EIGHT_BYTES Jeder Hash ist ein 8-Byte-Präfix.
SIXTEEN_BYTES Jeder Hash ist ein 16-Byte-Präfix.
THIRTY_TWO_BYTES Jeder Hash ist ein vollständiger 32-Byte-Hash-Wert.

Methoden

get

Rufen Sie den aktuellen Inhalt einer Hash-Liste ab.