このドキュメントは

A P3P Assurance Signature Profile W3C Note 2 February 2001
http://www.w3.org/TR/2001/NOTE-xmldsig-p3p-profile-20010202/


の和訳です。

この文書には和訳上の誤りがありえます。
内容の保証はいたしかねますので、必ずW3C Webサイトの正式版文書を参照して下さい。
また、著作権等については本文書に含まれる記述に加え、こちらも必ず参照してください。




W3C

A P3P Assurance Signature Profile

W3C Note 2 February 2001

この版:
http://www.w3.org/TR/2001/NOTE-xmldsig-p3p-profile-20010202/
最新版:
http://www.w3.org/TR/xmldsig-p3p-profile/
旧版:
n/a
著者/編集者:
Joseph Reagle <reagle@w3.org>
貢献者
謝辞を参照のこと

 

要旨

本書は P3P Assurance Signature Profileを述べたものである。意図した鍵の所有者の意味(保証)は SignaturePropertyを通じて署名(Signature)に制約を受けている。

本文書の位置付け

本文署は W3Cメンバーのレビュー用であり、標準拠の仕様を意図したものではないが、アプリケーションがどのようにして(署名のセマンティクとアルゴリズムプロファイルを定義している)必要事項を満たすXML Signature仕様書を使用するのかという事に関する著者の考えを述べたものである。 そして、アプリケーションの例はP3Pである。本書はワーキンググループの製品ではなく、引き渡すことのできるものでもない。また、XML SignatureのSignaturePropertyの使用法に関しての意見の一致を反映したものでもないが、より深く説明や話し合いを行う為に、XML Signature使用書で可能である(しかし、必須ではない)SignaturePropertyの使用を述べている。

本書の更新には何もなされていないが、何かコメントがあれば<reagle@w3.org>へ送られたし。

現 W3C 勧告とその他技術的文書は http://www.w3.org/TRを参照のこと。

目次

  1. 序論
    1. 編集規定
    2. デザインの原理
    3. バージョン、ネーム空間および識別子
    4. 謝辞
  2. 概要と例
    1. Assuranceの概要
    2. XML Signatureの概要
    3. p3p.xmlの概要
  3. P3P Assurance
    1. Signatureのセマンティクス
  4. XML Signatureプロファイル
  5. P3Pポリシー
  6. スキーマ、変換および例
  7. 参照

1.0 序論

本文書はP3P [P3P]Assurance Signature [XMLDSIG] プロファイルについて述べている。この仕様書への最も適した導入は前回の文書にある。それは:

Platform for Privacy Preferences Project (略称P3P)は、Webサイトが標準形式でそのサイトのプライバシープラクティスを表現することを可能にし、その標準形式データをユーザエージェントが自動的に取りこんだり、簡単に処理したりすることを可能にする。P3Pユーザエージェントはサイトのプライバシープラクティスを利用者に(マシンが読むことができる形式、及び人間が読むことのできる(ヒューマンリーダブルの)形式で)通知することができ、プライバシープラクティスが適切ならば、自動意思決定を行うことも可能である。P3Pユーザエージェントのこの自動意思決定機能を用いれば、利用者は、アクセスするサイトの総てのプライバシーポリシーを逐一読む必要が無くなる...この文章は、データ収集とデータ使用プラクティスをマシンが読み取ることのできるXML形式(これはP3Pポリシーとして知られている)でコード化するウェブサイトにひとつの方法を説明している。

また、XML Signatureからのこの引用文はXML Signature プロファイルがなぜ必要なのかの理由の導入でもある。

XML Signatureは鍵と参照されたデータ(オクテット)を関連づける手段である。XML Signatureは、鍵がどのようにして人や機関と関連付けられるのかということや、参照し、署名したデータの意味を標準的には述べていない。 そのため、この仕様書は安全なXMLアプリケーションの重要な部分ではあるが、この仕様書自身はセキュリティやトラスト関係のアプリケーションすべてを、特に署名されたXML(または他のデータフォーマット)、人と人とのコミュニケーションや同意の元として使用することに関して、十分に述べてはいない。そういったアプリケーションは追加の鍵や、アルゴリズム、処理、そしてレンダリングの必要事項を述べなければならない。

そのため、本書の目的は以下を設定することである:

[def:] P3P Assurance Signatureプロファイル
(1)ネーム空間配下の保証されたセマンティクスの定義と(2) P3PアプリケーションコンテキストのXML Signature(アルゴリズムや変換、鍵の種類などの制約)のプロファイル

1.1 編集および適合の規定

読みやすく、簡潔にするために、本書はXML Signatures を参照するための"署名(signature)" という言葉を使用しており、そのアプリケーションのコンテキストをいつもP3Pであると仮定する。この仕様書を理解するには [XMLDSIG]を理解する必要がある。 [P3P] を理解することは自由である(必須ではない)が、その理解は本文書のモチベーションとなる。

本書はXML Schemas [XML-schema]を使用している。

1.2 デザインの原理

本仕様書のデザインの原理と必要事項は以下である:

  1. XML Signatureを経て保証されるP3Pポリシーのために本仕様書が意味していることを定義する。
  2. P3P ポリシーAssurances独立した 署名を説明する。
    1. 署名を囲んで P3Pポリシー参照を含んでもよい。このことはすべてのファイルを一緒に含むのに便利ではあるが、二つの欠点がある。その欠点とは、Signature はルート要素であるという事と、文書の一部分を選択するのにXPointerが必要であるということである。
    2. 囲まれた署名はP3Pのコンテンツモデルによって禁止されている。
  3. 簡潔で明確である。

以下の問題にもふれなければならない:

  1. P3P: 署名がP3Pポリシーで囲まれていることが望ましい。
  2. P3P: 本仕様書はP3Pポリシー参照ファイル についても述べるべきか?

1.3 バージョン、ネーム空間および識別子

この(この日付の)仕様書の実装が使用しなければならないXMLネーム空間[XML-ns] URI は以下である:

xmlns="http://www.w3.org/2001/02/xmldsig-p3p-profile"
 

1.4 謝辞

間違いや愚かな考えは私のみが考えたものであり、ここに含むことは必ずしも、同意や合意をしているわけはないが、以下の方々のコメントに感謝する。

2.0 概要 と 例

本章ではP3P Assurance Signature Profile、 XML SignatureおよびP3Pポリシーの概要を述べる。

2.1 Assuranceの概要

以下はP3Pポリシーに関しての署名のP3P AssuranceセマンティクのXMLインスタンスである。このAssuranceSignaturePropertyP3Pポリシーを保証する、という事を述べる為にRDFデータモデルを使用する。

#Assurance1

<SignatureProperty Id="Assurance1" Target="#Signature1"
 xmlns="http://www.w3.org/2000/09/xmldsig#">
  <Assures Policy="http://www.example.org/p3p.xml"
   xmlns="http://www.w3.org/2000/10/xmldsig-p3p-profile/"/>
</SignatureProperty>

2.2 XML Signature の概要

以下の短縮したSignatureはP3Pポリシーを示し、保証(assurance)(意味的に以下の短縮Signatureは保証 'assurance)に拘束される)を示している。

http://www.example.org/Signature.xml

<Signature Id="Signature1" xmlns="http://www.w3.org/2000/09/xmldsig#">
  <SignedInfo>
    <CanonicalizationMethod
     Algorithm="http://www.w3.org/TR/2000/WD-xml-c14n-20000907"/>
    <SignatureMethod
     Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/>
    <Reference URI="http://www.example.org/p3p.xml">
      <Transforms>
        <Transform Algorithm="http://www.w3.org/TR/2000/WD-xml-c14n-20000907"/>
      </Transforms>
     <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
     <DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue>
    </Reference>
    <Reference URI="#Assurance1"
     Type="http://www.w3.org/2000/09/xmldsig#SignatureProperties">
     <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
     <DigestValue>1234x3rvEPO0vKtMup4NbeVu8nk=</DigestValue>
    </Reference>
   </SignedInfo>
   <SignatureValue>MC0CFFrVLtRlk=...</SignatureValue>
   <KeyInfo>KeyInfo of the Disputes Service</KeyInfo>
   <Object>
     </SignatureProperties>
        <SignatureProperty Id="Assurance1" Target="#Signature1"
         xmlns="http://www.w3.org/2000/09/xmldsig#">
           <Assures Policy="http://www.example.org/p3p.xml"
           xmlns="http://www.w3.org/2001/02/xmldsig-p3p-profile"/>
       </SignatureProperty>
     </SignatureProperties>
   </Object>
</Signature>

2.2 P3Pポリシーの概要

以下の短縮例はポリシーが保証されていることを記述し、その署名(signature)を参照するためにp3p:verification属性を使用している。

http://www.example.org/p3p.xml

<POLICY xmlns="http://www.w3.org/2000/09/15/P3Pv1"
    discuri="http://www.example.com/PrivacyPracticeBrowsing.html">
...
<DISPUTES-GROUP>
  <DISPUTES resolution-type="independent"
    service="http://www.PrivacySeal.example.org"
    short-description="PrivacySeal.example.org"
    verification="http://www.example.org/Signature.xml">
   <IMG src="http://www.PrivacySeal.example.org/Logo.gif"
        alt="PrivacySeal's logo"/>
   <REMEDIES><correct/></REMEDIES>
  </DISPUTES>
</DISPUTES-GROUP>
<STATEMENT>
  <PURPOSE><admin/><develop/></PURPOSE>
  <RECIPIENT><ours/></RECIPIENT>
  <RETENTION><stated-purpose/></RETENTION>
  <DATA-GROUP>
   <DATA ref="#dynamic.clickstream.clientip"/>
   <DATA ref="#dynamic.http.useragent"/>
  </DATA-GROUP>
</STATEMENT>
</POLICY>

3.0 P3P Assurance

保証(assurance )のセマンティクは

[def:] Assured
P3P DISPUTE service はP3Pポリシーが正確であり、P3P DISPUTE serviceが列挙されたREMEDIESに関わっていることを示す。このセマンティクの検証は次の(1)、(2)が必要である。(1)、(2)の場合の署名確認 (2)署名の鍵の所有者とP3P DISPUTE serviceが同じである。

この保証(assurance)コンテンツモデルによって、P3P ポリシーとXML Signatureを外部のファイル、または、内部のコンテンツとして参照できる。.

Schema Definition:

<?xml version='1.0'?> 
<!DOCTYPE schema 
  SYSTEM 'http://www.w3.org/1999/XMLSchema.dtd' 
> 

<schema targetNamespace='http://www.w3.org/2001/02/xmldsig-p3p-profile' 
   version='0.1' 
   xmlns='http://www.w3.org/2000/10/XMLSchema'
   xmlns:profile='http://www.w3.org/2001/02/xmldsig-p3p-profile'
   elementFormDefault='qualified'> 

   <element name='Assured'> 
     <complexType>
       <all>
         <element ref='profile:P3P-Policy' minOccurs='0' />
         <element ref='profile:Signature' minOccurs='0' />
       </all> 
       <attribute name='via' type='URI'/> 
       <attribute name='Id' type='ID' use='optional'/> 
     </complexType>
   </element> 

   <element name='P3P-Policy'> 
     <complexType>
       <sequence>
         <any namespace='http://www.w3.org/2000/10/18/P3Pv1'/>
       </sequence> 
       <attribute name='Id' type='ID' use='required'/> 
     </complexType>
   </element> 

   <element name='Signature'> 
     <complexType>
       <sequence>
         <any namespace='http://www.w3.org/2000/09/xmldsig#'/>
       </sequence> 
       <attribute name='Id' type='ID' use='required'/> 
     </complexType>
   </element>

</schema>
  
 

3.1 Signatureのセマンティク

[XMLDSIG]は暗号方式のアルゴリズムを通じ、データオブジェクトに鍵を適用して、(主に)データオブジェクトの完全性を実現する方法を設定する。「私はUFOを見た」という文字を示す事実は、署名(signature)の作者(鍵の所有者)が実際にUFOを見たという事を意味していないし、また、UFOを見たことを信じているという事を意味しているわけではなく、恐らく、誰かがUFOを見たという事を話し、鍵の所有者がただ単に公証人のような役割をし、その発言を公的な記録に残したいと思うことであろう。そこで、問題はその人がどのようにしてUFOを見たという事を言うかと言うかとことである。どのようにして、その人はセマンティク(例えば、断言する、信じる、立証する、公証する、など)をその署名に結び付けたのか?どのようにしてその人は言明したこと(例えば「空が青い」など、)を述べた文書を保証したこと、または、話したことについての言明と実際に言ったこと(例えば、"彼は「空が青い」と言った"など)を区別するのか?

多くの場合、署名の意味はコンテキスト(前後関)から推論される。例えば、支払いの申請は、仕様の一環として、支払い書類のauthorization要素にSignatureが表示されれば、作者および鍵の所有者がその支払いを承認しているのであると決定する。別のコンテキストでは、鍵の所有者が一つ以上の鍵とそれに関連したセマンティクを持つことがある。例えば、一つの鍵は私が断言したことに対して使用され、もう一つの鍵は公的に承認した日時を記録する(タイムスタンプ)のに使用される。または、[RFC2459]のKeyUsageフィールドを示す事ができれば、一つの鍵は非放棄に、もう一つは証明の署名に使用される。しかしながら、これらの技術は(署名からの)外部の仕様または、アプリケーションの黙示のコンテキストに依存している。そのため、これらのセマンティクはコンテキストからはずれる。もし、これらのセマンティクがうまく設定されていなければ、同じアプリケーションの異なるユーザはそのセマンティクを共有すらしないかもしれない。適切な法的行為を使用して!

幸いにも、[XMLDSIG]は、署名されている簡単なビット間の意志決定をおこなうメカニズムと実際の署名作成に関する情報を見分けるメカニズムを提供する。このことによって、ビットと明示的に"bootstrap"の意味に完全性を与える環から外れる事が出来る。 SignatureProperty要素は"署名の世代に関わる追加情報の項目を置くことができる"メカニズムを実現する。 私は署名の意図と意味を組み込むためにSignatureProperty要素を使用する。この"bootstrapping"はSignaturePropertyへのReferenceType="&dsig;SignatureProperties"だと識別される場合に起こる。

SignaturePropertyに現れ、Typeを通じていると認識されているタイムスタンプは以前の完全性のあるものではないが、その署名のタイムスタンプである。署名のセマンティク("私は保証する"など)がSignaturePropertyに含まれ、示されていたら(そしてそのように認識されていたら)、署名のアプリケーションの中にはSignaturePropertyのこととなると、 "理解"せずに、(例えば、簡単なタイムスタンプサービスなど)データに署名をしたがっているものもあるが、そのアプリケーションは署名することに関して非常に慎重であるという事を意味している。(アプリケーションはSignaturePropertyに何があるかを理解すべきである。)"[XMLDSIG: 2.2 拡張された例((Object およびSignatureProperty))]

そのため、この仕様書によって、3章で定義している自然言語のセマンティクで、以下のXML構文をSignaturePropertyの一部として使用して署名のセマンティクを表す事ができる:

[i0] <SignatureProperties>
[i1]   <SignatureProperty Id="Property-Assurance" Target="#Signature1"
[i2]    xmlns="http://www.w3.org/2000/09/xmldsig#">
[i3]     <profile:Assures profile:Policy="http://www.example.org/p3p.xml"
[i4]       xmlns:profile="http://www.w3.org/2001/02/xmldsig-p3p-profile" />
[i5]   </SignatureProperty>
[i6] </SignatureProperties>

上記は以下の[RDF]と同じ意味をもつ :

[r0] <rdf:Description ID="Property-Assurance" about="#Signature1"
[r1]  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
[r2]   <profile:Assures resource="http://www.example.org/p3p.xml"
[r3]     xmlns:profile="http://www.w3.org/2000/12/xmldsig-p3p-profile" />
[r4] </rdfDescription>

("文法的データモデルへ分解する)このステートメントの具体化は以下である:

[rA] <rdf:type resource="rdf:Statement"/>
[rB] <rdf:subject resource="#Signature1"/>
[rC] <rdf:predicate resource="profile:Assures"/>
[rD] <rdf:object resource="http://www.example.org/p3p.xml"/>

この仕様は[RDF]データモデルにセマンティクを作成する事を選ぶが、すべての署名のセマンティクが同じことをする必要はない。より正式な"profile:assures"の定義が作成されれば、より明確なデザインとなり、エージェントが推理可能になるので、私はセマンティクを作成することにする。 また、ある人はHTMLのp要素の(残念ながら、明確ではない)コンテキストの中に、自然言語のインスタンスを見る事があるかもしれない。

[n0] <SignatureProperties>
[n1]   <SignatureProperty Id="Property-Assurance" Target="#Signature1"
[n2]    xmlns="http://www.w3.org/2000/09/xmldsig#">
[n3]     <p xmlns:html="http://www.w3.org/1999/xhtml">I agree
         with everything signed</p>
[n5]   </SignatureProperty>
[n6] <SignatureProperties>

4.0 XML Signature Profile

P3P Signature Profile署名は以下のREQUIRED制約を持つ有効な署名 [XMLDSIG]である。

  1. 許容 CanonicalizationMethodは標準的なXMLである:
    http://www.w3.org/TR/2000/WD-xml-c14n-20001011
  2. 許容 SignatureMethodDSAもしくはRSAである。
    http://www.w3.org/2000/09/xmldsig#dsa-sha1
    http://www.w3.org/2000/09/xmldsig#rsa-sha1
  3. T許容DigestMethodはSHA-1である
    http://www.w3.org/2000/09/xmldsig#sha1
  4. 許容Transforms は以下である:
    1. 標準的な XML:
      http://www.w3.org/TR/2000/WD-xml-c14n-20000907
    2. HTML/English XSLTへのP3P Statement: 本仕様書はステートメントを記述する為に英語を使用するHTMLページへP3Pステートメントを変換する[XSLT]インスタンスを説明している。
      http://www.w3.org/2001/02/xmldsig-p3p-profileenglish.xsl
  5. 許容KeyInfo
    1. DSAKeyValue もしくは RSAKeyValue
      http://www.w3.org/2000/09/xmldsig#dsa-sha1
      http://www.w3.org/2000/09/xmldsig#rsa-sha1

注意、より詳しく説明する為に、European Directive 1999/93/ECで述べているように、"進歩した電子署名"の必要事項を満たすために、このプロファイルの改善を考えた。それには"それは適切な証明であった"と示している拡張子、X509Dataと署名の一部として、(1)保証者の署名ポリシーと(2)タイムスタンプに関するdsig:Referenceを使用する必要がある。本書でP3Pアプリケーションのコンテキストと署名のセマンティクを強調したいと思うことを考えると、しばらくはプロファイルの改善は見あわせる。

5.0 P3Pポリシー

P3P Disputes verification属性は署名保証のURIであるべきである。[P3P]に関する制約や仕様の追加を行わないし、本仕様書のネーム空間を通じてセマンティクの追加もしない。

6.0 スキーマ、変換および例

XSLT P3P StatementをHTMLへ変換
本仕様書はステートメントを記述するのに英語を使用するHTMLページへP3Pステートメントを変換する [XSLT]インスタンスを示す。
english-language.xsl
P3P Assurance Signature Profile Schema
assurance.xsd

7.0 参照

P3P
The Platform for Privacy Preferences 1.0 (P3P1.0) Specification. W3C Working Draft. Cranor, Langheinrich, Marchiori, Presler-Marshall, and Reagle, October 2000.
http://www.w3.org/TR/2000/WD-P3P-20001018/
RDF
Resource Description Framework (RDF) Model and Syntax Specification. W3C Recommendation. Lassila and Swick. Febuary 1999.
http://www.w3.org/TR/REC-rdf-syntax/
RFC2459
Internet X.509 Public Key Infrastructure Certificate and CRL Profile. R. Housley, W. Ford, W. Polk, D. Solo. January 1999.
http://www.ietf.org/rfc/rfc2459.txt
XMLDSIG
XML-Signature Syntax and Processing. W3C Working Draft. Eastlake, Reagle, and Solo. September 2000.
http://www.w3.org/TR/2000/WD-xmldsig-core-20001012/
XML-C14N
Canonical XML. Working Draft. J. Boyer. September 2000.
http://www.w3.org/TR/2000/WD-xml-c14n-20000907
XML-ns
Namespaces in XML Recommendation. T. Bray, D. Hollander, A. Layman. January 1999.
http://www.w3.org/TR/1999/REC-xml-names-19990114
XML-schema
XML Schema Part 1: Structures Working Draft. D. Beech, M. Maloney, N. Mendelshohn. September 2000.
http://www.w3.org/TR/2000/CR-xmlschema-1-20001024/
XML Schema Part 2: Datatypes Working Draft. P. Biron, A. Malhotra. September 2000.
http://www.w3.org/TR/2000/WD-xmlschema-2-20001024/
XSLT
XSL Transforms (XSLT) Version 1.0. Recommendation. J. Clark. November 1999.
http://www.w3.org/TR/1999/REC-xslt-19991116.html