JP5783630B2 - 複合リソース文書上のデジタル署名 - Google Patents

複合リソース文書上のデジタル署名 Download PDF

Info

Publication number
JP5783630B2
JP5783630B2 JP2011180340A JP2011180340A JP5783630B2 JP 5783630 B2 JP5783630 B2 JP 5783630B2 JP 2011180340 A JP2011180340 A JP 2011180340A JP 2011180340 A JP2011180340 A JP 2011180340A JP 5783630 B2 JP5783630 B2 JP 5783630B2
Authority
JP
Japan
Prior art keywords
signature
resource
generated
resources
generating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011180340A
Other languages
English (en)
Other versions
JP2012085276A (ja
Inventor
ジョン・マイケル・ボワイエ
ラグナサン・マリアパン
ナジール・シャミーム・ユニーサ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2012085276A publication Critical patent/JP2012085276A/ja
Application granted granted Critical
Publication of JP5783630B2 publication Critical patent/JP5783630B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3225Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document
    • H04N2201/3233Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document of authentication information, e.g. digital signature, watermark
    • H04N2201/3235Checking or certification of the authentication information, e.g. by comparison with data stored independently

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Document Processing Apparatus (AREA)

Description

本開示は一般にデータ処理システム内のリソースのセキュリティに関し、より具体的にはデータ処理システム内の協同ビジネス・プロセスにおける複合リソース文書上のデジタル署名に関する。
「文書」は、ウェブ・ベースの商取引又は協同ビジネス・プロセスのインスタンスを表す便利なメタファである。文書はエンド・ユーザが、情報システムとのエンド・ユーザの対話及びそれら対話の全体の状況についての完全なデジタル表現を保存し、電子メールで送り、そしてそれにデジタル署名することを可能にする。文書はまた、ウェブ・アプリケーションの開発者にとっても便利なメタファであり、なぜなら文書は開発者に対して、ビジネス・プロセスを通して送り、リッチな対話型アプリケーションに関する全体のユーザ体験定義をカプセル化し、ビジネス・プロセス取引に関連する全てのユーザ入力、添付書類及びデジタル署名を包含することができる単一のデジタル・アセットを与えるからである。従って、文書メタファを介して、オフライン又は非接続のフォーム記入体験をエンド・ユーザに容易に提供することができる。
図3を参照すると、ビジネス・プロセス300内を流通する対話型の文書が、ビジネス・プロセス中の種々の協力者、例えば協力者312及び協力者314にたいして供給され、その協力者が、コンテンツ・リポジトリ302及び契約テンプレート306を用いて文書に彼らの入力を与えて提案契約308を作成できるようにするメンタルモデルが示される。提案契約は、認可者316が審査し認可することができ、その際認可者316はインターネット318のようなネットワークで通信してチェック・クレジット・サービス320及び電子資金振替サービス322を使用して履行契約310を生成する。履行契約310はリポジトリ304内に保存することができる。
図4を参照すると、対話型文書の論理層が示される。基本的に、「対話型文書」はウェブ・アプリケーション、及び特定のユーザ又はユーザの組によるウェブ・アプリケーションの体験を表す。履行契約310のような文書は、典型的にはデータ層、ビジネス規則層、論理ユーザ・インタフェース層、及びプレゼンテーション層を含む幾つかの論理層400に編成される傾向がある。対話型文書400は、協同ビジネス・プロセス内の対話型文書のコンポーネントを表すための論理的に階層化された手法である。ヒューマン・インタフェース402は、論理ユーザ・インタフェース層及びプレゼンテーション層の一例であり、一方ビジネス論理及び動的確認404はビジネス規則層を表す。
データ層は、データ・アクセス及び確認406によって表され、基礎となるデータを表すものであり、このデータは拡張マークアップ言語(XML)形式で書かれることが多く、XMLパス言語(XPath)によってアドレス可能であり、情報システムが最終的に推進するように設計された最終取引のXMLスキーマ418に適合するように意図したものである。このアプリケーションの目標はデータ層の「記入体験」である。データ層は、データの簡単な項目、例えば、ユーザによって入力された、名称、日付、数、及び量のようなデータ・インスタンス408など、並びに添付ファイル及びデジタル署名を含むことができる。ビジネス・プロセスのキーポイントにおいて、データを残りの文書から分離してデータベースに保存することができ、及び/又はワークフロー・ステップを促進するか又は取引を完了するのに用いることができる。
ビジネス規則、論理ユーザ・インタフェース及びプレゼンテーション層は、データ層に結合して対話サービスを提供する。例えば、XMLフォーム定義言語、XFormsモデル416を用いるビジネス規則は、ユーザが特定の年齢のときにだけデータの特定の部分が関連するようにすることができ、XForms論理ユーザ・インタフェース414は、データ及びビジネス規則メタデータをプレゼンテーション層に接続する結合機構を提供することができ、プレゼンテーション層は、グラフィカル・ユーザ体験を、マルチページXFDL412を用いて複数のページに分割することができる。拡張書式記述言語(XFDL)は、最初にワールドワイド・ウェブ・コンソーシアム(W3C)NOTE−XFDL−19980902の中で仕様を定められた拡張マークアップ言語(XML)の一種である。2010年8月現在で、XFDLの最新の仕様は、下記のサイトから入手できる。
http://publib.boulder.ibm.com/infocenter/forms/v3r5m1/topic/com.ibm.form.designer.xfdl.doc/XFDL%20Specification%207.7.pdf
そのような文書の上のデジタル署名は、ユーザによって提供されたデータを保護し、また同時に他の層を保護し、それにより、データと内部にデータが収集されたアプリケーション・コンテキストとの間の保護された結合を作成する。デジタル署名は、通常XML及びXML署名420を用いるセキュリティ、監査能力及び相互運用410を通じてサポートされる。例えば、ユーザがデータ値「500」を入力するとき、デジタル署名はデータ値「500」だけでなく、そのデータ値が「500個の鉄骨を購入する」又は「500株売却する」を意味するかどうかのデータ値の意味もまた保護する。このアプリケーションの要件は、8.1節におけるW3CXML署名標準(http://www.w3.org/TR/2008/REC-xmldsig-core-20080610/)に適合し、これは、適合するアプリケーションは収集された下層のデータだけでなくユーザが「見た」ものに署名及び確認すべきであることを実質的に言明するものである。
協同ビジネス・プロセスには、デジタル署名に関する複雑な要素が存在する。簡単なデジタル署名アプリケーションでは、完全な不透明ファイル、口語的には「ビットのバケツ」として文書に署名する傾向がある。この署名は、全体のファイルを保護し、署名を付けられた後に何らかの修正がファイルに加えられるときにデジタル署名は無効となる。しかし、協同ビジネス・プロセスにおいては、最初のデジタル署名が付けられた後にワークフローのステップが実施されることが多い。これらのワークフロー・ステップは、全体の取引に関連する付加的情報を作成する。文書は全体の完全なビジネス・プロセス取引を表すものであるので、これらのワークフロー・ステップは文書を修正するはずであり、これらはデジタル署名を無効にせずに行われる必要がある。
W3C XML署名標準はデジタル署名変換の形の解決策を提供する。変換を用いずに、単一のXML署名を任意の数のURIアドレス可能リソースに署名することができる。任意の数のこれらリソースはバイナリとすることができ、それゆえにXML署名はXMLコンテンツ及び非XMLコンテンツに署名することができる。各々のリソースの暗号ハッシュがXML署名内に配置され、次に一組のリソース・ハッシュが署名者のプライベート鍵マテリアルでハッシュされ暗号化される。しかしながら、W3CXML署名標準はまた、各々のリソースをハッシュする前に変換することを可能にする。特にXMLリソースはXPathフィルター2(http://www.w3.org/TR/xmldsig-filter2/から入手できる)を用いて変換することができ、このフィルターはXMLリソースの部分を、ハッシュを計算する前に取り去ることを可能にする。
フィルタリング変換はまた、署名されるべきものを簡単にリストアップすることができるが、これはリストアップされないどんなものでも署名を無効にせずにリソースに加えることができるのでセキュリティ値が低い。協同ビジネス・プロセスにおいて、既知の最良の実施はサブトラクション・フィルターを用いることであり、その理由は、取り去るものの表現がまた、署名を付けられた後で残りのビジネス・プロセスのどれが修正可能であるかの特徴付けともなるからである。サブトラクション・フィルターによって特徴付けられないあらゆる他の付加、変更又は削除は、デジタル署名を無効化する望ましい効果を有することになる。
単一のXML文書は、アプリケーションの作者が益々多くのページを有するアプリケーションを作成し、同時にサーバ毎のより高いフォーム処理能力を要求するので、時間がたつにつれて維持できなくなる可能性がある。既知の解決策は、サブトラクション・フィルタリングが可能であるが性能が不十分な単一XMLファイルとして文書を表現すること、並びに、より優れた性能を提供し、各リソース内でのサブトラクション・フィルタリングは可能であるが、複合リソースからのリソース全体のサブトラクション・フィルタリングが可能ではない複合リソースとして文書を表現することを含む、対話型文書にデジタル方式で署名することに関する欠点を有する。
一実施形態により、複合リソース文書のためのデジタル署名を作成するコンピュータ実施の方法は、少なくとも1つのリソースを含む複合リソース文書を受け取り、複合リソース文書内の全てのリソースをリストアップする最新のマニフェスト・リソースを取得し、最新のマニフェスト・リソース内のリソースのリストから取り去るべきゼロ、1つ又は複数のリソースを指示して、署名されるべき識別されたリソースの生成署名参照リストを作成し、生成署名参照リスト内の識別されたリソース用いてハッシュ・トークンを生成して署名ハッシュ・トークンを形成し、秘密鍵を用いて署名ハッシュ・トークンを暗号化する。
一実施形態により、複合リソース文書のデジタル署名を確認するためのコンピュータ実施の方法は、デジタル署名を有する1つ又は複数のリソースを含む複合リソース文書を受け取り、複合リソース文書内の全てのリソースをリストアップする最新のマニフェスト・リソースを取得し、デジタル署名内の生成署名参照リスト内の識別されたリソース用いてハッシュ・トークンを生成して生成ハッシュ・トークンを形成し、取得した復号鍵を用いてデジタル署名内に含まれる暗号化ハッシュ・トークンを復号して署名ハッシュ・トークンを形成し、生成ハッシュ・トークンと署名ハッシュ・トークンとの少なくとも比較に応答して署名正当性結果を生成する。
別の実施形態により、複合リソース文書のためのデジタル署名を作成するためのコンピュータ・プログラムは、内部にストアしたコンピュータ実行可能プログラム・コードを含むコンピュータ書き込み可能型媒体を含む。このコンピュータ実行可能プログラム・コードは、少なくとも1つのリソースを含む複合リソース文書を受け取るためのコンピュータ実行可能プログラム・コードと、複合リソース文書内の全てのリソースをリストアップする最新のマニフェスト・リソースを取得するためのコンピュータ実行可能プログラム・コードと、最新のマニフェスト・リソース内のリソースのリストから取り去るべきゼロ、1つ又は複数のリソースを指示して、署名されるべき識別されたリソースの生成署名参照リストを作成するためのコンピュータ実行可能プログラム・コードと、生成署名参照リスト内の識別されたリソース用いてハッシュ・トークンを生成して署名ハッシュ・トークンを形成するためのコンピュータ実行可能プログラム・コードと、秘密鍵を用いて署名ハッシュ・トークンを暗号化するためのコンピュータ実行可能プログラム・コードとを含む。
別の実施形態において、複合リソース文書のデジタル署名を確認するためのコンピュータ・プログラムは、内部にストアしたコンピュータ実行可能プログラム・コードを含むコンピュータ書き込み可能型媒体を含む。このコンピュータ実行可能プログラム・コードは、デジタル署名を有する1つ又は複数のリソースを含む複合リソース文書を受け取るためのコンピュータ実行可能プログラム・コードと、複合リソース文書内の全てのリソースをリストアップする最新のマニフェスト・リソースを取得するためのコンピュータ実行可能プログラム・コードと、デジタル署名内の生成署名参照リスト内の識別されたリソース用いてハッシュ・トークンを生成して生成ハッシュ・トークンを形成するためのコンピュータ実行可能プログラム・コードと、取得した復号鍵を用いてデジタル署名内に含まれる暗号化ハッシュ・トークンを復号して署名ハッシュ・トークンを形成するためのコンピュータ実行可能プログラム・コードと、生成ハッシュ・トークンと署名ハッシュ・トークンとの少なくとも比較に応答して署名正当性結果を生成するためのコンピュータ実行可能プログラム・コードとを含む。
別の実施形態により、複合リソース文書のためのデジタル署名を作成するための装置は、通信ファブリックと、通信ファブリックに接続され、コンピュータ実行可能プログラム・コードを含むメモリと、通信ファブリックに接続された通信ユニットと、通信ファブリックに接続された入力/出力ユニットと、通信ファブリックに接続されたディスプレイと、通信ファブリックに接続されたプロセッサ・ユニットとを備える。プロセッサ・ユニットは、コンピュータ実行可能プログラム・コードを実行して、装置に対して、少なくとも1つのリソースを含む複合リソース文書を受け取り、複合リソース文書内の全てのリソースをリストアップする最新のマニフェスト・リソースを取得し、最新のマニフェスト・リソース内のリソースのリストから取り去るべきゼロ、1つ又は複数のリソースを指示して、署名されるべき識別されたリソースの生成署名参照リストを作成し、生成署名参照リスト内の識別されたリソース用いてハッシュ・トークンを生成して署名ハッシュ・トークンを形成し、秘密鍵を用いて署名ハッシュ・トークンを暗号化するように命令する。
別の実施形態により、複合リソース文書のデジタル署名を確認するための装置は、通信ファブリックと、通信ファブリックに接続され、コンピュータ実行可能プログラム・コードを含むメモリと、通信ファブリックに接続された通信ユニットと、通信ファブリックに接続された入力/出力ユニットと、通信ファブリックに接続されたディスプレイと、通信ファブリックに接続されたプロセッサ・ユニットとを備える。プロセッサ・ユニットは、コンピュータ実行可能プログラム・コードを実行して、装置に対して、デジタル署名を有する1つ又は複数のリソースを含む複合リソース文書を受け取り、複合リソース文書内の全てのリソースをリストアップする最新のマニフェスト・リソースを取得し、デジタル署名内の生成署名参照リスト内の識別されたリソース用いてハッシュ・トークンを生成して生成ハッシュ・トークンを形成し、取得した復号鍵を用いてデジタル署名内に含まれる暗号化ハッシュ・トークンを復号して署名ハッシュ・トークンを形成し、生成ハッシュ・トークンと署名ハッシュ・トークンとの少なくとも比較に応答して署名正当性結果を生成するように命令する。
本開示のより完全な理解のために、これから添付の図面に関連して記述した以下の簡単な説明及び詳細な説明について言及するが、その際、類似の参照番号は類似の部分を表す。
本開示の種々の実施形態に関する動作可能なデータ処理システムの例示的なネットワークのブロック図である。 本開示の種々の実施形態に関する動作可能な例示的なデータ処理システムのブロック図である。 対話型文書フローのメンタルモデルのブロック図である。 図3の対話型文書の階層化のブロック図である。 本開示の一実施形態による複合文書システムのブロック図である。 本開示の一実施形態による、モノリシック対話型文書から複合文書の書式への論理的移行のブロック図である。 本開示の実施形態による、複合文書、複合文書をウェブ上で利用可能にするRESTサービス、ウェブ・アプリケーション層、及びエンド・ユーザ対話層の間の関係のブロック図である。 本開示の実施形態による、複合リソース文書のコンポーネントに関連するXML署名の論理記憶位置のブロック図である。 本開示の実施形態による、マニフェストのコード断片の一例である。 本開示の種々の実施形態による、複合リソース文書テンプレート内のXMLデータのコード断片の一例である。 本開示の種々の実施形態による、記入された図10の複合リソース文書内のXMLデータのコード断片の一例である。 本開示の種々の実施形態による、複合リソース文書署名を含むコード断片の一例である。 本開示の種々の実施形態による、複合リソース文書署名を含むコード断片の一例である。 本開示の種々の実施形態による、複合リソース文書署名を含むコード断片の一例である。 本開示の種々の実施形態による、参照リスト生成を示す複合リソース文書署名定義の別のコード断片の例である。 本開示の種々の実施形態による、参照リスト生成を示す複合リソース文書署名定義の別のコード断片の例である。 本開示の種々の実施形態による、複数の署名者を有し、変換されたリソースを指定する手段を示す複合リソース文書定義のコード断片の一例である。 本開示の種々の実施形態による、参照生成を制御するためのパターンを指定するためのコード断片の一例である。 本開示の種々の実施形態による、生成署名参照リストから特定のリソースをフィルタリングするためのコード断片の一例である。 本開示の種々の実施形態による、生成署名参照リストから特定のリソースをフィルタリングするためのコード断片の一例である。 本開示による複合リソースのためのデジタル署名を生成する方法のフローチャートである。 本開示の種々の実施形態による、図17の複合リソースのためのデジタル署名を確認する方法のフローチャートである。 本開示による、図18の署名正当性結果を生成する方法のフローチャートである。
1つ又は複数の実施形態の例証となる実施を以下に与えるが、本開示のシステム及び/又は方法は、多くの技術を用いて実施することができる。本開示は、本明細書で示し、説明する例示的な設計及び実施を含む、以下で説明する例証的な実施、図面、及び技術に決して限定されるべきではなく、添付の特許請求の範囲並びにそれらの均等物の全範囲内で修正することができる。
当業者によって理解されるように、本開示の態様は、システム、方法、又はコンピュータ・プログラムとして具体化することができる。従って、本開示の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、又は本明細書で一般的に全て「回路」、「モジュール」、又は「システム」と呼ぶことができるソフトウェア態様とハードウェア態様を組み合わせた実施形態の形をとるものとすることができる。さらに、本開示の態様は、その上に具体化されたコンピュータ可読プログラム・コードを有する、1つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラムの形態を取ることができる。
1つ又は複数のコンピュータ可読媒体の任意の組合せを用いることができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体とすることができる。コンピュータ可読記憶媒体は、例えば、これらに限定されるものではないが、電子、磁気、光学、電磁、赤外線、又は半導体のシステム、装置、又はデバイス、或いは上記の任意の適切な組合せとすることができる。コンピュータ可読記憶媒体のよりより具体的な例(非網羅的なリスト)には、以下のもの、すなわち、1つ又は複数の配線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り専用メモリ(EPROM又はフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ(CDROM)、光記憶装置、又は磁気記憶装置、或いはそれらの任意の適切な組合せを含む。本明細書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置、若しくはデバイスによって、又はそれらと接続して使用するための、プログラムを含み、又は格納することができる任意の有形の媒体とすることができる。
コンピュータ可読信号媒体は、例えば、ベースバンド内に又は搬送波の一部分として、それにより具体化されたコンピュータ可読プログラム・コードを有する伝搬データ信号を含むことができる。こうした伝搬信号は、これらに限定されるものではないが、電磁気的、光学的、又はそれらの任意の適切な組合せを含む様々な形態をとることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置、又はデバイスによって、又はそれらと接続して使用するための、プログラムを通信し、伝搬し、又は搬送することができる任意のコンピュータ可読媒体とすることができる。
コンピュータ可読媒体上に具体化されたプログラム・コードは、これらに限定されるものではないが、無線、有線、光ファイバ・ケーブル、RFなど、又はそれらの任意の適切な組合せを含む任意の適切な媒体を用いて伝達することができる。
本開示の態様に関する動作を実行するためのコンピュータ・プログラム・コードは、例えば、Java(商標)、Smalltalk、C++等のようなオブジェクト指向プログラミング言語、及び、「C」プログラミング言語又は同様なプログラミング言語のような、従来の手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組合せで書くことができる。Java及び全てのJavaベースの商標及びロゴは、米国、他の国、又はその両方におけるSun Microsystems,Inc.,社の登録商標である。プログラム・コードは、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立したソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。一番最後のシナリオの場合、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部のコンピュータへの接続がなされる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。
本開示の態様は、本発明の実施形態による方法、装置、(システム)及びコンピュータ・プログラムのフローチャート説明図及び/又はブロック図を参照して、ここに説明される。フローチャート説明図及び/又はブロック図の各ブロック、並びに、フローチャート説明図及び/又はブロック図中のブロックの組合せは、コンピュータ・プログラム命令によって実施できることを理解されるであろう。
これらのコンピュータ・プログラム命令は、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに供給してマシンを形成し、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサにより実行される命令が、フローチャート及び/又はブロック図のブロック又はブロック群において指定される機能/動作を実装するための手段を生成するようすることができる。
コンピュータ可読媒体に格納された命令が、フローチャート及び/又はブロック図のブロック又はブロック群において指定される機能/動作を実装する命令手段を含む製品を生成するように、コンピュータ又は他のプログラム可能なデータ処理装置に特定の方法で機能するように命令することが可能なこれらのコンピュータ・プログラム命令を、コンピュータ可読メモリに格納することもできる。
コンピュータ又は他のプログラム可能な装置上で実行する命令が、フローチャート及び/又はブロック図のブロック又はブロック群において指定される機能/動作を実装するためのステップを提供するように、コンピュータ・プログラム命令をコンピュータ又は他のプログラム可能データ処理装置にロードし、一連の操作ステップをコンピュータ又は他のプログラム可能装置上で実行させて、コンピュータに実装されるプロセスを生成することもできる。
ここで図を参照し、特に図1及び図2を参照すると、例証的な実施形態を実施することができるデータ処理環境の例示的な略図が与えられる。図1及び図2は単に例示的なものに過ぎず、種々の実施形態を実施することができる環境に対して何らかの制限を主張又は暗示することを意図したものではないことを認識されたい。図示した実施形態には多くの修正を加えることができる。
図1は、例証的な実施形態を実施することができるデータ処理システムのネットワークの図形的表現を示す。ネットワーク・データ処理システム100は、例証的な実施形態を実施することができるコンピュータのネットワークである。ネットワーク・データ処理システム100は、ネットワーク102を含み、これは、ネットワーク・データ処理システム100の内部に共に接続された種々のデバイス及びコンピュータの間の通信リンクを提供する。
図示した例において、サーバ104及びサーバ106は記憶装置108と共にネットワーク102に接続する。さらに、クライアント110、112、及び114がネットワーク104に接続する。クライアント110、112、及び114は、例えば、パーソナル・コンピュータ又はネットワーク・コンピュータとすることができる。図示した例において、サーバ104は、例えば、起動ファイル、オペレーティング・システム・イメージ、及びアプリケーションなどのデータをクライアント110、112、及び114に供給することができる。クライアント110、112、及び114は本例においてはサーバ104に対するクライアントである。ネットワーク・データ処理システム100は、図には示さない付加的なサーバ、クライアント、及び他のデバイスを含むことができる。
図示した例において、ネットワーク・データ処理システム100は、ネットワーク102を有するインターネットであり、これは、相互に通信するための通信制御プロトコル/インターネット・プロトコル(TCP/IP)のプロトコル一式を用いるネットワーク及びゲートウェイの世界的規模の集合を表す。インターネットの中心には、データ及びメッセージを伝送する数千の商用、行政、教育又は他のコンピュータ・システムからなる、主要ノード又はホスト・コンピュータの間の高速データ通信ラインの基乾回線が存在する。もちろん、ネットワーク・データ処理システム100はまた、例えばイントラネット、ローカル・エリア・ネットワーク(LAN)、又は広域ネットワーク(WAN)などの多くの異なるタイプのネットワークとして実施することもできる。図1は例示のためであり、種々の例証的な実施形態に対する構造上の限定を意図したものではない。
次に図2を見ると、本開示の種々の実施形態に対して動作可能な例示的なデータ処理システムのブロック図が示される。この例証的な例において、データ処理システム200は通信ファブリック202を含み、これが、プロセッサ・ユニット204、メモリ206、永続記憶装置208、通信ユニット210、入力/出力(I/O)ユニット212、及びディスプレイ214の間の通信をもたらす。
プロセッサ・ユニット204は、メモリ206にロードすることができるソフトウェアの命令を実行するように働く。プロセッサ・ユニット204は、特定の実施に応じて、1つ又は複数のプロセッサの組とすることができ、又はマルチ・プロセッサ・コアとすることができる。さらにプロセッサ・ユニット204は、主プロセッサが副プロセッサと共に単一チップ内に存在する1つ又は複数の異種プロセッサ・システムを用いて実施することができる。別の例証的な例として、プロセッサ・ユニット204は、同じタイプの複数のプロセッサを含んだ対称型マルチ・プロセッサ・システムとすることができる。
メモリ206及び永続記憶装置208は記憶装置216の例である。記憶装置は、例えば、制限無しに、データ、関数型のプログラム・コード、及び/又は他の適切な情報などの情報を、一時的に又は永続的にストアすることができる、任意のハードウェア要素である。これらの例においてメモリ206は、例えば、ランダム・アクセス・メモリ又は任意の他の適切な揮発又は不揮発記憶装置とすることができる。永続記憶装置208は、具体的な実施に応じて種々の形態を取ることができる。例えば、永続記憶装置208は1つ又は複数のコンポーネント又はデバイスを含むことができる。例えば、永続記憶装置208はハード・ドライブ、フラッシュ・メモリ、書換え可能光ディスク、書換え可能磁気テープ、又はそれらのある組合せとすることができる。永続記憶装置208によって用いる媒体はまた取り外し可能とすることができる。例えば、取り外し可能ハード・ドライブを永続記憶装置208用に用いることができる。
これらの例において通信ユニット210は、他のデータ処理システム又はデバイスとの通信をもたらす。これらの例において通信ユニット210は、ネットワーク・インタフェース・カードとする。通信ユニット210は、物理的通信リンク及び無線通信リンクのいずれか又は両方の使用による通信をもたらす。
入力/出力ユニット212は、データ処理システム200に接続することができる他のデバイスとのデータの入力及び出力を可能にする。例えば、入力/出力ユニット212は、キーボード、マウス、及び/又は何らかの他の適切な入力デバイスによるユーザ入力に関する接続をもたらすことができる。さらに、入力/出力ユニット212は、出力をプリンタに送ることができる。ディスプレイ214は、ユーザに情報を表示する機構を与える。
オペレーティング・システム、アプリケーション及び/又はプログラムに関する命令は、通信ファブリック202を通じてプロセッサ・ユニット204と通信する記憶装置216内に配置することができる。これらの例証的な例において、命令は永続記憶装置208上の関数形式とする。これらの命令は、プロセッサ・ユニット204による実行のためにメモリ206にロードすることができる。異なる実施形態の方法は、メモリ206のようなメモリ内に配置することができるコンピュータ実施の命令を用いてプロセッサ・ユニット204により実行することができる。
これらの命令は、プログラム・コード、コンピュータ使用可能プログラム・コード、コンピュータ実行可能命令、又はコンピュータ可読プログラム・コードと呼ばれ、これはプロセッサ・ユニット204内のプロセッサによって読まれて実行されることができる。異なる実施形態におけるプログラム・コードは、例えばメモリ206又は永続記憶装置208のような異なる物理的又は有形のコンピュータ可読媒体上に具体化することができる。
プログラム・コード218は、選択的に取り外し可能なコンピュータ可読媒体220上に関数形式で配置され、プロセッサ・ユニット204による実行のためにデータ処理システム200にロード又は転送することができる。プログラム・コード218及びコンピュータ可読媒体220は、これらの例においてはコンピュータ・プログラム222を形成する。一例において、コンピュータ可読媒体220は、例えば、永続記憶装置の一部分であるドライブ又は他のデバイス内に挿入又は配置され、例えば永続記憶装置208の一部分であるハード・ドライブのような記憶装置上への転送のための光又は磁気ディスクなどの有形形態にすることができる。有形形態において、コンピュータ可読媒体220はまた、データ処理システム200に接続されたハード・ドライブ、サム・ドライブ(thumb drive)、又はフラッシュ・メモリなどの永続記憶装置の記憶媒体の形態を取ることができる。コンピュータ可読媒体220の有形形態はまた、コンピュータ書き込み可能記憶媒体とも呼ばれる。ある場合には、コンピュータ可読媒体220は取り外し可能でなくても良い。
代替的に、プログラム・コード218は、コンピュータ可読媒体220から、通信ユニット210への通信リンクを通じて及び/又は入力/出力ユニット212への接続により、データ処理システム200へ転送することができる。通信リンク及び/又は接続は、例証的な実施例においては物理的又は無線とすることができる。コンピュータ可読媒体はまた、プログラム・コードを含んだ通信リンク又は無線伝送のような無形媒体の形態を取ることができる。
幾つかの例証的な実施形態において、プログラム・コード218は、データ処理システム200内での使用のために、別のデバイス又はデータ処理システムからネットワークを介して永続記憶装置208にダウンロードすることができる。例えば、サーバ・データ処理システム内のコンピュータ可読記憶媒体内にストアされたプログラム・コードを、ネットワークを介してサーバからデータ処理システム200にダウンロードすることができる。プログラム・コード218を供給するデータ処理システムは、サーバ・コンピュータ、クライアント・コンピュータ、又はプログラム・コード218をストアし及び伝送することができる何れかの他のデバイスとすることができる。
一例として図2のデータ処理システム200を用いる例証的な実施形態によれば、プロセッサ・ユニット204は、複合リソース文書のためのデジタル署名を作成するためのコンピュータ実施の方法を実行し、通信ユニット210、記憶装置216又は入力/出力ユニット212を含むソースからの少なくとも1つのリソースを含んだ複合リソース文書を受け取る。プロセッサ・ユニット204は、複合リソース文書内の全てのリソースをリストアップした最新のマニフェスト・リソースを取得し、最新のマニフェスト・リソース内のリソースのリストから取りさるべきゼロ、1つ又は複数のリソースを指示して、署名されるべき識別されたリソースの生成署名参照リストを作成する。プロセッサ・ユニット204は、生成署名参照リスト内の識別されたリソースを用いてハッシュ・トークンを生成して署名ハッシュ・トークンを形成し、秘密鍵を用いて署名ハッシュ・トークンを暗号化する。
プロセッサ・ユニット204は、さらにコンピュータ実施の方法を実行して複合リソース文書のデジタル署名を確認する。プロセッサ・ユニット204は、デジタル署名を有する1つ又は複数のリソースを含む複合リソース文書を、通信ユニット210、記憶装置216又は入力/出力ユニット212を含むソースから受け取る。プロセッサ・ユニット204は、複合リソース文書内の全てのリソースをリストアップした最新のマニフェスト・リソースを取得する。プロセッサ・ユニット204は、デジタル署名内の生成署名参照リスト内の識別されたリソースを用いて生成ハッシュ・トークンを形成し、取得した復号鍵を用いてデジタル署名内に含まれる暗号化ハッシュ・トークンを復号して署名ハッシュ・トークンを形成する。プロセッサ・ユニット204は、生成ハッシュ・トークンと署名ハッシュ・トークンとの少なくとも比較に応答して、署名正当性結果を生成する。
代替的な実施形態において、コンピュータ実施の方法を含む図2のプログラム・コード218はコンピュータ・プログラム222としてコンピュータ可読媒体220内にストアすることができる。別の例証的な実施形態において、複合リソース文書にデジタル署名する方法は、通信ファブリックと、通信ファブリックに接続され、コンピュータ実行可能プログラム・コードを含むメモリと、通信ファブリックに接続された通信ユニットと、通信ファブリックに接続された入力/出力ユニットと、通信ファブリックに接続されたディスプレイと、通信ファブリックに接続されたプロセッサ・ユニットとを備えた装置内で実施することができる。装置のプロセッサ・ユニットはコンピュータ実行可能プログラム・コードを実行して装置に対して方法を実行するように命令する。
図5を参照すると、本開示の一実施形態による複合文書システムのブロック図が示される。複合文書システム500は、図2のデータ処理システム200のようなシステムに典型的な下層のオペレーティング・システム・サービスのサポートを含む一組のコンポーネントの一例である。
複合文書システム500は、拡張署名ジェネレータ502、拡張署名メタデータ504、マニフェスト・リソース506、URIリゾルバ508、オブジェクト要素510及び複合文書構造体512を含む多数の相互に関係するコンポーネントを含む。
拡張署名ジェネレータ502は、XML命令文を処理する機能を提供して、用いられる適用可能なXML標準に適合するデジタル署名を生成する。署名ジェネレータは拡張されてURIリゾルバ508を含み、これがデジタル署名の作成中に必要なリソースを検索する。URIリゾルバ508は、共通リソース識別子を用いて複合文書内に含まれる特定のリソースを取得する。URIは本質的に参照リソースを検索する。署名ジェネレータと共にリゾルバを含めることにより、必要なリソース・エントリが通常の市販のXML署名プロセッサにより検出できるようになり、リソースは、ローカルに複合リソース文書内で、又は遠隔にウェブ・サーバ上で検索される。デジタル信号ライブラリ関数の呼び出し元は、URIリゾルバをデジタル信号ライブラリに供給する。URIリゾルバは、典型的には、ジャバ(Java)のようなプログラミング言語(によって供給される)の一部分である。
拡張署名メタデータ504は、署名特性要素として含めることができる付加的な項目を含む。この付加的な項目は、エンド・ユーザのロケール記述子、ロケール・データ及び署名時間、並びにUTCデータ及び署名時間を含む。
マニフェスト・リソース506は、複合リソース文書内に含まれる全てのリソースのリストを含む。典型的には、複合リソース文書のプロセッサは、複合リソース文書にリソースが加えられるか又はそれから削除されるときはいつでも、マニフェスト・リソース506を更新する。しかし、本開示の目的のためには、デジタル署名を生成する時点及びデジタル署名を確認する時点において、マニフェスト・リソース506が複合リソース文書内のリソースを反映することだけが必要である。オブジェクト要素510は、複合文書の署名要素内の作者によって設計された特別のコンテンツを含む1つ又は複数の要素を含んだ一組の要素である。例示的な実施形態において、オブジェクト要素510は、署名された情報構造体内に生成される参照要素のリストから取り去るべきリソースを指示するリソース記述子のリストを宣言する特別に識別されるXML属性を含む。
複合文書構造体512は、対話型ウェブ文書書式を表す複合リソース文書を含む要素の相対的位置に関する論理構造を定義する。典型的な要素はヘッダ、例えば、MIME型識別子、ウィザード・ページのリソース、イメージ、フォーム・ページ、データ・インスタンス、添付書類書式モデル、対話制御及びマニフェストなどを含む。図6は複合文書構造体の一例を示す。
図6を参照すると、本開示の一実施形態による、モノリシックな対話型文書から複合文書の書式への論理的移行のブロック図が示される。構造体600は時間と共に展開する論理的移行を表す。移行は処理中に起こる変換を示すのではなく、むしろこの表示は異なるモデルの類似点と相違点を示す。図中、Wはウィザード・ページを表し、Fはフォーム・ページを表し、Dはデータ・インスタンスを表し、Mはフォームのモデルを表し、そしてICは対話コントローラを表す。
構造体602は、モノリシック・モデルを用いて文書を単一のXMLファイル書式として表す。構造体604は、構造体602のリソース分解図に、構造体602内の対話型ユーザ・インタフェース定義を含んだウィザード・ページ及びフォーム・ページのリソースの間の管理移行を補助するための随意の対話コントローラを加えたものを表す。
構造体606は、対話型文書に必要な全てのリソースを含む圧縮アーカイブとしてオープン文書書式(ODF)パッケージング書式を用いた、複合リソース文書書式の圧縮アーカイブ書式を表す。構造体606の文書書式は、構造体604及びそれ故に構造体602の種々のコンポーネントを別個のリソースとして内部に含む。構造体606はまた、MIME型608情報要素及びマニフェスト610リソースを含む。
圧縮アーカイブ書式には、リソース及びディレクトリの付加、削除及び変更を許可し、そしてもちろんリソースのコンテンツ及びディレクトリ・リストを取得する機能を許可するアプリケーション・プログラミング・インタフェースを介してアクセスすることができる。通常、それらのリソース及びディレクトリの付加、削除及び変更はマニフェスト610リソースのコンテンツ内に反映される。
図7を参照すると、本開示の実施形態による、複合文書、ウェブ上で利用可能な複合文書を作成するRESTサービス、ウェブ・アプリケーション層、及びエンド・ユーザ対話層の間の関係のブロック図が示される。例証的な一実施形態において、ウェブ・ベースでのエンド・ユーザの複合文書との対話の許可には、文書に対して表現状態転送(REST)アーキテクチャ・サービスのフロント・エンドが用いられる。このサービスは、文書テンプレートをコピーして協同ビジネス・プロセスのインスタンスの中心的なアーチファクトにすることを可能にする。ビジネス・プロセスを通して全体の文書が伝送されるのではなく、インスタンス化された文書のRESTインタフェースへのアクセス制御のトークンがビジネス・プロセス内を送られる。
関係700は、ビジネス・プロセス702の継続期間に適用され、アプリケーション・クライアント層704と、アプリケーション・サーバ層706、文書対話層708、及び複合ウェブ・リソース層との関連を与える。文書対話層708は、論理的に解凍された複合リソース文書712と対話するための複合リソース文書プロセッサ、RESTインタフェース714を提供する。RESTインタフェース714の2つの端点は、複合リソース文書内に指定されたXMLデジタル署名を生成し、複合リソース文書内の指定されたXMLデジタル署名を確認する機能を提供する。複合リソース文書プロセッサ、RESTインタフェース714は、論理的に解凍された複合リソース文書712と対話してそれらを修正するためのアクセスを、サーバ716の論理層及びクライアント718の論理層の両方に与える。
図8を参照すると、本開示による、複合リソース文書のコンポーネントに関連するXML署名の論理位置のブロック図が示される。例示的な実施には、アパッチ(Apache)XML署名ライブラリ(アパッチは、アパッチ・ソフトウェア・ファウンデーションの登録商標である)が用いられるが、実施にはジャバ(Java)に組み込まれたXML署名機能を用いることもできる。例示的な実施形態における複合リソース文書802に関する論理関係800は、URIリゾルバをXML署名ジェネレータに供給して、署名ジェネレータが複合リソース文書のリソースを検出できるようにする。複合リソース文書802は、ロゴ804、並びに、データ・インスタンス810及びデータ・インスタンス812を伴うフォーム・ページ806及びフォーム・ページ808を備える。データ・インスタンス812はさらにXML署名814含む。
XML署名814を生成する前に、署名のマークアップがXFormインスタンスのXMLデータ内に以下の形で現れる。
Figure 0005783630
SignedInfo要素内において、XML署名は参照要素を用いて署名又は確認するための1つ又は複数のリソースをリストアップすることができる。リソースはURIによって指示され、これは例示的な実施においては本開示のURIリゾルバによって分解される。論理関係800は、複合リソース文書が何処にストアされているかに関わらず、データ層内でのXML署名814の論理位置、並びに、複合リソース文書802内の相対的参照リソースに対するXML署名814の機能を示す。一実施においてはRESTサービス内のリソース取得端点を用いることができるが、USIリゾルバを用いる例示的な実施では、XML署名機能がRESTインタフェース714の後方に、複合リソース文書プロセッサ714(RESTインタフェースの実施)の一部分として存在するので、複合リソース文書に直接アクセスする。
XML署名ジェネレータ自体は、次に、参照要素内の変換要素を用いて各々のリソースをさらにフィルタリングする機能を提供する。最終的にリソースのハッシュ(ダイジェスト)が計算される。署名生成中、ハッシュはDigestValue要素内にストアされる。確認中、計算されたハッシュがDigestValueと比較されてリソースが修正されているか(これは署名を無効化することになる)どうかが判断される。署名を生成しているときに、ひとたび各々のリソースのDigestValueが計算され参照要素内にストアされると、SignedInfo要素(上を参照されたい)を含む全体のハッシュが計算され、署名者の秘密鍵を用いて暗号化され、ベース64でコード化され、SignatureValue要素内にストアされる。署名確認中、DigestValueの値が、確認時におけるリソースの計算されたハッシュとの等値性についてチェックされ、参照要素によって示される各々のリソースに対して等値が実現された場合に、SignedInfoのハッシュが取得され、署名生成時にSignatureValue要素内にストアされ、ベース64でデコードされ、復号されたハッシュ値との等値性に関して比較される。いずれかのDigestValue又はSignatureValueの確認中に計算されたハッシュとの非等値性により、無効結果が生成される。そうでない場合には、コア確認は成功結果を報告し、アプリケーションには、鍵の有効期限、鍵の取消し、発行者の正当性、及び信頼できる鍵リスト内のメンバーシップなどの2次チェックを自由に行える。
慣行のURIリゾルバに加えて、本開示の方法は、エンド・ユーザの秘密鍵材料を必要とするSignatureValueの最終的暗号化からDigestValue計算を分離することによって、XML署名ジェネレータの標準的な挙動に過負荷をかける。XML署名ジェネレータは、本開示の方法においてはサーバ上にRESTサービス実施714の一部分として配置される。本開示の方法は、ダミー秘密鍵を与えてXML署名ジェネレータがSignatureValueを生成できるようにする。生成されたSignedInfoはクライアント・マシーンに返される。SignedInfoはハッシュ化され、そのハッシュはユーザの秘密鍵を用いて暗号化される。本開示の方法は、RESTインタフェース714内に別個のREST端点を設けて、最終的な正しいSignatureValueをデジタル署名内に設定できるようにする。署名確認は、署名者の公開鍵を必要とするだけであるので、同様の過負荷を必要としない。
標準的なXML署名システムは複数のリソースに署名を与え、複合文書上の基本的なデジタル署名を作成するのに用いられる。しかし、複合文書上のデジタル署名は安全にするためのサブトラクション・フィルター機構を必要とする。
デフォルト設定を用いると、本開示の方法の例示的な実施は、複合文書のためのデジタル署名生成ステップに、指定されたデジタル署名のSignedInfoに関する参照要素のリストを作成する前処理ステップで過負荷をかける。一実施例において、参照リストは以下のように作成することができる。
Figure 0005783630
Rに関する参照の事前存在に対する条件付きテスト(上記の5番目のテキスト行)は、デジタル署名マークアップが、複合リソース文書内の特定のリソースについての変換を表明することを可能にする。デジタル署名マークアップによって特に参照されなかったいずれのリソースもデジタル署名マークアップに加えられ、それゆえに全体として署名される。従ってデフォルト設定においては、SignedInfoは、既存の参照及びそれぞれの可能な変換によって指示されるものを除いて全体の複合リソース文書に署名するように拡大される(これは個々のリソースのセキュリティのためのサブトラクション変換であると考えられる)。
例示的な一実施形態において、content.xmlはページ・ナビゲーション及び他の対話を管理することに関連する制御構造体のみを含み、それゆえに例示的なプロトタイプは、content.xmlのリソースに自動的には署名しないが、しかしデジタル署名マークアップの作者はcontent.xmlのリソース又はその任意の部分に、URI=”content.xml”を伴う参照を付け加えることによって署名することができる。デジタル署名マークアップを含むリソースはまた、この例示的な実施形態により参照要素が生成されるリソースから削除される。このリソースは、デジタル署名を生成する一環として変更する必要があり、それ故に、このリソースは特に「包まれた」署名として取り扱う必要がある。
複合リソース文書内の1つのリソースはマニフェスト610である。従って、署名後に何れかのリソースが複合リソース文書に加えられ又はそれから削除される場合には、マニフェスト610は変更され、その結果マニフェスト610を保護する参照のDigestValueは適合しなくなり、これにより無効の署名正当性結果が生成されることになる。実際の生成された署名は、署名時に存在したリソースに、(署名済み)参照要素内で表明された何れかの変換によって許可された以外の変更が何もなされていないことを保証する。参照要素が署名されるので、リソースに対して許可される変更は、署名生成時に存在する参照変換においてデジタル署名マークアップの作者によって表明されたものだけである。
XML署名標準は、作者がオブジェクト要素を用いて署名要素内に特別なコンテンツを含めることを可能にする。例示的な設計には、例示的な実施のデフォルト動作を無効にする機能が用いられる。実施例において、特別に認識されたXML属性を持つオブジェクト要素は、SignedInfo内に生成される参照要素のリストから取り去るべきリソースを指示するリソース記述子のリストを宣言する。リソース記述子は以下に示すように、ワイルドカード検索パターンを許可する。
Figure 0005783630
所与のリソース記述子と一致するリソースのサブトラクションを可能にすることにより、本開示の機構は、デジタル署名マークアップの作者が、エンド・ユーザが署名を付けられた後の複合リソース文書に特定のリソースを加えるか又はそれから削除できるようにすることを可能にする。
例示的な設計において、オブジエクトは、SignedInfoの参照要素のリストに自動的に加えられ、デジタル署名により保護される。特別のオブジェクトを含めることにより、本方法はマニフェスト610リソースに関する参照にサブトラクション変換を自動的に加えるようになり、デジタル署名が生成されるときにマニフェスト610リソースに対して生成されるハッシュ値を無効にせずに、リソース記述子と一致するリソースを付加又は削除することが可能になる。
さらに、例示的な設計は、署名生成前にデジタル署名マークアップに付加的な情報を自動的に書き込み署名する。別のオブジェクト要素が、選択されたSignatureProperties要素内に基本署名メタデータを書き込むために加えられる。書き込まれた特定のメタデータ項目は、典型的には、エンド・ユーザ(署名者)ロケール記述子、署名のローカル日時、及び署名時のUTCデータを含む。このメタデータ・オブジェクトに対する参照は自動的にSignedInfoに加えられてメタデータをデジタル署名によって保護する。例証的な実施形態はまた、KeyInfo要素を、X509SubjectName及びX509Certificate要素を含むX509Dataによって完全にし、KeyInfo要素に対する参照はまたSignedInfoに加えられる。署名メタデータ及びKeyInfoコンテンツは、XML最新電子署名(XAdES)によって指定される基本的セキュリティ要件に適合するための補助となる。さらに、例証的な実施形態の設計はXML署名に基づくので、例えば、署名に対する認証済みタイムスタンプの付加などの(XAdES)要件は本来的にサポートされる。
図9を参照すると、本開示によるマニフェストのコード断片の例が示される。署名確認に関して、例示的実施形態の設計の重要な態様は、ODFパッケージング上の複合リソース文書書式に基礎を置くものであり、これは複合リソース文書内のリソースのうちの1つが、全てのリソースをリストアップするマニフェストであることを意味する。マニフェスト900は、複合リソース文書内の全てのリソースのリストを与える。マニフェスト900内のリソース、例えば、loan1.xhtml、loan2.xhtml及びloan3.xhtmlは、データ・リソースloanInstance.xml内に配置されている情報を収集するための段階的なユーザ・インタフェースを提供する。gen_default.css及びformat.jsのような他のファイルは、複合リソース文書のユーザ・インタフェース外観及びランタイム動作に寄与する。
図10を参照すると、本開示の種々の実施形態による、複合リソース文書テンプレート内のXMLデータのコード断片の例が示される。この実施例において、ローンを探すユーザのために、文書テンプレートが初めにインスタンス化されて特定のビジネス・プロセスを起動するとき、loanInstance.xmlの初期コンテンツは図10のコード断片に示すようになる。
コード断片1000において、<ds:Signature>要素、要素1002の初期設定は、なにも<Reference>要素を含まない。参照要素が存在しない理由は、本開示の設計がXML署名参照リストにサブトラクション・セマンティックを与えているからであり、このことはマニフェスト内にリストアップされている参照は署名生成時に自動的に含まれることになり、確認時に自動的にチェックされることになることを意味する。
図11を参照すると、本発明の種々の実施形態による、記入された図10の複合リソース文書内のXMLデータのコード断片の例が示される。ひとたびユーザがloan*.xhtmlを用いてデータ記入体験を完了すると、データはコード断片1100のように見えることになる。ここでデータ値が以前に空であったテンプレート・フィールド1102に入る。
図12を参照すると、本発明の種々の実施形態による、複合リソース文書署名定義を含むコード断片の例が示される。コード断片1200は、一組の参照、マニフェスト及びデジタル署名を含む、図9、図10及び図11からの情報を用いて完成した文書を表す。
ユーザが、図10の要素1002内に準備されている署名動作を呼び出すとき、本開示のプロセスは、loanInstance.xml、例えば要素1202に関する同じ文書参照を加えるが、ここで、URI=“”は生成中の署名がそれ自体から削除されることを可能にし、参照1204、参照1206及び参照1208などのマニフェスト中にリストアップされている全ての他のリソースに関する参照要素を加える。manifest.xmlファイル、マニフェスト1210も同様に加えられる。
要素1212のデジタル署名値が同様に示される。要素1212は、本開示のプロセスが参照要素を生成した後で署名値要素のコンテンツを生成するコア・デジタル署名生成動作の前の複合リソース文書定義のsigned info部分のコンテンツを示す。
署名確認動作は、manifest.xmlに対する参照を確認することによって、望ましくないファイルの付加又は削除が行われていないことを保証する。マニフェストと実際のアーカイブ・コンテンツとの間に不一致があるときは、ODFパッケージ文書プロセッサは文書をロードしないことが想定されている。代替の実施では、署名確認時における参照及びマニフェスト・パリティに関して簡単にチェックすることができる。
別の実施例において、2人又はそれ以上の交付金申請者がそれぞれの個人情報を記入し、履歴書のコピーを添付し、文書にデジタル署名し、完成のためにワークフロー・システムに文書を次の申込者に送らせることが予想される交付金申請が示される。第1のユーザにより作成されるデジタル署名は、他の申請者に対応するデータ・ファイル・サブツリー及び他の申請者により作成された添付ファイルを取り去る必要がある。2つの前述の例外を除いて、ユーザ・インタフェース、ユーザ体験、又は署名するユーザのデータ若しくは添付書類を記述する複合リソース文書内の全ての他のファイル、それゆえに全てが署名されなければならない。
ファイルを添付する任意の機能は、より多くのXHTMLページ、CSSファイル、JSファイルなどを複合リソース文書内に配置することを可能にする。さらに、content.xmlファイルは“which xhtml page should beshown first”のような制御構造部を含む故にcontent.xmlファイルが削除されるので、いずれかの新しく加えられたファイルは、第1の署名者が署名したものに関して誤った要求をし得る新しい別のユーザ体験を加える可能性がある。誤った要求を行う可能性は、XML署名の参照リストのレベルに至るまでサブトラクション・フィルタリングする方針をとることによって防止される。
図13を参照すると、本開示の種々の実施形態による、参照リストの生成を示す複合リソース文書署名定義のコード断片の例が示される。本開示の種々の実施形態により提供されるサブトラクション・フィルタリングのゼロの場合は、従来技術と比較して重要な動作変化である。デフォルトにより、XML署名はアプリケーション設計者が参照要素を用いて署名されるべきリソースをリストアップすることを要求する。複合リソース文書において、アプリケーション設計者はテンプレートを作成し、典型的にはデジタル署名機能を含めるように決定する。しかし、実行時において、エンド・ユーザは作成されたテンプレートのインスタンスを修正してビジネス・プロセスを推進する必要がある。予想されるエンド・ユーザの動作は新しいファイルを複合リソース文書に添付する。従って、署名生成の実行時に署名する必要のあるリソースの全てをアプリケーション設計時に参照要素としてリストアップすることは不可能である。その代りに、複合リソース文書プロセッサの拡張署名ジェネレータが、デジタル署名が生成される時に参照要素のリストを作成する必要がある。
従って、複合リソース文書内のマニフェストを含む各々のリソースに関する参照要素ジェネレータを生成するステップで署名動作を拡張することが重要である。これは、署名から複合リソース文書内のゼロ個のリソースを取り去る場合である。図10、図11及び図12のコード断片は、ゼロ個のファイルが取り去られるこの場合の例を示した。しかし、テキストだけは、署名生成プロセスの直前及び完全署名生成プロセスの直後のマークアップを示した。以前の例は、参照リストを生成するデジタル署名拡張後、及びコア・デジタル署名生成の前の時点での即時のマークアップを示さなかった。図13は付加的なマークアップの実例をコード断片1300として与える。要素1302は署名要素を定義し、要素1304は、本開示の方法の種々の実施形態により自動的に生成される参照要素の1つを定義する。
要素1304を含む一組の参照要素がSignedInfo内に生成され、そのおのおのは空のDigestValue要素を有する。同様にSignatureValueも空である。前に説明した署名拡張の後、コア署名生成の前に、例えば、署名時間及び場所などの基本署名プロパティ並びに署名に対する別の参照を含むようにds:Objectを加えるステップを含むさらに別のステップを行うことができる。別の例においては、ds:KeyInfoを加えてデジタル署名証明書及び署名者のサブジェクト名をストアすることになる。同様にKeyInfoに署名するのに、さらに別の参照を自動的に加えることができる。最終的にコア・デジタル署名ジェネレータが呼び出されて、DigestValueコンテンツ及びSignatureValueコンテンツが生成される。拡張署名生成の最終結果の一例を図12のコード断片1200のマークアップ例の内部に示す
図14を参照すると、本開示に種々の実施形態による、複数の署名者を有し、変換されるリソースを指定する手段を示す複合リソース文書定義のコード断片の例が示される。図13に関して上で説明したように、XML署名参照リストを、デフォルトではゼロ個の要素を取り去るサブトラクション・フィルターとして扱う際の値がある。例えば、参照リストは、事前にアプリケーションの設計者(複合リソース文書のテンプレートの作成者)によってではなく、署名動作の拡張として自動的に生成される。従って、本開示の機能は、文書が複合リソース文書であるとき、特にエンド・ユーザが、元の文書テンプレート内で利用できるよりも多くのリソースを文書に加えることができるとき、文書全体に署名する方法の実施を可能にする。
さらに、本開示の方法は、参照要素が既に与えられているものには何にでも自動的に生成された参照を加え、アプリケーション設計者、即ち複合リソース文書のテンプレートの作成者が、本開示の方法により生成されるものに加えて署名情報を選ぶことができるようにする。例えば、アプリケーション論理は、署名内のds:Object内に情報を生成することができ、署名は、ds:Objectに署名するに関連して設定することができる。
最も重要なことには、本開示のプロセスは、自動的に生成された参照要素をSignedInfo内の参照要素リストに併合し、各々のリソースがSignedInfo内に予め存在する参照を未だ有さない場合にだけ、そのリソースに関する参照を効果的に加える。本開示の方法の実施が参照を加えるとき、参照はリソース全体への署名をもたらすので、本開示の方法は、アプリケーション設計者による特定のリソースに適用された任意の変換、又は複合リソース文書プロセッサの代替の態様に対応する。
一実施例において、前に説明した「ローン」申請が署名者−連署者シナリオを満たすように設計される。loanInstance.xmlファイル内のデータがコード断片1400内に表される。第1の署名1402並びに第2の署名1404が与えられる。第2の署名者の署名1404は以前の実施例の署名と同一の形態であるが、第1の署名1402は既に、それ自体(包まれた署名)だけでなく第2の署名者の署名もまた取り去るURI=””に対する参照を含み、第2の署名は第1の署名が付けられた後で生成される必要がある。従って、本開示の方法が第1の署名1402に関する参照要素を生成するとき、URI=””参照は、既に存在するために生成されない。
図15を参照すると、本開示の種々の実施形態による、参照生成を制御するためのパターンを指定するコード断片の一例が示される。前の例のコード断片における構成要素は、サブトラクション・フィルターの第1のステップを記述し、そのステップにおいては、明示的にリストアップされたものだけに署名するのではなく、利用可能な全てのものに署名するデフォルトのコンテキストが用いられる。複合リソース文書レベルで十分に機能付与されたサブトラクション・フィルタリングにより、アプリケーション設計者は、本開示の方法を用いるときにどの付加的参照が生成されてはならないかを、パターンによって指定することができる。
以前の実施例において、ワイルドカード正規表現シンタックスが用いられたが、XPath表現を用いることもできる。この実施例においては、署名が付けられて、複合リソース文書内へのファイルのその後の付加が、attchmentsディレクトリのような特定のディレクトリにおいてのみ可能になる。コード断片1500のマークアップは、要素1502が、リソース・サブトラクションの明示的なパターンを指定する一例を与え、そのパターンは本実施例においてはユーザがリソース添付ファイルの付加又は削除を許可された「添付」サブディレクトリ内の全てのリソースに適合する。
図16を参照すると、本開示の種々の実施形態による、生成署名参照リストから特定のリソースをフィルタリングし、それにより、図15のオブジェクトを用いて特定のリソースに関する参照生成を抑制するコード断片の一例が示される。本開示の方法は、図15のコード断片1502内で定義されたオブジェクトに応答して、参照を特別のds:Objectに加え、その結果署名がフィルターに署名し、manifest.xml参照を修正して記述子に適合するファイル・エントリ要素を取り去り、与えられた記述子に適合するリソースに関する参照の生成を抑制する。
コード断片1600を用いる別の実施例は、要素1602のリソース記述子によって、styleサブディレクトリからファイルをフィルタリングする。
生成されたURI=””参照要素は、要素1604、即ち署名のサブトラクション変換及びリソース記述子オブジェクトに関するユニオンを収容する。style/で始まるURI属性を有する参照要素は、リスト内に現れない。manifest.xmlに対する参照要素1606は、記述子に適合するファイル・エントリ要素を削除するサブトラクション・フィルターを収容する。
図17を参照すると、本開示による、複合リソースのためのデジタル署名を生成する方法のフローチャートが示される。方法1700は、図5の複合文書システム500を用いる方法の一例である。
方法1700は開始(ステップ1702)して、少なくとも1つのリソースを含む複合リソース文書を受け取る(ステップ1704)。方法1700は、複合リソース文書内の全てのリソースをリストアップする最新のマニフェスト・リソースを取得する(ステップ1706)。方法1700は、最新のマニフェスト・リソース内のリソースのリストから取り去るべきゼロ、1つ又は複数のリソースを指示して、署名されるべき識別されたリソースの生成署名参照リストを作成する(ステップ1708)。次に署名されるリソースを参照し、除去されるリソースを含まないことを確認する。例示的な一実施形態において、生成署名参照リストを生成することは、オブジェクトを示す参照を含めることをさらに含み、ここでオブジェクトは、参照リストを作成するためのリソース・リストから取り去られるリソースのリストを示すリソース記述のリストを宣言する。
方法1700は生成署名参照リスト内の識別されたリソースを用いてハッシュ・トークンを生成し、署名ハッシュ・トークンを形成する(ステップ1710)。例示的な実施形態において、ハッシュ・トークンの生成は、参照リスト内の1つ又は複数のリソースを選択して、選択された変換済みリソースを形成し、参照リストからの残りのリソースは未変換リソースを形成するようにすることと、選択された変換済みリソースと組み合せた未変換リソースを用いて、デジタル署名変換を選択された変換済みリソースに適用してハッシュ・トークンを生成することとを含む。特に、現行のW3CXML署名標準に適合する例示的な実施形態は、そのURI属性が参照リスト内のリソースを指示する既存の参照要素に関する署名SignedInfo要素を分析し、そしてこの例示的な実施形態は、既存の参照要素の何れとも対応しない参照リスト・リソースに関する参照要素のみを生成する。従って、各々の既存の参照要素は、変換要素を含む可能性があり、そうでなければステップ1708においてリソースに対して生成されることになる参照要素を無効にし、そしてこの方法から結果として得られる参照要素のリストがステップ1710において署名ハッシュ・トークンを生成するのに用いられる。
例示的な実施形態において、署名ハッシュ・トークンを生成することは、URIリゾルバを用いて参照リスト内の1つ又は複数のリソースのコンテンツを取得することと、参照リスト内の少なくとも1つのリソースのダイジェスト値を用いて署名ハッシュ・トークンを生成することとのうちの少なくとも1つをさらに含むことができる。特に、現行のW3CXML署名標準に適合する例示的な実施形態においては、署名値ハッシュ・トークンは、参照リスト内の全てのリソースの実際のコンテンツではなく、ダイジェスト値に基づいて計算される。
方法1700は、秘密鍵を用いて署名ハッシュ・トークンを暗号化してデジタル署名を作成し(ステップ1712)、その後終了する(ステップ1714)。
図18を参照すると、本開示による、図17の複合リソースに関するデジタル署名を確認する方法のフローチャートが示される。方法1800は、図5の複合文書システムを用いる方法の一実施例である。
方法1800は開始(ステップ1802)して、デジタル署名を有する1つ又は複数のリソースを含む複合リソース文書を受け取る(ステップ1804)。方法1800は、複合リソース文書内の全てのリソースをリストアップする最新のマニフェスト・リソースを取得する(ステップ1806)。
方法1800は、デジタル署名内の生成署名参照リスト内の識別されたリソースを用いて、生成ハッシュ・トークンを形成する(ステップ1808)。方法1800は、取得した復号鍵を用いてデジタル署名内に含まれる暗号化ハッシュ・トークンを復号し、署名ハッシュ・トークンを形成する(ステップ1810)。生成ハッシュ・トークンと署名ハッシュ・トークンとの少なくとも比較に応答して、方法1800は署名正当性結果を生成し(ステップ1812)、その後終了する(ステップ1814)。
図19を参照すると、本開示による、図18の署名正当性結果を生成する方法のフローチャートが示される。方法1900は、生成リソース・ハッシュ・トークンと、ステップ1810において復号されたデジタル署名ハッシュ・トークンとを比較し、そして図18のステップ1812において署名正当性結果を生成する方法の一実施例である。
方法1900は開始(ステップ1902)して、生成ハッシュ・トークンが署名ハッシュ・トークンに等しいかどうかを判断する(1904)。生成ハッシュ・トークンが署名ハッシュ・トークンに等しいと判断されたとき、「イエス」結果が得られる。生成ハッシュ・トークンが復号された署名ハッシュ・トークンに等しくないと判断されたときは、「ノー」結果が得られる。「ノー」結果が得られるとき、方法1900は無効の署名正当性結果を生成し(ステップ1906)、その後終了する(ステップ1908)。判断は、最新のマニフェスト・リソースからのリソースのリストが、デジタル署名内の生成署名参照リスト内の識別されたリソースのリストに等しくないかどうか判断することをさらに含む。例示的な実施形態において、最新のマニフェスト・リソースからのリソースのリストは、生成署名参照リストを形成するときに取り去られるリソースのリストを指示するリソース記述のリストを宣言するオブジェクトによって示されるリソースが差し引かれた最新のマニフェスト・リソースからのリソースのリストを含む。
ステップ1904において「イエス」の結果が得られるとき、方法1900は復号鍵が有効かどうか判断する(ステップ1910)。復号鍵が有効であるとの判断がなされるとき、「イエス」の結果が得られる。復号鍵が無効であるとの判断がなされるときは「ノー」の結果が得られる。復号鍵が有効であるかどうかの判断は、鍵有効期限テスト、鍵取消しテスト、鍵発行者信用証明テスト、及び信用鍵リスト・テストを含む、ゼロ、1つ又は複数のテストを用いた復号鍵の正当性をテストすることを含む。復号鍵正当性テストの失敗に応答して、無効の署名正当性結果が生成される。
ステップ1910において「イエス」が得られるとき、方法1900は、生成ハッシュ・トークンが署名ハッシュ・トークンに等しいこと及び復号鍵正当性テストに失敗がないことの全体的判断に応答して有効の署名正当性結果を生成し(ステップ1912)、その後終了する(ステップ1908)。この判断は、最新のマニフェスト・リソースからのリソースのリストが、デジタル署名内の生成署名参照リスト内の識別されたリソースのリストに等しいかどうか判断することをさらに含む。例示的な実施形態において、最新のマニフェスト・リソースからのリソースのリストは、生成署名参照リストを形成するときに取り去られるリソースのリストを指示するリソース記述のリストを宣言するオブジェクトによって示されるリソースが差し引かれた最新のマニフェスト・リソースからのリソースのリストを含む。ステップ1910において「ノー」の結果が得られるとき、方法1900は無効の署名正当性結果を生成し(ステップ1906)、その後前と同様に終了する(ステップ1908)。
従って、一実施形態において、複合リソース文書のためのデジタル署名を作成するコンピュータ実施の方法であって、複数のリソースにデジタル署名するための以前の解決策には無かったリソース・サブトラクション・フィルター機能を設けることによって複合リソース文書のためのデジタル署名に高度のセキュリティをもたらす方法を提示する。本開示のコンピュータ実施の方法は、少なくとも1つのリソースを含む複合リソース文書を受け取り、複合リソース文書内の全てのリソースをリストアップする最新のマニフェスト・リソースを取得し、最新のマニフェスト・リソース内のリソースのリストから取り去るべきゼロ、1つ又は複数のリソースを指示して、署名されるべき識別されたリソースの生成署名参照リストを生成し、生成署名参照リスト内の識別されたリソースを用いてハッシュ・トークンを生成して署名ハッシュ・トークンを形成し、秘密鍵を用いて署名ハッシュ・トークンを暗号化する。
ハッシュ・トークンを生成することは、ゼロ、1つ又は複数のリソースに関して以前に指定された参照要素を用いて参照リストを形成することをさらに含むことができ、それにより、以前に指定された参照要素によって指示されるリソースの処理にデジタル署名変換を加える機能が可能になる。
コンピュータ実施の方法の例証的な実施形態は、複合リソース文書のためのデジタル署名を確認する機能をさらに与える。コンピュータ実施の方法はさらに、デジタル署名を有する1つ又は複数のリソースを含む複合リソース文書を受け取り、複合リソース文書内の全てのリソースをリストアップする最新のマニフェスト・リソースを取得し、デジタル署名内の生成署名参照リスト内の識別されたリソースを用いてハッシュ・トークンを生成して生成ハッシュ・トークンを形成し、取得した復号鍵を用いてデジタル署名内に含まれる暗号化ハッシュ・トークンを復号して署名ハッシュ・トークンを形成し、生成ハッシュ・トークンと署名ハッシュ・トークンとの少なくとも比較に応答して署名正当性結果を生成する。
従って、例証的な実施形態は、圧縮アーカイブを用いた、一つの文書内の個々のリソースがデータ記録、添付ファイル、ページ及び付加的な要素を表す、複合リソース文書を開示する。複合リソース文書は単一文書アーキテクチャの利点を保持すると同時に、ページ毎のユーザ体験を与えるのに必要な要素を取得するための全体的アーカイブのXML構文解析を実行する必要性をなくす。ワールドワイド・ウェブ・コンソーシアム(W3C)XML署名によって提供される、リソースに対する複数参照のサポートにより、W3CXML署名を複合リソース文書と共に用いてデジタル署名機能を実施することが可能になる。しかし、サブトラクション・フィルタリング機能は単一のXMLリソースの処理に限定されない。同時に署名されるべき複数リソースのより高レベルの定義に対して、現在W3CXML署名標準は、特に署名SignedInfo要素内の参照要素のリストから得られるリソースのリストをリストアップする機能のみを提供する。
既知の従来技術の解決策は通常、対話型文書のデジタル署名に関して、サブトラクション・フィルタリングが可能であるが性能が不十分な単一XMLファイルとして文書を表すこと、及びより性能が良いがリソース・レベルのサブトラクション・フィルタリングが可能でない複合文書として文書を表すこと、を含む欠陥を有する。
本開示の方法は、複合リソース文書の概念をサブトラクション・フィルタリングと組み合せて、協同ビジネス・プロセス内の複合リソース文書について同じレベルのデジタル署名セキュリティを達成すると同時に、また複合リソース文書によって提供される性能に著しい進歩をもたらす。
図中のフローチャート及びブロック図は、本発明の種々の実施形態によるシステム、方法、及びコンピュータ・プログラムの可能な実施のアーキテクチャ、機能性、及び動作を示す。この点において、フローチャート又はブロック図内の各々のブロックは、モジュール、セグメント、又はコードの部分を表すことができ、これは指定された論理機能を実施する1つ又は複数の命令を含む。また、幾つかの代替的実施において、ブロック内に示された機能は図に示したのとは異なる順序で行われ得ることにも留意されたい。例えば、連続して示した2つのブロックは、実際には、実質的に同時に実行することができ、又はブロックは、関与する機能に応じて、場合により逆の順序で実行することができる。また、ブロック図及び/又はフローチャートの各ブロック、並びに、ブロック図及び/又はフローチャート内のブロックの組合せは、指定された機能及び動作を実行する専用ハードウェアをベースとするシステム、又は専用ハードウェア及びコンピュータ命令の組合せによって実施することができることにも留意されたい。
添付の特許請求の範囲内の全てのミーンズ又はステップ・プラス・ファンクション要素の対応する構造体、材料、動作、及び等価物は、具体的に特許請求された他の特許請求要素と組み合せて機能を実施するための任意の構造体、材料、又は動作を含むことが意図されている。本発明の説明は、例証及び説明の目的で提示したものであり、網羅的であること又は本発明を開示した形態に限定することを意図したものではない。当業者には、本発明の範囲及び趣旨から逸脱することのない多くの修正及び変形が明白となるであろう。実施形態は、本発明の原理及び実際的用途を最も良く説明し、当業者が企図する特定の用途に適した種々の修正を有する種々の実施形態に関して本発明を理解することができるように選び説明した。
本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、又はハードウェア要素とソフトウェア要素の両方を含む実施形態の形をとることができる。好ましい実施形態において、本発明は、それらに限定されないが、ファームウェア、常駐ソフトウェア、マイクロコード、及び当業者が認識することができる他のソフトウェア媒体、を含むソフトウェアにおいて実施される。
本発明は完全に機能するデータ処理システムの状況で説明したが、当業者であれば、本発明の方法は命令のコンピュータ可読媒体の形態及び種々の形態で配布することができること、及び、本発明は配布を実施するのに実際に用いられる特定のタイプの信号支持媒体に関係せずに等しく適用できることに留意することが重要である。コンピュータ可読媒体の例としては、書き込み可能型の媒体、例えばフロッピー・ディスク、ハード・ディスク・ドライブ、RAM、CDROM、DVD−ROM、並びに、伝送型媒体、例えば、デジタル及びアナログ通信リンク、例えば無線周波数及び光波伝送などの伝送形式を用いる有線又は無線通信リンクが挙げられる。コンピュータ可読媒体は、特定のデータ処理システム内で実際に用いるためにデコードされるコード化フォーマットの形態を取ることができる。
プログラム・コードをストアし及び/又は実行するのに適したデータ処理システムは、システム・バスを介してメモリ要素に直接又は間接に結合された少なくとも1つのプロセッサを含むことになる。メモリ要素には、プログラム・コードの実際の実行中に用いられるローカル・メモリ、大容量記憶装置、及び、実行中にコードを大容量記憶装置から読み出す必要のある回数を減らすための、少なくとも幾つかのプログラム・コードの一時的記憶を提供するキャッシュ・メモリを含めることができる。
入力/出力又はI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイスなどを含むが、それらに限定されない)を、直接又は介在するI/Oコントローラを介してシステムに結合することができる。
またネットワーク・アダプタをシステムに結合して、介在するプライベート又はパブリック・ネットワークにより、データ処理システムが他のデータ処理システム又は遠隔プリンタ又は記憶装置に結合できるようにすることができる。モデム、ケーブル・モデム、及びイーサネット・カードは現在利用できるタイプのネットワーク・アダプタのうちの一部に過ぎない。
本発明の説明は、例示及び説明の目的で提示されたものであり、網羅的であること又は開示された形式の発明に限定することを意図するものではない。当業者であれば、多くの修正及び変形が明らかであろう。実施形態は、本発明の原理及び実際の適用を最も良く説明するように、及び、当業者以外であっても、考えられる特定の用途に適合するような様々な実施形態について本発明を理解できるように、選択され、説明されたものである。
100:ネットワーク・データ処理システム
102:ネットワーク
104、106:サーバ
108:記憶装置
110、112、114:クライアント
200:データ処理システム
202:通信ファブリック
204:プロセッサ・ユニット
206:メモリ
208:永続記憶装置
210:通信ユニット
212:入力/出力(I/O)ユニット
214:ディスプレイ
216:記憶デバイス
218:プログラム・コード
220:コンピュータ可読媒体
222:コンピュータ・プログラム
300:ビジネス・プロセ
302、304:コンテンツ・リポジトリ
306:契約テンプレート
308:提案契約
310:履行契約
312、314:協力者
316:認可者
318:インターネット
320:チェック・クレジット・サービス
322:電子資金振替サービス
400:論理層/対話型文書
402:ヒューマン・インタフェース
404:ビジネス論理及び動的確認
406:データ・アクセス及び確認
408:データ・インスタンス
410:セキュリティ、監査能力及び相互運用
412:マルチページXFDL
414:XForms論理ユーザ・インタフェース
416:XFormsモデル
418:XMLスキーマ
420:XML及びXML署名
500:複合文書システム
502:拡張署名ジェネレータ
504:拡張署名メタデータ
506:マニフェスト・リソース
508:URIリゾルバ
510:オブジェクト要素
512:複合文書構造体
600、602、604、606:構造体
608:MIME型
610:マニフェスト
700:関係
702:ビジネス・プロセス
704:アプリケーション・クライアント層
706:アプリケーション・サーバ層
708:文書対話層
710:複合ウェブ・リソース層
712:論理的に解凍された複合リソース文書
714:RESTインタフェース
716:サーバ
718:クライアント
800:論理関係
802:複合リソース文書
804:ロゴ
806、808:フォーム・ページ
810,812:データ・インスタンス
814:XML署名
900、1210:マニフェスト
1000、1100、1200、1300、1400、1500、1600:コード断片
1002、1202、1212、1302,1304、1502、1602、1604、1606:要素
1102:テンプレート・フィールド
1204、1206、1208:参照
1402:第1の署名
1404:第2の署名

Claims (14)

  1. 複合リソース文書のためのデジタル署名を確認するコンピュータ実施の方法であって、
    デジタル署名を有する前記複合リソース文書を受け取るステップであって、前記複合リソース文書は1つ又は複数のリソースを含む、前記受け取るステップと、
    前記複合リソース文書内の全てのリソースをリストアップする最新のマニフェスト・リソースを取得するステップと、
    前記デジタル署名内の生成署名参照リスト内の識別された前記リソースを用いてハッシュ・トークンを生成して生成ハッシュ・トークンを形成するステップと、
    取得した復号鍵を用いて、前記デジタル署名内に含まれる暗号化ハッシュ・トークンを復号して署名ハッシュ・トークンを形成するステップと、
    前記生成ハッシュ・トークンと前記署名ハッシュ・トークンとの少なくとも比較に応答して、署名正当性結果を生成するステップであって、
    前記生成ハッシュ・トークンが前記署名ハッシュ・トークンと等しくないとの判断に応答して無効の署名正当性結果を生成するステップであって、前記判断は、前記最新のマニフェスト・リソースからのリソースのリストが前記デジタル署名内の前記生成署名参照リスト内の識別されたリソースのリストに等しくないかどうかの判断をさらに含む、前記生成するステップと、
    鍵有効期限テスト、鍵取消しテスト、鍵発行者信用証明テスト及び信用鍵リスト・テストを含むゼロ、1つ又は複数のテストを用いて取得された復号鍵の正当性をテストするステップと
    を含む、前記署名正当性結果を生成するステップ
    を含む、前記方法。
  2. 前記署名正当性結果を生成するステップは
    復号鍵正当性テストの失敗に応答して、無効の署名正当性結果を生成するステップと、
    前記生成ハッシュ・トークンが前記署名ハッシュ・トークンに等しく、且つ復号鍵正当性テストに失敗がないとの判断に応答して、有効の署名正当性結果を生成するステップであって、前記判断は、前記最新のマニフェスト・リソースからのリソースのリストが前記デジタル署名内の生成署名参照リスト内の識別されたリソースのリストに等しいかどうかの判断をさらに含む、前記有効の署名正当性結果を生成するステップと
    を含む、請求項に記載の方法。
  3. 前記生成署名参照リスト内の識別されたリソースを用いてハッシュ・トークンを生成するステップは、
    URIリゾルバを用いて前記生成署名参照リスト内の識別された1つ又は複数のリソースのコンテンツを取得するステップ
    をさらに含む、請求項1又は2に記載の方法。
  4. 前記生成署名参照リスト内の識別されたリソースを用いてハッシュ・トークンを生成するステップは、
    前記生成署名参照リスト内の識別された少なくとも1つのリソースに対して少なくとも1回のデジタル署名変換を実施するステップ
    をさらに含む、請求項1又は2に記載の方法。
  5. 前記生成署名参照リスト内の識別されたリソースを用いてハッシュ・トークンを生成するステップは、
    前記生成署名参照リスト内の識別された少なくとも1つのリソースのダイジェスト値を用いて前記ハッシュ・トークンを生成するステップ
    をさらに含む、請求項1又は2に記載の方法。
  6. 前記複合リソース文書は、複数のリスースを含む、請求項1〜5のいずれか一項に記載の方法。
  7. 複合リソース文書のためのデジタル署名を確認するコンピュータ実施の方法であって、
    デジタル署名を有する前記複合リソース文書を受け取るステップであって、前記複合リソース文書は1つ又は複数のリソースを含む、前記受け取るステップと、
    前記複合リソース文書内の全てのリソースをリストアップする最新のマニフェスト・リソースを取得するステップと、
    前記デジタル署名内の生成署名参照リスト内の識別された前記リソースを用いてハッシュ・トークンを生成して生成ハッシュ・トークンを形成するステップと、
    取得した復号鍵を用いて、前記デジタル署名内に含まれる暗号化ハッシュ・トークンを復号して署名ハッシュ・トークンを形成するステップと、
    前記生成ハッシュ・トークンと前記署名ハッシュ・トークンとの少なくとも比較に応答して、署名正当性結果を生成するステップであって、
    前記生成ハッシュ・トークンが前記署名ハッシュ・トークンと等しくないとの判断に応答して無効の署名正当性結果を生成するステップであって、前記判断は、前記最新のマニフェスト・リソースからのリソースのリストが前記デジタル署名内の前記生成署名参照リスト内の識別されたリソースのリストに等しくないかどうかの判断をさらに含む、前記生成するステップと、
    復号鍵正当性テストの失敗に応答して、無効の署名正当性結果を生成するステップと、
    前記生成ハッシュ・トークンが前記署名ハッシュ・トークンに等しく、且つ復号鍵正当性テストに失敗がないとの判断に応答して、有効の署名正当性結果を生成するステップであって、前記判断は、前記最新のマニフェスト・リソースからのリソースのリストが前記デジタル署名内の生成署名参照リスト内の識別されたリソースのリストに等しいかどうかの判断をさらに含む、前記有効の署名正当性結果を生成するステップと
    を含む、前記署名正当性結果を生成するステップと
    を含む、前記方法。
  8. 前記署名正当性結果を生成するステップは
    鍵有効期限テスト、鍵取消しテスト、鍵発行者信用証明テスト及び信用鍵リスト・テストを含むゼロ、1つ又は複数のテストを用いて取得された復号鍵の正当性をテストするステッ
    を含む、請求項に記載の方法。
  9. 前記生成署名参照リスト内の識別されたリソースを用いてハッシュ・トークンを生成するステップは、
    URIリゾルバを用いて前記生成署名参照リスト内の識別された1つ又は複数のリソースのコンテンツを取得するステップ
    をさらに含む、請求項7又は8に記載の方法。
  10. 前記生成署名参照リスト内の識別されたリソースを用いてハッシュ・トークンを生成するステップは、
    前記生成署名参照リスト内の識別された少なくとも1つのリソースに対して少なくとも1回のデジタル署名変換を実施するステップ
    をさらに含む、請求項7又は8に記載の方法。
  11. 前記生成署名参照リスト内の識別されたリソースを用いてハッシュ・トークンを生成するステップは、
    前記生成署名参照リスト内の識別された少なくとも1つのリソースのダイジェスト値を用いて前記ハッシュ・トークンを生成するステップ
    をさらに含む、請求項7又は8に記載の方法。
  12. 前記複合リソース文書は、複数のリスースを含む、請求項7〜11のいずれか一項に記載の方法。
  13. 複合リソース文書のためのデジタル署名を確認するための装置であって、
    通信ファブリックと、
    前記通信ファブリックに接続され、コンピュータ実行可能プログラム・コードを含むメモリと、
    前記通信ファブリックに接続された通信ユニットと、
    前記通信ファブリックに接続された入力/出力ユニットと、
    前記通信ファブリックに接続されたディスプレイと、
    前記通信ファブリックに接続されたプロセッサ・ユニットと
    を備えており
    前記プロセッサ・ユニットは、前記コンピュータ実行可能プログラム・コードを実行して前記装置に対して、
    請求項1〜12のいずれか一項に記載の方法の各ステップに記載の方法を実行するように命令する、前記装置。
  14. 複合リソース文書のためのデジタル署名を確認するためのコンピュータ・プログラムであって、コンピュータに、請求項1〜12のいずれか一項に記載の方法の各ステップを実行させる、前記コンピュータ・プログラム。
JP2011180340A 2010-10-06 2011-08-22 複合リソース文書上のデジタル署名 Active JP5783630B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA2716982 2010-10-06
CA2716982A CA2716982C (en) 2010-10-06 2010-10-06 Digital signatures on composite resource documents

Publications (2)

Publication Number Publication Date
JP2012085276A JP2012085276A (ja) 2012-04-26
JP5783630B2 true JP5783630B2 (ja) 2015-09-24

Family

ID=43379113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011180340A Active JP5783630B2 (ja) 2010-10-06 2011-08-22 複合リソース文書上のデジタル署名

Country Status (4)

Country Link
US (1) US8856532B2 (ja)
JP (1) JP5783630B2 (ja)
CN (1) CN102447559B (ja)
CA (1) CA2716982C (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090238365A1 (en) * 2008-03-20 2009-09-24 Kinamik Data Integrity, S.L. Method and system to provide fine granular integrity to digital data
JP5761683B2 (ja) * 2011-02-23 2015-08-12 セイコーインスツル株式会社 情報処理装置、及び情報処理プログラム
US8775555B2 (en) * 2011-05-13 2014-07-08 Sap Ag Rest interface interaction with expectation management
US8881006B2 (en) * 2011-10-17 2014-11-04 International Business Machines Corporation Managing digital signatures
US8997070B2 (en) * 2011-12-15 2015-03-31 Sap Se Extension mechanism for scripting language compiler
US9384012B2 (en) * 2011-12-16 2016-07-05 Sap Se Standalone data entry for backend system
WO2013101236A1 (en) * 2011-12-31 2013-07-04 Intel Corporation Securing device environment for trust provisioning
US9183393B2 (en) * 2012-01-12 2015-11-10 Facebook, Inc. Multiple system images for over-the-air updates
US8732481B2 (en) * 2012-01-30 2014-05-20 Hewlett-Packard Development Company, L.P. Object with identity based encryption
JPWO2014030283A1 (ja) * 2012-08-21 2016-07-28 ソニー株式会社 署名検証情報の伝送方法、情報処理装置、情報処理方法および放送送出装置
US9621440B2 (en) * 2012-08-31 2017-04-11 Rackspace Us, Inc. System and method for validating documentation of representational state transfer (REST) services
US9607132B2 (en) 2012-10-22 2017-03-28 Koninklijke Kpn N.V. Token-based validation method for segmented content delivery
US20140359605A1 (en) * 2013-05-30 2014-12-04 Microsoft Corporation Bundle package signing
EP3019948A4 (en) * 2013-07-11 2017-03-08 Hewlett-Packard Development Company, L.P. Printing composite documents
US9992026B2 (en) * 2014-03-28 2018-06-05 Mohammed Alawi E GEOFFREY Electronic biometric (dynamic) signature references enrollment method
WO2015199654A1 (en) * 2014-06-24 2015-12-30 Hewlett-Packard Development Company, L.P. Composite document access
EP3161705B1 (en) * 2014-06-30 2020-03-04 Hewlett-Packard Development Company, L.P. Composite document referenced resources
CN105320900B (zh) * 2014-07-24 2019-08-23 方正国际软件(北京)有限公司 Pdf数字签名方法和系统以及pdf数字签名验证方法和系统
US9495648B1 (en) * 2015-12-11 2016-11-15 International Business Machines Corporation Training a similar passage cognitive system using ground truth from a question answering cognitive system
US10044701B2 (en) * 2016-05-24 2018-08-07 Vantiv, Llc Technologies for token-based authentication and authorization of distributed computing resources
US11064056B2 (en) 2016-07-01 2021-07-13 Intel Corporation Methods and apparatus to improve interprocess communication
US11271736B2 (en) * 2016-07-29 2022-03-08 nChain Holdings Limited Blockchain-implemented method and system
CN106571928B (zh) * 2016-11-09 2018-05-01 北京海泰方圆科技股份有限公司 一种浏览器管理的方法及装置
CN106789091B (zh) * 2017-02-24 2020-02-21 中金金融认证中心有限公司 一种Open XML文档数字签名和验签的实现方法及装置
WO2018199963A1 (en) * 2017-04-27 2018-11-01 Hewlett-Packard Development Company, L.P Regulating document access
JP7100502B2 (ja) * 2018-06-13 2022-07-13 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
CN109034805B (zh) * 2018-08-09 2022-09-02 江苏先安科技有限公司 一种适用于区块链和嵌入式领域的时间戳签名验证方法
CN109309569B (zh) * 2018-09-29 2021-10-01 北京信安世纪科技股份有限公司 基于sm2算法的协同签名的方法、装置及存储介质
US11184423B2 (en) * 2018-10-24 2021-11-23 Microsoft Technology Licensing, Llc Offloading upload processing of a file in a distributed system using a key that includes a hash created using attribute(s) of a requestor and/or the file
US10911243B1 (en) 2018-12-14 2021-02-02 Wells Fargo Bank, N.A. Time-based digital signature
US11233772B1 (en) * 2019-11-27 2022-01-25 Worldpay, Llc Methods and systems for secure cross-platform token exchange
CN111586170B (zh) * 2020-05-07 2023-05-23 广州博冠信息科技有限公司 资源下载方法、装置、设备及计算机可读存储介质
US11687514B2 (en) 2020-07-15 2023-06-27 International Business Machines Corporation Multimodal table encoding for information retrieval systems
CN112597851A (zh) * 2020-12-15 2021-04-02 泰康保险集团股份有限公司 签名的获取方法、装置、电子设备及存储介质
CN112732649B (zh) * 2020-12-21 2024-03-12 航天信息股份有限公司 Ofd文档签章方法、电子设备及介质
CN115455492B (zh) * 2022-09-30 2024-02-13 百望股份有限公司 一种ofd文件的制作方法和装置
CN115361146B (zh) * 2022-10-24 2023-03-10 中安网脉(北京)技术股份有限公司 一种兼容多种密码算法的电子印章系统及方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961681B1 (en) * 2000-09-12 2005-11-01 Microsoft Corporation System and method providing virtual applications architecture
JP3730498B2 (ja) * 2000-09-19 2006-01-05 株式会社東芝 署名用記憶媒体
US7340611B2 (en) 2003-01-28 2008-03-04 Microsoft Corporation Template-driven XML digital signature
US7703090B2 (en) * 2004-08-31 2010-04-20 Microsoft Corporation Patch un-installation
US20060112152A1 (en) * 2004-11-22 2006-05-25 Microsoft Corporation Smart patching by targeting particular prior versions of a file
JP4134094B2 (ja) * 2005-04-27 2008-08-13 三菱電機株式会社 署名検証装置及び署名作成・検証システム及び署名検証方法
US7747642B2 (en) 2005-05-09 2010-06-29 Trend Micro Incorporated Matching engine for querying relevant documents
CA2618135C (en) * 2005-08-09 2014-10-28 Nexsan Technologies Canada Inc. Data archiving system
EP1855476A3 (en) 2006-05-11 2010-10-27 Broadcom Corporation System and method for trusted data processing
JP5108285B2 (ja) * 2006-11-30 2012-12-26 株式会社日立製作所 署名方法、情報処理装置、および署名プログラム
US9280337B2 (en) * 2006-12-18 2016-03-08 Adobe Systems Incorporated Secured distribution of software updates
CN101340427B (zh) * 2007-07-04 2012-04-04 华为技术有限公司 内容分类和过滤的方法、装置及系统
CN101369889B (zh) 2007-08-13 2010-12-22 兆日科技(深圳)有限公司 一种对文档进行电子签名的方法
US20100037062A1 (en) 2008-08-11 2010-02-11 Mark Carney Signed digital documents

Also Published As

Publication number Publication date
US8856532B2 (en) 2014-10-07
CA2716982C (en) 2016-07-19
CA2716982A1 (en) 2010-12-23
US20120089841A1 (en) 2012-04-12
CN102447559A (zh) 2012-05-09
JP2012085276A (ja) 2012-04-26
CN102447559B (zh) 2015-01-28

Similar Documents

Publication Publication Date Title
JP5783630B2 (ja) 複合リソース文書上のデジタル署名
Groth et al. An architecture for provenance systems
US10705889B2 (en) Kernel event triggers
JP5030654B2 (ja) ロギングとデータ交換同期のセキュアかつ効率的な方法
US7512798B2 (en) Organization-based content rights management and systems, structures, and methods therefor
JP4602769B2 (ja) 文書セットのコンテンツ空間のナビゲーション
US7870198B2 (en) Content rights management for email and documents contents and systems, structures, and methods therefor
US7392547B2 (en) Organization-based content rights management and systems, structures, and methods therefor
US20080066185A1 (en) Selective access to portions of digital content
JP2006338249A (ja) コンテンツ保護装置及びコンテンツ保護解除装置
JP5298891B2 (ja) アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置
US9607134B2 (en) System and method for protected publication of sensitive documents
US20100223469A1 (en) Method, System and Computer Program Product for Certifying Software Origination
JP2009110061A (ja) 版数管理システムおよび版数管理方法
JP5082460B2 (ja) 情報処理装置及びプログラム及び情報処理システム
JP4972208B2 (ja) デジタル配信の帯域外追跡を可能にする、コンピュータにより実施される方法およびシステム
JP7443558B2 (ja) ブロックチェーンの設定可能なオフチェーンストレージに関するコンピューティングシステム
KR101085365B1 (ko) 디지털적으로 서명된 콘텐츠에서 보조 정보를 임베딩 및 인증하기 위한 컴퓨터-구현된 방법 및 시스템
Fotos Specification and implementation of metadata for secure image provenance information
Boyer et al. Interactive Web Documents: A composite format, REST protocol, and interaction controllers
Alqahtany et al. ForensicTransMonitor: A Comprehensive Blockchain Approach to Reinvent Digital Forensics and Evidence Management
de Oliveira Secure Documents in Collaborative Environments
KR20160077833A (ko) 전자출판 저작물에 대한 연관저작물 관리 장치 및 방법
JP2024512068A (ja) ブロックチェーンで実行されるデータ・アプリケーションにおける改善されたシグネチャ検証方法及びシステム
JP2012142022A (ja) デジタル配信の帯域外追跡を可能にする、コンピュータにより実施される方法およびシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140402

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150302

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150302

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20150302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150304

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150703

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20150703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150717

R150 Certificate of patent or registration of utility model

Ref document number: 5783630

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150