Belajar Authelia - WebAuthn / FIDO2
Episode 10 of 31

Belajar Authelia - WebAuthn / FIDO2

Memahami WebAuthn/FIDO2 di Authelia: konsep passkey dan authenticator, kredensial yang terikat pada domain untuk menangkal phishing, konfigurasi webauthn dengan display_name dan attestation, hingga enrollment YubiKey serta perbandingannya dengan TOTP.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Di episode 9, TOTP menambahkan lapisan kedua yang melindungi password yang bocor. Namun TOTP masih punya satu celah klasik: kode 6 digit bisa diketik di situs phishing yang menyalin halaman login Authelia. Penyerang tidak mencuri secret — cukup menipu korban memasukkan kode di tempat yang salah.

WebAuthn menutup celah itu dari akar. Di episode ini kalian akan memahami standar W3C yang menjadi dasar FIDO2: mengapa kredensialnya terikat pada domain asli, bagaimana Authelia mengimplementasikannya, cara mengonfigurasi perilaku WebAuthn, hingga proses enrollment YubiKey dan pertimbangan memilih WebAuthn atau TOTP.

Konsep Dasar WebAuthn: Kredensial yang Terikat pada Origin

WebAuthn adalah standar W3C yang memungkinkan autentikasi menggunakan authenticator — perangkat yang menyimpan kunci kriptografi pribadi. Ada dua jenis authenticator:

  • Platform authenticator: sudah tertanam di perangkat, seperti Touch ID, Face ID, Windows Hello, dan biometrik Android.
  • Roaming authenticator: perangkat keras terpisah seperti YubiKey atau Titan Security Key.

Saat enrollment, authenticator membuat sepasang kunci: private key yang tidak pernah meninggalkan perangkat, dan public key yang dikirim ke Authelia. Private key tidak bisa diekstrak — penyerang yang mencuri database Authelia hanya mendapat public key yang tidak berguna tanpa perangkat fisik.

Keunggulan utamanya adalah origin binding. Setiap autentikasi menyertakan tanda tangan atas informasi asal situs (domain dan skema). Tanda tangan dari domain auth.example.com tidak akan pernah cocok untuk domain phishing auth-example.net. Di sinilah letak perbedaan fundamentalnya: TOTP memverifikasi "kalian tahu kode yang sama", WebAuthn memverifikasi "kalian memegang kunci yang sah untuk domain ini".

Bagaimana Authelia Mengimplementasikannya

Authelia menampilkan WebAuthn sebagai salah satu metode kedua di portal. Alur enrollmentnya:

  1. Login dengan password (faktor pertama) lalu pilih metode Security Key.
  2. Klik "register device" dan selesaikan verifikasi identitas lewat email.
  3. Sentuh authenticator — misalnya YubiKey — untuk menandatangani tantangan enrollment.
  4. Public key tersimpan di storage; sejak itu login cukup dengan menyentuh authenticator lagi.

Berkat SSO, satu kali enrollment berlaku untuk semua aplikasi yang dilindungi Authelia — pengguna tidak perlu mendaftarkan YubiKey di setiap layanan. Authelia juga mendukung enable_passkey_login, yang memungkinkan login tanpa password sama sekali menggunakan passkey (passwordless), mengubah peran WebAuthn dari sekadar faktor kedua menjadi pengganti faktor pertama.

Konfigurasi WebAuthn

Perilaku WebAuthn dikendalikan lewat section webauthn:

Konfigurasi WebAuthn
webauthn:
  display_name: "Authelia"
  attestation_conveyance_preference: "indirect"
  timeout: "60 seconds"
  selection_criteria:
    discoverability: "preferred"
    user_verification: "preferred"
  • display_name: nama yang dikirim ke browser dan bisa ditampilkan saat dialog WebAuthn.
  • attestation_conveyance_preference: seberapa banyak data tentang authenticator yang dikumpulkan. none meminimalkan data, indirect menyamarkan identitas perangkat, direct meminta attestation statement langsung dari authenticator termasuk AAGUID (model perangkat). Default indirect adalah keseimbangan privasi dan verifikasi.
  • timeout: batas waktu interaksi WebAuthn, ditulis dalam sintaks durasi seperti 60 seconds.
  • selection_criteria: preferensi attachment, discoverability, dan user verification saat enrollment.

Tip

Untuk pengaturan yang lebih ketat di organisasi yang peduli keamanan, aktifkan attestation_conveyance_preference: "direct" dan pertimbangkan filter AAGUID: whitelist model perangkat yang boleh didaftarkan. Ini mencegah pengguna memakai authenticator yang tidak disetujui.

Enrollment YubiKey: Langkah Praktis

YubiKey adalah roaming authenticator paling populer. Proses enrollment di Authelia:

  1. Pastikan browser modern dan mendukung WebAuthn; colok YubiKey ke komputer.
  2. Login ke portal, pilih metode Security Key, lalu register device.
  3. Selesaikan verifikasi identitas lewat email yang dikirim Authelia.
  4. Sentuh tombol YubiKey saat diminta; perangkat menyala dan menandatangani tantangan.
  5. Beri nama perangkat agar mudah dikenali di daftar, lalu selesaikan.

Beberapa YubiKey mendukung banyak slot, sehingga kalian bisa mendaftarkan satu kunci untuk beberapa tujuan. Saat authenticator hilang atau dicurigai kompromi, hapus dari daftar lewat portal atau CLI:

Mengelola kredensial WebAuthn via CLI
authelia storage user webauthn list
authelia storage user webauthn delete john --identifier "yubikey-1"

Backup dan Pemulihan

Prinsip yang sama dari TOTP berlaku: jangan pernah bergantung pada satu authenticator saja. Strategi yang sehat:

  • Daftarkan minimal dua perangkat: satu YubiKey yang selalu dibawa, satu lagi disimpan di tempat aman.
  • Kombinasikan dengan TOTP sebagai metode cadangan. Jika YubiKey hilang saat berpergian, pengguna masih bisa masuk lewat aplikasi authenticator.
  • Simpan public key dan metadata perangkat di storage yang dibackup (episode 8), karena kehilangan database berarti semua perangkat harus didaftarkan ulang.

WebAuthn vs TOTP: Memilih yang Tepat

Kedua metode bisa hidup berdampingan, tetapi memahami perbedaannya membantu kalian memutuskan yang mana yang dijadikan utama:

  • Ketahanan phishing: WebAuthn jauh lebih unggul karena kredensial terikat pada domain. TOTP rentan terhadap phishing yang menyalin kode.
  • Biaya dan ketersediaan: TOTP gratis dan tersedia di semua ponsel. WebAuthn butuh perangkat keras (YubiKey) atau perangkat dengan biometrik.
  • Kemudahan pengguna: sentuh kunci atau biometrik lebih cepat daripada mengetik kode 6 digit. Namun beberapa platform belum konsisten dalam mendukung WebAuthn di semua browser.
  • Pemulihan: TOTP lebih mudah dipulihkan dengan cadangan secret. WebAuthn kehilangan perangkat berarti kehilangan akses sampai didaftarkan ulang.
  • Privasi: attestation direct bisa membocorkan model perangkat; TOTP tidak membocorkan apa pun.

Important

Pola terbaik di produksi: jadikan WebAuthn sebagai metode kedua utama untuk layanan sensitif karena ketahanan phishinya, tetapi biarkan TOTP tetap terdaftar sebagai fallback. Kombinasi ini menjaga keamanan tinggi tanpa memenjarakan pengguna saat authenticator hilang.

Penutup

Poin kunci episode ini:

  • WebAuthn (W3C/FIDO2) memakai private key yang tersimpan di authenticator; public key di Authelia tidak berguna tanpa perangkat fisik.
  • Kredensial terikat pada origin, menjadikannya tahan phishing — keunggulan utama dibanding TOTP.
  • Konfigurasi inti: display_name, attestation_conveyance_preference, dan timeout.
  • Enrollment YubiKey sederhana setelah verifikasi identitas; kelola perangkat lewat portal atau CLI.
  • Kombinasikan WebAuthn sebagai utama dan TOTP sebagai fallback untuk keamanan plus ketahanan.

Semua metode kedua sejauh ini berjalan di perangkat kalian: aplikasi authenticator atau kunci fisik. Di episode 11, ada satu metode lagi yang memindahkan keputusan ke layanan pihak ketiga — Duo Push. Kalian akan mengintegrasikan Authelia dengan Duo Security, memasang API key, dan memahami kapan push notification lebih baik serta kapan harus memakai fallback.

Belajar Authelia - WebAuthn / FIDO2 | Belajar Authelia