Hasz klucza zasobu to mechanizm, który pozwala Google zweryfikować integralność opakowanych kluczy szyfrowania bez dostępu do nich.
Wygenerowanie skrótu klucza zasobu wymaga dostępu do rozpakowanego klucza zawierającego DEK, resource_name
i perimeter_id
określone podczas operacji zawijania kluczy.
Używamy funkcji kryptograficznej HMAC-SHA256 z kluczem unwrapped_dek
i konkatenacji metadanych jako danych ("ResourceKeyDigest:", resource_name, ":", perimeter_id)
.
resource_name
i perimeter_id
powinny być ciągami tekstowymi zakodowanymi w formacie UTF-8.
Na przykład, gdy resource_name = "my_resource"
, perimeter_id = "my_perimeter"
i unwrapped_dek = 0xf00d
, hasz klucza zasobu to:
echo -n "ResourceKeyDigest:my_resource:my_perimeter" | openssl sha256 -mac HMAC -macopt hexkey:f00d -binary