Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Parmak izi HIDL

Parmak izi sensörlü cihazlarda, kullanıcılar bir veya daha fazla parmak izini kaydedebilir ve bu parmak izlerini cihazın kilidini açmak ve diğer görevleri gerçekleştirmek için kullanabilir. Android, satıcıya özel bir kitaplığa ve parmak izi donanımına (örneğin, bir parmak izi sensörü) bağlanmak için Parmak İzi Donanım Arayüz Tanımlama Dili'ni (HIDL) kullanır.

Parmak İzi HIDL'yi uygulamak için, satıcıya özgü bir kitaplıkta IBiometricsFingerprint.hal uygulamalısınız.

Parmak izi eşleştirme

Bir cihazın parmak izi sensörü genellikle boştadır. Bununla birlikte, authenticate veya enroll aramasına yanıt olarak, parmak izi sensörü bir dokunuşu dinler (ekran, kullanıcı parmak izi sensörüne dokunduğunda da uyanabilir). Üst düzey parmak izi eşleştirme akışı aşağıdaki adımları içerir:

  1. Kullanıcı parmak izi sensörüne parmağını yerleştirir.
  2. Satıcıya özel kitaplık, kayıtlı parmak izi şablonlarının geçerli kümesinde bir parmak izi eşleşmesi olup olmadığını belirler.
  3. Eşleşen sonuçlar FingerprintService aktarılır.

Bu akış, cihaza zaten bir parmak izinin kaydedildiğini, yani satıcıya özgü kitaplığın parmak izi için bir şablon kaydettiğini varsayar. Daha fazla ayrıntı için bkz. Kimlik Doğrulama .

Mimari

Parmak İzi HAL aşağıdaki bileşenlerle etkileşim halindedir.

  • BiometricManager , bir uygulama sürecindeki bir uygulamayla doğrudan etkileşime girer. Her uygulamanın bir IBiometricsFingerprint.hal örneği vardır
  • FingerprintService , parmak izi HAL ile iletişimi yöneten sistem sürecinde çalışır.
  • Parmak izi HAL , IBiometricsFingerprint HIDL arayüzünün bir C / C ++ uygulamasıdır. Bu, aygıta özgü donanımla iletişim kuran satıcıya özgü kitaplığı içerir.
  • Keystore API ve Keymaster bileşenleri, Trusted Execution Environment (TEE) gibi güvenli bir ortamda güvenli anahtar depolaması için donanım destekli kriptografi sağlar.
Parmak izi kimlik doğrulaması için veri akışı
Şekil 1. Parmak izi kimlik doğrulaması için üst düzey veri akışı

Satıcıya özgü bir HAL uygulaması, bir TEE'nin gerektirdiği iletişim protokolünü kullanmalıdır. Ham görüntüler ve işlenmiş parmak izi özellikleri, güvenilmeyen belleğe aktarılmamalıdır. Bu tür tüm biyometrik verilerin TEE gibi güvenli bir donanımda depolanması gerekir. Köklendirme , biyometrik verileri tehlikeye atmamalıdır.

FingerprintService ve fingerprintd FingerprintService , fingerprintd kaydetmek ve diğer işlemleri gerçekleştirmek için Parmak İzi HAL aracılığıyla satıcıya özgü kitaplığa çağrı yapar.

Parmak izi ile etkileşim
Şekil 2. Parmak izi arka plan programının parmak izi satıcısına özgü kitaplıkla etkileşimi

Uygulama yönergeleri

Aşağıdaki Parmak İzi HAL yönergeleri, parmak izi verilerinin sızmamasını ve bir kullanıcı cihazdan çıkarıldığında kaldırılmasını sağlamak için tasarlanmıştır:

  • Ham parmak izi verilerine veya türevlerine (örneğin şablonlar) asla sensör sürücüsünün veya TEE'nin dışından erişilemez. Donanım bir TEE'yi destekliyorsa, donanım erişimi TEE ile sınırlandırılmalı ve bir SELinux politikası ile korunmalıdır. Seri Çevre Birimi Arabirimi (SPI) kanalına yalnızca TEE tarafından erişilebilir olmalı ve tüm cihaz dosyalarında açık bir SELinux ilkesi bulunmalıdır.
  • Parmak izi edinme, kayıt ve tanıma TEE içinde gerçekleşmelidir.
  • Dosya sistemi şifrelenmiş olsa bile, parmak izi verilerinin yalnızca şifrelenmiş biçimi dosya sisteminde depolanabilir.
  • Parmak izi şablonlarının özel, cihaza özgü bir anahtarla imzalanması gerekir. Gelişmiş Şifreleme Standardı (AES) için, en azından bir şablonun mutlak dosya sistemi yolu, grubu ve parmak kimliği ile imzalanması gerekir, öyle ki şablon dosyaları başka bir cihazda veya bunları kaydettiren kullanıcı dışında herhangi biri için çalışamaz. aynı cihaz. Örneğin, aynı cihazdaki farklı bir kullanıcıdan veya başka bir cihazdan parmak izi verilerinin kopyalanması çalışmamalıdır.
  • Uygulamalar ya setActiveGroup() işlevi tarafından sağlanan dosya sistemi yolunu kullanmalı ya da kullanıcı kaldırıldığında tüm kullanıcı şablonu verilerini silmek için bir yol sağlamalıdır. Parmak izi şablon dosyalarının şifrelenmiş olarak depolanması ve sağlanan yolda depolanması şiddetle önerilir. TEE depolama gereksinimleri nedeniyle bu mümkün değilse, uygulayıcı, kullanıcı kaldırıldığında verilerin kaldırılmasını sağlamak için kancalar eklemelidir.

Parmak izi yöntemleri

Parmak İzi HIDL arayüzü aşağıdaki başlıca yöntemler içerir IBiometricsFingerprint.hal .

Yöntem Açıklama
enroll() Bir parmak izi şablonunun toplanmasını ve depolanmasını başlatmak için HAL durum makinesini değiştirir. Kayıt tamamlandığında veya bir zaman aşımından sonra, HAL durumu makinesi boşta durumuna geri döner.
preEnroll() Bir parmak izi kaydının başladığını belirtmek için benzersiz bir belirteç oluşturur. Önceden kimlik doğrulaması yapılmasını sağlamak için enroll işlevine bir belirteç sağlar, örneğin bir parola kullanarak. Kurcalanmayı önlemek için, cihaz kimlik bilgileri onaylandıktan sonra belirteç sarılır. Jetonun hala geçerli olduğunu doğrulamak için kayıt sırasında kontrol edilmelidir.
getAuthenticatorId() Mevcut parmak izi setiyle ilişkili bir jeton döndürür.
cancel() Bekleyen kayıt veya kimlik doğrulama işlemlerini iptal eder. HAL durum makinesi boşta durumuna döndürülür.
enumerate() Bilinen tüm parmak izi şablonlarını numaralandırmak için eşzamanlı çağrı.
remove() Bir parmak izi şablonunu siler.
setActiveGroup() Bir HAL işlemini, bir grup tanımlayıcısı (GID) ile tanımlanan, belirli bir gruba ait olan bir dizi parmak izi ile sınırlar.
authenticate() Parmak izi ile ilgili bir işlemin kimliğini doğrular (bir işlem kimliği ile tanımlanır).
setNotify() HAL'den bildirimler alan bir kullanıcı işlevini kaydeder. HAL durum makinesi meşgul durumundaysa, HAL meşgul durumundan çıkana kadar işlev engellenir.
postEnroll() Kayıt işlemini preEnroll() ve preEnroll() oluşturulan preEnroll() geçersiz kılar. Bu, daha fazla parmak eklenemeyeceğini belirtmek için çok parmaklı kayıt oturumunun sonunda çağrılmalıdır.

Bunlarla ilgili daha fazla ayrıntı için IBiometricsFingerprint.hal yorumlara bakın.