gpt4 book ai didi

ios8 TouchID 检测是否添加了指纹

转载 作者:技术小花猫 更新时间:2023-10-29 10:41:22 27 4
gpt4 key购买 nike

我正在研究 Apple 的 Touch ID,更准确地说是 Local Authenticator。截至目前,文档非常稀少。主要是这样的:

LAContext *myContext = [[LAContext alloc] init];
NSError *authError = nil;
NSString *myLocalizedReasonString = <#String explaining why app needs authentication#>;

if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
[myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
localizedReason:myLocalizedReasonString
reply:^(BOOL success, NSError *error) {
if (success) {
// User authenticated successfully, take appropriate action
} else {
// User did not authenticate successfully, look at error and take appropriate action
}
}];
} else {
// Could not evaluate policy; look at authError and present an appropriate message to user
}

摘自 https://developer.apple.com/documentation/localauthentication

使用指纹进行身份验证的想法很好。但如果我知道密码,我可以在设备中添加指纹。获取密码非常容易,就像您坐在受害者旁边的火车上,看着他/她输入密码一样。

我想使用指纹作为安全身份验证的一种方式,但希望能够检测自上次请求指纹以来是否添加了新指纹。

Apple 正在为 AppStore 做这件事。如果您想在 AppStore 中验证交易并在上次交易后添加了新的指纹,AppStore 会请求您的 AppleId 密码。这是明智的行为,因为手机可能已被知道密码的其他人拿走并添加了自己的指纹以购买昂贵的东西。

我的问题:我能否检测自上次使用 Local Authenticator 后是否添加了新指纹?

最佳答案

这在 iOS9 中是可能的。属性 evaluatedPolicyDomainState 已添加到 LAContext。

如果修改了指纹数据库(添加或移除手指),则 evaluatedPolicyDomainState 返回的数据将发生变化。更改的性质无法确定,但通过比较不同 evaluatePolicy 调用后 evaluatedPolicyDomainState 的数据,您可以检测到指纹集已被修改。

请注意,仅当调用 evaluatePolicy 并执行成功的 Touch ID 身份验证时,或者当 canEvaluatePolicy 对生物识别策略成功时,才会设置此属性。

关于ios8 TouchID 检测是否添加了指纹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25669172/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com