先へ進む前に、「Microsoft Windows Server™ 2003 Deployment Kit」の「Designing a Public Key Infrastructure」(英語) に目を通しておくことをお勧めします。 この資料の入手方法については、この章の最後の「関連情報」を参照してください。 この章は「Deployment Kit」の「Designing a Public Key Infrastructure」の章の構成に従っているため、その資料に記載されている関連する背景情報や詳細な説明を参照しやすくなっています。
Windows Server 2003 PKI の計画および設計方法に関するその他の詳細情報についても、「関連情報」にリンクが用意されています。
セキュリティで保護されたワイヤレス ソリューションに使用する場合は、ワイヤレス クライアント用の証明書、および Windows Remote Authentication Dial-In User Service (RADIUS) サーバー用の証明書が必要です。 Microsoft RADIUS サーバーは Windows Server のコンポーネントであり、インターネット認証サービス (IAS) と呼ばれる役割を果たします。
必要な証明書の種類を、次の表に示します。 このソリューションでは必ずしも必要ではありませんが、PKI はドメイン コントローラに対しても証明書を発行します (Windows Server 2003 Enterprise CA がフォレスト内にインストールされている場合、これが既定の設定です)。
このアプリケーションでは、証明書のユーザーが同一のクライアントになりますが、役割は予約済みです。 たとえば、IAS サーバーがクライアント証明書のユーザーになり、そのクライアント証明書を検証する必要があります。 この検証では通常、証明書が信頼されたルート CA にチェーンしていること、およびクライアントによって指定された署名がクライアントの証明書の公開キーと一致することの確認が行われます。 また、証明書の失効チェックも実施されます。 詳細については、「Troubleshooting Certificate Status and Revocation 」(英語) を参照してください。参照先については、この章の最後にある「関連情報」で紹介します。
表 4.4: 証明書のユーザーの分類
証明書
クライアントの種類
プラットフォーム
場所
ドメイン
証明書の処理
ワイヤレス クライアントの認証
– コンピュータ
Windows Server 2003
内部ネットワーク
ドメイン メンバ
– 検証
– 失効チェック
ワイヤレス クライアントの認証
– コンピュータ
Windows Server 2003
内部ネットワーク
ドメイン メンバ
– 検証
– 失効チェック
IAS サーバー認証
– ユーザー
– コンピュータ
Windows XP
内部ネットワーク
ドメイン メンバ
– 検証
上記の表から、サポートする必要のあるプラットフォームと処理の種類を特定できます。 WLAN のシナリオには当てはまりませんが、環境内の他の用途で使用する場合、インターネット上のクライアントによる証明書の検索または検証機能がサポートされているか、または Windows 以外のプラットフォームからの登録機能がサポートされていることが必要な場合があります。 これらの事項は設計プロセスの初期段階で決定する必要があるため、どのような証明書要件が将来必要となるかを検討することは重要です。
このソリューションでは、将来の要件について次の事項を想定しています。
- Windows 以外のクライアントによる証明書の検証が必要になる可能性がある。
- インターネットで証明書の検証が必要になる可能性がある。
- Windows XP および Windows Server 2003 以外のプラットフォーム上で証明書のサブジェクトと証明書ユーザーの両方をサポートする必要がある。
現時点では設計上これらの要件のすべてが満たされているわけではありませんが、対応することは簡単です。
#### 証明書のセキュリティ要件を定義する
証明書のセキュリティは、証明書の保証レベルとも呼ばれます。 これは、証明書のサブジェクトを証明書自体にバインドする際の強度の尺度と見なすことができます。 証明書のセキュリティは、証明書を使用している人 (またはデバイス) が、証明書に記入されたサブジェクトと同一であると確信できる信頼度を表します。 この保証レベルは、主に次の 2 つの事項の尺度になります。
- 登録および証明書登録プロセスの正確性 : たとえば、本人自身がフォト ID を提示して証明書を取得したか、または電子メール アドレスの所有は十分だったか、などです。
- 秘密キーを格納する方法 : 秘密キーのコピーや侵害が困難になるほど、元の所有者である証明書のサブジェクトだけがその秘密キーを保有している確実性が高くなります。
この 2 つは密接に関連しあっています。なぜなら、秘密キーの所有者の身元情報にまったく確信が持てない場合は、高価な秘密キー保護対策に投資するわけにはいかないからです。 同様に、広範なバックグラウンド チェックや DNA 指紋法も含めた高度な登録処理をしても、その後秘密キーが安全性の低い方法で格納されるのではほとんど効果がありません。
証明書の保証を高めるとコストがかかりますが、多くの場合、証明書を使用する場合に、このような保証が必要とは限りません。 正規のドメイン ユーザーに属する証明書の保証を高レベルに設定しない場合は、証明書の登録時の登録証拠としてドメインの資格情報を完全に受け入れることができます。
証明書ポリシー ステートメントと CPS には、使用する保証レベルの意味を記載する必要があります。
次の表は、このソリューションで使用する 3 種類の保証レベルを定義したものです。
**表 4.5: 証明書の保証レベル**
レベル
登録要件
キーのストレージ要件
標準
(低)
ドメイン、その他のパスワード ベースの身元情報に依存する自動承認
ソフトウェア キー
中
証明書マネージャの承認、ビジュアル ID チェック (スマート カード)、または登録担当者の署名
ソフトウェア キーまたは耐タンパー性のハードウェア トークン (スマート カードまたは USB トークン)
上記の大まかな要件を使用して、この章の後半の「証明書プロファイルを構成する」ではより詳細に特定の証明書プロファイルを構成します。
##### 証明書の目的を組み合わせる
複数のアプリケーション機能 (または使用法) を組み合わせて 1 つの証明書にすることができます。これにより、1 つの証明書を使用して電子メールに署名したり、ネットワークにログオンしたり、アプリケーションへのアクセスを許可することができます。 複数の使用法を 1 つにまとめることができれば、証明書サーバーとディレクトリ サーバーにかかる管理コストおよびストレージ コストの削減につながります。
ただし、多目的の証明書には短所もあります。 たとえば、用途が異なると、証明書の承認プロセスも異なる場合があります。 複数の証明書を使用する理由はほとんどが技術的なものですが、通常は、用途によって証明書のセキュリティ レベルが異なることが最大の理由です。つまり、証明書と証明書のサブジェクトを結合する保証レベルはさまざまです。 このような違いは、次に示す事項のいずれかまたはすべてに存在します。
- 証明書の承認プロセス
- キーの長さ
- キーのストレージ メカニズム
- 証明書の有効期間
このため、複数の証明書使用法を組み合わせる場合、一般的にはセキュリティ レベルが同じものを組み合わせるのが最適です。 このソリューションで使用されるクライアント認証証明書には、IPsec やコンピュータ認証など、他の標準的な用途の使用法も含まれます。 他の証明書の使用法に対する要件を定義すると、それらの要件を組み込んで証明書を再発行できます。その場合、証明書の更新が必要となり証明書テンプレートの定義から始めることになる可能性があります。
ただし、IAS サーバー証明書は、中程度の保証の証明書であるとみなされます。 承認されていないサーバー証明書がもたらす脅威は、不正なクライアント証明書による脅威よりはるかに危険です。 したがって、サーバー証明書はより慎重に扱ってください。マイクロソフトでは、サーバー証明書に標準保証の用途の使用法を組み合わせることはお勧めしていません。
[](#mainsection)[ページのトップへ](#mainsection)
### 証明機関の階層を設計する
組織の証明書ベースのアプリケーションをサポートするには、必要に応じて CA をリンクすることにより、証明書の発行、検証、更新、失効を担当するフレームワークを確立する必要があります。 一方 CA は、証明書のサブジェクトの認証、証明書の公開、および証明書失効情報の公開などを行う場合、基になる IT インフラストラクチャに依存します。
CA インフラストラクチャを確立する目的とは、組織にとって最適のセキュリティ レベルを維持しながら、ユーザーに信頼性の高いサービスを提供し、管理者に管理能力を与え、また現在と将来のニーズを満たす柔軟性を与えることです。
#### 信頼モデルを選択する
CA インフラストラクチャを設計する最初の手順として、要件に最も適した信頼モデルを決定します。 基本モデルとして、階層信頼モデルとネットワーク信頼モデルの 2 つがあり、ハイブリッド信頼モデルではこの両方の要素を組み合わせることができます。 これらのモデルの詳細については、「関連情報」で紹介している「*Windows Server 2003 Deployment Kit*」の「Designing a Public Key Infrastructure」(英語) を参照してください。
このガイドのソリューションでは、階層信頼モデルを使用します。 その理由は次のとおりです。
- オンライン CA よりも高いセキュリティ レベルで、オフライン CA を扱うことができます。 オフライン CA の 1 つまたは複数のレイヤによって、発行された証明書の可能な信頼レベル全体が高まります。
- 階層は、ディレクトリがなくても簡単に動作します。この特徴は、内部ディレクトリにアクセスできない外部クライアントをサポートする場合に重要です。 ネットワーク信頼モデルでは一般的に、ユーザーが CA の相互証明書を検索して信頼連鎖を構築できるように、ディレクトリが必要です。 階層では信頼連鎖は常に明示的です。
- 保守とクライアントへの配布が必要な信頼アンカの数が少なくなり、ルート CA 証明書を証明書ユーザーに配布するだけですみます。
- ルート階層にも、常に、他の階層との間で相互証明することで、将来的に複数の信頼アンカ (またはルート) を組み込むオプションがあります。 たとえばこの設計で、組織の合併、または特殊な目的のための証明書の管理をそれぞれの部署に移管するなどの状況に対応することができます。
提案されているソリューションでは、単一ルートで十分です。
##### サード パーティと内部ルートを比較する
PKI の信頼アンカとして内部ルートを使用したり、民間の CA のサービスを使用することができます。 サードパーティ ルートを使用するということは、組織の発行 CA が民間のルート CA によって (通常は 1 つ以上の中間 CA を通じて) 認証されるということです。 したがって最終的に、この外部ルート CA では発行されたすべての証明書にそれぞれの信頼アンカが含まれています。
**注 :** このガイドでは明確に説明されていませんが、組織の証明書要件はどれも民間の CA にアウトソーシングすることができます。 その場合、オンサイト管理サービスを利用するか、証明書プロバイダから直接証明書を取得します。 多くの場合、このようなアウトソーシングは、組織が小規模であるとか証明書の使用法が非常に限定されている場合を除いて、財政上あまり実際的な方法ではありません。 アウトソーシングに関する決定は、内部ルートとサードパーティ ルートのいずれを使用するかという問題とはまったく関係ありません。ただし、この 2 つの問題は混同されることがよくあります。
内部発行証明書に民間ルートを使用する長所を次に示します。
- 外部団体 (セキュリティで保護された Web サイトにアクセスする顧客や署名された電子メールを受信するパートナー企業など) から見て、組織と安全な取引を実行する際の信頼性が高まります。 通常、サードパーティのルート CA は既に信頼されているため、証明書の信頼性について判断を行う必要がなくなります。
- 組織が専門のサービス プロバイダのノウハウ (証明書の使用に関連する技術的、法的、およびビジネス上の問題に関する知識) を利用することができます (ただし、証明書プロバイダがすべての証明書を発行している場合を除き、組織には証明書の発行と使用方法について責任があるため、CPS に記載する必要があります)。
ただし、この方法には次の短所があります。
- 一般的に、証明書ごとのコストが高くなります。
- 証明書プロバイダには、民間のルート CA が従属するすべての CA に対して、厳しいセキュリティ手段と監査手段が要求されます。
- 内部ユーザーとデバイスは、インターネット上で公開されているサードパーティの CA の CRL にアクセスできる必要があります。
- アプリケーションによっては、ルートに特定のパラメータまたは拡張子、および中間的な CA 証明書 (Microsoft Windows スマート カード ログオンなど) が必要となる場合がありますが、それらを証明書プロバイダから入手できないことがあります。
- 組織と証明書プロバイダとの間の民間契約では、下位 CA から発行できる証明書の種類が制限される場合があります。 たとえば、Web サーバー証明書が許可されない可能性があります。
- 民間のルート CA を信頼すると、組織のセキュリティ ニーズに対して信頼の範囲が広すぎる場合があります。 内部 CA に特殊なチェックや特別なレイヤを導入して、組織が発行した証明書と、同じルートに属する別の組織が発行した証明書を区別しなければならないことがあります。
このような短所があっても、組織外部のユーザーが信頼する証明書を数多く発行する必要がある場合は、民間ルートの下位に少なくとも PKI の一部を従属させることを検討する必要があります (ただし、この場合 2 つの別々の階層の作成が必要になることがあります)。
このソリューションでは、組織で使用される証明書の大半に、内部ルート CA に基づく階層を使用しています。 このアプローチには、次のような長所があります。
- 組織が直接、中心的な信頼アンカ (ルート CA) の制御と、証明書の発行および発行された証明書の使用を管理するセキュリティ ポリシーを維持することができます。
- 内部 PKI から比較的低コストで多数の証明書を発行できます。
- 発行できる証明書の種類に制限はありません。
- 内部証明書の信頼と外部証明書の信頼にあいまいさがありません。
- CRL および機関情報アクセス (AIA) の情報を、必要に応じて内部または外部に公開できます。
証明書ユーザーの信頼されたルートの管理が困難な場合は、外部ルートの利用を検討することをお勧めします。 このソリューションでは、次のサービスについて、サードパーティの証明書と外部ルートを利用することを提案しています。
- インターネット Web サーバー
- 民間のコード署名
- 民間の文書署名
- 外部で信頼された安全な電子メール
##### 外部証明書の信頼を定義する
前のセクションでは、他の組織の証明書インフラストラクチャの信頼について説明しました。 証明書の信頼を組織内で制御する方法を決定するには、このテーマをさらに広げて検討する必要があります。 ここで言う "信頼" には、次の重要な 3 つの条件が含まれます。
- 信頼を置く人またはエンティティ。つまり、誰を信頼するか。
- 相手が行うと信頼している処理または動作。つまり、何が行われると信頼するか。
- 信頼を続ける時期。つまり、いつまで相手を信頼するか。
証明書の場合、"誰" とは証明書の発行機関を、"何" とは制御の対象となる証明書の使用法およびその他の特性を指します。 "いつまで" とは、ルート CA 証明書の有効期限か、場合によっては、作成する特殊な相互信頼証明書の有効期限のことを指します。
別の組織と新たなビジネス関係を確立する場合や、ユーザー向けの一部の機能を有効にする場合 (たとえば、Web 証明書を信頼することで、セキュリティで保護された HTTP セッションを許可するなど) には、組織が外部団体との間に築いている既定の信頼関係の変更が必要になる場合があります。 たとえば、次のような場合がそれに当たります。
- パートナー組織 (または新規の民間証明書プロバイダ) の CA 証明書を配布して、一部またはすべてのユーザーがパートナーまたは民間 CA 証明書を信頼できるようにする場合。
- 組織全体で CA 証明書を信頼する必要がない場合に、組織内で特殊な目的の CA または PKI の CA 証明書を配布する場合。
- クライアントのルート ストアにある既存の民間ルートを置き換え、信頼された証明書の使用法を制限できるようにする場合。 たとえば、電子メールおよびセキュリティ保護された Web サーバーの証明書に関してのみ所定の民間ルートを信頼し、スマート カード ログオンの証明書に関しては信頼しないというように決定する場合です。
上記の目標を達成するには、次のようないくつかの方法があります。
- 内部ルートと信頼の対象となる CA 証明書との間に限定従属関係 (相互証明とも呼ばれる) を作成します。 たとえば、内部 CA のいずれかによって外部 CA 証明書を再署名するなどの方法です。 この方法では、外部 CA が実質的に署名 CA の信頼された下位として内部 PKI に追加されます。 証明書の使用法とポリシー、サブジェクト名の種類、または発行ポリシーを厳密に限定したうえで、証明書の種類に制限を配置できます。
**重要 :** 限定従属または相互証明を使用する方法は複雑で、問題なく実装するのが最も難しい方法です。 この章の最後にある「関連情報」で紹介されているテクニカル ペーパー「*Windows Server 2003 を使用した相互証明および限定従属の計画と実装*」を参照してください。
- 証明書信頼リスト (CTL) を作成します。 これにより、信頼されたルート CA のリストを定義し、それらの CA を信頼する場合の目的 (たとえば、セキュリティで保護された電子メール) を指定することができます。 次に、Active Directory グループ ポリシー オブジェクト (GPO) を使用して CTL を展開します。 この方法は便利ですが、マイクロソフト独自の方法です。 CTL は、Windows 2000 以降を実行しているクライアントでのみ使用できます。 このオプションは、CTL GPO が適用されているドメインのクライアントにしか影響しません。
- ルート CA 証明書を (Configuration コンテナ内の) Active Directory の Trusted Certification Authorities ストアにインストールします。 これによって、フォレスト全体のすべてのユーザーとデバイスに対する無条件信頼がルート CA (およびすべての下位 CA) に作成されます。 ただし、無条件信頼を許可するには細心の注意が必要です。 この方法は、自分の組織が管理している CA に対してのみ使用してください。
- グループ ポリシーを使用して、信頼されたルート CA 証明書をユーザーまたはコンピュータのサブセットに展開します。 これは前のオプションと似ていますが、信頼されたルートを受け取る対象 (GPO が適用されるユーザーまたはコンピュータ) をかなり詳細に指定できます。 このオプションは、GPO が適用されているドメインのユーザーにしか影響しません。
- Microsoft Root Update サービスを使用します。 このサービスは、民間の証明書プロバイダが多数の人々に新規のルートを容易に配布できるようにすることを目的としています。 信頼されたルート CA を規制する場合は、このサービスを会社のすべてのシステムで無効にすることを検討してください。
- グループ ポリシーを使用してサードパーティの信頼されたルートを無効にします。 ここまで挙げてきた他の項目とは反対に、これは信頼を増やすのではなく、信頼を制限する方法です。 Windows を実行しているすべてのコンピュータ (および、そのコンピュータを使用するユーザー) は、インストールされるルートを既定で継承します (これは、さまざまなプラットフォームで動作する他のオペレーティング システムや Web ブラウザでも同様です)。グループ ポリシーを使用すると、このルートの信頼が自動的に適用される機能を無効にできます。 次に、前述のいずれかのメカニズムを使用して (制限の有無にかかわらず、セキュリティのニーズに応じて)、必要な信頼されたルートを選択して追加し直すことができます。
**注 :** 一部のルート証明書は無効にできません。 これは、オペレーティング システムがドライバ署名ポリシーなどに関する特定のルート証明書に依存しているためです。 このような必要なルートは、前述のグループ ポリシー設定で無効になることはありません。
このソリューションでは、CA 上のルート証明書の更新サービスを無効にしています。 組織内の他のコンピュータでもこのサービスを無効にするかどうかを検討する必要があります。 また、グループ ポリシーを使用して、すべてのドメイン ユーザーの既定のサードパーティ ルートを無効にすることも検討してください。 これについては、「第 7 章 : 公開キー基盤を実装する」で詳しく説明します。
このソリューションでは、PKI のルート CA 証明書は Active Directory にインポートすることでクライアントに配布されます。これについては、次のセクションで説明します。
##### ルート CA 証明書の配布
ルート CA 証明書は、Active Directory フォレストのメンバに自動的に配布されます。 CA 証明書を Certification Authorities コンテナにインポートすることによって、フォレスト内のすべてのドメインのメンバ (コンピュータおよびユーザー) は、この証明書を各自のローカルな信頼されたルート CA ストアにインストールします。 この方法は、フォレスト全体を信頼範囲にする必要がある内部ルート CA に対してお勧めします。
また通常は、内部ルートと平行して、より限定された信頼範囲のルートを配布する必要があります。 詳細については、この章の以降のセクション「CA インフラストラクチャを拡張する」を参照してください。
ルート CA 証明書を他のプラットフォーム上、またはフォレスト外部のユーザーとコンピュータに配布するには、証明書を手動でインストールするか、別の配布方法を使用する必要があります。
#### 証明機関の役割を定義する
信頼モデルを定義し、ルート CA の戦略を選択したら、残りの CA インフラストラクチャを計画します。 それには、組織内で CA が果たすさまざまな役割を定義する必要があります。 CA は、ルート CA または下位 CA として構成できます。 下位 CA は、発行 CA または中間 CA (発行 CA とルート CA の中間にある信頼手順) になります。
##### ルート CA
ルート CA には、どの組織にとっても非常に重要な役割があります。 つまり、組織内のすべてのユーザーとデバイスによって明示的に信頼されるという役割です。 多くのセキュリティ決定事項 (ある人物にログオンを許可するか、電子メールを信頼するか、1 千万ドルのセキュリティ取引を許可するかなど) は、最終的にこのルートのセキュリティと、ルートの識別情報を提供する秘密キーにかかっています。 多数の処理がこのルートに依存しているため、ルート キーと証明書を変更する作業は非常に複雑でエラーの発生につながりやすい処理であり、長期間にわたってアプリケーションとユーザーに対するサービスが断続的に失われる可能性があります。
このため、ルート CA の秘密キーは可能な限り保護することが非常に重要です。 変更する場合の最良の方法の 1 つとしては、CA をネットワークから切断して、その CA へのアクセスを最小限に抑えます (この保護措置に加えて、サーバーへの物理的なアクセスを制限する相応の措置を併せる必要があります)。 CA キーの保護をさらに強化するには、専用のハードウェア セキュリティ モジュール (HSM) を使用します。 これらの方法により、オフライン CA のキーのセキュリティが強化されるだけでなく、オンライン CA のセキュリティも大幅に向上します。
このガイドで定義するソリューションでは、オフライン ルート CA を使用します。
**重要 :** ルート CA に HSM を使用して CA キーのセキュリティを向上させることを検討してください。 CA のインストール後に HSM を追加することもできますが、最初に HSM を導入する方がはるかに簡単で、より安全です。 HSM をあとで設置した場合、多くのベンダでは既存のキーをインポートできるようにしますが、新しいキーで CA を更新する必要があります。
##### 中間 CA と発行 CA
ルート CA をオフラインにすると、そこから毎日証明書を発行することができなくなります。 日常的に使用する証明書の発行に使用できる CA を作成する場合、ルート CA に代わって下位 CA が証明書を発行することを認定します。 これにより、下位 CA はルート CA キーをセキュリティの脅威にさらすことなく、ルート CA の信頼性を継承できます。
この処理はさらに細分化して行うこともできます。 下位 CA は、直接証明書を発行する代わりに、その上の層の CA がエンド エンティティ (ユーザーおよびコンピュータ) に発行することを認定します。 この方法だと、ルート CA キーにセキュリティ レイヤが追加されるだけでなく、複数の 下位 CA の間でリスクを分散させることができます。 たとえば、ある中間 CA は内部発行 CA を認定し、別の中間 CA は外部証明書を発行する CA を認定します。 この方法には次のような利点があります。
- CA が侵害される危険性を PKI 階層全体のほんの一部分に限定することができます。
- 別々の証明書ポリシーを CA 階層の分岐全体に実装することができます。
- ルート CA キーを使用する回数が減り、その結果、キーが侵害される危険が少なくなります。
中間 CA にレイヤを追加すると PKI のセキュリティは全体的に向上しますが、これには複雑化、ハードウェアおよびソフトウェアの追加、管理コストの増大 (通常はハードウェアやソフトウェア ライセンスのコストよりはるかに大きくなります) といった問題が伴います。 大部分の用途では、セキュリティ要件として 3 階層を挙げるのは妥当ではありません。 このことは、特に CA キーが HSM で保護されている場合に当てはまります。
このガイドで定義するソリューションでは、2 階層を提案しています。 このソリューション設計では、優れたセキュリティとコストのバランスが妥当であり、また今後証明書を使用する可能性のあるさまざまな用途に対応できる柔軟性も備わっています (詳細については、この章の前のセクション「証明書要件を定義する」を参照してください)。
**注 :** 3 階層の使用を義務づける政府の法令または規制は、このガイドでは検討対象となっていません。 そのような規制がある場合は、当然その他の条件も異なってきます。
##### 提案する CA 階層
次の図は、提案する階層を示したものです。 現在の実装は、ルート CA と 1 つの発行 CA で構成されています。 発行 CA は主に、コンピュータまたはユーザーに対しては標準保証 ("技術的" と言う場合もあります) 証明書を、コンピュータに対してはより高価値の証明書を発行します。
![](images/Cc527050.04fig4-2(ja-jp,TechNet.10).gif)
**図 4.2: 証明機関の階層**
[拡大表示する](https://technet.microsoft.com/ja-jp/cc527050.04fig4-2_big(ja-jp,technet.10).gif)
この設計を使用すると、セキュリティ保護されたワイヤレス LAN 認証 (802.1X) をサポートする完全な機能の PKI を展開でき、ハードウェア、ソフトウェア、管理にかかるコストも比較的低く抑えることができます。
**注 :** この単純なインフラストラクチャ設計は、いくつかの方法で拡張してさまざまな要件に対応させることができます。 これについては、「CA インフラストラクチャを拡張する」で説明します。
発行 CA は最初、次の種類の証明書を発行するように構成されます (上の図の太枠で囲まれた部分)。
- クライアント認証 - ユーザー
- クライアント認証 - コンピュータ
- IAS サーバー認証
最初の 2 つの証明書は標準保証の証明書です。ユーザーまたはコンピュータのドメインの資格情報に基づいて自動的に発行されます。 これらの証明書の所有は、有効なドメイン ユーザー名とパスワードを使用する場合ほどサブジェクトの束縛が強くありません。 ただし、ドメイン名とパスワードではなく証明書を使用することには、セキュリティ上の長所やその他の技術上の長所があります。
IAS サーバーは高度なセキュリティ機能を実行するため、IAS サーバー認証は中保証の証明書に分類されます。 この種類の証明書を発行する場合は、通常、要求の有効性のチェックなどが追加され、証明書マネージャの承認が必要になります。
**注 :** 後述の構築に関する章で、この種類の証明書を作成する方法が記載されていますが、そこでは証明書マネージャの承認が必要という要件は無効にされています。 これにより、IAS サーバーは有効期限の切れた証明書を自動的に更新し、証明書が失効したときにサービスが無効になる事態を回避します。 証明書要求を十分に検査して承認するプロセスが用意されている場合は、証明書マネージャの承認という要件を有効にすることを検討してください。
##### CA のハードウェアおよびソフトウェア要件
ここでは、CA のハードウェアおよびソフトウェア要件について説明します。
###### ルート CA
ルート CA のハードウェア要件は最小限で済みます。 コンピュータの仕様は、Windows Server 2003 の実行に必要な最小要件を満たしていれば十分です。 ルート CA のハードウェアの重要な要件は、長期的な信頼性と保全性です。 ルート CA は通常、長期間使用されるコンピュータに設置しますが、ほとんどの場合電源はオフにしておきます。 このコンピュータの電源を*入れる*場合は、常に正常に起動することが必要です。 また、ハードウェア障害が起こった場合に対処できるように、そのコンピュータ モデルの生産終了後数年が経過したあとでも、コンポーネントの交換を容易に行える必要があります。
このような点を踏まえ、マイクロソフトでは次のことをお勧めします。
- サポートとハードウェアの長期保守で実績のある有名なメーカーを選択します。 そのベンダから交換部品を入手できる期間を確認します。
- できれば、ワークステーションやポータブル コンピュータではなくサーバーを使用します。サーバーの方が標準化されていることが多く、モデル チェンジもそれほど頻繁に行われないためです。
- ハードウェアに障害が発生して短時間で修復できない場合に、ルート CA の役割を引き継ぐことができる補助システムを用意しておくことを検討します。
- システムに障害が発生しても再構築できるように、元のインストール メディア、ドライバ、更新プログラムのコピーを作成します。
- HSM を使用してセキュリティを強化することを検討します。
ルート CA では、Windows Server 2003 Enterprise Edition の追加機能は必要ありません。 したがって、このガイドのソリューションでは Windows Server Standard Edition を使用しています。
###### 発行 CA
発行 CA にはパフォーマンス要件がありますが、通常、発行 CA の動作は非常に限られているため、比較的低い要件になっています。 過負荷状態になった場合でも、たとえばエンタープライズ CA の場合、CA 自体ではなく Active Directory とのやり取りが制約になることが、パフォーマンス測定により示されています。 したがって、ハードウェアのパフォーマンス要件は非常に小さいものです。 ルート CA の場合と同様に、信頼性と保全性がハードウェアを選択する際の不可欠な要因です。
証明書サービスは Active Directory と同じデータベース テクノロジを使用するため、大部分は同じパフォーマンス ガイドラインを適用できます。 ほとんどの組織に適したガイドラインとして、Active Directory のドメイン コントローラに使用するのと同じハードウェア仕様を使用することをお勧めします。
CA のパフォーマンスの詳細については、この章の最後に紹介されている「Designing a Public Key Infrastructure」の「CA Capacity, Performance, and Scalability」セクション (英語) を参照してください。
「第 7 章 : 公開キー基盤を実装する」に、推奨するハードウェア プロファイルが記載されています。 発行 CA に使用するサーバー ハードウェアを指定する場合は、前述のルート CA のガイドラインの他に、次の事項について検討することをお勧めします。
- 冗長なネットワーク インターフェイス カード (NIC) により、NIC を組み合わせて使用します。
- 2 台の RAID 1 ボリュームが推奨する最小構成です。これで、CA ログを別の物理ストレージ ユニットに格納できます。 これにより、パフォーマンスが向上し、ハードウェア障害を復元できます。
- パフォーマンスを向上させるためには、2 台ではなく 3 台の RAID 1 ボリュームを使用して、オペレーティング システム、証明書サービス データベース、証明書サービス ログをそれぞれ別の物理ボリュームに格納することを検討します。
- パフォーマンスと復元性を向上させるには、IDE 上に高性能 SCSI ドライブおよびコントローラを搭載することを推奨します。 Active Directory とのやり取り以外にも、ディスク サブシステムのパフォーマンスが、CA のパフォーマンス全体を決定するうえで最も重要な要因となることがあります。
- 証明書の発行時の署名操作に対するセキュリティの強化とパフォーマンスの向上のために、HSM の使用を検討します。
ルート CA とは異なり、発行 CA では、編集可能な証明書テンプレートとユーザー証明書の自動登録をサポートするため Windows Server 2003 Enterprise Edition の追加機能が*必要となります*。
###### 複数の発行 CA を使用してサービスを復元する
ここでは、複数の発行 CA をインストールする技術的な理由について説明します。 さらに、異なる種類の証明書を登録するためにさまざまな発行 CA が必要な理由として、セキュリティ上の理由とポリシー上の理由があります。 この理由についてはこの章で後述します。
既に説明したいくつかの種類の証明書を何万ものクライアントに発行する場合、簡単な構成のハードウェアを使用した発行 CA が 1 つあれば十分です。つまり、純粋にパフォーマンス上の理由で複数の発行 CA を必要とすることはほとんどありません。 ただし、発行 CA の可用性を満たすために、複数の CA を展開して同じ種類の証明書を登録する必要があるかどうかは検討する必要があります。
CA には、多くのサービスに見られるような可用性の問題はありません。 クライアントは、証明書を使用または検証する際に CA にアクセスする必要がありません。 クライアントが CA に直接アクセスするのは、次の作業を行うために CA が必要になった場合だけです。
- 新しい証明書を登録する。
- 証明書を更新する。
- 証明書を無効にする。
- 新しい CRL を公開する。
- CA 証明書自体を更新する。
次の表に、各項目の可用性要件の詳細を示します。
**表 4.8: CA サービスの可用性要件**
CA サービス
可用性要件
登録サービス – 新しい証明書
場合によっては新しいユーザーがネットワークまたは証明書を必要とするその他のサービスにアクセスできなくなるため、ここでは可用性は重要な要因です。 CA をバックアップから復元するのにかかる時間が、新規ユーザーが証明書を登録するのにかかる時間よりも長いかどうか評価する必要があります。 ほとんどの組織では、CA の復元にかかるコストの方が、新たに CA を追加して管理するコストより安いと判断されます。 そうでない場合は、関連する証明書の種類ごとに複数の発行 CA が必要になります。
通常、証明書を無効にできるのはその証明書を発行した CA だけであり、他の CA では無効にできません。
失効が時間重視の場合 (つまり、CA を復元する前に失効させる必要がある場合)、失効対象となる証明書のシリアル番号と (別のコンピュータに復元された) CA 秘密キーがわかれば、現在の CRL に失効エントリを挿入できます。
CRL には通常、1 日以上の待機時間があります。 CA の復元時間が次の CRL の公開までの間隔より短い場合は、手動で CRL を更新してもあまり意味はありません。
CRL を公開する
CRL は CA に対して一意です。別の CA を追加しても CRL 公開の復元性が向上するわけではなく、CRL 公開で障害が発生した場合の影響が最小に抑えられるだけです (これは、発行した証明書のすべてが、障害が発生した CRL に依存するわけではないためです)。
多くの証明書アプリケーションでは、最新の失効状況にアクセスできることが不可欠の条件です。 つまり、期限の切れていない CRL は、公開された CRL 配布ポイント (CDP) で使用できる必要があります。 これができない場合、失効が重要な意味を持つ証明書アプリケーションに障害が発生します。
CA の復元期間は、以前の CRL の失効と新規の CRL の発行が重なる期間よりも長くなることはありません。 まれにこのような状況が発生した場合は、CRL を再署名して有効期限を延長することができます。 この手順については、運用ガイドを参照してください。
CA 証明書を更新する
このサービスでは、発行 CA を追加して使用できません。
CA の復元時間が問題になるほど、この作業の処理が遅くなることはありません。 遅くなった場合でも、CA 証明書を CA の親キーで再署名して、有効期限を延長することができます。
注 : 上の表では、CA の復元時間と CA の可用性が、エンド ユーザーにサービスを提供する CA の機能に影響を与える要因となっています。 これは、サーバーの障害に限定されません。 実際に、サイト間のネットワーク停止は最も可能性の高いサービス障害の例です。 必要なサービスの可用性レベルを決定する際には、ユーザーへのサービス提供に影響する可能性のある、すべての要因について検討する必要があります。
CA のバックアップと復元がうまく管理できている限り、複数の CA を使用してサービスの障害許容力を強化するかどうかを判断するうえでの基準は、登録要件と一部の更新要件のみとなります。 その他の CA を追加する場合のインストール コストおよび管理コストを、サービスを使用できない場合にかかるコストと比較して検討する必要があります。
複数の発行 CA を利用した場合、可用性が向上するだけでなく証明書発行のパフォーマンスも向上するため、CRL のサイズを半減できます。 ただし、これらの要素はいずれも、このガイドのソリューションでは重要ではありません。 このソリューションでは、CA を慎重に管理し、十分なバックアップ手順と回復手順を組み込むことで、障害許容力の問題を解決しています。 そのため、このソリューションで必要な発行 CA の数は 1 つだけになります。
ルート CA 上でも同様の条件の下で、すべての証明書の発行と失効処理を実行します。 ルート CA へのすべてのアクセスに署名するのが理想的です。
管理者として CA にアクセスできるユーザーは、必ず一意に追跡可能な個別のアカウントを持つようにします。 CA 上のあらゆる処理を監査します。
CA 上の役割分離を有効にすることを検討します (これについては、あとで詳しく説明します)。
ルート CA サーバーの場合、このような対策は特に重要です。 発行 CA は、発行する必要のある証明書の種類に応じて、低保証のレベルにすることができます。 たとえば、CA が高価値の証明書を発行していない場合 (コンピュータやユーザーのネットワーク認証など標準証明書のみの場合)、この CA のセキュリティ レベルは、ドメイン コントローラに使用するほど高いものにする必要はありません。
ルート CA が高い保証レベルを備えている限り、保証レベルがより高い発行 CA をあとから追加すれば、より価値の高い証明書を自由に発行できます。 既存の標準保証の CA と平行して、高保証の CA を保持できます。 ただし、ルート CA を比較的セキュリティの低い環境にインストールして構成し、あとで高価値の証明書を発行する必要が生じた場合は、ルート CA を再インストールするか、新しいルート CA を作成する必要があります。