0

AESキーをアプリケーションと一緒に出荷するが、それでも十分に安全にする良い方法はありますか?

キーをハードコーディングする(アプリを逆コンパイルできるため)というアイデアはあまり好きではありませんが、サーバーがダウンしたりネットワークがダウンしたりした場合に備えて、キーをリモートサーバーに保存することは非常に危険です。カットオフ。

Javaがキーストアと呼ばれるメカニズムを提供していることは知っていますが、AFAIKでは、コードを逆コンパイルすると、このキーストアも開くことができますか?

何か案が?

前もって感謝します!

4

6 に答える 6

4

アプリケーションをより適切に説明する必要があります。

ソフトウェアがインストールされているコンピュータの所有者からキーを完全に安全に保とうとしている場合は…できません。そして、あなたは試してはいけません。それは彼らのマシンであり、彼らはその上のすべてを知る権利を持っています。

一部のソフトウェアのすべてのコピーに同じ対称鍵を埋め込むことは、悪い設計のように思われます。対称鍵は新しく生成してから、非対称アルゴリズムを使用して交換する必要があります。このように、公開鍵の整合性のみを保護する必要があります。誰かが鍵を発見したかどうかは関係ありません。

于 2009-12-24T16:50:31.973 に答える
3

アプリケーションがキーを使用する場合、キーはある時点でメモリ内にあります。十分に洗練されたユーザー/攻撃者はそれを見ることができます。必要なのは、適切なタイミングでのデバッガーとブレークポイントだけです。

于 2009-12-24T16:51:46.183 に答える
1

いいえ、秘密暗号化キーを送信することは悪い考えです。

一般的なアプローチは、暗号化キーを構成ファイルに保存することです。このファイルは、インストール/更新時にシステム管理者または展開担当者によって編集されます。キー自体は、安全な(暗号化された)電子メールを介して通信するか、電話で読み取るか、インストール時に(ユーザーごとに)ランダムに生成するだけです。

于 2009-12-24T16:59:51.567 に答える
1

キーを安全に保つためにアプリケーションを信頼することはできません。アプリケーションが本当にあなたのものであるとは信じられません。

キーは好きなだけ安全に転送できます。アプリケーション側にキーを保護するハードウェアがないため、解放されます。16進エディターまたはデバッガーを持っている人なら誰でも、アプリケーションからキーを取り出すことができます。

アプリケーションがキーを「必要とする」場合、各ユーザー(またはライセンス)を単に秘密キーと証明書にするように誘惑されます。

次に、署名チェックとDiffie-Hellman鍵交換を使用して、アプリケーションのライセンスされた各インスタンスに、実行時にネットワークサーバーからの鍵を「与える」ことができます。これにより、ライセンスの1つのインスタンスのみが一度に実行されていることを確認することもできます。

于 2009-12-31T07:34:34.130 に答える
0

キーの使用を計画している目的と「十分に安全」と見なされるものによって異なりますが、一般に、キーを使用するクライアントのマシンでコードを実行しても、クライアントがキーを取得できないようにすることはできないと思います。鍵。

于 2009-12-24T16:49:07.187 に答える
0

いいえ、これらのキーはアプリケーション自体によって生成され、ユーザーによって保存される必要があります。秘密鍵を送信している場合は、製品を出荷する前に秘密鍵のコピーを持っていることで失ったものとほぼ同じくらい、多くを失っています。

ユーザーからの安全を目標にするべきではありません。

于 2009-12-24T16:51:12.427 に答える