Panduan developer kunci sandi untuk pihak tepercaya

Pelajari cara mengintegrasikan kunci sandi ke layanan Anda.

Anatomi sistem kunci sandi

Sistem kunci sandi terdiri dari beberapa komponen:

  • Pihak yang mengontrol: Dalam konteks kunci sandi, pihak tepercaya (disingkat RP) menangani penerbitan dan autentikasi kunci sandi. RP harus mengoperasikan klien — yaitu situs atau aplikasi yang membuat kunci sandi atau melakukan autentikasi dengan kunci sandi — dan server untuk mendaftarkan, menyimpan, dan memverifikasi kredensial yang dibuat oleh kunci sandi pada klien tersebut. Aplikasi seluler kunci sandi harus terikat dengan domain server RP menggunakan mekanisme pengaitan yang disediakan OS seperti Digital Asset Links.
  • Pengautentikasi: Perangkat komputasi seperti ponsel, tablet, laptop, atau komputer desktop yang dapat membuat dan memverifikasi kunci sandi menggunakan fitur kunci layar yang ditawarkan oleh sistem operasi.
  • Pengelola sandi: Software yang diinstal di perangkat pengguna akhir yang menyalurkan, menyimpan, dan menyinkronkan kunci sandi, seperti Pengelola Sandi Google.

Alur pendaftaran

Gunakan WebAuthn API di situs atau library Pengelola Kredensial di aplikasi Android untuk membuat dan mendaftarkan kunci sandi baru.

Untuk membuat kunci sandi baru, ada beberapa komponen utama yang perlu disediakan:

  • ID RP: Berikan ID pihak tepercaya dalam bentuk domain web.
  • Informasi pengguna: ID pengguna, nama pengguna, dan nama tampilan.
  • Kredensial yang akan dikecualikan: Informasi tentang kunci sandi yang disimpan sebelumnya untuk mencegah pendaftaran duplikat.
  • Jenis kunci sandi: Apakah akan menggunakan perangkat itu sendiri ("pengautentikasi platform") sebagai pengautentikasi, atau kunci keamanan yang dapat dilepas ("pengautentikasi lintas platform / roaming"). Selain itu, pemanggil dapat menentukan apakah akan membuat kredensial dapat ditemukan sehingga pengguna dapat memilih akun yang akan digunakan untuk login.

Setelah RP meminta pembuatan kunci sandi dan pengguna memverifikasinya dengan membuka kunci layar, kunci sandi baru akan dibuat dan kredensial kunci publik akan ditampilkan. Kirimkan ke server dan simpan ID kredensial dan kunci publik untuk autentikasi di masa mendatang.

Alur pendaftaran

Pelajari cara membuat dan mendaftarkan kunci sandi secara mendetail:

Alur autentikasi

Gunakan WebAuthn API di situs atau library Pengelola Kredensial di aplikasi Android untuk melakukan autentikasi dengan kunci sandi terdaftar.

Untuk melakukan autentikasi dengan kunci sandi, ada beberapa komponen utama yang perlu disediakan:

  • ID RP: Berikan ID pihak tepercaya dalam bentuk domain web.
  • Tantangan: Tantangan buatan server yang mencegah serangan replay.

Setelah RP meminta autentikasi dengan kunci sandi dan pengguna memverifikasinya dengan membuka kunci layar, kredensial kunci publik akan ditampilkan. Kirimkan ke server dan verifikasi tanda tangan dengan kunci publik yang disimpan.

Alur autentikasi

Pelajari cara melakukan autentikasi dengan kunci sandi secara mendetail:

Integrasi sisi server

Setelah membuat kunci sandi, server perlu menyediakan parameter utama seperti verifikasi login, informasi pengguna, ID kredensial yang akan dikecualikan, dan lainnya. Selanjutnya, kode ini akan memverifikasi kredensial kunci publik yang dibuat yang dikirim dari klien dan menyimpan kunci publik tersebut dalam database. Untuk mengautentikasi dengan kunci sandi, server perlu memvalidasi kredensial dengan cermat dan memverifikasi tanda tangan agar pengguna dapat login.

Pelajari lebih lanjut di panduan sisi server kami:

Mekanisme autentikasi yang sudah ada (lama)

Jika Anda mendukung kunci sandi di layanan yang sudah ada, transisi dari mekanisme autentikasi lama seperti sandi ke kunci sandi tidak akan dapat dilakukan dalam satu hari. Kami tahu Anda cenderung akan menghilangkan metode autentikasi yang lebih lemah sesegera mungkin, tetapi hal ini dapat menyebabkan kebingungan pengguna atau meninggalkan beberapa pengguna. Untuk sementara, sebaiknya pertahankan metode autentikasi yang ada.

Ada beberapa alasan:

  • Ada pengguna di lingkungan kunci sandi yang tidak kompatibel: Dukungan kunci sandi diperluas secara luas di beberapa sistem operasi dan browser, tetapi mereka yang menggunakan versi lama belum dapat menggunakan kunci sandi.
  • Ekosistem kunci sandi belum berkembang: Ekosistem kunci sandi terus berkembang. Detail UX dan kompatibilitas teknis antara lingkungan yang berbeda dapat meningkat.
  • Pengguna mungkin belum siap untuk menggunakan kunci sandi: Ada orang yang ragu untuk melakukan hal baru. Seiring berkembangnya ekosistem kunci sandi, mereka akan memahami cara kerja kunci sandi dan manfaatnya bagi mereka.

Meninjau kembali mekanisme autentikasi yang ada

Meskipun kunci sandi membuat autentikasi Anda lebih mudah dan aman, mempertahankan mekanisme lama ibarat mencari celah. Sebaiknya tinjau kembali dan tingkatkan mekanisme autentikasi yang sudah ada.

Sandi

Membuat sandi yang kuat dan mengelolanya untuk setiap situs adalah tugas yang menantang bagi pengguna. Sebaiknya gunakan pengelola sandi bawaan sistem atau pengelola sandi secara mandiri. Dengan melakukan perubahan kecil pada formulir login, situs dan aplikasi dapat membuat perbedaan besar pada keamanan dan pengalaman login. Lihat cara melakukan perubahan tersebut:

Autentikasi 2 langkah

Meskipun penggunaan pengelola sandi dapat membantu pengguna menangani sandi, tidak semua pengguna menggunakannya. Meminta kredensial tambahan yang disebut sandi sekali pakai (OTP) adalah praktik umum untuk melindungi pengguna tersebut. OTP biasanya disediakan melalui email, pesan SMS, atau aplikasi pengautentikasi seperti Google Authenticator. Karena OTP biasanya berupa teks pendek yang dihasilkan secara dinamis dan hanya valid untuk rentang waktu terbatas, hal ini mengurangi kemungkinan pembajakan akun. Metode ini tidak sekuat kunci sandi, tetapi jauh lebih baik daripada memberi pengguna hanya sandi.

Jika Anda memilih SMS sebagai cara untuk mengirimkan OTP, lihat praktik terbaik berikut untuk menyederhanakan pengalaman pengguna dalam memasukkan OTP.

Penggabungan identitas

Penggabungan identitas adalah opsi lain untuk memungkinkan pengguna login dengan aman dan mudah. Dengan penggabungan identitas, situs dan aplikasi dapat mengizinkan pengguna login menggunakan identitas pengguna dari penyedia identitas pihak ketiga. Misalnya, Login dengan Google menghasilkan konversi yang besar bagi developer, dan pengguna merasa lebih mudah dan lebih baik daripada autentikasi berbasis sandi. Gabungan identitas merupakan pelengkap kunci sandi. Cara ini cocok untuk mendaftar karena situs atau aplikasi dapat memperoleh informasi profil dasar pengguna dalam satu langkah, sedangkan kunci sandi sangat bagus untuk menyederhanakan autentikasi ulang.

Perlu diingat, setelah Chrome menghentikan cookie pihak ketiga pada tahun 2024, beberapa sistem gabungan identitas mungkin akan terpengaruh, bergantung pada cara sistem tersebut dibuat. Untuk mengurangi dampak tersebut, API browser baru yang disebut Federated Credential Management API (singkatnya FedCM) sedang dikembangkan. Jika Anda menjalankan penyedia identitas, lihat detailnya dan lihat apakah Anda perlu menggunakan FedCM.

Login dengan link ajaib adalah metode autentikasi yang memungkinkan layanan mengirimkan link login melalui email, sehingga pengguna dapat mengkliknya untuk mengautentikasi sendiri. Meskipun cara ini membantu pengguna login tanpa mengingat sandi, beralih antara browser/aplikasi dan program email akan menjadi hambatan. Selain itu, karena mekanisme autentikasi bergantung pada email, keamanan yang lemah dari penyedia email dapat membahayakan akun pengguna.

Referensi pembelajaran

Web

Untuk mengintegrasikan kunci sandi ke situs Anda, gunakan Web Authentication API (WebAuthn). Untuk mempelajari lebih lanjut, lihat referensi berikut:

Android

Untuk mengintegrasikan kunci sandi ke aplikasi Android Anda, gunakan library Pengelola Kredensial. Untuk mempelajari lebih lanjut, lihat referensi berikut:

UX

Pelajari rekomendasi pengalaman pengguna kunci sandi: