Rumah >hujung hadapan web >tutorial css >Passkeys: Apa sih dan mengapa?

Passkeys: Apa sih dan mengapa?

William Shakespeare
William Shakespeareasal
2025-03-09 10:44:11706semak imbas

Passkeys: What the Heck and Why?

Passkeys cepat mendapat daya tarikan sebagai kaedah pengesahan revolusioner. Dipaparkan dengan jelas di W3C TPAC 2022, mereka telah mengintegrasikan ke Safari 16, MacOS, iOS, dan bersedia untuk menjadi standard untuk pengurus kata laluan seperti 1Password. Sudah disokong pada Android, siaran masa depan akan membawa fungsi passkey ke OS dan Windows Chrome.

Walaupun sering diabaikan dalam komuniti front-end, kesan passkeys terhadap pengalaman pengguna, terutamanya mengenai pengesahan dan pemprosesan bentuk, tidak dapat dinafikan. Artikel ini meneroka Passkeys dan WebAuthn API, yang menawarkan pemahaman yang komprehensif mengenai teknologi baru ini.

Jadual Kandungan

    terminologi utama
  • Memahami Passkeys
  • Passkeys: Penggantian Kata Laluan
  • Cryptography dijelaskan
  • Mengakses Passkeys
  • Passkeys vs. WebAuthn
  • Proses Pengesahan: Ringkasan
  • Lihat terperinci pada pelaksanaan Passkey
  • Kelemahan potensi
  • Masa Depan Passkeys
  • Sumber lanjut
terminologi utama

Menavigasi Dunia Passkeys memerlukan kebiasaan dengan istilah tertentu. Mari jelaskan beberapa konsep utama:

  • Parti Bergantung (Server): Permintaan Pengesahan Pengendalian Pelayan. Kami akan menggunakan "pelayan" sepanjang artikel ini.
  • pelanggan: penyemak imbas web atau sistem operasi.
  • Authenticator: perisian atau perkakasan menjana dan menyimpan pasangan kunci awam.
  • fido: Organisasi piawaian terbuka yang menentukan kelayakan FIDO.
  • WebAuthn: Protokol asas untuk passkeys (juga dikenali sebagai kelayakan FIDO2 atau kelayakan FIDO tunggal).
  • Passkeys: WebAuthn dengan penyegerakan awan (kelayakan FIDO multi-peranti, kelayakan yang boleh ditemui, atau kelayakan pemastautin).
  • Kriptografi utama awam: Sistem menggunakan pasangan kunci swasta dan awam untuk menandatangani/pengesahan atau penyulitan/penyahsulitan (kriptografi asimetrik).
  • rsa: algoritma kriptografi utama awam.
  • Cryptography Curve Elliptic (ECC): algoritma kriptografi utama awam moden.
  • ES256: Kunci awam lengkung elips menggunakan algoritma penandatanganan ECDSA dengan Hashing SHA256.
  • RS256: Sama seperti ES256, tetapi menggunakan RSA dengan RSASSA-PKCS1-V1.5 dan SHA256.
  • Memahami Passkeys

Sebelum membincangkan passkeys, kita mesti memahami WebAuthn (FIDO2). Passkeys membina WebAuthn, memanfaatkan kriptografi utama awam untuk menggantikan kata laluan. Peranti keselamatan (kekunci perkakasan atau TPM) menjana kunci swasta dan awam.

Kunci awam boleh diakses secara terbuka, sementara kunci persendirian tetap disimpan dengan selamat pada peranti penjanaan. Batasan utama WebAuthn adalah kebergantungan peranti; Kehilangan peranti bermakna kehilangan akses. Passkeys menangani ini melalui penyegerakan awan, membolehkan akses merentasi pelbagai peranti. Walau bagaimanapun, penting untuk diperhatikan bahawa kelayakan peranti tunggal juga wujud.

Pada masa ini, iOS, macOS, dan Android menawarkan sokongan komprehensif untuk passkeys yang disegerakkan awan, walaupun keserasian penyemak imbas tetap menjadi faktor. Pengurus Kata Laluan Google dan Keychain Apple iCloud memudahkan penyegerakan.

Passkeys: Penggantian Kata Laluan

Kriptografi utama awam menggunakan menandatangani . Data diproses menggunakan kunci peribadi melalui algoritma penandatanganan, dan kemudian disahkan menggunakan kunci awam. Sesiapa sahaja boleh menjana pasangan kunci, tetapi hanya kunci peribadi yang boleh membuat tandatangan yang dapat disahkan dengan kunci awam yang sepadan. Tandatangan ini menggantikan kata laluan. Pelayan menyimpan kunci awam, dan pengesahan melibatkan mengesahkan pemilikan kunci persendirian dengan menandatangani cabaran rawak.

Pendekatan ini menghapuskan risiko yang berkaitan dengan pelanggaran kata laluan. Sekiranya pangkalan data dikompromi, hanya kunci awam yang terdedah, menjadikannya tidak berguna kepada penyerang. Kata laluan terlupa menjadi perkara masa lalu, kerana pelayar ingat kelayakan, memudahkan proses log masuk. Biometrik atau pin dapat meningkatkan keselamatan.

Cryptography dijelaskan

Kriptografi utama awam menggunakan pasangan kunci peribadi dan awam. Penyulitan menggunakan kunci awam penerima, memastikan hanya kunci persendirian penerima yang boleh menyahsulit. Ini menyediakan kerahsiaan . Keaslian dipastikan melalui penandatanganan dan pengesahan. Tanda kunci peribadi pengirim Hash mesej, disahkan hanya dengan kunci awam pengirim.

Mengakses Passkeys

Akses memerlukan penjanaan utama dan penyimpanan, sering difasilitasi oleh pengesahan (perkakasan atau perisian). Pengesahan perisian mungkin menggunakan TPM atau Enclave Secure, manakala Pengesahan Perkakasan termasuk peranti seperti Yubikeys.

Protokol Pengesahan Pelanggan untuk Pengesahan (CTAP) menyediakan antara muka untuk mengakses pengesahan melalui pelbagai kaedah (NFC, USB, Bluetooth). Ciri yang unik menggunakan telefon (melalui Bluetooth) sebagai pengesahan untuk peranti yang tidak mempunyai sokongan passkey asli.

Passkeys vs. WebAuthn

PassKeys (multi-peranti) berbeza daripada kunci webauthn (satu peranti) dalam proses penyimpanan dan log masuk. WebAuthn memerlukan pemegang pengguna dan senarai AllowCredentials, manakala PassKeys menggunakan nama domain pelayan untuk mengenal pasti kunci yang berkaitan, menyelaraskan proses log masuk. Secara kritikal, mereka pada dasarnya sama.

Proses Pengesahan: Ringkasan

Kedua -dua Generasi WebAuthn dan Passkey melibatkan menerima cabaran pelayan dan menggunakan navigator.credentials.create untuk menghasilkan pasangan kunci. Kunci awam dihantar ke pelayan. Log masuk menggunakan navigator.credentials.get untuk menandatangani cabaran baru, yang kemudiannya disahkan oleh pelayan.

Lihat terperinci pada pelaksanaan Passkey

Penggunaan PassKey melibatkan Pengesahan (pendaftaran) dan pernyataan (login) fasa.

Pengesahan

navigator.credentials.create adalah pusat pengesahan. Pilihan Tentukan pasangan kunci yang dikehendaki:

// ... (code snippet for PublicKeyCredentialCreationOptions) ...

Tanggapan termasuk kunci awam dan clientDataJSON (mengandungi type, challenge, dan origin). Pelayan mengesahkan data ini dan menyimpan kunci awam, ID, dan pilihan algoritma attestationObject dan cose.

Penegasan

navigator.credentials.get mengendalikan pernyataan.

// ... (code snippet for PublicKeyCredentialRequestOptions) ...

Tanggapan termasuk tandatangan dan authenticatorData (mengandungi hash asal dan signCount). Pelayan mengesahkan tandatangan, clientDataJSON, dan signCount untuk pengesahan.

Kelemahan potensi

Batasan semasa termasuk sokongan sistem operasi terhad (terutamanya Windows dan Linux) dan kekurangan interoperabilitas antara platform passkey Google dan Apple.

Masa Depan Passkeys

Penggunaan sistem operasi yang meluas akan mendorong penggunaan yang meningkat. Pengurus kata laluan akan mengintegrasikan sokongan laluan masuk, dan sokongan asli pada Android dan IOS akan terus menguatkan kedudukan mereka. Passkeys menjanjikan masa depan tanpa kata laluan, meningkatkan keselamatan dan pengalaman pengguna.

Sumber lanjut

  • Live Demo
  • Demo GitHub Repository
  • Dokumentasi Yubikey
  • passkeys.dev
  • passkeys.io
  • webauthn.io

Atas ialah kandungan terperinci Passkeys: Apa sih dan mengapa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Bermula dengan SveltekitArtikel seterusnya:Bermula dengan Sveltekit