1

私のプログラムでは、プログラムのデータにアクセスするために使用されるパスコードをユーザーに作成させています。作成プロセス中のプログラムフローは次のとおりです。

  1. ユーザーにパスコードの入力を求める
  2. ユーザーにパスコードを再入力するように依頼する
  3. パスコードが一致する場合は続行し、そうでない場合は手順1に進み、プロセスを最初からやり直します。

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

4

2 に答える 2

1

うまくいけばアプローチすると思います(iVarにパスワードを保存する)。

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

メモリをnullバイト(入力したパスワードと同じ長さ)で上書きし、プレーンテキストパスワードのメモリ内のすべての参照を削除し、入力したパスワードのSHA256を保持することで、セキュリティの概念を改善できます。また、UIApplicationDidEnterBackgroundNotificationを受信するときは、必ずnullバイトを上書きして削除してください。

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

于 2012-04-10T18:14:26.557 に答える
0

そのパスワードをiVarに一時的に保存しても問題はありません。

于 2012-04-10T18:12:03.623 に答える