-
-
Notifications
You must be signed in to change notification settings - Fork 433
Feature request: Add Biometric Authentication Process as an Option #615
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
Comments
That is a good idea!! |
@ttorii20 please add for Android also a flag to force the storage of the key on the TEE, not doing so would result in not creating the key. This is important for certification processes |
@bogdannedelcu |
Hi,
Any means to check the plugin did not save the key outside the hardware key
store is fine.
Thanks!
În mar., 26 dec. 2023 la 02:55 Takahiro Torii ***@***.***> a
scris:
… @bogdannedelcu <https://github.com/bogdannedelcu>
Thanks for bringing this up. Just to be sure, are you suggesting we add an
IsStrongBoxBacked flag for Android? And if it's about beefing up security,
should we roll this into the main stream instead of a fork?
—
Reply to this email directly, view it on GitHub
<#615 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACAJSJDQEGRM67YSXADAQSDYLIN7LAVCNFSM6AAAAAA45VBPACVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRZGE3TEOBRG4>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
I second this and would love to see this sooner than later. Seems like the the current approach is to retrieve a simple true/false from biometrics (using local_auth package?) and using that as the sole trust to access secure storage for the data. I'd like to not just get a true/false but that secure storage cannot literally access the keychain/keystore unless biometric auth has opened it up. |
+1 for this. |
I am closing all older issues. If this issue still exists in the latest version, please let me know. |
@juliansteenbakker I'm considering using this library for my project and noticed that this feature appears to be missing. It seems like it would be a relatively easy addition (on the iOS side at least) to just support setting a value for kSecAttrAccessControl around line 44 of this file: https://github.com/juliansteenbakker/flutter_secure_storage/blob/develop/flutter_secure_storage/ios/Classes/FlutterSecureStorage.swift Also see Apple documentation: https://developer.apple.com/documentation/security/ksecattraccesscontrol |
I would love to see this feature in this library. Is it tracked somewhere else, or can we re-open this ticket again? |
I’m also very interested in having this implemented, as relying solely on a true/false response from biometric authentication (via local_auth) is not secure enough for protecting sensitive data. @juliansteenbakker Looking forward to any updates on this and Thanks for your great work! |
I have added Android implementation will be added in a later release. |
first of all thank you for your plugin and for your work. As a security researcher/consultant I started looking into the Android implementation of the biometric authentication to be able to recommend the plugin to clients.... It looks like that the biometric authentication is just "event-bound". If the This makes it possible for an attacker to bypass the biometric authentication (with specific Frida scripts). For the details (secure implementation) you can have a look at this blog post: https://labs.withsecure.com/publications/how-secure-is-your-android-keystore-authentication I would like to make you aware of this so that you have the chance to bring it into the next release :) Kind Regards |
Hi, thank you for noticing! I am aware of this issue, and i am currently in the process of rewriting the whole EncryptedSharedPreferences part so this is handled correctly. The PR is still a draft to check if tests are failing. Once i have production ready code, i will let it know here so it can be verified. |
If this issue is still relevant, please comment to keep it active. Otherwise, it will be closed in 60 days. |
I am interested in adding a biometric authentication process for storage access authentication on each platform. Specifically, I'd like to introduce an option that requires biometric authentication when accessing the keychain on iOS and the keystore on Android.
Currently, flutter_secure_storage does not have such a feature, and there's no way to set this as an option. I believe adding the ability to set a biometric authentication process as an option would be beneficial.
Differences Across Platforms
The method of requesting biometric authentication from the user varies by platform. On iOS, the keychain handles the responsibility of controlling the biometric authentication dialog. In contrast, the Android keystore does not. Therefore, it's necessary to handle errors and display the biometric authentication dialog when required on Android.
For Android:
I'd like to introduce options similar to setUserAuthenticationRequired and setUserAuthenticationValidityDurationSeconds. Here's a snippet to illustrate the desired functionality:
For iOS:
I'd like to introduce an option to set SecAccessControlCreateFlags.biometryCurrentSet for the keychain. Here's a snippet to illustrate the desired functionality:
Anticipated Use Case
The primary use case I envision is during user login, where biometric authentication is performed to access the necessary information for authentication.
The text was updated successfully, but these errors were encountered: