2013-01-25 103 views
1

目前我們正在爲我們公司開發跟蹤跟蹤應用程序。爲了使這個應用程序更安全,我們希望在首次啓動時詢問用戶的安全代碼。這個安全碼很可能是客戶號碼。IOS應用程序的安全代碼

用戶發送一個請求到服務器,用他的跟蹤和跟蹤代碼服務器將檢查安全代碼和跟蹤代碼是否鏈接。

我的問題是將安全代碼存儲在應用程序中的最佳方式是什麼,以便應用程序可以向其請求一個跟蹤並將跟蹤發送到服務器。我們希望用戶只在第一次啓動時輸入安全代碼。

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

這會是一個選項嗎?

+0

難道不保護程序的東西存儲在服務器上的,有點發送所述唯一電話ID(或編號?或任何),並在內部查一查?如果沒有找到數據集,請詢問用戶針 – Najzero

+0

布爾只是真/假,你可能需要一個字符串。如果客戶數量有些祕密,您可以考慮存儲在鑰匙串中。 –

回答

6
+0

聽起來很棒,看看這個。 –

+0

鑰匙串就是答案..切勿使用'NSUserDefault'來存儲敏感信息。 – Krishnabhadra

1

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表示祕密不包含在對其他設備的恢復中。它對一些複製/粘貼攻擊很有幫助。

如果你不想在雲上的祕密,我相信鑰匙串屬性需要包括com.apple.MobileBackup。詳情請參閱Technical Q&A QA1719

傑夫

相關問題