Dipublikasikan: 12 November 2024, Terakhir diperbarui: 29 November 2024
WebAuthn Signal API memungkinkan pihak tepercaya memberikan sinyal kredensial yang ada ke penyedia kunci sandi yang terhubung. Hal ini memungkinkan penyedia kunci sandi pendukung memperbarui atau menghapus kunci sandi yang salah atau dicabut dari penyimpanannya sehingga kunci sandi tersebut tidak lagi ditawarkan kepada pengguna.
Kompatibilitas
Chrome mendukung Signal API di semua platform desktop dan Android.
Safari mendukung tetapi belum diterapkan. Firefox belum menyampaikan pendapatnya.
Pengelola Sandi Google dapat memperbarui kunci sandi untuk mencerminkan sinyal. Penyedia kunci sandi berbasis ekstensi Chrome di desktop memutuskan apakah akan mencerminkan sinyal tersebut.
Latar belakang
Saat kunci sandi (kredensial yang dapat ditemukan) dibuat, metadata seperti nama pengguna dan nama tampilan disimpan ke penyedia kunci sandi (seperti pengelola sandi) bersama dengan kunci pribadi, sementara kredensial kunci publik disimpan ke server pihak tepercaya (RP). Menyimpan nama pengguna dan nama tampilan membantu pengguna mengidentifikasi kunci sandi yang ditawarkan untuk digunakan saat login jika diminta. Hal ini sangat berguna jika pengguna memiliki lebih dari dua kunci sandi dari penyedia kunci sandi yang berbeda.
Namun, ada beberapa kasus ketika inkonsistensi antara daftar kunci sandi penyedia kunci sandi dan daftar kredensial server dapat menyebabkan kebingungan.
Kasus pertama adalah saat pengguna menghapus kredensial di server. Tindakan ini tidak mengubah kunci sandi di penyedia kunci sandi. Saat berikutnya pengguna mencoba login dengan kunci sandi, penyedia kunci sandi akan tetap menampilkan kunci sandi tersebut kepada pengguna. Namun, upaya untuk login akan gagal karena server tidak dapat memverifikasi kunci publik yang dihapus.
Kasus kedua adalah saat pengguna memperbarui nama pengguna atau nama tampilannya di server. Saat pengguna mencoba login lagi, kunci sandi di penyedia kunci sandi akan terus menampilkan nama pengguna dan nama tampilan lama meskipun telah diperbarui di server. Idealnya, keduanya disinkronkan.
Signal API
Signal API adalah WebAuthn API yang menyelesaikan inkonsistensi ini dengan memungkinkan RP memberikan sinyal perubahan kepada penyedia kunci sandi. Ada tiga metode:
PublicKeyCredential.signalUnknownCredential: Memberi sinyal bahwa kredensial tidak adaPublicKeyCredential.signalAllAcceptedCredentials: Memberi sinyal daftar kredensial tersimpanPublicKeyCredential.signalCurrentUserDetails: Nama pengguna dan nama tampilan Signal yang diperbarui
Memberi sinyal bahwa kredensial tidak ada
const credential = await navigator.credentials.get({ ... });
const payload = credential.toJSON();
const result = await fetch('/login', { ... });
// Detect authentication failure due to lack of the credential
if (result.status === 404) {
// Feature detection
if (PublicKeyCredential.signalUnknownCredential) {
await PublicKeyCredential.signalUnknownCredential({
rpId: "example.com",
credentialId: