証拠
更新 : 2007 年 11 月
証拠は、共通言語ランタイムがセキュリティ ポリシーに基づいてアクセス許可を決定するときに使用する情報です。証拠は、そのコードがある特定の特性を持っていることを共通言語ランタイムに提示します。一般的な形式の証拠にはデジタル署名とコードの発生元である場所が含まれますが、アプリケーションにとって重要なその他の情報を表すように証拠をカスタマイズすることもできます。アセンブリとアプリケーション ドメインは、いずれも証拠に基づいてアクセス許可を与えられます。
ホストがランタイムに対して提示できる一般的な種類の証拠を次の表に示します。
証拠 |
説明 |
---|---|
アプリケーション ディレクトリ |
アプリケーションのインストール ディレクトリ。 |
ハッシュ |
SHA1 などの暗号ハッシュ。 |
発行元 |
ソフトウェア発行元の署名。つまり、コードの Authenticode 署名者。 |
サイト |
"https://www.microsoft.com/japan" など、コードの発生元のサイト。 |
厳密な名前 |
アセンブリの暗号化された厳密な名前。 |
URL |
コードの発生元の URL。 |
ゾーン |
Internet ゾーンなど、コードの発生元のゾーン。 |
上の表に示した種類の証拠以外にも、アプリケーション定義の証拠やシステム定義の証拠をランタイムに提供できます。信頼されているアプリケーション ドメイン ホストは、アセンブリまたはアプリケーション ドメインに関する証拠をランタイムに提供できます。ランタイムは、この情報を使用して、エンタープライズ、マシン、ユーザーの各ポリシーを (さらに、信頼されているアプリケーション ドメイン ホストによってアセンブリのアプリケーション ドメイン ポリシーが設定されている場合は、そのポリシーも) 評価し、アセンブリまたはアプリケーション ドメインに与えるアクセス許可セットを返します。信頼されているアプリケーション ドメイン ホストが証拠を提供するためのアクセス許可を持っていない場合、アセンブリまたはアプリケーション ドメインには、そのホストに与えられているアクセス許可が与えられます。
ランタイムは、アセンブリに関する証拠を、信頼されているアプリケーション ドメイン ホストから受け取るか、またはローダーから直接受け取ります。コードの発生元などの一部の証拠は、ホストしか知らない情報であるため、通常は信頼されているアプリケーション ドメイン ホストが提供します。信頼されているアプリケーション ドメイン ホストは、ローダーから提供された証拠をオーバーライドし、独自の証拠を提供できます。
アセンブリのデジタル署名など、その他の証拠はコードそのものに固有であり、ローダーまたは信頼されているアプリケーション ドメイン ホストが提供できます。通常、ランタイムはコードの読み込み時に各アセンブリのデジタル署名を検証します。デジタル署名が有効な場合、信頼されているアプリケーション ドメイン ホストは証拠としてデジタル署名情報をランタイムのポリシー機構に渡します。また、アセンブリまたは信頼されているアプリケーション ドメイン ホストは、アセンブリの一部に含まれるリソースとしてカスタムの証拠を提供することもできます。管理者および開発者は、カスタムの証拠を定義し、その証拠を認識および使用できるようにセキュリティ ポリシーを拡張できます。
ランタイムのポリシー機構は、信頼されているアプリケーション ドメイン ホストおよびアセンブリの両方からの証拠を使用して、コードがコード グループのメンバかどうかを判断します。