2012-04-10 5 views
1

私のプログラムでは、プログラムのデータにアクセスするためのパスコードを作成しています。作成プロセスの間に以下のようにプログラムの流れは次のとおりです。iVarに機密データを一時的に保存するとセキュリティ上の脅威が生じますか?

  1. パスコードは、他に進んで一致した場合に再入力するパスコード
  2. にユーザーに確認し、パスコード
  3. を入力するようユーザーに尋ねると、1に進みます。プロセスを開始する

入力した2つのパスコードを比較するために、パスコードを一時的にインスタンス変数に格納します。これが潜在的なセキュリティホールとなりますか?もしそうなら、なぜこれが問題であり、あなたの解決策は何ですか?たぶんそれのハッシュバージョンを格納しますか?ありがとう!

答えて

1

iVarにパスワードを保存しても問題ありません。

あなた自身のために「セキュリティホール」を定義する必要があるかもしれません。もちろん、攻撃者が盗まれたiPhoneから格納されたメモリを読み取り、パスワードを再構築することは可能です。 しかし、そのデータは賢明ですか?

あなたの平文パスワードのメモリ内のすべての参照を削除、NULLバイト(入力したパスワードと同じ長さ)で、あなたのメモリを上書きすることで、セキュリティの概念を改善し、先ほど入力したパスワードのSHA256を保つことができます。 また、UIApplicationDidEnterBackgroundNotificationを受け取ったときにnull-bytes-overwriteとdeleteを確認してください。

しかし、私はそれを行う価値はないと思います。

+0

ジョナス - はい、データは非常に機密性が高い、例えばCCインフォメーション、オンラインバンキングのユーザー名/パスワードなどです。回答が変わるでしょうか? –

+0

その後、ヌルバイトのものを上書きする(私はちょうど私の答えを更新しました)。 –

0

パスワードをiVarに一時的に保存する際に問題はありません。