プログラムへの署名
IEAK を使って、にデジタル署名を施すことができます。 は、プログラムの発行元を明らかにし、プログラムが改ざんされていないことを確認するものです。 カスタム ブラウザ パッケージやカスタム プログラムにはデジタル署名を施し、ユーザーがカスタム ブラウザをインストールするときに警告を受けないようにする必要があります。
ただし、最初に、ファイルにデジタル署名を施すためのを取得する必要があります。Internet Explorer 6 カスタマイズ ウィザードの実行中に証明書の保存場所を指定すると、パッケージの作成時にファイルが自動的に署名されます。デジタル証明書の取得については、次のセクション「デジタル証明書の取得方法」を参照してください。
インターネット経由でカスタム パッケージを配布する場合は、IEAK を使用して、作成されるカスタム キャビネット (.cab) ファイルにデジタル署名を施してください。イントラネット経由でカスタム パッケージを配布する場合は、カスタム パッケージにデジタル署名を施すか、またはローカル イントラネット ゾーンのセキュリティ レベルを低に設定してください。既定のセキュリティ設定をイントラネットに適用している場合は、署名なしのプログラムやコードをユーザーがダウンロードすることはできません。セキュリティ ゾーンの詳細については、「Internet Explorer のセキュリティ」を参照してください。
デジタル署名が施されるファイルは、次に示すとおりです。
ファイル名 |
機能 |
Branding.cab |
Windows Update セットアップのブランド情報 |
Desktop.cab |
Windows デスクトップのアップデート |
Iecif.cab |
どの Microsoft Internet コンポーネントが Windows Update セットアップの一部としてインストールされたかを識別する |
IE6setup.exe |
Windows Update セットアップ |
Custom<n>.cab |
システムの再起動後にインストールされた。各コンポーネントは、独立した番号付きの .cab ファイルにまとめられる。 |
Internet Explorer 6 カスタマイズ ウィザードがこれらのファイルを作成する方法を示す図解については、「IEAK でのカスタム パッケージの生成」を参照してください。
注
- 署名されていない ActiveX コントロールおよび Java のパッケージは、ユーザーがインストールできないことがあります。
- また、ブラウザ パッケージに入れるカスタム プログラム (.exe または .cab フォーマット) にも、すべて署名しなければなりません。
- オンデマンドのインストール機能を使用してインターネット上のユーザーにパッケージを配布する場合は、.cab ファイルに署名を施し、.cab ファイルを格納しているサーバーが信頼できるサーバーと見なされるようにセキュリティ設定を指定する必要があります。ただし、イントラネット サイトの場合に限り、セキュリティ レベルを低に設定することもできます。この機能の詳細については、「オンデマンドのインストールの管理」を参照してください。
イントラネットのセキュリティ レベルが中以上に設定されている場合は、ネットワーク サーバーを信頼できるサーバーとして指定する必要があります。それには、次の操作を行います。
- ウィザードの [セキュリティとプライバシーの設定] ページで、[現行のセキュリティ ゾーンの設定をインポートする] をクリックし、[設定の変更] をクリックします。
- [イントラネット] ゾーンを選択し、[サイト] をクリックします。
- [すべてのネットワーク パス (UNC) を含める] チェック ボックスをオフにし、[OK] をクリックします。
- [信頼済みサイト] ゾーンを選択し、[サイト] をクリックし、ダウンロード サーバーのパスを入力し、[追加] をクリックします。
- 信頼できるサーバーとして指定するダウンロード サーバーごとに、以上の手順を繰り返します。
デジタル証明書は、 技術の一部であり、プログラムの発行元を識別し、プログラムが改ざんされていないことを確認するものです。証明書は、または個別管理の認証サーバーから取得できます。証明書には、"商業用" または "個人用" があります。
Authenticode およびセキュリティの詳細については、「Microsoft Security Advisor Web サイト (http://www.microsoft.com/security/)」を参照してください。
証明書を取得したら、コードに署名する必要があります。コードの署名用のツールは、「MSDN Online Web Workshop」に用意されています。
Microsoft Internet Client SDK には、そのほかの追加リソースがあります。ソフトウェアの発行元が作成し、と解読にペアで使用される公開キーと秘密キーを知っておくことも必要です。これらのキーは、証明機関 (CA) が証明書を要求した時点で生成されます。これらは使用するコンピュータ上に生成され、秘密キーが CA やその他の団体に送られることはありません。
証明書の期限が切れた場合は、別のセキュリティ基準が必要になります。たとえば、大学がすべての学生をデジタル ID で認証する場合、学生の卒業時に ID の期限が切れるように設定することもできます。コードに施した署名の証明書の期限が切れていると、そのコードは無効です。証明書の期限が切れた場合、ソフトウェアの発行元はコードに新しい署名を施して、そのコードの新しいバージョンを発行する必要があります。
ソフトウェアの発行元は、コードに署名を施した時点での証明書が有効であることを示すために、タイム スタンプを使用してコードに署名することもできます。この方法で署名したコードは、証明書の期限が切れた後でも有効なものとして扱われます。
企業内管理者の方は、や規制を事前に構成したり、証明機関をカスタマイズしたりできます。また、を設定して、セキュリティ設定の変更をユーザーに許可するかどうかを制御することもできます。個々の設定については、「Internet Explorer のセキュリティ オプション」を参照してください。
危険性のあるコンテンツをユーザーが表示しようとした場合は、警告をエンド ユーザーに表示することができます。また、署名のない ActiveX コントロールや Java パッケージのダウンロードをエンド ユーザーに禁止することもできます。
コードに対する署名は、簡単であり、短時間で行えます。 コードに署名を施すのに、コードへの署名の技術的な詳細を知っておく必要はありません。
コードを作成してテストしたら、ソフトウェアの発行元はコード ファイルに署名を施します。発行元では、Signcode.exe などの署名プログラムを使用してコードをハッシュし、ファイルの "要約" を作成します。このプログラムは、オペレーティング システム レイヤを通じて、秘密キーで要約を暗号化し、ハッシュ アルゴリズムおよび CA による証明書の名前 (ソフトウェア発行元の名前、公開キーなどを含む) と要約を組み合わせて、署名ブロックと呼ばれる構造に格納します。次にこのプログラムは、署名ブロックをコード ファイルに埋め込み、これにより、ファイルをインターネット経由で配布する準備が整います。.cab ファイルに署名した場合は、そのキャビネット ファイルにも署名ブロックが含まれることに注意してください。
ユーザーがインターネットからファイルをダウンロードするときには、ダウンロード処理を行うアプリケーションが認証関数を呼び出します。この関数が呼び出されると、オペレーティング システムが署名ブロックを取り出して、証明書を検証した CA を特定し、公開キーを使用して要約を解読します。次に、オペレーティング システムは、署名ブロックに示されているハッシュ アルゴリズムを使用して、もう 1 つの要約を作成します。署名以後にコードが改変されていなければ、新しい要約と以前の要約が一致するはずです。2 つの要約が一致しない場合は、コードが改変されたか、公開キーと秘密キーが対応していないことになります。どちらの場合も、コードが疑わしいものと見なされ、ユーザーに警告が表示されます。
関連項目