1

次のことを行う必要があるシステムについて、どのような推奨事項を提供できますか?

プラグインをロード (そして最終的に実行) しますが、これらのプラグインをロードするには 2 つの方法があります。

  • 許可されたプラグインのみを読み込む (ソフトウェアの所有者によって開発された)
  • すべてのプラグインをロード

そして、承認されたプラグインが本物 (変更されていない) であることを合理的に保証する必要があります。ただし、すべてのプラグインは個別のアセンブリにある必要があります。プラグインに厳密な名前のアセンブリを使用し、公開鍵をローダー アプリケーションに保存することを検討してきましたが、ローダー アプリケーション内で公開鍵を変更するのは簡単すぎるように思えます (ユーザーがそうしたい場合)。ローダー アプリケーションの難読化。もっと安全なアイデアはありますか?

4

4 に答える 4

0

基本的に、自分のコードを他人のマシンに置く場合、絶対的なセキュリティの保証はありません。

あらゆる種類のセキュリティ トリックを見ることができますが、最終的にコードは彼らのマシン上にあるため、制御できません。

エンド ユーザーが未承認のプラグインをロードした場合、どれだけの損失が発生するでしょうか?

于 2008-08-18T09:14:30.973 に答える
0

エンド ユーザーが未承認のプラグインをロードした場合、どれだけの損失が発生するでしょうか?

確かに、これは頻繁に発生するわけではありませんが、発生した場合、多くの損失が発生するため、100% 安全なものを作成できないことは理解していますが、人々がそれを行うのを遅らせるのに十分な障害にしたいと考えています.

完全な厳密な名前を使用した単純な動的読み込みを使用する場合の厄介な点は、プラグインが署名されている場合でも、ローダー アプリ内で単純な文字列リテラルを変更するだけで、他のアセンブリを読み込むことができることです。

于 2008-08-18T09:20:43.910 に答える
0

質問を広げることができます:「.net アセンブリをリバース エンジニアリングから保護するにはどうすればよいですか?」

答えは - できません。まだ見ていない人のために、「リフレクター」を調べて、単純なexeで実行してください。

(ちなみに、暗号化/復号化ハードウェアが送信されていない限り、これは常にあなたの手の届かないコードに対する答えです)、

難読化は、リバース エンジニアリングを開発よりも難しく (より多くの費用がかかる) ようにしようとしますが、一部の種類のアルゴリズムでは成功します。

于 2008-08-18T10:48:55.947 に答える
0

アセンブリに署名します。

厳密な名前の署名または厳密な名前付けは、ソフトウェア コンポーネントに、他の誰かがなりすますことのできないグローバルに一意の ID を与えます。厳密な名前は、コンポーネントの依存関係と構成ステートメントが正確に正しいコンポーネントとコンポーネントのバージョンにマップされることを保証するために使用されます。

http://msdn.microsoft.com/en-us/library/h4fa028b(VS.80).aspx

于 2009-04-25T12:06:59.947 に答える