バナー

プログラムへの署名

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 でのカスタム パッケージの生成」を参照してください。

ネットワーク サーバーを信頼できるサーバーとして指定するには

イントラネットのセキュリティ レベルが中以上に設定されている場合は、ネットワーク サーバーを信頼できるサーバーとして指定する必要があります。それには、次の操作を行います。

  1. ウィザードの [セキュリティとプライバシーの設定] ページで、[現行のセキュリティ ゾーンの設定をインポートする] をクリックし、[設定の変更] をクリックします。
  2. [イントラネット] ゾーンを選択し、[サイト] をクリックします。
  3. [すべてのネットワーク パス (UNC) を含める] チェック ボックスをオフにし、[OK] をクリックします。
  4. [信頼済みサイト] ゾーンを選択し、[サイト] をクリックし、ダウンロード サーバーのパスを入力し、[追加] をクリックします。
  5. 信頼できるサーバーとして指定するダウンロード サーバーごとに、以上の手順を繰り返します。

デジタル証明書の取得方法

デジタル証明書は、Authenticode 技術の一部であり、プログラムの発行元を識別し、プログラムが改ざんされていないことを確認するものです。証明書は、証明機関または個別管理の認証サーバーから取得できます。証明書には、"商業用" または "個人用" があります。

Authenticode およびセキュリティの詳細については、「Microsoft Security Advisor Web サイト (http://www.microsoft.com/security/)」を参照してください。

キャビネット ファイルまたはカスタム プログラムに署名を施す方法

証明書を取得したら、コードに署名する必要があります。コードの署名用のツールは、「MSDN Online Web Workshop」に用意されています。

Microsoft Internet Client SDK には、そのほかの追加リソースがあります。ソフトウェアの発行元が作成し、暗号化と解読にペアで使用される公開キーと秘密キーを知っておくことも必要です。これらのキーは、証明機関 (CA) が証明書を要求した時点で生成されます。これらは使用するコンピュータ上に生成され、秘密キーが CA やその他の団体に送られることはありません。

証明書の期限が切れた場合の処理

証明書の期限が切れた場合は、別のセキュリティ基準が必要になります。たとえば、大学がすべての学生をデジタル ID で認証する場合、学生の卒業時に ID の期限が切れるように設定することもできます。コードに施した署名の証明書の期限が切れていると、そのコードは無効です。証明書の期限が切れた場合、ソフトウェアの発行元はコードに新しい署名を施して、そのコードの新しいバージョンを発行する必要があります。

ソフトウェアの発行元は、コードに署名を施した時点での証明書が有効であることを示すために、タイム スタンプを使用してコードに署名することもできます。この方法で署名したコードは、証明書の期限が切れた後でも有効なものとして扱われます。

Authenticode を使用してユーザーに対する表示内容を制御する方法

企業内管理者の方は、セキュリティ ゾーンや規制を事前に構成したり、証明機関をカスタマイズしたりできます。また、システム ポリシーと制限を設定して、セキュリティ設定の変更をユーザーに許可するかどうかを制御することもできます。個々の設定については、「Internet Explorer のセキュリティ オプション」を参照してください。

危険性のあるコンテンツをユーザーが表示しようとした場合は、警告をエンド ユーザーに表示することができます。また、署名のない ActiveX コントロールや Java パッケージのダウンロードをエンド ユーザーに禁止することもできます。

コードに署名を施す方法

コードに対する署名は、簡単であり、短時間で行えます。 コードに署名を施すのに、コードへの署名の技術的な詳細を知っておく必要はありません。

コードを作成してテストしたら、ソフトウェアの発行元はコード ファイルに署名を施します。発行元では、Signcode.exe などの署名プログラムを使用してコードをハッシュし、ファイルの "要約" を作成します。このプログラムは、オペレーティング システム レイヤを通じて、秘密キーで要約を暗号化し、ハッシュ アルゴリズムおよび CA による証明書の名前 (ソフトウェア発行元の名前、公開キーなどを含む) と要約を組み合わせて、署名ブロックと呼ばれる構造に格納します。次にこのプログラムは、署名ブロックをコード ファイルに埋め込み、これにより、ファイルをインターネット経由で配布する準備が整います。.cab ファイルに署名した場合は、そのキャビネット ファイルにも署名ブロックが含まれることに注意してください。

ユーザーがインターネットからファイルをダウンロードするときには、ダウンロード処理を行うアプリケーションが認証関数を呼び出します。この関数が呼び出されると、オペレーティング システムが署名ブロックを取り出して、証明書を検証した CA を特定し、公開キーを使用して要約を解読します。次に、オペレーティング システムは、署名ブロックに示されているハッシュ アルゴリズムを使用して、もう 1 つの要約を作成します。署名以後にコードが改変されていなければ、新しい要約と以前の要約が一致するはずです。2 つの要約が一致しない場合は、コードが改変されたか、公開キーと秘密キーが対応していないことになります。どちらの場合も、コードが疑わしいものと見なされ、ユーザーに警告が表示されます。

関連項目