Hachage de la clé de ressource
Le hachage de la clé de ressource est un mécanisme
permettant à Google de vérifier l'intégrité
les clés de chiffrement encapsulées
sans avoir accès aux clés.
La génération du hachage de la clé de ressource nécessite un accès à la clé désencapsulée, y compris
la clé DEK, la resource_name
et le perimeter_id
spécifiés lors de la clé
d'encapsulation.
Nous utilisons la fonction cryptographique HMAC-SHA256 avec unwrapped_dek
comme clé, et
la concaténation des métadonnées en tant que données
("ResourceKeyDigest:", resource_name, ":", perimeter_id)
Les éléments resource_name
et perimeter_id
doivent être des chaînes encodées au format UTF-8.
Par exemple, lorsque resource_name = "my_resource"
,
perimeter_id = "my_perimeter"
et unwrapped_dek = 0xf00d
, la clé de la ressource.
le hachage:
echo -n "ResourceKeyDigest:my_resource:my_perimeter" | openssl sha256 -mac HMAC -macopt hexkey:f00d -binary
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/08/22 (UTC).
[null,null,["Dernière mise à jour le 2024/08/22 (UTC)."],[[["The resource key hash ensures Google can verify the integrity of wrapped encryption keys without needing access to the actual keys."],["Generating the hash requires the unwrapped key, resource name, and perimeter ID used during key wrapping."],["It utilizes HMAC-SHA256, using the unwrapped key as the key and a concatenation of resource details as data for the hash calculation."],["The resource name and perimeter ID need to be UTF-8 encoded strings for the hash generation."]]],["The core mechanism is generating a resource key hash to verify wrapped encryption key integrity. This involves using HMAC-SHA256 with the unwrapped DEK as the key and a specific concatenation of metadata as data. The metadata consists of \"ResourceKeyDigest:\", the UTF-8 encoded `resource_name`, \":\", and the UTF-8 encoded `perimeter_id`. An example shows generating the hash using `openssl` with a sample `resource_name`, `perimeter_id`, and `unwrapped_dek`.\n"]]