Menentukan penyedia kunci sandi dengan AAGUID

Pihak tepercaya (RP) dapat menentukan penyedia kunci sandi yang membuat kunci sandi dengan memeriksa AAGUID kredensial kunci publik terkait.

Tantangan pengelolaan kunci sandi

Salah satu manfaat penggunaan kunci sandi adalah pengguna dapat membuat beberapa kunci sandi untuk satu akun. Dengan fleksibilitas ini serta ketahanan kunci sandi, meskipun pengguna terkunci dari akun karena kehilangan salah satu kunci sandinya, mereka masih dapat login ke pihak tepercaya menggunakan kunci sandi alternatif.

Tantangan bagi pengguna yang mengelola beberapa kunci sandi di RP adalah mengidentifikasi kunci sandi yang tepat saat mereka perlu mengedit atau menghapus kunci sandi tertentu di antara yang lainnya. Contoh yang baik adalah saat pengguna ingin menghapus kunci sandi yang tidak digunakan. RP direkomendasikan untuk melampirkan informasi tentang kunci sandi seperti tanggal pembuatan dan tanggal terakhir digunakan dalam daftar kunci sandi. Hal ini membantu pengguna menemukan kunci sandi tertentu.

RP juga dapat mengizinkan pengguna memberi nama kunci sandi segera setelah dibuat atau nanti, tetapi banyak pengguna yang tidak melakukannya. Idealnya, kunci sandi diberi nama secara otomatis yang mencerminkan sinyal yang dikirim dari klien atau informasi yang disertakan dalam kredensial kunci publik.

Browser menyediakan string agen pengguna yang dapat digunakan pihak tepercaya untuk memberi nama kunci sandi, tetapi platform seperti Android, iOS, atau browser desktop dengan kemampuan ekstensi memungkinkan pembuatan kunci sandi oleh pengelola sandi pihak ketiga dan string agen pengguna tidak selalu mewakili siapa penyedia kunci sandi yang sebenarnya.

Dengan ID Unik Global Pengesahan Pengautentikasi (AAGUID), yang disertakan dalam kredensial kunci publik yang ditampilkan pada pendaftaran kunci sandi, RP dapat menentukan penyedia kunci sandi dan menggunakannya agar pengguna dapat menemukan kunci sandi yang tepat dengan mudah.

Menentukan penyedia kunci sandi dengan AAGUID

AAGUID adalah angka unik yang mengidentifikasi model pengautentikasi (bukan instance pengautentikasi tertentu). AAGUID dapat ditemukan sebagai bagian dari data pengautentikasi kredensial kunci publik.

Tata letak objek pengesahan yang menggambarkan data pengautentikasi yang disertakan (berisi data kredensial yang diautentikasi) dan pernyataan pengesahan.
AAGUID dapat ditemukan di data pengautentikasi.

RP dapat menggunakan AAGUID untuk mengidentifikasi penyedia kunci sandi. Misalnya, jika pengguna membuat kunci sandi di perangkat Android menggunakan Pengelola Sandi Google, RP akan menerima AAGUID "ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4". RP dapat menganotasi kunci sandi dalam daftar kunci sandi untuk menunjukkan bahwa kunci sandi tersebut dibuat di Pengelola Sandi Google.

Setelan kunci sandi dalam halaman setelan keamanan menampilkan informasi mendetail tentang setiap kunci sandi.
Contoh UI pengelolaan kunci sandi.

Untuk memetakan AAGUID ke penyedia kunci sandi, RP dapat menggunakan repositori AAGUID yang bersumber dari komunitas. Dengan mencari AAGUID di daftar, nama penyedia kunci sandi dan teks data svg ikonnya dapat ditemukan.

Mengambil AAGUID adalah fitur yang disediakan oleh sebagian besar library WebAuthn. Contoh berikut menunjukkan kode pendaftaran sisi server menggunakan SimpleWebAuthn:

// Import a list of AAGUIDs from a JSON file
import aaguids from './aaguids.json' with { type: 'json' };

...

 // Use SimpleWebAuthn handy function to verify the registration request.
const { verified, registrationInfo } = await verifyRegistrationResponse({
  response: credential,
  expectedChallenge,
  expectedOrigin,
  expectedRPID,
  requireUserVerification: false,
});

...

const { aaguid } = registrationInfo;
const provider_name = aaguids[aaguid]?.name || 'Unknown';

Kesimpulan

AAGUID adalah string unik yang mengidentifikasi penyedia kunci sandi yang membuat kunci sandi. RP dapat menggunakan AAGUID untuk memudahkan pengguna mengelola kunci sandi mereka. Repositori AAGUID yang bersumber dari komunitas dapat digunakan untuk memetakan AAGUID ke penyedia kunci sandi.