REST Resource: hashList

Risorsa: HashList

Un elenco di hash identificati dal nome.

Rappresentazione JSON
{
  "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.
}
Campi
name

string

Il nome dell'elenco di hash. Tieni presente che anche la cache globale è solo un elenco di hash e può essere consultata qui.

version

string (bytes format)

La versione dell'elenco di hash. Il client NON DEVE manipolare questi byte.

Una stringa con codifica in base64.

partialUpdate

boolean

Se è true, si tratta di una differenza parziale contenente aggiunte e rimozioni in base a ciò che il client ha già. Se il valore è false, si tratta dell'elenco completo degli hash.

Se il valore è false, il client DEVE eliminare qualsiasi versione archiviata localmente per questo elenco di hash. Ciò significa che la versione in possesso del client è molto obsoleta o che si ritiene che i dati del client siano danneggiati. Il campo compressedRemovals sarà vuoto.

Se true, il client DEVE applicare un aggiornamento incrementale applicando le rimozioni e poi le aggiunte.

compressedRemovals

object (RiceDeltaEncoded32Bit)

La versione codificata Rice-delta degli indici di rimozione. Poiché ogni elenco di hash contiene sicuramente meno di 2^32 voci, gli indici vengono trattati come numeri interi a 32 bit e codificati.

minimumWaitDuration

string (Duration format)

I client devono attendere almeno questo periodo di tempo per ottenere di nuovo l'elenco degli hash. Se omesso o pari a zero, i client DEVONO recuperare immediatamente perché indica che il server ha un aggiornamento aggiuntivo da inviare al client, ma non è stato possibile a causa dei vincoli specificati dal client.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

sha256Checksum

string (bytes format)

L'elenco ordinato di tutti gli hash, sottoposti nuovamente ad hashing con SHA256. Questo è il checksum dell'elenco ordinato di tutti gli hash presenti nel database dopo l'applicazione dell'aggiornamento fornito. Nel caso in cui non siano stati forniti aggiornamenti, il server ometterà questo campo per indicare che il client deve utilizzare il checksum esistente.

Una stringa con codifica in base64.

metadata

object (HashListMetadata)

Metadati sull'elenco di hash. Questo campo non viene compilato dal metodo hashList.get, ma dal metodo ListHashLists.

Campo unione compressed_additions. La versione codificata con codifica Rice-delta delle aggiunte. Le lunghezze dei prefissi hash delle aggiunte sono uniformi in tutte le aggiunte dell'elenco. compressed_additions può essere solo uno dei seguenti tipi:
additionsFourBytes

object (RiceDeltaEncoded32Bit)

Le aggiunte di 4 byte.

additionsEightBytes

object (RiceDeltaEncoded64Bit)

Le aggiunte di 8 byte.

additionsSixteenBytes

object (RiceDeltaEncoded128Bit)

Le aggiunte di 16 byte.

additionsThirtyTwoBytes

object (RiceDeltaEncoded256Bit)

Le aggiunte di 32 byte.

RiceDeltaEncoded32Bit

I dati codificati con Rice-Golomb. Utilizzato per gli hash o gli indici di rimozione. È garantito che ogni hash o indice qui abbia la stessa lunghezza, ovvero esattamente 32 bit.

In generale, se ordiniamo tutte le voci in ordine lessicografico, noteremo che i bit di ordine superiore tendono a non cambiare con la stessa frequenza di quelli di ordine inferiore. Ciò significa che, se consideriamo anche la differenza adiacente tra le voci, i bit di ordine superiore hanno un'alta probabilità di essere zero. Sfrutta questa elevata probabilità di zero scegliendo essenzialmente un certo numero di bit. Tutti i bit più significativi di questo sono probabilmente zero, quindi utilizziamo la codifica unaria. Consulta il campo riceParameter.

Nota storica: la codifica Rice-delta è stata utilizzata per la prima volta nella versione 4 di questa API. Nella versione 5 sono stati apportati due miglioramenti significativi: innanzitutto, la codifica Rice-delta è ora disponibile con prefissi hash più lunghi di 4 byte; in secondo luogo, i dati codificati vengono ora trattati come big-endian per evitare un costoso passaggio di ordinamento.

Rappresentazione JSON
{
  "firstValue": integer,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Campi
firstValue

integer (uint32 format)

La prima voce nei dati codificati (hash o indici) oppure, se è stato codificato un solo prefisso hash o indice, il valore di questa voce. Se il campo è vuoto, la voce è zero.

riceParameter

integer

Il parametro Golomb-Rice. È garantito che questo parametro sia compreso tra 3 e 30 inclusi.

entriesCount

integer

Il numero di voci codificate in modo differenziale nei dati codificati. Se è stato codificato un solo numero intero, questo sarà zero e il singolo valore verrà memorizzato in firstValue.

encodedData

string (bytes format)

I delta codificati utilizzando il codificatore Golomb-Rice.

Una stringa con codifica in base64.

RiceDeltaEncoded64Bit

Uguale a RiceDeltaEncoded32Bit, tranne per il fatto che codifica i numeri a 64 bit.

Rappresentazione JSON
{
  "firstValue": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Campi
firstValue

string

La prima voce nei dati codificati (hash) o, se è stato codificato solo un prefisso hash, il valore di questa voce. Se il campo è vuoto, la voce è zero.

riceParameter

integer

Il parametro Golomb-Rice. È garantito che questo parametro sia compreso tra 35 e 62 inclusi.

entriesCount

integer

Il numero di voci codificate in modo differenziale nei dati codificati. Se è stato codificato un solo numero intero, questo sarà zero e il singolo valore verrà memorizzato in firstValue.

encodedData

string (bytes format)

I delta codificati utilizzando il codificatore Golomb-Rice.

Una stringa con codifica in base64.

RiceDeltaEncoded128Bit

Uguale a RiceDeltaEncoded32Bit, tranne per il fatto che codifica numeri a 128 bit.

Rappresentazione JSON
{
  "firstValueHi": string,
  "firstValueLo": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Campi
firstValueHi

string

I 64 bit superiori della prima voce nei dati codificati (hash). Se il campo è vuoto, i 64 bit superiori sono tutti zero.

firstValueLo

string (uint64 format)

I 64 bit inferiori della prima voce nei dati codificati (hash). Se il campo è vuoto, i 64 bit inferiori sono tutti zero.

riceParameter

integer

Il parametro Golomb-Rice. È garantito che questo parametro sia compreso tra 99 e 126 inclusi.

entriesCount

integer

Il numero di voci codificate in modo differenziale nei dati codificati. Se è stato codificato un solo numero intero, questo sarà zero e il singolo valore verrà memorizzato in firstValue.

encodedData

string (bytes format)

I delta codificati utilizzando il codificatore Golomb-Rice.

Una stringa con codifica in base64.

RiceDeltaEncoded256Bit

Uguale a RiceDeltaEncoded32Bit, ma codifica numeri a 256 bit.

Rappresentazione JSON
{
  "firstValueFirstPart": string,
  "firstValueSecondPart": string,
  "firstValueThirdPart": string,
  "firstValueFourthPart": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Campi
firstValueFirstPart

string

I primi 64 bit della prima voce nei dati codificati (hash). Se il campo è vuoto, i primi 64 bit sono tutti zero.

firstValueSecondPart

string (uint64 format)

I bit da 65 a 128 della prima voce nei dati codificati (hash). Se il campo è vuoto, i bit da 65 a 128 sono tutti zero.

firstValueThirdPart

string (uint64 format)

I bit da 129 a 192 della prima voce nei dati codificati (hash). Se il campo è vuoto, i bit da 129 a 192 sono tutti zero.

firstValueFourthPart

string (uint64 format)

Gli ultimi 64 bit della prima voce nei dati codificati (hash). Se il campo è vuoto, gli ultimi 64 bit sono tutti zero.

riceParameter

integer

Il parametro Golomb-Rice. È garantito che questo parametro sia compreso tra 227 e 254 inclusi.

entriesCount

integer

Il numero di voci codificate in modo differenziale nei dati codificati. Se è stato codificato un solo numero intero, questo sarà zero e il singolo valore verrà memorizzato in firstValue.

encodedData

string (bytes format)

I delta codificati utilizzando il codificatore Golomb-Rice.

Una stringa con codifica in base64.

HashListMetadata

Metadati relativi a un particolare elenco di hash.

Rappresentazione JSON
{
  "threatTypes": [
    enum (ThreatType)
  ],
  "likelySafeTypes": [
    enum (LikelySafeType)
  ],
  "description": string,
  "hashLength": enum (HashLength)
}
Campi
threatTypes[]

enum (ThreatType)

Elenco non ordinato. Se non è vuoto, specifica che l'elenco di hash è un tipo di elenco di minacce ed elenca i tipi di minacce associati agli hash o ai prefissi hash in questo elenco. Può essere vuoto se la voce non rappresenta una minaccia, ad esempio nel caso in cui rappresenti un tipo probabilmente sicuro.

likelySafeTypes[]

enum (LikelySafeType)

Elenco non ordinato. Se non è vuoto, specifica che l'elenco di hash rappresenta un elenco di hash probabilmente sicuri ed elenca i modi in cui vengono considerati probabilmente sicuri. Questo campo si esclude a vicenda con il campo threatTypes.

description

string

Una descrizione leggibile di questo elenco. Scritto in inglese.

hashLength

enum (HashLength)

La lunghezza dell'hash supportata per questo elenco di hash. Ogni elenco di hash supporta una sola lunghezza. Se viene introdotta una lunghezza dell'hash diversa per lo stesso insieme di tipi di minacce o tipi sicuri, verrà introdotta come elenco separato con un nome distinto e una lunghezza dell'hash impostata.

ThreatType

Tipi di minacce.

Enum
THREAT_TYPE_UNSPECIFIED Tipo di minaccia sconosciuto. Se questo valore viene restituito dal server, il client deve ignorare completamente il FullHashDetail racchiuso.
MALWARE

Tipo di minaccia malware. I malware sono software o applicazioni per dispositivi mobili pensati appositamente per danneggiare un computer, un dispositivo mobile, il software in esecuzione o gli utenti. I comportamenti dei malware includono l'installazione di software senza il consenso dell'utente e l'installazione di software dannoso, come i virus.

Ulteriori informazioni sono disponibili qui.

SOCIAL_ENGINEERING

Tipo di minaccia di ingegneria sociale. Le pagine di ingegneria sociale dichiarano falsamente di agire per conto di una terza parte con l'intenzione di indurre gli spettatori a eseguire un'azione che farebbero solo per un vero agente di quella terza parte. Il phishing è un tipo di ingegneria sociale che induce con l'inganno lo spettatore a compiere l'azione specifica di fornire informazioni, ad esempio le credenziali di accesso.

Ulteriori informazioni sono disponibili qui.

UNWANTED_SOFTWARE Tipo di minaccia di software indesiderato. Il software indesiderato è qualsiasi software che non rispetta i Principi sul software di Google, ma non è malware.
POTENTIALLY_HARMFUL_APPLICATION Tipo di minaccia di applicazione potenzialmente dannosa come utilizzato da Google Play Protect per il Play Store.

LikelySafeType

Tipi di siti probabilmente sicuri.

Tieni presente che SearchHashesResponse non contiene intenzionalmente LikelySafeType.

Enum
LIKELY_SAFE_TYPE_UNSPECIFIED Sconosciuto.
GENERAL_BROWSING Questo sito è probabilmente abbastanza sicuro per la navigazione generale. Questa è nota anche come cache globale.
CSD Questo sito è probabilmente abbastanza sicuro da non richiedere l'esecuzione di modelli di rilevamento lato client o controlli di protezione con password.
DOWNLOAD Questo sito è probabilmente abbastanza sicuro da non richiedere il controllo dei download.

HashLength

La lunghezza degli hash in un elenco di hash.

Enum
HASH_LENGTH_UNSPECIFIED Lunghezza non specificata.
FOUR_BYTES Ogni hash è un prefisso di quattro byte.
EIGHT_BYTES Ogni hash è un prefisso di otto byte.
SIXTEEN_BYTES Ogni hash è un prefisso di 16 byte.
THIRTY_TWO_BYTES Ogni hash è un hash completo di 32 byte.

Metodi

get

Recupera i contenuti più recenti di un elenco di hash.