私のプログラムでは、ユーザーがパスワードを入力できます。パスワードは直ちにsha1と一定の塩でハッシュされ、メモリに保存されます。 攻撃者が自分のアプリケーションが実行されているコンピュータに物理的にアクセスし、最後のユーザーのパスワードを取得したいとします。sha1のセキュリティがメモリにパスワードをハッシュ
リバースエンジニアリングとメモリウォッチの魔法でメモリにハッシュを見つけることは可能でしょうか?私のアプリケーションはMFCグラフィカルインターフェイスを使用し、Windows上で動作します。彼自身がパスワードを入力したらどうなるでしょうか?彼はハッシュプロセスを監視できますか?
私のユーザーのパスワードが「1234」のように本当に悪い場合、SHA1ハッシュのすべてのセキュリティはSALTに依存します。 saltは、メモリのどこかに格納しなければなりません(現在は#define char *配列です)。彼は十分な努力でそれを見つけることができましたか?
入力プロセス:
ユーザーは、テキスト編集にパスワードを入力します。終了すると、ユーザが「OK」ボタンをクリックすると、BN_CLICKED
メッセージが放射され、OnOK
関数が呼び出されます。この関数は、編集フィールドからテキストを取得し、別のライブラリの(コードの)部分であるハッシュ関数を呼び出すので、メモリ内の他の場所に配置する必要があると想定します。 Hashed Stringは他の場所にも格納されます。それが重要な場合は、プロジェクト構造は次のようになります。
- SOLUTION
- GUIプロジェクト
- データストレージ事業
- 暗号Libの
パスワードを盗みたいのであれば、メモリのどこかでハッシュを見つけずに編集入力フィールドから "盗む"だけです。その答えの一部はおそらく "はい"です。 –
@MichaelWalz攻撃者がアプリケーションのユーザーと同時にいないと仮定してください。また、編集フィールドはすべての入力後に消去されます。 – jwsc