LAContext's touchIDAuthenticationAllowableReuseDuration value not respected
Originator: | mkaye | ||
Number: | rdar://35674867 | Date Originated: | 23/11/17 |
Status: | Open | Resolved: | |
Product: | IOS SDK Security | Product Version: | IOS 9 + |
Classification: | Security | Reproducible: | Yes |
Summary: A LAContext (set with a valid touchIDAuthenticationAllowableReuseDuration), and used with the kSecUseAuthenticationContext flag in a SecItemCopyMatching query, does not respect the value set for the touchIDAuthenticationAllowableReuseDuration. Steps to Reproduce: Create an LAContext and set it's touchIDAuthenticationAllowableReuseDuration to specific duration let context = LAContext() context.touchIDAuthenticationAllowableReuseDuration = 60 Next pass the context into a SecItemCopyMatching query var query = [String : AnyObject]() … … query[kSecUseAuthenticationContext as String] = context Expected Results: The expectation is that if the TouchID has been authenticated, then no authentication dialog will appear for the reuse duration specified Actual Results: Depends on the value set for touchIDAuthenticationAllowableReuseDuration: If set to 0 : then an authentication dialog is displayed (correct behaviour) BUT the authentication reuse duration remains valid for 600 seconds. If set to a value > 0 : the authentication reuse duration remains valid for 600 seconds Version/Build: iOS 9 and above Configuration: No special configuration. Issue happens on devices with or without secureEnclave.
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!