Pelajari cara Yahoo! Japan membangun sistem identitas tanpa sandi.
Yahoo! JAPAN adalah salah satu perusahaan media terbesar di Jepang, yang menyediakan layanan seperti penelusuran, berita, e-commerce, dan email. Lebih dari 50 juta pengguna login ke Yahoo! JAPAN setiap bulan.
Selama bertahun-tahun, ada banyak serangan terhadap akun pengguna dan masalah yang menyebabkan hilangnya akses akun. Sebagian besar masalah ini terkait dengan penggunaan sandi untuk autentikasi.
Dengan kemajuan terbaru dalam teknologi otentikasi, Yahoo! JAPAN telah memutuskan untuk beralih dari autentikasi berbasis sandi ke tanpa sandi.
Mengapa tanpa sandi?
Sebagai Yahoo! JAPAN menawarkan e-commerce dan layanan terkait dengan uang lainnya, dan ada risiko kerusakan yang signifikan terhadap pengguna jika terjadi akses tidak sah atau hilangnya akun.
Serangan paling umum yang terkait dengan sandi adalah serangan daftar sandi dan scam phishing. Salah satu alasan serangan daftar sandi umum terjadi dan efektif adalah karena kebiasaan banyak orang menggunakan sandi yang sama untuk beberapa aplikasi dan situs.
Angka berikut adalah hasil dari survei yang dilakukan oleh Yahoo! JEPANG.
50 %
gunakan ID dan sandi yang sama di enam situs atau lebih
60 %
Gunakan sandi yang sama di beberapa situs
70 %
gunakan sandi sebagai cara utama untuk login
Pengguna sering kali lupa sandi mereka, yang menjadi penyebab sebagian besar pertanyaan terkait sandi. Ada juga pertanyaan dari pengguna yang lupa ID loginnya, selain sandinya. Pada puncaknya, pertanyaan ini mencakup lebih dari sepertiga dari semua pertanyaan terkait akun.
Dengan beralih tanpa sandi, Yahoo! JAPAN tidak hanya meningkatkan keamanan, tetapi juga kegunaan, tanpa membebani pengguna.
Dari perspektif keamanan, menghapus sandi dari proses autentikasi pengguna akan mengurangi kerusakan akibat serangan berbasis daftar, dan dari perspektif kegunaan, menyediakan metode autentikasi yang tidak bergantung pada mengingat sandi akan mencegah situasi saat pengguna tidak dapat login karena lupa sandinya.
Yahoo! Inisiatif tanpa sandi di Jepang
Yahoo! JAPAN mengambil sejumlah langkah untuk mempromosikan autentikasi tanpa sandi, yang secara luas dapat dibagi menjadi tiga kategori:
- Menyediakan cara otentikasi alternatif untuk {i>password<i}.
- Penonaktifan sandi.
- Pendaftaran akun tanpa sandi.
Dua inisiatif pertama ditujukan untuk pengguna yang sudah ada, sedangkan pendaftaran tanpa sandi ditujukan untuk pengguna baru.
1. Menyediakan sarana alternatif otentikasi untuk {i>password<i}
Yahoo! JAPAN menawarkan alternatif sandi berikut.
Selain itu, kami juga menawarkan metode autentikasi seperti autentikasi email, sandi yang dikombinasikan dengan OTP (sandi sekali pakai) SMS, dan sandi yang dikombinasikan dengan OTP email.
Autentikasi SMS
Autentikasi SMS adalah sistem yang memungkinkan pengguna terdaftar untuk menerima kode autentikasi enam digit melalui SMS. Setelah menerima SMS, pengguna dapat memasukkan kode autentikasi di aplikasi atau situs.
![](https://web.dev/static/case-studies/yahoo-japan-identity/image/h08m9uzVJg9uNzM3LE5k.jpg?authuser=6&hl=id)
Apple telah lama mengizinkan iOS untuk membaca pesan SMS dan menyarankan kode autentikasi dari isi teks. Baru-baru ini, saran dapat digunakan dengan
menentukan "kode sekali pakai" di atribut autocomplete
elemen
input. Chrome di Android, Windows, dan Mac dapat memberikan pengalaman yang sama
menggunakan WebOTP API.
Contoh:
<form>
<input type="text" id="code" autocomplete="one-time-code"/>
<button type="submit">sign in</button>
</form>
if ('OTPCredential' in window) {
const input = document.getElementById('code');
if (!input) return;
const ac = new AbortController();
const form = input.closest('form');
if (form) {
form.addEventListener('submit', e => {
ac.abort();
});
}
navigator.credentials.get({
otp: { transport:['sms'] },
signal: ac.signal
}).then(otp => {
input.value = otp.code;
}).catch(err => {
console.log(err);
});
}
Kedua pendekatan tersebut dirancang untuk mencegah phishing dengan menyertakan domain dalam isi SMS dan hanya memberikan saran untuk domain yang ditentukan.
Untuk mengetahui informasi selengkapnya tentang WebOTP API dan autocomplete="one-time-code"
,
lihat Praktik terbaik formulir OTP SMS.
![](https://web.dev/static/case-studies/yahoo-japan-identity/image/Szaf3C0hfjLNkTWAVf9B.png?authuser=6&hl=id)
FIDO dengan WebAuthn
FIDO dengan WebAuthn menggunakan pengautentikasi hardware untuk membuat pasangan cipher kunci publik dan membuktikan kepemilikannya. Jika smartphone digunakan sebagai pengautentikasi, autentikasi ini dapat digabungkan dengan autentikasi biometrik (seperti sensor sidik jari atau pengenalan wajah) untuk melakukan autentikasi dua langkah satu langkah. Dalam hal ini, hanya tanda tangan dan indikasi keberhasilan dari autentikasi biometrik yang dikirim ke server sehingga tidak ada risiko pencurian data biometrik.
Diagram berikut menunjukkan konfigurasi server-klien untuk FIDO. Otentikator klien mengautentikasi pengguna dengan biometrik dan menandatangani hasilnya menggunakan kriptografi kunci publik. Kunci pribadi yang digunakan untuk membuat tanda tangan disimpan dengan aman di TEE (Trusted Execution Environment) atau lokasi serupa. Penyedia layanan yang menggunakan FIDO disebut RP (pihak tepercaya).
![](https://web.dev/static/case-studies/yahoo-japan-identity/image/PkFYWnOZABjPu7Zc7rXN.png?authuser=6&hl=id)
Setelah pengguna melakukan autentikasi (biasanya dengan pemindaian biometrik atau PIN), pengautentikasi menggunakan kunci pribadi untuk mengirimkan sinyal verifikasi yang ditandatangani ke browser. Kemudian, browser membagikan sinyal tersebut ke situs RP.
Situs RP kemudian mengirimkan sinyal verifikasi yang ditandatangani ke server RP, yang memverifikasi tanda tangan terhadap kunci publik untuk menyelesaikan autentikasi.
Untuk informasi selengkapnya, baca panduan autentikasi dari FIDO Alliance.
Yahoo! JAPAN mendukung FIDO di Android (aplikasi seluler dan web), iOS (aplikasi seluler dan web), Windows (Edge, Chrome, Firefox), dan macOS (Safari, Chrome). Sebagai layanan konsumen, FIDO dapat digunakan di hampir semua perangkat, sehingga menjadikannya opsi yang baik untuk mempromosikan autentikasi tanpa sandi.
![](https://web.dev/static/case-studies/yahoo-japan-identity/image/iq0dODcbp3WcPUGTwHkl.png?authuser=6&hl=id)
Yahoo! JAPAN merekomendasikan agar pengguna mendaftar ke FIDO dengan WebAuthn, jika mereka belum diautentikasi melalui cara lain. Saat pengguna perlu login dengan perangkat yang sama, mereka dapat melakukan autentikasi dengan cepat menggunakan sensor biometrik.
Pengguna harus menyiapkan autentikasi FIDO dengan semua perangkat yang mereka gunakan untuk login ke Yahoo! JEPANG.
Untuk mendukung autentikasi tanpa sandi dan mempertimbangkan pengguna yang beralih dari sandi, kami menyediakan beberapa cara autentikasi. Artinya, pengguna yang berbeda dapat memiliki setelan metode autentikasi yang berbeda, dan metode autentikasi yang dapat mereka gunakan mungkin berbeda dari satu browser ke browser lainnya. Kami yakin akan mendapatkan pengalaman yang lebih baik jika pengguna login menggunakan metode autentikasi yang sama setiap saat.
Untuk memenuhi persyaratan ini, Anda perlu melacak metode autentikasi sebelumnya dan menautkan informasi ini ke klien dengan menyimpannya dalam bentuk cookie, dsb. Kemudian, kita dapat menganalisis cara berbagai browser dan aplikasi digunakan untuk autentikasi. Pengguna diminta untuk memberikan autentikasi yang sesuai berdasarkan setelan pengguna, metode autentikasi sebelumnya yang digunakan, dan tingkat autentikasi minimum yang diperlukan.
2. Penonaktifan sandi
Yahoo! JAPAN meminta pengguna menyiapkan metode autentikasi alternatif, lalu menonaktifkan sandinya agar tidak dapat digunakan. Selain menyiapkan autentikasi alternatif, menonaktifkan autentikasi sandi (sehingga tidak memungkinkan login hanya dengan sandi) membantu melindungi pengguna dari serangan berbasis daftar.
Kami telah mengambil langkah-langkah berikut untuk mendorong pengguna menonaktifkan sandi mereka.
- Mempromosikan metode autentikasi alternatif saat pengguna mereset sandinya.
- Mendorong pengguna untuk menyiapkan metode autentikasi yang mudah digunakan (seperti FIDO) dan menonaktifkan sandi untuk situasi yang memerlukan autentikasi yang sering.
- Meminta pengguna untuk menonaktifkan sandi mereka sebelum menggunakan layanan berisiko tinggi, seperti pembayaran e-commerce.
Jika pengguna lupa sandi, mereka dapat menjalankan pemulihan akun. Sebelumnya, proses ini melibatkan reset sandi. Sekarang, pengguna dapat memilih untuk menyiapkan metode autentikasi yang berbeda, dan sebaiknya mereka melakukannya.
3. Pendaftaran akun tanpa sandi
Pengguna baru bisa membuat fitur Yahoo! JAPAN. Pertama-tama, pengguna harus mendaftar dengan autentikasi SMS. Setelah pengguna login, sebaiknya pengguna menyiapkan autentikasi FIDO.
Karena FIDO adalah setelan per perangkat, sulit untuk memulihkan akun jika perangkat tidak dapat dioperasikan. Oleh karena itu, kami mewajibkan pengguna untuk tetap mendaftarkan nomor teleponnya, bahkan setelah mereka menyiapkan autentikasi tambahan.
Tantangan utama untuk autentikasi tanpa sandi
Sandi bergantung pada memori manusia dan tidak bergantung pada perangkat. Di sisi lain, metode autentikasi yang diperkenalkan sejauh ini dalam inisiatif tanpa sandi kami bergantung pada perangkat. Hal ini menimbulkan beberapa tantangan.
Ketika beberapa perangkat digunakan, ada beberapa masalah yang terkait dengan kegunaan:
- Saat menggunakan autentikasi SMS untuk login dari PC, pengguna harus memeriksa ponsel mereka untuk melihat pesan SMS yang masuk. Hal ini mungkin merepotkan, karena ponsel pengguna harus tersedia dan mudah diakses kapan saja.
- Dengan FIDO, terutama dengan pengautentikasi platform, pengguna yang memiliki beberapa perangkat tidak akan dapat melakukan autentikasi pada perangkat yang tidak terdaftar. Pendaftaran harus diselesaikan untuk setiap perangkat yang ingin digunakan.
Autentikasi FIDO dikaitkan dengan perangkat tertentu, yang mengharuskan perangkat tersebut tetap berada di tangan pengguna dan aktif.
- Jika kontrak layanan dibatalkan, pesan SMS tidak dapat lagi dikirimkan ke nomor telepon yang terdaftar.
- FIDO menyimpan kunci pribadi di perangkat tertentu. Jika perangkat hilang, kunci tersebut tidak dapat digunakan.
Yahoo! JAPAN mengambil berbagai langkah untuk mengatasi masalah ini.
Solusi yang paling penting adalah mendorong pengguna untuk menyiapkan beberapa metode autentikasi. Hal ini memberikan akses akun alternatif saat perangkat hilang. Karena kunci FIDO bergantung pada perangkat, sebaiknya daftarkan kunci pribadi FIDO di beberapa perangkat.
Atau, pengguna dapat menggunakan WebOTP API untuk meneruskan kode verifikasi SMS dari ponsel Android ke Chrome di PC.
Kami percaya bahwa penanganan masalah ini akan menjadi makin penting seiring meluasnya penyebaran autentikasi tanpa sandi.
Mempromosikan autentikasi tanpa sandi
Yahoo! JAPAN telah menangani inisiatif tanpa sandi ini sejak tahun 2015. Hal ini dimulai dengan akuisisi sertifikasi server FIDO pada Mei 2015, diikuti dengan pengenalan autentikasi SMS, fitur penonaktifan sandi, dan dukungan FIDO untuk setiap perangkat.
Saat ini, lebih dari 30 juta pengguna aktif bulanan telah menonaktifkan sandi mereka dan menggunakan metode autentikasi non-sandi. Yahoo! JAPAN untuk FIDO dimulai dengan Chrome di Android, dan kini lebih dari 10 juta pengguna telah menyiapkan autentikasi FIDO.
Sebagai hasil penelusuran Yahoo! Berdasarkan inisiatif JAPAN, persentase pertanyaan yang melibatkan lupa ID login atau sandi telah menurun sebesar 25% dibandingkan periode saat jumlah pertanyaan tersebut mencapai titik tertinggi. Selain itu, kami juga dapat mengonfirmasi bahwa akses tidak sah telah menurun sebagai akibat dari meningkatnya jumlah akun tanpa sandi.
Karena FIDO sangat mudah disiapkan, FIDO memiliki rasio konversi yang sangat tinggi. Faktanya, Yahoo! JAPAN menemukan bahwa FIDO memiliki CVR yang lebih tinggi daripada autentikasi SMS.
25 %
Penurunan permintaan untuk kredensial yang terlupakan
74 %
Pengguna berhasil menggunakan autentikasi FIDO
65 %
Verifikasi SMS berhasil
FIDO memiliki tingkat keberhasilan yang lebih tinggi daripada autentikasi SMS, dan waktu autentikasi rata-rata dan median yang lebih cepat. Untuk sandi, beberapa grup memiliki waktu autentikasi yang singkat, dan kami mencurigai bahwa hal ini disebabkan oleh autocomplete="current-password"
browser.
![Grafik perbandingan waktu autentikasi untuk sandi, SMS, dan FIDO.](https://web.dev/static/case-studies/yahoo-japan-identity/image/graph-comparison-authent-4d76bf7a092f7.png?authuser=6&hl=id)
Kesulitan terbesar untuk menawarkan akun tanpa sandi bukanlah penambahan metode autentikasi, melainkan mempopulerkan penggunaan pengautentikasi. Jika pengalaman menggunakan layanan tanpa sandi tidak mudah digunakan, transisi tidak akan mudah.
Kami yakin bahwa untuk mencapai peningkatan keamanan, kami harus meningkatkan kegunaan terlebih dahulu, yang akan memerlukan inovasi unik untuk setiap layanan.
Kesimpulan
Autentikasi sandi berisiko dalam hal keamanan, dan juga menimbulkan tantangan dalam hal kegunaan. Setelah teknologi yang mendukung autentikasi non-sandi, seperti WebOTP API dan FIDO, kini tersedia secara lebih luas, sekarang saatnya mulai mengupayakan autentikasi tanpa sandi.
Di Yahoo! JAPAN, pendekatan ini memberikan dampak pasti terhadap kegunaan dan keamanan. Namun, banyak pengguna yang masih menggunakan sandi, sehingga kami akan terus mendorong lebih banyak pengguna untuk beralih ke metode autentikasi tanpa sandi. Kami juga akan terus meningkatkan kualitas produk kami guna mengoptimalkan pengalaman pengguna untuk metode autentikasi tanpa sandi.
Foto oleh olieman.eth di Unsplash