HeadlinesBriefing favicon HeadlinesBriefing.com

Secure Enclave bloquea la copia del llavero en macOS Tahoe

Hacker News •
×

Recientemente encontré un problema con el llavero de inicio de sesión en macOS. El llavero de inicio de sesión se crea automáticamente para cada cuenta de usuario, y su contraseña coincide con la contraseña de inicio de sesión. Se almacena como un archivo de base de datos cifrado y se desbloquea automáticamente cuando el usuario inicia sesión.

A partir de macOS Tahoe, el llavero de inicio de sesión es un archivo de base de datos SQLite llamado login.keychain-db, almacenado en `/Users/username_goes_here/Library/Keychains`. Históricamente, se podía copiar el archivo del llavero de inicio de sesión de un Mac a otro y abrirlo en el Mac de destino proporcionando la contraseña. A partir de macOS Tahoe, esto no funciona para los Mac que utilizan Secure Enclave.

Para esos Mac, ya no basta con tener solo la contraseña. Según la documentación de seguridad de plataforma de Apple, los elementos del llavero se cifran utilizando dos claves AES-256-GCM: una clave de metadatos y una clave secreta por fila. La clave de metadatos está protegida por el Secure Enclave pero se almacena en caché en el Application Processor.

La clave secreta siempre requiere un recorrido de ida y vuelta a través del Secure Enclave. Por lo tanto, desbloquear el llavero de inicio de sesión requiere más que la contraseña, porque las claves están vinculadas al Secure Enclave del Mac donde se creó el llavero. Probé esto copiando un archivo login.keychain-db de un Mac con Apple Silicon a una máquina virtual de macOS (que carece de Secure Enclave).

Después de reemplazar el login.keychain-db de la máquina virtual y reiniciar, se creó automáticamente un nuevo archivo de llavero de inicio de sesión cuando inicié sesión, en lugar de desbloquear el copiado.