Dlaczego potrzebujemy użyć Keystore, klucz, CryptoObject ... itp? To może po prostu być jak poprosić menedżera odcisków palców w celu uwierzytelnienia użytkownika i może prostu przywrócić stan (sukces/zawiodły)
Nie musiał. Możesz wykonać uwierzytelnianie odcisków palców bez numeru CryptoObject
, wystarczy podać wartość null
. Wtedy nie będzie bałagan z magazynu kluczy i innych rzeczy.
Jedynym zastosowaniem numeru CryptoObject
w przypadku uwierzytelniania odcisków palców jest sprawdzenie, czy dodano nowy odcisk palca od czasu ostatniego uwierzytelnienia użytkownika za pomocą odcisku palca.
Czy muszę generować nowy klucz za każdym razem przy każdym uwierzytelnieniu?
Jeśli nowy odcisk palca dodaje, trzeba będzie poprosi o podanie hasła w celu weryfikacji tożsamości użytkownika, a następnie wygenerować nowe klucze (bo stał się nieważny, gdy nowy odcisk palca został dodany).
Znowu nie trzeba zadzierać z nich, jeśli zdać null
CryptoObject
kwestia punktu widzenia
uwierzytelniania linii papilarnych nie wymaga CryptoObject, w rzeczywistości jest wręcz przeciwnie.
Podczas wykonywania operacji kryptograficznych w systemie Android można użyć jednego z następujących obiektów: Cipher, Signature, Mac (i innych). Jeden z tych trzech może być użyty do zbudowania CryptoObject.
Podczas generowania kluczy dla tych obiektów, istnieje metoda nammed setUserAuthenticationRequired(boolean)
który udaje się dostać klucze valids tylko jeśli użytkownik uwierzytelniony za pomocą odcisku palca przed.
Tak więc, na przykład, w przypadku komunikacji klient/serwer, jeśli klient może używać kluczy, oznacza to, że został uwierzytelniony za pomocą odcisku palca, a jego tożsamość jest znana.
Nawiasem mówiąc, można sprawdzić moją bibliotekę dla palców Dialogi który realizuje proces CryptoObject, kluczy i haseł ... https://github.com/omaflak/FingerprintDialog-Library
„To może być po prostu jak poprosić menedżera odcisków palców w celu uwierzytelnienia użytkownika i może po prostu zwrócić status (sukces/niepowodzenie) "- patrz [metoda' authenticate() 'na' FingerprintManager'] (https://developer.android.com/reference/android/hardware/fingerprint/FingerprintManager.html# authenticate (android.hardware.fingerprint.FingerprintManager.CryptoObject,% 20android.os.CancellationSignal,% 20int,% 20android.hardware.fingerprint.FingerprintManager.AuthenticationCallback,% 20android.os.Handler)). 'CryptoObject' może mieć wartość' null'. – CommonsWare
Dzięki, planuję użyć uwierzytelniania odcisków palców dla mojej aplikacji. Czy nadal zaleca się używanie klucza, pliku kluczy itd.? Czy możesz wskazać mi kierunek, w którym rozumiem tę koncepcję? –
Polecam, aby zadać osobne pytanie dotyczące przepełnienia stosu, w którym szczegółowo wyjaśniasz **, ** czego chcesz od uwierzytelnienia odcisków palców i co dokładnie próbujesz chronić (klucz API, dane użytkownika, coś innego?), i zapytaj, jakie aspekty interfejsu API linii papilarnych najlepiej pasują do twoich potrzeb. – CommonsWare