
Pengawasan Kata Sandi
Pengawasan Kata Sandi adalah fitur yang mencocokkan kata sandi yang disimpan di rantai kunci Isi-Auto Kata Sandi pengguna dengan daftar kata sandi yang secara terus menerus diperbarui dan dikuratori yang diketahui telah terpapar di kebocoran dari organisasi online berbeda. Jika fitur dinyalakan, protokol yang mengawasi akan terus menerus mencocokkan kata sandi rantai kunci Isi-Auto Kata Sandi pengguna dengan daftar yang dikuratori.
Cara pengawasan berfungsi
Perangkat pengguna secara terus menerus melakukan pemeriksaan round robin pada kata sandi pengguna, yang meminta pada interval yang tidak bergantung pada sandi pengguna atau pola penggunaan pengelola kata sandi mereka. Ini membantu memastikan bahwa status verifikasi tetap diperbarui dengan daftar kata sandi bocor yang dikuratori saat ini. Untuk membantu mencegah bocornya informasi terkait berapa banyak kata sandi yang dimiliki oleh pengguna, permintaan ditumpuk dan dilakukan secara paralel. Sejumlah kata sandi tetap diverifikasi secara paralel di setiap pemeriksaan, dan jika pengguna memiliki jumlah yang lebih rendah dibandingkan jumlah ini, kata sandi acak akan dibuat dan ditambahkan ke permintaan untuk mengisi perbedaannya.
Cara kata sandi dicocokkan
Kata sandi dicocokkan dalam proses dua bagian. Kata sandi yang paling umum bocor diletakkan dalam daftar lokal di perangkat pengguna. Jika kata sandi pengguna ada dalam daftar, pengguna akan segera diberi tahu tanpa interaksi eksternal. Ini dirancang untuk memastikan bahwa tidak ada informasi yang bocor mengenai kata sandi yang dimiliki pengguna yang paling berisiko karena bocornya kata sandi.
Jika kata sandi tidak berada di daftar paling sering, kata sandi dicocokkan dengan kata sandi yang jarang bocor.
Membandingkan kata sandi pengguna dengan daftar yang dikuratori
Untuk memverifikasi apakah kata sandi yang tidak ada di daftar lokal sesuai atau tidak melibatkan beberapa interaksi dengan server Apple. Untuk membantu memastikan kata sandi asli milik pengguna tidak dikirim ke Apple, bentuk antarbagian kumpulan pribadi kriptografi disebarkan yang membandingkan kata sandi pengguna dengan kumpulan besar kata sandi yang bocor. Ini dirancang untuk memastikan bahwa untuk kata sandi yang memiliki risiko kebocoran yang lebih rendah, hanya sedikit informasi yang dibagikan dengan Apple. Untuk kata sandi pengguna, informasi ini terbatas pada prefiks 15 bit dari hash kriptografis. Penghapusan kata sandi yang paling sering bocor dari proses interaktif ini, menggunakan daftar lokal dari kata sandi yang paling sering bocor, mengurangi delta pada frekuensi relatif kata sandi yang bocor di dalam keranjang layanan web, yang membuat kata sandi pengguna menjadi susah diduga dari pencarian ini.
Protokol yang mendasari mempartisi daftar kata sandi yang dikuratori, yang memasukkan kira-kira 1,5 miliar kata sandi saat dokumen ini ditulis, ke dalam 215 keranjang berbeda. Keranjang tempat kata sandi berada didasarkan pada 15 bit pertama dari nilai hash SHA256 kata sandi. Selain itu, setiap kata sandi yang bocor, pw, diasosiasikan dengan titik kurva eliptis pada kurva NIST P256: Ppw = ⍺·HSWU(pw), dengan ⍺ adalah kunci acak rahasia yang hanya diketahui oleh Apple dan HSWU adalah fungsi oracle acak yang memetakan kata sandi ke titik kurva berdasarkan metode Shallue-van de Woestijne-Ulas. Transformasi ini dirancang untuk menyembunyikan nilai kata sandi secara komputasional dan membantu mencegah pengungkapan kata sandi yang baru bocor melalui Pengawasan Kata Sandi.
Untuk mengomputasi antarbagian kumpulan pribadi, perangkat pengguna menentukan keranjang tempat kata sandi pengguna berada menggunakan λ, prefiks 15 bit SHA256(upw), dengan upw adalah salah satu kata sandi pengguna. Perangkat membuat konstanta acaknya sendiri, β, dan mengirimkan titik Pc = β·HSWU(upw) ke server, bersamaan dengan permintaan untuk keranjang yang sesuai dengan λ. Di sini, β menyembunyikan informasi mengenai kata sandi pengguna dan membatasi ke λ mengenai informasi yang terpapar dari kata sandi ke Apple. Akhirnya, server mengambil titik yang dikirimkan ke perangkat pengguna, mengomputasi, ⍺Pc = ⍺β·HSWU(upw), dan mengembalikannya, bersamaan dengan keranjang yang sesuai pada titik—Bλ={ Ppw | SHA256(pw) yang diawali dengan prefiks λ}—ke perangkat.
Informasi yang dihasilkan memungkinkan perangkat untuk mengomputasi B’λ = {β·Ppw | Ppw ∈ Bλ}. Jika ⍺Pc ∈ B’λ, kata sandi pengguna telah teretas.