JP5108285B2 - 署名方法、情報処理装置、および署名プログラム - Google Patents

署名方法、情報処理装置、および署名プログラム Download PDF

Info

Publication number
JP5108285B2
JP5108285B2 JP2006324672A JP2006324672A JP5108285B2 JP 5108285 B2 JP5108285 B2 JP 5108285B2 JP 2006324672 A JP2006324672 A JP 2006324672A JP 2006324672 A JP2006324672 A JP 2006324672A JP 5108285 B2 JP5108285 B2 JP 5108285B2
Authority
JP
Japan
Prior art keywords
signature
message
unit
information
additional information
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.)
Expired - Fee Related
Application number
JP2006324672A
Other languages
English (en)
Other versions
JP2008140043A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006324672A priority Critical patent/JP5108285B2/ja
Priority to US11/848,306 priority patent/US20080133925A1/en
Publication of JP2008140043A publication Critical patent/JP2008140043A/ja
Application granted granted Critical
Publication of JP5108285B2 publication Critical patent/JP5108285B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/68Special signature format, e.g. XML format

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Document Processing Apparatus (AREA)

Description

本発明は、電子署名付きメッセージに追記をしても、署名後の利用時の文書構造の変換を不要にすることができる署名方法、情報処理装置、および署名プログラムに関する。
ネットワークを介して複数の計算機がメッセージを交換する場合、メッセージの正当性を保証するために電子署名が用いられている。電子署名は暗号化された署名情報であり、公開鍵暗号方式を用いてメッセージの送信者を保証およびメッセージが改ざんされていないことを証明する。
計算機が電子署名付きメッセージを送信する際、最終的な受信者以外の計算機を中継することがある。まず、送信元の計算機が中継用の計算機に電子署名付きメッセージを送信する。次に、中継用の計算機は、送信元の計算機から電子署名付きメッセージを受信し、最終的な受信者の計算機にメッセージを転送する。ここで、中継用の計算機が電子署名付きメッセージを変更すると、最終的な受信者の計算機は、送信元の計算機が付与した電子署名の有効性を検証できない。
そこで、電子署名付きメッセージの署名対象ではない部分に、メッセージの変換情報を挿入した変換メッセージを生成することで、電子署名の有効性を保ったまま、データに追加、削除等の変更を加える技術が開示されている(特許文献1参照)。
また、複数の計算機がメッセージを交換する際の標準的なデータフォーマットとして、XML(Extensible Markup Language)により記述されたXML文書が用いられている。XMLはマークアップ言語の一つであり、標準化団体であるW3C(World Wide Web Consortium)が勧告している言語である。そして、W3Cは、XML文書を含む任意のデジタルデータに対する署名の方法について規定したXML署名を勧告している。
また、それぞれの語彙が世界で一意に定まる名前を持つために、名前空間という概念がある。名前空間とは、インターネット上に存在する情報資源の場所を指し示す記述方式であるURI(Uniform Resource Identifier)と、語彙を組み合わせることで、衝突の可能性を低減しつつ参照を容易にする概念である。全てのタグにURIを記述するのは煩雑なため、名前空間では、これらのURIに別名を割り当て、それを接頭辞として用いている。
特開2005−223390号公報
特許文献1に記載された方法では、電子署名付きメッセージへの追記が可能になったが、受信された電子署名付きメッセージから追記した文書を得るために、文書構造の変換、例えば、XSLT(XML Stylesheet Language Transformations)変換をする必要がある。XSLT変換後は、電子署名が無効になる問題がある。すなわち、メッセージの署名後と、メッセージの利用時とにおいて、文書構造が変更になるためである。また、署名が有効な状態のメッセージに対して、追記された文書により、文書構造の指定位置が変更になるため、XPath(XML Path Language)を有効に利用できない問題もある。なお、XPathは、XML文書の特定の部分を指定する言語構文である。
さらに、ワークフローのような回覧の場合、追記に関する情報量が多くなる場合がある。追記した回数だけ文書構造の変換処理をする必要があり、それに伴い変換情報も増えていく問題がある。
本発明は、前記の課題を解決するための発明であって、電子署名付きメッセージに追記をしても、署名後の利用時の文書構造の変換を不要にすることができる署名方法、情報処理装置、および署名プログラムを提供することを目的とする。
前記目的を達成するため、電子署名を付与する構造化文書を構成する複数の文書要素からなるメッセージにおいて、メッセージにある所定の識別情報に基づき共通の特徴を持つ文書要素、例えば、特定の名前空間に属する文書要素だけを対象に署名と署名検証をする。そのため、署名対象と異なる名前空間に属する文書要素や属性であれば、署名された文書要素内に直接追加することができる。
本発明によれば、電子署名付きメッセージに、電子署名の有効性を保ったまま追記でき、追記したメッセージを利用する際に文書構造の変換を不要にすることができる。
以下、本発明の実施形態について図面を参照して説明する。
本実施形態では、SOAP(Simple Object Access Protocol)を用いたメッセージ交換を例に説明する。SOAPとは、XMLとHTTPをベースとした、他の装置に存在するデータやサービスを呼び出すためのプロトコルである。また、本実施形態では、XML署名を例に説明する。なお、本発明は、SOAPメッセージに限定されることなく、他の構造化文書を用いたメッセージに適用できる。また、本発明は、XML署名に限定されず、他の電子署名を用いることもできる。また、本実施形態では、署名に用いる名前空間情報と、メッセージと、追記情報とを記憶部に記憶しているが、動的に生成してもよい。
なお、「構造化文書」は、文章にタグをつけて構造を示す方法を採用した文書とその形式をいい、文書記述言語SGML(Standard Generalized Markup Language)等があり、簡略化形態として、XML、HTML(Hyper Text Markup Language)がある。広義の定義として、構造化文書は、帳票に記載された文章を含む文書、画像と文章との組み合せの文書等も含まれる。
《第1の実施形態》
図1は、本発明を適用するためのシステム構成を示す図である。本実施形態のシステムは、計算機A(第1の情報処理装置)10と、計算機B(第2の情報処理装置)20と、計算機C30を有し、それぞれがネットワーク40により接続されている。
計算機A10は、XML署名付きSOAPメッセージ(以下メッセージ)を、計算機B20を中継して、計算機C30に送信する装置である。計算機A10は、構造化文書を構成する複数の文書要素からなるメッセージから特定の名前空間に属する要素を署名対象として抽出する署名対象抽出部11と、抽出された署名対象にXML署名を付与する署名付与部12と、署名に用いる名前空間情報およびXML文書であるメッセージが記憶された記憶部13と、ネットワーク40を介して他の装置とメッセージを送受信する通信処理部14を有する。
計算機B20は、計算機A10から受信したメッセージに対し、情報の追加または削除をし、計算機C30にメッセージを転送する装置である。計算機B20は、追記情報が計算機A10から受信したメッセージの署名対象の名前空間に属するか否かを判定する追記情報判定部21と、計算機A10から受信したメッセージに追記情報を挿入する追記情報挿入部22と、追記情報が記憶された記憶部23と、エラー情報を出力装置に出力する表示部24と、ネットワーク40を介して他の装置とメッセージを送受信する通信処理部25を有する。
計算機C30は、計算機B20を中継して計算機A10が送信したメッセージを受信する装置である。計算機C30は、署名検証のために受信したメッセージから特定の名前空間に属する文書要素を署名対象として抽出する署名対象抽出部31と、受信したメッセージに付与されたXML署名の有効性を検証する署名検証部32と、エラー情報を出力装置に出力する表示部33と、ネットワーク40を介して他の装置とメッセージを送受信する通信処理部34を有する。以上説明した計算機A10、計算機B20および計算機C30には、いずれも汎用的なコンピュータシステムを用いることができる。
図2は、図1で列挙した各計算機のハードウェア構成を示す図である。各計算機は、図2に示すように、CPU51と、メモリ52と、HDD等の外部記憶装置53と、キーボードやマウス等の入力装置54と、モニタやプリンタ等の出力装置55と、ネットワークに接続するための通信制御装置56と、これらの各装置を接続するバス57を有している。CPU51がメモリ52にロードされた所定のプログラムを実行することで、各装置の各機能が実施される。
計算機A10、計算機B20および計算機C30の各機能について、計算機A10用のプログラムの場合は計算機A10のCPU51が、計算機B20用のプログラムの場合は計算機B20のCPU51が、計算機C30用のプログラムの場合は計算機C30のCPU51が、それぞれ実行することで実現する。また、計算機A10の記憶部13には、計算機A10のメモリ52または外部記憶装置53を使用し、計算機B20の記憶部23には、計算機B20のメモリ52または外部記憶装置53を使用する。
次に、システム全体の処理フローを説明する。
図3は、システムの処理フローを示す図である。まず、計算機A10の署名対象抽出部11は、メッセージに署名が要求されると、記憶部13に記憶されたXML文書である構造化文書を構成する複数の文書要素からなるメッセージから、特定の名前空間に属する文書要素を署名対象として抽出する(S301)。そして、署名付与部12は、抽出された署名対象にXML署名を付与する(S302)。そして、署名付与部12は、通信処理部14を介してXML署名付きメッセージを計算機B20に送信する(S303)。
計算機B20の追記情報判定部21は、計算機A10から通信処理部25を介してXML署名付きメッセージを受信し、記憶部23から取得した追記情報が当該メッセージに挿入可能かを判定する(S304)。S304の判定の結果、追記情報が挿入可能であれば、追記情報挿入部22は追記情報を当該メッセージに挿入する(S305)。そして、追記情報挿入部22は、追記情報を挿入したメッセージを、通信処理部25を介して計算機C30に送信する(S306)。
計算機C30の署名検証部32は、計算機B20から通信処理部34を介して追記情報が挿入されたメッセージを受信し、計算機A10により付与されたXML署名が有効か当該メッセージを検証する(S307)。
次に、XML署名付きメッセージについて説明する。
図4は、計算機Aの送信メッセージの一例を示す図である。計算機A10(図1参照)は、記憶部13に記憶されているメッセージに、XML署名を付与する。なお、図のメッセージには、説明を容易にするため、実際には含まれない行番号(各行の先頭に記述された2桁の数字)を含んでいる。
メッセージは、ルート要素としてEnvelope要素(行番号「02」〜「41」)を有する。Envelope要素は子要素として、Header要素(行番号「04」〜「26」)と、Body要素(行番号「27」〜「40」)を有する。
Header要素には、メッセージを処理するアプリケーションが解釈すべき付加的な情報を記述する。図4に示す例では、Header要素は子要素として、XML署名に関する情報を記述するSignature要素(行番号「05」〜「25」)を有する。そして、Signature要素は子要素として、署名情報を記述するSignedInfo要素(行番号「06」〜「23」)と、署名値を記述するSignatureValue要素(行番号「24」)を有する。SignedInfo要素は子要素として、正規化アルゴリズムを記述するCanonicalizationMethod要素(行番号「07」〜「08」)と、署名値計算アルゴリズムを記述するSignatureMethod要素(行番号「09」〜「10」)と、XML署名の対象を記述するReference要素(行番号「11」〜「22」)を有する。「Reference URI=」で指定される署名対象文書を、以降「オリジナルのXML署名対象」という。
図4に示す例では、Reference要素に記述された「URI="#Order"」(行番号「12」)によって指定された、Id属性が「Order」である、後述するBody要素の子要素のPurchaseOrder要素(行番号「28」〜「39」)がオリジナルのXML署名対象である。Reference要素は子要素として、署名対象生成アルゴリズムを記述するTransforms要素(行番号「13」〜「18」)と、ダイジェスト値計算アルゴリズムを記述するDigestMethod要素(行番号「19」〜「20」)と、ダイジェスト値を記述するDigestValue要素(行番号「21」)を有する。
Transforms要素は子要素として、Transform要素(行番号「14」〜「17」)を有する。Transform要素のAlgorithm属性に本方法のアルゴリズム名を記載することで、オリジナルのXML署名対象から特定の名前空間に属する文書要素のみを署名対象として抽出する。特定の名前空間に属する文書要素の抽出については後述する。
Body要素には、送信するメッセージの内容を記述する。図4に示す例では、Body要素は、子要素として、PurchaseOrder要素を有する。PurchaseOrder要素は子要素として、書籍情報を記述するBooks要素(行番号「32」〜「38」)を有する。Books要素は、子要素として、書籍名を記述するTitle要素(行番号「33」)と、著者名を記述するAuthor要素(行番号「34」)と、Sample要素(行番号「35」〜「37」)を有する。Sample要素は子要素として、副題を記述するSubtitle要素(行番号「36」)を有する。
計算機A10の記憶部13には、XML署名が付与される前のメッセージが記憶されている。すなわち、図4に示すHeader要素(行番号「04」〜「26」)を除いたメッセージが記憶されている。
次に、オリジナルのXML署名対象から、特定の名前空間に属する文書要素を抽出する方法を説明する。
図5は、計算機Aの送信メッセージから取得したオリジナルのXML署名対象を示す図である。なお、図のメッセージには、説明を容易にするため、実際には含まれない行番号(各行の先頭に記述された2桁の数字)を含んでいる。オリジナルのXML署名対象は、ルート要素としてPurchaseOrder要素(行番号「01」〜「12」)を有する。PurchaseOrder要素は、デフォルトの名前空間「http://example.com/order」と接頭辞itemの名前空間「http://example.com/order/item」の2つの名前空間を有する。PurchaseOrder要素は子要素として、書籍情報を記述するBooks要素(行番号「05」〜「11」)を有する。Books要素は子要素として、書籍名を記述するTitle要素(行番号「06」)と、著者名を記述するAuthor要素(行番号「07」)と、Sample要素(行番号「08」〜「10」)を有する。Sample要素は子要素として、副題を記述するSubtitle要素(行番号「09」)を有する。
図6は、特定の名前空間に属する署名対象の抽出例を示す図である。なお、図のメッセージには、説明を容易にするため、実際には含まれない行番号(各行の先頭に記述された2桁の数字)を含んでいる。図示する例では、オリジナルのXML署名対象から、接頭辞itemの名前空間「http://example.com/order/item」に属する文書要素を取得し、署名対象とする。そして、署名対象要素のルート要素に特定の名前空間の宣言を記述する。また、特定の名前空間に属さない文書要素は、その子要素も含めて署名対象から除外する。具体的には、Books要素(行番号「01」〜「05」)、Title要素(行番号「03」)およびAuthor要素(行番号「04」)を署名対象とする。そして、署名対象要素のルート要素であるBooks要素に特定の名前空間の宣言を記述する(行番号「02」)。そして、特定の名前空間に属さないSample要素の子要素であるSubtitle要素は署名対象に含めない。
図7は、特定の名前空間に属する署名対象の抽出例を示す他の図である。なお、図のメッセージには、説明を容易にするため、実際には含まれない行番号(各行の先頭に記述された2桁の数字)を含んでいる。図示する例では、オリジナルのXML署名対象から、接頭辞itemの名前空間「http://example.com/order/item」に属する文書要素を取得し、署名対象とする。そして、署名対象要素のルート要素に特定の名前空間の宣言を記述する。また、特定の名前空間に属さない文書要素は、その子要素に特定の名前空間に属する文書要素を有する場合、テキストノードを削除し、一律に要素名をDummyに置換する。具体的には、Books要素(行番号「01」〜「08」)、Title要素(行番号「03」)、Author要素(行番号「04」)およびSubtitle要素(行番号「06」)を署名対象とする。そして、署名対象要素のルート要素であるBooks要素に特定の名前空間の宣言を記述する(行番号「02」)。そして、特定の名前空間に属するSubtitle要素(図5:行番号「09」)を子要素に有するSample要素(図5:行番号「08」と「10」)は、要素名をDummy(行番号「05」と「07」)に置換する。
次に、計算機Aの処理について説明する。
図8は、計算機Aの処理フローを示す図である。まず、計算機A10の署名付与部12は、メッセージに署名が要求されると、記憶部13に記憶されたXML文書であるメッセージを読み出す(S801)。そして、署名付与部12は、署名情報を設定するSignature要素を作成し、メッセージのヘッダ要素に追加する。そして、署名対象抽出部11は、記憶部13に記憶された名前空間情報を読み出し、署名対象となる名前空間を取得する(S802)。取得した署名対象の名前空間は、Transform要素の子要素であるNamespace要素に設定する。具体的には「http://example.com/order/item」を署名対象の名前空間とする場合、
「<nta:Namespace>http://example.com/order/item</nta:Namespace>」
(図4:行番号「16」)と記述する。このNamespace要素は複数個記述でき、これにより複数の名前空間を署名対象にできる。そして、署名対象抽出部11は、メッセージ中のオリジナルのXML署名対象から、S802で取得した名前空間に属する文書要素を取得し、署名対象とする(S803)。
具体的には、図6または図7が署名対象である特定の名前空間に属する文書要素となる。そして、署名付与部12は、メッセージのReference要素内の「DigestMethod Algorithm=」に設定するアルゴリズムを用いて、S803で取得した署名対象からダイジェスト値(ハッシュ値)を求める(S804)。求めたダイジェスト値は、DigestValue要素に設定する。そして、署名付与部12は、Reference要素と、そのダイジェスト値が埋め込まれたSignedInfo要素を、「CanonicalizationMethod Algorithm=」に設定するアルゴリズムを用いて正規化し、SignatureMethod要素に設定するアルゴリズムを用いて署名する(S805)。署名の値はSignatureValue要素に設定する。そして、署名付与部12は、通信処理部14を用いて、XML署名付きメッセージを計算機B20に送信する(S806)。
このように、計算機A10では、メッセージに対し、特定の名前空間に属する文書要素のみを署名対象とし、XML署名をする。これにより、特定の名前空間に属さない文書要素であれば、計算機A10の付与したXML署名の有効性を保持しつつ、メッセージに追記することができる。
次に、計算機Bの処理について説明する。
図9は、計算機Bの処理フローを示す図である。まず、計算機B20の追記情報判定部21は、通信処理部25を介して計算機A10から送信されたメッセージを受信する(S901)。そして、追記情報判定部21は、計算機A10から受信したメッセージより、署名対象の名前空間を取得する(S902)。すなわち、追記情報判定部21は、メッセージのTransform要素の子要素であるNamespace要素から、署名対象の名前空間を取得する。そして、追記情報判定部21は、記憶部23に記憶された追記情報を読み出す(S903)。具体的には、読み出した追記情報は「書評を記述する、名前空間”http://example.com/order/postscript"に属するComment要素を、Books要素の子要素に挿入」とする。
そして、追記情報判定部21は、S903で読み出した追記情報が属する名前空間と署名対象の名前空間とを比較して等しいか否かを判定する(S904)。追記情報が属する名前空間と署名対象の名前空間とを比較した結果が等しい場合(S904:Yes)、XML署名が壊れるため、追記情報を挿入することができない。よって、表示部24は出力装置55に追記情報を挿入できない旨をエラーとして表示する(S905)。追記情報が属する名前空間と署名対象の名前空間とを比較した結果が異なる場合(S904:No)、追記情報挿入部22は、追記情報判定部21から追記情報とメッセージを取得し、追記情報をメッセージに挿入する(S906)。
よって、計算機B20の追記情報挿入部22が挿入する追記情報は、署名対象に含まれない。そして、追記情報挿入部22は、通信処理部25を用いて、追記済みXML署名付きメッセージを計算機C30に送信する(S907)。具体的には、図10に示すメッセージを計算機C30に送信する。
図10は、計算機Bの送信メッセージを示す図である。図10に示すように、図4に示すメッセージに、追記情報(図10:行番号「31」と「39」)として、書籍の批評を挿入したメッセージである。
このように、計算機B20では、署名対象とする名前空間に属さない文書要素を、追記情報としてメッセージに挿入する。これにより、計算機B20は、計算機A10の付与したXML署名の有効性を保持しつつ、メッセージに追記する。
次に、計算機Cの処理フローについて説明する。
図11は、計算機Cの処理フローを示す図である。まず、計算機C30の署名検証部32は、通信処理部34を介して計算機B20から送信されたメッセージを受信する(S1101)。そして、署名検証部32は、受信したメッセージに付与されているXML署名の有効性を検証する(S1102)。署名者である計算機A10の署名付与部12は、自身の秘密鍵を用いて記憶部13に記憶されたメッセージ(XML文書)の所定の署名対象部分を暗号化してXML署名を生成し、当該メッセージに生成したXML署名を付与して送信する。そして、計算機C30の署名検証部32は、署名者の公開鍵を用いて当該メッセージに付与されたXML署名を復号し、復号結果と署名対象部分とを比較して、正しい内容かどうかを検証する。この際、署名対象抽出部31を用いて、計算機A10の署名対象抽出部11と同様に、署名対象を取得する。このようにXML署名を用いることにより、計算機A10が送信したメッセージが改ざんされていないこと、また、署名者が計算機A10であることを保証できる。
なお、本実施形態における計算機B20の追記情報挿入部22により挿入された追記情報は、署名対象に含まれない。よって追記情報挿入部22が追記情報を挿入した場合もXML署名は有効なままである。復号結果と署名対象部分を比較した結果XML署名が有効でない場合(S1103:No)、表示部33は出力装置55にXML署名が有効でない旨をエラーとして表示する(S1104)。復号結果と署名対象部分を比較した結果XML署名が有効である場合(S1103:Yes)、表示部33はPurchaseOrder要素を出力装置55に出力し、計算機C30のユーザに追記済みメッセージを表示してもよい。また、署名検証部32は、追記済みメッセージを外部記憶装置53に記憶してもよい。
このように、計算機C30は、署名対象となる名前空間のみを対象としてXML署名検証をする。そのため、計算機C30は、計算機A10が付与したXML署名の有効性を検証する際、改ざんと追記情報を区別できる。これにより、計算機C30は、計算機B20が追記情報を挿入したメッセージを受信できる。
本実施形態により、計算機B20は、計算機A10のXML署名の有効性を保持しつつ、署名対象の文書要素に情報を追記することができる。また、計算機C30は、計算機A10によるXML署名の有効性を検証した上で、計算機B20が追記情報を挿入したメッセージを取得することができる。
本実施形態によれば、第1の情報処理装置(例えば、計算機A)は、記憶部13と、署名対象抽出部11と、署名付与部12とを有する。署名対象抽出部11は、記憶部13に記憶された構造化文書を構成する複数の文書要素からなるメッセージから、メッセージにある所定の識別情報に基づき共通の特徴を持つ文書要素(例えば、特定の名前空間に属する文書要素)を第1の署名対象として抽出し、署名付与部12は、抽出された第1の署名対象に署名を付与することができる。
さらに、本実施形態によれば、第2の情報処理装置(例えば、計算機B)は、記憶部23と、追記情報判定部21と、追記情報挿入部22とを有する。追記情報判定部21は、第1の情報処理装置から署名付きの構造化文書を構成する複数の文書要素からなるメッセージを受信すると、記憶部23から取得した追記情報が署名付きのメッセージに挿入可能か否かを判定し、追記情報挿入部22は、追記情報判定部21の判定結果により追記情報が挿入可能であれば、追記情報を前記署名付きのメッセージに挿入することができる。
《第2の実施形態》
図12は、本発明を実施するための他のシステム構成を示す図である。図12に示すように、図1と比較して、計算機BA(20A)の構成が、計算機B(20)の構成と異なる。図1に記載の同一構成については、同一番号を付しており、説明は省略する。計算機BA(20A)は、署名対象とする名前空間に属さない文書要素を、追記情報としてメッセージに挿入後、追記情報を署名対象としXML署名をする。これにより、計算機BA(20A)は、計算機A10の付与したXML署名の有効性を保持しつつ、メッセージに計算機BA(20A)が署名する情報を追記することができる。
計算機BA(20A)は、計算機A10から受信したメッセージに対し、情報の追加をし、計算機C30にメッセージを転送する装置である。計算機BA(20A)は、追記情報が計算機A10から受信したメッセージの署名対象の名前空間に属するか判定する追記情報判定部21と、計算機A10から受信したメッセージに追記情報を挿入する追記情報挿入部22と、追記情報挿入後のメッセージから追記情報の名前空間に属する文書要素を署名対象として抽出する署名対象抽出部26と、抽出された署名対象にXML署名を付与する署名付与部27と、追記情報が記憶された記憶部23と、エラー情報を出力装置に出力する表示部24と、ネットワーク40を介して他の装置とメッセージを送受信する通信処理部25を有する。
次に、計算機BAの処理について説明する。
図13は、計算機BAの処理フローを示す図である。まず、計算機BA(20A)の追記情報判定部21は、通信処理部25を介して計算機A10から送信されたメッセージを受信する(S901)。そして、追記情報判定部21は、計算機A10から受信したメッセージより、署名対象の名前空間を取得する(S902)。そして、追記情報判定部21は、記憶部23に記憶された追記情報を読み出す(S903)。そして、追記情報判定部21は、S903で読み出した追記情報が属する名前空間と署名対象の名前空間とを比較して、等しいか否かを判定する(S904)。
追記情報が属する名前空間と署名対象の名前空間とを比較した結果が等しい場合(S904:Yes)、追記情報を追記するとXML署名が壊れるため、追記情報を挿入することができない。よって、表示部24は出力装置55に追記情報を挿入できない旨をエラーとして表示する(S905)。追記情報が属する名前空間と署名対象の名前空間とを比較した結果が異なる場合(S904:No)、追記情報挿入部22は、追記情報判定部21から追記情報とメッセージを取得し、追記情報をメッセージに挿入する(S906)。よって、計算機B20の追記情報挿入部22が挿入する追記情報は、計算機A10の署名対象に含まれない。以上の処理まで(S901〜S906)は、図9と同様である。
次に、追記情報に署名が要求されると、署名付与部27は、署名情報を設定するSignature要素を新たに作成し、メッセージのHeader要素に追加する。そして、署名対象抽出部26は、追記情報判定部21からS902で取得した署名対象の名前空間と、追記情報の名前空間を取得(抽出)し(S1301)、Transform要素の子要素であるNamespace要素に設定する。具体的には、図14を参照して説明する。
図14は、計算機BAの送信メッセージを示す図である。なお、図のメッセージには、説明を容易にするため、実際には含まれない行番号(各行の先頭に記述された2桁の数字)を含んでいる。新たに追加された行は、Header要素に、行番号「26」〜「47」,Body要素に、行番「53」,「61」である。「http://example.com/order/postscript」が追記情報の名前空間である場合、行番号「37」と行番号「38」が記述される。
図13に戻り、署名付与部27は、計算機A10の署名付与部12と同様にし、抽出した要素からダイジェスト値を求め(S1302)、ダイジェスト値を使用しメッセージに署名をする(S1303)。そして、署名付与部27は、通信処理部25を用いて、追記済みXML署名付きメッセージを計算機C30に送信する(S907)。具体的には、図14に示すメッセージを計算機C30に送信する。図14に示すメッセージは、図4に示すメッセージに、追記情報と追記情報に対する署名(図14において枠で囲われた部分)を挿入したメッセージである。
このように、計算機BA(20A)では、署名対象とする名前空間に属さない文書要素を、追記情報としてメッセージに挿入後、追記情報を署名対象としXML署名をする。これにより、計算機BA(20A)は、計算機A10の付与したXML署名の有効性を保持しつつ、メッセージに計算機B20が署名する情報を追記することができる。
本実施形態によれば、情報処理装置(例えば、計算機BA)は、記憶部23と、追記情報判定部21と、追記情報挿入部22と、署名対象抽出部26と、署名付与部27とを有する。追記情報判定部21は、他の情報処理装置(例えば、計算機A)から、構造化文書を構成する複数の文書要素からなるメッセージを受信すると、記憶部23から取得した追記情報がメッセージに挿入可能か否かを判定し、追記情報挿入部22は、追記情報判定部21の判定結果により追記情報が挿入可能であれば、追記情報をメッセージに挿入し、署名対象抽出部26は、メッセージから、既に署名が付与されている所定の識別情報に基づき共通の特徴を持つ文書要素(例えば、特定の名前空間に属する文書要素)、追情報の所定の識別情報に基づき共通の特徴を持つ文書要素を署名対象として抽出し、署名付与部27は、抽出された署名対象に署名を付与することができる。
本発明の実施形態は、署名内への追記方法として、特定の名前空間を対象として署名することができる。このため、本発明のメリットを以下に示す。
(1)構造化文書の変換が不要のため、受信したメッセージの処理が軽い。
(2)構造化文書の変換が不要のため、受信したメッセージの署名は有効のままである。
(3)追記に関するデータ量が少ない。
(4)追記したデータに署名が可能となる。すなわち、複数回の署名ができる。
本発明の具体的な利用形態のビジネス例として、次に情報提供サービスについて説明する。
図15は、証券会社の企業分析レポート提供サービスを示す図である。X社1501は、自社のIR(Investor Relation)情報を、投資家および証券会社等へWebサービスとして配信する。IRとは、投資家を対象にした企業の広報活動のことをいう。証券会社Y社1502は、投資家(クライアント)1505へのWebサービスの付加価値サービスとして、アナリストA1503とアナリストB1504の分析結果を添付し、投資家1505へ配信する。X社1501の電子署名入りのIR情報1510に、アナリストA1503とアナリストB1504の電子署名入りの分析レポート1511を付加することができる。本発明によれば、電子署名付きメッセージに追記をしても、電子署名後の利用時の文書構造の変換を不要にすることができるメッセージ署名方法を提供することができる。
本発明は、前記の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、電子ワークフローによるXML文書等の構造化文書の回覧等にも本発明を適用することができる。また、本発明の実施形態のシステム構成として、計算機A、計算機B、計算機Cのように分けて説明したが、ネットワークに接続されている各計算機が、計算機A、計算機B、計算機Cを統合した機能部、すなわち、署名対象抽出部、署名付与部、記憶部、追記情報判定部、追記情報挿入部、署名検証部を有していてもよい。
本発明を適用するためのシステム構成を示す図である。 図1で列挙した各計算機のハードウェア構成を示す図である。 システムの処理フローを示す図である。 計算機Aの送信メッセージの一例を示す図である。 計算機Aの送信メッセージから取得したオリジナルのXML署名対象を示す図である。 特定の名前空間に属する署名対象の抽出例を示す図である。 特定の名前空間に属する署名対象の抽出例を示す他の図である。 計算機Aの処理フローを示す図である。 計算機Bの処理フローを示す図である。 計算機Bの送信メッセージを示す図である。 計算機Cの処理フローを示す図である。 本発明を適用するための他のシステム構成を示す図である。 計算機Bの処理フローを示す図である。 計算機Bの送信メッセージを示す図である。 証券会社の企業分析レポート提供サービスを示す図である。
符号の説明
10 計算機A(第1の情報処理装置)
11,26 署名対象抽出部
12,27 署名付与部
13,23 記憶部
14,25,34 通信処理部
20 計算機B(第2の情報処理装置)
20A 計算機BA
21 追記情報判定部
22 追記情報挿入部
24,33 表示部
30 計算機C
31 署名対象抽出部
32 署名検証部
40 ネットワーク
51 CPU
52 メモリ
53 外部記憶装置
54 入力装置
55 出力装置
56 通信制御装置

Claims (6)

  1. 構造化文書を構成する複数の文書要素からなる署名付きのメッセージを提供する第1の情報処理装置が送信した前記メッセージに第2の情報処理装置が追記する署名方法であって、
    前記第1の情報処理装置は、前記メッセージを記憶する第1の記憶部と、第1の署名対象抽出部と、第1の署名付与部とを備え、
    前記第2の情報処理装置は、追記情報を記憶する第2の記憶部と、追記情報判定部と、追記情報挿入部とを備え、
    前記第1の署名対象抽出部は、前記メッセージに署名が要求されると、前記第1の記憶部に記憶された前記メッセージから、前記メッセージにある特定の名前空間に属する文書要素を第1の署名対象として抽出し、
    前記第1の署名付与部は、抽出された前記第1の署名対象に署名を付与し、
    前記追記情報判定部は、前記第1の情報処理装置から署名付きのメッセージを受信すると、前記第2の記憶部から取得した前記追記情報の名前空間と前記署名付きのメッセージの第1の署名対象の名前空間が同じか否かを判定し、
    前記追記情報挿入部は、前記追記情報判定部の判定結果が同じでないとき、前記追記情報を前記署名付きのメッセージに挿入する
    ことを特徴とする署名方法。
  2. 前記第2の情報処理装置は、第2の署名対象抽出部と、第2の署名付与部とをさらに有し、
    前記第2の署名対象抽出部は、前記メッセージに署名が要求されると、前記署名付きのメッセージから、前記第1の署名対象の名前空間に属する文書要素、前記追情報の名前空間に属する文書要素第2の署名対象として抽出し、
    前記第2の署名付与部は、抽出された前記第2の署名対象に署名を付与する
    ことを特徴とする請求項1に記載の署名方法。
  3. 構造化文書を構成する複数の文書要素からなる署名付きのメッセージを受信する情報処理装置が、前記メッセージに追記する署名方法であって、
    前記情報処理装置は、追記情報を記憶する記憶部と、追記情報判定部と、追記情報挿入部と、署名対象抽出部と、署名付与部とを有し、
    前記追記情報判定部は、他の情報処理装置からメッセージを受信すると、前記記憶部から取得した前記追記情報の名前空間と前記メッセージの署名対象の名前空間が同じか否かを判定し、
    前記追記情報挿入部は、前記追記情報判定部の判定結果が同じでないとき、前記追記情報を前記メッセージに挿入し、
    前記署名対象抽出部は、前記メッセージから、既に署名が付与されている特定の名前空間に属する文書要素、前記追情報の名前空間に属する文書要素署名対象として抽出し、
    前記署名付与部は、抽出された前記署名対象に署名を付与する
    ことを特徴とする署名方法。
  4. 構造化文書を構成する複数の文書要素からなる署名付きのメッセージに追記する情報処理装置であって、
    前記追記情報を記憶する記憶部と、
    他の情報処理装置からメッセージを受信すると、前記追記情報の名前空間と前記メッセージの署名対象の名前空間が同じか否かを判定する追記情報判定部と、
    前記追記情報判定部の判定結果が同じでないとき、前記追記情報を前記メッセージに挿入する追記情報挿入部と、
    前記メッセージから、既に署名が付与されている名前空間に属する文書要素、前記追情報の名前空間に属する文書要素署名対象として抽出する署名対象抽出部と、
    前記署名対象抽出部で抽出された前記署名対象に署名を付与する署名付与部とを有する
    ことを特徴とする情報処理装置。
  5. 前記情報処理装置は、さらに、
    前記受信したメッセージの署名が有効であるか否かを検証する署名検証部を有する
    ことを特徴とする請求項4に記載の情報処理装置。
  6. 構造化文書を構成する複数の文書要素からなる署名付きのメッセージに追記する署名プログラムであって、
    コンピュータに、
    他のコンピュータからメッセージを受信すると、前記メッセージに追記する情報である追記情報の名前空間と前記メッセージの署名対象の名前空間が同じか否かを判定する追記情報判定処理と、
    前記追記情報判定処理の判定結果が同じでないとき、前記追記情報を前記メッセージに挿入する追記情報挿入処理と、
    前記メッセージから、既に署名が付与されている名前空間に属する文書要素、前記追情報の名前空間に属する要素署名対象として抽出する署名対象抽出処理と、
    前記署名対象抽出処理により抽出された前記署名対象に署名を付与する署名付与処理とを
    実行させるための署名プログラム。
JP2006324672A 2006-11-30 2006-11-30 署名方法、情報処理装置、および署名プログラム Expired - Fee Related JP5108285B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006324672A JP5108285B2 (ja) 2006-11-30 2006-11-30 署名方法、情報処理装置、および署名プログラム
US11/848,306 US20080133925A1 (en) 2006-11-30 2007-08-31 Signature Assigning Method, Information Processing Apparatus and Signature Assigning Program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006324672A JP5108285B2 (ja) 2006-11-30 2006-11-30 署名方法、情報処理装置、および署名プログラム

Publications (2)

Publication Number Publication Date
JP2008140043A JP2008140043A (ja) 2008-06-19
JP5108285B2 true JP5108285B2 (ja) 2012-12-26

Family

ID=39477263

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006324672A Expired - Fee Related JP5108285B2 (ja) 2006-11-30 2006-11-30 署名方法、情報処理装置、および署名プログラム

Country Status (2)

Country Link
US (1) US20080133925A1 (ja)
JP (1) JP5108285B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8301894B2 (en) * 2008-01-10 2012-10-30 International Business Machines Corporation Method and apparatus for applying digital signatures to translated content
WO2011103886A1 (en) * 2010-02-26 2011-09-01 Nec Europe Ltd. A method for processing a soap message within a network and a network
CA2716982C (en) * 2010-10-06 2016-07-19 Ibm Canada Limited - Ibm Canada Limitee Digital signatures on composite resource documents
US11863509B2 (en) * 2015-12-18 2024-01-02 Amazon Technologies, Inc. Publish-subscribe message transformation
US10277561B2 (en) 2016-07-22 2019-04-30 International Business Machines Corporation Database management system shared ledger support

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496930B1 (en) * 1997-12-18 2002-12-17 Matsushita Electric Industrial Co., Ltd. Message receiving apparatus and message transmitting apparatus
JP3730498B2 (ja) * 2000-09-19 2006-01-05 株式会社東芝 署名用記憶媒体
US7500017B2 (en) * 2001-04-19 2009-03-03 Microsoft Corporation Method and system for providing an XML binary format
US7003497B2 (en) * 2001-05-23 2006-02-21 International Business Machines Corporation System and method for confirming electronic transactions
JP4470384B2 (ja) * 2003-03-25 2010-06-02 富士ゼロックス株式会社 情報処理装置、ジョブ処理装置、指示データ作成装置及び署名プロキシ装置
US8127224B2 (en) * 2003-06-11 2012-02-28 Wtvii, Inc. System for creating and editing mark up language forms and documents
JP4546105B2 (ja) * 2004-02-03 2010-09-15 株式会社日立製作所 メッセージ交換方法、およびメッセージ変換システム
JP4509611B2 (ja) * 2004-03-18 2010-07-21 東芝ソリューション株式会社 電子署名保証システム、プログラム及び装置
JP2006094080A (ja) * 2004-09-24 2006-04-06 Hitachi Ltd 署名検証装置
JP4728104B2 (ja) * 2004-11-29 2011-07-20 株式会社日立製作所 電子画像の真正性保証方法および電子データ公開システム
JP2007221373A (ja) * 2006-02-15 2007-08-30 Canon Inc 通信装置及び前記通信装置における通信制御方法
US20080072334A1 (en) * 2006-09-18 2008-03-20 Todd Bailey System and method for electronic collaboration

Also Published As

Publication number Publication date
JP2008140043A (ja) 2008-06-19
US20080133925A1 (en) 2008-06-05

Similar Documents

Publication Publication Date Title
US8856532B2 (en) Digital signatures of composite resource documents
US9009477B2 (en) Archiving electronic content having digital signatures
JP4041013B2 (ja) 外部xml有効性検証装置を利用するxmlパージング装置及び方法
US8688992B2 (en) System and method for generating agreements
CN110785760A (zh) 用于登记数字文档的方法和系统
KR20060097579A (ko) 인증서 발행을 위한 포맷-독립적 시스템 및 방법
US20040078577A1 (en) Method and apparatus for providing xml document encryption
JP2007325257A (ja) データ通信システム、データ通信方法及びデータ通信プログラム
JP5108285B2 (ja) 署名方法、情報処理装置、および署名プログラム
Wu et al. Redactable signatures for signed CDA documents
Boritz et al. Assurance reporting for XBRL: XARL (extensible assurance reporting language)
US12019788B2 (en) Method and system for registering digital documents
JP4151432B2 (ja) Xml署名・暗号化手順生成システム
JP4546105B2 (ja) メッセージ交換方法、およびメッセージ変換システム
Hwang et al. An operational model and language support for securing XML documents
Boyar et al. Quotable signatures for authenticating shared quotes
Sinha et al. A formal solution to rewriting attacks on SOAP messages
JP2007265291A (ja) 入出力画面生成用プログラム、方法、及びサーバ機
Taft et al. The application/pdf media type
Berbecaru et al. A Practical Approach to expressing digitally signed documents
KR20020096616A (ko) 전자문서에 대한 xml 형태의 전자서명 생성/검증 장치및 방법
Hwang et al. Design and Implementation of the Document HTML System for Preserving Content Integrity.
Leitold et al. Reconstruction of electronic signatures from eDocument printouts
Abd El-Aziz et al. A comprehensive presentation to XML signature and encryption
Berbecaru et al. Towards concrete application of electronic signature

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110607

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120508

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120705

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: 20121002

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121005

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151012

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees