macOS Tahoe: Sao chép keychain đăng nhập giữa các máy Mac không còn hoạt động trên thiết bị có Secure Enclave
Trên macOS Tahoe, việc sao chép thủ công tệp login keychain từ máy Mac này sang máy Mac khác không còn khả dụng trên các thiết bị trang bị Secure Enclave. Nguyên nhân là do khóa giải mã được lưu trong Secure Enclave của máy nguồn, khiến mật khẩu đúng cũng không thể mở khóa keychain trên máy đích.

macOS Tahoe: Sao chép keychain đăng nhập giữa các máy Mac không còn hoạt động trên thiết bị có Secure Enclave
Trên macOS Tahoe, việc sao chép thủ công tệp login keychain từ máy Mac này sang máy Mac khác không còn hoạt động trên các thiết bị trang bị Secure Enclave. Nguyên nhân nằm ở việc khóa giải mã được lưu trong Secure Enclave của máy nguồn, khiến mật khẩu đúng cũng không đủ để mở khóa keychain trên máy đích.
Login keychain là gì và thay đổi ra sao?
Login keychain là keychain mà macOS tự động tạo cho mỗi tài khoản người dùng trên máy Mac. Mật khẩu của keychain này trùng với mật khẩu đăng nhập máy Mac. Nó được lưu dưới dạng một tệp cơ sở dữ liệu mã hóa và tự động mở khóa khi người dùng đăng nhập, do mật khẩu đăng nhập và mật khẩu keychain mặc định là giống nhau.
Kể từ macOS Tahoe, login keychain là một tệp cơ sở dữ liệu SQLite có tên login.keychain-db, được lưu trong thư mục home của người dùng tại đường dẫn:
/Users/username/Library/Keychains
Giao diện keychain trên macOS
Vì sao việc sao chép thủ công không còn hiệu quả?
Trước đây, bạn có thể sao chép tệp login keychain từ máy Mac này sang máy Mac khác và mở nó trên máy đích bằng cách nhập mật khẩu của keychain đó. Kể từ macOS Tahoe, điều này dường như không còn hoạt động với các máy Mac sử dụng Secure Enclave.
Với những máy này, chỉ có mật khẩu của login keychain là không còn đủ. Theo tài liệu Platform Security của Apple, các mục trong keychain được mã hóa bằng hai loại khóa AES-256-GCM khác nhau: một khóa bảng (metadata) và một khóa riêng cho từng dòng (secret key). Phần metadata của keychain được mã hóa bằng khóa metadata để tăng tốc tìm kiếm, còn giá trị bí mật (kSecValueData) được mã hóa bằng khóa bí mật.
Điểm mấu chốt nằm ở chỗ:
Khóa metadata được bảo vệ bởi Secure Enclave nhưng được lưu đệm trong Application Processor để cho phép truy vấn keychain nhanh chóng. Khóa bí mật luôn yêu cầu một vòng xử lý qua Secure Enclave.
Từ đó có thể thấy việc mở khóa login keychain đòi hỏi nhiều hơn mật khẩu, bởi các khóa mà nó mở ra gắn chặt với Secure Enclave của máy Mac nơi keychain được tạo. Khi khóa giải mã được lưu trong Secure Enclave của máy nguồn, việc sao chép thủ công keychain sang máy khác rồi mở khóa sẽ không hoạt động. Mật khẩu bạn có thể đúng, nhưng các khóa thực sự cần để giải mã nội dung sẽ không có sẵn trên máy đích.
Để kiểm chứng, tác giả đã sao chép một tệp login.keychain-db từ máy Mac chip Apple Silicon sang một máy Mac thứ hai (cụ thể là một máy ảo macOS) và thử mở khóa bằng mật khẩu đúng của tài khoản. Việc chọn máy ảo là có chủ đích, vì máy ảo không có Secure Enclave — điều này giúp xác minh rằng nếu khóa được lưu trong Secure Enclave của máy nguồn thì máy ảo sẽ không thể truy cập chúng.
Kết quả kiểm nghiệm và hành vi dự phòng của macOS
Kết quả cho thấy việc mở khóa thất bại dù đã cung cấp đúng mật khẩu. Nhật ký hệ thống xác nhận điều này, đồng thời cho thấy một hành vi quan trọng: sau khi kiểm tra hệ thống tệp, tệp keychain được sao chép đã bị đổi tên từ login.keychain-db thành một tệp có tên login_renamed_1.keychain-db, và macOS đã tạo một tệp login.keychain-db mới thay thế.
Nhật ký hệ thống ghi nhận quá trình mở khóa thất bại
Việc tạo một login keychain mới là hành vi dự phòng tiêu chuẩn của macOS khi không thể mở khóa login keychain bằng mật khẩu dùng để đăng nhập.
Tệp keychain bị đổi tên và keychain mới được tạo
Điều này có ý nghĩa gì với người dùng Việt Nam?
Thay đổi này ảnh hưởng trực tiếp đến những ai thường xuyên sao lưu thủ công hoặc di chuyển dữ liệu keychain giữa các máy Mac, chẳng hạn khi nâng cấp máy, chuyển từ máy cá nhân sang máy công ty, hoặc khôi phục dữ liệu từ ổ cứng cũ. Trước đây, một số người dùng vẫn làm theo cách thủ công này để giữ lại mật khẩu Wi-Fi, chứng chỉ, khóa SSH và các thông tin đăng nhập đã lưu.
Với sự xuất hiện của Secure Enclave trên toàn bộ dòng máy Mac chip Apple Silicon, cách làm này gần như không còn khả thi. Người dùng nên chuyển sang các phương thức chính thức như Migration Assistant hoặc iCloud Keychain để đồng bộ và di chuyển dữ liệu keychain một cách an toàn. Câu hỏi đặt ra là liệu Migration Assistant có xử lý được nội dung từ Secure Enclave của máy nguồn hay không — và đây vẫn là điểm cần được Apple làm rõ hơn trong tài liệu hướng dẫn.
Đây cũng là một lời nhắc nhở về xu hướng chung: bảo mật ngày càng gắn chặt với phần cứng, khiến việc di chuyển dữ liệu nhạy cảm giữa các thiết bị trở nên khó khăn hơn cho cả người dùng lẫn kẻ tấn công.

