Hız sınırlaması

Android, kimlik bilgisiyle şifrelenmiş depolama ve kimlik doğrulama ile bağlı Keystore anahtarları dahil olmak üzere kullanıcı verilerini korur. Bu koruma, kullanıcı tarafından yapılandırılan kilit ekranı bilgi faktörleri (LSKF'ler) (ör. PIN'ler, desenler ve şifreler) ile sağlanır. LSKF'ler genellikle 4 veya 6 haneli PIN'ler gibi düşük entropili değerlerdir. Bu nedenle, kaba kuvvet saldırılarına karşı korunmaları gerekir.

Android, LSKF'lere kaba kuvvet saldırıları düzenleyen saldırganları yavaşlatmak ve yeterli sayıda deneme yapıldığında engellemek için güvenilir yürütme ortamı (TEE) veya güvenli öğe (SE) hız sınırlayıcılarını kullanır. CDD 9.11 LSKF hız sınırlayıcıları için minimum güvenlik şartlarını ve önerilerini belirtir. Android 16 QPR2 ve sonraki sürümlerde, daha düşük Android sürümlerine kıyasla önemli ölçüde daha güçlü sıklık sınırlama politikaları uygulanır. Daha fazla bilgi için Android 16 QPR2 ve sonraki sürümlerde daha güçlü varsayılan sıklık sınırlama politikası başlıklı makaleyi inceleyin.

Android 17 ve sonraki sürümlerde, daha eski sürümlere kıyasla daha güçlü bir varsayılan kilit ekranı hız sınırlaması kullanılır. Kullanıcılar nadir durumlarda uzun kilit ekranı zaman aşımları yaşayabilir. Bu nedenle Android 17 ve sonraki sürümlerde kilit ekranında aşağıdaki gelişmiş kullanıcı geri bildirimi sağlanır.

  • Geliştirilmiş zaman biçimlendirmesi: Kilit ekranında, bir dakika veya daha uzun süren zaman aşımları daha büyük zaman birimleriyle gösterilir. Örneğin, 1.800 saniye sonra tekrar deneyin yerine 30 dakika sonra tekrar deneyin ifadesi kullanılır.
  • Kurtarma kısa bağlantısı: Kilit ekranında, kullanıcıların başka bir cihazda kurtarma seçeneklerini bulmasına yardımcı olmak için bir kısa bağlantı (varsayılan olarak g.co/android/unlock) gösterilir. Bu bağlantı, config_lockscreenLockoutShortlink kaynağı üzerinden yapılandırılabilir.
  • Yinelenen deneme geri bildirimi: Weaver uygulaması olan cihazlarda, yinelenen yanlış tahmin girildiğinde sistem benzersiz bir mesaj gösterir. Bu özel geri bildirim, yanlış tahminler ve diğer doğrulama hataları için ayrı yanıt kodları sağlamadığından yalnızca Gatekeeper cihazlarda kullanılamaz.
  • Tutarlı kimlik bilgisi girişi yönetimi: Cihaz, şifre ve desen kimlik bilgisi girişine benzer şekilde PIN kimlik bilgisi kullanıyorsa kilit ekranı PIN girişini devre dışı bırakır.

LockPatternUtils#getLockoutAttemptDeadline(int) yöntemi LockPatternUtils#getLockoutEndTime(int) olarak yeniden adlandırıldı ve sistem tarafından yönetilen bir önbellekten kilitleme bitiş zamanını sağlıyor. Bu güncelleme, yalnızca LockPatternUtils örneği başına önbelleğe alındıkları ve başka bir örnek kullanılarak tetiklenmesi durumunda etkin zaman aşımı olmadığını yanlışlıkla gösterdikleri sorunu düzeltir. Kilit ekranı ve ayarlar etkinlikleri gibi sistem kimlik bilgisi istemlerinin geliştiricileri, başka denemelere izin vermeden önce mevcut zaman aşımlarını doğrulamak için bunları güncellemelidir.

LSKF'ler ile korunan kullanıcı verilerinin kilidini açma

LockSettingsService LSKF'lerin depolanmasını ve doğrulanmasını yönetir. Kullanıcılar aynı anda yalnızca bir etkin LSKF'ye sahip olabilir. Yeni bir LSKF atandığında önceki LSKF geçersiz kılınır ve sıklık sınırlama politikası baştan başlatılır.

TEE veya SE'deki birincil hız sınırlayıcı olan Gatekeeper veya Weaver, etkin LSKF için hız sınırlaması uygular. LockSettingsService, bir uygulama olduğunda Weaver'ı tercih eder.

Korunan kullanıcı verilerinin kilidi yalnızca birincil sıklık sınırlayıcıya doğru LSKF sağlandığında açılır. LSKF yanlışsa hız sınırlayıcı, bir hata sayacını artırır ve belirli sayıda hatadan sonra zaman aşımını zorunlu kılar. Zaman aşımı sırasında tüm tahminleri reddeder ve kalan zaman aşımını sağlar.

Android 16 QPR2 ve sonraki sürümlerde daha güçlü varsayılan sıklık sınırlama politikası

CDD 9.11, Android 6 ve sonraki sürümlerde LSKF hız sınırlaması gerektirir. Geçmişte, gerekli sıklık sınırlama politikası oldukça esnekti. Örneğin, Android 16'nın minimum şartlarını karşılayan bir uygulama, ilk dakikada 10, 6 dakikada 20, 25 dakikada 50, 24 saatte 110 ve 5 yılda 1.800 tahmine izin verir.

Bu politika, rastgele seçilen LSKF'ler için makul ölçüde güvenli olsa da kullanıcılar pratikte LSKF'leri rastgele seçmez. Bazı LSKF'ler diğerlerinden çok daha sık görülür. Saldırganlar, LSKF'leri sıklıklarına göre azalan sırada deneyerek önemli bir başarı oranı elde edebilir.

Örneğin, Bu PIN Kolayca Tahmin Edilebilir adlı çalışmada, 100 tahminden sonra gerçek dünyadaki PIN'lerin tahmin edilme başarı oranı% 16,2, desenlerin tahmin edilme başarı oranı ise% 35,5 olarak bulunmuştur. Doğum tarihi gibi kullanıcıya özel bilgileri bilen saldırganlar daha da yüksek başarı oranları elde edebilir.

Bu nedenle, Android 16 QPR2 ve sonraki sürümlerde daha güçlü bir varsayılan LSKF sıklık sınırlama politikası sunulur. Bu politika, ilk dakikada en fazla 6, 6 dakikada 7, 25 dakikada 8, 24 saatte 12 ve 5 yılda 19 tahmine izin verir. 20 yanlış tahminden sonra başka tahminde bulunulamaz. Zaman aşımı programının tamamı aşağıdaki tabloda gösterilmektedir. Bu durum, gelecekteki Android sürümlerinde değişebilir.

Yanlış tahmin sayısı Yanlış tahminden sonraki zaman aşımı
0 Geçerli değil
1-4 0 saniye
5 1 dakika
6 5 dakika
7 15 dakika
8 30 dakika
9 90 dakika
10 4 saat
11 12 saat
12 36 saat
13 4 gün
14 13 gün
15 41 gün
16 123 gün
17 1 yıl
18 3 yıl
19 9 yıl
20+ Başka tahminde bulunamazsınız

Güncellenen hız sınırlayıcılar

Android 16 QPR2 ve sonraki sürümlerde, tablodaki sıklık sınırlama politikasını zorunlu kılan güncellenmiş Gatekeeper ve Weaver uygulamaları bulunur.

Yazılım hız sınırlayıcısı

Android 16 QPR2 ve sonraki sürümlerde isteğe bağlı ikincil bir sıklık sınırlayıcı bulunur. SoftwareRateLimiter. Bu sınırlayıcı, sistem sunucusunda uygulanır ve TEE veya SE güncellenemediğinde cihazların daha güçlü bir sıklık sınırlama politikası sunmasına olanak tanır.

config_softwareLskfRateLimiterEnforcing yapılandırma değeri aracılığıyla zorunlu kılma modunda SoftwareRateLimiter yapılandırın. Yaptırım modunda SoftwareRateLimiter, hız sınırlaması politikasını birincil hız sınırlayıcıyla eşzamanlı olarak uygular. Belirli bir yanlış tahmin sayısı için zaman aşımı, birincil sıklık sınırlayıcı ve SoftwareRateLimiter tarafından gerekli olan sürelerden daha uzundur. Zorunlu kılınmayan modda SoftwareRateLimiter, ikincil bir sıklık sınırlama politikası uygulamadan tüm doğrulama isteklerini birincil sıklık sınırlayıcıya iletir.

Yinelenen tahmin algılama

Kullanılabilirliği artırmak ve daha güçlü bir sıklık sınırlama politikasının kullanılmasını sağlamak için Android 16 QPR2 ve sonraki sürümlerde tahmini tekrar algılama özelliği desteklenir. Bu özellik etkinleştirildiğinde, kullanıcılar aynı yanlış LSKF'yi birden çok kez girdiği için ceza almaz.

Bazen meşru kullanıcılar aynı yanlış LSKF'yi birden fazla kez yanlış girer. Bu durum, birden fazla tahmin olarak sayılırsa gereksiz zaman aşımlarına neden olur. Yeterli beceriye sahip saldırganlar, belirli bir LSKF'yi birden fazla kez denemez. Tekrarlanan tahminleri saymayan bir politika, LSKF girişinin kullanılabilirliğini artırır. Bu politika, yetenekli saldırganların LSKF'leri tahmin etmesini kolaylaştırmadan meşru kullanıcıların LSKF'leri tahmin etmesini kolaylaştırır ve daha güçlü sıklık sınırlama politikalarının uygulanmasına olanak tanır. Kullanıcının, yinelenenler de dahil olmak üzere 5 yanlış tahmin yerine 5 benzersiz yanlış tahmin girmesi gerektiğinden, meşru kullanıcıların zaman aşımıyla karşılaşma olasılığı daha düşüktür.

Android 16 QPR2 ve sonraki sürümlerin yüklü olduğu, Weaver'ın uygulandığı ve SoftwareRateLimiter modunda yapılandırılmış cihazlarda, Weaver'a iletilmeden önce yinelenen tahminler algılanır ve reddedilir. Bu tür retler, yanlış tahmin sayısını artırmaz. Bellekte 5 adede kadar benzersiz yanlış tahmin izlenir. İzleyici dolarsa yer açmak için en son olmayan izleyici atılır. Tüm izlenen tahminler, izlenmeyen son yanlış tahminden 5 dakika sonra silinir.

Gatekeeper, yanlış tahminleri diğer doğrulama hatalarından ayırmadığından SoftwareRateLimiter, Gatekeeper birincil sıklık sınırlayıcı olduğunda yinelenen tahmin algılamayı desteklemez.

Weaver uygulayıcıları, Weaver uygulamasında kopya tahmin algılamayı desteklemeyi seçebilir.