Indice
SafeBrowsing
(interfaccia)BatchGetHashListsRequest
(messaggio)BatchGetHashListsResponse
(messaggio)FullHash
(messaggio)FullHash.FullHashDetail
(messaggio)GetHashListRequest
(messaggio)HashList
(messaggio)HashListMetadata
(messaggio)HashListMetadata.HashLength
(enum)LikelySafeType
(enum)ListHashListsRequest
(messaggio)ListHashListsResponse
(messaggio)RiceDeltaEncoded128Bit
(messaggio)RiceDeltaEncoded256Bit
(messaggio)RiceDeltaEncoded32Bit
(messaggio)RiceDeltaEncoded64Bit
(messaggio)SearchHashesRequest
(messaggio)SearchHashesResponse
(messaggio)SizeConstraints
(messaggio)ThreatAttribute
(enum)ThreatType
(enum)
SafeBrowsing
Le API di Navigazione sicura consentono ai client di verificare le risorse web (più comunemente gli URL) rispetto agli elenchi costantemente aggiornati di Google relativi a risorse web non sicure.
BatchGetHashLists |
---|
Ottieni più elenchi di hash contemporaneamente. È molto comune per un cliente avere bisogno di più elenchi di hash. L'utilizzo di questo metodo è preferibile rispetto all'uso ripetuto del metodo Get standard. Si tratta di un metodo standard Get in batch come definito all'indirizzo https://google.aip.dev/231 e anche il metodo HTTP è GET. |
GetHashList |
---|
Ottieni i contenuti più recenti di un elenco di hashing. Un elenco di hash può essere costituito da un elenco di minacce o da un elenco non-minaccia come la cache globale. Si tratta di un metodo Get standard come definito all'indirizzo https://google.aip.dev/131 e anche il metodo HTTP è GET. |
ListHashLists |
---|
Elencare gli elenchi di hashing. Nell'API V5, Google non rimuove mai un elenco di hash restituito da questo metodo. In questo modo, i client possono saltare l'uso di questo metodo e codificare semplicemente tutti gli elenchi di hash di cui hanno bisogno. Si tratta di un metodo List standard come definito da https://google.aip.dev/132 e il metodo HTTP è GET. |
SearchHashes |
---|
Cerca hash completi che corrispondono ai prefissi specificati. Si tratta di un metodo personalizzato come definito da https://google.aip.dev/136 (il metodo personalizzato si riferisce al fatto che questo metodo abbia un nome personalizzato all'interno della nomenclatura generale di sviluppo delle API di Google e non all'utilizzo di un metodo HTTP personalizzato). |
BatchGetHashListsRequest
La richiesta di ricevere più elenchi di hash contemporaneamente.
Campi | |
---|---|
names[] |
Obbligatoria. I nomi di specifici elenchi di hash. L’elenco POTREBBE essere un elenco di minacce, o potrebbe essere la Cache globale. I nomi NON DEVONO contenere duplicati; se lo fossero, il client riceverà un errore. |
version[] |
Le versioni dell'elenco di hash già in uso nel client. Se è la prima volta che il client recupera gli elenchi di hash, il campo deve essere lasciato vuoto. In caso contrario, il client deve fornire le versioni ricevute in precedenza dal server. Il client NON DEVE manipolare questi byte. Il client non deve necessariamente inviare le versioni nello stesso ordine dei nomi degli elenchi corrispondenti. Il client può inviare in una richiesta meno o più versioni rispetto ai nomi. Tuttavia, il client NON DEVE inviare più versioni corrispondenti allo stesso nome; in caso affermativo, verrà visualizzato un errore. Nota cronologica: nella versione 4 dell'API era denominato |
desired_hash_length |
La lunghezza in byte del prefisso hash degli hash restituiti. Il server restituirà quindi tutti i prefissi hash di questa lunghezza specificata. Diversi elenchi di hash hanno requisiti diversi per i valori accettabili del campo Per |
size_constraints |
I vincoli di dimensione in ogni elenco. Se omesso, non ci sono vincoli. Tieni presente che le dimensioni qui indicate sono per elenco, non aggregate per tutti gli elenchi. |
BatchGetHashListsResponse
La risposta contenente più elenchi di hash.
Campi | |
---|---|
hash_lists[] |
Gli elenchi di hashing nello stesso ordine specificato nella richiesta. |
FullHash
L'hash completo identificato con una o più corrispondenze.
Campi | |
---|---|
full_hash |
L'hash completo corrispondente. Questo è l'hash SHA256. La lunghezza sarà esattamente di 32 byte. |
full_hash_details[] |
Elenco non ordinato. Un campo ripetuto che identifica i dettagli pertinenti a questo hash completo. |
FullHashDetail
Dettagli relativi a un hash completo corrispondente.
Una nota importante sulla compatibilità in avanti: il server può aggiungere nuovi tipi di minacce e attributi di minacce in qualsiasi momento; tali aggiunte sono considerate modifiche di versione minori. Le norme di Google non prevedono l'esposizione di numeri di versione secondari nelle API (per le norme relative al controllo delle versioni, consulta la pagina https://cloud.google.com/apis/design/versioning), quindi i client DEVONO essere pronti a ricevere messaggi FullHashDetail
contenenti valori enum ThreatType
o valori enum ThreatAttribute
considerati non validi dal client. È quindi responsabilità del client verificare la validità di tutti i valori di enumerazione ThreatType
e ThreatAttribute
; se uno o più valori vengono considerati non validi, il client DEVE ignorare l'intero messaggio FullHashDetail
.
Campi | |
---|---|
threat_type |
Il tipo di minaccia. Questo campo non sarà mai vuoto. |
attributes[] |
Elenco non ordinato. Attributi aggiuntivi relativi a questi hash completi. Questo campo potrebbe essere vuoto. |
GetHashListRequest
Una richiesta per ottenere un elenco di hash, che può essere un elenco di minacce o un elenco non-minaccia come la cache globale.
Novità della V5: il nome precedente della versione states
della versione 4 è stato rinominato version
per chiarezza. Gli elenchi sono ora denominati, i tipi di piattaforma e i tipi di voci di minacce sono stati rimossi. Ora è possibile che più elenchi abbiano lo stesso tipo di minaccia o un unico elenco interessato da più tipi di minaccia. I client hanno la nuova possibilità di specificare la lunghezza di hash desiderata. Questo fa parte della risposta ai prefissi hash a lunghezza variabile della V4, che ha causato problemi in molte implementazioni client: tutti gli hash in un elenco ora hanno una singola lunghezza, consentendo implementazioni client molto più efficienti. I vincoli sono stati semplificati e il tipo di compressione è stato rimosso (la compressione viene sempre applicata).
Campi | |
---|---|
name |
Obbligatoria. Il nome di questo particolare elenco di hash. Potrebbe trattarsi di un elenco di minacce o della cache globale. |
version |
La versione dell'elenco di hash già in possesso del client. Se è la prima volta che il client recupera l'elenco di hash, questo campo DEVE essere lasciato vuoto. In caso contrario, il client DOVREBBE fornire la versione precedentemente ricevuta dal server. Il client NON DEVE manipolare questi byte. Novità della V5: nella V4 dell'API, questo si chiamava |
desired_hash_length |
La lunghezza in byte del prefisso hash degli hash restituiti. Il server restituirà quindi tutti i prefissi hash di questa lunghezza specificata. Diversi elenchi di hash hanno requisiti diversi per i valori accettabili del campo |
size_constraints |
I vincoli di dimensione nell'elenco. Se omesso, non ci sono vincoli. I vincoli sono consigliati su tutti i dispositivi con potenza di elaborazione, larghezza di banda o spazio di archiviazione limitati. |
HashList
Un elenco di hash identificati dal relativo nome.
Campi | |
---|---|
name |
Il nome dell'elenco di hash. Tieni presente che la cache globale è anche solo un elenco di hash e può essere fatto riferimento qui. |
version |
La versione dell'elenco di hash. Il client NON DEVE manipolare questi byte. |
partial_update |
Se true, si tratta di una differenza parziale che contiene aggiunte e rimozioni basate su ciò che il client dispone già. Se il valore è false, questo è l'elenco di hash completo. Se il valore è false, il client DEVE eliminare qualsiasi versione memorizzata localmente per questo elenco di hash. Ciò significa che la versione posseduta dal cliente è gravemente obsoleta o che i dati del cliente sono considerati corrotti. Il campo Se il valore è true, il client DEVE applicare un aggiornamento incrementale applicando le rimozioni e le aggiunte successive. |
compressed_removals |
La versione degli indici di rimozione con codifica Riso delta. Poiché ogni elenco hash ha sicuramente meno di 2^32 voci, gli indici vengono trattati come numeri interi a 32 bit e codificati. |
minimum_wait_duration |
I clienti devono attendere almeno questo tempo per recuperare di nuovo l'elenco di 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 è possibile a causa dei vincoli specificati dal client. |
metadata |
Metadati sull'elenco di hash. Non viene compilato dal metodo |
Campo di unione compressed_additions . La versione delle aggiunte con codifica Riso delta. La lunghezza del prefisso hash delle aggiunte è uniforme per tutte le aggiunte nell'elenco. Si tratta del 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: |
|
additions_four_bytes |
Le aggiunte a 4 byte. |
additions_eight_bytes |
Le aggiunte a 8 byte. |
additions_sixteen_bytes |
Le aggiunte a 16 byte. |
additions_thirty_two_bytes |
Le aggiunte da 32 byte. |
Campo di unione checksum . Questo è il checksum per l'elenco ordinato di tutti gli hash presenti nel database dopo l'applicazione dell'aggiornamento fornito. Questo è un campo "unoof" per consentire più algoritmi di hashing. È anche possibile che il server ometta questo campo (nel caso in cui non siano stati forniti aggiornamenti) per indicare che il client deve utilizzare il checksum esistente. checksum può essere solo uno dei seguenti: |
|
sha256_checksum |
L'elenco ordinato di tutti gli hash, sottoposto di nuovo ad hashing con SHA256. |
HashListMetadata
Metadati relativi a uno specifico elenco di hash.
Campi | |
---|---|
threat_types[] |
Elenco non ordinato. Se non è vuoto, indica che l'elenco di hash è un tipo di elenco di minacce e indica il tipo di minacce associate ad hash o prefissi hash in questo elenco. Può essere vuoto se la voce non rappresenta una minaccia, ad esempio nel caso in cui rappresenti un probabile tipo di sicurezza. |
likely_safe_types[] |
Elenco non ordinato. Se non è vuoto, indica che l'elenco di hash rappresenta un elenco di hash probabili e indica i modi in cui sono considerati probabilmente sicuri. Questo campo si escludono a vicenda con il campo threat_types. |
mobile_optimized |
Indica se questo elenco è ottimizzato per i dispositivi mobili (Android e iOS). |
description |
Una descrizione leggibile di questo elenco. Scritto in inglese. |
supported_hash_lengths[] |
Le lunghezze di hash supportate per questo elenco di hash. Ogni elenco di hash supporta almeno una lunghezza. Il campo non sarà quindi vuoto. |
HashLength
La lunghezza degli hash in un elenco di hash.
Enum | |
---|---|
HASH_LENGTH_UNSPECIFIED |
Lunghezza non specificata. Il server non restituirà questo valore alle risposte al client (nel campo supported_hash_lengths ), ma il client può inviarlo al server (nel campo desired_hash_length ). In questo caso il server sceglierà automaticamente un valore. I client DEVONO consentire al server di scegliere 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 di 32 byte. |
LikelySafeType
Tipi di siti probabilmente sicuri.
Tieni presente che SearchHashesResponse
non contiene intenzionalmente LikelySafeType
.
Enum | |
---|---|
LIKELY_SAFE_TYPE_UNSPECIFIED |
Sconosciuto. |
GENERAL_BROWSING |
Probabilmente questo sito è sufficientemente sicuro per la navigazione generale. È anche nota come cache globale. |
CSD |
Probabilmente questo sito è sufficientemente sicuro che non è necessario eseguire modelli di rilevamento lato client o controlli di protezione tramite password. |
DOWNLOAD |
Probabilmente questo sito è sufficientemente sicuro da non dover controllare i download dal sito. |
ListHashListsRequest
La richiesta di elencare gli elenchi di hash disponibili.
Campi | |
---|---|
page_size |
Il numero massimo di elenchi di hash da restituire. Il servizio potrebbe restituire un numero inferiore a questo valore. Se non specificate, il server sceglierà una dimensione di pagina, che potrebbe essere superiore al numero di elenchi di hash, in modo che l'impaginazione non sia necessaria. |
page_token |
Un token di pagina, ricevuto da una chiamata |
ListHashListsResponse
La risposta contenente metadati sugli elenchi di hash.
Campi | |
---|---|
hash_lists[] |
Gli elenchi di hashing sono in ordine arbitrario. Saranno inclusi solo i metadati sugli elenchi di hash, non i contenuti. |
next_page_token |
Un token, che può essere inviato come |
RisoDeltaCodificato 128 bit
Uguale a RiceDeltaEncoded32Bit
, ad eccezione del fatto che codifica i numeri a 128 bit.
Campi | |
---|---|
first_value_hi |
I 64 bit superiori della prima voce nei dati codificati (hash). Se il campo è vuoto, i 64 bit superiori sono tutti zero. |
first_value_lo |
I 64 bit inferiori della prima voce nei dati codificati (hash). Se il campo è vuoto, i 64 bit inferiori sono tutti zero. |
rice_parameter |
Il parametro Golomb-Rice. Il valore di questo parametro è compreso tra 99 e 126 inclusi. |
entries_count |
Il numero di voci con codifica delta nei dati codificati. Se è stato codificato un solo numero intero, questo sarà pari a zero e il singolo valore verrà archiviato in |
encoded_data |
I delta codificati che sono codificati utilizzando il programmatore Golomb-Rice. |
RisoDeltaCodificato256 bit
Uguale a RiceDeltaEncoded32Bit
, ad eccezione del fatto che codifica i numeri a 256 bit.
Campi | |
---|---|
first_value_first_part |
I primi 64 bit della prima voce nei dati codificati (hash). Se il campo è vuoto, i primi 64 bit sono tutti zero. |
first_value_second_part |
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. |
first_value_third_part |
Dai 129 al 192° bit della prima voce nei dati codificati (hash). Se il campo è vuoto, i bit da 129 a 192 sono tutti zero. |
first_value_fourth_part |
Gli ultimi 64 bit della prima voce nei dati codificati (hash). Se il campo è vuoto, gli ultimi 64 bit sono tutti zero. |
rice_parameter |
Il parametro Golomb-Rice. Il valore di questo parametro è compreso tra 227 e 254 inclusi. |
entries_count |
Il numero di voci con codifica delta nei dati codificati. Se è stato codificato un solo numero intero, questo sarà pari a zero e il singolo valore verrà archiviato in |
encoded_data |
I delta codificati che sono codificati utilizzando il programmatore Golomb-Rice. |
RisoDeltaCodificato 32 bit
I dati codificati di Rice-Golomb. Utilizzato per hash o indici di rimozione. È garantito che ogni hash o indice qui abbia la stessa lunghezza, che è esattamente di 32 bit.
In generale, se ordiniamo tutte le voci lessicograficamente, scopriremo che i bit di ordine superiore tendono a non cambiare con la stessa frequenza dei bit di ordine inferiore. Ciò significa che se prendiamo anche la differenza adiacente tra le voci, i bit di ordine superiore hanno un'alta probabilità di essere zero. Questo sfrutta questa alta probabilità di zero scegliendo essenzialmente un certo numero di bit; tutti i bit più significativi di questo saranno probabilmente zero, quindi usiamo la codifica unaria. Controlla il campo rice_parameter
.
Nota storica: la codifica Riso-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 sono ora trattati come big-endian in modo da evitare un costoso passaggio di ordinamento.
Campi | |
---|---|
first_value |
La prima voce nei dati codificati (hash o indici) o, se è stato codificato un solo indice o prefisso hash, il valore di quella voce. Se il campo è vuoto, il valore è pari a zero. |
rice_parameter |
Il parametro Golomb-Rice. Il valore di questo parametro è compreso tra 3 e 30 inclusi. |
entries_count |
Il numero di voci con codifica delta nei dati codificati. Se è stato codificato un solo numero intero, questo sarà pari a zero e il singolo valore verrà archiviato in |
encoded_data |
I delta codificati che sono codificati utilizzando il programmatore Golomb-Rice. |
RisoDeltaCodificato 64 bit
Uguale a RiceDeltaEncoded32Bit
, ad eccezione del fatto che codifica i numeri a 64 bit.
Campi | |
---|---|
first_value |
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 è pari a zero. |
rice_parameter |
Il parametro Golomb-Rice. Il valore di questo parametro è compreso tra 35 e 62 inclusi. |
entries_count |
Il numero di voci con codifica delta nei dati codificati. Se è stato codificato un solo numero intero, questo sarà pari a zero e il singolo valore verrà archiviato in |
encoded_data |
I delta codificati che sono codificati utilizzando il programmatore Golomb-Rice. |
SearchHashesRequest
Una richiesta inviata dal client per cercare prefissi hash specifici.
Questa funzione è progettata per eseguire ricerche solo negli elenchi di minacce e non in elenchi non contenenti minacce come la cache globale.
Novità della V5: i client non devono specificare un ClientInfo
o gli stati degli elenchi di hash nel proprio database locale. per una maggiore privacy. Inoltre, i clienti non hanno bisogno di inviare i tipi di minacce a cui sono interessati.
Campi | |
---|---|
hash_prefixes[] |
Obbligatoria. I prefissi hash da cercare. I client NON DEVONO inviare più di 1000 prefissi hash. Tuttavia, seguendo la procedura di elaborazione degli URL, i client NON DEVONO dover inviare più di 30 prefissi hash. Attualmente ogni prefisso hash deve avere una lunghezza esatta di 4 byte. Questo POTREBBE essere rilassato in futuro. |
filter |
Campo facoltativo. Se il client è interessato all'applicazione di filtri, ad esempio recuperando solo tipi specifici di minacce, è possibile specificarlo. Se omesso, vengono restituite tutte le minacce corrispondenti. Ti consigliamo vivamente di ometterla per ottenere la protezione più completa offerta da Navigazione sicura. Il filtro viene specificato utilizzando Google Common Expression Language, disponibile all'indirizzo https://github.com/google/cel-spec, insieme a degli esempi generali. Ecco alcuni esempi specifici che possono essere utilizzati qui: Il filtro Il filtro |
SearchHashesResponse
La risposta è stata restituita dopo la ricerca degli hash delle minacce.
Se non viene trovato nulla, il server restituirà uno stato OK (codice di stato HTTP 200) con il campo full_hashes
vuoto, anziché uno stato NOT_FOUND (codice di stato HTTP 404).
Novità di V5: esiste una separazione tra FullHash
e FullHashDetail
. Nel caso in cui un hash rappresenta un sito che presenta più minacce (ad es. sia MALWARE che SOCIAL_EngineERING), non è necessario inviare l'hash completo il doppio rispetto a V4. Inoltre, la durata della cache è stata semplificata in un unico campo cache_duration
.
Campi | |
---|---|
full_hashes[] |
Elenco non ordinato. L'elenco non ordinato di hash completi trovati. |
cache_duration |
La durata della cache lato client. Il client DEVE aggiungere questa durata all'ora corrente per determinare la scadenza. La data e l'ora di scadenza vengono quindi applicate a ogni prefisso hash interrogato dal client nella richiesta, indipendentemente dal numero di hash completi restituiti nella risposta. Anche se il server non restituisce un hash completo per un determinato prefisso hash, DEVE anche essere memorizzato nella cache dal client. Se e solo se il campo Importante: il client NON DEVE presumere che il server restituisca la stessa durata della cache per tutte le risposte. Il server POTREBBE scegliere durate della cache diverse per risposte diverse a seconda della situazione. |
SizeConstraints
I vincoli relativi alle dimensioni degli elenchi di hash.
Campi | |
---|---|
max_update_entries |
La dimensione massima nel numero di voci. L'aggiornamento non conterrà più voci di questo valore, ma è possibile che contenga meno voci di questo valore. DEVE essere almeno 1024. Se il valore è omesso o è pari a zero, non viene impostato alcun limite per le dimensioni degli aggiornamenti. |
max_database_entries |
Imposta il numero massimo di voci che il client è disposto ad avere nel database locale per l'elenco. (Il server POTREBBE causare l'archiviazione da parte del client di un numero di voci inferiore a questo numero). Se omesso o pari a zero, non viene impostato alcun limite di dimensione del database. |
ThreatAttribute
Attributi delle minacce. Questi attributi possono conferire un significato aggiuntivo a una particolare minaccia, ma non influiscono sul tipo di minaccia. Ad esempio, un attributo potrebbe specificare un livello di confidenza minore, mentre un attributo diverso potrebbe specificare un'affidabilità più alta. In futuro potrebbero essere aggiunti altri attributi.
Enum | |
---|---|
THREAT_ATTRIBUTE_UNSPECIFIED |
Attributo sconosciuto. Se il server restituisce questo valore, il client ignora del tutto il contenuto FullHashDetail che le include. |
CANARY |
Indica che non deve essere utilizzato il valore Threat_type per l'applicazione forzata. |
FRAME_ONLY |
Indica che minaccia_type deve essere utilizzato solo per l'applicazione forzata sui frame. |
ThreatType
Tipi di minacce.
Enum | |
---|---|
THREAT_TYPE_UNSPECIFIED |
Tipo di minaccia sconosciuto. Se il server restituisce questo valore, il client ignora del tutto il contenuto FullHashDetail che le include. |
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 sostengono impropriamente di agire per conto di una terza parte con l'intento di confondere gli spettatori e spingerli a eseguire un'azione con la quale questi si fidano solo di un vero agente della terza parte. Il phishing è un tipo di ingegneria sociale che induce con l'inganno lo spettatore 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 un software che non rispetta i Principi sul software di Google, ma non è un malware. |
POTENTIALLY_HARMFUL_APPLICATION |
Tipo di minaccia per le applicazioni potenzialmente dannosa come utilizzato da Google Play Protect per il Play Store. |