Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Encrypt app DB with fingerprint scanner #172

Closed
rikishi0071 opened this issue Mar 26, 2021 · 6 comments
Closed

Encrypt app DB with fingerprint scanner #172

rikishi0071 opened this issue Mar 26, 2021 · 6 comments
Labels
state: help wanted I looked into this issue but couldn't solve it quickly type: enhancement New feature or request

Comments

@rikishi0071
Copy link

Hi. Great app! Is it possible to add extra privacy by locking app database with fingerprint? Thank you!

@TheLastProject
Copy link
Member

Well, it wouldn't encrypt the database (but frankly, that's not important, because Android separates the data of different apps very well and you can't access it with root access or manual exporting anyway) but a fingerprint unlock feature would be fine, yeah.

This issue seems very similar to #62 but a fingerprint is slightly different from a password so I'm leaving both open.

@TheLastProject TheLastProject added type: enhancement New feature or request state: help wanted I looked into this issue but couldn't solve it quickly labels Mar 28, 2021
@huuhaa
Copy link

huuhaa commented Jun 14, 2021

This feature would indeed be useful, but unfortunately I'm not coder. So this is just a thought, but don't know is this usable at all, but.. Wuold it be possible to reuse some code from Aegis, which has feature to lock/open database with password & fingerprint.

https://github.com/beemdevelopment/Aegis

@gilbsgilbs
Copy link

gilbsgilbs commented Jul 26, 2021

Well, it wouldn't encrypt the database

You could use the User Authentication feature of the Keystore to encrypt the database and make it basically very hard (if not impossible) to decrypt it without the fingerprint (or the password). (See also: https://developer.android.com/training/sign-in/biometric-auth#crypto)

@djechelon
Copy link
Contributor

Here is my opinion.

Personally I am very against abusing the Biometric prompt in apps, and I rather prefer to rely on proper device security, or do like some popular high-security apps do (Google Pay).

Once you have set up a proper lock screen security, authenticating yet again to apps is a hassle. In order to open Catima, you must unlock your screen first, perhaps with fingerprints.

I personally don't like the behaviour of (almost all) banking apps who require you to re-authenticate after unlocking the screen a few seconds ago. And this is different from authorizing a transaction, where the authentication (even biometric) is also a very important UX pause element, where the user is implicitly required to review information by confirming PIN or fingerprint.

In the case of Catima, one should really balance the value of privacy over usability.

What does Google Pay do? In the first 3 minutes after you unlocked your device with a proper PIN/fingerprints, payments are authorized. After 3 minutes of screen active, another prompt will ask you to confirm the transaction. I also suspect (never tried) that Google Pay won't easily authorize multiple payments in a row

@djechelon
Copy link
Contributor

Of course, it will be very easy to implement an optional authentication prompt. It won't encrypt the database. There is no need. Modern Android devices are encrypted by default. Android file sharing model does not allow other apps to mess with the database. ADB can extract unencrypted backups. Users who back up their phone on Google Drive with a modern Android device encrypt their backups into the cloud with the lockscreen key.

Catima could have an option "Authenticate at every start".

See also #146 for cards opened through the power screen, in case

@TheLastProject
Copy link
Member

Given #62 is implementing both PIN and fingerprint as optional I'm just closing this in favour of that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
state: help wanted I looked into this issue but couldn't solve it quickly type: enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants