• 検索結果がありません。

5 タイムスタンプに関連した実装

5.1 OpenTSA

5.1.1 概要

ここではOpenTSAが提供する機能と、Apacheと連携するmod_tsaについて 概要を説明する。また、コマンドの使い方やセットアップの際に注意する点など についても解説する。

5.1.1.1 OpenTSAの機能

(a) TimeStampReq生成機能

タイムスタンプの発行を要求するために使用する、タイムスタンプ・リク エスト(TimeStampReq)を生成することができる。生成されたデータはDER 形式で標準出力、またはファイルに書き出される。指定できるパラメータの いくつかを以下にあげる。

タイムスタンプ・プロトコルに関する技術調査

ダイジェスト生成に使用するアルゴリズム

(-md2|-md4|-md5|-sha|-sha1|-mdc2|-ripemd160) reqPolicyに指定するポリシー(-policy)

nonceを使用しないオプション(-no_nonce) certReqフラグ(-cert)

実行例:

openssl ts -query -data /tmp/hashed.dat -ripemd160 -policy 1.2.3 -cert -out request.tsq

(b) TimeStampResp生成機能

TimeStampReqに対応するタイムスタンプ・レスポンス

(TimeStampResp)を生成する。データはファイル渡しで、DER形式の

TimeStampReqが格納されたファイルを引数で指定して、コマンドラインで

起動される。生成されたTimeStampRespはDER形式で標準出力、または ファイルに書き出される。指定できるパラメータのいくつかを以下にあげる。

TSAのポリシー(-policy)

TimeStampReqに含まれるreqPolicyと一致しない場合、エラーとな り、生成されたTimeStampRespのstatusにrejection(2)が、failInfo にはunacceptedPolicy(15)がセットされる。

PEMフォーマットで格納された証明書チェーンファイル(-chain) 証明書チェーンは自動生成されないので、TimeStampRespに含める場 合は事前に生成して、指定する必要がある。

TimeStampToken出力の指定(-token_out)

このオプションを指定すると、TimeStampRespに含まれる TimeStampTokenのみをDER形式で書き出すことができる。

実行例:

openssl ts -reply -queryfile request.tsq -policy 1.2.3 -out response.tsr

(c) TimeStampToken検証機能

TimeStampTokenが正しいかどうかを検証する。DER形式の

TimeStampRespまたはTimeStampTokenを指定して、タイムスタンプが正 しいものかどうかを検証する。検証結果はOK、FAILEDの二値である (FAILEDの場合、理由も表示される)。

実行例:

タイムスタンプ・プロトコルに関する技術調査

openssl ts -verify -data /tmp/hashed.dat -in response.tsr -CAfile cacert.pem

5.1.1.2 OpenTSAセットアップについて

OpenTSAの、TimeStampReq生成、TimeStampToken検証の機能のみを利用 する場合は、コンパイルしてインストールするだけだが、TimeStampResp生成の 機能を利用する場合、TSAとして機能させるための証明書や、発行した

TimeStampTokenのシリアル番号を管理するためのファイルなどを準備する必要

がある。詳細はOpenSSLとOpenTSAのマニュアルを参照してもらうこととし、

ここでは簡単に説明する。

(a) TSAの証明書の準備

TSAの証明書のextendedKeyUsageはcritical,timeStampingでなければ ならず、そうでない場合OpenTSAは”invalid signer certificate purpose”と エラーを出力し、動作しない。従って、CAがTSAの証明書を作成する際上 記値を含んだ証明書を作成しなければならない。OpenSSLを証明書の作成に 使用する場合を例に挙げると、OpenSSLのコンフィグレーションファイルに

[tsa]

extendedKeyUsage = critical,timeStamping

という2行を追加し、

openssl ca -config <config.file> -out <cert> -extensions tsa -infiles <csr>

のように、-extensions tsaをつけて証明書作成を行う。

(b) TSA用コンフィグレーションの準備

openssl ts –reply –config <config file>で指定するconfig fileが必要である。

この設定ファイルにかかれた「serial=<file>」エントリの<file>にシーケンシ ャルな番号が記録され、この値がTimeStampTokenのseiralとして使用され る。

5.1.1.3 mod_tsaについて

前述した通り、OpenTSAはファイル交換の実装であり、mod_tsaはapacheの モジュールで、TSP over HTTPの実装である。apacheのコンフィグレーション ファイルに追加する形で設定を行う。指定可能なパラメータのうちいくつかを以 下にあげる。

ポリシー

タイムスタンプ・プロトコルに関する技術調査

ポリシーを複数指定することができる。ここにセットされていないポリシ ーをクライアントが要求してきた場合、statusにrejection(2)、statusString にUTF8Stringで’Requested policy is not supported.'、failInfoに

unacceptedPolicy(15)がセットされたTimeStampRespが返される。

ダイジェストアルゴリズム

TimeStampReqに含まれるMessageImprint中のダイジェストアルゴリズ ムとして許可するアルゴリズムを列挙する。ここにセットされていないアル ゴリズムで作成されたダイジェストが送られてきた場合、statusに

rejection(2)、statusStringにUTF8Stringで'Message digest algorithm is not supported.'、failInfoにbadAlg(0)がセットされたTimeStampRespが返され る。