「ウィジェット 1.0 デジタル署名」の版間の差分

提供:STUDIO DDT ONLINE
ナビゲーションに移動検索に移動
209行目: 209行目:
#<span title="Every signature that is verified MUST be verified according to Signature Verification defined in this specification.">あらゆる検証対象の署名は、この仕様書で定義された[[#signature-verification|署名検証方法]](Signature Verification)に従って検証されねばならない[MUST]。</span>
#<span title="Every signature that is verified MUST be verified according to Signature Verification defined in this specification.">あらゆる検証対象の署名は、この仕様書で定義された[[#signature-verification|署名検証方法]](Signature Verification)に従って検証されねばならない[MUST]。</span>
==<span title="Signature Syntax and use in Widget Packages">署名構文とウィジェットパッケージでの利用について</span>==
==<span title="Signature Syntax and use in Widget Packages">署名構文とウィジェットパッケージでの利用について</span>==
===<span title="Use of XML Signature in Widgets">ウィジェットでのXML署名の利用について</span>===
<span title="A widget package MAY be digitally signed using the profile of [XMLDSIG11] defined by this specification.">[[#widget-package|ウィジェットパッケージ]]は、この仕様書で定義される[[#xmldsig11|XML署名 1.1]]のプロファイルを用いてデジタル署名してもよい[MAY]。</span>
<span title="Note: A user agent's security policy can affect how signature validation impacts operation, and may have additional constraints on establishing trust, including additional requirements on certificate chain validation and certificate revocation processing using CRLs [RFC5280] or OCSP [RFC2560].">註記:ユーザエージェントのセキュリティポリシは、署名の検証が操作にどう影響するかに作用するかもしれず、[[#rfc5280|CRLs(RFC 5280)]]や[[#rfc2560|OCSP(RFC 2560)]]を用いた証明書失効処理と証明書チェインの検証に追加要件を含んだ、信用確立上の追加制約があるかもしれない。</span>
<span title="Security policy may also require additional information to be conveyed in ds:KeyInfo.">セキュリティポリシでは、''ds:KeyInfo''で伝えられる追加情報も必要とする可能性がある。</span><span title="Security policy is out of scope of this specification but has important implications for signature file processing.">セキュリティポリシについてはこの仕様書の範囲外だが、署名ファイルを処理するのための重要な意味を持つ。</span>
<span title="When a widget package is signed according to this specification, the following requirements on a widget signature apply to any widget signature included in widget package:">この仕様書に従って[[#widget-package|ウィジェットパッケージ]]を署名するとき、以下の'''ウィジェット署名での要求事項'''が[[#widget-package|ウィジェットパッケージ]]中に含まれる全ての[[#widget-signature|ウィジェット署名]]へ適用される。</span>
*<span title="Each signature file MUST appear at the root of the widget package.">それぞれの[[#signature-file|署名ファイル]]は、[[#root-of-the-widget-package|ウィジェットパッケージのルート]]に現れなければならない[MUST]。</span>
*<span title="Each widget signature MUST be a detached XML Signature that complies with XML Signature 1.1 syntax [XMLDSIG11].">それぞれの[[#widget-signature|ウィジェット署名]]は、[[#xmldsig11|XML署名 1.1構文]]に準拠した分離(detached)XML署名でなければならない[MUST]。</span>
*<span title="Each widget signature MUST be generated and validated in a manner compliant with XML Signature 1.1 processing rules [XMLDSIG11].">それぞれの[[#widget-signature|ウィジェット署名]]は、[[#xmldsig11|XML署名 1.1処理方法]]のルールに準拠して生成と検証がなされねばならない[MUST]。</span>
*<span title="Each widget signature MUST contain a dsp:Profile signature properties element compliant with the [XMLDSIG-Properties] and this specification.">それぞれの[[#widget-signature|ウィジェット署名]]は、この仕様書と[[#xmldsig-properties|XML署名プロパティ]]に準拠した''dsp:Profile''署名プロパティを含まねばならない[MUST]。</span><span title="This dsp:Profile property MUST have the URI attribute value of http://www.w3.org/ns/widgets-digsig#profile.">この''dsp:Profile''プロパティは、''[[#uri|URI]]''属性値が''<nowiki>http://www.w3.org/ns/widgets-digsig#profile</nowiki>''でなければならない[MUST]。</span>
*<span title="Each widget signature MUST contain a dsp:Role signature properties element compliant with the [XMLDSIG-Properties] and this specification.">それぞれの[[#widget-signature|ウィジェット署名]]は、この仕様書と[[#xmldsig-properties|XML署名プロパティ]]に準拠した''dsp:Role''署名プロパティを含まねばならない[MUST]。</span>
*<span title="Each widget signature MUST contain a dsp:Identifier signature properties element compliant with XML Signature Properties [XMLDSIG-Properties] and this specification.">それぞれの[[#widget-signature|ウィジェット署名]]は、この仕様書と[[#xmldsig-properties|XML署名プロパティ]]に準拠した''dsp:Identifier''署名プロパティを含まねばならない[MUST]。</span>
*<span title="Every ds:Reference used within a widget signature MUST have a URI attribute.">[[#widget-signature|ウィジェット署名]]で用いられるすべての''ds:Reference''は、''[[#uri|URI]]''属性を持たねばならない[MUST]。</span>
*<span title="Every ds:Reference used within a widget signature MUST be one of the following two kinds of reference:">[[#widget-signature|ウィジェット署名]]で用いられるすべての''ds:Reference''は、後述する2種類の参照方法のどちらか一つでなければならない[MUST]。</span><dl><dt title="Reference to content within the same ds:Signature element">同一の''ds:Signature''要素内容への参照<dd title="Every ds:Reference to an item within the widget signature MUST use an IDREF value for the ds:Reference URI attribute, referring to a unique ID (as defined in [XML-Schema-Datatypes]) within the widget signature.">[[#widget-signature|ウィジェット署名]]項目へのすべての''ds:Reference''は、''ds:Reference''の''[[#uri|URI]]''属性に''IDREF''値を用いねばならず[MUST]、[[#widget-signature|ウィジェット署名]]中で([[#xml-schema-datatypes|XMLスキーマのデータ型]]で定義されたような)一意の識別子を参照する。<dt title="Reference to a file entry in the same widget package">同一[[#widget-package|ウィジェットパッケージ]]中の[[#file-entry|ファイルエントリ]]への参照<dd title="The URI attribute of every ds:Reference to a file entry MUST be a URL-encoded [URI] zip relative path that identifies a file inside the widget package.">[[#file-entry|ファイルエントリ]]へ対するすべての''ds:Reference''のURI属性は、ウィジェットパッケージの内部ファイルを識別する[[#zip-relative-path|zip相対パス]]を[[#uri|URLエンコード]]したものでなければならない[MUST]。</dl>
===<span title="Author Signature">作成者署名について</span>===

2009年8月10日 (月) 16:10時点における版

この文書はW3CがW3C勧告候補として公開している仕様書"Widgets 1.0: Digital Signatures"をSTUDIO DDT ONLINEが学習目的で日本語に翻訳したものです。正式な仕様書は英語版のみであり、この日本語訳は参考にすぎません

この文書には翻訳上の誤りが含まれるかもしれません。STUDIO DDT ONLINEは翻訳の正確性を保証しません。

この文書のレイアウトはMediaWikiの記法に依存するため、オリジナルの文書とは文書構成、HTMLのセマンティクス、見栄え等が異なります。

現段階は勧告候補のため、この翻訳は不安定なものとなっています。

W3C勧告候補2008年6月25日

このバージョン
http://www.w3.org/TR/2009/CR-widgets-digsig-20090625/
最新のバージョン
http://www.w3.org/TR/widgets-digsig/
以前のバージョン
http://www.w3.org/TR/2009/WD-widgets-digsig-20090430/
http://www.w3.org/TR/2009/WD-widgets-digsig-20090331/
http://www.w3.org/TR/2008/WD-widgets-digsig-20080414/
編集中の草案
http://dev.w3.org/2006/waf/widgets-digsig/
バージョン履歴
Twitterメッセージ(非編集上の変更のみ) : http://twitter.com/widgetspecsRSS
編者
Frederick Hirsch、Nokia
Marcos Caceres、Opera Software ASA
Mark Priestley、Vodafone

著作権© 2009 W3C®マサチューセッツ工科大学欧州情報科学数学研究コンソーシアム慶應義塾大学)により、全ての権利が留保される。W3Cの免責商標文書利用規定が適用される。

この翻訳文の著作権はSTUDIO DDT ONLINEおよびサイト管理者が保持しています。この翻訳文の利用などについては免責事項を参照してください。ただし、原文のライセンス内容によっては免責事項よりも原文のライセンスが優先されます。

概要
この文書では、ウィジェットパッケージ(widget package)にデジタル署名できるようにするために、XM署名 構文と処理 1.1仕様のプロファイルを定義するものである。ウィジェットの作成者(author)と配布者(distributor)は、作成および配布の継続性を確保するための機構として、ウィジェットにデジタル署名することができる。インスタンス化に先立ち、ユーザーエージェントはウィジェットパッケージの完全性を検証するためや、署名鍵を確認するために、デジタル署名を用いることができる。この仕様書では、ウィジェットパッケージとユーザーエージェント間の適合性要件を規定する。
この文書の位置づけ
この仕様書は、ウィジェット1.0:デジタル署名仕様の2009年6月25日勧告候補版である。W3Cは、この文書が開発者コミュニティでの実装を奨励し、安定させると思われる、ということを示すために勧告候補を発行している。ウェブアプリケーション(WebApps)作業部会では、ひとたび作業部会が包括的なウィジェット 1.0: デジタル署名テストスイートを開発すれば、ディレクターがこの文書を勧告案に進め、少なくとも2つの相互運用可能な実装で実証することを要求すると見込んでいる。ウェブアプリケーション作業部会では、2009年9月までにこれらの実装を見込んでいる。作業部会では、2009年10月1日より前に勧告案へ進めたいとは考えていない。現時点で、この仕様書の実装報告は挙がっていない。
勧告候補の発行は、W3C会員による承認を意味しない。これは策定中の仕様書であり、いつでも他の文書によって更新、交換、廃止されることがある。作業途中でない正式な仕様書としてこの仕様書を引用することは適当でない。
今節では、公開時点でのこの仕様書の位置づけについて説明する。他の文書が、この文書に優先するかもしれない。現在のW3Cの発行物の一覧とこの技術レポートの最新版は、W3Cの技術レポート目録http://www.w3.org/TR/で参照できる。
この仕様書は、2004年2月5日版のW3C特許ポリシの下で、部会の手によって作成された。W3Cでは部会の成果物に関連する特許開示の公開リストを維持しており、そのページには特許開示のための手順が含まれている。必要不可欠な請求項(Essential Claim(s))があると思われる、特許の実際の知識を持っている個人は、W3C特許ポリシの第6節にしたがって情報を開示する必要がある。
閲覧者はW3CのCVSリポジトリにてこの仕様書の最新の編集者草案を参照することができ、それは頻繁にに更新されている。一般の方は、ウェブアプリケーション作業部会の公開メーリングリストpublic-webapps@w3.orgアーカイブ)にコメントを送信することを推奨する。W3Cのメーリングリストとアーカイブ利用ガイドラインを参照せよ。以前の版からの詳細な変更点の一覧は、W3CのCVSサーバから入手可能である。

始めに

この仕様書では、ウィジェットパッケージにデジタル署名できるように、XM署名 構文と処理 1.1仕様のプロファイルを定義するものである。ウィジェットの作成者(author)と配布者(distributor)が、作成と配布の継続性を保つための機構として、ウィジェットにデジタル署名することができる。インスタンス化に先立ち、ユーザーエージェントはウィジェットパッケージの完全性を検証するためや、署名鍵を確認するために、デジタル署名を用いることができる。この仕様書では、ウィジェットパッケージとユーザーエージェント間の適合性要件を規定する。

ウィジェットパッケージは、署名ファイル以外の全ファイルエントリを暗号化して内包するXML署名1.1形式の署名で、ウィジェット作成者本人によって署名される。ウィジェットパッケージは、作成者署名と同様に、全ての非署名ファイルエントリをそれぞれ暗号化して内包したXML署名1.1形式の署名が作成され、1つまたは複数のウィジェット配布者によって署名される。

バージョン、名前空間と識別子について

この仕様書では、リソース、アルゴリズム、セマンティクスの識別にXML名前空間統一リソース識別子(URI)を用いる。

この仕様書の実装では、この仕様書で用いられるXML要素用のXML名前空間として下記URIを用いなければならない[MUST]。

URI:
http://www.w3.org/ns/widgets-digsig

実装は、XML仕様とXML名前空間仕様に対応しなければならない[MUST]。

上記の名前空間URIを用いるには、この仕様書で用いるXML要素が必要[REQUIRED]だが、下記の名前空間接頭辞と実体宣言は、この仕様書で用いる編集上の慣習に過ぎない。それらの利用については、デジタル署名文書の著者によって選択できる[OPTIONAL]。

XML内部実体:
<!ENTITY wsig "http://www.w3.org/ns/widgets-digsig">
名前空間接頭辞:
wsig:

この仕様書の制御下にないリソースについては、関連する仕様書によって定められたURIで指すものを用いる。たとえば、

XML署名 第2版のリソースは、ds:名前空間で定義されている。
http://www.w3.org/2000/09/xmldsig
追加のXML署名1.1のリソースは、ds11:名前空間で定義されている。
http://www.w3.org/2009/xmldsig11
Roleのような個々の署名のプロパティ群であるXML署名プロパティは、dsp:名前空間で定義されている。
http://www.w3.org/2009/xmldsig-properties
XMLセキュリティで用いられるアルゴリズムは、XML署名1.1の諸所で定義されている。
詳細についてはXMLセキュリティのクロスリファレンスを参照せよ。

註:この仕様書中では明確なバージョン番号は規定しない。この仕様書の将来版で文書形式の明確な版数が求められるならば、異なる名前空間が用いられるだろう。

定義について

ウィジェットパッケージとは、ウィジェットのパッケージング仕様に沿ったZipアーカイブである。

ファイルエントリとは、ローカルファイルヘッダファイルデータ、(追加の)データディスクリプタによって保持されたデータであり、Zip仕様で定義されたように、それぞれの物理的なファイルはZipアーカイブの中に格納されている。

ウィジェットパッケージのルートとは、ウィジェットのパッケージング仕様で定義された、一つ、あるいは複数のファイルエントリを論理的に含むことが可能な、ウィジェットパッケージの最上位レベルパスである。

ファイル名とは、ウィジェットのパッケージング仕様で定義された、ウィジェットパッケージに含まれる(ファイルエントリのローカルファイルヘッダファイル名フィールドから導き出された)ファイルの名前である。すべてのファイル名は、文字の大小を区別(case-sensitive)されなければならない[MUST]。いわゆる、ファイル名比較時の懸案事項である。

デジタル署名済みのウィジェットパッケージとは、一つあるいは複数の署名ファイルを含んだウィジェットパッケージである。

未署名のウィジェットパッケージとは、任意の署名ファイルを含まないウィジェットパッケージである。

署名ファイルとは、署名ファイル名の命名規則に従った名前の、(この仕様書で説明しているような)分離した(detached)XML署名1.1形式の署名を含んだファイルエントリである。

署名ファイル名とは、署名ファイルを表すファイルエントリファイル名である。この仕様書では、作成者署名配布者署名の両方について命名規則を定義している。

ウィジット署名とは、XML署名1.1形式の署名であり、署名ファイルに内包されている。

作成者署名とは、作成者署名の命名規則を遵守していて、URI属性がauthor role属性値と等しいXML署名プロパティRole要素を持った、署名ファイル名付きのウィジェット署名である。作成者署名は、ウィジェットの作者(つまり、ウィジェットを作成したその人)によって生成されることを意図している。

配布者署名とは、配布者署名の命名規則を遵守していて、URIdistributor role属性値と等しいXML署名プロパティRole要素を持った、署名ファイル名付きのウィジェット署名である。配布者署名は、ウィジェットの配布者(つまり、作成者に代わってウィジェットの配布を行っている第三者)によって生成されることを意図している。

ウォールクロックタイムスタンプ(wall clock timestamp)は、XML署名プロパティ仕様で定義されている。

Zip相対パスは、ウィジェットのパッケージング仕様で規定されているように、zip-rel-path用のABNFに従わなければならない[MUST]。

規約について

今節は参考情報である。

今節では主に編集上の規約が定義されていますが、本翻訳ではMediaWikiの編集上の制限により、原文にある意図やHTMLとしてのセマンティクスが反映できていない場合があります。本翻訳を利用される場合は、必ず原文を参照してください。

定義済みの用語は、定義済み用語の見本というように現れる。そのような用語は、定義済み用語の見本というふうに参照され、用語が定義された場所に戻るリンクを提供する。

適合性条項あるいは検証可能な主張を意味する言葉として、RFC 2119にある「しなければならない[MUST]」、「してはならない[MUST NOT]」、「求められる[REQUIRED]」、「すべきである[SHOULD]」、「すべきでない[SHOULD NOT]」、「推奨される[RECOMMENDED]」、「してもよい[MAY]」、「選択できる[OPTIONAL]」という用語を用いる。

本翻訳では必ずしも上記のように翻訳されていませんが、原文に注記されている箇所については翻訳文でも明らかなようにしております。

変数は、例えば変数というふうに特別にフォーマットされる。コードも同じく、コードというふうに特別にフォーマットされる。

事例部分は、以下のように全体を示すためにハイライト表示される。

これは、あるコードを含んだ例である。
if (a <> 1234122){ //...do something }

注記は特別にハイライト表示され、編集上の問題やよく知られた事柄を注記するために用いられる。

本翻訳文では注記に対して特別な見栄えを設定していません。

この仕様書では、ファイル名を定義するためにABNF構文を用いる。ルールは、互いに隣り合って記載されたものと連結されている。ルールでは、ゼロ以上を意味する*を冠している。この構文の詳細については、ABNFを参照せよ。

事例について

今節は参考情報である。

signature1.xmlと名づけられた配布者署名文書の例である。

<?xml version="1.0" encoding="UTF-8"?>
 <Signature xmlns="http://www.w3.org/2000/09/xmldsig#" 
   Id="DistributorASignature">
  <SignedInfo>
   <CanonicalizationMethod 
    Algorithm="http://www.w3.org/2006/12/xml-c14n11"/>
   <SignatureMethod
    Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
   <Reference URI="config.xml">
    <DigestMethod
     Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
    <DigestValue>...</DigestValue>
   </Reference>
   <Reference URI="index.html">
     <DigestMethod
      Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
      <DigestValue>...</DigestValue>
   </Reference>
   <Reference URI="icon.png">
    <DigestMethod
      Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
    <DigestValue>...</DigestValue>
   </Reference>
   <Reference URI="#prop">
    <DigestMethod 
     Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
    <DigestValue>...</DigestValue>
   </Reference>
  </SignedInfo>
  <Object Id="prop"> 
   <SignatureProperties
    xmlns:dsp="http://www.w3.org/2009/xmldsig-properties">
    <SignatureProperty Id="profile" Target="#DistributorASignature">
     <dsp:Profile URI="http://www.w3.org/ns/widgets-digsig#profile"/>
    </SignatureProperty> 
    <SignatureProperty Id="role" Target="#DistributorASignature">
     <dsp:Role
       URI="http://www.w3.org/ns/widgets-digsig#role-distributor"/>
    </SignatureProperty> 
    <SignatureProperty Id="identifier" Target="#DistributorASignature">
     <dsp:Identifier>07425f59c544b9cebff04ab367e8854a</dsp:Identifier>
    </SignatureProperty> 
   </SignatureProperties> 
  </Object>  
  <SignatureValue>...</SignatureValue>
  <KeyInfo>
   <X509Data>
    <X509Certificate>...</X509Certificate>
   </X509Data>
  </KeyInfo>
 </Signature>

設計の目標と要件について

この仕様書の設計目標と要件は、ウィジェット 1.0 要求仕様で取り組まれている。この仕様書では、下記の要求事項に取り組む。すなわち、

特に、この仕様書では作成者署名配布者署名の両方に明示的に対応する。

適合性について

この仕様書内の、しなくてはならない[MUST]、してはならない[MUST NOT]、求められる[REQUIRED]、すべきである[SHOULD]、すべきでない[SHOULD NOT]、推奨される[RECOMMENDED]、してもよい[MAY]、選択できる[OPTIONAL]というキーワードは、RFC 2119で記述されたように解釈される。

本翻訳では必ずしも上記のように翻訳されていませんが、原文に注記されている箇所については翻訳文でも明らかなようにしております。

参考情報と記された節と同様に、この仕様書内の例、ノート、セキュリティ上の考慮事項は参考情報である。この仕様書内のその他の部分は規範的である。

この仕様書への適合性を表示可能なプロダクトの種類は、以下の二つである。

ウィジェット署名を生成するプロダクトは、この仕様書とXML署名 1.1に適合するXML文書を生成しなくてはならない[MUST]。

ユーザーエージェントとは、この仕様書に対応しようとする実装である。ユーザーエージェントは、適合性表示をするためにこの仕様書によって記述されたように振舞わねばならない[MUST]。

実装者には、パッケージ内のデジタル署名の検証を可能とするために、エンドユーザに証明書をインストールできるようにするメカニズムを提供することが奨励される。

ウィジェット用デジタル署名の配置と処理について

今節では、処理のためにウィジェットパッケージ中の署名ファイルをどのように配置するかを定義する。実装では、ウィジェットパッケージ中に署名ファイルを配置するために、後述するアルゴリズムを用いて常に同じ結果を得なければならない[MUST]。

  1. signaturesを空のリストにする。
  2. ウィジェットパッケージのルートにある各ファイルエントリに対し、ファイル名配布者署名の命名規則に合致するならば、signaturesリストへこのファイルエントリを追加する。実装では、文字の大小を比較しなければならない[MUST]。
  3. signaturesリストが空でない場合、signaturesのリストをファイル名フィールドの数字を昇順で(例えば、signature1.xmlの次にsignature2.xml、その次にsignature3.xmlというように)ソートする。
  4. ウィジェットパッケージのルートを検索し、作成者署名の命名規則に合致する任意のファイル名ファイルエントリsignaturesに追加する。実装では、文字の大小を比較しなければならない[MUST]。
  5. signaturesが空(署名ファイルを意味するものが見つからなかった)の場合、このアルゴリズムを中止し、未署名のウィジェットパッケージとしてこのウィジェットパッケージを扱う。
  6. 先頭に配布者署名があるなら、署名リストの数字の降順に署名ファイルを検証する。

    どの配布者署名に決定するかは検証されることになるが、作成者署名が検証されるかどうかはこの仕様書の範囲外である。

    これは、ユーザエージェントが用いるセキュリティポリシによって決定してよい[MAY]。

    番号順とは、署名ファイル名の数字部分に基づいて並べることである。

    したがって、複数の配布者署名が処理されることになる場合、最も高い番号付けがされた配布者署名が最初に処理される。

    ファイル名の数字部分でウィジェット署名ファイルを並べることで、一貫した処理を可能にし、最適化が可能となる。

  7. あらゆる検証対象の署名は、この仕様書で定義された署名検証方法(Signature Verification)に従って検証されねばならない[MUST]。

署名構文とウィジェットパッケージでの利用について

ウィジェットでのXML署名の利用について

ウィジェットパッケージは、この仕様書で定義されるXML署名 1.1のプロファイルを用いてデジタル署名してもよい[MAY]。

註記:ユーザエージェントのセキュリティポリシは、署名の検証が操作にどう影響するかに作用するかもしれず、CRLs(RFC 5280)OCSP(RFC 2560)を用いた証明書失効処理と証明書チェインの検証に追加要件を含んだ、信用確立上の追加制約があるかもしれない。

セキュリティポリシでは、ds:KeyInfoで伝えられる追加情報も必要とする可能性がある。セキュリティポリシについてはこの仕様書の範囲外だが、署名ファイルを処理するのための重要な意味を持つ。

この仕様書に従ってウィジェットパッケージを署名するとき、以下のウィジェット署名での要求事項ウィジェットパッケージ中に含まれる全てのウィジェット署名へ適用される。

作成者署名について