4 タイムスタンプに関連した仕様と標準化動向
4.7 XML タイムスタンプ
Webサービス(SOAP)を利用することにより、サーバーサイドでデジタル署名と、
署名の検証を行う方式「Digital Signature Service(DSS)」が、OASIS DSS TC において検討されている。その中で、タイムスタンプ・トークンについてもXML フォーマットで実現するための検討がされている。XMLタイムスタンプはハッ シュ値と時刻や精度、タイムスタンプ・ポリシーなどを含むタイムスタンプ情報 (TSTInfo)を署名対象にしたXML署名の1つの形態である。
この試みは、当初TIML (Tokens and Protocol for the Temporal Integrity Markup Language ) と言うプロトコル名称で、RFC 3161に基づいたXMLスキ ーマとして提案されたが、その後DSS Core Protocol の手順のひとつとして整理 されており、現在は汎用的なデジタル署名の1つの形態として認識され、署名対 象として、タイムスタンプ・トークン(Tst)要素の構文が署名タイプとして定義さ れている。
<xs:element name=”Tst” type=”ds:SignatureType”>
OASIS Digital Signature Service Technical Committee (DSS TC)
OASIS DSS TCは、デジタル署名をWebサービスで実現するためのインタフェースやプロ
トコルの開発を行う目的で2002年10月にRobert Zuccherato (Entrust Inc.) 氏をリーダ
(chair)として設立された。現在では、2003年10月に最新のドラフトを公開しており活発に
活動している。他団体やOASIS内の別TCなどと関連する活動として
• OASIS Access Control TC (XACML)
• OASIS Rights Language TC (XrML)
• OASIS Security Services TC (SAML)OASIS Web Services Security TC (WSSTC)OASIS Election and Voter Services TC
• OASIS LegalXML eNotary TCOASIS XML Common Biometric Format TC (XCBF)
• W3C XML Signature
• W3C XML Key Management
• W3C XML Encryption
• ETSI Electronic Signatures and Infrastructures Technical Committee
• ANSI X9F4 X9.95 (Trusted Time Stamps)
タイムスタンプ・プロトコルに関する技術調査
• ISO/IEC JTC1/SC27 18014
などがある。
RFC 3161などを含め、TIML及びDSS coreのXMLタイムスタンプ(汎用XML タイムスタンプ)における要求・応答プロトコルの項目を比較する(表 4.7-1)。
表 4.7-1各プロトコル項目(要素)
RFC 3161 TIML 汎用XMLタイムスタンプ
要求メッセージ
TimeStampReq TimeStampRequest SignRequest / SignatureTimestamp Version - - messageImprint Digest InputDocument /
DocumentHash hashAlgorithm DigestMethod DigestMethod hashedMessage DigestValue DigestValue
reqPolicy Policy Policy
nonce Nonce RequestID
extensions Extensions -
応答メッセージ
TimeStampResp TimeStampResponse SignResponse
status StatusInfo Result
statusString StatusText ResultMessage
failInfo failureInfo -
timeStampToken Signature Tst
digestAlgorithm DigestMethod DigestMethod
Policy Policy Policy
messageImprint Digest Signature
serialNumber SerialNumber SerialNumber
タイムスタンプ・プロトコルに関する技術調査
RFC 3161 TIML 汎用XMLタイムスタンプ
genTime CreationTime CreationTime
accuracy Accuracy ErrorBound
ordering Ordering Ordered
nonce Nonce RequestID
extensions Extensions -
これらはプロトコルで用いられている項目(要素)名の比較であり、タイムスタン プ要求・応答の内容はいずれもほぼ同一である。ただ、versionなどは、XMLの 性質上このプロトコルをリンクしたアドレスで判断できるため必要なくなった ことから項目として削除された。
4.7.2 TIMLタイムスタンプ
DSS TC発足当初にエントラスト社から提案があったXMLタイムスタンプ・プ
ロトコルである「TIML」について解説する。
TIMLによる「タイムスタンプ・リクエスト(TimeStampRequest)」のプロトコ ル(XMLデータ形式)サンプルを以下に示す。
TIMLは、RFC 3161の策定でも主導的な役割をはたしたエントラストから提案
されたプロトコルであり、RFC 3161と同等な内容になっている。
次に「タイムスタンプ・レスポンス(TimeStampResponse)」プロトコルのサン プルを以下に示す。
<!-- XML署名用ネームスペース名、URL -->
<!-- タイムスタンプ用XMLのネームスペース名、URL -->
<ts:TimeStampRequest
xmlns:ts="http://www.entrust.com/schemas/timestamp-protocol-20020207#"
xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
TSAサーバー内で持つTSAのポリシーID
<ts:Policy Id="http://www.nttcom.co.jp/2003/01/sigPF/tsaPolicy"/>
タイムスタンプを行う対象XML文書のダイジェスト <ts:Digest>
<dsig:DigestMethod Algorithm="http://www.org3.com/2000/09/xmldsig#sha1"/>
ダイジェストアルゴリズム
<dsig:DigestValue>abcde</dsig:DigestValue>
タイムスタンプを行う対象XML文書のダイジェスト値(base64Binary) </dsig:DigestMethod>
</ts:Digest>
<ts:Nonce />
<ts:Extensions />
</ts:TimeStampRequest>
タイムスタンプ・プロトコルに関する技術調査
<!-- XML署名用ネームスペース名、URL -->
<!-- タイムスタンプ用XMLのネームスペース名、URL -->
<ts:TimeStampResponse xmlns:ts="http://www.entrust.com/schemas/timestamp-protocol-20020207#">
<ts:StatusInfo status="granted" failureInfo="badAlgorithm"> タイムスタンプ・リクエストの応答 <ts:StatusText /> 任意の理由
</ts:StatusInfo>
<!-- XML署名:タイムスタンプ・トークン>
<!-- XML署名用ネームスペース名、URL -->
<dsig:Signature d="ESIGN-Signature-TS-1" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
<dsig:SignedInfo> 署名情報
<dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
XMLの正規化アルゴリズム(Exclusive XML Canonicalization) <dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
署名アルゴリズム(RSA用 Or DSA用)
<dsig:Referece URI="#ESIGN-Object-TS-1"> 署名対象文書の参照URI()
<dsig:Transforms>
<dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<dsig:DigestValue>CgAwIBAgIBATANBgkqhkiG9w0BAQQFADBHMQsw=</dsig:DigestValue>
</dsig:Reference>
</dsig:SignedInfo>
<dsig:SignatureValue>CgAwIBAgIBATANBgkqhkiG9w0BAQQFADBHMQswCQY</dsig:SignatureValu e>
タイムスタンプ署名値 <dsig:KeyInfo> 署名検証鍵情報 <dsig:X509Data> X509証明書要素 <dsig:X509Certificate> X509証明書
MIICJjCCAdCgAwIBAgIBATANBgkqhkiG9w0BAQQFADBHMQswCQYDVQQGEwJKUDET 中略
s3m8v1rKRORexVb+pLRWIpuh4c1sO7E1QwI=
</dsig:X509Certificate>
</dsig:X509Data>
</dsig:KeyInfo>
<dsig:Object ID="ESIGN-Object-TS-1"> 署名属性
<!-- タイムスタンプ情報(TimeStampInfo)のXMLデータ形式 :この部分が新たに定義された-->
<!-- XML署名用ネームスペース名、URL -->
<ts:TimeStampInfo xmlns:ts="http://www.nttcom.co.jp/2002/12/xmlts#"
xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
タイムスタンプ用XMLのネームスペース名、URL <ts:Policy Id="http://www.nttcom.co.jp/2003/01/sigPF/tsaPolicy"/>
TSAサーバー内で持つTSAのポリシーID
<ts:Digest> タイムスタンプを行う対象XML文書のダイジェスト <dsig:DigestMethod Algorithm="http://www.org3.com/2000/09/xmldsig#sha1"/>
ハッシュアルゴリズム
タイムスタンプ・プロトコルに関する技術調査
<dsig:DigestValue>abcde</DigestValue>
タイムスタンプを行う対象XML文書のダイジェスト値 </dsig:Digest>
<ts:SerialNumber /> トークンのシリアル番号
<ts:CreationTime>2002-06-02T16:27:15Z</ts:CreationTime> タイムスタンプ用時刻 <ts:Accuracy /> 時間精度
<ts:Ordering>false</Ordering> 順序 <ts:Nonce />
<ts:Extensions />
</ts:TimeStampInfo>
</dsig:Object>
</dsig:Signature>
<ts:Extensions />
</ts:TimeStampResponse>
図中のダイジェスト等は、説明のためイメージ的な値を入れており、この値を 元に計算はできない。
このTIMLプロトコルは、現在「Tokens and Protocol for the Temporal Integrity Markup Language」と言う名称のドキュメントとしてOASIS DSS TC から取得 できるが、過去の検討資料としての位置づけになっている。TIMLで提案された XMLタイムスタンプschemaの多くは、次項で述べる現在提案中のXMLタイム スタンプへ引き継がれている。
4.7.3 DSS TC Core Protocol のXMLタイムスタンプ
このドキュメントでは、タイムスタンプに限らずサーバー側でデジタル署名を 行い、署名の検証もサーバー側で行うための汎用的なプロトコルが提案されてい る。プロトコルにおける主な要素は
サーバーに対して署名を要求する: SignRequest サーバーの応答を受け取る: SignResponse サーバーに署名検証を要求する: VerifyRequest サーバーの署名検証結果を受け取る: VerifyResponse
がある。デジタル署名の検証に用いられるプロトコルとしてはDVCSなどもあ るが、このプロトコルではサーバー側でデジタル署名を行うための手順も規定す
タイムスタンプ・プロトコルに関する技術調査
るなど汎用的なものとなっている。この機能を用いてタイムスタンプの発行およ びサーバー側でのタイムスタンプ・トークンの検証までも実現可能にしている。
タイムスタンプは、
デジタル署名に対するタイムスタンプ: SignatureTimestamp コンテンツに対するタイムスタンプ: ContentTimestamp
があり、コンテンツはさらに
コンテンツの実態: Document コンテンツのハッシュ: DocumentHash
がある。
タイムスタンプ・リクエストを例に、TIMLとの違いを述べると、
TIMLタイムスタンプの場合、
<ts:TimeStampRequest ……>
: :
に対して、
汎用XMLタイムスタンプの場合、
<dss:SignRequest ……>
<Options>
<SignatureTimestamp/>
: :
のようになる。この表記の場合、タイムスタンプの種類(デジタル署名へのタイ ムスタンプ/コンテンツへのタイムスタンプ)や、タイムスタンプ以外の署名リク エストなどを一つのメッセージに複数含めることができ、一台のサーバーでタイ ムスタンプと、その他公証的な目的で用いられる種のデジタル署名リクエストを 受け取ることなども可能になると考えられる。
タイムスタンプ・プロトコルに関する技術調査
タイムスタンプ・トークン(TST)はTIMLではEnveloping Signature要素とし ているが、DSSではEnveloping Signature要素タイプではあるが、要素名を明示 してTstとしてとしている。
4.7.4 今後の展開
DSS Core Protocols and Elements は、2003年10月29日にWorking draft 04 となっているが、DSS としての汎用性も含め、タイムスタンプの仕様検討もまだ 十分とは言えない。
またDSSの略称は、FIPS PUB 186-2. Digital Signature Standard とバッティ ングしており適切ではなく、XML schema の dss: 表記なども変更される可能性 がある。
Web サービスにおけるタイムスタンプへのニーズがあることから、今後も継続 して検討が進められると考えられる。
タイムスタンプ・プロトコルに関する技術調査