強い名前(.snkファイルに格納された鍵ペア)で署名すると、protect against forging assembliesが意味されます。強力な名前で署名すると、一連のアセンブリを偽造することからどのように保護できますか?
例:厳密な名前で署名されたアセンブリを出荷し、他の開発者が自分のアセンブリを使用するため、アセンブリに自分のキーペアの公開鍵を示す私のリファレンスが含まれるようになりました。一部のユーザーは、その開発者アセンブリと私のアセンブリをインストールし、その開発者のコードをうまく使用します。他の誰かが私のバージョンのように見えるアセンブリを作成しようとしていると、私は自分の鍵ペアを制御し、同じ鍵ペアで署名されていない偽造アセンブリがロードされないということは、 。さて、クール。
しかし、悪意のある人物が私のアセンブリと他の開発者の従属アセンブリの両方を偽造し、それらの両方を "出荷"するのを防ぐにはどうすればよいですか?彼らは私のアセンブリとその開発者のアセンブリをつかみ、両方を改ざんして、私のアセンブリの偽造されたバージョンにどんなキーでも署名し、従属アセンブリの偽造バージョンに参照を追加して署名し、両方とも出荷します。私は悪意を持って2つのアセンブリを「出荷」することは、1つのアセンブリを「出荷」することよりはるかに難しいことではないことを意味します。
強力な名前で署名すると、複数のアセンブリを偽造することからどのように保護できますか?
あまりにも、そのアセンブリの名前が強くなりました。その文字列を引っ張っておけば、EXEで終わるでしょう。攻撃者がそれを置き換えることができれば、強力な名前を使用する際に残されているポイントはありません。 –
@Hans Passant:あなたが正しいと思います。これを回答として追加してください。 – sharptooth