Translation:Digital Signatures
From IDMLWiki
1.8 デジタル署名
UCFのデジタル署名サポートは、今後の仕様改正まで延期されました。 しかしながら、現在の仕様はOCFの仕様と一致するでしょう。以下のとおり:
コンテナファイルシステムのルートレベルにある「META-INF」ディレクトリ内の任意である(OPTIONAL)「signatures.xml」ファイルは、コンテナおよびそのコンテンツのデジタル署名を保持します。このファイルはルートに <signatures>エレメントを持つXMLドキュメントです。「XML-Signature Syntax and Processing」に定義されている通り、<signatures>エレメントはその子要素に<Signature>タイプのエレメントを含んでいます。署名は、パブリケーションや代替表現の全体、または個々の部品に対して適用できます。XML署名は、XMLだけではなく、どんな種類のデータ署名も指定できます。
signatusres.xmlファイルは暗号化してはなりません(MUST NOT)。
signatures.xmlファイルが存在しない場合、UCFコンテナはコンテナレベルのいかなるレベルでもデジタルに署名を示す情報を全く提供しません。 しかしながら、任意のオプションのゆるやかな表現としてデジタル署名が存在することはありえます。
付録Aで説明したとおり、RELAX NG UCFスキーマはsignatures.xmlのルートエレメントあるべき(MUST)<signature>エレメントを見つけるでしょう。
UCFエージェントがコンテナのデータ署名を作成するとき、signatures.xmlファイルの<signatures>エレメントの子要素として<Signature>エレメントに新しい署名を加えるべきです(SHOULD)。
XML署名である<Manifest>エレメントと<Reference>サブエレメントを使用して、signatures.xmlファイル中の各<Signature>エレメントはIRIによって署名が適用されるデータを特定します。個々に含まれるファイルは、別々にあるいは一緒に署名されるかもしれません(MAY)。 各ファイルに別々に署名すると、リソースに対して独自に有効なダイジェスト値が作成されます。このアプローチはシグネチャーエレメントをより大きくするかもしれません(MAY)。 ファイルが一緒に署名されるなら、単一のXML署名<Manifest>エレメントまたはひとつ以上の<Signature>エレメントの参照のファイルをセットします。
コンテナー中のすべてのファイルは、計算された署名情報を含むので、signatures.xmlファイルを除いて、全体の中で署名することができます。 どのようにsignatures.xmlファイルに署名すべきか(SHOULD)は、署名者の目的に左右されます。
コンテナから署名者の署名を無効にすることなく加えられる(または取り除かれる)ことを署名者が認めたければ、signatures.xmlファイルに署名するべきではありません(SHOULD NOT)。
署名者がいかなる追加(あるいは削除)をも署名者の署名を無効にすると望む場合、作成されている<Signature>以外の既存の署名ファイル全体に署名をするために、エンベロープ署名変換(XML署名のセクション6.6.4の中で定義)を使用することができます。 この変換では、すべての既存の署名に署名するでしょう。また、その後の署名がパッケージに追加されるなら、それは無効になるでしょう。
署名者が署名者の署名を無効にして既存の署名の除去(または追加)を望む場合、XPath変換を許可する署名についても取り外しできます。(これは提案にすぎません。 特定のXPath変換はUCF仕様の一部ではありません)
XML署名は署名に意味づけしません。しかしエージェントは意味情報を含めるかもしれません(MAY)、例えば、署名について説明するSignatureエレメントに情報を追加することによって。XML署名は署名にどう追加情報を加えられるかを説明します(例えばSignatureProperties要素を使用することによって)。
(この例は有益です。)
次のXML表現は「signatures.xml」ファイルの内容例を示し、「XML署名シンタックスおよび処理」のセクション2で見た例です。 これはひとつの署名を含んでいて、署名はコンテナ中の2つのリソース(OEBFPS/book.htmlとOEBFPS/images/cover.jpeg)に適用されます。
<signatures><Signature Id="MyFirstSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethodAlgorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/><Reference URI="#Manifest1"><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue>
</Reference></SignedInfo><SignatureValue>MC0CFFrVLtRlk=...</SignatureValue>
<KeyInfo><KeyValue><DSAKeyValue><P>...</P><Q>...</Q><G>...</G><Y>...</Y>
</DSAKeyValue></KeyValue></KeyInfo><Object><Manifest Id="Manifest1"><Reference URI="OEBFPS/book.xml"><Transforms><TransformAlgorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></Transforms></Reference><Reference URI="OEBFPS/images/cover.jpeg"/></Manifest></Object></Signature></signatures>
