Huawei FIDO Biyometrik Doğrulama ile AndroidX Biyometrik Kütüphanesi Arasındaki Fark Nedir?

Erman Derici
Huawei Developers - Türkiye
4 min readJun 23, 2023
Biyometrik Doğrulama

Giriş

Bu makalede biyometrik kimlik doğrulama için kullanabileceğiniz iki kütüphane arasındaki farkı anlatacağım. Huawei FIDO (Fast Identity Online) parmak izi ve yüz tanıma olmak üzere iki biyometrik kimlik onaylama imkanı sağlıyor. Peki Huawei FIDO ile AndroidX Biyometrik Kütüphanesi arasındaki fark nedir? Birbirlerine kıyasla avantajları ve dezavantajları nelerdir, gelin beraber inceleyelim.

Huawei FIDO

Huawei FIDO parmak izi ve yüz tanıma olmak üzere iki biyometrik kimlik doğrulama yönteminin yanı sıra WebAuthn standartlarına dayalı FIDO2 özelliklerini de barındıran bir kütüphanedir. Huawei FIDO sistemin güvenli olduğunu ve herhangi bir risk olup olmadığını kontrol eden bir API ile beraber geliyor. Bu sayede güvenlik en yüksek seviyede tutuluyor ve şüpheli cihazlardan gelen istekler engellenebiliyor. Dikkat edilmesi gereken bir nokta ise Huawei FIDO kütüphanesi resmi olarak sadece Huawei cihazlarda destekleniyor. HMS-Core indirilen Huawei olmayan cihazlarda sorunsuz çalışacağının garantisi maalesef verilmiyor.

Biyometriks Kimlik Doğrulama Akış Diyagramı

Huawei FIDO kimlik doğrulama için 2 farklı SDK seçeneği sunuyor:

-BioAuthn
-BioAuthn-AndroidX

Bu iki SDK arasındaki ana fark BioAuthn-AndroidX SDK’sı yeni AndroidX kütüphanesi desteği ile çalışıyor ve parmak izi doğrulama işlemi için hazır bir arayüz sunuyor. BioAuthn SDK’sı ise hazır bir arayüz sunmuyor ve bu arayüzü tasarlama işlemini geliştiriciye bırakıyor. Bu makalede BioAuthn-AndroidX SDK’sını kullanıyor olacağız.
Huawei FIDO kütüphanesinin en sık kullanıldığı alanlar ise gizli ve güvende olması gereken işlemler. Buna bir yere giriş yapmak, ödeme onaylamak ve diğer hassass verilere erişmek örnek olarak verilebilir.

Android Biyometrik Kütüphanesi

Android Biyometrik kütüphanesi Android 6'da getirilen FingerPrintManager olarak geçen parmak izi tanımlama kütüphanesinin geliştirilmiş halidir. Android 10 ve üstü cihazların ise ayrıca iris ve yüz gibi başka biyometrik özellikler ile biyometrik kimlik doğruma imkanı sağlamıştır.

Kodlama

Makaleyi kısa ve sade tutmak için bazı adımları atlıyor olacağım. Eğer tüm detayları ve Huawei’in oluşturduğu başka kütüphaneleri öğrenmek istiyorsanız en aşağıdaki Referanslar kısmından kaynaklara erişebilirsiniz.

1. SDK integrasyonu

Gerekli SDK’ları uygulama klasöründeki build.gradle dosyası içine ekleyin:

2. Ana işlemlerin kodlanması

Cihazdaki sensörleri kullanmaya başlamadan önce bu sensörlerin gerçekten var olup olmadığını ve kullanıma hazır olup olmadıklarını kontrol etmemiz gerekiyor. Dikkat edilmesi gereken bir nokta ise yüz tanıma özelliğini API seviyesi 29 veya daha üzeri olan cihazlar destekliyor. Bazı cihazlar ise hiç destek vermiyor. O yüzden kontrol etmemiz gerekiyor:

Burda göze batan önemli detaylardan birisi ise AndroidX Biyometrik kütüphanesi BiometricManager olarak tek bir sınıf ile işlemleri yapmamızı sağlıyor. canAuthenticate() metodunun içine verdiğimiz BIOMETRIC_STRONG veya BIOMETROC_WEAK parametreleri ile bir nebze hangi biyometrik özelliği kullanacağımızı seçebiliyoruz. Huawei FIDO ise hem parmak izi hem de yüz tanıma için ayrı iki tane sınıf sağlıyor. Bu sayede öteki biyometrik özelliklere bağlı kalmadan istediğimiz yöntemi seçebiliyoruz.

Doğrulama süreci için ilk başta bir callback objesi oluşturmamız gerekiyor. Bu callback, gelen doğrulama sonucuna göre hangi işlemleri belirttiğimiz bir interface aslında. Oluşturduğumuz bu callback objesini Prompt sınıfına parametre olarak veriyoruz :

Yazdığımız Prompt objelerini oluşturuyoruz:

Info builder sınıfında bir obje oluşturuyoruz. Bu obje doğrulama için çıkan pop-up ekranını customize etmemizi sağlıyor. Bu class içerisinde de hangi biyometrik kimlik doğrulama yöntemini kullanacağımızı belirtiyoruz:

Dikkat edilmesi gereken bir nokta ise Huawei FIDO’nun yüz tanıma özelliğinin olay akışı biraz daha farklı. Çünkü yüz tanıma için parmak izi gibi hazır bir arayüz yok. Bu ekranı tasarlamak ise geliştiricinin kendi insiyatifine kalmış.

Satır 69'da görüldüğü gibi boolean bir değer veriyoruz. Bu Huawei FIDO’nun bir özelliği ve true olarak değer vermek kullanıcıya parmak izi okutmak yerine cihazının PIN kodunu girerek işlem yapabilmesine izin veriyor. AndroidX Biyometrik Kütüphanesi ise bu kadar kolay bir özellik sağlamıyor ve geliştirici kendisi cihazın güvenliğinden ve API seviyesinin kontrolünden kendisi sorumlu.

builder.setDeviceCredentialAllowed(true)

Son olarak yazdığımız bu metodları çağırarak biyometrik kimlik doğrumala işlemine başlıyoruz. Bu işlem ise parmak izi için karşımıza şöyle bir arayüz çıkartıyor:

Fingerprint Authentication Pop-up

Sonuç

Tebrikler, AndroidX Biyometrik kütüphanesini veya Huawei FIDO kullanarak uygulamanıza hızlıca bir biyometrik kimlik doğrulama özelliği eklediniz. İki kütüphanede güvenilir, hızlı ve ortak işi yapmalarına rağmen ufak farklılıkları var. Huawei FIDO kullanımı biraz daha kolay ve parmak izi ile yüz tanıma arasında net bir seçim yapabilmenizi sağlıyor. AndroidX Biyometrik kütüphanesi ise kendi içerisinde en güçlü ve güvenli doğrulama yöntemini seçiyor ve ona göre kullanıcıya seçenek sunuyor.

Eğer güvenlik konusunda endişeniz var ise CryptoObject kullanarak uygulamanızın biyometrik doğrulama işlemlerinde güvenliğini arttırabilirsiniz. CryptoObject sizin biyometrik bilgilerinizi şifreleyerek cihazınızda tutan ve gerektiği zaman çağrılarak deşifre edilen bir sınıf. Bu sayede biyometrik verileriniz cihazınızın belleğinde tutulmuyor ve güvenli bir şekilde şifrelenerek depolanıyor.

CryptoObject sınıfı hakkında daha çok bilgi, Huawei FIDO kütüphanesinin sağladığı öteki imkanlar için ve AndroidX Biyometrik kütüphanesi hakkında daha fazla bilgi almak için aşağıdaki Referanslar kısmından dökümanlara erişebilirsiniz.

Vakit ayırdığınız için teşekkür ederim, başka makalelerde görüşmek dileğiyle!

Referanslar

--

--