HeadlinesBriefing favicon HeadlinesBriefing.com

Secure Enclave блокирует копирование связки ключей в macOS Tahoe

Hacker News •
×

Недавно я столкнулся с проблемой со связкой ключей входа в macOS. Связка ключей входа автоматически создается для каждой учетной записи пользователя, и ее пароль совпадает с паролем входа. Она хранится в виде зашифрованного файла базы данных и автоматически разблокируется при входе пользователя в систему. Начиная с macOS Tahoe, связка ключей входа представляет собой файл базы данных SQLite с именем login.keychain-db, хранящийся в `/Users/username_goes_here/Library/Keychains`. Исторически можно было скопировать файл связки ключей входа с одного Mac на другой и открыть его на целевом Mac, указав пароль. Начиная с macOS Tahoe, это не работает для Mac, использующих Secure Enclave. Для таких Mac одного пароля уже недостаточно. Согласно документации Apple по безопасности платформы, элементы связки ключей шифруются с использованием двух ключей AES-256-GCM: ключа метаданных и секретного ключа для каждой строки. Ключ метаданных защищен Secure Enclave, но кэшируется в Application Processor. Секретный ключ всегда требует прохода через Secure Enclave. Таким образом, для разблокировки связки ключей входа требуется больше, чем пароль, поскольку ключи привязаны к Secure Enclave того Mac, на котором была создана связка ключей. Я проверил это, скопировав файл login.keychain-db с Mac на Apple Silicon на виртуальную машину macOS (в которой нет Secure Enclave). После замены login.keychain-db виртуальной машины и перезагрузки при входе в систему автоматически был создан новый файл связки ключей входа вместо разблокировки скопированного.