Share via


ClickOnce の配置と Authenticode

更新 : 2007 年 11 月

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

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

Authenticode とコード署名

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

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

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

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

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

  • .NET Framework ソフトウェア開発キット (SDK: Software Development Kit) に同梱されている MakeCert.exe を使用して独自の証明書を生成する。

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

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

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

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

タイムスタンプによって予期しない期限切れを防ぐ方法

証明書によってセキュリティを強化しても、承認されていない関係者が正規の所有者から証明書とそのパスワードを入手する可能性があります。既定では、CA によって発行された証明書が有効なのは 12 か月間だけです。これにより、証明書の所有者は CA を通じて ID を強制的に再検査されるため、安全性が損なわれた証明書は短期間しか使用できなくなります。

通常、証明書の有効期限は、ClickOnce アプリケーションに 12 か月ごとに再署名する必要があることを意味します。Authenticode は、タイムスタンプをサポートすることで、この必要性を軽減しています。証明書を使用して ClickOnce の配置に署名すると、ClickOnce は署名の日時を記録し、配置のデジタル署名に埋め込みます。証明書がまだ有効な間に配置に署名が行われていれば、ClickOnce は証明書の有効期限が切れた後でもアプリケーションを実行できるようにします。

Visual Studio および Mage.exe と MageUI.exe (ClickOnce の配置の作成に使用する Windows Software Development Kit (SDK) ツール) は、タイムスタンプをサポートしています。

証明書の格納

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

参照

概念

ClickOnce の配置の概要

ClickOnce の配置とセキュリティ

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

参照

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