現在、クライアントが.NETにあり、サーバーがPHPベースのSOAPサーバーであるクライアントサーバー構造を開発しようとしています。
今、私は Rijndael 256 を使用して非対称鍵システムを実装しようとしており、少しいじっています。公開鍵と秘密鍵のペアの基本的な概念は理解していますが (このページとウィキペディアに従って)、クライアント側の環境で安全であることを理解できません。
つまり、ソフトウェアはクライアント マシンで実行されるため、ユーザーはソフトウェアを改ざんできます。クライアントの機能のほとんどは、レポートと詳細を表示するためにサーバーから受信した応答を中心に展開します。それに加えて、クライアント ソフトウェアはサーバーからのコマンドを待機する場合があり、サーバーはクライアントにポップアップを表示するか、クライアント プログラムのシャットダウンを実行するように指示します (ライセンスを処理するため)。サーバーがクラッシュまたはハングするか、クライアントが切断される可能性があることに気付きました。これらのほとんどはすべて熟考され、コードで処理されています。しかし、私が心配しているのは、誰かがクライアントを改ざんして、サーバーのコマンドを完全に無視することです。
顧客は、IDA、ILDASM、de4dot、その他のさまざまなデバッガーや逆コンパイラーなど、さまざまな「おもちゃ」にアクセスできます。経験豊富なクラッカーなら、公開鍵と秘密鍵の組み合わせを短時間で理解できると確信しています。期間。.NET コード自体が非常に安全でないことは知っていますが、.NET Reactor や Dotfuscator などのツールを使用する以外に、それに対して何をすべきかわかりません。
私の質問:クラッカーを大幅に遅らせるために、または秘密鍵をどのように保護するために、どのような種類のプラクティス、コード、アイデア、または何かを使用できますか.
ヒント、ヒント、提案、またはサンプルは非常に高く評価されています!