biyometri

Biyometri, kimliğinizi bir cihazla doğrulamak için daha uygun, ancak potansiyel olarak daha az güvenli bir yol sunar. Katmanlı kimlik doğrulama modeli altında, birincil kimlik doğrulama (yani, PIN, desen ve parola gibi bilgi faktörüne dayalı yöntemler) en yüksek düzeyde güvenlik sağlar. Biyometri, bir kolaylık ve güvenlik dengesi sunan, kimlik doğrulamanın ikinci aşamasındadır. Android CDD , üç biyometrik güç sınıfını tanımlar: Sınıf 3 (önceden Güçlü), Sınıf 2 (önceden Zayıf) ve Sınıf 1 (önceden Kolaylık). Her sınıfın bir dizi ön koşulu, ayrıcalığı ve kısıtlaması vardır - lütfen daha fazla ayrıntı için yukarıdaki CDD'ye bakın. Her üç sınıfın da kilit ekranı ile entegre olmasına izin verilir, ancak yalnızca Güçlü ve Zayıf kimlik doğrulayıcıların android.hardware.biometrics API'leri ile entegre olmasına izin verilir. Bu tablo, her bir kimlik doğrulayıcıyı ve destekledikleri işlevleri açıklar.

doğrulayıcı kilit ekranı Biyometrik İstem Entegrasyonu Anahtar deposu (zamana dayalı anahtar) Anahtar deposu (işlem tabanlı anahtar)
BIOMETRIC_STRONG (Sınıf 3) Evet Evet Evet Evet
BIOMETRIC_WEAK (Sınıf 2) Evet Evet Numara Numara
BIOMETRIC_CONVENIENCE
(1. sınıf)
Evet Numara Numara Numara
DEVICE_CREDENTIAL Evet Evet Evet Evet (1)
  1. Bu işlevsellik Android 11'de eklenmiştir, ayrıntılar için buna bakın

Android çerçevesi, yüz ve parmak izi biyometrik kimlik doğrulaması için destek içerir. Android, diğer biyometrik modaliteleri (Iris gibi) desteklemek için özelleştirilebilir. Bununla birlikte, biyometrik entegrasyon, modaliteye değil, biyometrik güvenliğe bağlı olacaktır. Biyometrik güvenlik özellikleri hakkında daha fazla ayrıntı için, bkz. Biyometrik Kilit Açma Güvenliğini Ölçme .

Kaynak

Android 11

  • Geliştiricilerin uygulamaları tarafından kabul edilen kimlik doğrulama türlerini belirtmek için kullanabilecekleri sabitler sağlayan BiometricManager.Authenticators arabirimini sunar.
  • Geliştiricilerin kullanıcıyı uygulamalarının gereksinimlerini karşılayan bir kimlik doğrulama yöntemini kaydettirmeye yönlendirmek için kullanabilecekleri ACTION_BIOMETRIC_ENROLLamaç eylemini ekler.
  • Geliştiricilerin, kullanıcının kimliğini biyometrik kimlik bilgisi veya cihaz kimlik bilgisi kullanarak doğrulayıp doğrulamadığını kontrol etmek için kullanabilecekleri AuthenticationResult #getAuthenticationType () yöntemini ekler.
  • BiometricPrompt sınıfı içindeki kullanım başına yetkilendirme anahtarları için ek destek sağlar.

Android 10

  • Geliştiricilerin biyometrik kimlik doğrulamanın kullanılabilirliğini sorgulamak için kullanabilecekleri BiometricManager sınıfını tanıtır.
  • BiometricPrompt için parmak izi ve yüzle kimlik doğrulama entegrasyonunu içerir

Android 9

  • Yalnızca BiometricPrompt için parmak izi entegrasyonunu içerir.
  • FingerprintManager sınıfını kullanımdan kaldırır. Paket uygulamalarınız ve sistem uygulamalarınız bu sınıfı kullanıyorsa, bunları BiometricPrompt ve BiometricManager kullanacak şekilde güncelleyin.
  • FingerprintManager CTS doğrulayıcı testleri, BiometricPrompt kullanarak BiometricPromptBoundKeysTest test etmek için güncellendi.

uygulama

Kullanıcıların ve geliştiricilerin sorunsuz bir biyometrik deneyime sahip olmasını sağlamak için biyometrik yığınınızı BiometricPrompt , BiometricManager ve ACTION_BIOMETRIC_ENROLL API'leri ile entegre edin. Biyometrik sensörlü cihazlar, bu güç gereksinimlerine uymalıdır.
Biyometrik yığınınızı BiometricPrompt ve BiometricManager APIs ile entegre etmek için:

  1. <Modality>Service , IBiometricService#registerAuthenticator yöntemi aracılığıyla BiometricService düzgün şekilde kaydedildiğinden ve IBiometricAuthenticator arabirimini uyguladığından emin olun. Ortak modaliteler (parmak izi, yüz) ortak bir üst sınıftan uzanır. Desteklenmeyen bir modaliteyi entegre etmeniz gerekiyorsa, parmak izi / yüz örneğini ve biyometri için CDD yönergelerini izleyin .
  2. Yeni yönteminizin SystemUI'de düzgün şekilde desteklendiğinden emin olun. Parmak izi ve yüz için varsayılan BiometricPrompt kullanıcı arayüzleri vardır. Bu, cihazınız için gereken tüm düzen veya tema değişikliklerini içermelidir. Yani bir ekran içi parmak izi sensörü için ilgili düzen değişiklikleri.

Biyometrik yığınınızı ACTION_BIOMETRIC_ENROLL API ile entegre etmek için:

  1. Kayıt akışınızı sunmak için BiometricEnrollActivity'yi değiştirin. Biyometrinizin yalnızca istenen gücü karşılaması durumunda sunulabileceğini unutmayın. Cihazınız birden fazla destekliyorsa, bu işlem kullanıcının seçebileceği bir liste sunmalıdır.
Biyometrik İstem mimarisi
Şekil 1. BiometricPrompt mimarisi

HAL uygulama yönergeleri

Biyometrik verilerin sızdırılmadığından ve bir kullanıcı bir cihazdan kaldırıldığında kaldırıldığından emin olmak için bu biyometrik HAL yönergelerini izleyin:

  • Ham biyometrik verilere veya türevlere (şablonlar gibi) hiçbir zaman güvenli yalıtılmış ortamın (TEE veya Secure Element gibi) dışından erişilemediğinden emin olun. Depolanan tüm veriler, yalnızca TEE (Güvenilir Yürütme Ortamı) tarafından bilinen cihaza özel bir anahtarla şifrelenmelidir. Donanım destekliyorsa, güvenli yalıtılmış ortama donanım erişimini sınırlayın ve bir SELinux ilkesiyle koruyun. Tüm cihaz dosyalarında açık bir SELinux ilkesiyle iletişim kanalını (örneğin, SPI, I2C) yalnızca güvenli yalıtılmış ortam için erişilebilir hale getirin.
  • Veri ihlallerini ve diğer saldırıları önlemek için biyometrik edinme, kayıt ve tanıma güvenli yalıtılmış ortamda gerçekleşmelidir. Bu gereklilik yalnızca Sınıf 3 (önceden Güçlü) ve Sınıf 2 (önceden Zayıf) biyometri için geçerlidir.
  • Tekrar saldırılarına karşı korunmak için biyometrik şablonları özel, cihaza özel bir anahtarla imzalayın. Gelişmiş Şifreleme Standardı (AES) için, en azından mutlak dosya sistemi yolu, grubu ve biyometrik kimliği olan bir şablonu imzalayın; öyle ki, şablon dosyalar başka bir cihazda veya onları aynı cihaza kaydettiren kullanıcı dışında herhangi biri için çalışmaz. . Örneğin, aynı cihazdaki farklı bir kullanıcıdan veya başka bir cihazdan biyometrik verilerin kopyalanmasını engelleyin.
  • Verileri TEE dışında depolamanız gerekiyorsa, setActiveUser() HIDL method tarafından sağlanan dosya sistemi yolunu kullanın veya kullanıcı kaldırıldığında tüm kullanıcı şablonu verilerini silmek için başka bir yol sağlayın. Bunun nedeni, kullanıcı verilerinin sızmasını önlemektir. Bu yolu kullanmayan cihazlar, kullanıcı kaldırıldıktan sonra temizlenmelidir. CDD tarafından biyometrik verilerin ve türev dosyalarının şifreli olarak saklanması gerekir - özellikle TEE'de değilse, Güvenli yalıtılmış ortamın depolama gereksinimleri nedeniyle bu mümkün değilse, kullanıcı kaldırıldığında veya cihaz kaldırıldığında verilerin kaldırılmasını sağlamak için kancalar ekleyin silinir. Bkz. LockSettingsService.removeBiometricsForUser()

özelleştirme

Cihazınız birden fazla biyometriyi destekliyorsa, kullanıcı ayarlarda bir varsayılan belirleyebilmelidir. BiometricPrompt uygulamanız, kullanıcı açıkça geçersiz kılmadığı sürece varsayılan olarak Sınıf 3 (önceden Güçlü) biyometriyi tercih etmelidir, ardından biyometrikle ilişkili riskleri açıklayan bir uyarı mesajı görüntülenmelidir (örneğin, Bir fotoğrafınız cihazınızın kilidini açabilir). )

doğrulama

Biyometrik uygulamanız aşağıdaki testleri geçmelidir:

Ayrıca, cihazınız AOSP HIDL'ye sahip bir biyometriyi destekliyorsa ( parmak izi@2.1 , parmak izi@2.2 , face1.0 ), ilgili VTS testini ( parmak izi , yüz ) geçmelidir.