Rumah >hujung hadapan web >tutorial css >Passkeys: Apa sih dan mengapa?
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
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.
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.
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.
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 (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.
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.
Penggunaan PassKey melibatkan Pengesahan (pendaftaran) dan pernyataan (login) fasa.
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.
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.
Batasan semasa termasuk sokongan sistem operasi terhad (terutamanya Windows dan Linux) dan kekurangan interoperabilitas antara platform passkey Google dan Apple.
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.
Atas ialah kandungan terperinci Passkeys: Apa sih dan mengapa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!