Glossário

O que é Encapsulamento de chave?

O encapsulamento de chave é uma operação criptográfica que criptografa uma chave (a chave de carga útil) usando outra chave (a chave de encapsulamento ou chave de criptografia de chaves), oferecendo proteção de confidencialidade e integridade ao material de chave durante seu armazenamento ou transporte.

Também conhecido como: key wrap, AES-KW, key encryption key

O encapsulamento de chave resolve um problema prático dos sistemas criptográficos: como você protege as próprias chaves de criptografia? Se uma chave de criptografia de dados for armazenada em texto simples, qualquer pessoa com acesso ao armazenamento pode usá-la. O encapsulamento de chave resolve isso criptografando a chave de dados com uma chave de encapsulamento independente, criando uma hierarquia de chaves em camadas onde o acesso aos dados criptografados exige possuir tanto a chave encapsulada quanto os meios para desencapsulá-la.

O AES-KW (AES Key Wrap, definido no RFC 3394) é o algoritmo de encapsulamento de chave mais utilizado. Diferentemente dos modos de criptografia de propósito geral, o AES-KW foi projetado especificamente para encapsular material de chave. Ele oferece tanto confidencialidade quanto integridade: se a chave de encapsulamento estiver incorreta ou os dados encapsulados tiverem sido adulterados, a operação de desencapsulamento falha em vez de produzir material de chave incorreto. Essa verificação de integridade é crítica, porque produzir silenciosamente uma chave errada levaria a descriptografar dados como lixo sem nenhuma indicação de erro.

O encapsulamento de chave é fundamental para os sistemas de gerenciamento de chaves, os HSM (módulos de segurança de hardware) e os esquemas de criptografia em envelope que os provedores de nuvem usam. Na criptografia em envelope, os dados são criptografados com uma chave de dados, e a chave de dados é encapsulada com uma chave mestra. Esse padrão permite uma rotação de chaves eficiente: quando a chave mestra muda, só é preciso criptografar novamente as pequenas chaves encapsuladas, e não todo o conjunto de dados.

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.

Como o Vaulted usa Encapsulamento de chave

O Vaulted usa o encapsulamento de chave AES-KW quando uma frase-senha é definida em um segredo. O fluxo funciona assim: o navegador gera uma chave aleatória AES-256-GCM para criptografar o segredo e depois deriva uma chave de encapsulamento a partir da frase-senha usando PBKDF2. A chave AES-256-GCM é encapsulada (criptografada) por meio do AES-KW com a chave de encapsulamento derivada. A chave encapsulada, o salt e o IV são incluídos no fragmento da URL. O destinatário digita a frase-senha, deriva novamente a chave de encapsulamento por meio do PBKDF2, desencapsula a chave AES-256-GCM e descriptografa o segredo.