2

私のソフトウェアは AES Rijndael を使用しています。

SHA-256 ハッシュを使用して、任意の長さの文字列からキーを生成し、これを秘密キーと公開キーの両方として渡します。この例では、2 つを区別する必要がないためです。

キーが実行可能ファイルからハッキングされるのを防ぐにはどうすればよいですか?

リテラルを使用するのではなく、実行時にいくつかの事前定義された手順でキーを生成することを知っていますが、それでもキーは AES 初期化関数に送信される直前にメモリ内にあるため、非常に簡単に取得できます。

AES は明らかに非常に安全ですが、代わりに誰かが実行可能ファイルを壊した場合、何の役に立つのでしょうか?

この問題を解決するときの一般的な方法はありますか?

4

2 に答える 2

5

これはできません。これは、たとえばPCのDRMスキームの基本的な問題です。キーをメモリに保持して抽出できるようにする必要があります。使用していないときはわかりにくくすることができますが、それだけです。そして、あなたのアプリケーションが人気があり、配布されている場合、誰かあなたにおいしいスキームをクラックするでしょう。そのため、一部の企業は高価値のアプリケーションにドングルまたはTPMチップを使用しています。

于 2011-06-27T00:29:39.837 に答える
3

「ホワイトボックス暗号」と呼ばれる、数学理論では非常に複雑なものがあります。この場合、AES アルゴリズムは、暗号化中に秘密を構築するように変更されます。これがどのように達成されるか正確にはわかりませんが、これには初期化された秘密が必要ではありませんが、秘密はアルゴリズムの一部です。攻撃者は、AES 実装が少し「異なる」ことに気付く可能性がありますが、実行中はキーがメモリに表示されることはありません。攻撃者が持つ唯一のチャンスは、ホワイトボックス コード全体をコピーすることですが、これをリバース エンジニアリングするのは非常に困難です。とにかく、AES の使用方法によっては、これで侵入するのに十分な場合があります。

于 2012-04-19T06:56:12.020 に答える