HeadlinesBriefing favicon HeadlinesBriefing.com

Secure Enclave bloque la copie du trousseau dans macOS Tahoe

Hacker News •
×

J'ai récemment rencontré un problème avec le trousseau de connexion sur macOS. Le trousseau de connexion est automatiquement créé pour chaque compte utilisateur, et son mot de passe correspond au mot de passe de connexion. Il est stocké sous forme de fichier de base de données chiffré et se déverrouille automatiquement lorsque l'utilisateur se connecte. À partir de macOS Tahoe, le trousseau de connexion est un fichier de base de données SQLite nommé login.keychain-db, stocké dans `/Users/username_goes_here/Library/Keychains`.

Historiquement, vous pouviez copier le fichier du trousseau de connexion d'un Mac à un autre et l'ouvrir sur le Mac de destination en fournissant le mot de passe. À partir de macOS Tahoe, cela ne fonctionne pas pour les Mac qui utilisent Secure Enclave. Pour ces Mac, le simple fait de disposer du mot de passe ne suffit plus. Selon la documentation Platform Security d'Apple, les éléments du trousseau sont chiffrés à l'aide de deux clés AES-256-GCM : une clé de métadonnées et une clé secrète par ligne.

La clé de métadonnées est protégée par le Secure Enclave mais mise en cache dans l'Application Processor. La clé secrète nécessite toujours un aller-retour via le Secure Enclave. Ainsi, le déverrouillage du trousseau de connexion nécessite plus que le mot de passe, car les clés sont liées au Secure Enclave du Mac sur lequel le trousseau a été créé.

J'ai testé cela en copiant un fichier login.keychain-db d'un Mac Apple Silicon vers une VM macOS (qui ne dispose pas de Secure Enclave). Après avoir remplacé le login.keychain-db de la VM et redémarré, un nouveau fichier de trousseau de connexion a été créé automatiquement lors de ma connexion, au lieu de déverrouiller celui copié.