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,
  "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 ebenfalls nur eine Hash-Liste ist und hier Bezug genommen werden kann.

version

string (bytes format)

Die Version der Hash-Liste. Der Client DARF diese Byte NICHT bearbeiten.

Ein base64-codierter String.

partialUpdate

boolean

Wenn „true“ festgelegt ist, ist dies ein partieller Unterschied, der Ergänzungen und Entfernungen auf Grundlage der bereits vorhandenen Elemente des Clients enthält. 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. Dies bedeutet, dass entweder die Version des Clients wirklich veraltet ist oder dass angenommen wird, dass die Clientdaten beschädigt sind. Das Feld „compressedRemovals“ ist leer.

Wenn dies auf „true“ gesetzt ist, MUSS der Client ein inkrementelles Update anwenden, indem Entfernungen und dann Ergänzungen angewendet werden.

compressedRemovals

object (RiceDeltaEncoded32Bit)

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 abrufen können. Wird er weggelassen oder null, MÖCHTEN die Clients sofort abrufen, da dies anzeigt, dass der Server ein weiteres Update an den Client senden muss, aber aufgrund der vom Client angegebenen Einschränkungen nicht möglich ist.

Eine Dauer in Sekunden mit bis zu neun Nachkommastellen, die auf „s“ endet. Beispiel: "3.5s".

metadata

object (HashListMetadata)

Metadaten zur Hash-Liste. Dieser Wert wird von der Methode hashList.get nicht automatisch ausgefüllt, sondern von der Methode ListHashLists.

Union-Feld compressed_additions. Die Rice-Delta-codierte Version von Ergänzungen. Die Länge des Hash-Präfixes für Hinzufügungen ist für alle Hinzufügungen in der Liste einheitlich. 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-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 in der Datenbank vorhandenen Hashes, nachdem das bereitgestellte Update angewendet wurde. Dies ist ein „oneof“-Feld, das mehrere Hash-Algorithmen zulässt. Der Server kann dieses Feld auch auslassen (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, nochmals mit SHA256 gehasht.

Ein base64-codierter String.

RiceDeltaEncoded32Bit

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

Allgemein gilt: Wenn wir alle Einträge lexikografisch sortieren, werden wir feststellen, dass sich die Bits höherer Ordnung tendenziell nicht so häufig ändern wie Bits niedrigerer Ordnung. Wenn wir also auch die benachbarte Differenz zwischen den Einträgen berücksichtigen, haben die Bits höherer Ordnung eine hohe Wahrscheinlichkeit, null zu sein. Diese hohe Wahrscheinlichkeit von Null wird ausgenutzt, indem im Wesentlichen eine bestimmte Anzahl von Bits ausgewählt wird. Alle Bits, die größer sind als diese, sind wahrscheinlich null, daher verwenden wir die unäre Codierung. Siehe Feld riceParameter.

Hinweis: Die Rice-Delta-Codierung wurde erstmals in Version 4 dieser API verwendet. In V5 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 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 Indizes) oder, wenn nur ein einzelnes Hash-Präfix oder -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 Deltacodiert sind. Wenn nur eine einzelne Ganzzahl codiert wurde, ist dies 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, mit dem Unterschied, dass 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, 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 Deltacodiert sind. Wenn nur eine einzelne Ganzzahl codiert wurde, ist dies 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, mit dem Unterschied, dass 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 Bits 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 Deltacodiert sind. Wenn nur eine einzelne Ganzzahl codiert wurde, ist dies 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, mit dem Unterschied, dass 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. 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 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 Deltacodiert sind. Wenn nur eine einzelne Ganzzahl codiert wurde, ist dies 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, gibt es an, dass es sich bei der Hash-Liste um eine Art von Bedrohungsliste handelt. Es listet die Art der Bedrohungen auf, die mit Hashes oder Hash-Präfixen in dieser Hash-Liste verbunden sind. Kann leer sein, wenn der Eintrag keine Bedrohung darstellt, z.B. wenn es sich um einen wahrscheinlich sicheren Typ handelt.

likelySafeTypes[]

enum (LikelySafeType)

Unsortierte Liste. Wenn das Feld nicht leer ist, wird hier angegeben, dass die Hash-Liste eine Liste wahrscheinlich sicherer Hashes darstellt. Darüber hinaus werden diese aufgezählt, wie sie als wahrscheinlich sicher eingestuft werden. Dieses Feld und das Feld threatTypes schließen sich gegenseitig aus.

mobileOptimized

boolean

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

description

string

Eine menschenlesbare Beschreibung dieser Liste. Auf Englisch verfasst.

supportedHashLengths[]

enum (HashLength)

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

ThreatType

Arten von Bedrohungen.

Enums
THREAT_TYPE_UNSPECIFIED Unbekannter Bedrohungstyp. Wird dies vom Server zurückgegeben, muss der Client die einschließ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

Bedrohungstyp des Social Engineering. Social-Engineering-Seiten geben vor, im Namen eines Dritten zu handeln, um Zuschauer zu einer Aktion zu bewegen, bei der sie nur einem wahren Vertreter dieses Dritten vertrauen würden. Phishing ist eine Art von Social Engineering, bei der Zuschauer dazu verleitet werden, eine bestimmte Aktion auszuführen, bei der Informationen wie Anmeldedaten angegeben werden.

Weitere Informationen finden Sie hier.

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

LikelySafeType

Arten wahrscheinlich sicherer Websites.

Beachten Sie, dass LikelySafeType absichtlich nicht in SearchHashesResponse enthalten ist.

Enums
LIKELY_SAFE_TYPE_UNSPECIFIED Unbekannt.
GENERAL_BROWSING Diese Website ist wahrscheinlich sicher genug für allgemeines Surfen. Dies 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 sicher genug, sodass Downloads von der Website nicht überprüft werden müssen.

HashLength

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

Enums
HASH_LENGTH_UNSPECIFIED Nicht angegebene Länge. Der Server gibt diesen Wert nicht als Antwort an den Client zurück (im Feld supportedHashLengths), darf ihn aber an den Server senden (im Feld desiredHashLength). In diesem Fall wählt der Server automatisch einen Wert aus. Clients SOLLTE den Server einen Wert auswählen lassen.
FOUR_BYTES Jeder Hash ist ein Vier-Byte-Präfix.
EIGHT_BYTES Jeder Hash ist ein 8-Byte-Präfix.
SIXTEEN_BYTES Jeder Hash ist ein Präfix von 16 Byte.
THIRTY_TWO_BYTES Jeder Hash ist ein vollständiger Hash mit 32 Byte.

Methoden

get

Ruft den neuesten Inhalt einer Hash-Liste ab.