IOS应用程序的安全代码

时间:2013-01-25 10:01:27

标签: iphone ios objective-c security

目前,我们正在为我们公司开发跟踪和追踪应用程序。为了使这个应用程序更安全,我们想在第一次启动时询问用户安全代码。此安全代码很可能是客户编号。

用户使用其跟踪和跟踪代码向服务器发送请求,服务器将检查安全代码以及跟踪和跟踪代码是否已链接。

我的问题是在应用程序中存储安全代码的最佳方法是什么,以便应用程序可以要求将跟踪和跟踪发送到服务器。我们希望用户仅在首次启动时输入安全代码。

[[NSUserDefaults standardUserDefaults] boolForKey:@"security code"];

这会是一个选择吗?

2 个答案:

答案 0 :(得分:7)

答案 1 :(得分:2)

user1805901> This security code will most likely be the customer number.

这有多可猜测?您可能希望在丢失的情况下查看UUID。提供从UUID到服务器上的客户编号的映射。

WDUK> For any secure data you wish to store on the device, I strongly advise you use the Keychain.

除钥匙串外,您还必须查看kSecAttrAccessibleWhenUnlockedkSecAttrAccessibleAfterFirstUnlockkSecAttrAccessibleAlwayskSecAttrAccessibleWhenUnlockedThisDeviceOnlykSecAttrAccessibleAfterFirstUnlockThisDeviceOnlykSecAttrAccessibleAlwaysThisDeviceOnly

kSecAttrAccessibleAlwayskSecAttrAccessibleAlwaysThisDeviceOnly是毒药,不应使用,因为钥匙串可能泄漏数据。有关详细信息,请参阅iOS Keychain Weaknesses(它变得更好,但它仍然可能是一个问题)。

*ThisDeviceOnly表示恢复到其他设备时不包含该密码。它有助于一些复制/粘贴攻击。

如果你不想在云上使用这个秘密,我相信Keychain属性需要包含com.apple.MobileBackup。有关详细信息,请参阅Technical Q&A QA1719

杰夫