Glosarium

Apa itu Key Wrapping?

Key wrapping adalah operasi kriptografi yang mengenkripsi sebuah kunci (kunci payload) menggunakan kunci lain (kunci wrapping atau kunci enkripsi kunci), memberikan perlindungan kerahasiaan dan integritas pada materi kunci selama penyimpanan atau pengiriman.

Juga dikenal sebagai: key wrap, AES-KW, key encryption key

Key wrapping mengatasi masalah praktis dalam sistem kriptografi: bagaimana cara melindungi kunci enkripsi itu sendiri? Jika kunci enkripsi data disimpan dalam bentuk plaintext, siapa pun yang memiliki akses ke penyimpanan tersebut dapat menggunakannya. Key wrapping memecahkan masalah ini dengan mengenkripsi kunci data menggunakan kunci wrapping terpisah, menciptakan hierarki kunci berlapis di mana akses ke data terenkripsi membutuhkan kunci yang telah di-wrap sekaligus cara untuk membukanya.

AES-KW (AES Key Wrap, didefinisikan dalam RFC 3394) adalah algoritma key wrapping yang paling banyak digunakan. Berbeda dengan mode enkripsi serbaguna, AES-KW dirancang khusus untuk mem-wrap materi kunci. Algoritma ini memberikan kerahasiaan sekaligus integritas — jika kunci wrapping salah atau data yang di-wrap telah dimanipulasi, operasi unwrap akan gagal, bukan menghasilkan materi kunci yang keliru. Pemeriksaan integritas ini sangat penting karena kunci yang salah tanpa indikasi error apa pun akan menyebabkan data terdekripsi menjadi sampah.

Key wrapping merupakan dasar dari sistem manajemen kunci, HSM (Hardware Security Module), dan skema envelope encryption yang digunakan oleh penyedia cloud. Dalam envelope encryption, data dienkripsi dengan kunci data, dan kunci data di-wrap dengan kunci master. Pola ini memungkinkan rotasi kunci yang efisien — ketika kunci master berubah, hanya kunci-kunci kecil yang di-wrap yang perlu dienkripsi ulang, bukan seluruh dataset.

Wrap a data key with a passphrase

A random AES-256 data key gets encrypted by a wrapping key derived from your passphrase via PBKDF2. Change the unwrap passphrase to see AES-KW reject the wrong key cleanly.

Data key (AES-256, what actually encrypts your secret)
 
Wrapped key (what gets stored / shared)
 
Salt (random per wrap, fed to PBKDF2)
 
Try matching and mismatching the unwrap passphrase to compare outcomes.

This is exactly the flow Vaulted runs when you set a passphrase. The wrapping key never leaves your browser; only the wrapped key and salt travel — in the URL fragment, so the server sees neither.

Cara Vaulted menggunakan Key Wrapping

Vaulted menggunakan AES-KW key wrapping ketika passphrase ditetapkan pada sebuah rahasia. Alurnya sebagai berikut: browser menghasilkan kunci AES-256-GCM acak untuk mengenkripsi rahasia, lalu menurunkan kunci wrapping dari passphrase menggunakan PBKDF2. Kunci AES-256-GCM di-wrap (dienkripsi) menggunakan AES-KW dengan kunci wrapping yang diturunkan tersebut. Kunci yang di-wrap, salt, dan IV disertakan dalam URL fragment. Penerima memasukkan passphrase, menurunkan ulang kunci wrapping via PBKDF2, membuka wrap kunci AES-256-GCM, dan mendekripsi rahasia.