Autentikasi FIDO dengan kode sandi

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Pengantar

Standar autentikasi FIDO (Fast IDentity Online) menentukan mekanisme autentikasi yang cepat dan aman bagi pengguna untuk mengakses situs dan aplikasi.

FIDO Alliance, dengan perwakilan dari berbagai organisasi, mengembangkan spesifikasi teknis terbuka dan skalabel yang memungkinkan orang mengakses situs dan aplikasi melalui protokol umum. Artinya, setiap perusahaan dapat menggunakan standar FIDO untuk mengimplementasikan teknologi, seperti kunci sandi, untuk autentikasi yang aman.

Passkey adalah kredensial login FIDO, yang terikat dengan asal (situs atau aplikasi) dan perangkat fisik. Kode sandi memungkinkan pengguna melakukan autentikasi tanpa harus memasukkan nama pengguna, sandi, atau menyediakan faktor autentikasi tambahan. Teknologi ini bertujuan untuk mengganti sandi sebagai mekanisme autentikasi utama.

Mengapa autentikasi yang aman itu penting?

Sandi telah digunakan untuk autentikasi dalam komputasi selama beberapa dekade. Namun, autentikasi berbasis sandi bukanlah opsi yang paling aman untuk autentikasi, karena database dapat diretas dan sandi dapat terkena phishing.

Banyak pengguna login ke situs yang berbeda menggunakan sandi yang sama. Artinya, jika ada satu situs yang diretas, setiap akun lain yang menggunakan sandi yang sama berisiko. Jadi, meskipun Anda telah membuat sistem sandi yang aman, pengguna tetap berisiko jika sandi mereka adalah satu-satunya perlindungan.

Beberapa situs dan aplikasi meminta verifikasi dua langkah dengan meminta kredensial kedua yang dikirim melalui SMS, email, aplikasi, dll. Meskipun ini lebih aman daripada hanya menggunakan sandi, metode verifikasi dua langkah ini masih rentan terhadap phishing, karena pengguna dapat diyakinkan untuk memasukkan detail verifikasi dua langkah mereka ke dalam situs berbahaya.

Bagaimana FIDO menciptakan keamanan yang lebih kuat?

Autentikasi berbasis FIDO menghilangkan banyak masalah yang berasal dari autentikasi berbasis sandi, dan dari autentikasi yang menggunakan langkah kedua tradisional. Khususnya:

  • Autentikasi FIDO menggunakan kriptografi kunci publik.
  • FIDO membantu memastikan bahwa kredensial tidak dibagikan kepada pihak berbahaya atau pihak lain yang tidak memiliki kredensial tersebut

Kriptografi kunci publik mengurangi ancaman dari potensi pelanggaran database. Pengguna mendaftar dengan satu asal (situs atau aplikasi), yang menghasilkan pasangan kunci publik-pribadi pada pengautentikasi pengguna (perangkat fisik). Kunci publik pengguna disimpan oleh server asal, tetapi ini tidak berguna bagi penyerang. Penyerang tidak dapat memperoleh kunci pribadi pengguna dari data yang disimpan di server, yang diperlukan untuk menyelesaikan autentikasi.

Dengan FIDO, pengguna tidak bertanggung jawab untuk mengonfirmasi bahwa situs atau aplikasi benar-benar mewakili identitasnya. Selanjutnya, pengguna tidak bertanggung jawab untuk memastikan kredensial tidak digunakan di tempat yang salah. FIDO mengikat setiap kredensial ke asal tertentu, yang berarti perangkat (bukan manusia) bertanggung jawab untuk mengidentifikasi situs atau aplikasi dengan benar.

Misalnya, anggaplah pengguna mencoba login ke example.com. Jika pengguna meminta kredensial yang dimiliki oleh example.com pada phishing-example.com, pengautentikasi akan menolak permintaan tersebut sehingga melindungi pengguna. Proses autentikasi sangat menyulitkan situs atau aplikasi phishing untuk mendapatkan verifikasi yang ditujukan untuk asal lainnya.

Secara keseluruhan, FIDO dan kode sandi memungkinkan Anda men-deploy autentikasi yang lebih kuat yang masih dapat digunakan dan mudah bagi sebagian besar pengguna.

Demo

Apa itu kunci sandi?

Passkey adalah kredensial digital yang mematuhi standar FIDO dan W3C Web Authentication (WebAuthn). Mirip dengan sandi, situs dan aplikasi dapat meminta pengguna membuat kode sandi untuk mengakses akun mereka.

Kode sandi mengandalkan membuka kunci perangkat untuk memverifikasi identitas pengguna. Hal ini dapat dilakukan dengan sensor biometrik (seperti sidik jari atau pengenalan wajah), PIN, atau pola. Pengguna harus terlebih dahulu mendaftar di asal, untuk membuat kunci sandi (pasangan kunci publik-pribadi).

Saat kembali ke situs atau aplikasi untuk login, pengguna dapat melakukan langkah-langkah berikut:

  1. Buka aplikasi.
  2. Klik Login.
  3. Pilih kode sandi.
  4. Buka kunci perangkat untuk menyelesaikan login.

Pengautentikasi akan menghasilkan tanda tangan menggunakan kunci pribadi. Tanda tangan ini digunakan untuk memverifikasi kredensial login antara asal dan pengautentikasi, menggunakan kunci publik dan tanpa mengungkapkan kunci pribadi.

Pengguna dapat login ke layanan di perangkat apa saja dengan bantuan kode sandi, di mana pun kode sandi disimpan. Misalnya, kode sandi yang disimpan di ponsel dapat digunakan untuk login ke situs di laptop terpisah.

Bagaimana cara kerja kode sandi?

Kunci sandi dibuat dan disinkronkan melalui sistem operasi. Beberapa sistem operasi memungkinkan sinkronisasi otomatis kode sandi antara perangkat pengguna, seperti ponsel Android dan perangkat ChromeOS yang login ke Akun Google yang sama.

Saat kode sandi terikat dengan sistem operasi, pengguna dapat menggunakan kode sandi dari ponsel saat login ke laptop. Saat kunci sandi dibuat dengan standar FIDO dan W3C, semua browser dapat mengadopsinya. Misalnya, pengguna membuka site.example di Chromebook. Pengguna ini sebelumnya telah login ke site.example di perangkat iOS mereka. Pengguna akan diminta untuk mengonfirmasi identitasnya di perangkat iOS. Biasanya, site.example akan membuat kode sandi baru untuk Chromebook pengguna sehingga ponsel tidak lagi diperlukan untuk login selanjutnya.

Kode sandi dienkripsi secara menyeluruh, yang berarti bahwa meskipun Google bertanggung jawab untuk menyinkronkannya ke perangkat Android yang berbeda, Google tidak dapat membaca kode sandi atau mengetahui data tersebut.

Proses autentikasi

Representasi seperti apa tampilan jendela autentikasi.

Untuk menerapkan kode sandi di situs atau aplikasi, Anda harus memahami hal-hal berikut:

  • Authenticator adalah perangkat fisik milik pengguna yang memegang kunci sandi pengguna dan dapat mengidentifikasi pengguna.
  • Pihak yang tepercaya adalah situs atau aplikasi Anda, yang terdiri dari aplikasi frontend dan server back-end.
    • Aplikasi frontend memanggil API untuk berinteraksi dengan pengautentikasi dan memulai proses autentikasi.
    • Server back-end mengambil objek kriptografi yang dihasilkan oleh pengautentikasi dan memverifikasinya.

Misalnya, pengguna ingin membeli sepasang sepatu dari toko di shoes.example (pihak yang mengandalkan). Pengguna sudah mendaftarkan akun di shoes.example, menggunakan ponsel Android dengan sensor biometrik. Pengguna login ke shoes.example di perangkat Android dengan membuka kunci perangkat mereka. Kemudian, shoes.example memverifikasi kredensial login yang ditandatangani secara kriptografis pengguna terhadap kunci publik yang diketahui pengguna tersebut untuk mengonfirmasi bahwa identitas penggunanya akurat.

Authenticator

Authenticator adalah perangkat yang mematuhi FIDO yang digunakan untuk mengonfirmasi identitas pengguna. Hal ini termasuk perangkat tujuan khusus (kunci keamanan FIDO), serta ponsel dan komputer lain yang memenuhi persyaratan pengautentikasi. Authenticator menjalankan operasi kriptografi yang dijelaskan dalam standar FIDO dan WebAuthn.

Perangkat ini memiliki dua peran, yaitu pendaftaran dan autentikasi:

  • Saat pengguna mendaftar dengan pihak yang dipercaya, perangkat akan membuat pasangan kunci publik-pribadi yang unik. Ini mencakup ponsel dan komputer pengguna.
  • Saat pengguna login ke pihak tepercaya di masa mendatang, perangkat akan membuat tanda tangan menggunakan kunci pribadi.

Kedua operasi tersebut dijalankan saat pengguna membuktikan kepemilikan pengautentikasi. Pasangan kunci ini terdaftar dengan asal tertentu, dan hanya dapat digunakan oleh asal yang tepat. Jika pengguna membuka situs phishing, kredensial tidak akan tersedia.

Perangkat yang mematuhi FIDO

Pengautentikasi yang paling umum adalah:

  • Pengautentikasi platform: Pengautentikasi ini terintegrasi ke dalam smartphone dan komputer. Pengautentikasi platform menggunakan sensor biometrik (seperti sensor sidik jari atau kamera dengan pengenalan wajah), PIN, atau pola. Karena interaksi autentikasi selesai dengan membuka kunci perangkat, hal ini membuktikan dalam satu langkah bahwa pengguna memiliki perangkat dan dapat mengonfirmasi identitas mereka dengan biometrik unik mereka.
  • Kunci keamanan: ini biasanya adalah perangkat USB dengan tombol yang harus ditekan untuk menunjukkan autentikasi. Jika digunakan dengan sandi, kunci keamanan dapat memberikan faktor kepemilikan untuk autentikasi 2 langkah. Contoh paling umum dari hal ini adalah Kunci Keamanan Titan atau YubiKey.

Depan

Aplikasi menggunakan API sisi klien, seperti WebAuthn dan FIDO2 untuk Android, untuk membuat dan memverifikasi kredensial pengguna dengan pengautentikasi.

Aplikasi meneruskan tantangan kriptografi, yang dihasilkan oleh server back-end, ke pengautentikasi. Aplikasi mengirimkan respons pengautentikasi ke server untuk divalidasi, yang akan mengambil tindakan berdasarkan validasi tersebut.

Pengoptimalan

Server menyimpan kredensial dan kunci akun kunci publik.

Pada saat pendaftaran dan autentikasi, server membuat verifikasi kriptografi. Tantangan ini memverifikasi bahwa tanda tangan yang dikeluarkan oleh pengautentikasi, yang mengonfirmasi apakah pengguna tersebut adalah pengguna yang diklaim.

Pertanyaan umum (FAQ)

Siapa yang mendukung kode sandi?

Karena kode sandi berbasis standar FIDO, kunci tersebut berfungsi di Android dan Chrome, beserta banyak platform dan browser populer lainnya seperti Microsoft Windows, Microsoft Edge, MacOS, iOS, dan Safari.

Lihat dokumentasi yang disediakan oleh platform ini untuk mengonfirmasi status ketersediaan saat ini.

Di Android, kami berencana untuk menyediakan dukungan kode sandi bagi developer menjelang akhir 2022.

Apa yang terjadi jika pengguna kehilangan perangkat?

Kode sandi yang dibuat di Android dicadangkan dan disinkronkan dengan perangkat Android yang login ke Akun Google yang sama, dengan cara yang sama seperti sandi yang dicadangkan ke pengelola sandi.

Itu berarti pengguna memberikan kunci sandi saat mereka mengganti perangkat. Untuk login ke aplikasi di ponsel baru, yang perlu dilakukan pengguna adalah membuka kunci ponsel.

Dapatkah pengguna menggunakan kode sandi di ponsel untuk login di perangkat teman?

Ya. Pengguna dapat menyiapkan "link satu kali&antara telepon mereka dan perangkat orang lain untuk tujuan login.

Langkah berikutnya

Ikuti codelab:

Pelajari lebih lanjut tentang:

Mendapatkan info terbaru: