As a quick remember, here is the common flow :
The user sends a request to his wallet to sign a payload
The wallet signs the payload with the private key and returns the signature
The user forwards the signed message to a Tezos node
- The wallet can be local or distant.
- If remote, there is a risk over the communication channel and third parties
- Each wallet will use its own mechanism to protect the private key: password, etc …
Biometrics on Android provides a convenient method for authorizing access to private content within your app. Instead of having to remember an account username and password every time they open your app, users can use their biometric credentials to confirm their presence and authorize access to the private content
Your phone, depending on the security level of the chip, becomes your HSM (Hardware Secure Module) replacing external devices like a Ledger or a Yubikey.
There are two approaches on Tezos to use Biometrics :
This solution is similar to the signing with a wallet solution
- the wallet is the secure chip of the phone, it is a local communication
- the private key is protected by the phone Biometrics
Biometrics just controls the access to the keypair.The keys are generated from a native Android algorithm, a crypto library as spongycastle or just an encrypted private key as string.Once the user has authenticated with Biometrics, he has access to the protected object on the Keystore.
If you want to learn more about this announcement, please read our blog post on Marigold website
Signing on Tezos with Android Biometrics