ないかもしれません鍵のセキュリティ - 鍵が安全であることを確認する方法は?
byte[] kek = new byte[32];
secureRandom.nextBytes(kek);
byte[] kekHash = SHA512.hash(kek);
...メモリ内にあり、ファイルまたはデータベースに書き込まれていない鍵暗号化鍵があると仮定するとし、キー暗号化キーが短命であると仮定し、データ暗号化キーがたり一過性である。
どのように保護しますかkek
?
kek
が仮想メモリに書き込まれないようにするにはどうすればよいですか?
kek
が他のアプリケーション(たとえばCheatEngine)で読み取られないようにするにはどうすればよいですか?
kek
がアプリケーションによって生成され、kek
およびkekHash
が他のアプリケーションによって操作されて敵の鍵を使用するようにするにはどうすればよいですか?
「ソフトウェアHSM」について聞いたことがあります。どのようなテクニックを使っているのですか?
こんにちは、私はあなたが与えた答えを感謝します。私はHSMの経験がありますが、現時点ではソフトウェアソリューションを探していますが、Key Encryption Keyを保護するための念頭に置いている方法があります。さらに、難読化の提案を感謝しますが、ProGuardをJavaや他の市販の難読化ツールで使用することはかなり標準的だと言わざるを得ない。さらに重要なことに、Kirchoffの原則によれば、コード/システムの不明瞭さ/秘密によるキーの価値とセキュリティは受け入れられないことを除いて、敵がシステムの完全な知識を持っていると仮定しています。 – user3635998