Menentukan penyedia kunci sandi dengan AAGUID

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

Tantangan terkait pengelolaan kunci sandi

Salah satu manfaat menggunakan kunci sandi adalah memungkinkan pengguna membuat beberapa kunci sandi untuk satu akun. Dengan fleksibilitas dan keandalan kunci sandi ini, meskipun pengguna tidak dapat mengakses akun karena kehilangan salah satu kunci sandinya, ia 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. Contoh yang bagus 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 di daftar kunci sandi. Tindakan ini membantu pengguna menemukan kunci sandi tertentu.

RP juga dapat memungkinkan pengguna memberi nama kunci sandi segera setelah dibuat atau setelahnya, tetapi banyak pengguna 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 untuk memberi nama kunci sandi, tetapi platform seperti browser Android, iOS, atau desktop dengan kemampuan ekstensi memungkinkan pembuatan kunci sandi oleh pengelola sandi pihak ketiga dan string agen pengguna tidak selalu merepresentasikan penyedia kunci sandi yang sebenarnya.

Dengan Authenticator Attestation Globally Unique Identifier (AAGUID), yang disertakan dalam kredensial kunci publik yang dikembalikan saat 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 nomor unik yang mengidentifikasi model pengautentikasi (bukan instance spesifik pengautentikasi). 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 telah disahkan) 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 di daftar kunci sandi untuk menunjukkan bahwa kunci sandi dibuat di Pengelola Sandi Google.

Setelan kunci sandi di 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.

Pengambilan 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.