1

現在、クライアントが.NETにあり、サーバーがPHPベースのSOAPサーバーであるクライアントサーバー構造を開発しようとしています。

今、私は Rijndael 256 を使用して非対称鍵システムを実装しようとしており、少しいじっています。公開鍵と秘密鍵のペアの基本的な概念は理解していますが (このページとウィキペディアに従って)、クライアント側の環境で安全であることを理解できません。

つまり、ソフトウェアはクライアント マシンで実行されるため、ユーザーはソフトウェアを改ざんできます。クライアントの機能のほとんどは、レポートと詳細を表示するためにサーバーから受信した応答を中心に展開します。それに加えて、クライアント ソフトウェアはサーバーからのコマンドを待機する場合があり、サーバーはクライアントにポップアップを表示するか、クライアント プログラムのシャットダウンを実行するように指示します (ライセンスを処理するため)。サーバーがクラッシュまたはハングするか、クライアントが切断される可能性があることに気付きました。これらのほとんどはすべて熟考され、コードで処理されています。しかし、私が心配しているのは、誰かがクライアントを改ざんして、サーバーのコマンドを完全に無視することです。

顧客は、IDA、ILDASM、de4dot、その他のさまざまなデバッガーや逆コンパイラーなど、さまざまな「おもちゃ」にアクセスできます。経験豊富なクラッカーなら、公開鍵と秘密鍵の組み合わせを短時間で理解できると確信しています。期間。.NET コード自体が非常に安全でないことは知っていますが、.NET Reactor や Dotfuscator などのツールを使用する以外に、それに対して何をすべきかわかりません。

私の質問:クラッカーを大幅に遅らせるために、または秘密鍵をどのように保護するために、どのような種類のプラクティス、コード、アイデア、または何かを使用できますか.

ヒント、ヒント、提案、またはサンプルは非常に高く評価されています!

4

1 に答える 1

1

@Corak が述べたように、公開鍵と秘密鍵のペアは通常、秘密鍵を非公開にすることで機能します。クライアント側では、接続するたびに新しい公開鍵と秘密鍵のペアを生成できます。非表示にする最も簡単なデータは、そもそも保存されていないデータです。

あなたの質問のもう 1 つの部分は、「クラッカーを止める方法」です。エンド ユーザーがマシンを完全に制御できるため、これは不可能です。秘密鍵をメモリ内で難読化する、スワップ ファイルから除外するなどのトリックを実行できますが、適切なツールを備え、プログラムをクラックしたいクラッカーなら誰でも実行できます。

そうでもなければ!

主要なハードウェア ベンダーと提携できます。すべてのハードウェアに超安全なチップをインストールしてもらいます。このチップは、ユーザーの管理下ではなく、あなたの管理下に置かれます。有効にすると、このチップはすべての I/O とメモリを監視し、ユーザーが許可したものだけを許可します。次に、IDA のようなプログラムを単純に禁止して、クラッカーを無力にすることができます。副作用として、ユーザーのコンピューターを完全に制御することもでき、その力を好きなように使用できます。誰もが勝つ!

最後に 1 つ: これを実装することに決めた場合は、マーケティング部門にかなりの工夫を加えることをお勧めします。おそらく、「プライバシー」や「所有権」について愚痴をこぼし、そのようながらくたがたくさんあるでしょう。したがって、このテクノロジには適切な名前が必要です。その名前は、人々が欲しがるようものでなければなりません。

「信頼できるコンピューティング」と呼ぶべきだと思います ( 「信頼できるコンピューティング」は既に使用されているため)。あるいは「安全なコンピューティング」かもしれません。

于 2013-06-11T12:18:58.313 に答える