トピックはじめに前の章では、公開キー基盤 (PKI) に基づいた安全なワイヤレス ソリューションの論理設計について説明しました。 この章では、このソリューションのために Microsoft® Windows® 2003 証明書サービスに基づいた PKI を設計するプロセスを説明します。 導入コストおよび管理コストを低く抑えるため、このソリューションは比較的単純に設計されており、セキュリティで保護されたワイヤレス クライアントおよびワイヤレス ローカル エリア ネットワーク (WLAN) インフラストラクチャの証明書を発行するのに適しています。 ただし、第 1 の目的はセキュリティで保護された WLAN をサポートする PKI の設計ですが、PKI が組織の全体的なセキュリティ インフラストラクチャの重要な構成要素になる可能性もある点、つまり、今後この環境で他のさまざまなアプリケーションによって使用される可能性がある点にも注意する必要があります。 このインフラストラクチャへの投資を保護するため、ソリューションの設計は拡張可能になっています。 つまり、この設計があらゆる種類の証明書の発行に適しているとは限りませんが、将来的に機能と容量を追加すれば、ここで取り上げるセキュリティ要件よりも広範な要件を満たすことができます。 この章の目的は、主に 3 つあります。 第 1 に、ソリューションの設計上の決定とその理由について説明します。 第 2 に、その決定が組織の PKI に適しているかどうかを判断できるように、背景となる計画について説明します。 第 3 に、このソリューションの範囲外のセキュリティ ニーズにも対応できるように、基本のソリューションを拡張する方法を紹介します。 この章で「このソリューションでは...のオプションを使用します。」や「この設計では...を使用します。」などの表現が使われている場合は、このソリューションの設計の一部として決定し、構築ガイドおよび運用ガイドで実装される事項を指します。 「...を決定する必要があります。」などの表現が使われている場合は、自分の組織の要件に基づいて何かを決定する必要がある事項を表します。 この表現は主として、組織の幅広いセキュリティ ニーズに対応するためソリューションを拡張する方法について説明している箇所で使われます。 このため、一部のトピックには詳細な説明を付けて手順の意味がわかるようにし、他の文書を参照する手間が省けるようになっています。 章の前提条件PKI の一般的な原則と用語をよく理解している必要があります。 このテクノロジについて知識がない場合は、この章の最後の「関連情報」で紹介されている記事等をお読みください。 先へ進む前に、「Microsoft Windows Server™ 2003 Deployment Kit」の「Designing a Public Key Infrastructure」(英語) に目を通しておくことをお勧めします。 この資料の入手方法については、この章の最後の「関連情報」を参照してください。 この章は「Deployment Kit」の「Designing a Public Key Infrastructure」の章の構成に従っているため、その資料に記載されている関連する背景情報や詳細な説明を参照しやすくなっています。 Windows Server 2003 PKI の計画および設計方法に関するその他の詳細情報についても、「関連情報」にリンクが用意されています。 章の概要組織の現在および将来のニーズに対応する PKI を計画し、展開するのは容易ではありません。 通常、PKI は 1 つの独立したセキュリティ上の問題を解決するために装備されるものではありません。 組織が PKI を展開する場合、それは内部の多数あるセキュリティ要件に対応するためばかりでなく、外部の顧客またはビジネス パートナーとの作業上必要なビジネス セキュリティ要件に対応するためでもあります。 次のフローチャートは、この章の構成を表したものです。  図 4.1: 証明書サービスを計画する手順を示す章の構成 手順は主に次の 4 つになります。 | • | 証明書要件を定義する。 ここでは、解決を試みるセキュリティ上の問題を特定します。 この作業は、セキュリティの拡張が必要な特定の用途とユーザー、ユーザーの所在地、必要なセキュリティの拡張レベルに基づいて行います。 セキュリティ要件とビジネス要件を定義しない限り、PKI の作成は開始できません。 | | • | 証明機関の階層を設計する。 さまざまな要因に基づいて、証明機関 (CA) インフラストラクチャを作成する必要があります。 ここでは、信頼モデルを定義し、必要な CA の数、CA の管理方法、PKI の拡張方法 (CA を追加する、または他の組織との間に信頼を確立する) を決定します。 さらに、Active Directory® ディレクトリ サービスや Microsoft インターネット インフォメーション サービス (IIS) など、IT インフラストラクチャの他のテクノロジと PKI を統合する方法について説明します。 | | • | 証明書プロファイルを構成する。 ここでは、使用する証明書の種類、証明書に関連付ける暗号化キーに必要な強度、証明書の有効期間、証明書の更新の可否を決定します。 | | • | 証明書管理計画を作成する。 ここでは、証明書をエンド ユーザーに発行する方法、証明書要求の処理方法、証明書失効リスト (CRL) の管理および配布方法を決定します。 |
証明書要件を定義するこのセクションでは、PKI が証明書を発行する目的と、それぞれの目的別のセキュリティ要件について説明します。 Certificate Practices Statements (CPS) を作成するPKI を設計するとき、組織内で証明書が発効され、使用される方法について決定したことを記録する必要があります。 こうした決定を証明書ポリシーと呼び、その内容を記録したドキュメントを証明書ポリシー ステートメントおよび CPS (Certificate Practices Statements) と言います。 正式な用語としては、証明書ポリシー (CP) は PKI の運用方針を定めた規則です。 たとえば、共通のセキュリティ要件を持つ特定のクライアントまたはアプリケーションのグループに対して証明書を適用できるかどうかが記載されています。 CPS (CertificatePracticesStatements) は、発行した証明書を管理する際に組織が使用する運用方法に関する規定です。 CPS には、組織の証明書ポリシーが組織のシステム アーキテクチャと運用手順における解釈方法を記述します。 CP は、組織全体で共有されるドキュメントです。 一方 CPS は、個々の CA 固有のドキュメントです (複数の CA で同一のジョブが実行される場合、たとえば、複数のサーバーに CA の負荷を分散してパフォーマンスや障害許容力を向上させている場合などでは、CPS が共有されることもあります)。 組織や証明書の用途によっては、CP と CPS は、法律文書または法的な放棄声明文書とみなされることがあります。 これらを作成する場合は通常、法律の専門家の助言を必要としますが、これについてはここでは説明しません。 ただし、どちらの文書も PKI の一部として作成する場合に厳格な要件はありません。 これらの文書を作成する特定の法的または商業的理由がない場合は、公式な証明書ポリシー ステートメントと CPS を作成して管理する必要はありません。 公式な CP または CPS が必要ない場合でも、証明書ポリシーと運用方法は文書化する必要があります。 証明書ポリシーは組織のセキュリティ ポリシー全体の一部であり、運用方法はセキュリティ管理手順の一部となります。 これを非公式の CPS と言います。 PKI の使用目的に基づいて、公式なポリシー ステートメントと CPS を作成するかどうかを判断する必要があります。 公式な CPS が必要な場合、それを公開して CA 証明書にその参照情報を記載しなければならないことがあります。 このソリューションには公式な CPS の記述方法に関するガイドはありませんが、CPS を公開する方法については、「第 7 章 : 公開キー基盤を実装する」を参照してください。 通常、非公式な CPS を公開する必要はありません。 この章の以降のセクションでは、決定事項を CPS に文書化することを指示する内容の記載が何度も登場します。 この手順は、公式な CPS の場合も非公式な CPS の場合も同様です。 CPS の作成方法に関するその他の資料については、この章の最後にある「関連情報」を参照してください。 証明書の用途を特定するPKI の設計プロセスの最初の手順は、証明書を使用する用途をリストにして特定することです。 用途ごとに、必要な証明書の種類とおおよその数を記載する必要があります。 この段階では、証明書の詳細を指定する必要はないので、簡単に記述します。 セキュリティで保護されたワイヤレス ソリューションに使用する場合は、ワイヤレス クライアント用の証明書、および Windows Remote Authentication Dial-In User Service (RADIUS) サーバー用の証明書が必要です。 Microsoft RADIUS サーバーは Windows Server のコンポーネントであり、インターネット認証サービス (IAS) と呼ばれる役割を果たします。 必要な証明書の種類を、次の表に示します。 このソリューションでは必ずしも必要ではありませんが、PKI はドメイン コントローラに対しても証明書を発行します (Windows Server 2003 Enterprise CA がフォレスト内にインストールされている場合、これが既定の設定です)。 表 4.1: セキュリティで保護されたワイヤレス ソリューションの証明書要件 セキュリティで保護された WLAN | ユーザー用クライアント認証証明書 | WLAN へのアクセスが必要なすべてのユーザー | | コンピュータ用クライアント認証証明書 | すべてのワイヤレス LAN コンピュータ | | IAS サーバー用サーバー認証証明書 | すべての IAS サーバー | Active Directory | ドメイン コントローラ認証 | フォレスト内のすべてのドメイン コントローラ |
将来的には、次の表に挙げた用途に対しても証明書を発行できるように PKI を拡張することができます。 表 4.2: 将来可能になる証明書要件 クライアント アクセス仮想プライベート ネットワーク (VPN) | コンピュータ クライアント認証 (IPsec) | すべてのリモート VPN クライアント | 支社間の VPN | VPN サーバー認証 (IPsec) | すべての VPN ルーター | IP セキュリティ (IPsec) | コンピュータ クライアント認証 | IPsec を必要とするすべてのクライアント コンピュータおよびサーバー コンピュータ | Web セキュリティ | イントラネット Web アプリケーションに対するユーザーの認証 | すべてのユーザー | | イントラネット Web サーバー | セキュリティで保護されたイントラネット Web サーバー | 暗号化ファイル システム (EFS) | EFS ユーザー | すべてのユーザー | | EFS データ復元 | 復元エージェント | セキュリティで保護された電子メール | Secure/Multipurpose Internet Mail Extensions (S/MIME) 署名および暗号化 | すべての電子メール ユーザー | | キー復元 | 復元エージェント | スマート カード | スマート カード ログイン | ドメイン ユーザー | コード署名 | 内部コードとマクロ署名 | コード リリース マネージャ |
証明書クライアントを定義する前のセクションで挙げた用途に対して、証明書を使用するクライアントを定義する必要があります。 ここで言う "クライアント" とは、PKI によって発行される証明書を使用する人員、ソフトウェア プロセス、またはデバイスのことを指します。 たとえば、ユーザー、サーバー、ワークステーション、ネットワーク デバイスも、ここで言うクライアントになります。 発行された証明書が使用される経緯について理解するには、証明書のサブジェクト (またはエンド エンティティ) とその他の証明書ユーザーという 2 つの主なカテゴリにクライアントを分けて考える必要があります。 エンド エンティティとは、PKI によって発行された証明書を持つクライアントです。 証明書のサブジェクトフィールドまたはサブジェクトの別名フィールドには、クライアントがその証明書の所有者であることを示す 1 つ以上のエントリ (ホスト名、電子メール アドレス、ディレクトリの識別名など) が登録されます。 もう 1 つのカテゴリである証明書ユーザーは、たとえば、エンド エンティティの証明書を確認するか、またはディレクトリで検索する必要があるクライアントですが、必ずしも PKI によって発行された証明書を持っているとは限りません。 この違いを一般的な例で説明すると、インターネットのユーザーが安全な Web サイトで買い物をした場合、このユーザーはその Web サイトの SSL (Secure Sockets Layer) 証明書のユーザーということになります。 しかし、この Web サイトは証明書のエンド エンティティであり、その ID (www.woodgrovebank.com) は証明書のサブジェクトフィールドにエンコードされます。 証明書のサブジェクトだけが証明書の秘密キーを使用することができ、証明書の他のユーザーは使用できません。 注 : 証明書のサブジェクトは、ほとんどの場合その証明書自体のユーザーであり、通常は他の証明書のユーザーでもあります。 注 : 技術用語としては "エンド エンティティ" が正しい用語ですが、この章では主に、より一般的な用語である "証明書のサブジェクト" を使用します。 証明書のサブジェクトと証明書のユーザーの両方について、次の質問に回答することにより、各クライアントの種類を分類する必要があります。 | • | クライアントは人、コンピュータ、デバイス、またはソフトウェア プロセスか。 | | • | 証明書を使用するプラットフォーム (オペレーティング システムのバージョン) は何か。 | | • | クライアントのネットワーク上の位置はどこか。 たとえば、クライアントは内部 LAN に接続しているか、パートナーの組織内にあるのか、またはインターネット上にあるのか。 | | • | クライアントはドメイン メンバか。 ドメイン メンバの場合、CA とは別のドメインまたはフォレストにあるのか。 ドメインは信頼できないものなのか。 | | • | クライアントが処理する必要のある作業は何か。 たとえば、証明書の登録、証明書の署名、証明書の信頼の検証、ディレクトリ内の証明書の検索、証明書失効状況の確認などのどれか。 |
この分類は、多くの設計上の決定基準、たとえば証明書を発行する方法、特定の証明書に配置できる信頼のレベル、証明書失効情報を公開する方法などに影響します。 このソリューションでのクライアントの分類を、次の表に示します。 表 4.3: 証明書のサブジェクト (エンド エンティティ) の分類 ワイヤレス クライアントの認証 | ユーザー | Windows XP | 内部ネットワーク | ドメイン メンバ | – 登録 – 認証 | ワイヤレス クライアントの認証 | コンピュータ | Windows XP | 内部ネットワーク | ドメイン メンバ | – 登録 – 認証 | IAS サーバーの認証 | コンピュータ | Microsoft Windows Server™ 2003 | 内部ネットワーク | ドメイン メンバ | – 登録 – 認証 – チャネルのセキュリティ保護 |
このアプリケーションでは、証明書のユーザーが同一のクライアントになりますが、役割は予約済みです。 たとえば、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 トークン) | 高 | 候補にされた登録担当者の署名と証明書マネージャの承認 | 耐タンパー性のハードウェア トークン (スマート カードまたは USB トークン) |
この表の分類には重なる部分もあります。 ここでの分類は、技術上の厳密な分類ではなくポリシーによる分類です。 組織では、証明書の処理方法に関してポリシーに記載された決定に基づき、分類の基準を定めます。 一般的には、高保証の証明書が利用されることはあまりなく、どちらかと言えば標準保証の証明書が利用されることの方が普通です。 重要 : この章では、"低価値" とか "低保証" の証明書という語の代わりに "標準価値" とか "標準保証" の証明書という語を使用します。前者はネガティブな響きがあり、"標準" の方が本来の意味に近いためです。 上の表で定義した保証の分類は、サブジェクトの種類別に分類するとさらに細分化できます。 一般的な分類は次のとおりです。 | • | コンピュータ別 : 実際に組織内にある任意のコンピュータ、またはデバイス | | • | 内部ユーザー別 : 同等とみなされる正社員または職員 (契約スタッフなど) | | • | 外部ユーザー別 : 組織の外部に存在する、業務上または法的な関連のあるその他のエンティティ (ビジネス パートナー、顧客など) |
このように分類する理由は、通常サブジェクトの種類によって適用される証明書ポリシーがかなり異なるためです。つまり、証明書の発行、失効、または更新の際の条件はかなり異なります。 証明書を発行する計画がない分類対象についても、その分類に適用できる証明書ポリシーを記載しておくと、ポリシーと CPS を適切に準備できます。 次の表は、保証レベルごとの分類とサブジェクトごとの分類を組み合わせた結果を示したものです。 表 4.6: 証明書のセキュリティの分類 標準保証のコンピュータ証明書 | – コンピュータのドメインの資格情報に基づいた自動承認 – 年度更新 | – WLAN コンピュータ – IPsec | 中程度の保証のコンピュータ証明書 | – 証明書マネージャの承認が必要 – ソフトウェアでのキー ストレージ – 年度更新 | – Web サーバー – IAS サーバー認証 | 高保証のコンピュータ証明書 | – 証明書マネージャによる承認 – ハードウェア セキュリティ モジュール (HSM) でのキー ストレージ | – 証明機関 – セキュリティ保護されたタイム サービス – 登録機関 | 標準保証の内部ユーザー証明書 | – ユーザーのドメインの資格情報に基づいた自動承認 – 年度更新 | EFS ユーザー | 中程度の保証の内部ユーザー証明書 | – 証明書マネージャまたは登録担当者の承認が必要 – スマート カードまたはソフトウェアでのキー ストレージ – 年度更新 | – セキュリティ保護された電子メール – 低価値または中程度の価値の財務承認 – スマート カード ログオン – 内部コード署名 – データ復元エージェント – キー復元エージェント | 高保証の内部ユーザー証明書 | – 証明書のサブジェクトの物理的な ID 確認が必要 – 証明書マネージャの承認が必要 – 要求時に登録部門の署名が必要 – スマート カードでのキー ストレージ – 6 か月更新 | – 高価値の財務承認 – 民間のコード署名 | 標準保証の外部証明書 | – 事前に割り当てられたパスワードに基づく自動承認 – 年度更新 | クライアント認証 (インターネット Web サイトの認証) | 中程度の保証の外部証明書 | – 証明書マネージャの承認が必要 – スマート カードでのキー ストレージ – 6 か月更新 | ビジネス対ビジネス (B2B) 財務承認 | 高保証の外部証明書 | – 証明書のサブジェクトの物理的な ID 確認が必要 – 証明書マネージャの承認が必要 – 要求時に登録部門の署名が必要 – スマート カードでのキー ストレージ – 6 か月更新 | 非常に高価値の B2B トランザクション |
注 : 使用する必要がない分類は、作成しなくてかまいません。 分類の方法は、これより単純にすることも複雑にすることもできます。なお、このすべての組み合わせの証明書を発行する必要はありません。 技術的には、これらのさまざまな種類の証明書サブジェクトをすべて同じ方法で扱うことができます。 ただし、通常はサブジェクトの種類ごとに異なるセキュリティ ポリシーを定義します。たとえば、社内従業員は別の組織の職員とは別に扱われます。 異なる証明書ポリシー (および、さまざまな CPS での具体化) は、これらのさまざまな証明書の種類を発行する CA の構成方法の決定に影響します。 これについては、後述します。 さらに、最終的に同じ管理者が上記の 3 つの分類の証明書ユーザー (PKI 用語では "エンド エンティティ") に対して発行された証明書に責任を持つかどうかを検討する必要があります。 多くの組織では、コンピュータが正規のドメイン メンバであることを認定できる担当者と、パートナー企業の身元情報を認定できる担当者は同じではありません。 CPS には、この責任関係を記述する必要があります。 アプリケーションの証明書のセキュリティを定義する前のセクションで定義した証明書のセキュリティ分類は、設計用の証明書の種類を分類する場合に使用できます。 その分類を、次の表に示します。 表 4.7: 証明書のセキュリティ要件 クライアント認証 - ユーザー | 標準保証のコンピュータ証明書 | –Windows XP –Windows Server 2003 | 内部 | 自動 (ドメイン認証) | 中 | 中 | クライアント認証 - コンピュータ | 標準保証のユーザー証明書 | –Windows XP –Windows Server 2003 | 内部 | 自動 (ドメイン認証) | 中 | 中 | IAS サーバー認証 | 中程度の保証のコンピュータ証明書 | –Windows XP –Windows Server 2003 | 内部 | 手動 | 中 | 中 |
上記の大まかな要件を使用して、この章の後半の「証明書プロファイルを構成する」ではより詳細に特定の証明書プロファイルを構成します。 証明書の目的を組み合わせる複数のアプリケーション機能 (または使用法) を組み合わせて 1 つの証明書にすることができます。これにより、1 つの証明書を使用して電子メールに署名したり、ネットワークにログオンしたり、アプリケーションへのアクセスを許可することができます。 複数の使用法を 1 つにまとめることができれば、証明書サーバーとディレクトリ サーバーにかかる管理コストおよびストレージ コストの削減につながります。 ただし、多目的の証明書には短所もあります。 たとえば、用途が異なると、証明書の承認プロセスも異なる場合があります。 複数の証明書を使用する理由はほとんどが技術的なものですが、通常は、用途によって証明書のセキュリティ レベルが異なることが最大の理由です。つまり、証明書と証明書のサブジェクトを結合する保証レベルはさまざまです。 このような違いは、次に示す事項のいずれかまたはすべてに存在します。 | • | 証明書の承認プロセス | | • | キーの長さ | | • | キーのストレージ メカニズム | | • | 証明書の有効期間 |
このため、複数の証明書使用法を組み合わせる場合、一般的にはセキュリティ レベルが同じものを組み合わせるのが最適です。 このソリューションで使用されるクライアント認証証明書には、IPsec やコンピュータ認証など、他の標準的な用途の使用法も含まれます。 他の証明書の使用法に対する要件を定義すると、それらの要件を組み込んで証明書を再発行できます。その場合、証明書の更新が必要となり証明書テンプレートの定義から始めることになる可能性があります。 ただし、IAS サーバー証明書は、中程度の保証の証明書であるとみなされます。 承認されていないサーバー証明書がもたらす脅威は、不正なクライアント証明書による脅威よりはるかに危険です。 したがって、サーバー証明書はより慎重に扱ってください。マイクロソフトでは、サーバー証明書に標準保証の用途の使用法を組み合わせることはお勧めしていません。 証明機関の階層を設計する組織の証明書ベースのアプリケーションをサポートするには、必要に応じて 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 は主に、コンピュータまたはユーザーに対しては標準保証 ("技術的" と言う場合もあります) 証明書を、コンピュータに対してはより高価値の証明書を発行します。 この設計を使用すると、セキュリティ保護されたワイヤレス 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 が必要になります。 | 登録サービス – 証明書の更新 | 自動更新を使用した場合、既定値で以前の証明書が失効する 6 週間前に更新が行われます。 一方、CA のバックアップからの復元時間は、通常 1 時間単位で測定されます。 証明書を手動で更新する場合、そのまま所有者が更新します。 重要な証明書の更新時期が来ると所有者に警告する、自動警告システムを構築する方法もあります。 その他の点では、可用性の条件は新しい証明書の登録と同じです。 | 証明書を無効にする | 通常、証明書を無効にできるのはその証明書を発行した 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 つだけになります。 HSM を使用して CA キーを保護するこのガイドで説明している基本ソリューションのセキュリティを強化する重要な方法の 1 つは、HSM を使用してすべての CA の秘密キーを保護することです。 HSM は多くの場合多大なコストがかかり、CA サーバーのコストを超えることもあります。ただし、HSM を組織の環境に導入することで得られるセキュリティ レベルはかなり高度なものです。 この方法を採用すると、CA キー操作の実施を許可されたユーザーのみに制限できます。 機密性の高い操作 (CA キーのエクスポートやバックアップなど) を保護するには、通常、複数のスマート カードを使用します。 この方法は、ソフトウェアベースのキーのみに依存する方法より安全です。ソフトウェアベースのキーは、ローカルの Administrators グループまたは Backup Operators グループのメンバであれば誰でも、CA からコピーできるためです。 HSM を採用すると、多くのセキュリティ上の利点が得られるだけでなく、CPU の負荷が専用の暗号化加速プロセッサに分散されるため、CA の処理速度も向上します。 CA のセキュリティここでは、オペレーティング システムと物理的なセキュリティ、セキュリティの監査と監視、役割を使用した CA の管理責任の委任など、CA のセキュリティについて説明します。 オペレーティング システムのセキュリティCA のセキュリティは、Windows セキュリティ ポリシーを使用することで保護されます。 ポリシーは、「Windows Server 2003 セキュリティ ガイド」の証明機関サーバーの役割に基づいて設定されます。 この役割で使用されている設定の詳細については、「第 7 章 : 公開キー基盤を実装する」を参照してください。 ルート CA のセキュリティ設定は、セキュリティ テンプレートを使用して直接適用されるのに対し、発行 CA の設定は、グループ ポリシーを使用して適用されます。 物理的なセキュリティCA サーバーの物理的なセキュリティは、最も重要です。 基本的にサーバーへの物理的アクセスを制御できない場合、ネットワークやオペレーティング システムをいくら保護しても意味はありません。 ルート CA は、サーバーへのアクセスが厳しく制御されている場所に配置する必要があります。 この CA に実際にアクセスする必要はあまりなく (年に 2、3 回程度)、それ以外でサーバーの電源をオンにする必要はありません。 つまりこのサーバーは、安全な場所であれば、サーバー ルームにあるような標準的なコンピュータ設備がない部屋に設置することもできます (たとえば、ネットワーク、高度なサーバー設備、特別な電源/温度管理などは必要ありません)。 発行 CA も、物理的アクセスが厳しく制御されている場所に配置する必要があります。 攻撃者がコンピュータ システムに物理的にアクセスできる場合、そのセキュリティを侵害する方法は数多く存在するため (ネットワーク経由で実行可能な攻撃とはまた別です)、物理的なセキュリティは重要です。 このサーバーは常にオンライン状態にしておく必要があるため、標準的なコンピュータ サーバー ルームの設備 (空調設備、電源管理、防塵フィルタ、防火設備など) を備えた場所に設置します。 可能であれば、どちらのサーバーも火災や洪水など外的な災害による被害の心配がない場所を選んで設置してください。 バックアップ、キー マテリアル、およびその他の構成データに対する物理的なアクセスを制御し、物理的な安全性を確保することも同様に重要です。 自然災害や火災などによってサイト全体が使用できなくなった場合でも CA を復元できるように、この情報はサーバーとは別の場所に保管する必要があります。 CA のセキュリティ管理証明書インフラストラクチャは、潜在的に非常に高価な資産です。 価値の高さは、現在だけでなく、5 年後またはそれより先の時点で、組織が証明書をどのような用途に使用するかによって決まります。 したがって、CA のインストール、構成、および管理を扱う際には、他の IT インフラストラクチャをインストールする場合に比べ、より厳しいセキュリティと検証手段を用いる必要があります。 そのための手段は、少なくともドメイン コントローラ用に設計されたものと同等である必要があり、 場合によっては、それよりも高度なレベルのセキュリティが必要になることもあります。 CA の信頼度は、その CA が安全に設定され管理されていると確信できる度合いによって決まります。 CA の秘密キーが密かにコピーされていることはないと保証できないなら、その CA が発行したと見られる証明書が偽造ではないと確信することはできません。 このような保証または信頼のレベルは、あとから向上させることは容易ではありません。このような特別なステータスを、CA に関するすべての作業に最初から組み込むことが必要です。 たとえば、CA へのすべてのアクセスが正当なものであったことを示す監査記録やその他の証拠があれば、CA の秘密キーは侵害されていないという事実をはるかに強く確信することができます。 たとえば、CA のすべての管理操作が、管理者以外の第三者によって目撃されているかビデオで録画されていれば、そのような証拠になります。 オフライン CA の場合は、ネットワークに接続されたことがないという事実により、セキュリティを破られたかもしれないという可能性は大幅に低下します。 特に、組織が発行した証明書の有効性をめぐって法的な争いになった場合、このような高いレベルの保証が必要です。 この場合、CA のセキュリティが破られていないことを示す証拠があれば、好ましい結果が得られる可能性ははるかに高くなります。 この件については、ここではこれ以上詳しく扱いません。詳細については、組織の監査担当および法律顧問にご相談ください。 CA の保証レベルを大幅に向上させる手段について、いくつか例を示します。 | • | CA の物理的なセキュリティを確保して、許可されていないユーザーが CA ハードウェアまたはバックアップ メディアにアクセスできないようにします。 | | • | すべてのインストールと構成手順を証人の立会いの下で実行します。主なインストール手順を記録し、手順が正常に実行されたことを確認する連署を証人にしてもらいます (その他、インストールの様子をビデオテープに記録し、信頼できる第三者にそのビデオテープのコピーを委託する方法もあります)。 | | • | ルート CA 上でも同様の条件の下で、すべての証明書の発行と失効処理を実行します。 ルート CA へのすべてのアクセスに署名するのが理想的です。 | | • | 管理者として CA にアクセスできるユーザーは、必ず一意に追跡可能な個別のアカウントを持つようにします。 CA 上のあらゆる処理を監査します。 | | • | CA 上の役割分離を有効にすることを検討します (これについては、あとで詳しく説明します)。 |
ルート CA サーバーの場合、このような対策は特に重要です。 発行 CA は、発行する必要のある証明書の種類に応じて、低保証のレベルにすることができます。 たとえば、CA が高価値の証明書を発行していない場合 (コンピュータやユーザーのネットワーク認証など標準証明書のみの場合)、この CA のセキュリティ レベルは、ドメイン コントローラに使用するほど高いものにする必要はありません。 ルート CA が高い保証レベルを備えている限り、保証レベルがより高い発行 CA をあとから追加すれば、より価値の高い証明書を自由に発行できます。 既存の標準保証の CA と平行して、高保証の CA を保持できます。 ただし、ルート CA を比較的セキュリティの低い環境にインストールして構成し、あとで高価値の証明書を発行する必要が生じた場合は、ルート CA を再インストールするか、新しいルート CA を作成する必要があります。 セキュリティの監視と監査オペレーティング システムと証明書サービスの監査を、すべての CA 上で行います。 監査を効果的に行うには、監査作業や疑わしい項目を監視する必要があります。 証明書サービスの監査イベント エントリの重要性については、「第 11 章 : 公開キー基盤を管理する」を参照してください。 管理役割証明書サービスを利用すると、管理役割の委任機能をさまざまに活用できます。 このソリューションでは、この機能を利用して柔軟性の高い PKI 管理方法を実現しています。 証明書サービスにより定義された中心的な管理役割はそれぞれ、ドメイン セキュリティ グループを使用するか、オフライン CA の場合はローカル セキュリティ グループを使用して実装されています。 さらに、このソリューションではあと 2 つの役割とセキュリティ グループが定義されており、これは Active Directory の PKI コンポーネントを介した管理業務の委任に使用されます。 これらの役割と、組織内の個々の IT 担当者は必ずしも 1 対 1 で対応しないことを理解する必要があります。 ほとんどの組織では、1 人の担当者が多くの役割を果たしています。 担当者を次の表のセキュリティ グループのいずれかまたはすべてに当てはめると、簡単に実装できます。 一方、組織の管理責任の区分がもっと複雑な場合は、それに対応する機能があります。 次の表は、実装する役割と実装先のセキュリティ グループとの対応を示したものです。 表 4.9: 中心となる証明書サービスの役割 エンタープライズ PKI 管理者 (Enterprise PKI Administrator) | Enterprise PKI Admins | Active Directory フォレスト | PKI 全体に責任を持ち、エンタープライズ用の証明書の種類、アプリケーション ポリシー、信頼パスなどを定義する。 | エンタープライズ PKI 発行者 (Enterprise PKI Publisher) | Enterprise PKI Publishers | Active Directory フォレスト | ディレクトリに対する信頼されたルート証明書、サブ CA 証明書、および CRL の公開を担当する。 | CA 管理者 (CA Administrator) | CA Admins | CA | CA の構成を担当する。 多くの場合、エンタープライズ PKI 管理者および管理者役割と同じ担当者が兼務します。 証明書の使用法で指示されている場合は、CA ごとに複数の CA 管理者が割り当てられます。 | 管理者 (Administrator) | ローカル Administrators | CA | CA オペレーティング システムとサーバーを管理し、 CA のインストールと CA 証明書の更新を担当する。 通常、CA 管理者の役割の担当者と作業を分担します。 | CA 監査人 (CA Auditor) | CA Auditor | CA | 監査イベント ログやポリシーなど、CA の監査可能なイベントを管理する。 | 証明書マネージャ (Certificate Manager) | Certificate Manager | CA | 手動による承認が必要な証明書について、要求の承認と証明書の失効を行う。 証明書の使用法で指示されている場合は、さまざまな CA の承認を複数の証明書マネージャが担当することができます。 | 登録機関 (Registration Authority) または 登録担当者 (Enrollment Officer) | [未定義] | 証明書プロファイル | 証明書マネージャの役割を拡張したもの。 帯域外 ID 検証後の、証明書要求の承認と署名を担当する。 人が担当することも、IT プロセスまたはデバイス (指紋スキャナやデータベースなど) に行わせることもできます。 証明書プロファイル (テンプレート) ごとに異なる登録機関を指定することも、複数の CA にまたがることもできます。 | キー復元エージェント (Key Recovery Agent) | [未定義] | CA | CA データベース内のアーカイブ形式の秘密キーを解読するためのキーを保持する。 | CA バックアップ オペレータ (CA Backup Operator) | CA Backup Operator | CA | CA サーバーのバックアップと復元、およびバックアップ メディアの安全な格納を担当する。 |
これらのセキュリティ グループは汎用的なドメイン グループとして実装され、発行 CA とディレクトリに適用されます。 ルート CA の場合、同等のグループはローカル グループとして実装されます (オフライン CA の場合、Enterprise PKI Admins と Enterprise PKI Publishers に相当するものはありません)。 このソリューションでは、同じセキュリティ グループが企業内のすべての CA に対して使用されることを想定しています。 実際の組織に有効でない場合は、範囲が CA であるすべての役割について、CA ごとに別個のグループを実装してください (この場合、CA Admins を Issuing CA 1 にするなど、適切に名前を変更する必要があります)。 このソリューションでは、登録機関 (Registration Authorities) または登録担当者 (Enrollment Officer) とキーのアーカイブおよび復元が実装されていないため、これらの役割によってセキュリティ グループが定義されていません。 CA の役割は、1 つの CA 用に強制的に分離することができます。 これを行うと、複数の役割グループのメンバになっているユーザーは、すべての役割グループの権限にアクセスすることを拒否されます。 役割の分離は、このソリューションでは実装されていません。 Active Directory 統合CA は、エンタープライズ モード (Active Directory 統合) またはスタンドアロン モードでインストールすることができます。 この 2 つのモードの主な違いは、エンタープライズ CA の場合、構成情報の保存に Active Directory を使用する必要があり、Active Directory を登録機関として使用できるとともに発行した証明書を自動的にディレクトリに公開できますが、 スタンドアロン CA の場合、証明書と CRL をディレクトリに公開できる点は同じでも、これに Active Directory は必要ありません。 この詳細を説明した参考資料については、この章の最後にある「関連情報」を参照してください。 ルート CA はオフライン状態であるため、スタンドアロン サーバーとしてのみ構成できます。 オフラインの中間 CA を組織の環境に展開する予定がある場合は、それらの CA についても同様です。 発行 CA は、次の理由からエンタープライズ CA として構成されます。 | • | このソリューションで使用する証明書では、証明書の自動登録と自動承認が必要であるため。 | | • | このソリューションでは証明書テンプレートが必要であるため。証明書テンプレートを使用すると、複数の種類の証明書 (多くの場合、複数の CA にまたがって存在します) を容易に管理できるという大きな利点があります。 | | • | IAS でワイヤレス クライアントが認証される際、信頼された証明書のマッピングを実行するために Active Directory が必要となるため。 発行 CA が NTAuth ストアに登録されていないと、この処理は許可されません。 | | • | 対応するユーザー オブジェクトまたはコンピュータ オブジェクトに対して証明書を自動公開できるため (ただし、このソリューションでは必要ありません)。 | | • | 発行 CA では、証明書要求や発行する証明書に使用するサブジェクト名情報を取得できる、信頼済みのソースが必要となるため。Active Directory を利用すると、ディレクトリに保存されているユーザーやコンピュータの属性値に基づいて、これらの情報を入手できます。 | | • | スマート カード ログオン用の証明書が将来必要になる可能性があるため。この場合、エンタープライズ CA を使用すると実装が非常に容易になります。 注 : エンタープライズ CA では、上に挙げた機能を既定で利用できます。ただし、スタンドアロン CA でも、正しく構成すれば一部の機能を利用できるようになります。 この詳細については、証明書サービスの製品ドキュメントに記載されています。 この章の最後で紹介している資料を参照してください。 |
CA をドメインにインストールする組織でマルチドメイン構成のフォレストが構築されている場合 (またはフォレストそのものが複数ある場合) は、CA をインストールするドメインを決定する必要があります。 この決定は、別のドメインの管理者に制御を委任する必要性の有無、組織の各部署への証明書の提供に影響する国または地域の規制の有無など、さまざまな要因の影響を受けます。 最も一般的なアプローチは、CA をフォレスト ルート ドメインまたは管理を目的として設けられた専用ドメインにインストールする方法です。 CA は、長期間にわたって安定して存在するドメインにインストールする必要があります (CA の名前、ドメイン メンバシップ、および DNS ドメイン名については、インストール後に変更することはできません)。 また、コンピュータ アカウントのセキュリティや整合性を保証できないドメインに CA をインストールすることは避ける必要があります。 複数の CA を同じドメインにインストールすれば一元管理が容易になりますが、必ずしもこのようにする必要はありません。 このソリューションでは、CA サーバー アカウントはフォレスト ルート ドメインにインストールされます (エンタープライズ発行 CA のみ)。単一のドメインで構成されているフォレストの場合は、そのドメインにインストールされます。 Certificate Practices Statements (CPS) を CA にマップするCPS の公開を予定している場合は、CPS の範囲を決定する必要があります。 CPS は CA 階層の全体または一部を範囲として作成することができます。また、CA ごとに CPS を用意することもできます。 後者の方法を使用すると、柔軟性は最も高くなりますが、複数の CPS を管理する際に生じるオーバーヘッドが増加します。 標準的な方法は、個々の CA に対して、または証明書ポリシー、サブジェクトの種類、およびセキュリティ レベルが共通しているひとまとまりの CA に対して、CPS を作成する方法です。 これらの条件が CA 間で大幅に異なっている場合には、複数の CPS を使用しなければならないことがあります。 障害許容力やパフォーマンスの強化のためにまったく同じ CA が多数展開されている場合には、それらの CA の CPS は同じにする必要があります。 既に説明したように、CPS を作成しても非公開にしておくことは、完全に正当的な行為です。 たとえば、CPS に運用やセキュリティに関する内部向けの情報が含まれていると考えられる場合には、CPS を外部に対して非公開にできます。 また、重要な CA 運用ポリシーが記載されている CPS に関しては、内部向けの詳細な運用情報が開示されないように、簡略版の CPS を公開することができます。 CPS を公開し、その場所を CA 証明書に表示する場合は、国際標準化機構 (ISO) により組織に割り当てられている公式のオブジェクト識別子 (OID) 名前空間から、証明書ポリシー用の OID を取得する必要があります。 証明書ポリシーは組織に固有のものであるため、特定するにはグローバルに一意な OID が必要です。 この証明書ポリシーの OID (CP OID) は、組織の各証明書に証明書拡張子としてエンコードされます。 "証明書拡張子" とは、証明書のデータ フィールドの一種です。 この拡張子には URL が組み込まれており、その証明書を発行した CA に適用される CPS の場所を示します。 証明書の目的や出所を示すためのユーザーへの通知をテキストとして含めることもよく行われています (ただしこのテキストは 200 文字以内に制限されているため、CPS ドキュメント自体の代わりにはなりません)。< |