Halaman ini diterjemahkan secara otomatis. Baca versi asli berbahasa Inggris di sini.
isUserVerifyingPlatformAuthenticatorAvailable()
mengembalikan false di semua browser non-Safari, sehingga memerlukan pembaruan logika
deteksi.Jangan implementasikan kunci sandi.
Setidaknya tidak dengan cara apa pun dan tidak jika Anda tidak memiliki sumber daya untuk melakukannya dengan benar.
Whitepaper Passkey Enterprise. Panduan praktis, pola peluncuran, dan KPI untuk program passkeys.
Ya, kunci sandi (passkeys) adalah hal terbaik yang terjadi pada autentikasi konsumen dalam satu dekade terakhir. Ya, mereka membunuh phising. Ya, mereka dapat meningkatkan UX secara besar-besaran. Namun, kunci sandi yang diterapkan dengan salah juga dapat menyebabkan banyak kerugian.
Mengimplementasikan server WebAuthn tidak terlalu rumit. Tantangan sebenarnya adalah segala sesuatu di sekitarnya. Mengoperasikan kunci sandi secara efisien dalam skala besar memerlukan perencanaan ke depan. Anda perlu memikirkan semua masalah "Hari ke-2" - realitas operasional yang baru muncul setelah Anda memulai peluncuran kunci sandi.
Artikel ini membahas lima masalah Hari ke-2 yang secara konsisten membunuh proyek kunci sandi. Jika Anda tidak dapat menyelesaikan semuanya, Anda belum siap untuk meluncurkan kunci sandi. Jika Anda bisa, Anda akan membangun autentikasi yang lebih aman dan lebih mudah digunakan daripada yang bisa ditawarkan oleh kata sandi.
Artikel terbaru
Dalam rekayasa perangkat lunak, "Hari ke-1" adalah saat Anda membangun dan meluncurkannya. "Hari ke-2" adalah saat Anda mengoperasikan, memelihara, dan menskalakan apa yang telah Anda luncurkan. Untuk kunci sandi, Hari ke-1 bisa sangat mudah:
Sebagian besar tim bisa mendapatkan implementasi kunci sandi dasar berjalan dalam beberapa hari atau minggu.
Hari ke-2 adalah saat proyek gagal. Ini adalah momen pengguna nyata pada perangkat nyata dengan edge case nyata berinteraksi dengan sistem kunci sandi Anda. Ini adalah saat Anda menyadari bahwa demo mengkilap yang berfungsi sempurna di MacBook Anda, rusak di laptop Windows yang menjalankan Chrome di balik proxy perusahaan. Ini adalah saat tim dukungan Anda dibanjiri tiket "Saya tidak bisa masuk lagi".
Kesenjangan antara demo kunci sandi yang berfungsi dan penerapan kunci sandi tingkat produksi sangatlah besar. Kami telah membahas jebakan implementasi teknis dan alasan strategis mengapa proyek kunci sandi gagal sebelumnya. Artikel ini berfokus secara khusus pada apa yang terjadi setelah Anda go live dari perspektif operasional.
Berikut adalah lima masalah Hari ke-2 yang akan kami bahas:
Jika Anda tidak merancang pemulihan dan fallback dengan benar, Anda akan mengunci pengguna dalam skala besar atau Anda diam-diam memperkenalkan kembali alur rentan phising yang sama dengan yang ingin Anda hilangkan.
Pertimbangkan pengguna yang mendaftar kunci sandi di iPhone mereka, lalu kehilangan iPhone tersebut. Biasanya, sebagian besar kasus pemulihan ini sekarang ditangani oleh manajer kredensial (kemungkinan besar iCloud Keychain di iPhone). Selama pengguna memiliki akses ke akun Apple mereka, mereka memiliki kunci sandi yang disinkronkan untuk masuk (log in) di perangkat baru. Tetapi bagaimana jika mereka tidak lagi memiliki akses ke akun cloud tersebut? Inilah saat jalur pemulihan rutin Anda berperan.
Katakanlah Anda mengasumsikan bahwa private key (kunci privat) masih tersedia di perangkat yang dicoba pengguna untuk masuk, sehingga Anda memulai seremonial login WebAuthn. Ini akan menghasilkan modal OS / browser yang meminta pengguna untuk "masuk dengan kunci sandi Anda di perangkat lain". Pada dasarnya, pengguna sekarang terkunci dari akun mereka. Tidak ada perangkat lain tempat kunci sandi disimpan. Pengguna menjadi sangat bingung. Kalikan ini dengan ribuan pengguna dan Anda akan menghadapi krisis dukungan.
Reaksi umumnya adalah menambahkan reset akun berbasis email sebagai fallback. Tetapi ini menggagalkan tujuan dari kunci sandi: Anda baru saja memperkenalkan kembali saluran pemulihan yang rentan phising. Penyerang yang dapat membahayakan email pengguna kini dapat mem-bypass implementasi kunci sandi tahan phising Anda sepenuhnya.
Menurut pendapat kami, pendekatan yang tepat adalah pemulihan berlapis:
Secara umum, Anda perlu memutuskan lapisan pemulihan akun mana yang dapat dijustifikasi dari perspektif biaya / gesekan. Misalnya, di ritel / e-commerce, Anda mungkin hanya menawarkan dua lapisan pertama dan menerima risiko phising karena alasan keuangan. Di industri lain, di mana keamanan lebih penting, Anda lanjut ke lapisan 3 dan 4.
Setiap lapisan menambah kompleksitas. Anda perlu memutuskan lapisan mana yang dibutuhkan use case Anda, membangunnya, mengujinya di semua kombinasi perangkat, dan memantau penggunaannya. Ini jauh lebih banyak pekerjaan daripada integrasi WebAuthn awal.
Sebagian besar tim terlalu menyederhanakan pemulihan (fallback ke kata sandi atau SMS OTP) atau terlalu mempersulitnya (mis. mewajibkan kunci keamanan perangkat keras untuk setiap pemulihan). Keseimbangan yang tepat tergantung pada model ancaman Anda, basis pengguna, dan persyaratan peraturan. Melakukan kesalahan berarti melemahkan postur keamanan Anda atau menciptakan begitu banyak gesekan sehingga pengguna meninggalkan alur tersebut.
Igor Gjorgjioski
Head of Digital Channels & Platform Enablement, VicRoads
We hit 80% mobile passkey activation across 5M+ users without replacing our IDP.
See how VicRoads scaled passkeys to 5M+ users — alongside their existing IDP.
Read the case studyPengguna Anda tidak hidup di dunia Apple-only yang bersih. Mereka berganti perangkat, mencampur Windows dengan iOS, menggunakan browser yang berbeda, dan bekerja pada pengaturan yang dikelola perusahaan. Di situlah alur kunci sandi rusak jika Anda belum merencanakannya.
Ekosistem kunci sandi mencakup tiga platform utama (Apple, Google, dan Microsoft), beberapa browser (Chrome, Safari, Firefox, dan Edge), puluhan penyedia kunci sandi / manajer kredensial (mis. 1Password, Bitwarden, Dashlane dan lainnya) dan banyak kombinasi OS/browser/perangkat. Setiap kombinasi dapat berperilaku sedikit berbeda, mis.:
Ketika pengguna membuat kunci sandi di iPhone mereka tetapi ingin masuk di laptop Windows, mereka dapat menggunakan autentikasi lintas perangkat (biasanya melalui kode QR dan Bluetooth). Alur ini berfungsi tetapi rapuh:
Kami telah melihat sendiri edge case ini di ribuan kombinasi perangkat. Jika Anda membangun kunci sandi secara in-house, Anda perlu menguji dan menangani setiap edge case tersebut. Jika tidak bisa, pengguna Anda akan mengalami kesalahan yang tidak dapat dijelaskan oleh tim dukungan Anda.
Bahkan pada perangkat yang sama, browser yang berbeda berperilaku berbeda. Chrome di macOS menampilkan modal kunci sandi yang berbeda dari Safari di macOS. Firefox memiliki perilakunya sendiri. Client hints dan deteksi agen pengguna menjadi sangat penting untuk memberikan alur yang tepat kepada pengguna yang tepat, tetapi menguraikannya dengan benar di semua kombinasi adalah beban pemeliharaan yang tidak pernah berakhir.
Pengujian kunci sandi dan QA sudah menjadi tantangan untuk aplikasi web (kami membahasnya secara rinci di Masalah 5: Perubahan Platform). Tetapi jika produk Anda juga memiliki aplikasi iOS dan Android native, kompleksitasnya berlipat ganda karena keputusan arsitektur dan perilaku spesifik platform yang tidak pernah dihadapi oleh tim web-only.
Keputusan pertama adalah apakah akan mengimplementasikan kunci sandi secara native atau melalui WebView. Setiap pendekatan memiliki trade-off:
| Aspek | Implementasi Native | Implementasi WebView |
|---|---|---|
| Kualitas UX | Terbaik di kelasnya, nuansa platform asli | Tergantung pada jenis WebView |
| Pemeliharaan | Basis kode terpisah untuk iOS dan Android | Logika web bersama |
| Persyaratan platform | Harus mengikuti perubahan SDK Apple/Google | Harus menangani masalah dukungan kunci sandi WebView |
| Kompleksitas | Tinggi (API spesifik platform) | Menengah (tetapi jenis WebView penting) |
Di iOS saja, Anda dapat memilih antara WKWebView, SFSafariViewController, SFAuthenticationSession dan ASWebAuthenticationSession - masing-masing dengan karakteristik dukungan kunci sandi yang berbeda. Di Android, Chrome Custom Tabs berperilaku berbeda dari WebView standar. Ini adalah keputusan yang tidak pernah harus dibuat oleh tim web-only, dan setiap pilihan menciptakan permukaan pemeliharaannya sendiri.
Di luar keputusan arsitektur, iOS dan Android menangani kunci sandi secara berbeda di tingkat OS:
NotAllowedError di web tetapi sebagai
SimpleAuthenticationServices.AuthorizationError di iOS dan
User cancelled the operation di Android's Credential Manager - lihat
webAuthn errors in production untuk pemetaan kesalahan lintas
platform secara lengkapJika Anda mengoperasikan aplikasi web dan aplikasi native, Anda bukan hanya menggandakan upaya QA tetapi Anda melipatgandakannya. Web, iOS, dan Android masing-masing berperilaku sebagai lingkungan kunci sandi terpisah yang memerlukan pengujian end-to-end independen dan pemantauan. Dan tidak seperti web, di mana Anda dapat menerapkan perbaikan secara instan, perbaikan aplikasi native dibatasi oleh siklus peninjauan app store.
"Kunci sandi didukung" bukan berarti "kunci sandi digunakan." Jika Anda tidak memiliki strategi peluncuran dan pengukuran, adopsi Anda akan mengecewakan dan proyek tersebut akan dicap gagal secara internal.
Kami telah membahas hal ini secara ekstensif dalam artikel kami tentang mengapa implementasi kunci sandi gagal: jika pengguna tidak beralih ke kunci sandi, proyek tersebut sudah gagal. Kata sandi tetap dominan, biaya SMS OTP tetap tinggi, risiko phising bertahan, dan organisasi Anda tidak melihat hasil atas investasi rekayasa yang signifikan.
Kasus bisnis untuk adopsi kunci sandi sangat kuat tetapi hanya jika adopsi benar-benar terjadi. Kami telah melihat enterprise meluncurkan kunci sandi dengan implementasi teknis hebat yang mencapai adopsi kurang dari 5% karena tidak ada yang memikirkan peluncuran dan strategi adopsi.
Mendorong adopsi kunci sandi adalah tantangan produk yang membutuhkan:
Berdasarkan pengalaman kami dengan penerapan kunci sandi berskala besar, berikut yang harus ditargetkan enterprise:
| Metrik | Lemah | Cukup | Kuat |
|---|---|---|---|
| Tingkat Pembuatan Kunci Sandi (dari pengguna yang memenuhi syarat) | <10% | 10-60% | >60% |
| Tingkat Login Kunci Sandi (dari semua login) | <5% | 5-40% | >40% |
Jika angka adopsi Anda terlihat seperti kolom "lemah" setelah tiga bulan, proyek tersebut sedang dalam masalah. Tanpa analitik untuk mengukur ini, Anda bahkan tidak akan tahu.
Pembaruan OS dan browser mengubah prompt, perilaku autofill, dan alur fallback. Jika Anda tidak memiliki pemantauan berkelanjutan, Anda akan mendapatkan regresi dan tiket dukungan tanpa peringatan.
Kami baru saja menerbitkan ikhtisar komprehensif tentang kesalahan WebAuthn yang terjadi dalam produksi.
Tidak seperti kata sandi (yang hanya berupa string yang divalidasi server Anda), kunci sandi bergantung pada integrasi yang mendalam dengan sistem operasi, browser, dan manajer kredensial. Saat Apple merilis versi iOS baru, prompt pembuatan kunci sandi mungkin terlihat berbeda. Saat Chrome memperbarui logika autofill-nya, alur login Anda mungkin rusak. Saat manajer kata sandi merilis versi baru, ia mungkin mulai mencegat permintaan kunci sandi dengan cara yang tidak Anda antisipasi.
Satu contoh baru-baru ini adalah bug iOS 26.2 di mana
isUserVerifyingPlatformAuthenticatorAvailable() mengembalikan false di semua browser
non-Safari (Chrome, Edge, Firefox), membutuhkan logika deteksi sadar platform menggunakan
getClientCapabilities() sebagai perbaikan (workaround).
Untuk memastikan Anda mengetahui semua potensi bug dan melacak adopsinya, Anda perlu mengatur stack observabilitas autentikasi Anda. Kami merekomendasikan setidaknya hal berikut:
NotAllowedError) dan kesalahan tak terduga (lonjakan AbortError
karena bug konkurensi atau
kesalahan kunci sandi Credential Manager
baru setelah pembaruan Android)Ini adalah jenis infrastruktur analitik autentikasi yang sebagian besar tim tidak bangun sampai mereka mengalami insiden. Pada saat itu, kerusakan pada kepercayaan pengguna dan kredibilitas proyek internal telah terjadi.
Biaya sebenarnya dari penerapan kunci sandi bukan pada pembuatan awalnya. Melainkan pada pemeliharaan berkelanjutan:
Berlangganan Passkeys Substack kami untuk berita terbaru.
Mengingat masalah Hari ke-2 ini, berikut adalah penilaian jujur tentang kapan Anda harus dan tidak boleh meluncurkan kunci sandi.
Mengerahkan segalanya karena alasan regulasi tanpa perencanaan yang tepat dapat meningkatkan biaya secara signifikan. Sistem kunci sandi yang diimplementasikan dengan buruk lebih buruk daripada tidak ada sistem kunci sandi sama sekali: hal itu mengikis kepercayaan pengguna, menghasilkan beban dukungan, dan memberi pemangku kepentingan internal alasan untuk membunuh proyek tersebut.
Masalah Hari ke-2 yang dijelaskan dalam artikel ini adalah alasan yang tepat mengapa banyak enterprise memilih untuk membeli daripada membangun infrastruktur kunci sandi mereka. Membangun server WebAuthn adalah bagian yang mudah. Mengoperasikan sistem kunci sandi tingkat produksi di ribuan kombinasi perangkat, dengan pemulihan yang tepat, pemantauan, dan analitik adopsi, adalah hal yang membedakan demo dari penerapan nyata.
Corbado ada khusus karena masalah Hari ke-2 itu sulit. Platform kami menangani kompleksitas operasional sehingga Anda tidak perlu membangun dan memeliharanya sendiri.
Corbado menyediakan alur pemulihan out-of-the-box dengan tingkat keamanan adaptif. Mulai dari strategi kunci sandi yang disinkronkan, autentikasi lintas perangkat, hingga verifikasi identitas otomatis. Logika pemulihan dibangun di dalam dan diperbarui secara berkelanjutan.
SDK frontend kami telah diuji sebelumnya pada ribuan kombinasi OS, browser, dan penyedia kunci sandi. Deteksi perangkat, penanganan UI bersyarat (conditional UI) dan perutean fallback terjadi secara otomatis. Ketika versi browser baru merusak sesuatu, kami memperbaikinya di SDK kami sebelum pengguna Anda menyadarinya.
Corbado mendukung implementasi kunci sandi native dan WebView dengan SDK yang mengabstraksi perbedaan platform. Anda fokus pada UX aplikasi Anda sementara kami menangani teknis dasar kunci sandi di seluruh iOS dan Android.
Dasbor analitik kami melacak setiap metrik yang penting: tingkat pembuatan kunci sandi, tingkat keberhasilan login, tingkat fallback, dan rincian tingkat perangkat. Anda mendapatkan wawasan yang dapat ditindaklanjuti untuk mendorong adopsi, bukan hanya data mentah.
Corbado terus memantau perubahan OS dan browser yang memengaruhi kunci sandi. SDK kami diperbarui secara proaktif. Penerapan kunci sandi Anda tetap stabil bahkan saat lanskap platform bergeser di bawahnya.
Kunci sandi adalah standar emas autentikasi. Itu tidak dipertanyakan. Namun jalan dari "mendukung kunci sandi" ke "kunci sandi yang bekerja secara andal dalam skala besar" diaspal dengan masalah Hari ke-2 yang diremehkan oleh sebagian besar tim.
Kelima masalah yang telah kita bahas (pemulihan, edge case lintas perangkat, kompleksitas aplikasi native, adopsi, dan perubahan platform) tidak jarang terjadi. Itu adalah inti tantangan operasional dari setiap penerapan kunci sandi produksi. Mengabaikannya tidak membuatnya hilang. Itu hanya berarti pengguna Anda yang akan menemukannya lebih dulu.
Rekomendasi jujur saya: jika Anda tidak memiliki know-how dan sumber daya untuk mengimplementasikan kunci sandi dengan benar, jangan meluncurkannya. Baik Anda berinvestasi dalam kapabilitas (produk, rekayasa, keamanan, dan analitik) atau bekerja sama dengan mitra yang telah menyelesaikan masalah ini. Hasil terburuknya adalah penerapan kunci sandi setengah matang yang dibatalkan karena tidak ada yang merencanakan Hari ke-2.
Corbado adalah Passkey Intelligence Platform untuk tim CIAM yang menjalankan autentikasi consumer dalam skala besar. Kami membantu Anda melihat apa yang tidak bisa ditunjukkan oleh log IDP dan tool analytics generik: device, versi OS, browser, dan credential manager mana yang mendukung passkey; mengapa enrollment tidak menjadi login; di mana flow WebAuthn gagal; dan kapan update OS atau browser diam-diam merusak login — semuanya tanpa mengganti Okta, Auth0, Ping, Cognito, atau IDP internal Anda. Dua produk: Corbado Observe menambah observability untuk passkey dan metode login lainnya. Corbado Connect menghadirkan managed passkey dengan analytics terintegrasi (berdampingan dengan IDP Anda). VicRoads menjalankan passkey untuk 5M+ pengguna dengan Corbado (aktivasi passkey +80%). Bicara dengan pakar Passkey →
Kelima masalah operasional tersebut adalah alur pemulihan dan fallback yang tidak aman, edge case ekosistem lintas perangkat, kompleksitas aplikasi native, adopsi pengguna yang rendah, dan regresi diam-diam dari pembaruan OS serta browser. Sebagian besar tim fokus pada integrasi WebAuthn awal dan meremehkan tantangan pasca-peluncuran ini, yang menyebabkan banyak proyek kunci sandi dibatalkan atau diam-diam ditinggalkan secara internal.
Pengguna dapat mengautentikasi melalui kode QR dan alur lintas perangkat Bluetooth, tetapi ini memerlukan Bluetooth yang aktif di kedua perangkat dan dapat diblokir oleh kebijakan MDM perusahaan dan firewall. UX bervariasi secara signifikan antar browser dan pengguna sering kali tidak mengerti mengapa mereka memindai kode QR, membuat perutean fallback yang sadar perangkat dan komunikasi yang jelas menjadi sangat penting untuk penerapan enterprise.
Adopsi yang kuat berarti tingkat pembuatan kunci sandi di atas 60% dari pengguna yang memenuhi syarat dan tingkat login kunci sandi di atas 40% dari semua login. Tingkat pembuatan di bawah 10% dan login di bawah 5% setelah tiga bulan menandakan peluncuran yang gagal. Mengukur ini memerlukan pelacakan infrastruktur khusus untuk tingkat pembuatan, tingkat keberhasilan login, tingkat fallback, dan pengabaian yang dirinci berdasarkan kombinasi perangkat dan OS.
Implementasi native memberikan UX terbaik di kelasnya tetapi memerlukan basis kode iOS dan Android yang terpisah dengan penanganan API spesifik platform dan pipeline QA independen. Pendekatan WebView berbagi logika web tetapi memperkenalkan ketidakkonsistenan dukungan kunci sandi tergantung pada jenis WebView. Di iOS saja, pilihan antara WKWebView, SFSafariViewController, dan ASWebAuthenticationSession masing-masing membawa karakteristik dukungan kunci sandi yang berbeda yang harus dievaluasi sebelum berkomitmen pada arsitektur.
Pemulihan yang disederhanakan seperti reset berbasis email memperkenalkan kembali saluran rentan phising, sementara pemulihan yang terlalu ketat seperti wajib menggunakan kunci keamanan perangkat keras menciptakan pengabaian. Pendekatan yang disarankan berlapis: kunci sandi yang disinkronkan sebagai strategi utama, autentikasi kode QR lintas perangkat sebagai lapisan kedua, verifikasi identitas otomatis dengan pemeriksaan keaktifan (liveness checks) sebagai lapisan ketiga, dan kredensial yang dapat diverifikasi secara digital sebagai lapisan keempat. Lapisan mana yang akan diimplementasikan bergantung pada model ancaman, basis pengguna, dan persyaratan peraturan Anda.
Artikel terkait
Daftar isi