Index
SafeBrowsing
(interface)BatchGetHashListsRequest
(message)BatchGetHashListsResponse
(message)FullHash
(message)FullHash.FullHashDetail
(message)GetHashListRequest
(message)HashList
(message)HashListMetadata
(message)HashListMetadata.HashLength
(enum)LikelySafeType
(enum)ListHashListsRequest
(message)ListHashListsResponse
(message)RiceDeltaEncoded128Bit
(message)RiceDeltaEncoded256Bit
(message)RiceDeltaEncoded32Bit
(message)RiceDeltaEncoded64Bit
(message)SearchHashesRequest
(message)SearchHashesResponse
(message)SizeConstraints
(message)ThreatAttribute
(enum)ThreatType
(enum)
SafeBrowsing
Les API Safe Browsing permettent aux clients de comparer des ressources Web (le plus souvent des URL) à des listes de ressources Web non sécurisées qui sont constamment mises à jour par Google.
BatchGetHashLists |
---|
Obtenez plusieurs listes de hachage à la fois. Il est très courant pour un client d'avoir besoin de plusieurs listes de hachage. Cette méthode est préférable à l'utilisation répétée de la méthode Get standard. Il s'agit d'une méthode Get par lot standard, telle que définie par https://google.aip.dev/231. La méthode HTTP est également GET. |
GetHashList |
---|
Récupérez le dernier contenu d'une liste de hachage. Une liste de hachage peut prendre la forme d'une liste des menaces ou d'une liste de non-menaces telle que le cache global. Il s'agit d'une méthode Get standard telle que définie par https://google.aip.dev/131. La méthode HTTP est également GET. |
ListHashLists |
---|
Listez les listes de hachage. Dans la version 5 de l'API, Google ne supprime jamais de liste de hachage renvoyée par cette méthode. Cela permet aux clients d'ignorer cette méthode et de simplement coder en dur toutes les listes de hachage dont ils ont besoin. Il s'agit d'une méthode List standard telle que définie par https://google.aip.dev/132. La méthode HTTP est GET. |
SearchHashes |
---|
Recherche les hachages complets correspondant aux préfixes spécifiés. Il s'agit d'une méthode personnalisée, telle que définie par https://google.aip.dev/136. Elle fait référence à un nom personnalisé qui correspond à la nomenclature générale de Google pour le développement d'API. Elle ne fait pas référence à l'utilisation d'une méthode HTTP personnalisée. |
BatchGetHashListsRequest
Demande d'obtention de plusieurs listes de hachage en même temps.
Champs | |
---|---|
names[] |
Obligatoire. Les noms des listes de hachage concernées. Il peut s'agir d'une liste des menaces ou il peut s'agir du cache global. Les noms NE DOIVENT PAS contenir de doublons ; si tel est le cas, le client recevra une erreur. |
version[] |
Versions de la liste de hachage dont dispose déjà le client. Si c'est la première fois que le client récupère les listes de hachage, laissez le champ vide. Sinon, le client doit fournir les versions précédemment reçues du serveur. Le client NE DOIT PAS manipuler ces octets. Le client n'a pas besoin d'envoyer les versions dans le même ordre que les noms de liste correspondants. Le client peut envoyer plus ou moins de versions dans une requête qu'il n'y a de noms. Cependant, le client NE DOIT PAS envoyer plusieurs versions correspondant au même nom. Si c'est le cas, le client recevra un message d'erreur. Remarque historique: dans la version 4 de l'API, cette fonction s'appelait |
desired_hash_length |
Longueur de préfixe souhaitée des hachages renvoyés en octets. Le serveur renvoie ensuite tous les préfixes de hachage de la longueur spécifiée. Les listes de hachage n'ont pas les mêmes exigences concernant les valeurs acceptables pour le champ Pour |
size_constraints |
Les contraintes de taille appliquées à chaque liste. Si cette valeur est omise, il n'y a aucune contrainte. Notez que les tailles indiquées ici correspondent à chaque liste, et non à l'ensemble des listes. |
BatchGetHashListsResponse
Réponse contenant plusieurs listes de hachage.
Champs | |
---|---|
hash_lists[] |
Les listes de hachage dans le même ordre que celui indiqué dans la requête. |
FullHash
Hachage complet identifié par une ou plusieurs correspondances.
Champs | |
---|---|
full_hash |
Hachage complet correspondant Il s'agit du hachage SHA256. La longueur sera exactement de 32 octets. |
full_hash_details[] |
Liste à puces. Champ répété identifiant les détails pertinents pour ce hachage complet. |
FullHashDetail
Détails sur un hachage complet correspondant.
Remarque importante concernant la compatibilité ascendante: le serveur peut ajouter de nouveaux types et attributs de menaces à tout moment. Ces ajouts sont considérés comme des modifications de version mineures. Google s'engage à ne pas exposer les numéros de version mineure dans les API (voir https://cloud.google.com/apis/design/versioning pour connaître les règles de gestion des versions). Par conséquent, les clients DOIVENT être prêts à recevoir des messages FullHashDetail
contenant des valeurs d'énumération ThreatType
ou ThreatAttribute
considérées comme non valides par le client. Par conséquent, il est de la responsabilité du client de vérifier la validité de toutes les valeurs d'énumération ThreatType
et ThreatAttribute
. Si une valeur est considérée comme non valide, le client DOIT ignorer l'intégralité du message FullHashDetail
.
Champs | |
---|---|
threat_type |
Type de menace. Ce champ ne sera jamais vide. |
attributes[] |
Liste à puces. Attributs supplémentaires concernant ces hachages complets. Ce champ peut être vide. |
GetHashListRequest
Requête permettant d'obtenir une liste de hachage, qui peut être une liste des menaces ou une liste de non-menaces telle que le cache global.
Nouveautés dans la version 5: pour plus de clarté, l'ancien nom states
dans la version 4 a été renommé version
. Les listes sont désormais nommées, et les types de plates-formes et d'entrées de menaces sont supprimés. Il est désormais possible que plusieurs listes contiennent le même type de menace ou qu’une seule liste concerne plusieurs types de menaces. Les clients ont la nouvelle possibilité de spécifier la longueur de hachage souhaitée. Cela fait partie de la réponse aux préfixes de hachage de longueur variable de V4, qui posaient problème dans de nombreuses implémentations client: tous les hachages d'une liste ont désormais une seule longueur, ce qui permet des implémentations client beaucoup plus efficaces. Les contraintes ont été simplifiées et le type de compression a été supprimé (la compression est toujours appliquée).
Champs | |
---|---|
name |
Obligatoire. Le nom de cette liste de hachage spécifique. Il peut s’agir d’une liste de menaces ou cela peut être le cache global. |
version |
Version de la liste de hachage déjà utilisée par le client. Si c'est la première fois que le client récupère la liste de hachage, ce champ DOIT être laissé vide. Sinon, le client DOIT fournir la version précédemment reçue du serveur. Le client NE DOIT PAS manipuler ces octets. Nouveautés de la version 5: dans la version 4 de l'API, cette fonction s'appelait |
desired_hash_length |
Longueur de préfixe souhaitée des hachages renvoyés en octets. Le serveur renvoie ensuite tous les préfixes de hachage de la longueur spécifiée. Les listes de hachage n'ont pas les mêmes exigences concernant les valeurs acceptables pour le champ |
size_constraints |
Contraintes de taille sur la liste. Si cette valeur est omise, il n'y a aucune contrainte. Les contraintes sont recommandées sur tous les appareils dont la puissance de traitement, la bande passante ou l'espace de stockage sont limités. |
HashList
Une liste de hachages identifiés par son nom.
Champs | |
---|---|
name |
Nom de la liste de hachage. Notez que le cache global n'est qu'une simple liste de hachage, que vous pouvez consulter ici. |
version |
Version de la liste de hachage. Le client NE DOIT PAS manipuler ces octets. |
partial_update |
Lorsque la valeur est "true", il s'agit d'une différence partielle comprenant des ajouts et des suppressions basés sur les données déjà disponibles dans le client. Si la valeur est "false", il s'agit de la liste de hachage complète. Lorsque la valeur est "false", le client DOIT supprimer toute version stockée localement pour cette liste de hachage. Cela signifie que soit la version détenue par le client est très obsolète, soit les données du client sont soupçonnées d'être corrompues. Le champ Lorsque la valeur est "true", le client DOIT appliquer une mise à jour incrémentielle en appliquant des suppressions, puis des ajouts. |
compressed_removals |
Version des index d'extraction, encodée au format delta de riz. Étant donné que chaque liste de hachage comporte certainement moins de 2^32 entrées, les index sont traités comme des entiers 32 bits et encodés. |
minimum_wait_duration |
Les clients doivent attendre au moins ce temps pour obtenir à nouveau la liste de hachage. En cas d'omission ou de zéro, les clients DOIVENT récupérer immédiatement l'accès, car cela indique que le serveur a une mise à jour supplémentaire à envoyer au client, mais ce n'est pas possible en raison des contraintes spécifiées par le client. |
metadata |
Métadonnées sur la liste de hachage. Il n'est pas renseigné par la méthode |
Champ d'union compressed_additions . Version des ajouts encodées au format Rice-delta. La longueur des préfixes de hachage des ajouts est uniforme pour tous les ajouts de la liste. Il peut s'agir de la valeur desired_hash_length envoyée par le client ou d'une valeur choisie par le serveur si le client a omis ce champ. La compressed_additions ne peut être qu'un des éléments suivants : |
|
additions_four_bytes |
Ajouts de 4 octets. |
additions_eight_bytes |
Ajouts de 8 octets. |
additions_sixteen_bytes |
Ajouts de 16 octets. |
additions_thirty_two_bytes |
Ajouts de 32 octets. |
Champ d'union checksum . Il s'agit de la somme de contrôle de la liste triée de tous les hachages présents dans la base de données après l'application de la mise à jour fournie. Il s'agit d'un champ "oneof" qui autorise plusieurs algorithmes de hachage. Le serveur peut également ignorer ce champ (si aucune mise à jour n'a été fournie) pour indiquer que le client doit utiliser la somme de contrôle existante. checksum ne peut être qu'un des éléments suivants : |
|
sha256_checksum |
Liste triée de tous les hachages, une nouvelle fois hachée avec SHA256. |
HashListMetadata
Métadonnées sur une liste de hachage particulière.
Champs | |
---|---|
threat_types[] |
Liste à puces. Si ce champ n'est pas vide, cela indique que la liste de hachage est un type de liste de menaces, et énumère le type de menaces associé aux hachages ou préfixes de hachage de cette liste. Peut être vide si l'entrée ne représente pas une menace, c'est-à-dire si elle représente un type de sécurité vraisemblablement sans danger. |
likely_safe_types[] |
Liste à puces. Si ce champ n'est pas vide, cela indique que la liste de hachage représente une liste de hachages susceptibles d'être sûrs et énumère en quoi ils sont considérés comme probablement sûrs. Ce champ s'exclut mutuellement avec le champ "menaces". |
mobile_optimized |
Indique si cette liste est optimisée pour les appareils mobiles (Android et iOS). |
description |
Description lisible de cette liste. Rédigé en anglais. |
supported_hash_lengths[] |
Longueurs de hachage acceptées pour cette liste de hachage. Chaque liste de hachage peut accepter au moins une longueur. Ce champ ne sera donc pas vide. |
HashLength
Longueur des hachages d'une liste de hachage.
Enums | |
---|---|
HASH_LENGTH_UNSPECIFIED |
Longueur non spécifiée. Le serveur ne renvoie pas cette valeur dans les réponses au client (dans le champ supported_hash_lengths ), mais le client est autorisé à l'envoyer (dans le champ desired_hash_length ). Dans ce cas, le serveur sélectionne une valeur automatiquement. Les clients DOIVENT laisser le serveur choisir une valeur. |
FOUR_BYTES |
Chaque hachage est un préfixe de quatre octets. |
EIGHT_BYTES |
Chaque hachage est un préfixe de huit octets. |
SIXTEEN_BYTES |
Chaque hachage correspond à un préfixe de 16 octets. |
THIRTY_TWO_BYTES |
Chaque hachage est un hachage complet de 32 octets. |
LikelySafeType
Types de sites sans risque.
Notez que SearchHashesResponse
ne contient pas LikelySafeType
intentionnellement.
Enums | |
---|---|
LIKELY_SAFE_TYPE_UNSPECIFIED |
Inconnu. |
GENERAL_BROWSING |
Ce site est probablement suffisamment sûr pour la navigation générale. C'est ce que l'on appelle le cache global. |
CSD |
Ce site est probablement suffisamment sûr pour qu'il ne soit pas nécessaire d'exécuter des modèles de détection côté client ni de vérifier la protection par mot de passe. |
DOWNLOAD |
Ce site est probablement suffisamment sûr pour que les téléchargements depuis celui-ci n'aient pas besoin d'être vérifiés. |
ListHashListsRequest
Demande de liste des listes de hachage disponibles.
Champs | |
---|---|
page_size |
Nombre maximal de listes de hachage à renvoyer. Le service peut renvoyer un nombre inférieur à cette valeur. Si aucune valeur n'est spécifiée, le serveur choisit une taille de page, qui peut être supérieure au nombre de listes de hachage. La pagination n'est donc pas nécessaire. |
page_token |
Jeton de page reçu d'un appel |
ListHashListsResponse
Réponse contenant des métadonnées sur les listes de hachage.
Champs | |
---|---|
hash_lists[] |
Listes de hachage dans un ordre arbitraire. Seules les métadonnées sur les listes de hachage seront incluses, pas leur contenu. |
next_page_token |
Jeton pouvant être envoyé en tant que |
RiceDeltaEnCod128Bit
Identique à RiceDeltaEncoded32Bit
, sauf qu'il encode des nombres de 128 bits.
Champs | |
---|---|
first_value_hi |
Les 64 bits supérieurs de la première entrée dans les données encodées (hachages). Si le champ est vide, les 64 bits supérieurs sont tous des zéros. |
first_value_lo |
Les 64 bits inférieurs de la première entrée dans les données encodées (hachages). Si le champ est vide, les 64 bits inférieurs sont tous des zéros. |
rice_parameter |
Paramètre Golomb-Rice. La valeur de ce paramètre est comprise entre 99 et 126 inclus. |
entries_count |
Nombre d'entrées encodées en delta dans les données encodées. Si un seul entier a été encodé, la valeur est zéro et la valeur unique sera stockée dans |
encoded_data |
Deltas encodés à l'aide du codeur Golomb-Rice |
RiceDeltaEncoded256Bit
Identique à RiceDeltaEncoded32Bit
, sauf qu'il encode des nombres de 256 bits.
Champs | |
---|---|
first_value_first_part |
Les 64 premiers bits de la première entrée dans les données encodées (hachages). Si le champ est vide, les 64 premiers bits sont tous des zéros. |
first_value_second_part |
Les 65 à 128 bits de la première entrée dans les données encodées (hachages). Si le champ est vide, les 65 à 128 bits sont tous des zéros. |
first_value_third_part |
Les 129 à 192 bits de la première entrée dans les données encodées (hachages). Si le champ est vide, les 129 à 192 bits sont tous des zéros. |
first_value_fourth_part |
Les 64 derniers bits de la première entrée dans les données encodées (hachages). Si le champ est vide, les 64 derniers bits sont tous des zéros. |
rice_parameter |
Paramètre Golomb-Rice. La valeur de ce paramètre est comprise entre 227 et 254, inclus. |
entries_count |
Nombre d'entrées encodées en delta dans les données encodées. Si un seul entier a été encodé, la valeur est zéro et la valeur unique sera stockée dans |
encoded_data |
Deltas encodés à l'aide du codeur Golomb-Rice |
RiceDeltaEnCod32Bit
Les données encodées en Rice-Golomb. Utilisé pour les hachages ou les index de suppression. C'est garanti que chaque hachage ou index a ici la même longueur, et que cette longueur est exactement de 32 bits.
En règle générale, si nous trions toutes les entrées de façon lexicographique, nous constatons que les bits d'ordre supérieur ont tendance à ne pas changer aussi souvent que les bits d'ordre inférieur. Cela signifie que si nous prenons également la différence adjacente entre les entrées, les bits d’ordre supérieur ont une forte probabilité d’être zéro. Cette méthode exploite cette forte probabilité de zéro en choisissant essentiellement un certain nombre de bits. Tous les bits plus significatifs que celui-ci sont susceptibles d'être zéro. C'est pourquoi nous utilisons l'encodage unaire. Consultez le champ rice_parameter
.
Remarque historique: L'encodage du delta de riz a été utilisé pour la première fois dans la version 4 de cette API. Dans la version 5, deux améliorations significatives ont été apportées: premièrement, l'encodage Rice-delta est désormais disponible avec des préfixes de hachage de plus de 4 octets ; deuxièmement, les données encodées sont désormais traitées comme des données big-endian afin d'éviter une étape de tri coûteuse.
Champs | |
---|---|
first_value |
Première entrée des données encodées (hachages ou index) ou, si un seul préfixe de hachage ou index a été encodé, la valeur de cette entrée. Si le champ est vide, la valeur à saisir est zéro. |
rice_parameter |
Paramètre Golomb-Rice. La valeur de ce paramètre est comprise entre 3 et 30 inclus. |
entries_count |
Nombre d'entrées encodées en delta dans les données encodées. Si un seul entier a été encodé, la valeur est zéro et la valeur unique sera stockée dans |
encoded_data |
Deltas encodés à l'aide du codeur Golomb-Rice |
RiceDeltaEncoded64Bit
Identique à RiceDeltaEncoded32Bit
, sauf qu'il encode des nombres de 64 bits.
Champs | |
---|---|
first_value |
La première entrée des données encodées (hachages) ou, si un seul préfixe de hachage a été encodé, la valeur de cette entrée. Si le champ est vide, la valeur à saisir est zéro. |
rice_parameter |
Paramètre Golomb-Rice. La valeur de ce paramètre est comprise entre 35 et 62 inclus. |
entries_count |
Nombre d'entrées encodées en delta dans les données encodées. Si un seul entier a été encodé, la valeur est zéro et la valeur unique sera stockée dans |
encoded_data |
Deltas encodés à l'aide du codeur Golomb-Rice |
SearchHashesRequest
Requête émise par le client pour rechercher des préfixes de hachage spécifiques.
Cette fonctionnalité est conçue pour rechercher uniquement les listes de menaces, pas les listes de non-menaces telles que le cache global.
Nouveautés de la version 5: les clients n'ont pas besoin de spécifier ClientInfo
ni les états des listes de hachage de leur base de données locale. Cela permet d'améliorer la confidentialité. De plus, les clients n’ont pas besoin d’envoyer les types de menaces qui les intéressent.
Champs | |
---|---|
hash_prefixes[] |
Obligatoire. Préfixes de hachage à rechercher. Les clients NE DOIVENT PAS envoyer plus de 1 000 préfixes de hachage. Toutefois, suivant la procédure de traitement des URL, les clients NE DOIVENT PAS envoyer plus de 30 préfixes de hachage. Actuellement, chaque préfixe de hachage doit comporter exactement 4 octets. Cette option PEUT être assouplie à l'avenir. |
filter |
Facultatif. Si le client souhaite effectuer des filtres, par exemple pour ne récupérer que certains types de menaces, vous pouvez le spécifier. Si cette valeur est omise, toutes les menaces correspondantes sont renvoyées. Nous vous recommandons vivement d'omettre cette étape afin d'obtenir la protection la plus complète possible par la navigation sécurisée. Le filtre est spécifié à l'aide du langage Google Common Expression Language, disponible à l'adresse https://github.com/google/cel-spec et où sont accompagnés d'exemples généraux. Voici quelques exemples spécifiques qui peuvent être utilisés ici: Le filtre Le filtre |
SearchHashesResponse
Réponse affichée après la recherche de hachages de menaces.
Si rien n'est trouvé, le serveur renvoie un état OK (code d'état HTTP 200) avec le champ full_hashes
vide, au lieu de renvoyer un état NOT_FOUND (code d'état HTTP 404).
Nouveautés de la version 5: il existe une séparation entre FullHash
et FullHashDetail
. Dans le cas où un hachage représente un site présentant de multiples menaces (par exemple, MALWARE et SOCIAL_ENGINEERING), il n'est pas nécessaire d'envoyer le hachage complet deux fois, contrairement à la version 4. De plus, la durée du cache a été simplifiée dans un seul champ cache_duration
.
Champs | |
---|---|
full_hashes[] |
Liste à puces. Liste non triée des hachages complets trouvée. |
cache_duration |
Durée du cache côté client. Le client DOIT ajouter cette durée à l'heure actuelle pour déterminer le délai d'expiration. Le délai d'expiration s'applique ensuite à chaque préfixe de hachage interrogé par le client dans la requête, quel que soit le nombre de hachages complets renvoyés dans la réponse. Même si le serveur ne renvoie pas de hachage complet pour un préfixe de hachage particulier, ce fait DOIT également être mis en cache par le client. Si et seulement si le champ Important: le client NE DOIT PAS supposer que le serveur renverra la même durée de mise en cache pour toutes les réponses. Le serveur PEUT choisir des durées de mise en cache différentes pour différentes réponses en fonction de la situation. |
SizeConstraints
Contraintes relatives à la taille des listes de hachage.
Champs | |
---|---|
max_update_entries |
Taille maximale du nombre d'entrées. La mise à jour ne contiendra pas plus d'entrées que cette valeur, mais il est possible qu'elle contienne moins d'entrées que cette valeur. Il DOIT être au moins égal à 1024. Si cette valeur est omise ou égale à zéro, aucune limite de taille de mise à jour n'est définie. |
max_database_entries |
Définit le nombre maximal d'entrées que le client est prêt à avoir dans la base de données locale pour la liste. (Le serveur PEUT amener le client à stocker un nombre d'entrées inférieur à ce nombre.) Si cette valeur est omise ou est égale à zéro, aucune limite de taille de la base de données n'est définie. |
ThreatAttribute
Attributs des menaces. Ces attributs peuvent conférer une signification supplémentaire à une menace spécifique, mais n’affecteront pas le type de menace. Par exemple, un attribut peut indiquer un niveau de confiance inférieur, tandis qu'un autre peut indiquer un niveau de confiance plus élevé. D'autres attributs seront peut-être ajoutés ultérieurement.
Enums | |
---|---|
THREAT_ATTRIBUTE_UNSPECIFIED |
Attribut inconnu. Si le serveur renvoie cette valeur, le client ne doit pas tenir compte de la FullHashDetail qui l'englobe. |
CANARY |
Indique que le type de menace ne doit pas être utilisé pour l'application. |
FRAME_ONLY |
Indique que le type de menace ne doit être utilisé que pour l'application sur des frames. |
ThreatType
Types de menaces.
Enums | |
---|---|
THREAT_TYPE_UNSPECIFIED |
Type de menace inconnu. Si le serveur renvoie cette valeur, le client ne doit pas tenir compte de la FullHashDetail qui l'englobe. |
MALWARE |
Type de menace de logiciel malveillant. Un logiciel malveillant est un logiciel ou une application mobile conçus spécialement pour endommager un ordinateur ou un appareil mobile, perturber le fonctionnement du programme qu'il ou elle exécute, ou nuire à ses utilisateurs. Les logiciels malveillants ont des comportements néfastes. Ils peuvent installer des logiciels sur l'ordinateur de l'internaute sans son consentement et installer des programmes dangereux tels que des virus. Pour en savoir plus, cliquez ici. |
SOCIAL_ENGINEERING |
Type de menace d'ingénierie sociale. Les pages d'ingénierie sociale prétendent à tort agir pour le compte d'un tiers dans le but d'inciter les internautes à effectuer une action qui ne leur ferait confiance qu'à un véritable agent de ce tiers. L'hameçonnage est un type d'ingénierie sociale qui amène l'utilisateur à effectuer une action spécifique consistant à fournir des informations, telles que des identifiants de connexion. Pour en savoir plus, cliquez ici. |
UNWANTED_SOFTWARE |
Type de menace logicielle indésirable. Un logiciel indésirable est un logiciel qui ne respecte pas les principes de Google concernant les logiciels, mais qui n'est pas un logiciel malveillant. |
POTENTIALLY_HARMFUL_APPLICATION |
Type de menace d'application potentiellement dangereuse tel qu'il est utilisé par Google Play Protect sur le Play Store. |