Hasz klucza zasobu

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