ICAP2.3 取扱い説明書

1998.2.27


目次

1. はじめに 1.1 概要
1.2 ICAPの構成
1.3 プラットフォーム
1.4 前提となるアプリケーションプログラム
1.5 環境設定
1.6 マシン環境の前提条件
2. インストール手順
2.1 概要
2.2 インストールスクリプト($ICAP/install)について
2.3 ブラウザからの初期設定について
3. 起動、および終了方法
4. CAの初期設定(CAの立ち上げ)
4.1公開鍵暗号アルゴリズムを選ぶ
4.2 システムを説明する
4.2.1 CAの運用形態
4.2.2 CAの名称や管理者の情報
4.2.3 下位CAとして運用する場合
4.3 CAの秘密鍵を作る
4.4 CA名を選ぶ
4.5 CAの公開鍵を登録する
4.6 CAのポリシーを登録する
4.7 CAの証明書を組込む
4.8 その他の設定
5. CAの運用
5.1 概要
5.1.1 「CAの初期設定(CAの立ち上げ)」メニュー
5.1.2 「ユーザ向けサービス」メニュー
5.1.3「管理者向けサービス」メニュー
5.2 CAの運用と管理
5.2.1 ユーザに対する証明書の発行
5.2.2 ユーザの証明書に対する登録抹消
5.2.3 CRL の発行
5.2.4 有効期限ぎれの証明書の処理
5.2.5 CA のトポロジ変更
5.2.6 IPアドレスベースのアクセスコントロールについて
5.2.7 CA管理者のパスワードの変更
5.2.8 証明書の有効期間について
5.2.9 FJPEMからの移行
6. ICAPとPEPOPの連携
6.1 概要
6.2 ICAP 側設定の補足
6.2.1 ネットワーク構成について
6.2.2 install の実行
6.2.3 初期設定メニューの実行
6.2.4 管理者向けメニュー「ユーザアカウントの登録/変更/ 削除」の実行
7. PEPOP 側設定の補足
7.1 その他
7.1.1 発行できる証明書の数の変更
7.1.2 証明書の Subject について
7.1.3 日本語入り証明書について
7.1.4 CRL の発行について
8. ディレクトリとファイル一覧
8.1 ICAP のディレクトリ構成
8.2 $ICAP/etc ディレクトリのファイル
8.3 $ICAP/lib ディレクトリのファイル
8.4 $ICAP/bin ディレクトリのファイル
9. install スクリプトの動作について
10. コマンド一覧
10.1 issue_crl
10.2 icap-check_expired

1. はじめに

1.1 概要

 近年の電子商取り引きなどへの関心が高まる中、広域認証技術、とりわけ 認証局および認証局構築のためのソフトウェアの必要性が増しています。
 本ソフトウェアICAP(ICAT Certification Authority Package)は、認証 局を開設し、認証業務全般を支援する機能を提供します。
 ICAPは認証局の業務遂行の為に必要な機能を備えています。つまり、
  1. 証明書の発行
  2. 証明書の有効性の確認
  3. 証明書の検索
などです。
 ICAPが発行する証明書の形式は、X.509 Version 1 および Version 3 で す。
 さらに、ICAPはユーザがオンラインで証明書の発行依頼・入手が可能とす る機能があります。認証局の管理者は、このサービスを証明書の発行を希望するユー ザに公開することによって、管理者の手を煩わせることなく、ユーザ自身の手 で自分の証明書を入手できるようになります。ICAPはこれを実現する為に、
  1. オンライン証明書発行の為の、ユーザアカウントの登録・削除
  2. ユーザ支援サービスメニュー
などの機能も備えています。

1.2 ICAPの構成

 ICAPの構成を以下に示します。
 ICAP は Webサーバ上で動作するCGIプログラム、および CGIプログラムか ら起動されるいくつかのプログラムより構成されます。

1.3 プラットフォーム

 ICAPが想定する稼働条件は、以下の通りです。
  • SunOS 4.x (SPARC版)
  • Solaris 2.5
  • Solaris 2.5.1 (x86)
  • FreeBSD 2.2.5

1.4 前提となるアプリケーションプログラム

 ICAPは、いくつかのアプリケーションプログラムを前提に作成されてい ます。従ってICAPのインストールに先立ち、次のアプリケーションプログラ ムをセットアップしておく必要があります。
  • Webサーバ
    • NSCA httpd または Apache
  • Webブラウザ
    • Netscape communicator, Internet Explorer 等
  • インタプリタ
    • Perl (ver.4.036 以上)
  • 電子メイル
    • sendmail (最新版)

1.5 環境設定

 「1.4 前提となるアプリケーションプログラム」で列挙した プログラムのうち、WebサーバおよびWebブラウザについては、次のような環境設定が行 なわれることが前提となります。
  1. Webサーバ(httpd) の 環境設定
    • $ServerRoot/cgi-bin ディレクトリが存在していること
    • $ServerRoot/cgi-binディレクトリにおいた実行ファイルは、 CGIスクリプトとして、Webブラウザから実行可能であること。
    • $ServerRoot/{cgi-bin,htdocs} ディレクトリ内のファイルに シンボリックリンクを許していること。(access.conf 等にてFollowSymlinks を設定していること)

      [注] $ServerRoot とはWebサーバのトップディレクトリを意味しています。

  2. Webブラウザ の 環境設定
    • Webブラウザ が Proxy サーバ を参照するように設定している場合は、 Proxy サーバを参照しないように、あらかじめ設定を変更してください。

1.6 マシン環境の前提条件

 ICAPは、認証局自体の秘密鍵、ユーザの証明書、ユーザに証明書を発行 する際のパスワードを管理するなどの理由から、OSに対するセキュリティ 関連の修正を適用することはもちろん、マシンの設置環境が十分に安全な場所 であることを前提としています。
 さらに、ICAPの管理をWebブラウザを用いて行なう関係から、Webサーバ とブラウザ間の通信は、SSL(Secure Socket Layer)などによって暗号化され ている必要があります。

2. インストール手順

2.1 概要

 ICAPのインストールについて、まず概要を説明します。 なお、ICAPをインストールするディレクトリについては、管理者の自由です。
 以下の説明では、ICAPをインストールしたディレクトリを、$ICAP と記します。
  1. common パッケージ icap2.3-common.tar.gzを次のようにして展開する.
            cd $ICAP     
            gzip -cd  icap2.23-common.tar.gz | tar xvf -
        
  2. インストールする OS に合わせて、portion パッケージ icap2.2-OS名-portion.tar.gzを次のようにして1. と同じディレクトリで展開する.
            cd $ICAP
            gzip -cd  icap2.2-OS名-portion.tar.gz | tar xvf -
        
  3. ICAPディレクトリへ移動し、インストールスクリプト ($ICAP/install)を root で実行する。

    (注意:インストールスクリプトを実行する前に、EUCコードが表示 できるように表示端末側を設定してください。 そのように設定できない場合は、$ICAP/install.eng を使用してください。 )

    
            # cd ICAP
            # ./install
         
  4. Web ブラウザが起動しますので、これを用いてCAの初期設定を行ないます。

2.2 インストールスクリプト($ICAP/install)について

画面に表示される質問に対して、それぞれ答えて下さい。答えるのが難し い質問は無いと思います。

[例] インストールスクリプトの実行例

  mjugod01# ./install
  =====================================================================
  ようこそ、ICAP (ICAT CA Package) へ。

    ICAP を利用する為には、あらかじめ以下のソフトウェアのインストールを
    行なう必要があります。

     ・NSCA httpd
     ・Webブラウザ (netscape, mosaic 等)
     ・Perl (ver.4.036 以上)

    また、このスクリプトを実行する前に、次の条件で httpd が起動している
    ことを確認して下さい。

     ・$ServerRoot/cgi-bin ディレクトリが存在していること。
     ・$ServerRoot/cgi-bin ディレクトリにおいた実行ファイルは、CGIスク
       リプトとして、Webブラウザから実行可能であること。
     ・$ServerRoot/{cgi-bin,htdocs}ディレクトリ内のファイルにシンボリッ
       クリンクを許していること。(FollowSymlinks を設定していること)

   [注] $ServerRoot とはWWWサーバのトップディレクトリを意味します。
  =====================================================================

  インストール作業を続けますか? (default: yes)  (リターンのみ)

  Perl コマンドのパス名を入力して下さい。
   (default: /usr/local/bin/perl)  /usr/bin/perl(リターン)

  Webブラウザを起動するコマンドのパス名を入力して下さい。
   (default: /usr/local/bin/netscape) (リターンのみ)

  WWWサーバを展開したディレクトリ名($ServerRoot)を入力して下さい。
   (default: /usr/local/etc/httpd) (リターンのみ)

  WWWサーバ上でホームページを置いているトップディレクトリ名($DocumentRoot)
  を入力して下さい。
   (default: /usr/local/etc/httpd/htdocs) (リターンのみ)

  WWWサーバ上で CGI プログラムを置いているディレクトリ名を、絶対パスで
  入力して下さい。
   (default: /usr/local/etc/httpd/cgi-bin) (リターンのみ)

  WWWサーバの実行ユーザIDを入力して下さい。
  [参照]/usr/local/etc/httpd/conf/httpd.conf ファイル にて
          User変数に指定した値を入力して下さい。
   (default: nobody) (リターンのみ)

  httpd のポート番号を入力して下さい。
  (default: 80) (リターンのみ)

  ICAPホームページを置くディレクトリ名を入力して下さい。
  [注意]/usr/local/etc/httpd/htdocs からの相対パスで入力して下さい。
   (default: ca) (リターンのみ)

  ICAP の管理者を登録します。
  ICAP管理者の「ログイン名」と「パスワード」を入力して下さい。

  ログイン名を入力して下さい(8文字以内)。 (default: ca-admin) : (リターンのみ)
  パスワードを入力して下さい(8文字以内)。: (パスワードを入力)
  もう一度パスワードを入力して下さい。:  (もう一度同じパスワードを入力)  

  次に示すようなシンボリックリンクを張ります。
    ・/usr/local/etc/httpd/cgi-bin/* 
             → /usr/local/ICAP/cgi-bin/* 
    ・/usr/local/etc/httpd/htdocs/ca
             → /usr/local/ICAP/html 

  インストール作業を続けますか? (default: yes) (リターンのみ)

  /usr/local/ICAP/bin ディレクトリを整備します。

  /usr/local/ICAP/cgi-bin ディレクトリを整備します。

  /usr/local/ICAP/etc/icap.conf ファイルを更新します。

  /usr/local/ICAP/etc ディレクトリのパーミッション変更。

  /usr/meiji/bin/netscape を起動します。
  ○ ICAPの管理者向けメニューのURLは、 http://mjugod01/ca/admin/index.html です。
  ○ ICAPのユーザ向けメニューのURLは、 http://mjugod01/ca/index.html です。
  mjugod01# 

このようにして、インストールスクリプトの質問に全て答えると、やがて 自動的にWebブラウザが起動します。

2.3 ブラウザからの初期設定について

 これから立ち上げようとする CA の初期設定は、Webブラウザから行 ないます。
 まずは、「1. CAの初期設定(CAの立ち上げ)」の、 「1.システムを説明する」を選択して下さい。

3. 起動、および終了方法

 ICAPは、httpの cgi-bin により起動されるので、インストールが終了していれば 、起動や終了の方法はない。 しいて言えば、Webブラウザでアクセスすることが起動方法であり、終了方法である。

4. CAの初期設定(CAの立ち上げ)

 CAの初期化は、ICAP Webページの
          「1. CAの初期設定(CAの立ち上げ)」
のサブメニューを順番に、「1.公開鍵暗号アルゴリズムを選ぶ」から 「8. その他の設定」まで実行します。

4.1公開鍵暗号アルゴリズムを選ぶ

 このサブメニューでは、CA が証明書に署名するときに利用する公開鍵暗 号として、RSA か MyEllty(楕円曲線暗号)のいずれかを選択します。 ※ 1つの CA で両方のアルゴリズムをサポートすることはできません。

4.2 システムを説明する

 このサブメニューからは、CA に関するさまざまな情報を入力します。

4.2.1 CAの運用形態

 以下のいずれかを選択してください。
  • 「単独 CAとして運用する (self-signed and isolated CA)」
  • 「最上位 CA として運用する (self-signed and the highest CA)」
  • 「下位 CAとして運用する (subordinated to other CA)」
  • 「ICAT PCA の下位CAとして運用する (subordinated to ICAT PCA)」(RSAのみ)

 ICAT PCA の下位CAとして運用するためには、ICAT PCA から、本CAの 証明書を発行してもらう必要があります。

4.2.2 CAの名称や管理者の情報

  • CAの名称 :
    CAの名称を入力します。
    「1-6 CAのポリシーを登録する」を実行の際、この名称が ICAT へ電 子メイルで送付されます。

  • CA管理者の E-Mailアドレス : CA管理者の電子メイルアドレスを入力します。

4.2.3 下位CAとして運用する場合

 ICAT PCA あるいは他の CA の「下位CAとして運用する」を選択した場合は、 さらに以下の項目も指定します。
  • 上位CA(例:ICAT)への証明書発行依頼用 E-Mailアドレス :
    上位CAへの証明書発行依頼用 E-Mailアドレスを入力します。 ICATにCAの証明書の発行を依頼する方は、変更せずデフォルトのまま にして下さい。

  • 本CAの発行する CRLの広報用 E-Mailアドレス :
    ICAP は、CAの発行する CRLを他のCAに伝える為に電子メイルを利用 します。 ICATにCAの証明書の発行を依頼する方は、変更せずデフォルトのまま にして下さい。

  • 証明書検索データベースのホスト名またはIPアドレス :
    ICAP は、ICAPから証明書の発行を受けた全ての CAについて、それぞ れのCAが発行した 証明書をオンラインで検索できるサービスの開始 を予定しています。 ICATにCAの証明書の発行を依頼する方は、変更せずデフォルトのまま にして下さい。

4.3 CAの秘密鍵を作る

 CA の 秘密鍵を作成します。 ランダム文字列: に適当な文字列を入力し、Submit を押して下さい。
 RSA の場合は秘密鍵が 512bit 長です。 Sun4/20 SunOS4.1.3, SuperSPARC+ 70MHz で約15秒程度時間を要します。
 MyEllty の場合は秘密鍵が 160bit 長です。 Sun/Sparc5 SunOS4.1.4, CPU 170MHz で約1〜2秒程度を要します。

4.4 CA名を選ぶ

 CA の DN(Distinguished Name)を決定します。
  • 国名コード (C:Country) ISO国コードを入力してください。日本国のコードは、JP です。
  • 組織名 (O:Organization) : 組織名を入力してください。
  • 部門名1 (OU:Organization Unit 1) : (optional)
  • 部門名2 (OU:Organization Unit 2) : (optional)
  • 部門名3 (OU:Organization Unit 3) : (optional) 部門名を入力してください。別に指定しなくてもかまいません。

4.5 CAの公開鍵を登録する

 CA 自身の公開鍵の登録手続きをします。
 CA運用形態として、ICAT PCA あるいは他の CAの「下位CAとして運用する」 を選択した場合は、CA の公開鍵申請書(自己署名した証明書)を、上位 CA に対し送付します。 CA運用形態として、「単独CAとして運用する」を選択した場合には、 CA の管理者宛てに送付します。
 ICATにCAの証明書の発行を依頼する方は、「実験計画」に CA を立ち上げ た後、具体的に何を実験したいのかを記入してください。「Send」ボタンを押 すと、公開鍵申請書(自己署名した証明書)が電子メイルで ICAT に送付され ます。後ほど ICAT 事務局から、CA管理者の「認証」作業を行ないます。

4.6 CAのポリシーを登録する

 CA のポリシーを記入します。
 CA運用形態として、ICAT PCA あるいは他の CA の「下位CAとして運用す る」を選択した場合は、これらを全て記入して下さい。
  • ユーザのDN識別名の例 :
    CA がユーザに対し発行する証明書の DN識別名を記入して下さい。

  • 対象ユーザとその予想人数 :
    証明書の発行対象となるユーザの範囲や、予想されるユーザ数を記入 して下さい。

  • 実験の内容 : CA を立ち上げた後、具体的に何を実験したいのかを記入してください。

  • 実験の期間(予定) :

  • 証明書の有効期限 :

  • 本CAに関する連絡先 :

4.7 CAの証明書を組込む

 CA の証明書を組み込みます。

 CA運用形態として、ICAT PCA あるいは他の CA の「下位CAとして運用す る」を選択した場合は、上位の CA が発行した証明書をカットアンドペースト します。

4.8 その他の設定

 このサブメニューでは、証明書内にメールアドレスを含める場合のメール のドメイン名リストや証明書 X.509 V3 で利用する拡張フィールドについて、 CA であらかじめ決めておく値などを設定します。ここで設定した値は、他の ICAP が発行した証明書を検索できるようにするなど、ICAP間連携機能を利用 する場合に使われます。
 これで、CA を立ち上げる為の全ての作業は終了です。

5. CAの運用

5.1 概要

 ICAP による CA の運用・利用は、そのほとんどが Webブラウザを用いて 行なうことができます。ICAP の URL は、ICAPをインストールする際に実行し たインストールスクリプトの最後に表示されます。
   [例]
                 :
         (インストールスクリプトの実行)
                 :
       ICAPの URL は、 http://www.icat.or.jp/ca/index.html です。


 ICAPの Webページは、次のように、3つのメニューと6〜8のサブメニュー より構成されます。
   1.CAの初期設定(CAの立ち上げ) 
      1.公開鍵暗号アルゴリズムを選ぶ 
      2.システムを説明する
      3.CAの秘密鍵を作る 
      4.CA名を選ぶ 
      5.CAの公開鍵を登録する
      6.CAのポリシーを登録する 
      7.CAの証明書を組込む 
      8.その他の設定

   2.ユーザ向けサービス 
      1.証明書を申請する 
      2.証明書の有効性を確かめる 
      3.証明書を廃止する
      4.証明書を検索する
      5.廃棄証明書リスト(CRL)を見る
      6.CAのタイムスタンプサービス
      7.CA自身の証明書を入手する

   3.管理者向けサービス 
      1.ユーザアカウントの登録/変更/削除 
      2.ユーザの証明書を表示 
      3.ユーザの証明書を発行する
      4.ユーザの証明書の登録を抹消する 
      5.CRLの発行 
      6.CRLの閲覧 
      7.管理記録の一覧 
      8.統計情報
      9.登録ずみユーザアカウントの表示
     10.CA のトポロジを変更する

5.1.1 「CAの初期設定(CAの立ち上げ)」メニュー

 このメニューは、初めてCAを立ち上げる際に、CA管理者が実行するメニュー です。
 「1.システムを説明する」〜「8.その他の設定」の全てのサブメニュー を実行すると、CAの初期設定は終了です。
 なおそれぞれのサブメニューを実行するには、インストールスクリプト から入力した「CA管理者名(ログイン名)」と「CA管理者のパスワード」が必 要です。

5.1.2 「ユーザ向けサービス」メニュー

 このメニューは、この CA に対する証明書の発行要求・証明書の登録抹 消要求などを、それを希望するユーザ自身が操作して行なうものです。
 CA管理者は、このサービスを証明書の発行を希望するユーザに公開する ことによって、CA管理者の手を煩わせることなく、ユーザ自身の手で自分の証 明書を入手できるようになります。
 このサービスを利用するユーザの認証は、次のように行ないます。
  • 証明書発行時: ICAP で設定されている、ユーザのアカウント名 とパスワードの一致を検証する。
  • 証明書破棄時: ユーザの秘密鍵で署名された MIC-CLEAR PEM メッセージを検証する。

その他のサービスは、ユーザの認証を必要としません。

5.1.3「管理者向けサービス」メニュー

 このメニューは、この CA に対する証明書の発行要求・証明書の登録抹 消要求などを、CA管理者自身の操作によって行なうものです。
 また、このメニューでは、CA 管理者にとって有益な情報(証明書の発 行ログ、ユーザに関する情報)などを表示、検索することができます。
 さらに、CRL の発行も行なうことができます。
 さらに、もし「ユーザ向けサービス」メニューをユーザに公開するのな らば、そのサービスを利用するユーザの認証の為に、パスワードを登録あるい は削除することができます。

5.2 CAの運用と管理

5.2.1 ユーザに対する証明書の発行

 ICAPを用いて、ユーザに対する証明書を発行するには、2つの方法があ ります。
 1つは、CA管理者が、そのユーザのログイン名とパスワードを「3-1 ユー ザアカウントの登録/変更/削除」で登録し、ユーザは、「2-1 証明書を申請す る」サブメニューに従って自分の証明書を入手する方法、そしてもう1つは、 CA管理者が、「3-3 ユーザの証明書を発行する」サブメニューに従って証明書 を発行する方法です。
 ここでは例として、PemCAT を使用しているユーザが、自分の証明書を 入手するまでの手順を紹介します。

● 前者の方法の場合

  1. CA管理者側
    1. ユーザのログイン名とパスワードを「3-1 ユーザアカウントの登 録/変更/削除 」サブメニューから登録する。
    2. なんらかの方法で(郵便?直接対面?)ユーザにログイン名とパ スワードを教える。
    [参考] ユーザ認証用のパスワードファイルは、$ICAP/etc/passwdです。 このファイルのフォーマットは、SunOS4.1.X の /etc/passwd ファイルと 同じです。従って、もしユーザのパスワー ドファイルが入手できるなら、そのファイルを $ICAP/etc/passwd に コピーするだけで、上記 1. と 2. の手間は省くことができます。

  2. ユーザ側(PemCAT の場合)
    1. 秘密鍵と公開鍵を生成
                    hoge% makepemkey
    2. Webブラウザを用いて ICAP ホームページに接続。「2-1 証明 書を申請する」サブメニューの「公開鍵情報(N)」欄に、先ほど作成した自分 の公開鍵(.key ファイルの N= の値)をカットアンドペーストする。
    3. 「Send Request」ボタンを押す。
    4. 「証明書を発行」をチェックし、自分のアカウント名とパス ワードを入力の上、「Issue Certificate」ボタンを押す。
    5. 発行された証明書を、.cert ファイルにテキスト保存する。

● 後者の方法の場合

  1. ユーザ側
    1. 秘密鍵と公開鍵を生成
      
                   hoge% makepemkey
    2. なんらかの方法で(郵便?直接対面?メイル?)CA管理者に 先ほど作成した自分の公開鍵(.key ファイルの N= の値)を通知し、証明書 の発行を依頼する。

  2. CA管理者側
    1. ユーザの本人認証をした上、公開鍵を受けとり、さらに、当 人の DN を決める。
    2. 「3-3 ユーザの証明書を発行する」サブメニューから、ユー ザの公開鍵に対する証明書を発行する。
    3. なんらかの方法で(郵便?直接対面?電子メイル?)ユーザに証明書を 教える。発行した証明書のシリアル番号をユーザに伝えて検索して 入手してもらう方法は一例。

5.2.2 ユーザの証明書に対する登録抹消

  • ユーザが自分の秘密鍵を紛失した。
  • ユーザが自分の秘密鍵を盗まれた。他人に知られた。
などの場合、そのユーザに発行した証明書を抹消する必要があります。
 証明書の抹消も、3.1 と同様に、ユーザ自身が行なう方法と、CA管理者 が行なう方法とがあります。

● 前者の方法の場合

    ※pemCAT(PEM対応のアプリケーション)を利用する場合に限られます。

  • ユーザ側
    • 「2-3 証明書を廃止する」サブメニューを選択する。
    • 「証明書廃棄チケット」に対し、ユーザ自身の秘密鍵で電子 署名した MIC-CLEARモードの PEMのメッセージを作成する。
    • 「MIC-CLEARメッセージ」欄に、2.で作成した PEM メッセー ジをカットアンドペーストし「Revoke Certificate」ボタンを押す。

● 後者の方法の場合

  1. CA管理者側
    1. 「3-4 ユーザの証明書の登録を抹消する」サブメニューを選択する。
    2. 抹消する証明書のシリアル番号、もしくは、ユーザの証明書 そのものを指定のうえ、「Revoke Certificate」ボタンを押す。

5.2.3 CRL の発行

 CRL の発行は、「3-5 CRLの発行」サブメニューから行ないます。CRL を発行するかどうかや、CRL の発行間隔は、それぞれの CA のポリシーにより 決定します。
なお、CRLを定期間隔で自動的に発行したい場合は、 $ICAP/bin/issue_crl コマンド(
10.1章参照)を cron で実行して下さい。

    [コマンド実行例]
       % issue_crl -m 1 -d 15
         1月後の 15日が next Update date になります。

       % issue_crl -n 7
         1週間後が next Update date になります。

5.2.4 有効期限ぎれの証明書の処理

 有効期限の切れた証明書は通常、有効性確認時に判断できますが、この パッケージでは有効期限の切れた証明書を $ICAP/expiredb に移動し て証明書ディレクトリを整理することができます。
 有効期限の切れた証明書を $ICAP/certdb から $ICAP/expiredb に移動するコマンド $ICAP/bin/icap-check_expired(
10.2章参照) がありますので、例えば cron で、毎日1回程度、定期的に実行することをお 奨めします。

5.2.5 CA のトポロジ変更

 ICAP では、次のトポロジを選択することが可能です。

  • ICAT PCA の下に位置
  • 単独(階層なし)
  • 最上位
  • 他の ICAP の下に位置
 トポロジはインストール時に選択しますが、インストール後に変えること も可能です。例えば、まず単独の状態で試してから、ICAT PCA の下に位置さ せるように変更したり、逆に ICAT PCA の下にある状態から、単独に戻すといっ た状況変化に対応できます。
 インストール後にトポロジを変更する場合には、「管理者向けサービス」 の「CA のトポロジを変更する」を実行して下さい。
 なお、ICAP のみで 2段以上の階層を構成することは可能ですが、ICAP間 通信は1段階層を前提としていますのでご注意下さい。

5.2.6 IPアドレスベースのアクセスコントロールについて

 $ICAP/etc/icap_access.conf を設定すると、パスワード入力を必 要とするメニューにおいて、ICAP クライアントの IPアドレスによるアクセス コントロールを行なうことができます。
 この設定は Webメニューでは行ないません。これは、 $ICAP/etc/icap_access.conf の設定が Web を通じて不正に書き換え られることを防ぐためです。
 $ICAP/etc/icap_access.conf は vi などのエディタを使って直接 編集して下さい。
 記述方法の詳細は、 $ICAP/etc/icap_access.conf のコメント部 分にあります。典型的な設定方法を示します。

  1. ICAP の管理者が ICAP へアクセスできるホストを特定のホストに制限する (強くお奨めします)
    以下のように設定すると、ICAP の管理者は 2台のホスト(10.10.9.8 と10.10.9.9) からのみ管理者向け作業を行なうことができます。

    なお、ブラウザから proxy 経由で ICAP にアクセスする場合には、 proxy ホストの IPアドレスを書く必要があります。

            administrator:permit:10.10.9.8:255.255.255.255
            administrator:permit:10.10.9.9:255.255.255.255
  2. ICAP に登録したユーザが ICAP へアクセスできるネットワークを制限する
    以下のように設定すると、ICAP に登録したユーザは ネットワーク 10.10.10.0 上のホストからのみユーザ向けメニューを実行できます。
            user:permit:10.10.10.0:255.255.255.0

    ※上記設定を行なっても、パスワードなしで実行できるメニュー(証明書 の検索など)に関してはアクセスコントロールは効きません。

5.2.7 CA管理者のパスワードの変更

 ICAP をインストールしたディレクトリを仮に $ICAP とします と、次の手順でCA管理者のパスワードを変更することができます。
     # cd $ICAP/bin
     # ./edit-passwd -f ../etc/passwd.admin -l (CA管理者名)
     (新しいパスワード)
     #

5.2.8 証明書の有効期間について

  1. CA自身の証明書の有効期間のデフォルトは 1年です。
    証明書の有効期間を 1年 以外で運用する場合は、 $ICAP/cgi-bin/icap-start-2$CGI_arg{'val_sec'} の値を 60*60*24*365 から別の値に書き直してからインストールしなおす必要があり ます。(2箇所あります。)

    一度インストールしてから書き直した場合も、インストールしなおさない と反映されません。

  2. CA が発行する証明書の有効期間は、アプリケーションごとに $ICAP/etc/icap_app.profile で設定することができます。
    例: netscape 用の証明書の有効期間を 180日から 365 日に変更するとき 以下のように第5フィールドを変更します。
    (変更前)
    netscape:1:rsaEncryption:md2WithRSAEncryption:180:c,o,cn:icap-user_netscape_cert_req:
    
    (変更後)
    netscape:1:rsaEncryption:md2WithRSAEncryption:365:c,o,cn:icap-user_netscape_cert_req:

    なお、現段階では、+$ICAP/etc/icap_app.profile の変更は有効期 間の変更のみにとどめることを強くお勧めします。

5.2.9 FJPEMからの移行

 既に FJPEM を用いて ICAT等からCAの証明書を受けとっているが、今後、 ICAP を用いて CA の運用を行ないたい場合は、まず、「2. インストール手順」 にしたがって、ICAP をインストールして下さい。
 その際、Webブラウザから「CAの初期設定(CAの立ち上げ)」をする際は、
  • 「1-1 公開鍵暗号アルゴリズムを選ぶ」
  • 「1-2 システムを説明する」
  • 「1-4 CA名を選ぶ」
    • 但し、「上位PCA(例:ICAT)への証明書発行依頼用 E-Mailアドレ ス」の欄は、「CA管理者の E-Mailアドレス」と同じものにすること。
  • 「1-6 CAのポリシーを登録する」
だけを実行します。
 Webブラウザからの初期設定が終了したら、 既に持っている鍵ファイルと証明書 ファイルを、以下のようにして、$ICAP/etc へコピーすれば、OK です。
  • CA の鍵ファイル(例えば '.key')を、$ICAP/etc/ca.key へコピー。
  • CA の証明書ファイル(例えば '.cert')を、 $ICAP/etc/ca.cert へコピー。

6. ICAPとPEPOPの連携

6.1 概要

 ICAP と PEPOPとの連携を実現する為の手順を、以下に示します。

         ==================================================
         PEPOP                   ICAP
         ==================================================
         PEPOPサーバ             1.install の実行
         (pesmtpd,pepopd)              |        
         のインストール                |
              ↓                       ↓
         環境設定                2. 初期設定メニューの実行
              |                 (CA の証明書設定)
              |                       ↓
              └-──────→  3. 管理者向けメニュー
                                 「ユーザアカウントの登録」の実行
                                 (少なくとも1つ新規にアカウント登
                                 録する)
                                       |        
         証明書発行 x ユーザ数 ←───┘
         (crtreq コマンド)
              ↓
         ユーザ情報の登録 x ユーザ数
         (pedbadd コマンド)
              ↓
         サービス開始                  

6.2 ICAP 側設定の補足

6.2.1 ネットワーク構成について

 PEPOPサーバ(pepopd と pesmtpd)ホストについては、
  • ユーザの秘密鍵が管理されている
  • ユーザがメールを取り込んだり、送ったりする
ということから、ファイアウォールの中にあるネットワーク上に置くの が一般的です。
 CAサーバ(ICAP) ホストについては、
  • CA の秘密鍵が管理されている
  • PEPOPサーバと直接通信する
ということから、本来はファイアウォールの中にあるネットワーク上に 置くべきです。
 しかし、 ICAP は、証明書の入手時や CRL の入手時に、
  • 組織外の ICAP と直接通信する
という機能があります。
 現在のICAPではこれらの機能を全て同一ホストで提供しています。
 CAサーバをファイアウォールの中において、組織外の ICAP と直接通信 する設定が可能な場合、ユーザの秘密鍵だけでも外からはアクセスされないよ うにするために CAサーバと PEPOPサーバのホストは分けることをお奨めしま す。
 もしもファイアウォールの構成が複雑で、CAサーバをユーザが住んでい るネットワーク上に置いてしまうと組織外からの ICAP へのアクセスを受け入 れるように設定するのが難しくなる場合は、例えばCAサーバをバリアセグメン トに置くという以下のような構成があります。

                          インターネットへ
                               ↑
                              Router1
                               |
            --------+------+---+-------------- バリアセグメント
                    |      |
                   ICAP    Router2
                   サーバ  |
                      -----+--+------+----------+---- ユーザのネットワーク
                              |      |          |
                           メール   PEPOP      ユーザのホスト
                           サーバ   サーバ  

  1. PEPOPサーバから ICAPのポート(httpd のポート) へアクセ スできるように Router2 を設定する

  2. ICAPサーバから インターネットへアクセスできるように 必要なら Router1 を設定する

  3. インターネットからは ICAP のポート(httpd のポート) へア クセスできるように Router1 を設定する(実験で通信する ICAP の IPアドレ スだけ許可するのがベスト)

    ※ Router1, Router2 にあたる部分をアプリケーションゲー トウェイで実装するようなバリエーションがいくつか考えられます。

    ※ バリアセグメント上にある ICAP サーバへ他の組織から 証明書発行要求が行なわれるのを防ぐため、 $ICAP/etc/icap_access.conf に、証明書発行要求を PEPOPサーバに限 定する設定を行なうことをお奨めします。

6.2.2 install の実行

 ICAP のインストール作業については、「2章 インストール手 順」を参照してください。

6.2.3 初期設定メニューの実行

 CA の鍵や証明書を作成します。
 ここでは、仮に公開鍵アルゴリズムとして、MyEllty(楕円曲線暗号)を選 択したと仮定します。
 ICAP ではMyEllty を選択した場合、鍵長は 160bit, 署名アルゴリズムは MHA となります。

[例] ICAP間連携の実験を行なう場合の設定

                 ICAP
                 / \
              ICAP   ICAP
                |     |

 ICAP を使って親 CA と 子 CA の構築をした場合、共通の親 CA を持つ他 の 子 CA が発行した PEPOP の証明書や CRL をオンラインで入手する「連携 機能」を使うことができます。
 連携の設定は、次のいずれかの方法で行います。

(方法1)はじめからインストールする場合
初期設定メニューを最初から実行し、「システムを説明する」では "subordinated to other CA (EC(MyEllty))"(下位CA) を選択します。
(方法2)すでに単独運用を行っている場合
管理者向けメニューの「CA のトポロジを変更する」を選択しま す。
(注)現状では、全ての ICAP 間にファイアウォール がなく、直接通信できることを仮定しています。

6.2.4 管理者向けメニュー「ユーザアカウントの登録/変更/削除」の実行

 PEPOPがユーザの証明書を代行発行申請を行なう為に、ICAP側ではPEPOPの 認証用のアカウントを新規に1つ登録する必要があります。
 パスワードは PEPOP 管理者が覚えておく必要があります。
 ここでは、仮にアカウント名を PEPOPadm、パスワードをpassPEP0とします。
(注1)安全のため、ICAP の install コマンド実行時に設定した ICAP 管理者の アカウントやパスワードとはちがうものにしてください。
(注2)アカウント登録時の画面に「ユーザの証明書中の氏名欄の値 を管理者が決 めたい場合...」という欄には何も書かないでください。

7. PEPOP 側設定の補足

 PEPOPの設定については、「PEPOP 取扱い説明書」を参照してください。
 ICAP を上記のように設定した場合、PEPOP の crtreq コマンドを実行する ために必要なユーザ毎の証明書リクエスト定義ファイルは次のようになります。
 なお、ユーザ毎の情報について、必須となるフィールドについて示します。 ([General] や [Attributes] はどのユーザの定義ファイルでも固定値になる ことに注意してください。)
[General]
key_algorithm= my-ellty
key_bits= 160
signature_algorithm= MHA
[Subject](ユーザ毎に値を設定)
CountryName: 必須
StateOrProvinceName:
LocalityName:
StreetAddress:
OrganizationName: 必須
OrganizationalUnitName:
Title:
PostalCode:
PhoneNumber:
CommonName: 必須
[Attributes]
UnstructuredName= PEPOPadm (←3.で決めたアカウント名)
ChallengePassword= passPEP0 (←3.で決めたパスワード)
App= PEPOP (←これはおまじないの固定値)
[SubjectDirectoryAttributesWithRestrictedPeriod] (ユーザ毎に値を設定)
CountryName :
StateOrProvinceName:
LocalityName :
StreetAddress :
OrganizationName :
OrganizationalUnitName:
Title: 必須
PostalCode :
PhoneNumber:
CommonName :
E-mailAddress: 必須

7.1 その他

7.1.1 発行できる証明書の数の変更

 $ICAP/etc/icap.conf$USER_CERT_LIMIT という変数を、 PEPOP管理者が管理するユーザ数以上の値に変更してください。

(デフォルト値は 100 です)

7.1.2 証明書の Subject について

 PEPOP経由で証明書を発行する場合に限り、Subject が同一の証明書を発 行することができます。
 ICAP のユーザ向けメニュー、管理者向けメニュー自体では Subject が同 一の証明書を発行することはできないことに注意してください。

7.1.3 日本語入り証明書について

 発行、表示、日本語を使った検索についての対応状況は以下のとおりです。

PEPOP経由ICAPメニュー
(ユーザ 向け、管理者向け)
発行×
表示
発行 ××
(× のついた項目の対応は未定)

7.1.4 CRL の発行について

 CRLの発行については、「
5.2.3 CRL の発行」を参照してください。

7.1.5 有効期限切れの証明書について

 有効期限切れの証明書の取り扱いについては、「5.2.4 有効期限ぎ れの証明書の処理」を参照して下さい。

8. ディレクトリとファイル一覧

8.1 ICAP のディレクトリ構成

$ICAP/bin/ cgi から呼び出されるコマンド群を格納 するディレクトリ
cgi-bin/ : cgiスクリプトを格納するディレクトリ
certdb/ : 証明書を格納するディレクトリ
crl/ : CRL を保存するディレクトリ
etc/: ICAP の動作環境ファイルや鍵などを格納するディレクトリ
expiredb/: 有効期限が切れた証明書を格納するディレクトリ
html/: HTML文書を格納するディレクトリ
lib/: cgiスクリプト用ライブラリを格納するディレクトリ
log/ : 証明書発行/破棄などの記録ファイルを格納するディレク トリ
revokedb/ : 有効期限が切れる前に破棄された証明書を格納する ディレクトリ
rticket/: PEMを利用した証明書廃棄の際に利用するチケットを格 納するディレクトリ
src/ : 各種ソースファイル
doc/ : 各種ドキュメントファイル
doc/sample-data: サンプルデータ

8.2 $ICAP/etc ディレクトリのファイル

  1. icap.conf
    ICAP の configuration ファイル。
    このファイルは、install スクリプトが生成します。 $ICAP/cgi-bin/icap-start-{1,2,5,7} により修正されます。
    • パッケージを展開したディレクトリ名。
    • WWWサーバ関連のディレクトリ名 (ServerRoot,DocumentRoot,CGI-BIN)。

  2. ca.ber (MyEllty(楕円曲線暗号) の場合 MyEllty.ca.ber) このファイルは、$ICAP/cgi-bin/icap-start-2 が作成します。

  3. ca.key (MyEllty(楕円曲線暗号) の場合 MyEllty.ca.seckeyMyEllty.ca.pubkey)
    CAの秘密鍵ファイルです。
    RSA の場合、このファイルは、$ICAP/cgi-bin/icap-start-3 から呼ばれた makepemkey が作成します。
    MyEllty の場合、このファイルは $ICAP/cgi-bin/icap-start-3 から呼ばれた ecc_keygen が作成します。

  4. ca.self (MyEllty(楕円曲線暗号) の場合 MyEllty.ca.self) 自己署名ファイル。
    このファイルは、$ICAP/cgi-bin/icap-start-4 が作成します。

  5. ca.cert (MyEllty(楕円曲線暗号) の場合 MyEllty.ca.cert) PCAから発行された、本CAの証明書。
    このファイルは、$ICAP/cgi-bin/icap-start-6 が作成します。

  6. caname.ber (MyEllty(楕円曲線暗号) の場合 MyEllty.caname.ber) 上位CAの ca.berファイル。後に Issuer として使用。
    このファイルは、$ICAP/cgi-bin/icap-start-6 が作成します。

  7. passwd.admin CA管理者用パスワードファイル。
    ファイル形式は、SunOS4.1.X の /etc/passwd と同じです。 このファイルは、install スクリプトが生成します。

  8. passwd ユーザ用パスワードファイル。
    証明書の発行要求・証明書の登録抹消要求などを、それを希望するユー ザ自身が操作して行なう際、認証に用いられるパスワードファイルです。
    ファイル形式は、SunOS4.1.X の /etc/passwd と同じです。
    このファイルは、「3.1 ユーザパスワードの登録/変更/削除」サブメニュー が作成します。
    gecosフィールドに値を記入すると、証明書の氏名(Common Name)の値と して自動的に利用されます。

  9. ca.issuer (MyEllty(楕円曲線暗号) の場合 なし) IPRAがICATに対して発行した証明書。
    このファイルは、インストール時点で既に用意されています。

  10. icap_app.profile ICAP でサポートするアプリケーション毎の証明書プロファイル。
    このファイルは、最初から用意されています。
    このファイルを変更するだけでは、アプリケーションを追加することは できません。
    証明書の有効期間の設定を変更する以外は変更しないことを強くお奨め します。

  11. icap_resolv.conf ICAP間連携を行なうための設定ファイル。
    このファイルは、最初から用意されています。 消したり、変更したりしないで下さい。

8.3 $ICAP/lib ディレクトリのファイル

  1. icap-libs.pl, icap-libx509.pl, icap-libuser.pl, jcode.pl, *.form icap-libpkcs.pl, icap-libapi.pl, base64.pl
    $ICAP/cgi-bin/ のスクリプトファイルが読み込むライブラリ。

8.4 $ICAP/bin ディレクトリのファイル

  1. makepemkey , makepemkey.sh , keygen , sieve , peek , enpem , depem keygen, sieve, enpem, depem は FJPEM1.2 からそのまま引用。
    peek は FJPEM1.2 のものを拡張。
    makepemkey.sh も FJPEM1.2 からそのまま引用。
    makepemkey は、install 時に makepemkey.sh より生成される。

  2. selfcert , selfcert.pl , signorverify signorverify は SignorVerify からそのまま引用。
    selfcert.pl も SignorVerify からそのまま引用。
    selfcert は、install 時に selfcert.pl より生成される。

  3. echopasswd , icap-passwd , edit-passwd, icap-getgecos $ICAP/src/util/ 参照

  4. issue_crl, icap-check_expired それぞれ issue_crl.pl, icap-check_expired.pl より生成さ れる。

  5. ecc_keygen, ecc_signorverify verb+ecc_keygenは 楕円曲線公開鍵暗号ライブラリ(松下電器産業(株))ICAT 暗号技術研究TF版 (TF-EC-160-009)を利用。
    ecc_signorverify は signorverify 、 楕円曲線公開鍵暗号ライブラリ(松下電器産業(株))ICAT 暗号技術研究TF版、 三菱ハッシュ(三菱電機(株))ICAT 暗号技術研究TF版 を利用。

9. install スクリプトの動作について

  • パッケージをインストールするのに必要な情報は、「対話形式」で得るよう にしています。
  • $ICAP/bin の、{selfcert.pl, makepemkey.sh, issue_crl.pl, icap-check_expired.pl}は先頭行等を修正の上、それぞれ、 {selfcert, makepemkey, issue_crl, icap-check_expired} という ファイルにコピーされます。
  • $ICAP/cgi-bin にある、全ての hogehoge.pl というファイルは、
    • 先頭行の Perlコマンド のパスを修正。
    • $ICAP/lib, $ICAP/etc を require の探索ディレク トリに追加。
    • icap.conf および、icap-lib.pl を require。
    の上、 hogehoge というファイルにコピーされます。

10. コマンド一覧

10.1 issue_crl

NAME issue_crl - issue Certificate Revocation List SYNOPSIS issue_crl [-s] {-n days | -d mdays -m months DESCRIPTION issue_crl はRFC-1422形式のCRLを発行する。ICAP専用のコマ ンドであり、専用のログ(CRL発行ログ)への記録も行なう。

cron から定期的に CRL を実行する場合に利用する。

$ICAP/log/revoke.log から証明書の廃止証明を行う.

revoke.logの形式は次の形式をとる。

UTCTime:CertificateSerialNumber: で指定された行が任意個連なっている.ここで,UTCTimeは廃止され た日時を,CertificateSerialNumberは証明書のシリアル番号が16進(32bitま で)で与えられている.

発行されたCRLは$ICAP/crl/crl に出力される.中身を確認す るには,peek -r と signorverify を用いる.

issue_crl コマンドは次のオプションを持つ:

-s (テスト用)
結果を標準出力に表示する。CRL発行ログに記録を残さない。
-d mdays mdays の値で CRL のフィールドの1つである「次の発行予定日」 の日付を決定する。(1-31)
利用するときは、必ず m オプションと組み合わせる。
-m months months の値で CRL のフィールドの1つである「次の発行予定日」 を何ヵ月後に設定するかを決定する。(>= 0) -n days days の値で CRL のフィールドの1つである「次の発行予定日」 を何日後に設定するかを決定する。 例えば、
issue_crl -m 1 -d 25+ で CRL の「次の発行予定日」フィールドが翌月の 25日に設定される。

また、

issue_crl -n 7 では、CRL の「次の発行予定日」フィールドが 1週間後に設定される。
EXAMPLES CRL を毎月20日に定期発行しようとする場合、crontab には例えば次 のように設定する。なお、cron は Webサーバの実行ユーザID の権限で実行す る必要があるため、例えば nobody というcrontab ファイルを用意することに なる。 0 0 20 * * /usr/etc/ICAP/bin/issue_crl -m 1 -d 20 >/dev/null CRL を毎日定期発行しようとする場合、crontab には例えば次のよう に設定する。 0 0 * * * /usr/etc/ICAP/bin/issue_crl -n 1 > /dev/null CRL を1週間毎に定期発行しようとする場合、crontab には例えば次 のように設定する。 0 0 * * 1 /usr/etc/ICAP/bin/issue_crl -n 7 > /dev/null FILES
signorverify,ecc_signorverify証明書署名ツール
$ICAP/log/revoke.log証明書破棄に関するログ
$ICAP/lib/icap-libx509.plX.509 関連ライブラリ
$ICAP/etc/icap.confICAP 関連変数設定ファイル
BUGS -m 0 のとき、-d mdays の mdays の値がコマンド実行時の日付より 小さいと、「次の発行予定日」フィールドが過去の日付になる。

10.2 icap-check_expired

NAME icap-check_expired - check expiration of certificates SYNOPSIS icap-check_expired DESCRIPTION icap-check_expired はICAP専用のコマンドである。

ICAP で発行した証明書の有効期限が切れていないかをチェックし、 有効期限が切れた証明書ファイルを証明書の格納ディレクトリ ($ICAP/certdb)から、有効期限切れ証明書を格納するディレクトリ ($ICAP/expiredb)へ移動する。

有効期限切れ証明書が見つかった場合以下のように出力する。

0a expired
101 expired
EXAMPLES 毎月20日に定期実行しようとする場合、crontab には例えば次のよう に設定する。なお、cron は Webサーバの実行ユーザID の権限で実行する必要 があるため、例えば nobody というcrontab ファイルを用意することになる。 0 0 20 * * /usr/etc/ICAP/bin/icap-check_expired >/dev/null FILES $ICAP/etc/icap.conf ICAP 関連変数設定ファイル

[HOME] [Homepageへ戻る] webmaster@icat.or.jp
Last modified : Mon Sep 7 10:03 JST 1998