スプーフィングから .net アセンブリを保護する方法を検索したところ、この投稿が非常に役立つことがわかりました。しかし、投稿には非常に明確な矛盾があります。ある時点で、ユーザーが共謀している場合、厳密な名前は役に立たないと述べられています。
しかし、ユーザーがスプーフィングに加担している場合 (チートしようとしている場合)、コード署名はスピード バンプにすぎず、実際の保護は提供されません。確かに、Strong Names は PunkBuster に匹敵する保護を提供しません。
そして数行後、筆者は完全に対照的なことを述べています。
次に、署名されたアセンブリへの参照を追加するときに、誰かが同じアセンブリ名 (完全修飾名ではなく、バージョン、ハッシュ、および公開キーを含まない名前のみ) と同じ型名で別のアセンブリを配置しようとすると、型を読み込もうとすると CLR フィルが失敗し、型が見つからなかったことを示します。型は、名前空間と型名と共に、完全修飾アセンブリ名を使用して解決されます。
そう:
1) これは矛盾ですか、それとも私は何かを失っていますか? 最初の段落の筆者は、厳密な名前の検証が無効になり、再び有効にならない状況について話しているのでしょうか?
さらに、驚くべきことに、次のように述べられています。
参照したアセンブリの厳密な名前を攻撃者が変更できる場合、攻撃者はアセンブリと実行に関与する他のすべてのアセンブリを同じように簡単に変更できます。
2) デプロイされたアセンブリ (DLL など) の厳密な名前を変更するにはどうすればよいですか?