Kunci 0, kunci publik peer
Byte kunci publik X9.62 tidak terkompresi (33 byte untuk P-256). Ponsel menggunakannya untuk membangun terowongan terenkripsi.
Standar · FIDO CTAP 2.2 hybrid (passkey QR)
Hanya jika ANDA baru saja memulai proses masuk dengan passkey di perangkat yang menampilkan QR. Jika orang lain yang membuat QR tersebut — orang asing, agen "helpdesk", panggilan dukungan teknis — memindainya di ponsel Anda akan menandatangani mereka ke akun Anda, bukan Anda. Standar terbuka protokolnya (FIDO CTAP 2.2 hybrid) solid; ancamannya adalah rekayasa sosial seputar siapa yang pertama menekan tombol "Masuk dengan passkey".
Passkey adalah kredensial — pasangan kunci publik/privat — yang terikat ke salah satu perangkat Anda. Jika Anda mendaftarkan passkey untuk example.com di ponsel, hanya ponsel Anda yang dapat menandatangani tantangan login untuk example.com.
Itu berfungsi baik saat Anda masuk DI ponsel Anda. Tapi apa yang terjadi saat Anda masuk di laptop yang tidak memiliki passkey untuk situs tersebut? Anda bisa:
Opsi 3 adalah yang didefinisikan FIDO CTAP 2.2 "hybrid". QR adalah bootstrap — membawa cukup informasi agar ponsel Anda dapat menemukan laptop melalui Bluetooth Low Energy, membuat terowongan aman satu kali, dan memproksi upacara WebAuthn.
URI-nya terlihat seperti:
FIDO:/0123456789012345678901234567890123456789...
Angka desimal adalah pengkodean base10 dari map CBOR. Setelah decode base10 + parsing CBOR, map memiliki kunci integer:
Byte kunci publik X9.62 tidak terkompresi (33 byte untuk P-256). Ponsel menggunakannya untuk membangun terowongan terenkripsi.
10 byte data acak. Mengidentifikasi QR spesifik ini; iklan BLE menyiarkan hash-nya sehingga ponsel dapat menemukan laptop yang tepat.
0 = make-credential (mendaftarkan passkey baru), 1 = get-assertion (masuk), 2 = discoverable-credential.
Host HTTPS yang memproksi terowongan antara dua perangkat ketika BLE langsung tidak tersedia (mis. melewati NAT). Biasanya server yang dioperasikan vendor seperti cable.ua5v.com (Google) atau cable.auth.com (Apple/MS).
Detik sejak epoch saat QR dibuat. Digunakan untuk perlindungan replay — ponsel menolak QR yang lebih lama dari beberapa menit.
Boolean. Menunjukkan apakah laptop ingin ponsel berpartisipasi dalam pemeliharaan status pasif (sebagian besar relevan untuk alur enumerasi kredensial).
Protokolnya secara kriptografi kuat. Pemeriksaan kedekatan Bluetooth nyata dan membatasi serangan pada siapa pun yang berada secara fisik dekat dengan Anda. Jadi bagaimana ini bisa salah?
Melalui rekayasa sosial pada inisiasi. Penyerang memulai proses masuk passkey ke akun ANDA di laptop MEREKA. Laptop mereka menampilkan QR FIDO. Mereka meletakkan QR itu di hadapan Anda entah bagaimana:
Jika Anda memindai, ponsel Anda memproksi tanda tangan passkey ke browser laptop penyerang. Situs yang memiliki passkey Anda mengira Anda masuk. Penyerang sekarang masuk ke akun Anda.
Perhatikan bahwa pemeriksaan kedekatan tidak membantu — penyerang hadir secara fisik. Konten QR tidak membantu — mereka secara kriptografi valid. Tujuan login tidak membantu — itu adalah situs yang benar yang memiliki passkey Anda. Satu-satunya hal yang membantu adalah mengenali situasinya: Anda tidak boleh pernah memindai QR FIDO yang tidak Anda buat sendiri dengan mengklik "Masuk" di perangkat Anda sendiri.
Ketika Anda memasukkan QR FIDO ke pemindai kami, hasilnya menampilkan:
cable.ua5v.com, server terowongan Apple, dll.)?Kelas ancaman selalu mencurigakan — bukan karena protokolnya rusak melainkan karena keputusan keamanan bersifat kontekstual dan pemindai tidak dapat mengetahui siapa yang menekan "Masuk". Pengungkapan hasil menyatakan persis itu: "memindai menyelesaikan proses masuk yang SESEORANG MULAI DI PERANGKAT LAIN. Jika Anda baru saja tidak memulai proses masuk sendiri, tolak."
Aman: Anda duduk di laptop, membuka situs bank atau email, mengklik "Masuk dengan passkey", dan laptop Anda menampilkan QR. Anda mengambil ponsel, memindai QR, menyetujui permintaan kedekatan. Selesai.
Tidak aman: siapa pun selain Anda yang memulai proses masuk. Ini termasuk siapa pun melalui telepon, siapa pun dalam panggilan dukungan jarak jauh, siapa pun yang mengirim QR melalui email, siapa pun yang menunjukkan "QR untuk memverifikasi identitas Anda", dan QR mana pun di tempat yang bukan perangkat Anda sendiri yang baru ditampilkan.
Jika Anda tidak yakin apakah QR berasal dari proses masuk yang Anda mulai, batalkan masuk di perangkat asli (tutup tab browser), lalu mulai ulang dari awal di perangkat yang Anda inginkan. QR FIDO nyata hanya berlaku sekitar 10 menit — memulai ulang akan membersihkan sesi yang sedang berlangsung dan membuat ancaman menjadi mustahil.
Masukkan gambar atau tempel URI FIDO:. Hasilnya menampilkan operasi, server terowongan, stempel waktu, dan peringatan keras untuk menolak kecuali Anda yang memulai masuk.