- Di versi Tahoe macOS, fitur pembuatan dan penggunaan SSH key dengan Secure Enclave didukung secara bawaan
- Library
/usr/lib/ssh-keychain.dylib mengimplementasikan antarmuka SecurityKeyProvider selain PKCS11Provider untuk smart card yang sudah ada, sehingga bisa berkomunikasi langsung dengan Secure Enclave alih-alih perangkat FIDO2
- Dengan perintah
sc_auth, pengguna dapat membuat kunci autentikasi biometrik berbasis Touch ID, lalu menggunakan ssh-keygen atau ssh-add untuk memuat dan memakai key langsung dari area aman
- Jika menetapkan variabel lingkungan
SSH_SK_PROVIDER di .zprofile, maka SSH, ssh-agent, dan ssh-keygen akan mengenalinya secara otomatis
- Tanpa alat eksternal, hanya dengan fitur bawaan macOS, kini dimungkinkan membangun skema autentikasi SSH yang sekaligus aman dan praktis
Gambaran umum dukungan SSH key berbasis Secure Enclave
- macOS Tahoe mendukung pembuatan dan penggunaan SSH key berbasis Secure Enclave
- Sebelumnya diperlukan proyek eksternal seperti
secretive, tetapi sekarang bisa digantikan oleh fitur bawaan macOS
/usr/lib/ssh-keychain.dylib mengimplementasikan SecurityKeyProvider sehingga Secure Enclave dapat diakses dengan cara yang mirip perangkat FIDO2
- Melalui fitur ini, autentikasi SSH bisa dilakukan dengan chip keamanan bawaan macOS tanpa perangkat keras eksternal seperti YubiKey
Pembuatan dan pengelolaan key
- Perintah
sc_auth create-ctk-identity -l ssh -k p-256-ne -t bio membuat key Secure Enclave yang memerlukan autentikasi Touch ID
- Daftar key yang dibuat dan hash-nya dapat dilihat dengan perintah
list-ctk-identities
- Key dapat dihapus dengan perintah
delete-ctk-identity
- Opsi
list-ctk-identities -t ssh dapat digunakan untuk melihat fingerprint SSH key
Penggunaan di SSH
- Perintah
ssh-keygen -w /usr/lib/ssh-keychain.dylib -K -N "" digunakan untuk memuat pasangan key dari Secure Enclave
- Tidak perlu memasukkan PIN, autentikasi dilakukan dengan Touch ID
- “Private key” yang dihasilkan bukan secret key yang sebenarnya, melainkan nilai referensi kredensial FIDO
- Setelah public key disalin ke server dengan
ssh-copy-id,
koneksi dapat dilakukan dengan perintah ssh -o SecurityKeyProvider=/usr/lib/ssh-keychain.dylib localhost
Integrasi dengan ssh-agent
- Dengan perintah
ssh-add -K -S /usr/lib/ssh-keychain.dylib, key Secure Enclave dapat langsung didaftarkan ke ssh-agent
- Key yang telah didaftarkan dapat diperiksa dengan
ssh-add -L
- Setelah itu autentikasi dilakukan dengan perintah
ssh -o SecurityKeyProvider=/usr/lib/ssh-keychain.dylib
Pengaturan default SecurityKeyProvider
- Bisa ditentukan langsung di
.ssh/config, atau tambahkan
export SSH_SK_PROVIDER=/usr/lib/ssh-keychain.dylib ke .zprofile agar dikenali otomatis
- Setelah itu, cukup gunakan perintah
ssh-add -K atau ssh my-server untuk koneksi SSH berbasis security key
Key yang dapat diekspor (Exportable Keys)
- Perintah
sc_auth create-ctk-identity -l ssh-exportable -k p-256 -t bio dapat membuat key untuk ekspor yang dienkripsi dengan Secure Enclave
- Key dapat diekspor ke file PEM dengan
export-ctk-identity,
lalu didaftarkan ulang di perangkat lain dengan import-ctk-identities
- Pendekatan ini sedikit lebih rendah dari sisi keamanan, tetapi lebih menguntungkan untuk cadangan
Diskusi pengembang dan perluasan kode
- Di komentar, dibahas kemungkinan penggunaan flag
.biometryCurrentSet
- Saat ini hanya didukung "apakah biometrik digunakan atau tidak (on/off)", tanpa kontrol yang lebih rinci
- Penulis meninjau kemungkinan menambahkan fitur biometryCurrentSet ke fungsi
sk_enroll() dengan melakukan reverse-engineering pada ssh-keychain.dylib
- Contoh kode yang diajukan memerlukan code signing (codesign) dengan akun Apple Developer Program agar bisa mengakses Secure Enclave
- Kode tersebut mencakup logika pembuatan key, penandatanganan, dan pendaftaran (
sk_enroll, sk_sign, dll.),
serta mengimplementasikan proses pembuatan dan penandatanganan ECDSA P-256 key di Secure Enclave
Ringkasan
- macOS kini mendukung secara native autentikasi SSH yang langsung memanfaatkan Secure Enclave
- Melalui autentikasi biometrik berbasis Touch ID dan struktur yang kompatibel dengan FIDO2, keamanan dan kemudahan penggunaan meningkat
- Tanpa perangkat keras eksternal atau software tambahan, SSH key dapat dikelola hanya dengan fitur bawaan sistem
- Para pengembang juga sedang bereksperimen memperluas
ssh-keychain.dylib untuk kontrol biometrik yang lebih terperinci
Belum ada komentar.