¿Qué es Envoltura de claves?
La envoltura de claves es una operación criptográfica que cifra una clave (la clave de carga útil) usando otra clave (la clave de envoltura o clave de cifrado de claves), proporcionando protección de confidencialidad e integridad al material de clave durante su almacenamiento o transporte.
También conocido como: key wrap, AES-KW, key encryption key
La envoltura de claves resuelve un problema práctico de los sistemas criptográficos: ¿cómo se protegen las propias claves de cifrado? Si una clave de cifrado de datos se almacena en texto plano, cualquiera con acceso al almacenamiento puede usarla. La envoltura de claves resuelve esto cifrando la clave de datos con una clave de envoltura independiente, creando una jerarquía de claves por capas donde el acceso a los datos cifrados requiere poseer tanto la clave envuelta como los medios para desenvolverla.
AES-KW (AES Key Wrap, definido en el RFC 3394) es el algoritmo de envoltura de claves más utilizado. A diferencia de los modos de cifrado de propósito general, AES-KW está diseñado específicamente para envolver material de clave. Proporciona tanto confidencialidad como integridad: si la clave de envoltura es incorrecta o los datos envueltos han sido manipulados, la operación de desenvoltura falla en lugar de producir material de clave incorrecto. Esta verificación de integridad es crítica, porque producir silenciosamente una clave errónea llevaría a descifrar datos como basura sin ninguna indicación de error.
La envoltura de claves es fundamental para los sistemas de gestión de claves, los HSM (módulos de seguridad de hardware) y los esquemas de cifrado en sobre que usan los proveedores de la nube. En el cifrado en sobre, los datos se cifran con una clave de datos, y la clave de datos se envuelve con una clave maestra. Este patrón permite una rotación de claves eficiente: cuando cambia la clave maestra, solo es necesario volver a cifrar las pequeñas claves envueltas, no todo el conjunto de datos.
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.
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.
Cómo usa Vaulted Envoltura de claves
Vaulted usa la envoltura de claves AES-KW cuando se establece una frase de contraseña en un secreto. El flujo funciona así: el navegador genera una clave aleatoria AES-256-GCM para cifrar el secreto y luego deriva una clave de envoltura a partir de la frase de contraseña usando PBKDF2. La clave AES-256-GCM se envuelve (cifra) mediante AES-KW con la clave de envoltura derivada. La clave envuelta, la sal y el IV se incluyen en el fragmento de la URL. El destinatario introduce la frase de contraseña, vuelve a derivar la clave de envoltura mediante PBKDF2, desenvuelve la clave AES-256-GCM y descifra el secreto.