Hash kunci resource
Hash kunci resource adalah mekanisme yang memungkinkan Google memverifikasi integritas
kunci enkripsi yang digabungkan tanpa
memiliki akses ke kunci tersebut.
Membuat hash kunci resource memerlukan akses ke kunci yang tidak digabungkan termasuk
DEK, resource_name
, dan perimeter_id
yang ditentukan selama kunci
penggabungan.
Kita menggunakan fungsi kriptografi HMAC-SHA256 dengan unwrapped_dek
sebagai kunci dan
penyambungan {i>metadata<i} sebagai data
("ResourceKeyDigest:", resource_name, ":", perimeter_id)
.
resource_name
dan perimeter_id
harus berupa string berenkode UTF-8.
Misalnya, saat resource_name = "my_resource"
,
perimeter_id = "my_perimeter"
dan unwrapped_dek = 0xf00d
, kunci resource
hash-nya adalah:
echo -n "ResourceKeyDigest:my_resource:my_perimeter" | openssl sha256 -mac HMAC -macopt hexkey:f00d -binary
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-08-22 UTC.
[null,null,["Terakhir diperbarui pada 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"]]