ClickOnce と Authenticode

Authenticode は、業界標準の暗号化を使用して、アプリケーションの発行者の信頼性を検査するデジタル証明書によりアプリケーション コードに署名するマイクロソフトのテクノロジです。 ClickOnce では、アプリケーションの配置に Authenticode を使用して、トロイの木馬のリスクを軽減できます。トロイの木馬では、悪意のある第三者が、ウイルスや他の有害なプログラムを、確立された信頼できるソースからの正規のプログラムと偽って示します。 ClickOnce 配置のデジタル証明書での署名は省略できる手順です。アセンブリとファイルが改ざんされていないことを確認する手順です。

以下のセクションでは、Authenticode で使用するさまざまな種類のデジタル証明書、証明機関 (CA: Certificate Authority) を使用して証明書を検証するしくみ、証明書におけるタイムスタンプの役割、および証明書で使用できるストレージの方法について説明します。

Authenticode とコード署名

デジタル証明書とは、証明書の発行先であるアプリケーション発行者と証明書を発行した機関を示すメタデータと共に、暗号化公開キー/秘密キーのペアが格納されたファイルです。

Authenticode 証明書にはさまざまな種類があります。 それぞれの証明書は、異なる種類の署名用に構成されています。 ClickOnce アプリケーションの場合、コード署名に対して有効な Authenticode 証明書が必要となります。電子メールのデジタル証明書など、別の種類の証明書によって ClickOnce への署名を試みた場合、アプリケーションは動作しなくなります。 詳細については、「Introduction to Code Signing (コード署名の概要)」を参照してください。

コード署名の証明書は、次の 3 つの方法のいずれかで取得できます。

  • 証明書販売元から購入する。

  • デジタル証明書の作成を担当する組織内のグループから受け取る。

  • Windows Software Development Kit (SDK) に同梱されている MakeCert.exe を使用して独自の証明書を生成する。

証明機関を使用してユーザーを支援する方法

MakeCert.exe ユーティリティを使用して生成された証明書は、一般に "自己生成型証明書" または "テスト証明書" と呼ばれます。 この種の証明書は、.snk ファイルが .NET Framework で機能する場合とほとんど同様に機能します。 この証明書は、秘密/公開暗号化キーのペアのみで構成され、発行者に関する検証可能な情報を含んでいません。 自己生成型証明書を使用すると、イントラネット上に信頼性の高い ClickOnce アプリケーションを配置できます。ただし、これらのアプリケーションをクライアント コンピューターで実行した場合は、ClickOnce が、不明な発行元からのものとしてアプリケーションを識別します。 既定では、自己生成型証明書によって署名され、インターネット上に配置された ClickOnce アプリケーションは、信頼されたアプリケーションの配置を利用できません。

証明書販売元や企業内の部門などの CA から証明書を受け取る場合は、証明書によってユーザーのセキュリティが強化されます。 証明書によって、署名済みソフトウェアの発行者が識別されるだけでなく、署名を行った CA に問い合わせてその ID が検査されます。 CA がルート証明機関でない場合、Authenticode はルート証明機関まで "信頼チェーン" をたどって、その CA が証明書の発行を承認されているかどうかを検査します。 セキュリティを強化するために、可能であれば常に CA によって発行された証明書を使用することをお勧めします。

自己生成型証明書の生成方法の詳細については、「Makecert.exe (証明書作成ツール)」を参照してください。

タイムスタンプ

ClickOnce アプリケーションの署名に使用する証明書は、一定の期間 (通常は 12 か月) で期限切れになります。 新しい証明書を持つアプリケーションに再署名を繰り返さずに済むように、ClickOnce ではタイムスタンプがサポートされています。 アプリケーションがタイムスタンプで署名されると、タイムスタンプが有効な場合は、有効期限が過ぎていても、その証明書が受け付けられます。 これにより、期限切れの証明書と有効なタイムスタンプを持つ ClickOnce アプリケーションをダウンロードして実行できます。また、期限切れの証明書を持つインストール済みのアプリケーションでは、引き続き、更新プログラムをダウンロードしてインストールできます。

アプリケーション サーバーにタイムスタンプを含めるには、タイムスタンプ サーバーが必要です。 タイムスタンプ サーバーを選択する方法については、「方法 : アプリケーション マニフェストおよび配置マニフェストに署名する」を参照してください。

期限切れの証明書の更新

旧バージョンの .NET Framework では、証明書の期限が切れているアプリケーションを更新すると、そのアプリケーションが機能しなくなる可能性がありました。 この問題を解決するには、次のいずれかの方法を使用します。

  • .NET Framework のバージョンを 2.0 SP1 以降 (Windows XP の場合) または 3.5 以降 (Windows Vista の場合) に更新します。

  • アプリケーションをアンインストールし、有効な証明書を含む新しいバージョンを再インストールします。

  • 証明書を更新するコマンド ライン アセンブリを作成します。 このプロセスの詳細な手順については、マイクロソフト サポート オンラインの文書 925521 を参照してください。

証明書の格納

  • 証明書は .pfx ファイルとしてファイル システムに格納できます。また、キー コンテナーの内部に格納することもできます。 Windows ドメインのユーザーは、多数のキー コンテナーを持つことができます。 .pfx に保存するよう指定しない限り、既定では、MakeCert.exe が個人のキー コンテナーに証明書を格納します。 ClickOnce の配置の作成に使用する Windows SDK ツールである Mage.exe と MageUI.exe を使用すると、このどちらの方法で格納された証明書も使用できます。

参照

関連項目

Mage.exe (マニフェストの生成および編集ツール)

概念

ClickOnce のセキュリティと配置

ClickOnce アプリケーションのセキュリティ

信頼されたアプリケーションの配置の概要