HeadlinesBriefing favicon HeadlinesBriefing.com

Secure Enclave bloqueia cópia do Keychain no macOS Tahoe

Hacker News •
×

Recentemente encontrei um problema com o Keychain de login no macOS. O Keychain de login é criado automaticamente para cada conta de usuário, e sua senha corresponde à senha de login. Ele é armazenado como um arquivo de banco de dados criptografado e é desbloqueado automaticamente quando o usuário faz login.

A partir do macOS Tahoe, o Keychain de login é um arquivo de banco de dados SQLite chamado login.keychain-db, armazenado em `/Users/username_goes_here/Library/Keychains`. Historicamente, você podia copiar o arquivo do Keychain de login de um Mac para outro e abri-lo no Mac de destino fornecendo a senha. A partir do macOS Tahoe, isso não funciona para Macs que usam Secure Enclave.

Para esses Macs, ter apenas a senha não é mais suficiente. De acordo com a documentação de Platform Security da Apple, os itens do Keychain são criptografados usando duas chaves AES-256-GCM: uma chave de metadados e uma chave secreta por linha. A chave de metadados é protegida pelo Secure Enclave, mas armazenada em cache no Application Processor.

A chave secreta sempre requer uma ida e volta pelo Secure Enclave. Assim, desbloquear o Keychain de login requer mais do que a senha, porque as chaves estão vinculadas ao Secure Enclave do Mac onde o Keychain foi criado. Testei isso copiando um arquivo login.keychain-db de um Mac Apple Silicon para uma VM macOS (que não possui Secure Enclave).

Depois de substituir o login.keychain-db da VM e reiniciar, um novo arquivo de Keychain de login foi criado automaticamente quando fiz login, em vez de desbloquear o copiado.