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

string

Il nome dell'elenco hash. Tieni presente che anche la cache globale è solo un elenco di hash e qui puoi fare riferimento.

version

string (bytes format)

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

Una stringa con codifica base64.

partialUpdate

boolean

Se true, si tratta di una differenza parziale che contiene aggiunte e rimozioni basate sui dati già in suo possesso. Se il valore è false, si tratta dell'elenco hash completo.

Se il valore è false, il client DEVE eliminare qualsiasi versione memorizzata localmente per l'elenco di hash. Ciò significa che la versione in possesso del client è gravemente obsoleta oppure che i dati del client si ritiene corrotti. Il campo compressedRemovals sarà vuoto.

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

compressedRemovals

object (RiceDeltaEncoded32Bit)

La versione con codifica 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 clienti devono attendere almeno questo tempo per ottenere nuovamente l'elenco di hash. Se omesso o zero, i client DEVONO recuperare immediatamente perché indica che il server ha un aggiornamento aggiuntivo da inviare al client, ma non potrebbe a causa dei vincoli specificati dal client.

Durata in secondi con un massimo di nove cifre frazionarie e termina con "s". Esempio: "3.5s".

metadata

object (HashListMetadata)

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

Campo unione compressed_additions. La versione codificata del riso-delta delle aggiunte. La lunghezza del prefisso hash delle aggiunte è uniforme in tutte le aggiunte nell'elenco. Si tratta del valore desired_hash_length inviato dal client o di un valore scelto dal server se il client ha omesso questo campo. compressed_additions può essere solo uno dei seguenti:
additionsFourBytes

object (RiceDeltaEncoded32Bit)

Le aggiunte a 4 byte.

additionsEightBytes

object (RiceDeltaEncoded64Bit)

Le aggiunte da 8 byte.

additionsSixteenBytes

object (RiceDeltaEncoded128Bit)

Le aggiunte da 16 byte.

additionsThirtyTwoBytes

object (RiceDeltaEncoded256Bit)

Le aggiunte a 32 byte.

Campo unione checksum. Questo è il checksum per l'elenco ordinato di tutti gli hash presenti nel database dopo l'applicazione dell'aggiornamento fornito. Questo è un "oneof" per consentire più algoritmi di hashing. Il server può anche omettere questo campo (nel caso in cui non sia stato fornito alcun aggiornamento) per indicare che il client deve utilizzare il checksum esistente. checksum può essere solo uno dei seguenti:
sha256Checksum

string (bytes format)

L'elenco ordinato di tutti gli hash, nuovamente sottoposto ad hashing con l'algoritmo SHA256.

Una stringa con codifica base64.

RisoDeltaCodificato32Bit

I dati codificati di Rice-Golomb. Utilizzato per gli hash o gli indici di rimozione. È garantito che ogni hash o indice abbia la stessa lunghezza e che questa lunghezza sia esattamente di 32 bit.

In generale, se ordiniamo tutte le voci in modo lessicografico, scopriamo che i bit di ordine superiore tendono a non cambiare con la stessa frequenza dei bit di ordine inferiore. Ciò significa che se prendiamo in considerazione anche la differenza adiacente tra le voci, è molto probabile che i bit di ordine superiore siano pari a zero. Questo sfrutta questa alta probabilità di zero scegliendo essenzialmente un certo numero di bit; tutti i bit più significativi di questo sono probabilmente zero, quindi utilizziamo una codifica unaria. Visualizza il campo riceParameter.

Nota storica: la codifica Rice-delta è stata utilizzata per la prima volta nella versione V4 di questa API. Nella V5, sono stati apportati due miglioramenti significativi: in primo luogo, 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, in modo da evitare una costosa fase 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 o indice hash, il valore di quella voce. Se il campo è vuoto, il valore è zero.

riceParameter

integer

Il parametro Golomb-Rice. Questo parametro garantisce un valore compreso tra 3 e 30 inclusi.

entriesCount

integer

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

encodedData

string (bytes format)

I delta codificati che vengono codificati utilizzando il programmatore Golomb-Rice.

Una stringa con codifica base64.

RisoDeltaCodificato64Bit

Uguale a RiceDeltaEncoded32Bit, tranne che per la codifica di 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 un solo prefisso hash, il valore di quella voce. Se il campo è vuoto, il valore è zero.

riceParameter

integer

Il parametro Golomb-Rice. Questo parametro garantisce un valore compreso tra 35 e 62 inclusi.

entriesCount

integer

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

encodedData

string (bytes format)

I delta codificati che vengono codificati utilizzando il programmatore Golomb-Rice.

Una stringa con codifica base64.

RisoDeltaCodificato128Bit

Uguale a RiceDeltaEncoded32Bit, ad eccezione del fatto che codifica i 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 più bassi della prima voce nei dati codificati (hash). Se il campo è vuoto, i 64 bit inferiori sono tutti zero.

riceParameter

integer

Il parametro Golomb-Rice. Questo parametro garantisce un valore compreso tra 99 e 126 inclusi.

entriesCount

integer

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

encodedData

string (bytes format)

I delta codificati che vengono codificati utilizzando il programmatore Golomb-Rice.

Una stringa con codifica base64.

RisoDeltaCodificato256Bit

Uguale a RiceDeltaEncoded32Bit tranne che per la codifica di 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. Garantiamo che questo parametro sia compreso tra 227 e 254 inclusi.

entriesCount

integer

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

encodedData

string (bytes format)

I delta codificati che vengono codificati utilizzando il programmatore Golomb-Rice.

Una stringa con codifica base64.

HashListMetadata

I metadati relativi a un determinato elenco hash.

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

enum (ThreatType)

Elenco non ordinato. Se non è vuoto, specifica che l'elenco hash è un tipo di elenco di minacce e indica il tipo di minacce associate ad hash o prefissi hash nell'elenco. Può essere vuoto se la voce non rappresenta una minaccia, ovvero nel caso in cui rappresenti un tipo probabilmente sicuro.

likelySafeTypes[]

enum (LikelySafeType)

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

mobileOptimized

boolean

Se questo elenco è ottimizzato per i dispositivi mobili (Android e iOS).

description

string

Una descrizione leggibile di questo elenco. Scritta in inglese.

supportedHashLengths[]

enum (HashLength)

Le lunghezze hash supportate per questo elenco di hash. Ogni elenco hash supporta almeno una lunghezza. Pertanto, il campo non sarà vuoto.

ThreatType

Tipi di minacce.

Enum
THREAT_TYPE_UNSPECIFIED Tipo di minaccia sconosciuto. Se viene restituito dal server, il client ignora del tutto il contenuto FullHashDetail che contiene.
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 impropriamente di agire per conto di una terza parte con l'intento di confondere gli spettatori inducendoli a eseguire un'azione con cui si fida di un vero agente di quella terza parte. Il phishing è un tipo di ingegneria sociale che induce con l'inganno il visualizzatore a eseguire l'azione specifica di fornire informazioni, come le credenziali di accesso.

Ulteriori informazioni sono disponibili qui.

UNWANTED_SOFTWARE Tipo di minaccia software indesiderato. Per software indesiderato si intende qualsiasi software che non è conforme ai Principi sul software di Google, ma non è malware.
POTENTIALLY_HARMFUL_APPLICATION Tipo di minaccia delle applicazioni potenzialmente dannose 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 sufficientemente sicuro per la navigazione generica. È nota anche come cache globale.
CSD Questo sito è probabilmente abbastanza sicuro che non è necessario eseguire modelli di rilevamento lato client o controlli di protezione tramite password.
DOWNLOAD Questo sito è probabilmente abbastanza sicuro da non dover controllare i download dal sito.

HashLength

La lunghezza degli hash in un elenco di hash.

Enum
HASH_LENGTH_UNSPECIFIED Lunghezza non specificata. Il server non restituirà questo valore nelle risposte al client (nel campo supportedHashLengths), ma può inviare questo valore al server (nel campo desiredHashLength) e il server ne sceglierà automaticamente uno. I client DEVONO lasciare che il server scelga un valore.
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 sedici byte.
THIRTY_TWO_BYTES Ogni hash è un hash completo da 32 byte.

Metodi

get

Recupera i contenuti più recenti di un elenco hash.