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

ODF の長期署名化テスト

ドキュメント内 電子署名普及に関する活動報告2008 (ページ 97-101)

第 3 部 署名仕様

3. ODF と OOXML におけるデジタル署名の XAdES 長期署名化の考察

3.3 ODF の長期署名化テスト

ODF の電子署名は OpenOffice.org の 2.0 以降において、ファイルメニュー下の「デジタル署名」

により付与する事ができる。ここでは ODF 標準の XML 署名ファイルを XAdES 長期署名ファイルに 入れ替えて、XML 署名として検証がされるかどうかを確認する。

ODF の電子署名の詳細な仕様は入手できなかった。その為に OpenOffice.org 2.0 でシンプルな ワープロ形式にデジタル署名を付与した場合にどのファイルが署名対象となっているかを調査し た。

ファイル・フォルダ名 署名

対象 概要

layout-cache ○ バイナリのキャッシュ情報 content.xml ○ ドキュメント本体データ meta.xml ○ 作成者や時間等のメタデータ settings.xml ○ 設定情報データ

styles.xml ○ スタイル情報データ

mimetype × ドキュメントのタイプ

Pictures\*.* ○ ドキュメント中の各種画像ファイル Configurations2\ --- 不明:情報無し

Thumbnails\ --- サムネール用フォルダ Thumbnails\thumbnail.png × サムネール画像 META-INF\ --- メタ情報用フォルダ META-INF\manifest.xml × 目録情報データ

META-INF\documentsignatures.xml × デジタル署名データ(標準名)

署名対象かどうかは生成されたデジタル署名データ“documentsignatures.xml”中の Reference タグで判断している。この結果から今回の長期署名化テストにおいては以下項目を署名対象にし ている。

1)ルートフォルダ直下にある“layout-cache”ファイル。

2)ルートフォルダ直下にある拡張子が“.xml”のファイル全て。

3)Pictures フォルダ下にある全てのファイル。(Pictures フォルダが無い場合あり)

4)“documentsignatures.xml”中の Object/SignatureProperties/SignatureProperty 要素。(署 名日時用)

5)“documentsignatures.xml”中の Object/QualifyingProperties/SignedProperties 要素。(長 期署名用)

テストの為に別途この仕様にて長期署名を付与し、長期署名検証が可能なテストツールを開発 して利用した。

3.3.1 ODFの長期署名化サンプル

<document-signatures>

<Signature Id="Id">

<SignedInfo Id="Id-Si-8">

<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>

<Reference Id="Id-Ref-1" URI="content.xml">

<Transforms><Transform

Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></Transforms>

<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

<DigestValue>KJA9nLpoUGXdKHGwEFOhd0Ga1gc=</DigestValue>

</Reference>

<Reference Id="Id-Ref-2" URI="meta.xml">

<Transforms><Transform

Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></Transforms>

<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

<DigestValue>GdawuL8wlLZ/BCXdl6XBgBnRdpE=</DigestValue>

</Reference>

<Reference Id="Id-Ref-3" URI="settings.xml">

<Transforms><Transform

Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></Transforms>

<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

<DigestValue>O6PXfJ9t0PE4znAg0M36K7ojeDA=</DigestValue>

</Reference>

<Reference Id="Id-Ref-4" URI="styles.xml">

<Transforms><Transform

Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></Transforms>

<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

<DigestValue>77nAw4q0EqzhefHzKwwdvfYMWCA=</DigestValue>

</Reference>

<Reference Id="Id-Ref-7" URI="#Id-Sp-5">

<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

<DigestValue>j9/IHYC7WjcsStlOVI3cqtrQtpg=</DigestValue>

</Reference>

<Reference Id="Id-Ref-12" URI="#Id-Sp-11" Type="http://uri.etsi.org/01903#SignedProperties">

<Transforms><Transform

Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></Transforms>

<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

<DigestValue>RFOijWiaA3iZVdoHLIw4AXLKzqg=</DigestValue>

</Reference>

</SignedInfo>

<SignatureValue Id="Id-Sv-9">ZA6WsGpua07FLmlQ...CEQAm/95SfI0+6c=</SignatureValue>

<KeyInfo Id="Id-Key-10">

<X509Data>

<X509Certificate>MIIDlDCCAv2gAwIBAgI...KSFNH6DtkojDRA3G/EBWcE=</X509Certificate>

</X509Data>

<KeyValue>

<RSAKeyValue>

<Modulus>urHtAraFHxXUB6drWZe/1...MKJ4ybnBzOpUInfsJ7lNSYs=</Modulus>

<Exponent>AQAB</Exponent>

</RSAKeyValue>

</KeyValue>

</KeyInfo>

<Object Id="Id-Obj-6">

<SignatureProperties>

<SignatureProperty Id="Id-Sp-5" Target="#Id">

<dc:date>2008-10-28T12:51:59</dc:date>

</SignatureProperty>

</SignatureProperties>

</Object>

<Object Id="Id-XAdES-Object">

<QualifyingProperties Target="#Id">

<SignedProperties Id="Id-Sp-11">

<SignedSignatureProperties>

<SigningTime>2008-10-28T03:51:59Z</SigningTime>

<SigningCertificate>

<Cert>

<CertDigest>

<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

<DigestValue>OSKEwLpv9YKc075wYMyUwzXU1TI=</DigestValue>

</CertDigest>

<IssuerSerial>

<X509IssuerName>CN=TEST, O=TEST ORG, C=JP</X509IssuerName>

<X509SerialNumber>5400365494282747904</X509SerialNumber>

</IssuerSerial>

<SignaturePolicyIdentifier>

<SignaturePolicyImplied/>

</SignaturePolicyIdentifier>

</SignedSignatureProperties>

</SignedProperties>

<UnsignedProperties>

<UnsignedSignatureProperties>

<SignatureTimeStamp Id="Id-STS-1">

<EncapsulatedTimeStamp

Id="Id-ESTS-1">MIIMdgYJZI...eRe5REvbmA=</EncapsulatedTimeStamp>

</SignatureTimeStamp>

</UnsignedSignatureProperties>

</UnsignedProperties>

</QualifyingProperties>

</Object>

</Signature>

</document-signatures>

3.3.2 OpenOffice.orgによる検証結果

3.3.1 の長期署名サンプルをセットした ODF ファイルを OpenOffice.org 2.0 以降で読み込んで みたところ、正常に XML 署名として署名検証がされドキュメントを開く事ができた。

長期署名用の情報を追加した XML 署名であっても問題なく XML 署名として検証が可能である事 が確認できた。

3.3.3 ODFの長期署名化に関する考察

ODF の XML 署名の仕様は非常に素直な XML 署名仕様と言える。また本来の署名対象以外に長期 署名用の独自の署名対象(Object 要素)を追加しても OpenOffice.org 2.0 ではエラーにならず、

正常に検証できた。このことより ODF 仕様(正確には今回は OpenOffice.org 2.0 仕様)でのデジ タル署名は XAdES による長期署名に入れ替えても大きな問題は無いと考えられる。

OpenOffice.org に長期署名と検証が可能なモジュールが提供できるならば、今回の長期署名化 のテストの仕様により標準で長期署名対応の ODF を実現できる可能性が高い。しかし組み込みモ ジュールとして実現するにはオープンソースのプロジェクトである OpenOffice.org のライセン スに合致したオープンソースの長期署名ライブラリが必要になる点が問題になりそうである。ODF 長期署名を別モジュールとして提供するのであればライセンスの問題は無くなるが、この場合に は OpenOffice.org 本体では XML 署名としての検証のみが可能となる。

3.3.3.1 署名日時に関する考察と要望

OpenOffice.org 2.0 では表示する署名日時を独自の date 要素から取得している。長期署名対 応として考えた場合に、もし署名タイムスタンプが付与された XAdES-T 形式であればタイムスタ ンプ日時を署名日時として表示して欲しいと考える。また署名タイムスタンプが無く date 要素も 無い場合には、XAdES の SigningTime 要素の日時を参照して表示して欲しい。

ドキュメント内 電子署名普及に関する活動報告2008 (ページ 97-101)