2012-04-10 88 views
1

我的程序讓用戶創建一個用於訪問程序數據的密碼。在創建過程中,程序流程如下:是否將敏感數據臨時存儲在iVar中構成安全威脅?

  1. 要求用戶輸入密碼
  2. 要求用戶重新輸入密碼,
  3. 如果通行碼比賽繼續進行,否則到步驟1並開始處理

爲了比較兩個輸入的密碼,我將密碼臨時存儲到一個實例變量中。這可能是一個潛在的安全漏洞嗎?如果是這樣,爲什麼這是一個問題,你的解決方案是什麼?也許存儲它的散列版本?謝謝!

回答

1

我認爲你的方法如果罰款(將密碼存儲在iVar中)。

也許你需要爲自己定義「安全漏洞」。當然,攻擊者可能會從竊取的iPhone中讀取存儲內容並重建密碼。 但是數據是否合理?

您可以通過用空字節(與輸入的密碼長度相同)覆蓋您的內存來提高您的安全概念,刪除內存中所有明文密碼的引用,並保留輸入密碼的SHA256。 還要確保在接收UIApplicationDidEnterBackgroundNotification時覆蓋空字節並進行刪除。

但我認爲這不值得這樣做。

+0

喬納斯 - 是的數據可能是非常敏感的,例如,CC信息,網上銀行的用戶名/密碼等。這會改變你的答案嗎? – 2012-04-10 20:59:27

+0

好的。然後採取空字節覆蓋的東西(我剛剛更新了我的答案)。 – 2012-04-11 06:28:16

0

將密碼臨時存儲在iVar中沒有任何問題。

相關問題