保存AES鍵[複製]
-
21-09-2019 - |
質問
この質問に答えはこちら
- どうか確で暗号化キーをjava? 4回答
いい方法はありませんか船AES鍵のアプリケーションですが、もう安全ださい。
いもの好きという考えにおいハード-コーディングのキーとしてできるアプリでデコンパイルされたが、その他の代替、省してリモートサーバーか危ない場合はサーバがダウンしたり、ネットワークカット。
知っているJavaの提供メカニズムをキー-storeがAFAIKの場合、コードをデコンパイルされたこのキーストアを開きでも見ることができますか?
ずっと面白いアイデアないか?
感謝。
解決
あなたはあなたの鍵の安全を保つために、あなたのアプリケーションを信頼することはできません。あなたは、アプリケーションが本当にあなたのものであることを信頼することはできません。
あなたは安全にすべてのあなたが好きなキーを輸送することができる、それはあなたが失う手段、バイナリエディタやデバッガを持つ人があなたのアプリケーションのうちの鍵を得ることができることをアプリケーション側であなたの鍵を保護する一切のハードウェアが存在しないという事実があります。
アプリケーション「ニーズ」キーは、私は、各ユーザ(またはライセンス)を持っているように誘惑されるだろう場合は、は単に秘密鍵と証明書になります。
次に、あなたのアプリケーションのそれぞれのライセンスインスタンス実行時に、ネットワークサーバーからキー「ギブ」に署名チェックとのDiffie-Hellman鍵交換を使用することができます。また、これはあなたが必ずライセンスのインスタンスが1つだけ一度に実行されている作る聞かせます。
他のヒント
あなたはより良いアプリケーションを記述する必要があると思います。
あなたがソフトウェアがインストールされているコンピュータの所有者から絶対に安全キーを維持しようとしている場合...あなたはできません。そして、あなたは試すべきではありません。それは自分のマシンだと、彼らはそれのすべてを知る権利を持っています。
いくつかのソフトウェアのすべてのコピーに埋め込まれた同じ対称鍵を持つことは悪いデザインのように思えます。対称鍵は、その後、いくつかの非対称アルゴリズムを使用して交換、新鮮な生成されなければなりません。この方法では、公開鍵のみの完全性を保護する必要があります。それ問題ではない誰かが鍵を発見した場合。
、キーはある時点でメモリになります。洗練された十分なユーザー/攻撃者はそれを見ることができます。右現時点では、デバッガ、ブレークポイントは、彼らが必要とするすべてである。
いいえ、秘密暗号鍵を送信することは悪い考えです。
典型的なアプローチは、システム管理者またはデプロイメント人で/更新インストール時に編集されたコンフィギュレーションファイルに暗号化キーを格納することです。キー自体はインストール時に安全な(暗号化された)電子メールを介して通信、または単に電話で読み出し、または単純に(ユーザごとに)ランダムに生成することができる。
それはあなたがしている計画のためのキーを使用するかを依存しており、どのような「安全は十分」として数えますが、一般的に、私はあなたが鍵を使用するクライアントのマシン上でコードを実行して、まだクライアントを防ぐことができるとは思いませんキーを取得してから。
いいえ、これらのキーは、アプリケーション自体によって生成され、ユーザによって格納されるべきです。あなたは秘密鍵を送信している場合、あなたはあなたが製品を出荷する前に、秘密鍵のコピーを持っていることによって失ってしまった、ほぼ同じくらいとして、多くを失ってしまいました。
ユーザーからの安全がゴールではありません。