9

我能够成功验证用户 Touch ID。但是,一旦触摸 ID 身份验证成功,检索用户登录名和密码以执行登录的最安全方法是什么?

对于 iTunes 连接应用程序,一旦 touch ID 登录成功,它似乎会在本地检索密码并将其填充到密码 UITextField 中。我猜它正在使用钥匙串。

但是,将用户凭据存储在 iPhone 本身上是否安全?还有其他方法吗?

在此处输入图像描述

4

1 回答 1

6

您想将登录信息存储在钥匙串中,但您需要确保将可访问性参数设置为 kSecAttrAccessibleWhenUnlocked 或 kSecAttrAccessibleWhenUnlockedThisDeviceOnly (kSecAttrAccessibleWhenUnlockedThisDeviceOnly 更安全一些,因为密码不会离开设备,例如当设备备份到你的笔记本电脑。)

NSMutableDictionary *query = [NSMutableDictionary dictionary];
[query setObject:(id)kSecClassGenericPassword forKey:(id)kSecClass];
[query setObject:account forKey:(id)kSecAttrAccount];
[query setObject:(id)kSecAttrAccessibleWhenUnlocked forKey:(id)kSecAttrAccessible];
[query setObject:[inputString dataUsingEncoding:NSUTF8StringEncoding] forKey:(id)kSecValueData];

OSStatus error = SecItemAdd((CFDictionaryRef)query, NULL);

(代码来自http://software-security.sans.org/blog/2011/01/05/using-keychain-to-store-passwords-ios-iphone-ipad/

于 2015-03-09T09:55:11.227 回答