質問

.snk ファイルとは何ですか?それが略していることは知っています 厳密に名前が付けられたキー, 、しかし、それが何であるか、そしてそれがどのように機能するかについてのすべての説明は私の頭を越えます。

厳密に名前が付けられたキーがどのように使用され、どのように機能するかについての簡単な説明はありますか?

役に立ちましたか?

解決

.snk ファイルは、 .NET アセンブリへの厳密な名前. 。このような強力な名前は次のように構成されています

シンプルなテキスト名、バージョン番号、および文化情報(提供されている場合) - プラス公開キーとデジタル署名。

SNK には、一意のキー ペア (アセンブリに一意の厳密な名前を付けるために使用できる秘密キーと公開キー) が含まれています。アセンブリに厳密な名前が付けられている場合、アセンブリの内容から「ハッシュ」が構築され、そのハッシュは秘密キーで暗号化されます。次に、この署名付きハッシュは、.snk からの公開キーとともにアセンブリに配置されます。

後で、厳密に名前が付けられたアセンブリの整合性を検証する必要がある場合、 彼らは アセンブリの内容のハッシュを構築し、アセンブリの公開キーを使用してアセンブリに付属のハッシュを復号します。2 つのハッシュが一致する場合、アセンブリの検証は合格します。

この方法でアセンブリを検証できることは、アプリケーション全体を破壊する悪意のあるアセンブリと誰も交換しないようにすることが重要です。このため、厳密な名前の付いていないアセンブリは、厳密な名前のアセンブリと同じようには信頼されず、GAC に配置できません。また、信頼の連鎖があります。厳密な名前が付けられていないアセンブリを参照する、厳密な名前が付けられたアセンブリを生成することはできません。

記事 "強力なネーミングの秘密」。これらの概念をより詳細に説明する優れた仕事をしています。写真付き。

他のヒント

.Net の世界では、 SNK ファイルは、コンパイルされたバイナリに署名するために使用されます。これにより、次のようなことが可能になります。

  1. アセンブリを GAC に登録できます (グローバルアセンブリキャッシュ). 。基本的に、複数のコピーを維持することなく、同じマシン上のさまざまな場所から参照できるようになります。)
  2. 同じく署名されている他のバイナリ内から自分のバイナリを使用することもできます (これは、署名付きアセンブリに関する奇妙なウイルス性の動作です)。
  3. アセンブリを (簡単に) 変更することはできません サードパーティ SNK ファイルにアクセスできないユーザーにとって、少なくとも少量のセキュリティが提供されます。

やり方がよく分からない BizTalk サーバー は動作するので、その環境内でそれらがどのような特定の目的に役立つのかについてはあまり明らかにできないと思います。

これが少しでも役に立てば幸いです。

.snk ファイルは、グローバル アセンブリ キャッシュ (GAC) にアセンブリを追加できるようにするために、アセンブリに署名するために使用されます。

.snk ファイルには、キーのパブリック トークンとプライベート トークンが含まれています。そのキーを使用してデータ (またはバイナリ) に署名する場合、データに対してチェックサムが計算され、プライベート トークンで暗号化されます。次に、暗号化されたチェックサムがデータに追加されます。誰でも、キーの公開トークンを使用してチェックサムを復号化し、計算したチェックサムと比較して、署名されたデータが改ざんされていないことを確認できます。

公開キー暗号化について詳しくは、次の Web サイトを参照してください。 http://en.wikipedia.org/wiki/Public-key_cryptography.

.snk ファイルは、フレームワーク ユーティリティ セットの sn ユーティリティによって生成された「キー」の永続化されたバージョンです。次に、このファイルを使用してアセンブリに「デジタル署名」します。2分割キーです。秘密鍵と公開鍵の組み合わせ。キーの公開部分は公開されます。誰もが知っています。プライベートな部分はコンポーネント/アプリの開発者だけが知っており、そのように保たれるように意図されています。

アセンブリに署名すると、アセンブリの秘密キーとハッシュ値を使用して、アセンブリに埋め込まれるデジタル署名が作成されます。その後、アセンブリをロードする人は検証ステップを実行します。公開キーは、アセンブリが本当にユーザーからのものであるかどうかを検証するために使用されます。このために必要なのは公開キーだけです (これはアセンブリ マニフェストのトークン化された形式にも埋め込まれています)。アセンブリが改ざんされている場合、ハッシュ値は異なり、アセンブリのロードは中止されます。これはセキュリティメカニズムです。

.snk ファイルは、他の人が自分のアセンブリを自分のアセンブリに置き換えることができないようにするために使用されます。暗号化/復号化キーのペアを提供します。

.snk ファイルを使用してアセンブリに署名すると、ハッシュコード値がアセンブリ ファイルから計算され、秘密キーを使用して暗号化されます。この暗号化された「ダイジェスト」は、.snk ファイルの公開キーとともにアセンブリに付加されます。

そうすれば、誰かがあなたのアセンブリを受け取ったときに、そのハッシュコード値を計算することもできます。彼らは公開キーを使用して計算したものを復号し、計算された値を比較します。アセンブリが少しでも変更されていた場合、それらの値は異なり、アセンブリのユーザーは、所有しているアセンブリが提供したアセンブリではないことがわかります。

BizTalk Server のコンテキストでは、BizTalk ソリューションで使用されるカスタム アセンブリを構築する人は、BizTalk サーバーがアセンブリを GAC に読み込んで使用できるように、.snk ファイルを使用してアセンブリに署名する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top