ライセンスなどのアプリケーションのセキュリティを検証するために使用するアセンブリがあります。 アプリケーションが検証メソッドを呼び出すたびに、これが正しいアセンブリから読み込まれるようにするにはどうすればよいですか? 私は、誰かがこれらの検証をバイパスするための偽のアセンブリを作成しないようにしたいと思います。アプリケーションが正しいアセンブリをロードすることを知るにはどうすればよいですか?
強い名前付きキーを取得するために.snk
を追加すると、これで問題は解決しますか?
など。私のアプリケーションでMySecurity.dll
を使用している場合、誰かが同じ名前のアセンブリを作成してbin
フォルダに上書きすると、これは正しいアセンブリではないことが私のアプリケーションにわかりますか?
私たちのソリューションでは、公的証明書とライセンスファイル(インターネットが接続されている場合)を使用してローカルの2種類の検証を使用しているため心配です。しかし、これらのどれも簡単にバイパスすることができます。あなたは、ハード(多分タイマーで)
をあなたのコード内でそのDLLファイルのハッシュ文字列をコード化し、実行時にそれを確認することができます
この場合、厳密な命名メカニズムが存在します。 – Gusdor
@Gusdor Noではありません。エンドユーザーが[コマンドラインで無効にする]ことができなかった場合(https://blogs.msdn.microsoft.com/securitytools/2009/12/30/how-to-turn-off-strong-名前の検証/)。複数のベンダのアセンブリの名前の衝突を防ぐために、厳密な名前が付けられています。 –
@ScottChamberlain Integrityは、ドキュメント内で具体的に呼び出されています。https://docs.microsoft.com/en-us/dotnet/framework/app-domains/create-and-use-strong-named-assemblies – Gusdor