Skip to main content
App Icon
Dapatkan Aplikasi Android Kami
Baca lebih pantas, luar talian & lebih
Pasang

Sediakan WebAuthn untuk Log Masuk Tanpa Kata Laluan

Pengenalan

Kata laluan kekal sebagai kelemahan utama dalam keselamatan dalam talian, dengan peratusan besar pelanggaran disebabkan oleh kelayakan yang dicuri atau lemah. Ketergantungan pada rahsia bersama ini mewujudkan risiko yang ketara bagi pengguna dan organisasi, daripada serangan phishing kepada kompromi pangkalan data. Melaksanakan WebAuthn log masuk tanpa kata laluan menawarkan alternatif yang mantap, memanfaatkan kriptografi kunci awam untuk menghapuskan keperluan kata laluan tradisional dan mengurangkan permukaan serangan anda secara ketara.

Matriks Teknologi–Kewangan

Prasyarat (Perkakasan/Perisian/Akaun)Kos (Beli atau Pajak/Pembiayaan)Jangka Hayat atau PembaharuanNota Cukai / PotonganHad Operasi atau Kadar Pengeluaran
Pelayan Web (cth., Node.js, Python, Go)$0 (Sumber Terbuka) - RM230/bulan (Pajakan Hosting)N/A (Perisian)N/AMengendalikan permintaan pengesahan serentak
Sijil TLS/SSL$0 (Let’s Encrypt) - RM460/tahun (EV SSL)90 hari (Let’s Encrypt) - 1 tahun (EV SSL)N/AMengamankan saluran komunikasi
Pengesah (Dalaman: Windows Hello, Touch ID; Luaran: YubiKey)$0 (Dalaman) - RM230-RM460 (Luaran)Jangka Hayat PerantiN/AKredensial pengesahan 1 faktor
Masa Pembangun untuk IntegrasiRM230-RM690/jam (Pekerja Lepas) - RM460k+/tahun (Dalaman)N/APerbelanjaan OperasiKerumitan pelaksanaan

Langkah Demi Langkah

Langkah 1: Fahami Asas WebAuthn

Sebelum mendalami pelaksanaan, adalah penting untuk memahami konsep teras. WebAuthn, sebahagian daripada rangka kerja FIDO2, membolehkan pengesahan tanpa kata laluan dengan menggunakan kriptografi kunci awam. Daripada kata laluan, pasangan kunci awam-persendirian unik (kredensial) dijana untuk setiap pengguna dan tapak web. Kunci persendirian kekal selamat pada peranti pengguna (cth., melalui Windows Hello, Touch ID, atau kekunci keselamatan perkakasan seperti YubiKey), manakala kunci awam disimpan oleh pelayan. Ini menghapuskan risiko kecurian kata laluan daripada pangkalan data dan percubaan phishing, kerana kunci persendirian tidak pernah meninggalkan kawalan pengguna. Manfaat kewangan ialah pengurangan langsung dalam kos dan impak insiden keselamatan.

Langkah 2: Pilihan Penciptaan Kredensial Sisi Pelayan

Pelayan anda memulakan proses pendaftaran WebAuthn dengan menyediakan pilihan kepada pelanggan. Ini melibatkan penjanaan cabaran unik yang rawak secara kriptografi untuk mengelakkan serangan main semula. Anda akan mentakrifkan objek rp (pihak yang bergantung), yang termasuk ID domain anda (cth., webauthn.guide). Objek pengguna mengandungi pengecam untuk pengguna, dan pubKeyCredParams menentukan algoritma kunci awam yang boleh diterima (cth., ES256). pemilihanPengesah membolehkan anda menentukan keutamaan untuk jenis pengesah (platform vs. merentas platform). Menetapkan had masa untuk respons pengguna juga kritikal. Persediaan ini memastikan hanya kredensial yang sah boleh didaftarkan untuk perkhidmatan anda.

Langkah 3: Pendaftaran Kredensial Sisi Pelanggan

Pada sisi pelanggan (dalam penyemak imbas), anda akan menggunakan Web Authentication API. Panggilan kepada navigator.credentials.create() dengan pilihan yang disediakan oleh pelayan akan meminta peranti pengguna untuk mencipta pasangan kunci baharu. Pengguna akan berinteraksi dengan pengesah mereka (cth., imbas cap jari, masukkan PIN). Pengesah kemudiannya menjana objek PublicKeyCredential, yang termasuk kunci awam, ID kredensial, dan data pengesahan. Objek ini kemudiannya dihantar kembali ke pelayan anda untuk pengesahan. Penjimatan kos di sini datang daripada mengurangkan tiket sokongan pengguna yang berkaitan dengan kata laluan terlupa dan penguncian akaun.

Langkah 4: Pengesahan Data Pendaftaran Sisi Pelayan

Setelah menerima PublicKeyCredential daripada pelanggan, pelayan anda mesti melakukan pengesahan yang teliti. Ini melibatkan pemeriksaan bahawa cabaran yang dikembalikan sepadan dengan yang anda hantar pada mulanya, memastikan asal adalah betul, dan mengesahkan jenis ialah webauthn.create. objekPengesahan juga boleh disahkan untuk memastikan pengesah dipercayai. Jika semua pemeriksaan lulus, anda menyimpan credentialId dan publicKey yang dikaitkan dengan pengguna. Langkah pengesahan ini adalah penting untuk mengelakkan penciptaan akaun palsu dan mengekalkan integriti data.

Langkah 5: Laksanakan Aliran Pengesahan

Setelah pengguna didaftarkan, aliran pengesahan adalah serupa tetapi menggunakan navigator.credentials.get(). Pelayan anda sekali lagi menjana cabaran dan menghantarnya ke pelanggan, bersama dengan pilihan allowCredentials yang menentukan credentialId yang mungkin dimiliki oleh pengguna. Pelanggan meminta pengesah pengguna untuk menandatangani cabaran menggunakan kunci persendirian. Respons yang ditandatangani dihantar kembali ke pelayan, di mana anda mengesahkan tandatangan terhadap kunci awam yang disimpan. Pengesahan yang berjaya memberikan akses pengguna tanpa kata laluan, meningkatkan keselamatan dan pengalaman pengguna, serta mengurangkan beban operasi untuk tetapan semula kata laluan.

  • Fahami konsep WebAuthn (kriptografi kunci awam, FIDO2).
  • Konfigurasikan pilihan sisi pelayan untuk penciptaan kredensial.
  • Laksanakan API sisi pelanggan untuk penjanaan pasangan kunci.
  • Sahkan data pendaftaran di pelayan.
  • Bangunkan aliran pengesahan menggunakan navigator.credentials.get().
Rel PengeluaranKosKawasan Disokong
Pendaftaran WebAuthn$0 (Masa Pembangun)Global
Pengesahan WebAuthn$0 (Masa Pembangun)Global
Kunci Keselamatan Perkakasan (Pilihan)RM230 - RM460 (Sekali)Global

Tips & Amalan Terbaik

  • Sentiasa gunakan HTTPS untuk mengamankan saluran komunikasi.
  • Jana cabaran yang kukuh dan unik untuk setiap percubaan pengesahan.
  • Simpan kunci awam dan ID kredensial dengan selamat di pelayan anda.
  • Berikan arahan yang jelas kepada pengguna tentang cara menggunakan pengesah mereka.
  • Pertimbangkan untuk menawarkan WebAuthn sebagai kaedah pengesahan tambahan bersama kata laluan pada mulanya.
  • Sentiasa semak dan kemas kini pelaksanaan WebAuthn anda agar selaras dengan piawaian FIDO.

Kesilapan Biasa

Ralat TeknikalKesan KewanganPembaikan Selamat
Pengesahan cabaran yang salahPengambilalihan akaun melalui serangan main semulaPastikan cabaran sisi pelayan sepadan tepat dengan cabaran yang disediakan pelanggan.
ID pihak yang bergantung tidak sepadanPendaftaran kredensial untuk asal yang salahSahkan rp.id dalam pilihan pelayan sepadan dengan domain anda dengan tepat.
Panggilan API sisi pelanggan gagalPengguna tidak boleh mendaftar/mengesahkanSemak keserasian penyemak imbas dan pastikan penggunaan API yang betul. Sediakan pilihan sandaran.
Kunci awam tidak disimpan dengan betulPengguna tidak boleh mengesahkanLaksanakan penyimpanan dan pengambilan pangkalan data yang mantap untuk kunci awam dan ID kredensial.

Ringkasan / Pengajaran Utama

  • WebAuthn menawarkan peningkatan keselamatan yang ketara berbanding kata laluan tradisional.
  • Ia memanfaatkan kriptografi kunci awam untuk pengesahan yang kukuh tanpa kata laluan.
  • Pelaksanaan melibatkan persediaan sisi pelayan dan panggilan API sisi pelanggan.
  • Komponen utama termasuk cabaran, ID pihak yang bergantung, dan pengurusan kredensial.
  • Sokongan penyemak imbas dan pengesah adalah meluas.
  • Mengurangkan risiko phishing dan pelanggaran pangkalan data.

Kesimpulan

Menerima WebAuthn log masuk tanpa kata laluan adalah langkah strategik untuk memperkukuh postur keselamatan aplikasi anda dan meningkatkan pengalaman pengguna. Dengan beralih daripada kata laluan yang terdedah kepada kriptografi kunci awam yang mantap, anda boleh mengurangkan risiko pengambilalihan akaun dan pelanggaran data secara ketara. Walaupun integrasi awal memerlukan usaha pembangunan, faedah jangka panjang dari segi pengurangan kos insiden keselamatan dan peningkatan kepercayaan pengguna adalah besar.


Nota: Panduan ini menyediakan maklumat pendidikan tentang melaksanakan WebAuthn. Ia bukan nasihat kewangan, cukai, atau undang-undang. Berunding dengan profesional yang berkelayakan untuk keperluan pelaksanaan dan pematuhan khusus.

Bacaan berkaitan

Sumber: Implement WebAuthn for passwordless login oleh Web Authn Guide

Ringkasan langkah

  1. Langkah 1: Fahami Asas WebAuthn

    Fahami konsep teras WebAuthn, termasuk kriptografi kunci awam, pasangan kunci, dan rangka kerja FIDO2, untuk membina asas yang selamat bagi pengesahan tanpa kata laluan.

  2. Langkah 2: Pilihan Penciptaan Kredensial Sisi Pelayan

    Konfigurasikan pilihan sisi pelayan untuk penciptaan kredensial, seperti penjanaan cabaran, pengecam pihak yang bergantung, dan parameter kunci awam yang boleh diterima, untuk memulakan proses pendaftaran.

  3. Langkah 3: Pendaftaran Kredensial Sisi Pelanggan

    Laksanakan panggilan API navigator.credentials.create() di sisi pelanggan untuk meminta pengesah pengguna menjana pasangan kunci baharu untuk asal yang dinyatakan.

  4. Langkah 4: Pengesahan Data Pendaftaran Sisi Pelayan

    Sahkan data kredensial yang dikembalikan di pelayan, pastikan cabaran, asal, dan jenis sepadan untuk mengesahkan acara pendaftaran yang selamat dan sah.

  5. Langkah 5: Laksanakan Aliran Pengesahan

    Bangunkan aliran pengesahan dengan meminta cabaran daripada pelayan dan menggunakan navigator.credentials.get() di pelanggan untuk mengesahkan pengguna dengan kredensial mereka yang didaftarkan.

Soalan Lazim

Apakah itu WebAuthn?

WebAuthn (Web Authentication API) ialah piawaian yang membolehkan pengguna mengesahkan diri ke aplikasi web menggunakan kredensial yang kukuh dan tahan phishing seperti biometrik (imbasan cap jari, muka) atau kekunci keselamatan perkakasan, bukannya kata laluan.

Bagaimana WebAuthn meningkatkan keselamatan?

WebAuthn menggunakan kriptografi kunci awam, di mana kunci persendirian yang disimpan dengan selamat pada peranti pengguna digunakan untuk menandatangani cabaran pengesahan. Ini menghalang kredensial daripada dicuri melalui phishing atau pelanggaran pangkalan data, kerana kunci persendirian tidak pernah meninggalkan peranti.

Apakah faedah log masuk tanpa kata laluan dengan WebAuthn?

Faedah termasuk keselamatan yang dipertingkatkan, pengurangan risiko pengambilalihan akaun, pengalaman pengguna yang lebih baik (tidak perlu mengingati atau menaip kata laluan), dan kos operasi yang lebih rendah berkaitan dengan tetapan semula kata laluan dan sokongan.

Bolehkah WebAuthn digunakan bersama kata laluan?

Ya, WebAuthn boleh dilaksanakan sebagai faktor pengesahan tambahan atau sebagai pilihan utama tanpa kata laluan. Banyak organisasi memilih untuk pelancaran berperingkat, membenarkan pengguna memilih kaedah pilihan mereka.

Apakah rangka kerja FIDO2?

FIDO2 ialah satu set piawaian yang dibangunkan oleh FIDO Alliance dan W3C yang membolehkan pengesahan yang kukuh tanpa kata laluan. WebAuthn ialah spesifikasi API sisi pelanggan dalam rangka kerja FIDO2.

Bagaimana saya mengendalikan pendaftaran pengguna dengan WebAuthn?

Semasa pendaftaran, pelayan anda menyediakan pilihan penciptaan, dan pelanggan menggunakan `navigator.credentials.create()` untuk meminta pengesah pengguna menjana pasangan kunci baharu. Kunci awam dan ID kredensial yang terhasil kemudiannya disimpan pada pelayan anda.

Bagaimana saya mengendalikan pengesahan pengguna dengan WebAuthn?

Untuk pengesahan, pelayan anda menyediakan pilihan pengesahan (termasuk cabaran), dan pelanggan menggunakan `navigator.credentials.get()` untuk meminta pengesah pengguna menandatangani cabaran dengan kunci persendirian. Pelayan mengesahkan tandatangan.

Produk Disyorkan

Lihat Semua →

Pendedahan Afiliasi: Catatan ini mengandungi pautan afiliasi. Kami mungkin mendapat komisen jika anda membuat pembelian.