Halaman ini diterjemahkan secara otomatis. Baca versi asli berbahasa Inggris di sini.
Atestasi dapat merujuk pada tiga hal (seringkali dalam bahasa lisan, istilah-istilah ini digunakan secara bergantian meskipun memiliki arti yang berbeda jika dipahami secara tepat):
Pertama dan secara lebih umum, atestasi dalam dunia kriptografi adalah istilah di mana satu pihak "menyatakan" secara kriptografis sebuah pernyataan kepada pihak lain.
Kedua, selama fase pendaftaran di WebAuthn, sebuah objek atestasi dibuat oleh autentikator dan dikembalikan ke Relying Party. Ini adalah objek wadah yang berisi informasi berikut:
fmt)attStmt - lihat di bawah)authData)Ketiga, dalam WebAuthn, sebuah pernyataan atestasi adalah elemen opsional dari objek atestasi. Pernyataan ini, ketika disertakan, memverifikasi karakteristik tertentu dari autentikator (perangkat) yang terlibat dalam proses atestasi. Namun, beberapa produsen perangkat (misalnya Apple) tidak menawarkan pernyataan atestasi karena aspek spesifikasi ini tidak dimaksudkan untuk sinkronisasi passkey dan gagal memverifikasi atribut keamanan secara efektif ketika kredensial dapat disinkronkan di berbagai perangkat (misalnya, passkey dibuat di iPhone tetapi juga digunakan di MacBook karena disinkronkan melalui iCloud Keychain yang sama). Karakteristik yang dapat diberikan ketika pernyataan atestasi disediakan:
Alur proses Pendaftaran berikut menunjukkan peran atestasi (objek) dalam WebAuthn:
{ "root": { "id": "QFPlQVypLmmx71e0tmS3IfCFky0", "rawId": "QFPlQVypLmmx71e0tmS3IfCFky0", "response": { "attestationObject": { "fmt": "none", "attStmt": {}, "authData": { "rpIdHash": "t8DGRTBfls-BhOH2QC404lvdhe_t2_NkvM0nQWEEADc", "flags": { "userPresent": true, "userVerified": true, "backupEligible": true, "backupStatus": true, "attestedData": true, "extensionData": false }, "counter": 0, "aaguid": "00000000-0000-0000-0000-000000000000", "credentialID": "QFPlQVypLmmx71eOtmS3IfCFky0", "credentialPublicKey": "pQECAyYgASFYIEa-lpSiQ4P...", "parsedCredentialPublicKey": { "keyType": "EC2 (2)", "algorithm": "ES256 (-7)", "curve": 1, "x": "Rr6WlKJDg8MlbIq9mmHQzk2p2c_s7QoNKr7yMa7I8pM", "y": "tAELYp7h3sYNjZZIZgHPYiaSzF×QVT18cgZ_7wm13Vw" } } }, "clientDataJSON": { "type": "webauthn.create", "challenge": "AAABeB78HrIemh1jTdJICr_3QG_RMOhp", "origin": "https://passkeys.eu", "crossOrigin": false }, "transports": ["hybrid", "internal"], "publicKeyAlgorithm": -7 }, "authenticatorAttachment": "cross-platform" } }
Pada tangkapan layar di atas, tidak ada AAGUID dan tidak ada pernyataan atestasi yang diberikan.
Eksperimen dengan alur passkey di Passkeys Debugger.
Lanjutkan membaca untuk rincian teknis dari atribut yang paling penting.
Dalam WebAuthn, atestasi memastikan bahwa autentikasi pengguna aman dan transparan. Dengan pernyataan atestasi, Anda dapat memastikan bahwa kredensial dibuat pada autentikator / perangkat tertentu.
Jenis-jenis atestasi ini mengacu pada pernyataan atestasi (bukan objek atestasi). Ini dianggap sebagai preferensi oleh relying party (sehingga autentikator dapat berperilaku berbeda karena ini hanya preferensi).
none): Untuk kasus di mana privasi menjadi perhatian utama atau
perangkat yang disinkronkan digunakan, jenis ini tidak memberikan informasi tentang
perangkat, memastikan privasi pengguna tetap terjaga. Alasan lain untuk menggunakan
nilai ini mungkin untuk menghemat perjalanan bolak-balik ke otoritas sertifikat (CA).
none juga merupakan nilai default.indirect): Relying party lebih
suka mendapatkan atestasi tetapi memungkinkan klien untuk memutuskan cara mendapatkan
pernyataan atestasi. Klien dapat mengganti pernyataan atestasi yang dihasilkan
autentikator dengan pernyataan atestasi anonim untuk melindungi privasi pengguna.direct): Ini adalah bentuk yang paling transparan. Di sini,
relying party memberitahu autentikator bahwa ia menginginkan pernyataan atestasi,
sehingga relying party mendapatkan informasi rinci tentang perangkat, termasuk merek,
model, dan spesifik lainnya. Meskipun menawarkan transparansi tertinggi, ini dapat
menimbulkan kekhawatiran privasi dalam skenario tertentu atau mungkin tidak benar-benar
dapat digunakan untuk kredensial yang disinkronkan.enterprise): Relying party ingin menerima pernyataan atestasi
yang dapat mencakup informasi identifikasi unik. Jenis atestasi ini biasanya digunakan
dalam bisnis atau organisasi yang ingin melacak perangkat / autentikator tertentu. Agen
pengguna (browser web) tidak boleh memberikan atestasi rinci ini kecuali pengaturannya
mengizinkannya secara khusus untuk pihak yang meminta. Jika pengaturan mengizinkannya,
browser harus memberitahu perangkat saat dibutuhkan (di awal proses) bahwa jenis
atestasi spesifik ini sedang diminta. Browser kemudian harus meneruskan ID unik
perangkat dan bukti atestasi persis seperti yang diterimanya kepada relying party.Berlangganan Passkeys Substack kami untuk berita terbaru.
Objek atestasi berisi banyak atribut, berikut adalah penjelasan singkat dari beberapa atribut yang dipilih:
"attestationObject": { "fmt": "none", "attStmt": {}, "authData": { "rpIdHash": "t8DGRTBfls-BhOH2QC404lvdhe_t2_NkvM0nQWEEADc", "flags": { "userPresent": true, "userVerified": true, "backupEligible": true, "backupStatus": true, "attestedData": true, "extensionData": false }, "counter": 0, "aaguid": "00000000-0000-0000-0000-000000000000", "credentialID": "QFPlQVypLmmx71eOtmS3IfCFky0", "credentialPublicKey": "pQECAyYgASFYIEa-lpSiQ4P...", "parsedCredentialPublicKey": { "keyType": "EC2 (2)", "algorithm": "ES256 (-7)", "curve": 1, "x": "Rr6WlKJDg8MlbIq9mmHQzk2p2c_s7QoNKr7yMa7I8pM", "y": "tAELYp7h3sYNjZZIZgHPYiaSzF×QVT18cgZ_7wm13Vw" } }
attestationObject adalah objek yang dikodekan CBOR, berisi informasi tentang kredensial yang baru dibuat, kunci publik, dan data relevan lainnya:
Berbeda dengan objek atestasi di atas di mana attStmt dibiarkan kosong untuk alasan
keterbacaan, inilah tampilan pernyataan atestasi yang terisi.
{ "alg": -65535, "sig": "MBHX7qov53SWqqPYCrxE5fcoAeDI83a0DzVJ2-N1KI6IAaCGGvINAIFzTEn44F6giANKte-8yEMDZbvbgDG1weaRj7SqsVaTty-TEQ", "ver": "2.0", "x5c": [ "MIIFwDCCA6oIaK6tZ7M", "MIIG6zCCBNpG18-MCJrHyrpMT-ul7RgxE4dFxqcG59ftTXqJ1f-X_Lpo7K-d7OgKoQrUgzxgATz8YXtFAk3rE1cHXvW9W52V637eAihKn9-UKC0ijzVXrBGX4Iq1o1M0ZfR-tFoOn498xasMCTnharKiM562GBLVJtlvV3DMSLEBl5SfuGM-qYjQgTQknXccks9guCmNaN_b2fo1DisbufXfjM3DVaMqx7IJpSc3wAnxooMrAYGpPM" ], "pubArea": "AAEACwAw_c3Ousz865mUPx8O3w", "certInfo": "_1RDR4AXAniCekfsiDI" }
alg: Properti alg menunjukkan pengidentifikasi algoritma kriptografi yang digunakan
oleh autentikator untuk menandatangani pernyataan atestasi.sig: Properti sig berisi tanda tangan digital yang dihasilkan oleh autentikator. Tanda
tangan ini digunakan untuk memverifikasi keaslian pernyataan atestasi.ver: Properti ver menentukan versi format pernyataan atestasi.x5c: Array x5c berisi satu atau lebih sertifikat X.509 yang membentuk jalur
sertifikasi, yang membantu dalam memvalidasi atestasi.pubArea: Properti pubArea berisi informasi rinci tentang kunci publik dan
karakteristik autentikator.certInfo: Properti certInfo biasanya mencakup informasi tentang sertifikasi
autentikator oleh pihak tepercaya."clientDataJSON": { "type": "webauthn.create", "challenge": "AAABeB78HrIemh1jTdJICr_3QG_RMOhp", "origin": "https://www.passkeys-debugger.io", "crossOrigin": false }
Baca lebih lanjut tentang clientDataJSON di artikel glosarium terkait.
"transports": [ "hybrid", "internal" ]
Properti transports menunjukkan mekanisme di mana autentikator dapat berkomunikasi dengan klien. Beberapa kombinasi nilai sampel yang umum adalah:
"transports": ["internal","hybrid"]: Passkey dapat digunakan dari autentikator
platform (misalnya Face ID, Touch ID,
Windows Hello) atau melalui
autentikasi lintas perangkat (menggunakan
kode QR & Bluetooth)."transports": ["internal"]: Passkey dapat digunakan dari autentikator platform
(misalnya Face ID, Touch ID,
Windows Hello)transports yang diatur: perilaku default yang tidak memberikan
indikasi apa pun.Atestasi (pernyataan atestasi) dalam WebAuthn penting karena menawarkan bukti keaslian sebuah autentikator. Ini memastikan bahwa proses autentikasi dilakukan oleh perangkat tepercaya, sehingga melindungi dari potensi ancaman keamanan.
Igor Gjorgjioski
Head of Digital Channels & Platform Enablement, VicRoads
We hit 80% mobile passkey activation across 5M+ users without replacing our IDP.
See how VicRoads scaled passkeys to 5M+ users — alongside their existing IDP.
Read the case studyYa, karena passkey dapat disinkronkan di seluruh perangkat (misalnya dari iPhone ke
MacBook melalui Keychain), relying party tidak dapat lagi benar-benar menentukan perangkat
mana yang diates yang benar-benar masuk ke aplikasi atau situs web. Oleh karena itu, Apple
dan Google memutuskan bahwa untuk passkey yang disinkronkan, mereka tidak akan lagi
memberikan pernyataan atestasi. Namun, untuk meningkatkan UX bagi relying party dan
memberi mereka kesempatan untuk mengenali dan menampilkan passkey dari ekosistem Apple dan
Google (iCloud Keychain dan Pengelola Sandi Google), AAGUID akan tetap diberikan (selama
atestasi diatur ke direct atau indirect dalam pengaturan server WebAuthn untuk
PublicKeyCredentialCreationOptions. Lihat
isu GitHub ini untuk detailnya.
Jika Anda ingin mengintegrasikan
autentikasi passkey di situs web dan
aplikasi Anda, dan ingin menawarkan UX passkey yang hebat kepada pengguna Anda, Anda harus
mempertimbangkan hal berikut. Kami berasumsi Anda membangun solusi Anda terutama untuk
skenario di mana sebagian besar pengguna Anda menggunakan sistem operasi Windows,
iOS, macOS, atau Android. Selain itu, kami berasumsi
bahwa sebagian besar passkey (selain dari Windows) adalah passkey yang disinkronkan.
Karena baik iOS, macOS, maupun Android tidak lagi mengirimkan pernyataan atestasi,
validasi nyata dari sebuah autentikator tidak lagi digunakan (untuk Windows ini masih
berfungsi, mungkin karena Windows belum menawarkan passkey yang disinkronkan melalui
Windows Hello). Namun, untuk mendapatkan AAGUID, misalnya untuk
manajemen passkey yang lebih baik di pengaturan akun, kami merekomendasikan untuk mengatur
preferensi atestasi ke indirect, karena ini masih memungkinkan untuk mendapatkan AAGUID
sementara pernyataan atestasi dikirim (Windows) atau tidak dikirim (iOS, macOS, Android).
Layanan metadata FIDO menyediakan repositori metadata untuk berbagai autentikator. Selama atestasi, layanan ini dapat dikueri untuk mengambil dan memvalidasi detail tentang autentikator, memastikan akurasi dan meningkatkan kepercayaan proses. Layanan metadata FIDO memeriksa pernyataan atestasi (bukan objek atestasi).
Ya, atestasi langsung (dalam pernyataan atestasi), meskipun menawarkan transparansi tertinggi dengan memberikan informasi rinci tentang perangkat, dapat menimbulkan kekhawatiran privasi dalam skenario tertentu. Sangat penting untuk menilai kebutuhan akan transparansi versus privasi saat memilih jenis atestasi.
WebAuthn menawarkan berbagai jenis preferensi atestasi
– tanpa, tidak langsung, langsung, dan perusahaan. Untuk skenario di mana privasi pengguna
penting, attestation=none dapat digunakan, yang tidak memberikan detail tentang
perangkat, memastikan privasi pengguna tetap terlindungi.
Corbado adalah Passkey Intelligence Platform untuk tim CIAM yang menjalankan autentikasi consumer dalam skala besar. Kami membantu Anda melihat apa yang tidak bisa ditunjukkan oleh log IDP dan tool analytics generik: device, versi OS, browser, dan credential manager mana yang mendukung passkey; mengapa enrollment tidak menjadi login; di mana flow WebAuthn gagal; dan kapan update OS atau browser diam-diam merusak login — semuanya tanpa mengganti Okta, Auth0, Ping, Cognito, atau IDP internal Anda. Dua produk: Corbado Observe menambah observability untuk passkey dan metode login lainnya. Corbado Connect menghadirkan managed passkey dengan analytics terintegrasi (berdampingan dengan IDP Anda). VicRoads menjalankan passkey untuk 5M+ pengguna dengan Corbado (aktivasi passkey +80%). Bicara dengan pakar Passkey →
Lihat bagaimana Corbado cocok dengan peluncuran passkeys dan stack autentikasi Anda saat ini.
Jelajahi Console
Daftar isi
Artikel terkait