Passkeys & WebAuthn: Passwordless Future
Implementasi autentikasi tanpa password dengan biometric dan hardware keys
Tujuan Pembelajaran
- Memahami cara kerja WebAuthn dan Passkeys
- Mampu mengimplementasikan Passkey registration dan authentication
- Mengerti FIDO2 protocol dan kenapa Passkeys lebih aman dari password
Analogi
Passkeys = Kunci Digital:
Password:
Kamu buat kunci, simpan di otak. Pencuri bisa menebak, mem-phishing, atau mencuri database.
Passkeys:
Device kamu generate kunci public-private pair.
Private key = SIMPAN di device (Tidak pernah dikirim ke server).
Public key = Dikirim ke server (tidak rahasia).
Server tantang: "Tandatangani challenge ini dengan private key-mu."
Device: Tandatangani dengan biometric (fingerprint/face) → kirim signature.
Server verifikasi dengan public key → autentikasi berhasil.
Tidak ada password yang bisa dicuri, di-phishing, atau di-bruteforce.
Passkeys seperti kunci digital — private key di device kamu, server hanya simpan public key. Tidak ada password yang bisa dicuri.
Penjelasan Konsep
Passkeys (WebAuthn/FIDO2) adalah standar autentikasi tanpa password. Menggantikan password dengan cryptographic key pairs + biometric verification.
Cara kerja: (1) Registration — browser generate public-private key pair. Private key disimpan aman di device (Secure Enclave/TPM). Public key + credential ID dikirim ke server. (2) Authentication — server kirim challenge. Browser minta user verify dengan biometric (FaceID/TouchID). Private key menandatangani challenge. Server verifikasi signature dengan public key.
Kenapa lebih aman: (1) Phishing-proof — domain bound. Passkey untuk google.com tidak akan bekerja di g00gle-phishing.com. (2) No shared secret — server tidak simpan password, hanya public key. Database breach tidak mengekspos credential. (3) Multi-device sync — Passkeys bisa disync via iCloud Keychain / Google Password Manager.
Implementasi: Gunakan WebAuthn API di browser. Backend simpan credential (credential_id, public_key, user_id). Library: SimpleWebAuthn (JS), Hanko, Corbado.
Inti yang Perlu Dipahami
Bagian ini berfokus pada memahami cara kerja WebAuthn dan Passkeys., mampu mengimplementasikan Passkey registration dan authentication., dan mengerti FIDO2 protocol dan kenapa Passkeys lebih aman dari password. Jangan terburu-buru menghafal istilahnya. Lebih penting untuk memahami peran setiap konsep dan kapan konsep itu muncul dalam pekerjaan web development.
Saat membaca Passkeys & WebAuthn, gunakan tujuan belajar sebagai penanda arah. Kalau kamu sudah bisa menjelaskan tujuan itu dengan kata-katamu sendiri, berarti fondasinya mulai terbentuk.
Cara Membayangkannya
Passkeys seperti kunci digital — private key di device kamu, server hanya simpan public key. Tidak ada password yang bisa dicuri. Analogi ini dipakai supaya konsep teknis tidak terasa melayang. Hubungkan setiap istilah dengan perannya: siapa yang meminta, siapa yang memproses, data apa yang berpindah, dan hasil apa yang diharapkan.
Kalau analoginya sudah terasa masuk akal, barulah lihat istilah teknisnya. Cara ini membuat materi lebih mudah dipahami daripada langsung menghafal definisi.
Konteks dalam Perjalanan Belajar
Setiap konsep di platform ini dipilih karena dipakai di industri. Fokus pada pemahaman, bukan hafalan.
Kamu sudah di bagian lanjutan. Mulai pikirkan bagaimana konsep ini dipakai di dunia kerja — bukan hanya untuk belajar, tapi untuk membangun produk nyata.
Gunakan pertanyaan reflektif dan prompt AI di akhir chapter sebagai latihan aktif. Membaca saja tidak cukup — kamu perlu menjelaskan ulang dengan kata-katamu sendiri.
Prompt AI
Implementasi Passkeys authentication untuk aplikasi React + Hono. Gunakan SimpleWebAuthn library. Minta AI bantu handling untuk device yang tidak support Passkeys (fallback ke password + MFA).
Pertanyaan Reflektif
Password adalah weakest link di security. Apakah aplikasi-mu siap untuk passwordless future? Atau masih bergantung pada 'password minimal 8 karakter, 1 huruf besar, 1 angka, 1 karakter spesial'?