2010-09-12 134 views
3

存在任何已知的陷阱,以避免在Keychain存儲用戶密碼時?我打算讓用戶能夠要求輸入密碼才能訪問我的iPad應用程序。我有一個基本的讀寫鑰匙串工作的字符串。我只是想確保我不會讓他們陷入他們自己無過錯的情況下。例如:鑰匙串密碼陷阱

  • 請問鍵盤允許他們進入不能被儲存或鑰匙扣
  • 讀取特殊字符有沒有對字符串長度的限制

感謝任何見解你可以分享。

回答

2

保存密碼。讀回來。確保它的工作。如果不是,告訴用戶它失敗並且讓他們輸入不同的密碼。

並非所有鍵盤可以輸入的所有字符。 3.1.2左右的手機鎖鍵盤(不知道他們是否修好了)有一個錯誤,它會限制你使用「支持ASCII的」鍵盤(例如非希伯來語),但不會限制可能存在的字符進入;啓用某些鍵盤會增加額外的重音符號,並且某些鍵盤還有其他符號。然後,您可以禁用某些鍵盤,鎖定手機,並完全無法解鎖它。 (我這個測試之前創建的備份。)

在你的情況,你不阻止鍵盤用戶,所以這是不成問題的。

注意,你從錯誤的方向接近這樣的:密碼解鎖內容。您正試圖保持內容的安全。您不需要隨時隨地保存密碼(您可以使用它來加密內容)。

文件也將出現在(非加密)的備份加密。在3.1.2中,你可以備份一個密碼鎖定的電話(不知道他們是否將它固定在3.2);這意味着在沒有備份密碼的設備上,您可以通過將其附加到筆記本電腦並按下「備份」來竊取所有內容。

有效地實施加密自己超出了這個答案的範圍。

+0

加密可能需要在您的特定管轄備案CCATS文件,這可能會產生非零的法律費用。這是一個很好的理由,不要將它用於不真正安全的應用程序,例如對於遊戲角色或高分的「孩子 - 姐妹」密碼鎖定。 – hotpaw2 2010-09-12 05:03:25

+0

我只是不喜歡添加更多*表面安全*的想法比實際的安全性,但我不會建議抹灰「注意,這不是100%安全」無論任何地方—很難與用戶溝通「級別」的安全性而且他們很難理解它。但是,如果你存儲用戶的密碼,絕對將它們放在鑰匙鏈—用戶重用密碼。 – 2010-09-12 13:11:53

+0

感謝您的回覆。只是爲了澄清,我不打算加密內容(例如應用中的文檔),我打算在啓動時捕獲該應用並要求密碼繼續。我試圖解決的問題是:我與其他人分享我的iPad。我不希望他們看到我在這個特定的應用程序中要做什麼。我想我可以嘗試對特定文件進行加密,以防止它們在應用程序啓動後被讀取,但我認爲這可能超出了用戶的要求。 – DenVog 2010-09-12 14:33:29

0

關於字符串長度:

有在iOS鑰匙扣的最大可存儲的字符串長度和一個字符串的最大可能長度之間沒有差別。一個人很可能不會產生很長的字符串,更不用說記住它了。

有必要提一下,對於存儲在鑰匙串中的大值存在性能問題,因爲它必須被加密/解密才能被寫入和讀取。

相關文章:

decoding a HUGE NSString, running out of memory

NSString stringWithFormat is slow