前へ     目次     索引     DocHome     次へ     
iPlanet Web Server, Enterprise Edition 管理者ガイド



第 5 章   Web サーバのセキュリティ


この章では、データを保護し、侵入者のアクセスを拒絶し、必要なユーザがアクセスできるように設計された各種セキュリティ機能を有効にする方法について説明します。iPlanet Web Server 6.0 には、すべての iPlanet サーバのセキュリティアーキテクチャが組み込まれています。iPlanet Web Server 6.0 のセキュリティアーキテクチャは、相互運用性と整合性を最大限確保するため、業界標準および標準プロトコルに基づいて構築されています。

この章を読む前に、公開鍵の暗号法に関する基本概念をよく知っておくことをお勧めします。知っておくべき概念には、暗号化と復号化、公開鍵と非公開鍵、電子証明書および暗号化プロトコルなどがあります。詳細は、次の URL に記述された 「Introduction to SSL」を参照してください。

http://docs.iplanet.com/docs/manuals/security/sslin/index.htm (英語)

Web サーバをセキュリティ保護する手順について詳細は、次の各節で説明します。



認証の要求

認証とは、同一性 (ID) を確認するためのプロセスのことです。ネットワークを利用した対話の中で、一方のグループは、認証によって他方のグループとの同一性を識別します。証明書は、認証をサポートする方法の 1 つです。


認証に証明書を使用する

証明書は、個人、企業、またはその他のエンティティの名前を指定するデジタルデータで構成され、その公開鍵が、証明書に含まれていれば、そのエンティティに属しているという証明となります。クライアントとサーバの両方に証明書を持たせることができます。

証明書は、証明機関 (CA) によって発行され、デジタル署名がなされます。CA は、インターネットを通じて証明書を販売する企業の場合も、企業のイントラネットやエクストラネットの証明書の発行を担当する、企業内の部門の場合もあります。ユーザの同一性 (ID) の検証手段として、どの CA を信頼するかはユーザが決定します。

証明書には、公開鍵および証明書によって識別されるエンティティの名前のほかに、有効期限、証明書を発行した CA の名称および証明書を発行する CA の「デジタル署名」も含まれます。証明書の内容および書式については、「 Introduction to SSL」を参照してください。


暗号化機能を有効にするには、事前にサーバ証明書をインストールしておく必要があります。




サーバ認証

サーバ認証とは、クライアントによる、サーバの確実な ID 、すなわち特定のネットワークアドレスにあるサーバに対して責任を持つとされている組織の ID です。


クライアント認証

クライアント認証とは、サーバによる、クライアントの確実な ID 、すなわちクライアントソフトウェアを使用していると見なされる人の ID です。クライアントは、複数の証明書を所有できます。これは、 1 人の人が数種類の ID を所有しているのと同じことです。


仮想サーバ証明書

仮想サーバごとに、それぞれ異なる証明書データベースを設けることができます。各仮想サーバデータベースには、複数の証明書を格納することができます。仮想サーバも同様に各インスタンス内に複数の異なる証明書を所有できます。



信頼データベースの作成



サーバ証明書を要求する前に、信頼データベースを作成しておく必要があります。iPlanet Web Server では、Administration Server と各サーバのインスタンスが、それぞれ専用の信頼データベースを所有できます。信頼データベースは、ローカルマシン上にだけ作成できます。

信頼データベースを作成するときには、鍵ペアファイルに使用されるパスワードを指定します。このパスワードは、暗号化された通信を使用してサーバを起動させるときにも必要です。パスワードを変更するときに考慮するガイドラインのリストは、「パスワードまたは PIN を変更する」を参照してください。

信頼データベースでは、鍵ペアファイルと呼ばれる公開鍵と非公開鍵を作成し、保存します。鍵ペアファイルは、SSL 暗号化に使用されます。サーバ証明書を要求し、インストールするときには、鍵ペアファイルを使用します。証明書は、インストールしたあとに信頼データベースに格納されます。鍵ペアファイルは、次のディレクトリ内に暗号化されて保存されます。

server_root/alias/<serverid-hostname>-key3.db.

Administration Server は、信頼データベースを 1 つしか所有できません。各サーバのインスタンスは、それぞれ専用の信頼データベースを所有できます。仮想サーバは、そのサーバインスタンスに対して作成された信頼データベースによって網羅されます。


信頼データベースを作成する

信頼データベースを作成するには、次の手順を実行します。

  1. Administration Server または Server Manager にアクセスし、「Security」タブを選択します。

    「Server Manager」 を使用する場合には、はじめにドロップダウンリストからサーバインスタンスを選択する必要があります。

  2. 「Create Database」リンクをクリックします。

  3. データベースのパスワードを入力します。

  4. 操作を繰り返します。

  5. 「OK」をクリックします。

  6. Server Manager を使用の場合には、「Apply」をクリックし、その後変更内容を有効にするため 「Restart」 をクリックします。


password.conf の使用

デフォルトでは、Web サーバが起動する前に、管理者に対してキーデータベースパスワードの入力を求めるプロンプトが表示されます。Web サーバを人的介入なしで自動的に再起動するには、password.conf ファイルにパスワードを保存する必要があります。このファイルとキーデータベースが危険にさらされないようにするために、これを行うのはシステムが充分にセキュリティ保護されている場合に限ります。

通常、サーバは起動する前にパスワードを要求するため、/etc/rc.local ファイルまたは etc/inittab ファイルで、UNIX の SSL 有効サーバを起動することはできません。ファイル内にプレーンテキストでパスワードを保存しておくと SSL 有効サーバを自動的に起動することができますが、これは推奨される方法ではありません。サーバの password.conf ファイルは、root またはサーバをインストールしたユーザだけが所有し、その所有者のみが password.conf ファイルの読み書きアクセス権を持つべきです。

UNIX で、password.conf ファイル内に SSL が有効なサーバのパスワードを保存しておくことは、セキュリティ上のリスクが大きくなります。なぜなら、ファイルにアクセスできるユーザなら誰でも、SSL が有効なサーバのパスワードにアクセスできるからです。したがって、SSL が有効なサーバのパスワードを password.conf ファイルに保存する前に、セキュリティ上のリスクについて検討しておく必要があります。

NT では、NTFS ファイルシステムを使用する場合は、password.conf ファイルを使用しなくても、アクセス制限によって password.conf ファイルの保存されているディレクトリをプロテクトしてください。ただしこのディレクトリには、管理サーバのユーザと Web サーバのユーザに対して読み取り/書き込み許可を持たせる必要があります。ディレクトリをプロテクトしておくと、他者が偽の password.conf ファイルを作成することを防げます。FAT ファイルシステム上では、ディレクトリやファイルへのアクセスを制限しても、ディレクトリやファイルをプロテクトすることはできません。


SSL 有効サーバを自動的に起動させる

セキュリティ上のリスクが問題とならない場合は、以下の手順を実行して SSL が有効なサーバを自動的に起動します。

  1. SSL が有効になっていることを確認します。

  2. サーバインスタンスの config サブディレクトリ内に、新規の password.conf ファイルを作成します。

    • サーバに付属している内部 PKCS#11 ソフトウェア暗号化モジュールを使用している場合には、次の情報を入力します。

      internal:your_password

    • それ以外の PKCS#11 モジュール (ハードウェアの暗号化またはハードウェアアクセラータ用に) を使用している場合は、PKCS#11 モジュールの名前を指定し、その後ろにパスワードを入力します。次に例を示します。

      nFast:your_password

  3. 新しい設定が有効になるように、サーバを停止させてからもう一度起動させます。

password.conf ファイルを作成した後でも、Web サーバを起動させるときには、毎回パスワードを入力するよう求めるプロンプトが表示されます。



VeriSign 証明書の要求およびインストール



VeriSign は、iPlanet Web Server の推奨する証明機関です。VeriSign の VICE プロトコルは、証明書要求プロセスをシンプルにします。Verisign は、直接サーバに対して証明書を返せるという利点があります。

サーバに証明書信頼データベースを作成後、証明書を要求し、証明機関 (Certificate Authority、CA) にこれを提出できます。会社に独自の内部 CA がある場合には、そこから発行される証明書を要求します。商用 CA からの証明書購入を予定している場合には、CA を選定し、CA が必要とする情報の特定の書式を入手してください。Web サイトのリンク先を含む、利用可能な証明機関のリストは、 「Request a Certificate」 ページにあります。CA が必要とする情報については、 「Request a Certificate」 ページの下の 「Server Administrator」 ページおよび 「Server Manager Security」 ページの 「List of Certificate Authorities」 (証明機関リスト) に記載されています。

Administration Server は、サーバ証明書を 1 つしか所有できません。各サーバのインスタンスは、専用のサーバ証明書を所有できます。各仮想サーバについては、サーバインスタンスの証明書を選択することができます。


VeriSign 証明書を要求する

VeriSign 証明書を要求するには、次の手順を行います。

  1. Administration Server または Server Manager にアクセスし、「Security」タブを選択します。

    Server Manager を使用する場合には、はじめにドロップダウンリストからサーバインスタンスを選択する必要があります。

  2. 「Request VeriSign Certificate」リンクをクリックします。

  3. 必要な手順を確認します。

  4. 「Get Certificate」をクリックします。

  5. VeriSign の手順に従います。


VeriSign 証明書をインストールする

VeriSign 証明書を要求し、承認が得られたら、1 〜 3 日ほどで 「Install Verisign Certificate」 ページのドロップダウンリストに証明書が表示されます。VeriSign 証明書をインストールするには、次の手順を行います。

  1. Administration Server または Server Manager にアクセスし、「Security」タブを選択します。

    Server Manager を使用する場合には、はじめにドロップダウンリストからサーバインスタンスを選択する必要があります。

  2. 「Install VeriSign Certificate」リンクをクリックします。

  3. 外部の暗号化モジュールを使用する場合以外は、暗号化モジュールのドロップダウンリストから「internal (software) 」を選択します。

  4. 鍵ペアファイルのパスワードまたは PIN を入力します。

  5. ドロップダウンリストから「Transaction ID to Retrieve」を選択します。

    通常は、一番下の選択肢に該当します。

  6. 「Install」をクリックします。

  7. Server Manager を使用の場合には、「Apply」をクリックし、その後変更内容を有効にするため 「Restart」 をクリックします。



他のサーバ証明書の要求およびインストール

VeriSign のほかに、他の証明機関からの証明書を要求し、インストールすることができます。CA のリストは、 「Request a Certificate」 ページの下の 「Server Administrator」 ページと 「Server Manager Security」 ページで入手できます。会社または組織が独自の内部証明書を提供している場合もあります。この節では、このような他の種類のサーバ証明書を要求しインストールする方法について説明します。


必要な CA 情報

要求プロセスに入る前に、CA が必要とする情報を確認しておく必要があります。商用の CA が発行するサーバ証明書を要求する場合でも、内部 CA に要求する場合でも、次の情報を提供する必要があります。

  • 共通名 (Common Name) は、DNS 検索で使用される絶対パスによるホスト名である必要があります (たとえば、www.iplanet.com)。これは、ブラウザがサイトに接続するのに使用する URL 内のホスト名です。これら 2 つの名前が一致しない場合、証明書名とサイトの名前が一致していないため証明書の認証性に疑いがあることが、クライアントに対して通知されます。CA によっては異なる情報を必要としていることもあるため、これらについて確認することが重要です。

    内部 CA から証明書を要求する場合は、このフィールドにワイルドカードおよび正規表現で入力できます。ほとんどのベンダーでは、共通名の入力にワイルドカードや正規表現を使用した証明書の要求を承認しません。

  • 電子メールアドレスは、ユーザがビジネスで使用する電子メールアドレスです。これは、ユーザと CA との間の連絡に使用されます。

  • 組織は、ユーザの会社、教育機関、提携先などの公式かつ法律上の名前です。ほとんどの CA が、この情報を法的文書 (ビジネスライセンスのコピーなど) で証明するように要求します。

  • 組織単位は、会社内組織について記述する、オプションの (省略可能な) フィールドです。このフィールドには、たとえば Inc.Corp. などを付けないなど、正式ではない会社名を記述しておくのに使用することもできます。

  • 地域は、通常は、組織が所在する都市、郡または地方名を記述する、オプションのフィールドです。

  • 州名は、通常必須ですが、いくつかの CA では省略可能である場合があります。ほとんどの CA では州名の省略形は認められませんが、念のため確認してください。

  • 国名は必須です。国名を 2 文字の省略形 (ISO 書式) で入力します。米国の国コードは US です。

これらの情報の全体は、識別名 (DN) と呼ばれ、属性と属性値のペアの系列のように結合されており、証明書のサブジェクトを一意に識別することができます。

商用の CA から証明書を購入する場合は、証明書が発行される前に、上記のほかにどんな情報が必要とされているのか知るために、事前に CA に確認しておく必要があります。ほとんどの CA では、身分証明書を要求してきます。たとえば、会社名や、会社によってサーバ管理者権限を与えられている人の名前を確認します。そして、場合によっては、提供した情報を使用する法的権利をユーザが持っているかどうかを尋ねられることもあります。

一部の商用 CA では、さらに徹底した識別情報を提供した組織や個人に対して、さらに詳細で正確性の高い証明書を発行します。たとえば、個人が www.iplanet.com というサイトが動作しているコンピュータの正当な管理者であるということを確認したことに加えて、企業が過去 3 年間に渡って運営されており、現在カスタマと係争中の訴訟は無いことを CA が確認したことを記述した証明書を購入することもできます。


他のサーバ証明書を要求する

証明書を要求するには、次の手順を行います。

  1. Administration Server または Server Manager にアクセスし、「Security」タブを選択します。

    Server Manager を使用する場合には、はじめにドロップダウンリストからサーバインスタンスを選択する必要があります。

  2. 「Request a Certificate」 リンクをクリックします。

  3. 新しい証明書か証明書の更新かを選択します。

    多くの証明書は、6 か月や 1 年などの一定期間が経過すると、有効期限が終了になります。自動的に更新した証明書を送信してくる CA もあります。

  4. 証明書の要求を送信する方法を指定するには、次の手順に従います。

    • CA が電子メールのメッセージで要求を受け付けている場合は、 「CA Email」 にチェックマークをつけ、CA の電子メールアドレスを入力します。CA のリストが必要な場合には、 「List of available Certificate Authorities」 をクリックします。

    • Netscape Certificate Server を使用している内部 CA が発行する証明書を要求する場合は、 「CA URL」 をクリックし、Certificate Server の URL を入力します。この URL は、証明書の要求を扱う証明書サーバのプログラムを指定する必要があります。URL の例は、次のとおりです。https://CA.mozilla.com:444/cms

  5. ドロップダウンリストから、証明書を要求するときに使用する鍵ペアファイルの暗号化モジュールを選択します。

  6. 鍵ペアファイルのパスワードを入力します。

    このパスワードは、内部モジュール以外の暗号化モジュールを選択していないかぎり、信頼データベースを作成したときに指定したパスワードと同一です。サーバは、このパスワードを使用して、ユーザの非公開鍵を取得したり、CA に対するメッセージを暗号化します。そして、ユーザの公開鍵と符号化されたメッセージの両方を CA に送信します。CA は、公開鍵を使用してメッセージを復号化します。

  7. ユーザの ID 情報を入力します。

    この情報の書式は、CA によって異なります。これらのフィールドの一般的な説明は、 「Request a Certificate」 ページの下の 「Server Administrator」 ページおよび 「Server Manager Security」 ページの 「List of Certificate Authorities」 (証明機関) に記載されています。これらの情報のほとんどは、証明書の更新の場合には通常必要ありません。

  8. 正確に行うため、入力内容を見直します。

    情報が正確であれば、証明書の承認も早まります。要求を証明書サーバに送るとき、送信する前に、フォーム情報を確認するよう求めるプロンプトが表示されます。

  9. 「OK」をクリックします。

  10. Server Manager を使用の場合には、 「Apply」 をクリックし、その後変更内容を有効にするため 「Restart」 をクリックします。

サーバは、入力した情報を含む証明書要求を作成します。要求には、ユーザの非公開鍵を使用して作成されたデジタル署名が含まれます。CA は、デジタル署名を使用して、サーバマシンから CA に送付されている間、その要求が不正に変更されていないことを確認します。まれに要求が不正に変更されたような場合には、通常 CA から電話などでの連絡があります。

要求を電子メールで送信する場合には、サーバがその要求を含んだ電子メールメッセージを作成して、CA に送信します。通常、電子メールにより証明書が返されます。証明書サーバに URL を指定した場合は、サーバがその URL を使用して Certificate Server にその要求を送信します。電子メールで返信を受けるか、その他の手段になるかは、CA によって異なります。

CA は、証明書を発行することに同意するかどうかを通知します。ほとんどの場合、CA は、電子メールで証明書を送信します。所属している組織が証明書サーバを使用している場合には、証明書サーバのフォームを使用して証明書を検索できます。



商用 CA に証明書を要求しても、必ず証明書が発行されるとはかぎりません。多くの CA で、証明書の発行前に、ユーザが自らの ID を示すことが要求されます。証明書発行の承認には 1 日から 2 か月かかることがあります。つまり、必要な情報をすべて迅速に CA に提供することが重要です。



証明書を受け取ったら、それをインストールできます。それまでの間は、SSL を使用せずにサーバを運用することになります。


他のサーバ証明書をインストールする

CA から証明書を受け取るときには、ユーザだけがこれを復号化できるように、公開鍵で暗号化されています。信頼データベースの正しいパスワードを入力しないと、証明書を復号化しインストールすることはできません。

証明書には、次の 3 種類があります。

  • クライアントに提示するための、ユーザのサーバの証明書

  • 証明書チェーンで使用される、 CA の独自の証明書

  • 信頼できる CA の証明書

証明書チェーンは、連続した証明機関によって署名された、一連の階層的証明書です。CA 証明書は、証明機関 (CA) の ID を示すもので、その機関によって発行される証明書に署名するのに使用されます。CA 証明書は、次に親 CA の CA 証明書によって署名されるというように、順にルート CA まで署名されることができます。



CA が CA の証明書を自動的にユーザに送信しない場合には、ユーザはそれを要求する必要があります。多くの CA は、ユーザの証明書を電子メールで送信する際に CA 証明書を含めており、ユーザのサーバは、両方の証明書を同時にインストールします。



CA から証明書を受け取るときには、ユーザだけがこれを復号化できるように、公開鍵で暗号化されています。サーバは、証明書をインストールする際、その証明書を復号するのに指定した鍵ペアファイルのパスワードを使用します。サーバがアクセス可能な場所にその電子メールを保存するか、または次に説明する 「Install Certificate」 フォームにペーストするためにその電子メールのテキストをコピーしておきます。


証明書をインストールする

証明書をインストールするには、次の手順を行います。

  1. Administration Server または Server Manager にアクセスし、 「Security」 タブを選択します。

    Server Manager の場合には、はじめにドロップダウンリストからサーバインスタンスを選択する必要があります。

  2. 「Install Certificate」リンクをクリックします。

  3. インストールする証明書の種類を確認します。

    • 「This Server」は、お使いのサーバだけに関係する 1 つの証明書に使用します。

    • 「Server Certificate Chain」は、証明書チェーンに組み込む CA の証明書に使用します。

    • 「Trusted Certificate Authority (CA)」は、クライアントの認証のための信頼できる CA として受け入れたい CA の証明書に使用します。

  4. ドロップダウンリストから「Cryptographic Module」を選択します。

  5. 鍵ペアファイルのパスワードを入力します。

  6. 次の場合を除いて、証明書がこのサーバインスタンスにだけに使用される場合は、証明書フィールドの名前を空白のままにします。

    • 複数の証明書を仮想サーバに使用する場合。

      サーバインスタンス内で一意の証明書名を入力します。

    • 内部モジュール以外の暗号化モジュールを使用する場合。

      1 つの暗号化モジュール内のすべてのサーバインスタンスで一意の証明書名を入力します。

    名前は入力されると、「Manage Certificates」リストに表示されるため、内容を識別しやすい名前にしてください。たとえば、「United States Postal Service CA」は CA の名前で、「VeriSign Class 2 Primary CA」は CA と証明書の種類の両方を表しています。証明書名を入力しない場合は、デフォルトの値が使用されます。

  7. 次のいずれかを選択します。

    • 電子メールが保存されているファイルへの、絶対パスを入力する

    • 「Message text (with headers) 」 というフィールドに、電子メールのメッセージテキストを ペーストする

      テキストをコピーしてペーストする場合には、必ず、「Begin Certificate」と「End Certificate」の 2 つのヘッダーを入れます。メッセージの最初と最後にあるハイフンも含める必要があります。

  8. 「OK」をクリックします。

  9. 次のいずれかを選択します。

    • 新しい証明書をインストールする場合は、「Add Certificate」

    • 更新された証明書をインストールする場合は、「Replace Certificate」

  10. Server Manager を使用の場合には、「Apply」をクリックし、次に変更内容を有効にするため 「Restart」 をクリックします。

証明書は、サーバの証明書データベース内に格納されます。ファイル名は、<alias>-cert7.db となります。次に例を示します。

https-serverid-hostname-cert7.db



アップグレード時の証明書の移行

iPlanet Web Server 4.x からアップグレードする場合には、ユーザのファイル (信頼データベースと証明書データベースを含む) は自動的に更新されます。

しかし、 Enterprise Server 3.x からアップグレードする場合には、ユーザの信頼データベースと証明書データベースを移行する必要があります。iPlanet Web Server 6.0 Administration Server のユーザが古い 3.x データベースのファイルに対して読み書き許可を持っていることを確認してください。ファイル名は <alias>-cert.db および <alias>-key.db で、<3.x_server_root>/alias ディレクトリ内にあります。

サーバでセキュリティが有効になっている場合だけ、鍵ペアファイルと証明書が移行されます。「Administration Server」 ページと 「Server Manager」 ページの 「Security」 タブを使用して、鍵と証明書を移行させることもできます。

旧バージョンでは、証明書と鍵ペアファイルは、複数のサーバインスタンスによって使用できるエイリアスによって参照されていました。Administration Server は、すべてのエイリアスとそれらの構成要素である証明書を管理していました。iPlanet Web Server 6.0 では、Administration Server と各サーバインスタンスに独自の証明書と鍵ペアファイルがあり、エイリアスではなく信頼データベースとして参照されます。

サーバ証明書とすべての含まれている証明機関を含む、信頼データベースとその構成要素である証明書を管理するには、それら自体の管理については Administration Server を、サーバインスタンスについては Server Manager を使用します。証明書および鍵ぺアデータベースファイルは、それらを使用するサーバインスタンス名をとって、名付けられます。以前のバージョンで複数のサーバインスタンスが同じエイリアスを共用していた場合は、移行されると、証明書と鍵ペアファイルは新しいサーバインスタンスの名前をとって名前変更されます。

サーバインスタンスに関連のある信頼データベース全体が移行されます。以前のデータベースにリストされている証明機関はすべて、iPlanet Web Server 6.0 データベースに移行されます。CA が重複している場合には、有効期限が切れるまで以前の CA を使用します。重複している CA は削除しないでください。


証明書を移行する

証明書を移行するには、次の手順を行います。

  1. ローカルマシンから、Administration Server または Server Manager のどちらかにアクセスし、「Security」タブを選択します。

    Server Manager を使用する場合には、はじめにドロップダウンリストからサーバインスタンスを選択する必要があります。

  2. 次のいずれかを選択します。

    • Administration Server の「Migrate 3.X Certificates」リンク

    • Server Manager の「Migrate Certificate」リンク

  3. 「3.6 Server Root」を入力します。

  4. 「Alias」を入力します。

  5. パスワードを入力します。

  6. 「OK」をクリックします。

  7. Server Manager を使用の場合には、「Apply」をクリックし、変更内容を有効にするため 「Restart」 をクリックします。


組み込みルート証明書モジュールの使用

動的に読み込み可能なルート証明書モジュールが、iPlanet Web Server 6.0 に付属しており、VeriSign を含む多数の CA のルート証明書が格納されています。ルート証明書モジュールを使用すると、旧バージョンと比べて、より簡単な方法でルート証明書を新しいバージョンにアップグレードできます。旧バージョンでは、古いルート証明書を 1 つずつ削除し、その後新しいルート証明書を 1 つずつインストールする必要がありました。iPlanet Web Server 6.0 に対して、よく知られている CA 証明書をインストールすると、ルート証明書モジュールファイルを、将来 iPlanet Web Server や Service Pack の新しいバージョンへ更新するだけですみます。

ルート証明書は PKCS#11 暗号化モジュールとして実装されているため、モジュールに含まれているルート証明書は削除してはなりません。削除のオプションは、ルート証明書を管理するときには提供されません。サーバインスタンスからルート証明書を削除する場合は、サーバの alias ファイル内で次の情報を削除すれば、ルート証明書モジュールを無効にできます。

  • libnssckbi.so (ほとんどの UNIX プラットフォームの場合)

  • libnssckbi.sl (HP-UX の場合)

  • nssckbi.dll (NT の場合)

ルート証明書モジュールをあとで復元する場合は、bin/https/lib (UNIX および HP) または bin\https\bin (NT) から、該当する拡張子を持つファイルを alias サブディレクトリにコピーして、後から元の場所に戻すことができます。

ルート証明書の信頼情報は変更できます。信頼情報は、編集されるサーバインスタンスの証明書データベースに書き込まれ、ルート証明書モジュールそのものには戻されません。



証明書を管理する



ユーザのサーバにインストールされたさまざまな証明書の信頼の設定値を表示、削除または編集できます。これには、ユーザ自身の証明書や CA から取得した証明書も含まれます。

証明書リストを管理するには、次の手順を行います。

  1. Administration Server または Server Manager にアクセスし、「Security」タブを選択します。

    Server Manager を使用する場合には、はじめにドロップダウンリストからサーバインスタンスを選択する必要があります。

  2. 「Manage Certificates」リンクをクリックします。

    • 内部暗号化モジュールを使用して、デフォルト設定の証明書を管理する場合には、インストールされているすべての証明書のリストがその種別および有効期限とともに表示されます。証明書はすべて、ディレクトリ server_root/alias に格納されています。

    • ハードウェアアクセラレータなどの外部の暗号化モジュールを使用している場合には、各モジュールのパスワードをはじめに入力し、「OK」をクリックします。モジュール内に証明書が組み込まれ、証明書リストが更新されます。

  3. 管理する「Certificate Name」をクリックします。

    その種類の証明書に関する管理オプションのある「Edit Server Certificate」ページが表示されます。クライアントの信頼情報を設定したり設定解除できるのは、CA 証明書だけです。外部の暗号化モジュールのなかには、証明書を削除できないものもあります。

図 5-1    「Edit Server Certificate」ページ


  1. 「Edit Server Certificate」ウィンドウでは、次を選択できます。

    • 内部的に取得した証明書については、「Delete Certificate」または「Quit」

    • CA から発行された証明書については、「Set client trust」、「Unset server trust」、または「Quit」

  2. 「OK」をクリックします。

  3. Server Manager を使用の場合には、「Apply」をクリックし、その後変更内容を有効にするために「Restart」をクリックします。

証明書情報には、所有者と発行者が含まれます。

信頼の設定では、クライアントの信頼情報を設定したり、サーバの信頼情報の設定を解除したりできます。LDAP サーバ証明書の場合は、サーバが信頼されている必要があります。



CRL と CKL のインストールと管理



証明書の取消しリスト (Certificate Revocation List、CRL) および危殆化鍵リスト (Compromised Key List、CKL) は、クライアントまたはサーバのユーザが信頼すべきでない証明書および鍵を知らせます。証明書のデータが変わった場合、たとえば、証明書の有効期限が切れる前にユーザが事務所を変更したり、その組織を離れるような場合には、その証明書は無効になり、そのデータが CRL に表示されます。鍵が不正に変更されたり、その他不正に使用された場合には、その鍵とそのデータが CKL に表示されます。CRL と CKL は、両方とも CA によって作成され、定期的に更新されます。


CRL または CKLをインストールする

CA から CRL または CKLを取得するには、次の手順を行います。

  1. CRL または CKL をダウンロードするための、CA の URL を確認します。

  2. ブラウザに URL を入力して、 CA のサイトにアクセスします。

  3. CA の指示に従って CRL または CKL をローカルディレクトリにダウンロードします。

  4. Administration Server または Server Manager にアクセスし、「Security」タブを選択します。

    Server Manager を使用する場合には、はじめにドロップダウンリストからサーバインスタンスを選択する必要があります。

  5. 「Install CRL/CKL」リンクをクリックします。

  6. 次のいずれかを選択します。

    • 「Certificate Revocation List」

    • 「Compromised Key List」

  7. インストールするファイルへの絶対パス名を入力します。

  8. 「OK」をクリックします。

    • 「Certificate Revocation List」を選択した場合には、CRL 情報をリストした「Add Certificate Revocation List」ページが表示されます。

    • 「Certificate Revocation Key List」を選択した場合には、CKL 情報をリストした「Add Compromised Key List」ページが表示されます。

      データベースに CRL または CKL リストがすでにある場合には、「Replace Certificate Revocation List」ページまたは「Replace Compromised Key List」ページが表示されます。



  9. 「Add」をクリックします。

  10. 「OK」をクリックします。

  11. Server Manager を使用の場合には、「Apply」をクリックし、その後変更内容を有効にするため「Restart」をクリックします。


CRL と CKL の管理

CRL と CKL を管理するには、次の手順を行います。

  1. Administration Server または Server Manager にアクセスし、「Security」タブを選択します。

    Server Manager を使用する場合には、はじめにドロップダウンリストからサーバインスタンスを選択する必要があります。

  2. 「Manage CRL/CKL」リンクをクリックします。

    「Manage Certificate Revocation Lists /Compromised Key Lists」ページが表示されます。すべてのインストールされている Server CRL と Server CKL が、有効期限とともに一覧されます。

  3. 「Server CRL」または「Server CKL」リストのどちらかから「Certificate Name」を選択します。

  4. 次のいずれかの操作を行います。

    • 「Delete CRL」

    • 「Delete CKL」

  5. Server Manager を使用の場合には、「Apply」をクリックし、変更内容を有効にするため「Restart」をクリックします。



セキュリティに関する詳細設定

証明書を取得すると、サーバのセキュリティ保護を開始できます。iPlanet Web Server は複数のセキュリティ要素を提供しています。

暗号化とは、情報を対象とした受信者以外の人が読めないような内容にするための、変換プロセスのことです。復号化とは、暗号化された情報を読めるように変換し直すプロセスのことです。iPlanet Web Server 6.0 では、SSL および TLS 暗号化プロトコルをサポートしています。

符号化方式とは、暗号化または復号化に使用する暗号アルゴリズム (数学的関数)です。SSL と TLS プロトコルには、多数の符号化方式のセットが含まれています。符号化方式には、他に比べて強力でよりセキュリティ性の高いものもあります。一般的に、符号化方式で使用するビット数が多いほど、データの復号化は難しくなります。

双方向の暗号化プロセスでは、必ず、送信側と受信側の両方が同じ符号化方式を使用する必要があります。多数の符号化方式があるため、最も一般的に使用されている方式に対してサーバを有効にしておく必要があります。

セキュリティ保護された接続時には、クライアントとサーバは、通信に、その双方が持てる最も強力な符号化方式を使用します。SSL2、SSL3 および TLS プロトコルから符号化方式を選択できます。


SSL バージョン 2.0 より後のバージョンでは、安全性と性能が向上しています。このため、システムに SSL3 を使用できないクライアントが存在する場合を除き、SSL2 を使用すべきではありません。クライアント証明書は、SSL2 符号化方式での動作が保証されていないからです。



暗号化プロセスだけでは、サーバの機密情報のセキュリティ保護には十分ではありません。実際に暗号化結果を生成したり、すでに暗号化された情報を復号化するためには、暗号化方式と一緒に鍵を使用する必要があります。暗号化プロセスでは、この結果を出すために 2 つの鍵を使用します。1 つは公開鍵でもう 1 つが非公開鍵です。公開鍵を使用して暗号化された情報は、対応する非公開鍵を使用した場合にのみ復号化できます。公開鍵は、証明書の一部として発行され、対応する非公開鍵だけがセキュリティ保護されます。

各種の符号化方式のセットについての説明と、鍵および証明書については、「Introduction to SSL」を参照してください。

サーバが使用できる符号化方式を指定するには、リスト内で符号化方式にチェックマークを付けます。特定の符号化方式を使用してはならない理由がある場合を除き、すべてにチェックマークを付けるようにします。ただし、最適ではないと思われる暗号化方式を有効にする必要はありません。



注意

「No Encryption, only MD5 message authentication」は選択しないでください。クライアントサイドでその他の符号化方式を利用できない場合には、サーバがデフォルトによりこの設定を使用し、暗号化は行われません。




SSL と TLS プロトコル

iPlanet Web Server 6.0 は、暗号化通信に SSL (Secure Sockets Layer) プロトコルと TLS (Transport Layer Security) プロトコルをサポートしています。SSL と TLS は、アプリケーションには依存せず、この上により高レベルのプロトコルを透過的に階層化することができます。

SSL と TLS の両プロトコルは、サーバとクライアントを相互に認証するのに使用されるさまざまな符号化方式をサポートし、証明書を送信してセッション鍵を確定します。クライアントとサーバは、サポートしているプロトコルや、暗号化の強度についての会社の方針および暗号化されたソフトウェアの輸出に対する行政上の制約条件などの要因に基づいて、別の符号化方式セットをサポートすることができます。他の機能の中でも特に、SSL と TLS ハンドシェイクプロトコルは、どの符号化方式のセットを通信に使用するかをサーバとクライアントが交渉する方法を決定します。


SSL を使用して LDAP と通信する

Administration Server は SSL を使用して LDAP と通信するようにする必要があります。Administration Server で SSL を有効にするには、次の手順を行います。

  1. Administration Server にアクセスして、「Global Settings」タブをクリックします。

  2. 「Configure Directory Service」リンクをクリックします。

  3. 「Yes」を選択して、接続に SSL (Secure Sockets Layer) を使用します。

  4. 「Save Changes」をクリックします。

  5. 「OK」をクリックして、SSL を介した LDAP の標準ポートにポートを変更します。


接続グループのセキュリティを有効にする

次の方法で、サーバの接続グループをセキュリティ保護できます。

  • セキュリティ機能をオンにします。

  • 接続グループのサーバ証明書を選択します。

  • 符号化方式を選択します。


セキュリティ機能をオンにする

接続グループ用に他のセキュリティ構成を行うには、セキュリティ機能をオンにしておく必要があります。新しい待機ソケットを作成したり、既存の待機ソケットを編集するときに、セキュリティ機能をオンにできます。


待機ソケットの作成時にセキュリティ機能をオンにする
新しい待機ソケットを作成するときにセキュリティをオンにするには、次の手順を行います。

  1. Server Manager にアクセスし、ドロップダウンリストから待機ソケットが作成されるサーバインスタンスを選択します。

  2. まだ表示されていない場合には「Preferences」タブを選択します。

  3. 「Add Listen Socket」を選択します。

    「Create a Listen Socket」ページが表示されます。

  4. 必要な情報を入力してから、デフォルトの仮想サーバを選択します。

  5. ドロップダウンリストを使用して、「Security」をオンにします。

  6. 「OK」をクリックします。

  7. 「Apply」をクリックしてから、変更内容を有効にするため「Restart」をクリックします。

    待機ソケットを作成したあとでセキュリティの設定を行うには、「Edit Listen Sockets」リンクを使用する必要があります。




待機ソケットの編集時にセキュリティ機能をオンにする
Administration Server または Server Manager のどちらかから待機ソケットを編集するときにも、セキュリティ機能をオンにできます。待機ソケットの編集時にセキュリティ機能をオンにするには、次の手順を行います。

  1. Administration Server または Server Manager にアクセスし、「Security」タブを選択します。

    Server Manager の場合には、はじめにドロップダウンリストからサーバインスタンスを選択する必要があります。

  2. まだ表示されていない場合には「Preferences」タブを選択します。

  3. 「Edit Listen Sockets」リンクを選択します。

    「Listen Sockets Table」ページが表示されます。

  4. セキュリティ保護したい接続グループについて、まだ表示されていない場合には、「Action」ドロップダウンリストを使用して「Edit」を選択します。

  5. 「Security」カラムのドロップダウンリストを使用して、接続グループに対するセキュリティ機能をオンにします。

  6. 「OK」をクリックします。

    これで、「Security」カラムに「Attributes」リンクが表示されます。

  7. Server Manager の場合には、「Apply」をクリックし、変更内容を有効にするため「Restart」をクリックします。


接続グループのサーバ証明書を選択する

Administration Server または Server Manager のどちらかで、ユーザが要求しインストールしたサーバ証明書を使用するよう、接続グループを構成できます。


少なくとも 1 つは証明書をインストールしておく必要があります。



接続グループが使用するサーバ証明書を選択するには、次の手順を行います。

  1. Administration Server または Server Manager にアクセスし、「Preferences」タブを選択します。

    Server Manager を使用する場合には、はじめにドロップダウンリストからサーバインスタンスを選択する必要があります。

  2. 「Edit Listen Sockets」リンクをクリックします。

    「Listen Socket Table」ページが表示されます。

  3. 証明書を選択する接続グループについて、まだ表示されていない場合には、「Action」ドロップダウンリストを使用して「Edit」を選択します。

  4. その接続グループに対する「Security」が、まだオフになっている場合には、ドロップダウンリストを使用してオンにします。

  5. 「Attributes」リンクをクリックします。

    「Security Settings of Listen Socket」ページが表示されます。

    外部モジュールがインストールしてある場合には、処理を続行する前に、外部モジュールのパスワードを入力するよう求める「 Manage Server Certificates 」ページが表示されます。



  6. 「CertificateName」ドロップタウンリストから接続グループのサーバ証明書を選択します。

    このリストには、インストールされているすべての内部および外部の証明書が記載されています。

  7. 「OK」をクリックします。

  8. Server Manager を使用の場合には、「Apply」をクリックし、その後変更内容を有効にするため「Restart」をクリックします。


符号化方式の選択

Web サーバのセキュリティを保護するためには、SSL を有効にすることをお勧めします。SSL 2.0、SSL 3.0 および TLS 暗号化プロトコルを有効にして、各種の符号化方式セットを選択することができます。 Administration Server の接続グループで、SSL および TLS を有効にできます。 Server Manager の接続グループで SSL と TLS を有効にすると、その接続グループに関連するすべての仮想サーバに対して、これらのセキュリティの指定が設定されます。

セキュリティ保護されていない仮想サーバにするには、それらをすべてセキュリティ機能をオフにした同じ接続グループに構成する必要があります。

デフォルトの設定では、最も一般的に使用されている符号化方式が許可されています。特定の符号化方式セットを回避したい特別な理由がある場合を除き、それらをすべて選択すべきです。特定の符号化方式については、「Introduction to SSL」を参照してください。


少なくとも 1 つは証明書をインストールしておく必要があります。



SSL と TLS を有効にするには、次の手順を行います。

  1. Administration Server または Server Manager にアクセスし、「Preferences」タブを選択します。

    Server Manager を使用する場合には、はじめにドロップダウンリストからサーバインスタンスを選択する必要があります。

  2. 「Edit Listen Sockets」リンクをクリックします。

    「Listen Socket Table」ページが表示されます。

  3. セキュリティを有効にしたい接続グループについて、まだ表示されていない場合には、「Action」ドロップダウンリストを使用して「Edit」を選択します。

  4. その接続グループに対する「Security」を、まだオフになっている場合には、ドロップダウンリストを使用してオンにします。

  5. 「OK」をクリックします。

    これで「Attributes」リンクが表示されます。

  6. 「Attributes」リンクをクリックします。

    「Security Settings of Listen Socket」ページが表示されます。

    外部モジュールがインストールしてある場合には、処理を続行する前に、外部モジュールのパスワードを入力するよう求める「Manage Server Certificates」ページが表示されます。



  7. 次のいずれかを選択します。

    • 「Cipher Default」

    • 「SSL2」

    • 「SSL3/TLS」

  8. (省略可能) SSL2 または SSL3/TLS を選択した場合には、「Security Features」ウィンドウで次のいずれかを実行します。

    • 「Allow」を選択し、デフォルトの符号化方式を受け入れます。

    • 「Allow」を選択し、必要な符号化方式にだけチェックマークを付け、不必要な符号化方式のチェックマークを外します。

    • 「Allow」のチェックマークを外して、このプロトコルとそのすべての符号化方式を無効にします。

      Netscape Navigator 6.0 では、TLS と SSL3 の両方にチェックマークを付けます。Microsoft Internet Explorer 5.0 および 5.5 の場合には、「TLS Rollback」オプションを使用します。TLS は、ユーザのサーバへのアクセスを求めるブラウザでも有効にする必要があります。「TLS Rollback」の場合にも、TLS にチェックマークを付け、SSL3 と SSL2 の両方が無効になっていることを必ず確認してください。



  9. 「OK」をクリックして、「Security Features」ウィンドウを閉じます。

  10. 「OK」をクリックします。

  11. Server Manager を使用する場合には、「Apply」をクリックし、変更内容を有効にするため「Restart」をクリックします。

    接続グループのセキュリティ機能をオンにしたあとで変更を適用するときには、セキュリティがオンであることを示すよう magnus.conf ファイルが自動的に変更され、その接続グループに関連するすべての仮想サーバに自動的にデフォルトのセキュリティパラメータが割当てられます。



サーバで SSL が有効になったら、その URL には http の代わりに https が使用されます。SSL 有効サーバ上のドキュメントを示す URL の書式は次のとおりです。

https://servername.[domain.[dom]]:[port#]

例: https://admin.iplanet.com:443

デフォルトのセキュリティ保護された http ポート番号 (443) を使用する場合には、URL にポート番号を入力する必要はありません。


セキュリティをグローバルに構成する

SSL 有効サーバをインストールすると、グローバルセキュリティパラメータの指令エントリが、magnus.conf ファイル (サーバのメイン構成ファイル) 内に作成されます。仮想サーバのセキュリティ設定が機能するよう、セキュリティは「On」に設定しておく必要があります。仮想サーバの SSL のプロパティは、server.xml ファイルの SSLPARAMS 要素内にサーバごとに記述されています。

SSL 構成ファイル指令の値を設定するには、次の手順を行います。

  1. Server Manager にアクセスし、仮想サーバのサーバインスタンスをドロップダウンリストから選択します。

  2. まだ選択されていない場合には「Preferences」タブを選択します。

  3. 「Edit Listen Sockets」リンクを選択します。

  4. 値を設定する待機ソケットに対して、まだオンにされていない場合は「Security」を「On」にします。

  5. 「OK」をクリックします。

  6. 「Magnus Editor」リンクに進みます。

  7. ドロップダウンリストから「SSL Settings」を選択し、「Manage」をクリックします。

  8. 次の項目の値を入力します。

    • SSLSessionTimeout

    • SSLCacheEntires

    • SSL3SessionTimeout

  9. 「OK」をクリックします。

  10. 「Apply」をクリックしてから、変更内容を有効にするため「Restart」をクリックします。

これらの SSL 構成ファイル指令について、次に説明します。


SSLSessionTimeout

SSLSessionTimeout 指令は、SSL2 セッションのキャッシングを制御します。


構文
SSLSessionTimeout seconds

seconds は、キャッシュされた SSL セッションが無効になるまでの秒数です。デフォルト値は 100 です。SSLSessionTimeout 指令が指定された場合には、秒数値は暗黙のうちに 5〜100 秒の間であると想定されます。


SSLCacheEntries

キャッシュできる SSL セッションの数を指定します。


SSL3SessionTimeout

SSL3SessionTimeout 指令は、SSL3 および TLS セッションのキャッシングを制御します。


構文
SSL3SessionTimeout seconds

seconds は、キャッシュされた SSL3 セッションが無効になるまでの秒数です。デフォルト値は 86400 (24 時間) です。SSL3SessionTimeout 指令が指定された場合には、秒数値は暗黙のうちに 5〜86400 秒の間であると想定されます。


1 つの待機ソケット上の 1 つの接続グループは、同じ SSLPARAMS を持つ必要があります。複数のグループがそれぞれ異なる SSLPARAMS を持つことができます。





外部暗号化モジュールの使用



iPlanet Web Server 6.0 は、スマートカードやトークンリングなどの外部の暗号化モジュールの使用に、次の方法をサポートしています。

  • PKCS#11

  • FIPS-140

FIPS-140 暗号化標準を有効化する前に、PKCS#11 モジュールを追加しておく必要があります。


PKCS#11 モジュールをインストールする

iPlanet Web Server は、PKCS (Public Key Cryptography Standard) #11 をサポートします。この標準は、SSL と PKCS#11 モジュール間の通信に使用されるインタフェースを定義します。PKCS#11 モジュールは、SSL ハードウェアアクセラレータへの標準ベースの接続に使用されます。外部のハードウェアアクセラレータにインポートされた証明書と鍵は、secmod.db ファイルに格納されます。このファイルは、PKCS#11 モジュールをインストールしたときに生成されます。


modutil を使用して PKCS#11 モジュールをインストールする

PKCS#11 モジュールを、modutil ツールを使用して.jar ファイルまたはオブジェクトファイルの形式でインストールできます。

modutil を使用して PKCS#11 モジュールをインストールするには、次の手順を行います。

  1. Administration Server を含むすべてのサーバが停止していることを確認します。

  2. データベースが置かれている server_root/alias ディレクトリに移動します。

  3. PATH に server_root/bin/https/admin/bin を追加します。

  4. server_root/bin/https/admin/binmodutil を特定します。

  5. 環境を設定します。次に例を示します。

    • UNIX では、setenv

      LD_LIBRARY_PATH server_root/bin/https/lib:${LD_LIBRARY_PATH}

    • IBM-AIX では、LIBPATH

    • HP-UX では、SHLIB_PATH

    • NT では、PATH に次を追加します。

      LD_LIBRARY_PATH server_root/bin/https/bin

      お使いのマシンの PATH は、以下で参照できます。server_root/https-admin/start

  6. 次のコマンドを入力します。modutil

    オプションが一覧されます。

  7. 必要な操作を行います。

    たとえば、UNIX に PCKS#11 モジュールを追加する場合には、次のように入力します。

    modutil -add (PCKS#11 ファイルの名前) -libfile (PCKS#11 用のユーザの libfile) -nocertdb -dbdir (db ディレクトリ)


pk12util を使用する

pk12util 使用して、内部データベースから証明書と鍵をエクスポートしたり、内部または外部の PKCS#11 モジュールにこれらをインポートすることができます。証明書と鍵は内部データベースにいつでもエクスポートできますが、ほとんどの外部トークンでは証明書と鍵のエクスポートは許可されません。デフォルトでは、pk12util は、cert7.dbkey3.db という名前の証明書と鍵データベースを使用します。


pk12util でエクスポートする
内部データベースから証明書と鍵をエクスポートするには、次の手順を行います。

  1. データベースが置かれている server_root/alias ディレクトリに移動します。

  2. PATH に server_root/bin/https/admin/bin を追加します。

  3. server_root/bin/https/admin/binpk12util を特定します。

  4. 環境を設定します。次に例を示します。

    • UNIX では、setenv

      LD_LIBRARY_PATH/server_root/bin/https/lib:${LD_LIBRARY_PATH}

    • IBM-AIX では、LIBPATH

    • HP-UX では、SHLIB_PATH

    • NT では、PATH に次を追加します。

      LD_LIBRARY_PATH server_root/bin/https/bin

      お使いのマシンの PATH は、以下で参照できます。server_root/https-admin/start

  5. 次のコマンドを入力します。pk12util

    オプションが一覧されます。

  6. 必要な操作を行います。

    たとえば、UNIX では次のように入力します。

    pk12util -o certpk12 -n Server-Cert [-d /server/alias] [-P https-test-host]

  7. データベースパスワードを入力します。

  8. pkcs12 パスワードを入力します。


pk12util を使用してインポートする
内部または外部の PKCS#11 モジュールに証明書と鍵をインポートするには、次の手順を行います。

  1. データベースが置かれている server_root/alias ディレクトリに移動します。

  2. PATH に server_root/bin/https/admin/bin を追加します。

  3. server_root/bin/https/admin/binpk12util を特定します。

  4. 環境を設定します。次に例を示します。

    • UNIX では、setenv

      LD_LIBRARY_PATH/server_root/bin/https/lib:${LD_LIBRARY_PATH}

    • IBM-AIX では、LIBPATH

    • HP-UX では、SHLIB_PATH

    • NT では、PATH に次を追加します。

      LD_LIBRARY_PATH server_root/bin/https/bin

      お使いのマシンの PATH は、以下で参照できます。server_root/https-admin/start

  5. 次のコマンドを入力します。pk12util

    オプションの一覧が表示されます。

  6. 必要な操作を行います。

    たとえば、UNIX では次のように入力します。

    pk12util -i pk12_sunspot [-d certdir][-h "nCipher"][-P https-jones.redplanet.com-jones-]

    -P は、-h のあとに続け、また最後の引数でなくてはなりません。

    引用符記号の中の大文字とスペースを含む、正確なトークン名を入力します。

  7. データベースパスワードを入力します。

  8. pkcs12 パスワードを入力します。

    外部証明書を使用してサーバを起動するには: 外部 PKCS#11 モジュール (たとえば、ハードウェアアクセラレータなど) にサーバの証明書をインストールする場合には、server.xml を編集するか、または次に述べるように、証明書名を指定するまで、サーバはその証明書の使用を開始できません。

サーバは常に、「Server-Cert」という名前の証明書を使用して起動しようとします。しかし、外部 PKCS#11 モジュール内の証明書には、識別子内にモジュールのトークン名のうちの 1 つが含まれています。たとえば、「smartcard0」と呼ばれる外部スマートカードリーダー上にインストールされているサーバ証明書の名前が「smartcard0:Server-Cert」となるなどです。

外部モジュールにインストールされている証明書を使用してサーバを起動するには、稼動する接続グループの証明書名を指定する必要があります。


接続グループの証明書名を選択する

接続グループの証明書名を選択するには、次の手順を行います。

  1. Administration Server または Server Manager にアクセスし、「Preferences」タブを選択します。

    Server Manager を使用する場合には、はじめにドロップダウンリストからサーバインスタンスを選択する必要があります。

  2. まだ選択されていない場合には「Preferences」タブを選択します。

  3. 「Edit Listen Sockets」リンクをクリックします。

    「Listen Socket Table」ページが表示されます。

  4. セキュリティを有効にしたい接続グループについて、まだ表示されていない場合には、「Action」ドロップダウンリストを使用して「Edit」を選択します。

  5. その接続グループに対する「Security」を、まだオフになっている場合には、ドロップダウンリストを使用してオンにします。

  6. 「OK」をクリックします。

    これで「Attributes」リンクが表示されます。

  7. 「Attributes」リンクをクリックします。

    「Security Settings of Listen Socket」ページが表示されます。

  8. 「CertificateName」ドロップダウンリストを使用して、外部サーバ証明書を選択します。

  9. 「OK」をクリックします。

  10. Server Manager の場合には、「Apply」をクリックし、変更内容を有効にするため「Restart」をクリックします。

手動で server.xml ファイルを編集することにより、代わりにそのサーバ証明書を使用して起動することをサーバに指示することもできます。SSLPARAMS の servercertnickname 属性を次のように変更します。

$TOKENNAME:Server-Cert

$TOKENNAME に使用する値を知るには、サーバの「Security」タブに移動して、「Manage Certificates」リンクを選択します。Server-Cert の格納されている外部モジュールにログインすると、$TOKENNAME:$NICKNAME フォームのリスト内にその証明書が表示されます。

信頼データベースを作成していない場合には、外部 PKCS#11 モジュールの証明書を要求するかまたはインストールするときに信頼データベースが 1 つ作成されます。作成されるデフォルトのデータベースには、パスワードがないためアクセスできません。外部モジュールは動作しますが、サーバ証明書を要求してインストールすることはできません。パスワードのないデフォルトのデータベースが作成された場合には、「Security」タブの「Create Database」ページを使用してパスワードを設定してください。




FIPS-140 標準

PKCS#11 API を使用すれば、符号化操作を実行するソフトウェアまたはハードウェアモジュールとの通信が可能です。PKCS#11 をサーバ上にインストールすると、Federal Information Processing Standards (FIPS) - 140 に準拠するよう iPlanet Web Server を構成できます。これらのライブラリは、SSL バージョン 3.0 にのみ含まれています。

FIPS-140 を有効にするには、次の手順を行います。

  1. FIPS-140 の指示に従ってプラグインをインストールします。

  2. Administration Server または Server Manager にアクセスし、「Preferences」タブを選択します。

    Server Manager を使用する場合には、はじめにドロップダウンリストからサーバインスタンスを選択する必要があります。

  3. 「Edit Listen Sockets」リンクをクリックします。

    「Listen Socket Table」ページが表示されます。

  4. FIPS-140 を有効にしたい接続グループについて、まだ表示されていない場合には、「Action」ドロップダウンリストを使用して「Edit」を選択します。

  5. その接続グループに対する「Security」を、まだオフになっている場合には、ドロップダウンリストを使用してオンにします。

  6. 「OK」をクリックします。

    これで「Attributes」リンクが表示されます。

  7. 「Attributes」リンクをクリックします。

  8. 「Security Settings of Listen Socket」ページが表示されます。

  9. 「SSL3/TLS」リンクをクリックします。

    「Security Feature」ウィンドウが表示されます。

  10. チェックマークが付いていない場合には、「Allow: SSL version 3」にチェックマークを付けます。

  11. 次のうち、適切な FIPS-140 符号化方式のセットを選択します。

    • (FIPS) DES with 56 bit encryption and SHA message authentication

    • (FIPS) Triple DES with 168 bit encryption and SHA message authentication

  12. 「OK」をクリックして、「Security Features」ウィンドウを閉じます。

  13. 「OK」をクリックします。

  14. Server Manager を使用する場合には、「Apply」をクリックし、変更内容を有効にするため「Restart」をクリックします。



クライアントセキュリティの要件を設定する

サーバをセキュリティ保護するためのすべての手順が終了したあと、クライアントに関するその他のセキュリティ要件を設定できます。


クライアント認証を要求する

Administration Server と各サーバインスタンスの接続グループがクライアント認証を要求できるようになります。クライアント認証を有効にすると、照会に対してサーバが応答を送信する前に、クライアントの証明書が必要となります。

クライアント証明書内の CA とクライアント証明書へ署名することが信頼されている CA を照合することによって、iPlanet Web Server は、クライアント証明書の認証をサポートします。Administration Server の「Security」の下にある「Manage Certificates」ページで、クライアントの証明書へ署名することが信頼されている CA のリストを参照できます。CA には、次の 4 種類があります。

  • Untrusted CA (一致しない)

  • Trusted Server CA (一致しない)

  • Trusted Server CA (一致する)

  • Trusted Client/Server CA (一致する)

信頼できる CA からのクライアント証明書を持っていないクライアントを拒絶するよう Web サーバを構成できます。信頼できる CA を受け入れるまたは拒絶するには、その CA についてクライアント信頼情報を設定しておく必要があります。詳細は、「証明書を管理する」を参照してください。

iPlanet Web Server は、エラーの記録、証明書の拒絶、また証明書が期限切れの場合にはクライアントに対してメッセージの返送を行います。また、Administration Server の「Manage Certificates」ページで、有効期限切れの証明書を参照できます。

クライアントの証明書から情報を収集し、これを LDAP ディレクトリ内のユーザエントリと照合するようにサーバを構成できます。このようにすると確実に、LDAP ディレクトリ内に有効な証明書とエントリをクライアントが持つことを確認できます。また、クライアント証明書が LDAP ディレクトリ内の証明書と確実に一致することを確認できます。これを実行する方法については、「クライアント証明書を LDAP へマップする」 を参照してください。

証明書のあるユーザは、信頼できる CA だけでなく、アクセス制御の規則 (ACL) とも一致しなければならないように、クライアント証明書をアクセス制御と組み合わせることができます。詳細は、「アクセス制御ファイルの使用」を参照してください。

クライアントの証明書からの情報も処理することができます。詳細は、『NSAPI プログラマーズガイド』を参照してください。


クライアントの認証を要求するには

クライアントの認証を要求するには、次の手順を行います。

  1. Administration Server または Server Manager にアクセスし、「Preferences」タブを選択します。

    Server Manager を使用する場合には、はじめにドロップダウンリストからサーバインスタンスを選択する必要があります。

  2. 「Edit Listen Sockets」リンクをクリックします。

    「Listen Socket Table」ページが表示されます。

  3. クライアント認証を要求したい「Connection Group」について、まだ表示されていない場合には、「Action」ドロップダウンリストを使用して「Edit」を選択します。

  4. その「Connection Group」に対する「Security」が、まだオフになっている場合には、ドロップダウンリストを使用してオンにします。

  5. 「Attributes」リンクをクリックします。

    「Security Settings of Listen Socket」ページが表示されます。

  6. 「Client Auth」の「Off」をクリックして、これをオンにします。

  7. 「OK」をクリックします。

  8. Server Manager を使用する場合には、「Apply」をクリックし、変更内容を有効にするため「Restart」をクリックします。

    現在、各 Web サーバインスタンスごとに 1 つの証明書信頼データベースが存在します。そのサーバインスタンスのもとで稼動しているセキュリティ保護された仮想サーバはすべて、信頼できるクライアント CA の同じリストを共有します。2 つの仮想サーバが別の信頼できる CA を要求する場合には、これらの仮想サーバは、別個の信頼データベースを使用して、異なるサーバインスタンスで稼動する必要があります。




クライアント証明書を LDAP へマップする

この節では、iPlanet Web Server が LDAP ディレクトリ内のエントリにクライアント証明書をマップするために使用するプロセスを説明します。

サーバがクライアントから要求を取得すると、処理を進める前にクライアントの証明書を求めます。一部のクライアントは、要求と一緒にクライアント証明書をサーバに送信します。


LDAP にクライアント証明書をマップする前に、必要な ACL も設定しておく必要があります。詳細は、第 8 章「サーバへのアクセス制御」を参照してください。



サーバは、Administration Server の信頼できる CA リストとその証明書の発行元である CA を照合します。一致しなかった場合には、iPlanet Web Server はその接続を終了します。一致した場合、サーバは要求の処理を続行します。

証明書が信頼できる CA からのものであることを確認したあと、サーバは、次の方法で LDAP エントリにその証明書をマップします。

  • クライアント証明書の発行者と対象 DN を LDAP ディレクトリ内の分岐点にマップします。

  • クライアント証明書の対象 (エンドユーザ) に関する情報と一致するエントリがないか LDAP ディレクトリを検索します。

  • (省略可能) DN に対応する LDAP エントリ内のクライアント証明書とそのクライアント証明書を比較検証します。

サーバは、certmap.conf と呼ばれる証明書マッピングファイルを使用して LDAP 検索を実行する方法を決定します。このマッピングファイルは、クライアント証明書から入手すべき値 (エンドユーザ名、電子メールアドレスなど) をサーバに通知します。サーバは、これらの値を使用して LDAP ディレクトリ内にユーザエントリがないか検索しますが、はじめに、LDAP ディレクトリ内のどこから検索を開始すべきかを決定する必要があります。このような開始すべき場所も、証明書マッピングファイルがサーバに通知します。

サーバが、検索を開始する場所および検索すべき内容を確認すると (手順1)、LDAP ディレクトリ内で検索を実行します (手順2)。一致するエントリがなかったり、一致するエントリがあってもマッピングが証明書を検証するように設定されていない場合には、検索は失敗します。検索結果についての予期される動作のリストは、次の表 5-1 を参照してください。予期される動作を ACL で指定できることに注意してください。たとえば、証明書照合が失敗した場合は iPlanet Web Server がユーザ自身だけを受け入れるよう指定することができます。ACL の詳細設定については、「アクセス制御ファイルの使用」を参照してください。


表 5-1    LDAP 検索結果

LDAP 検索結果

証明書の比較検証が有効 (ON)

証明書の比較検証が無効 (OFF)

検出されたエントリなし  

認証失敗  

認証失敗  

検出されたエントリが 1 つのみ  

認証失敗  

認証成功  

検出されたエントリが複数  

認証失敗  

認証失敗  

サーバが LDAP ディレクトリ内で一致するエントリと証明書を検出したあと、その情報を使用してトランザクションを処理できます。たとえば、一部のサーバでは、サーバへのアクセスを判断するのに証明書 -LDAP 間マップを使用します。


certmap.conf ファイルの使用

証明書のマッピングは、LDAP ディレクトリ内のユーザエントリをサーバがどのように検索するか決定します。certmap.conf を使用して、名前で指定された証明書を LDAP エントリにマップする方法を構成できます。このファイルを編集し、エントリを追加して、ユーザの LDAP ディレクトリの組織に一致するようにし、ユーザが持っているべき証明書をリストにするようにします。ユーザは、subjectDN 内で使用されているユーザ ID、電子メールアドレス、またはその他の値に基づいて認証されることができます。特に、マッピングファイルは、次の情報を定義します。

  • LDAP ツリー内でサーバが検索を開始する場所

  • LDAP ディレクトリ内のエントリを検索するときにサーバが検索条件として使用すべき証明書の属性

  • サーバが追加の検証プロセスを実施するか、または実施しないか

証明書マッピングファイルは、次の場所に格納されています。

server_root/userdb/certmap.conf

このファイルには、それぞれが異なる CA に適用される、1 つまたは複数の名前付きのマッピングが格納されています。マッピングの構文は、次のとおりです。

certmap <name> <issuerDN>

<name>:<property> [<value>]

最初の行にはエントリの名前と、CA 証明書内に記載されている識別名を構成する属性を指定します。名前は任意です。好きな名前に定義できます。ただし、issuerDN は、そのクライアント証明書を発行した CA の発行者 DN と正確に一致していなくてはなりません。たとえば、次の 2 つの issuerDN 行は、属性間にスペースがあるかどうかという点が異なるだけですが、サーバは、これら 2 つのエントリを別のものとして取り扱います。

certmap iplanet1 ou=iPlanet Certificate Authority,o=iPlanet,c=US
certmap iplanet2 ou=iPlanet Certificate Authority,o=iPlanet, c=US


ヒント

iPlanet Directory Server を使用しているときに issuerDN 照合に問題があった場合は、Directory Server のエラーログを調べて有用な情報を探します。



名前付きマッピングの 2 行目以降の行は、プロパティが値と照合されます。certmap.conf ファイルには、次に示す 6 つのデフォルトのプロパティがあります (証明書 API を使用すると、ユーザ独自のプロパティをカスタマイズできます)。

  • DNComps はコンマで区切った属性のリストで、ユーザの情報 (すなわちクライアント証明書の所有者) と一致するエントリの検索を、サーバが LDAP ディレクトリ内のどこから開始すべきかを判断するのに使用されます。サーバは、クライアント証明書からこれらの属性の値を収集し、LDAP DN を構成するためにその値を使用します。これが、LDAP ディレクトリ内でサーバが検索を開始する場所を決定します。たとえば、DN の o 属性と c 属性を使用するよう DNComps を設定した場合、サーバは、LDAP ディレクトリ内の o=<org>, c=<country> エントリから検索を開始します。この場合、<org> と <country> は、証明書内の DN に記述されている値と置き換えられます。

    次のような場合には注意が必要です。

    • マッピング内に DNComps エントリがない場合、サーバは CmapLdapAttr の設定、またはクライアント証明書内の対象 DN 全体 (すなわちエンドユーザ情報) のいずれかを使用します。

    • DNComps エントリはあるが値がないという場合、サーバは LDAP ツリー全体でフィルタに一致するエントリを検索します。

  • FilterComps は、コンマで区切った属性のリストで、クライアント証明書内のユーザの DN から情報を収集してフィルタを作成するのに使用されます。サーバは、これらの属性の値を使用して、LDAP ディレクトリ内でエントリを照合するのに使用する検索条件を作成します。サーバが LDAP ディレクトリ内で、証明書から収集したユーザ情報に一致する 1 つまたは複数のエントリを検出した場合、検索は成功し、オプションでサーバが検証を行います。

    たとえば、電子メール属性と ユーザ ID 属性を使用するよう FilterComps を設定すると (FilterComps,uid)、電子メールとユーザ ID の値がクライアント証明書から収集したエンドユーザの情報と一致するエントリを、サーバがディレクトリ内で検索します。電子メールアドレスと ユーザ ID は、通常はディレクトリ内で一意のエントリであるため、フィルタとして適切なものです。フィルタは、LDAP データベース内で 1 つだけのエントリと一致するような特有のものである必要があります。

    x509v3 証明書属性のリストについては、次の表を参照してください。


    表 5-2    x509v3 証明書の属性 

    属性

    説明

    c  

     

    o  

    組織  

    cn  

    共通名  

    l  

    場所  

    st  

     

    ou  

    組織単位  

    uid  

    UNIX または Linux のユーザ ID  

    email  

    電子メールアドレス  

    フィルタのための属性名は、LDAP ディレクトリではなく、証明書から取得した属性名にする必要があります。たとえば、一部の証明書ではユーザの電子メールアドレスの e 属性がありますが、LDAP は、この属性を mail と呼んでいることもあります。

  • verifycert は、LDAP 内でにある証明書とクライアントの証明書を比較すべきかどうかをサーバに指示します。これは、2 つの値のいずれかをとります。すなわちオン、またはオフです。ただし、このプロパティは、LDAP ディレクトリに証明書があるときだけ使用してください。この機能は、有効であり、取り消されていない証明書を確実にエンドユーザが所有できるようにするのに便利です。

  • CmapLdapAttr は、LDAP ディレクトリ内の属性の名前で、そのユーザに属しているすべての証明書に記載されている対象 DN が格納されています。このプロパティのデフォルトは、certSubjectDN です。この属性は標準の LDAP 属性ではないため、このプロパティを使用するときには、LDAP スキーマを拡張する必要があります。詳細は、「Introduction to SSL」を参照してください。

    このプロパティが certmap.conf ファイル内に存在する場合は、対象の完全な DN (証明書から取得) に 属性 (このプロパティの名前の付いた) が一致しているエントリを、サーバが LDAP ディレクトリ全体で検索します。エントリが検出されなかった場合には、サーバは DNComps マッピングと FilterComps マッピングを使用して、再度検索します。

    LDAP エントリと証明書を照合するためのこの方法は、DNCompsFilterComps を使用してエントリを照合することが難しい場合に便利です。

  • Library は、値が共用ライブラリまたは DLL へのパス名であるプロパティです。証明書 API を使用して、独自のプロパティを作成する場合には、このプロパティを使用するだけですみます。詳細は、『NSAPI プログラマーズガイド』を参照してください。

  • InitFn は、値がカスタムライブラリの init 関数の名前であるプロパティです。証明書 API を使用して、独自のプロパティを作成する場合には、このプロパティを使用するだけですみます。

これらプロパティについては、「マッピング例」に記述されている例を参照してください。


カスタムプロパティを作成する

クライアント証明書 API を使用すると、独自のプロパティを作成できます。クライアント証明書 API のプログラミング法と使用法については、『NSAPI プログラマーズガイド』を参照してください。

カスタムマッピングが行われると、次のようにマッピングを参照します。

<name>:library <path_to_shared_library>
<name>:InitFn <name_of_init_function>

次に例を示します。

certmap default1 o=Netscape Communications, c=US
default1:library /usr/netscape/enterprise/userdb/plugin.so
default1:InitFn plugin_init_fn
default1:DNComps ou o c
default1:FilterComps l
default1:verifycert on


マッピング例

certmap.conf ファイルには、少なくとも 1 つのエントリが必要です。次の例では、certmap.conf ファイルを使用できる別の方法を示しています。


例 1
この例は、デフォルトのマッピングが 1 つだけある certmap.conf ファイルを表わしています。

certmap default default
default:DNComps ou, o, c
default:FilterComps e, uid
default:verifycert on

この例を使用すると、ou=<orgunit>, o=<org>, c=<country> エントリを格納している LDAP 分岐点からサーバは検索を開始します。<> 内のテキストは、クライアント証明書内の対象 DN に記載されている値と置き換えられます。

次に、サーバが証明書に記載されている電子メールアドレスとユーザ ID の値を使用して、LDAP ディレクトリ内で一致するエントリを検索します。エントリを検出すると、サーバは、ディレクトリ内に格納されているエントリとクライアントが送信したエントリを比較して、証明書を検証します。


例 2
次のファイル例には、2 つのマッピングがあります。1 つはデフォルト用で、もう 1 つは US Postal Service 用です。

certmap default default
default:DNComps
default:FilterComps e, uid

certmap usps ou=United States Postal Service, o=usps, c=US
usps:DNComps ou,o,c
usps:FilterComps e
usps:verifycert on

サーバが US Postal Service 以外から証明書を取得している場合、サーバはデフォルトのマッピングを使用します。これは、LDAP ツリーの一番上から、クライアントの電子メールとユーザ ID に一致するエントリの検索を開始します。その証明書が US Postal Service からのものである場合、サーバは、その組織単位を格納している LDAP 分岐から、一致する電子メールアドレスの検索を開始します。ただし、その証明書が USPS (US Postal Service) からのものである場合には、サーバは証明書の検証を行います。それ以外の証明書は検証されません。



注意

証明書内の発行者 DN (すなわち CA の情報) は、マッピングの最初の行にリストされている発行者 DN と同じでなくてはなりません。前述の例では、o=United States Postal Service,c=US という発行者 DN からの証明書は、o 属性と c 属性の間にスペースがないため一致しません。




例 3
次の例では、CmapLdapAttr プロパティを使用して、クライアント証明書から取得された対象 DN 全体と同一の値をもつ certSubjectDN という属性を、LDAP データベース内で検索します。

certmap myco ou=My Company Inc, o=myco, c=US
myco:CmapLdapAttr certSubjectDN
myco:DNComps o, c
myco:FilterComps mail, uid
myco:verifycert on

クライアント証明書の対象が次の場合には、

uid=Walt Whitman, o=LeavesOfGrass Inc, c=US

サーバは、はじめに次の情報を格納しているエントリを検索します。

certSubjectDN=uid=Walt Whitman, o=LeavesOfGrass Inc, c=US

1 つまたは複数の一致したエントリが検出された場合、サーバはそのエントリの検証処理を進めます。一致するエントリが検出されなかった場合には、サーバは、DNCompsFilterComps を使用して、一致するエントリを検索します。この例では、サーバは、o=LeavesOfGrass Inc, c=US の下にあるすべてのエントリで uid=Walt Whitman を検索します。



この例では、LDAP ディレクトリに certSubjectDN 属性のあるエントリが格納されていると想定しています。





Stronger Ciphers を設定する



「Stronger Ciphers」オプションでは、アクセスするための秘密鍵のサイズに 168、128 または 56 ビットのいずれか、または制限なしの選択肢があります。制限に適合しない場合に使用されるファイルを指定することができます。ファイルが指定されていない場合は、iPlanet Web Server が、「Forbidden」ステータスを返します。

アクセスのための鍵サイズとして、「Security Preferences」の下にある現在の符号化方式の設定と整合しないサイズを選択すると、iPlanet Web Server が、符号化方式でより大きいサイズの秘密鍵を利用可能にする必要があると知らせるポップアップダイアログを表示します。

現在、鍵サイズ制限の実装は、Service fn=key-toosmall ではなく、obj.conf にある NSAPI PathCheck 指令に基づいています。この指令は次のとおりです。

PathCheck fn="ssl-check" [secret-keysize=<nbits>] [bong-file=<filename>]

ここで、<nbits> は、秘密鍵で必要とされる最小ビット数で、<filename> は、制限に適合しない場合に使用されるファイル (URI ではなく) の名前です。

SSL が有効ではない場合、または secret-keysize パラメータが指定されていない場合には、PathCheckREQ_NOACTION を返します。現在のセッションの秘密鍵サイズが指定された secret-keysize より小さいときは、関数は、bong-file が指定されていない場合には PROTOCOL_FORBIDDEN のスターテスと一緒に REQ_ABORTED を返し、それ以外の場合にはREQ_PROCEED を返して、「path」変数が bong-file <filename> に設定されます。また、鍵のサイズ制限に適合しない場合は、現在のセッションの SSL セッションキャッシュエントリが無効化されるため、次回、同じクライアントがサーバに接続するとき完全な SSL ハンドシェイクが起こります。



Stronger Ciphers フォームは、PathCheck fn=ssl-check を追加するときにオブジェクト内で検出する Service fn=key-toosmall 指令を削除します。



「Stronger Ciphers」を設定するには、次の手順を行います。

  1. Server Manager にアクセスし、サーバインスタンスをドロップダウンリストから選択します。

  2. 「Virtual Server Class」タブをクリックします。

  3. クラスをドロップダウンリストから選択し、「Manage」をクリックします。

    「Class Manager」ページが表示されます。

  4. 「Content Mgmt」タブを選択します。

  5. 「Stronger Ciphers」を選択します。

  6. 編集項目を選択します。

    • ドロップダウンリストから

    • 「Browse」をクリックして

    • 「Wildcard」をクリックして

  7. 秘密鍵サイズの制限を選択します。

    • 168 bit or larger (168 ビットまたはそれ以上)

    • 128 bit or larger (128 ビットまたはそれ以上)

    • 56 bit or larger (56 ビットまたはそれ以上)

    • No restrictions (制限なし)

  8. アクセスを拒絶するメッセージのファイルの場所を入力します。

  9. 「OK」をクリックします。

  10. 「Apply」をクリックします。

  11. 「hard start/restart」または「dynamically apply」を選択します。

詳細は、「Introduction to SSL」を参照してください。



その他のセキュリティに関する問題



他人が暗号を解読しようとすること以外にも、セキュリティに関するリスクがあります。ネットワークは常に、内部と外部の両側から、ハッカーのリスクにさらされています。ハッカーはさまざまな作戦を使って、サーバ本体やサーバに格納されている情報にアクセスしようとしています。

したがって、サーバで暗号化を有効にするだけでなく、さらに別のセキュリティの対策を立てる必要があります。たとえば、セキュリティ保護された部屋にサーバマシンを設置し、信頼できない個人にサーバへのプログラムのアップロードを許可しないようにするなどです。

次の各節では、サーバをさらに安全に保護するのに必要な、最も重要な事項について説明します。

  • 物理的アクセスを制限する

  • 管理アクセスを制限する

  • 確実なパスワードを選択する

  • パスワードまたは PIN を変更する

  • サーバ上で他のアプリケーションを制限する

  • クライアントによる SSL ファイルのキャッシングを防ぐ

  • ポートを制限する

  • サーバの限界を知る

  • サーバを保護するためその他の追加変更を行う


物理的アクセスを制限する

このシンプルなセキュリティ手段が、意外と見逃されがちです。この方法では、承認された人だけが入室できる鍵の掛かった部屋にサーバマシンを設置します。このようにすると、サーバマシンへの物理的なハッキングを防げます。

また、マシンの管理 (root) パスワードを所有している場合には、パスワードを保護しておく必要があります。


管理アクセスを制限する

リモート構成を使用している場合、必ず、数人のユーザと数台のコンピュータだけが管理作業を実行できるように、アクセス制御を設定します。Administration Server からエンドユーザの権限で LDAP サーバやローカルディレクトリにアクセスさせる場合、2 台の Administration Server でクラスタ構成を整え、1 台では SSL を有効にしてマスタとなる Administration Server を構成し、もう 1 台のサーバでエンドユーザからのアクセスを許可することを、検討してください。

クラスタについては、「クラスタについて」を参照してください。

Administration Server の暗号化機能もオンにする必要があります。管理に SSL 接続を使用しない場合、リモートサーバの管理にセキュリティ保護されていないネットワークを使用することに注意してください。つまり、SSL を使用しない場合には、通信の途中で管理パスワードを盗まれて、サーバが不正に設定されてしまう可能性があるということです。


確実なパスワードを選択する

サーバでは多数のパスワードが使用されています。管理パスワード、非公開鍵パスワード、データベースパスワードなどです。この中でもっとも重要なパスワードは管理パスワードです。このパスワードを使えば、誰もがコンピュータ上のどのサーバの構成でも行えるからです。次に重要なのは、非公開鍵パスワードです。非公開鍵と非公開鍵パスワードが第三者に入手された場合、第三者によって偽のサーバが作成され、ユーザ自身のものであるように見せかけることができたり、サーバとの間の通信を傍受されたり、改ざんされたりする可能性があります。

優れたパスワードは、ユーザ自身がすぐに思い出せて、第三者には推測できないようなパスワードです。たとえば、「My Child is 12 months old!」からは MCi12!mo を思い出すことができます。悪いパスワードは、たとえば子供の名前や誕生日などです。


破られにくいパスワードを作成する

安全性の高いパスワードを作成するのに役立つ、いくつかのシンプルなガイドラインを示します。

1 つのパスワードに次の規則のすべてを取り込む必要はありませんが、使用する規則が多ければ多いほど、パスワードを破られにくくなります。

  • パスワードの長さは 6〜14 文字にする (Mac のパスワードは 8 文字まで)

  • 正規以外の文字は使用しない (*、"、スペース)

  • 辞書に載っている語を使用しない (どの言語でも)

  • E を 3 にする、L を 1 にする、などの推測しやすい文字の置き換えは行わない

  • 以下の種類の文字を、できるだけ多く混合させる

    • 大文字

    • 小文字

    • 数字

    • 記号


パスワードまたは PIN を変更する

信頼データベース/鍵ペアファイルのパスワードまたは PIN を定期的に変更することを習慣付けてください。Administration Server で SSL を有効にしている場合、サーバを起動するときにこのパスワードが必要です。パスワードを定期的に変更すると、サーバのセキュリティ保護のレベルが高まります。

このパスワードは、ローカルマシンにおいてのみ変更すべきです。パスワードを変更するときに考慮するガイドラインのリストは、「破られにくいパスワードを作成する」を参照してください。


パスワードを変更する

Administration Server またはサーバインスタンスの信頼データベース/鍵ペアファイルのパスワードを変更するには、次の手順を行います。

  1. Administration Server または Server Manager にアクセスし、「Security」タブを選択します。

    Server Manager を使用する場合には、はじめにドロップダウンリストからサーバインスタンスを選択する必要があります。

  2. 「Change Password」リンクを選択します。

  3. パスワードを変更したいセキュリティトークンをドロップダウンリストから選択します。

    デフォルトでは、内部鍵データベース用の「internal」になっています。PKCS#11 モジュールがインストールされている場合は、すべてのトークンが一覧で表示されます。「Change Password」リンクをクリックしてください。

  4. 現在のパスワードを入力します。

  5. 新しいパスワードを入力します。

  6. 新しいパスワードをもう一度入力します。

  7. 「OK」をクリックします。

  8. Server Manager を使用の場合には、「Apply」をクリックし、変更内容を有効にするため「Restart」をクリックします。

鍵ペアファイルが必ずセキュリティ保護されるようにします。Administration Server は、server_root/alias ディレクトリ内に鍵ペアファイルを格納します。コンピュータ上にインストールされている iPlanet Server だけがファイルとディレクトリを読めるようにすることを検討してください。

ファイルがバックアップテープ上に格納されるかどうか、またはそのファイルが第三者が傍受できるような状態かどうかを知っておくことも大切です。そのような場合には、バックアップをサーバと同等に、完全にプロテクトする必要があります。


サーバ上で他のアプリケーションを制限する

サーバと同じマシンで稼動するすべてのアプリケーションを十分に検討します。サーバ上で稼動する他のアプリケーションのセキュリティホールを使って、サーバのセキュリティが回避される可能性があるからです。不必要なプログラムやサービスはすべて無効にしてください。たとえば、UNIX sendmail デーモンは、安全に設定することが難しく、他のプログラムがサーバマシン上で稼動するようにプログラムされてしまう可能性もあります。


UNIX と Linux

inittab スクリプトと rc スクリプトから開始するプロセスを注意して選択します。telnet または rlogin をサーバマシン上で起動させないでください。また、サーバマシン上に rdist を格納すべきではありません (格納すると、ファイルを分散することができる反面、サーバマシン上のファイルの更新に使用されてしまう可能性もあるからです)。


Windows NT

他のマシンと共有するドライブやディレクトリについて、十分に検討してください。また、どのユーザがアカウントやゲストの特権を所有しているかについても検討してください。

同様に、管理者がサーバ上に置いているプログラムや、サーバ上で他のユーザにインストールを許可するプログラムについても注意を払ってください。他のユーザのプログラムには、セキュリティホールがあるかもしれません。最悪の場合には、セキュリティを侵害するために設計された悪意のあるプログラムをアップロードする人がいるかもしれません。したがって、サーバ上にプログラムを置くことを許可する前に、そのプログラムを良く調べてください。


クライアントによる SSL ファイルのキャッシングを防ぐ

HTML 形式のファイルの <HEAD> タグの部分に次の行を追加することで、暗号化されているファイルをクライアントがキャッシングするのを前もって防止することができます。

<meta http-equiv="pragma" content="no-cache">


ポートを制限する

マシン上で使用していないポートは、すべて無効にします。ルータやファイアウォールの構成を使用して、最少数のポートセット以外には着信接続ができないように構成します。このように設定すると、マシン上でシェルを取得する方法が、サーバマシンを物理的に使用することだけになり、制限された領域内にしか接続できないことになります。


サーバの限界を知る

サーバは、サーバとクライアントの間にセキュリティ保護された接続を提供します。サーバは、情報のセキュリティを一度クライアントに取得されると、もうそれを制御することはできず、サーバマシン自体およびディレクトリやファイルに対するアクセスも制御できません。

このような限界を認識しておくことは、避けるべき状況を理解するのに役立ちます。たとえば、SSL 接続を通じてクレジットカードの番号を取得するとして、そのような番号をサーバマシン上のセキュリティ保護されたファイルに保存できるでしょうか。SSL 接続が終了したあとでこれらの番号に何が起こるのでしょうか。SSL を通じてクライアントが送信してきた情報に対しては、セキュリティ保護する責任があります。


サーバを保護するためその他の追加変更を行う

保護されているサーバと保護されていないサーバの両方が必要な場合には、保護されているサーバとは異なるマシンで保護されていないサーバを運用する必要があります。リソースが限られており、保護されているサーバと同じマシン上で保護されていないサーバを稼動しなくてならない場合には、次のようにしてください。

  • 適切なポート番号を割り当てます。保護されているサーバと保護されていないサーバに、必ず異なるポート番号が割り当てられる必要があります。登録されているデフォルトのポート番号は、次のとおりです。

    • 443 (保護されているサーバ用)

    • 80 (保護されていないサーバ用)

  • UNIX または Linux の場合には、ドキュメントルートディレクトリに対して chroot 機能を有効にします。保護されていないサーバは、chroot を使用してリダイレクトされたドキュメントルートに対する参照権限を持つ必要があります。

chroot を使用して、サーバを特定のディレクトリに限定するよう第 2 のルートディレクトリを作成できます。保護されていないサーバの保護対策としてこの機能を使用することができます。たとえば、ルートディレクトリが /d1/ms であるということもできます。そのとき、Web サーバが、ルートディレクトリにアクセスしようとする場合は常に、実際には /d1/ms に行き着きます。また、/dev にアクセスしようとした場合は、/d1/ms/dev に行き着きます。したがって、実際のルートディレクトリに下にあるファイルにはいっさいアクセスさせずに、UNIX/Linux システムで Web サーバを稼動することができます。

ただし、chroot を使用する場合には、次の図に示すように、iPlanet Web Server によって要求されるディレクトリ構造全体を代替ルートディレクトリの下にセットアップする必要があります。

図 5-2    chroot ディレクトリ構造の例



仮想サーバクラスに chroot を指定する

次の手順で、仮想サーバクラスに chroot ディレクトリを指定できます。

  1. Server Manager にアクセスし、サーバのサーバインスタンスをドロップダウンリストから選択します。

  2. 「Virtual Server Class」タブを選択します。

  3. 「Edit Classes」リンクをクリックします。

  4. 「Option」が、chroot を指定したいクラスについて、「Edit」に設定されていることを確認します。

  5. そのクラスの「Advanced」ボタンをクリックします。

    「Virtual Servers CGI Settings」ページが表示されます。

  6. 「Chroot」フィールドに絶対パス名を入力します。

  7. 「OK」をクリックします。

  8. 「Apply」をクリックします。

  9. 「Load Configuration Files」を選択して、動的に適用します。


仮想サーバに chroot を指定する

次の手順で、特定の仮想サーバに chroot ディレクトリを指定できます。

  1. Server Manager にアクセスし、サーバのサーバインスタンスをドロップダウンリストから選択します。

  2. 「Virtual Server Class」タブを選択します。

  3. 「Tree View of the Server」から chroot ディレクトリを指定したい仮想サーバへのリンクをクリックします。

  4. 「Settings」タブを選択します。

    「Settings」ページが表示されます。

  5. 「Chroot Directory」の隣にある「Set to」フィールドに、絶対パス名を入力します。

  6. 「OK」をクリックします。

  7. 「Apply」をクリックします。

  8. 「Load Configuration Files」を選択して、動的に適用します。

「Class Manager Virtual Servers」タブと「CGI Settings」リンクを使用して、仮想サーバに chroot ディレクトリを指定することもできます。

仮想サーバに chroot ディレクトリを指定する方法についての詳細は、iPlanet Web Server の『プログラマーズガイド』を参照してください。


前へ     目次     索引     DocHome     次へ     
Copyright © 2001 Sun Microsystems, Inc. Some preexisting portions Copyright © 2001 Netscape Communications Corp. All rights reserved.

Last Updated October 17, 2001