1 poin oleh GN⁺ 2025-11-24 | Belum ada komentar. | Bagikan ke WhatsApp
  • 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.

Belum ada komentar.