27

デジタル署名は、強力な名前付きアセンブリと何の関係がありますか。強く名前が付けられたアセンブリには、公開鍵とデジタル署名が付いていることを読みました。

ウィキペディアの記事「アセンブリ(CLI)」から:

「アセンブリに署名するには、アセンブリの重要な部分のハッシュを取得し、秘密鍵を使用してハッシュを暗号化する必要があります。署名されたハッシュは、公開鍵とともにアセンブリに保存されます。公開鍵は、署名されたハッシュを復号化します。CLRの場合厳密に名前が付けられたアセンブリをロードすると、アセンブリからハッシュが生成され、復号化されたハッシュと比較されます。比較が成功した場合は、ファイル内の公開鍵(したがって公開鍵トークン)が秘密鍵に関連付けられていることを意味します。アセンブリに署名するために使用されます。これは、アセンブリの公開鍵がアセンブリ発行者の公開鍵であるため、なりすまし攻撃が阻止されることを意味します。」

上記の情報は正確ですか?デジタル署名への参照はありません。アセンブリの署名方法、署名の検証方法、およびハッキングの可能性の排除方法を説明するMSDNページが見つかりませんでした。これらについてもっと知りたいです。

4

3 に答える 3

52

強力な名前付けとデジタル署名はどちらも、公開鍵暗号を使用してアセンブリの発信元に関する証拠を提供するため、セキュリティポリシーを適用して、アセンブリに付与されるアクセス許可を決定できます。

それらは、技術的な詳細ではなく、解決しようとしている問題が異なります。

厳密な名前の目的は、名前でアセンブリをロードするときに、ロードしていると思われるアセンブリを正確にロードしていることを確認することだけです。これが、強力な名前の唯一の設計上の目的です。「FooCorpから提供されたFrobberバージョン4をロードしたい」とあなたは言います。強力な名前のギアは、Dr。Evil Enterprisesから提供されたFrobberバージョン4と呼ばれる別のアセンブリではなく、実際にそのDLLを正確にロードすることを保証します。

これを実現するために必要なのは、FooCorpの秘密鍵に関連付けられた公開鍵トークンを知っていることだけです。公開鍵トークンが完全にあなたのビジネスであることをどのようにして知るようになるか。その情報を安全に入手できるように設計されたインフラストラクチャはありません。どういうわけか、あなたはそれが何であるかを知っていることが期待されています。

出版社の証明書からのデジタル署名の目的は、身元と信頼の検証可能なチェーンを確立することです。信頼の鎖は、出所が不明または不確実なコードの塊から「信頼されたルート」(オペレーティングシステムを信頼するように構成したエンティティ)まで続きます。いくつかのコードをダウンロードすると、そのコードにはFooCorpからの証明書が付いたデジタル署名があります。証明書を調べると、「このプログラムはFooCorpからのものです。この証明書の正確性は、VeriSignによって保証されています」と表示されます。VeriSignは信頼できるルーツの1つであるため、このコードが実際にFooCorpからのものであると確信できます。

デジタル署名によって解決される問題がどれほど複雑であるかに注目してください。「このコードの塊がこの名前に関連付けられているかどうか」を単純に判断しようとしているのではありません。代わりに、このコードがどこから来たのか、責任があるとされる会社の存在を誰が保証するのかを判断しようとしています。その会社を信頼する必要がありますか?

強力な名前とデジタル署名の違いは、暗号ベースのセキュリティの難しさを強調しています。難しい問題は暗号化ではありません。それはただの数学です。難しい問題は、キーに関する情報の配布を安全に管理し、それらを正しいエンティティに関連付けることです。強力な名前は、非常に小さいが重要な問題を解決しようとするため、重要な管理上の問題はありません。または、むしろ、キー管理の問題をユーザーであるあなたに押し付けます。デジタル署名とは、信頼とIDのはるかに複雑な問題を解決するために、証明書を介した重要な情報の安全な配布を自動化することです。

それは明らかですか?

(すばらしい質問です。これは9月3日に私のブログに掲載されます。)

于 2009-08-26T16:45:01.230 に答える
3

この前の関連する質問で読むことができるように、強力な名前付きアセンブリを改ざんすることは、期待できるほど簡単ではありません。

于 2009-08-26T13:29:48.540 に答える
2

デジタル署名は、本質的に改ざんを防ぐビットです。アセンブリが署名されると、への変更は署名を無効にし、clrはそれをロードしないことを認識します。

ウィキペディアの記事を読んでください。デジタル署名は、デジタルドキュメントの改ざんを防ぎます。アセンブリだけではありません。それは私が今までにできたよりずっとよくそれを説明します。

于 2009-08-26T13:24:23.213 に答える