セキュリティ ウォッチWindows での PKI の機能強化

John Morello

このコラムは、Windows Server 2008 のプレリリース版に基づいています。記載されている内容は変更されることがあります。

Windows 2000 のリリース以降、Windows には公開キー基盤 (PKI) に対する強力なプラットフォーム規模のサポートが取り入れられてきました。Windows 2000 には最初のネイティブの証明機関機能が含まれており、自動登録が導入され、スマートカード認証のサポートが提供されました。Windows XP および Windows Server 2003 では、

それらの機能が強化され、バージョン 2 証明書テンプレートとユーザー証明書の自動登録のサポートによって、より柔軟な登録オプションが提供されています。Windows Vista® および Windows Server® 2008 (以前のコードネーム "Longhorn") では、Windows® PKI プラットフォームは次の段階に進み、高度なアルゴリズム、リアルタイムの有効性チェックがサポートされ、管理が容易になっています。このコラムでは、Windows Vista および Windows Server 2008 の新しい PKI 機能と、コスト削減とセキュリティ向上を実現するために企業がそれらの機能をどのように利用できるのかについて説明します。

Windows Vista および Windows Server 2008 での PKI の機能強化は、4 つの柱を中心に行われています。その柱は、暗号化、登録、管理容易性、および失効です。このような機能固有の強化点に加え、新しい証明機関 (CA) をより簡単に作成および展開できるようにする Roles Manager (役割マネージャ) などのその他のオペレーティング システムの進歩による利点も、Windows PKI プラットフォームにとって有益です。また、暗号化ファイル システム (EFS) キーの保存にスマート カードを使用することが Windows Vista でサポートされるなど、Windows のその他の多くの面で、PKI プラットフォームの強化された機能を利用できます。

暗号化

暗号化に対する強化点は 2 つあります。1 つ目は、CNG (Cryptography Next Generation) の導入により、プラグ可能な、プロトコルに縛られない暗号化機能が Windows で提供され、個々のアルゴリズムを開発することや個々のアルゴリズムにプログラムでアクセスすることが容易になりました。2 つ目として、CNG には 2005 年に国家安全保障局 (NSA) によって導入された Suite B アルゴリズムの新しいサポートが実装されています。

CNG は、マイクロソフトの新しいコア暗号化インターフェイスであり、暗号化を認識する今後の Windows ベースのアプリケーションで推奨される API です。CNG では、検出と置き換えをより簡単に行えるアルゴリズム、置き換え可能な乱数ジェネレータ、カーネル モードの暗号化 API など、開発者重視の多数の新機能が提供されます。CNG では、このような新機能を提供する一方で、その前身の CryptoAPI 1.0 で提供されていた一連のアルゴリズムに対する完全な下位互換性も提供されます。現在、CNG は、選択されたプラットフォームでの Common Criteria (共通基準) だけではなく、FIPS (Federal Information Processing Standards) 140-2 レベルの証明書として評価されているところです。

CNG Suite B のサポートには、必要なすべてのアルゴリズムが含まれています。それらのアルゴリズムは、AES (すべてのキー サイズ)、SHA-2 ファミリ (SHA-256、SHA-384、および SHA-512) のハッシュ アルゴリズム、ECDH (Elliptic Curve Diffie-Hellman)、および NIST (National Institute of Standards and Technology) 標準の一次曲線 P-256、P-384、および P-521 を超える ECDSA (Elliptic Curve Digital Signature Algorithm) です。NSA では、認定された Suite B の実装は、Top Secret、Secret、および非公開情報 (過去に、Sensitive-But-Unclassified と記載されていました) に分類される情報を保護するために使用されるとしています。すべての Suite B アルゴリズムは公開されて開発されており、米国以外にも Suite B アルゴリズムを国の標準として採用することを検討する政府があります。

このような下位レベルでの Windows PKI プラットフォームの強化により、長期にわたって保守と機能強化を容易に行えるサブシステムを作成できるだけでなく、よりセキュリティに優れたデータの保護方法が開発者に提供されます。CNG はプラグ可能なアーキテクチャなので、新しいアルゴリズムを必要に応じて追加できます。また、CNG では、アプリケーション レイヤからそれらのアルゴリズムのプロバイダが抽象化されます。最終的に、Windows Vista および Windows Server 2008 は、PKI 対応のアプリケーションおよびサービスを開発するための高度で進化可能なプラットフォームを提供するように設計されています。

登録

証明書の登録に関する Windows のエクスペリエンスは、ウィザードベースの新しい登録ツール、より優れた証明書の有効期限処理、新しい API、"代理登録" 機能、および資格情報の移動によって大幅に強化されています。これらの機能強化により、ユーザーへの影響を最小限に抑えつつ、集中管理された方法で企業内のあらゆる場所に証明書を展開することが容易になり、PKI の総保有コストが削減されます。

登録に関して最も注目すべき変更は、図 1 および図 2 に示す、新しい "証明書の登録" ユーザー インターフェイスです。このユーザー インターフェイスにより、登録処理中にユーザーから提供されるデータを受け付ける機能が不足していた以前の制限付きユーザー インターフェイスが置き換えられました。この新しいユーザー インターフェイスでは、管理者が登録中のデータ入力を要求するように証明書テンプレートを構成している場合、ユーザーは、登録中にデータを入力できます。また、この新しいユーザー インターフェイスには、指定のテンプレートについて、ユーザーが登録を行えない理由が明確に表示されます。

図 1 使用可能な証明書の選択

図 1** 使用可能な証明書の選択 **(画像を拡大するには、ここをクリックします)

図 2 使用できない証明書の状態

図 2** 使用できない証明書の状態 **(画像を拡大するには、ここをクリックします)

登録のインターフェイスに対して行われたもう 1 つの強化点は、有効期限が切れる証明書の処理にあります。新しいインターフェイスには、どの証明書の有効期限がいつ切れるのかについての情報が明確に表示されるので、ユーザーは、同じインターフェイスを使用して、簡単に証明書を更新したり、警告を消去したりすることができます。管理者が自動登録を通じて自動的に証明書を更新できる一方で、企業ネットワークにそれほど頻繁にログオンすることのない、有効期限が近づいている証明書を使用している可能性があるモバイル ユーザーやネットワークから切断状態にあるユーザーにとって、この警告機能は重要です。

証明書の登録を扱う開発者は、以前の ActiveX® ベースのコントロール (xenroll.dll および scrdernl.dll) に大幅な機能強化を提供する新しい API を利用できます。この新しい証明書登録 API には、非常に理解しやすく、以前よりもはるかに簡単にコーディングを行える、適切に定義されたクラス階層が用意されています。この新しい API により、Windows Vista および Windows Server 2008 の両方で xenroll が置き換えられます。

Windows Vista クライアントでは Windows Server 2003 で提供される Web ベースの登録機能を使用できないため、API におけるこの変更は開発者と IT プロフェッショナルの両方に影響します。Windows Vista クライアントで Windows Server 2003 で提供される Web ベースの登録機能を使用できないのは、Windows Server 2003 で提供される Web ベースの登録ページ (既定では /certsrv 仮想ディレクトリに格納されています) で、Windows Vista には存在しない xenroll コントロールが使用されているためです。サポート技術情報の資料「Windows Vista で証明書サービスの Web 登録ページを使用する方法」(support.microsoft.com/kb/922706) に回避策に関する情報が提供されています。Windows Server 2003 から Windows Vista への自動登録は影響を受けません。

Windows Server の以前のリリースでは、登録エージェントに、代理登録の対象者の制限がありませんでした。つまり、あるユーザーに登録エージェントとしての権限が付与されると、フォレスト内の任意のユーザーの代理として登録を行えました。もちろん、このことは、そのユーザーが、任意の既存ユーザーの代理としての登録と、新しく作成された証明書を使用したそのユーザーになりすますことによって、自分の特権を簡単に引き上げることが可能であることを意味します。この脅威を阻止するために、登録エージェントの権限は、信頼性の高い個人にのみ提供されていました。このような方法によってセキュリティを向上させる一方で、他のユーザーの代理として登録する機能が、少数の個人にしか提供されないため、展開モデルは柔軟性を欠いていました。結果として、地理的に分散した大規模な組織では、証明書をエンド ユーザー (スマート カード利用者など) にまで展開する際に、複雑さが増すという問題に直面しました。

Windows Server 2008 では、登録エージェントを、これまでよりもはるかに詳細なレベルで制限できます。図 3 に示すように、代理登録の対象にできるユーザー、またはテンプレートを登録できる対象を制限できます。たとえば、ある組織では現地の IT プロフェッショナルにその支社の人事部以外のすべてのユーザーの代理として登録できる権限を与えることができます。企業では、このようにきめ細かく登録エージェントを使用することにより、より効果的かつセキュリティで保護された状態で、組織全体で登録機能を委任することができます。

図 3 登録エージェントの制限

図 3** 登録エージェントの制限 **(画像を拡大するには、ここをクリックします)

PKI の管理において最も大きな課題の 1 つは、組織のデバイス間に分散したすべてのキーの組を管理することです。それほど複雑ではない PKI 環境でも、指定されたユーザーが複数の異なるキーの組 (EFS、ワイヤレス ネットワークに対する認証、および S/MIME など) を使用している場合があります。それらのキーの組は、ログオンする場所とは無関係に使用できる必要があります。モバイル コンピューティングとターミナル サービスが普及するにつれ、このようなキーの組をネットワーク上で複製し、ログオンする場所がどこであってもユーザーがこれらのキーの組を使用できるようにすることが、これまでになく重要となっています。スマート カードなど、ユーザーが持ち運びできるトークンによって、この問題の一部が解決されますが、カードが提供されないユーザーや、カードに格納されない証明書を持つユーザーが依然として組織内に存在する可能性があります。資格情報の移動では、キーの組と証明書を Active Directory® 内にセキュリティで保護された状態で格納することによりこの問題を解決しているため、ユーザーは、ログオンする場所とは無関係にキーの組や証明書を使用できます。

資格情報の移動は Windows Server 2003 SP1 で最初に実現されたもので、ユーザー プロファイルを使用せずに、証明書とキーをセキュリティで保護された状態でコンピュータ間で移動することができます。Windows Vista および Windows Server 2008 にはこの機能が既定で含まれており、証明書サービス クライアント (CSC) サービスに実装されています。移動できる証明書、競合を解決する方法などの構成オプションは、グループ ポリシーを介して管理されます。また、Windows Vista および Windows Server 2008 の CSC サービスでは、格納されたユーザー名とパスワードも移動できます。この機能が既定で Windows Vista に含まれている一方で、Windows Server 2003 ドメイン コントローラにログオンした場合や Windows XP でも "資格情報の移動" が完全にサポートされることは注目すべきことです (更新プログラムの展開については、support.microsoft.com/kb/907247 を参照してください)。このことは、"資格情報の移動" テクノロジを利用するために Windows Vista の展開が完了するまで待つ必要がないことを意味します。

管理容易性

Windows Server 2008 では、多数のアップグレードが行われ、証明機関 (CA) サービスのセットアップ、監視、および可用性の高い方法での実行を簡単に行えるようにすることにより、CA サービスの管理容易性が向上しています。CA のセットアップは Role Manager (役割マネージャ) ツールに統合されており、CA サービスをインストールするための合理化された方法が提供されます。プロセスの各手順に既定の設定が定義されているので、無人モードでセットアップを実行できるようになりました。また、セットアップには優れた診断機能が備わっており、発生する可能性があるエラーまたは問題の状況のトラブルシューティングを簡単に行えます。

CA サービスの監視機能は、Windows Server 2008 で大幅に強化されました (Windows Vista での全面的な証明書の診断と同様です)。製品全体にわたる、これまでよりもはるかに柔軟なイベント インフラストラクチャに加え、CA サービス自体に監視コンソールが組み込まれています。また、CA サービスでは、以前は MOM として知られていた Systems Center Operations Manager 2007 に接続して、企業レベルのアラート機能が提供されます。Enterprise PKI monitoring console (エンタープライズ PKI 監視コンソール) は、Windows Server 2003 管理ツール パックに含まれていたその前身を機能強化したバージョンです。この新しいコンソールは Windows Server 2008 自体に含まれており、現在では、特定のフォレスト内のすべての CA に加え、オンライン証明書状態プロトコル (OCSP) URI を監視できます。

Operations Manager 管理パックからは、組み込みのしきい値ベースのアラートなどの受動的な監視機能が組織の PKI に提供されます。たとえば、Operations Manager 管理パックを使用して、証明書失効リスト (CRL) の更新を監視し、有効期限の前の特定の日時に CRL が達したときに、PKI 管理者にアラートを表示することができます。また、CS サービス自体の全面的なパフォーマンスのトラブルシューティングと監視に役立つ、多数の新しいパフォーマンス カウンタを使用できます。これらのカウンタを使用して、1 秒間に発行される証明書の数などのデータをキャプチャできます。

Windows Server 2008 には、ある新機能が初めて導入されています。それは、CA サービスのハードウェアレベルでのクラスタ サポートです。このクラスタ サポートでは、標準の Microsoft クラスタ サービス (MSCS) テクノロジが使用され、2 ノードのアクティブ/パッシブ構成がサポートされます。クラスタ サポートにより、発行インフラストラクチャを可用性の高い方式で運用したり、地理的に分散しているクラスタ展開で使用したりすることができます。クラスタ サポートを使用する場合は、単純に CA をクラスタ化するだけでは、PKI 全体の可用性につながらないことに注意してください。クラスタ化では CA 自体を使用することはできますが、PKI が適切に機能するには、多くの場合、CA 上で直接実行されていない他のコンポーネントが必要です。たとえば、失効を実行するためには、CRL 配布ポイント (CDP) と OCSP レスポンダも可用性の高い方式で実行する必要があります。さらに、ハードウェア セキュリティ モジュール (HSM) (特にネットワーク ベースの HSM) を使用する場合、それらによって PKI の潜在的なエラー発生ポイントが示されます。クラスタ化は、CA 自体に高可用性をもたらす強力な新機能ですが、PKI 展開全体における可用性の問題をすべて解決するわけではありません。

失効

CRL は、長い間、証明書の有効性チェックを提供するために使用されてきました。CRL には、有効期限はまだ切れていないが信頼できなくなったすべての証明書のシリアル番号が含まれています。たとえば、ある社員が有効期限が 2008/12/31 の証明書を持っていて、その社員が 2007/9/1 に退職した場合、その証明書のシリアル番号が CRL に登録されます。その後、この CRL は、HTTP パスやライトウェイト ディレクトリ アクセス プロトコル (LDAP) パスなどの複数の CRL 配布ポイント (CDP) で入手できるようになります。

CRL は広範囲で使用することができますが、いくつかの重要な欠点も存在します。1 つ目に、CRL は CA によって定期的に発行されます (通常、1 日に 1 回または 2 回)。その後、クライアントによってその CRL がダウンロードされ、次回発行されるまでその CRL がキャッシュされます。このキャッシュ期間中に、クライアントが最新の状態を認識していないまま、証明書が失効する場合があります。2 つ目に、非常に大規模な組織では、CRL のサイズが非常に大きくなる可能性があります (100 MB を超える場合もあります)。そのようなファイルは、大規模な広範囲にわたるネットワーク上に配布することが難しい場合や不可能な場合があります。特に、支社の場合や帯域幅に制約のあるその他の環境で、このことが当てはまります。

これらの問題を解決するために、OCSP が作成され、RFC 2560 で定義されました。OCSP では、証明書の状態をリアルタイムで検証する方法が提供されます。OCSP クライアントは、リーフ証明書の有効性をチェックする必要があるコンピュータ上で実行されます。次に、このクライアント ソフトウェアは、OCSP レスポンダを参照し、リーフ証明書の有効性の状態を問い合わせるメッセージを送信します。OCSP レスポンダは、リーフ証明書の有効性をチェックし、リアルタイムで OCSP クライアントに応答を返します。この方法により、キャッシュと配布の問題が回避されます。

以前はサードパーティのソフトウェアが必要だった OCSP クライアント機能は、Windows Vista で初めて導入されました。この機能は、グループ ポリシーを介して構成できます。Windows の既定では OCSP が使用されますが、OCSP レスポンダが使用できない場合には標準の CRL 参照が使用されます。

Windows Server 2008 では、このような要求に応答するために OCSP レスポンダが提供されます。OCSP レスポンダは、Role Manager (役割マネージャ) を通じてインストールされ、Operations Manager 2007 管理パックを使用して監視できます。OCSP クライアントと OCSP レスポンダはどちらも OCSP 標準に準拠しているので、同様の標準をベースにしたサードパーティのコンポーネントを使用する既存の OCSP 環境に簡単に統合することができます。たとえば、サードパーティのレスポンダに対して Windows Vista クライアントで証明書の状態がチェックされる機能や、Windows Server 2008 レスポンダに対してサードパーティのクライアント アプリケーションでクエリに応答する機能が完全にサポートされます。さらに、Windows OCSP レスポンダは、任意の標準に準拠する CA によって発行された証明書の要求に応答することができます。Windows Server 2008 CA (および一般に Windows ベースの CA) は必須ではありません。

まとめ

Windows Vista および Windows Server 2008 の PKI プラットフォームには、PKI のセキュリティの向上とコストの削減を同時に満たす方法で展開および運用できるようにする、多数の機能強化といくつかの新機能が含まれています。新しい CNG API により、開発者には、より簡単にプログラミングを行える環境が提供され、新しい暗号化の標準がサポートされます。登録機能の強化により、組織では、大量の証明書をより簡単に提供できるようになり、企業のあらゆる場所にセキュリティで保護された状態でキーを移動できるようになりました。同様に、新しい管理パックと CA クラスタ化機能により、CA の状態の監視が容易になるうえに、高い可用性も確保されます。最後に、失効チェックにおける機能強化では、標準ベースの方法を使用することにより、CRL の配布に労力を費やすことなく、証明書の有効性をリアルタイムで検証できるようになりました。結果として、Windows Vista および Windows Server 2008 の Windows PKI プラットフォームは新しいレベルに進みました。

PKI 機能強化リソース

John Morello は 2000 年からマイクロソフトで勤務しています。シニア コンサルタントとして、フォーチュン 100 企業や、連邦政府の民生向けおよび国防向けのセキュリティ ソリューションの設計に携わってきました。現在は、Windows Server 部門のシニア プログラム マネージャとして、セキュリティおよびあらゆる場所からのアクセスを実現するテクノロジに取り組んでいます。blogs.technet.com/matthewms では所属チームのブログも公開されています。

© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; 許可なしに一部または全体を複製することは禁止されています.