Parola İzleme
Parola İzleme, kullanıcının Otomatik Parola Doldurma anahtar zincirinde saklanan parolaları farklı çevrimiçi kuruluşlara ait sızıntılarda açığa çıktığı bilinen parolalardan oluşan bir listeyle karşılaştırır. Bu liste, sürekli olarak güncellenir ve derlenir. Bu özellik açıksa izleme protokolü kullanıcının Otomatik Parola Doldurma anahtar zincirindeki parolalarını sürekli olarak söz konusu derlenen listeyle karşılaştırır.
İzleme nasıl çalışır?
Kullanıcının aygıtı, kullanıcının parolalarından veya parola yöneticisi kullanma örüntülerinden bağımsız bir zaman aralığında sorgular gerçekleştirerek kullanıcının parolalarını sürekli olarak tek tek denetler. Bu, doğrulama durumlarının sızdırılmış parolalardan derlenen mevcut listeye göre güncel olmasını sağlar. Kullanıcının kaç tane benzersiz parolası olduğuyla ilgili bilgilerin sızmasını engellemek için istekler toplu olarak paralel bir şekilde gerçekleştirilir. Her denetimde sabit bir sayıda parola doğrulanır. Kullanıcının bu sayıdan az parolası varsa aradaki farkı kapatmak için rasgele parolalar oluşturulup sorgulara eklenir.
Parolalar nasıl karşılaştırılır?
Parolalar, iki bölümden oluşan bir işlemle karşılaştırılır. En sık sızdırılan parolalar, kullanıcının aygıtındaki yerel bir listede tutulur. Kullanıcının parolası bu listede yer alıyorsa harici bir etkileşime gerek kalmadan kullanıcı hemen bilgilendirilir. Bu, parola ihlali nedeniyle riski en yüksek olan kullanıcı parolaları hakkında hiçbir bilginin sızdırılmamasını sağlamak için tasarlanmıştır.
Parola, en sık sızdırılanlar listesinde değilse daha nadiren sızdırılan parolalarla karşılaştırılır.
Kullanıcı parolalarını derlenmiş bir listeyle karşılaştırma
Yerel listede yer almayan bir parolanın eşleşip eşleşmediğini doğrulamak için Apple sunucularıyla etkileşime girilmesi gerekir. Kurallara uygun kullanıcı parolalarının Apple’a gönderilmediğinden emin olmak için kullanıcının parolalarını büyük bir sızdırılmış parola kümesiyle karşılaştıran şifreli bir özel küme kesişiminden yararlanılır. Bu, ihlal riski düşük parolalar hakkında Apple ile çok az bilginin paylaşılmasını sağlamak için tasarlanmıştır. Kullanıcının parolası için bu bilgiler bir şifreleme özetinin 15 bitlik ön ekiyle sınırlıdır. En yaygın olarak sızdırılan parolalardan oluşan yerel listeyi kullanarak en sık sızdırılan parolaların bu etkileşimli işlemin dışında tutulması, parolaların web servisleri kutularında göreli yer alma sıklığı arasındaki farkı azaltır ve bu araştırmalardan kullanıcı parolalarının belirlenmesini zorlaştırır.
Altta yatan protokol, bu kılavuzun yazıldığı sırada yaklaşık 1,5 milyar parola içeren derlenmiş parolalar listesini 215 farklı kutuya böler. Parolanın ait olduğu kutu, parolaya ait SHA256 özet değerinin ilk 15 bitine göre belirlenir. Buna ek olarak, sızdırılmış her parola (pw), Ppw = ⍺·HSWU(pw) NIST P256 eğrisindeki bir eliptik eğri noktasıyla ilişkilidir. Burada, ⍺ yalnızca Apple tarafından bilinen gizli bir rasgele anahtar ve HSWU ise parolaları Shallue-van de Woestijne-Ulas yöntemine dayalı olarak eğri noktalarına eşleyen bir rasgele sonuç döndürme (oracle) işlevidir. Bu dönüşüm, parola değerlerini işlemsel olarak gizlemek amacıyla tasarlanmıştır ve yeni sızdırılmış parolaların Parola İzleme aracılığıyla açığa çıkmasını engellemeye yardımcı olur.
Özel küme kesişiminin hesaplanması için kullanıcının aygıtı, SHA256 (upw) değerinin 15 bitlik ön eki olan λ’yı kullanarak kullanıcı parolasının hangi kutuya ait olduğunu belirler. Burada upw, kullanıcının parolalarından biridir. Aygıt kendi rasgele sabitini (β) üretir ve Pc = β·HSWU(upw) noktasını ve λ ile ilgili kutu için bir isteği sunucuya gönderir. Burada β, kullanıcı parolasıyla ilgili bilgileri gizler ve parola ile ilgili olarak Apple’a sunulan bilgileri λ ile sınırlandırır. Son olarak sunucu, kullanıcının aygıtı tarafından gönderilen noktayı alır, ⍺Pc = ⍺β·HSWU(upw) değerini hesaplayıp bu değeri ve uygun noktalar kutusunu (Bλ={ Ppw | SHA256 (pw) λ ön ekiyle başlar}) aygıta döndürür.
Aygıt, döndürülen bilgileri kullanarak B'λ = {β·Ppw | Ppw ∈ Bλ} değerini hesaplar ve ⍺Pc ∈ B'λ ise kullanıcı parolasının sızdırılmış olduğunu saptar.