리소스 키 해시
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
리소스 키 해시는 Google에서
래핑된 암호화 키를 암호화합니다.
리소스 키 해시를 생성하려면 다음을 포함한 래핑되지 않은 키에 대한 액세스 권한이 필요합니다.
키 중에 지정된 DEK, resource_name
, perimeter_id
사용됩니다.
암호화 함수 HMAC-SHA256과 unwrapped_dek
를 키로 사용합니다.
데이터로서의 메타데이터 연결
("ResourceKeyDigest:", resource_name, ":", perimeter_id)
입니다.
resource_name
및 perimeter_id
는 UTF-8로 인코딩된 문자열이어야 합니다.
예를 들어 resource_name = "my_resource"
인 경우
perimeter_id = "my_perimeter"
및 unwrapped_dek = 0xf00d
- 리소스 키
해시:
echo -n "ResourceKeyDigest:my_resource:my_perimeter" | openssl sha256 -mac HMAC -macopt hexkey:f00d -binary
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-07-25(UTC)
[null,null,["최종 업데이트: 2025-07-25(UTC)"],[[["\u003cp\u003eThe resource key hash ensures Google can verify the integrity of wrapped encryption keys without needing access to the actual keys.\u003c/p\u003e\n"],["\u003cp\u003eGenerating the hash requires the unwrapped key, resource name, and perimeter ID used during key wrapping.\u003c/p\u003e\n"],["\u003cp\u003eIt utilizes HMAC-SHA256, using the unwrapped key as the key and a concatenation of resource details as data for the hash calculation.\u003c/p\u003e\n"],["\u003cp\u003eThe resource name and perimeter ID need to be UTF-8 encoded strings for the hash generation.\u003c/p\u003e\n"]]],["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"],null,["# Resource key hash\n\nThe resource key hash is a mechanism allowing Google to verify the integrity of\nthe wrapped encryption keys without having access to the keys.\n\nGenerating the resource key hash requires access to the unwrapped key including\nthe DEK, the `resource_name` and the `perimeter_id` specified during the key\nwrapping operation.\n\nWe use the cryptographic function HMAC-SHA256 with `unwrapped_dek` as a key and\nthe concatenation of metadata as data\n`(\"ResourceKeyDigest:\", resource_name, \":\", perimeter_id)`.\nThe `resource_name` and `perimeter_id` should be UTF-8 encoded strings.\n\nFor example, when `resource_name = \"my_resource\"`,\n`perimeter_id = \"my_perimeter\"` and `unwrapped_dek = 0xf00d`, the resource key\nhash is: \n\n echo -n \"ResourceKeyDigest:my_resource:my_perimeter\" | openssl sha256 -mac HMAC -macopt hexkey:f00d -binary"]]