(57)【特許請求の範囲】
【請求項１】
ネットワークにおけるＳＯＡＰ（Simple Object Access Protocol）メッセージの処理方法において、ＸＭＬ（Extended Markup Language）ベースのＳＯＡＰメッセージが、バイナリコンテンツを有するフラグメントを含み、該バイナリコンテンツが、該バイナリコンテンツへの参照をＳＯＡＰメッセージ内に残してＳＯＡＰメッセージのＭＴＯＭ（Message Transmission Optimization Mechanism）アタッチメント内に移動され、該アタッチメントが、署名・暗号化プロセスによって署名および／または暗号化がそれぞれ行われ、
ハッシュ手段が、署名プロセス中に、署名されるフラグメント自体のハッシュに加えて、同じフラグメントをバイナリコンテンツを除いてハッシュし、および／または、
暗号化手段が、暗号化プロセス中に、フラグメント自体の暗号化に加えて、バイナリコンテンツの代わりにバイナリコンテンツへの参照のみを含むフラグメントを暗号化する、
ことを特徴とする、ネットワークにおけるＳＯＡＰメッセージの処理方法。
【請求項２】
署名および／または暗号化プロセス中に、バイナリコンテンツが、テキスト符号化形式でフラグメント内に存在することを特徴とする請求項１に記載の方法。
【請求項３】
バイナリコンテンツを除いて追加的にハッシュされたフラグメントに基づいて、トランスポートプロトコル内で使用するための追加ブロックが作成されることを特徴とする請求項１または２に記載の方法。
【請求項４】
追加ブロックが、それぞれの署名の変換エレメントに追加される変換ブロックであることを特徴とする請求項３に記載の方法。
【請求項５】
バイナリコンテンツへの参照のみを含む追加的に暗号化されたフラグメントに基づいて、トランスポートプロトコル内で使用するための暗号化プロパティが作成されることを特徴とする請求項１ないし４のいずれか１項に記載の方法。
【請求項６】
暗号化プロパティが、暗号化ブロックに追加されることを特徴とする請求項５に記載の方法。
【請求項７】
暗号化プロパティが、テキスト符号化形式で存在することを特徴とする請求項５または６に記載の方法。
【請求項８】
バイナリコンテンツへの参照が、ＸＯＰ（XML-binary Optimized Packaging）参照であることを特徴とする請求項１ないし７のいずれか１項に記載の方法。
【請求項９】
ＳＯＡＰメッセージが、サーバ側１パスストリーミング処理のためにシリアライズされることを特徴とする請求項１ないし８のいずれか１項に記載の方法。
【請求項１０】
サーバ側処理中に、ハッシュ値の計算が、並列に実行されることを特徴とする請求項９に記載の方法。
【請求項１１】
署名および／または暗号化プロセスのために、ＷＳセキュリティ（Web Services Security）が使用されることを特徴とする請求項１ないし１０のいずれか１項に記載の方法。
【請求項１２】
バイナリコンテンツが、写真、医療画像またはソフトウェアバイナリであることを特徴とする請求項１ないし１１のいずれか１項に記載の方法。
【請求項１３】
ＸＭＬ（Extended Markup Language）ベースのＳＯＡＰ（Simple Object Access Protocol）メッセージを処理可能なネットワークにおいて、ＳＯＡＰメッセージが、バイナリコンテンツを有するフラグメントを含み、該バイナリコンテンツが、該バイナリコンテンツへの参照をＳＯＡＰメッセージ内に残してＳＯＡＰメッセージのＭＴＯＭ（Message Transmission Optimization Mechanism）アタッチメント内に移動され、該アタッチメントが、署名・暗号化プロセスによって署名および／または暗号化がそれぞれ行われ、
署名プロセス中に、署名されるフラグメント自体のハッシュに加えて、同じフラグメントをバイナリコンテンツを除いてハッシュするハッシュ手段、および／または、暗号化プロセス中に、フラグメント自体の暗号化に加えて、バイナリコンテンツの代わりにバイナリコンテンツへの参照のみを含むフラグメントを暗号化する暗号化手段を備えたことを特徴とするネットワーク。
【請求項１４】
前記ネットワークはＩＰ（Internet Protocol）ネットワークであることを特徴とする請求項１ないし１２のいずれか１項に記載の方法。
【請求項１５】
前記ネットワークはＩＰ（Internet Protocol）ネットワークであることを特徴とする請求項１３項に記載のネットワーク。
【請求項１６】
前記ネットワークは、請求項１ないし１２のいずれか１項に記載の方法を実行するネットワークであることを特徴とする請求項１３または１５に記載のネットワーク。
【請求項１７】
前記テキスト符号化形式はｂａｓｅ６４符号化形式であることを特徴とする請求項２に記載の方法。
【請求項１８】
前記テキスト符号化形式はｂａｓｅ６４符号化形式であることを特徴とする請求項７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク、特にＩＰ（Internet Protocol）ネットワークにおけるＳＯＡＰ（Simple Object Access Protocol）メッセージの処理方法に関する。ＸＭＬ（Extended Markup Language）ベースのＳＯＡＰメッセージが、バイナリコンテンツを有するフラグメントを含む。該バイナリコンテンツが、該バイナリコンテンツへの参照をＳＯＡＰメッセージ内に残してＳＯＡＰメッセージのＭＴＯＭ（Message Transmission Optimization Mechanism）アタッチメント内に移動される。該アタッチメントは、署名・暗号化プロセスによって署名および／または暗号化がそれぞれ行われる。また、本発明は、ＳＯＡＰ（Simple Object Access Protocol）メッセージを処理可能なネットワーク、特にＩＰ（Internet Protocol）ネットワークに関する。ＸＭＬ（Extended Markup Language）ベースのＳＯＡＰメッセージが、バイナリコンテンツを有するフラグメントを含む。該バイナリコンテンツが、該バイナリコンテンツへの参照をＳＯＡＰメッセージ内に残してＳＯＡＰメッセージのＭＴＯＭ（Message Transmission Optimization Mechanism）アタッチメント内に移動される。該アタッチメントは、署名・暗号化プロセスによって署名および／または暗号化がそれぞれ行われる。
【背景技術】
【０００２】
ＸＭＬメッセージの処理がバイナリメッセージフォーマットに比べて非常にリソースを消費することは周知の事実である。この性質は、メッセージまたはメッセージ部分がＸＭＬセキュリティ手段（ＸＭＬ署名、ＸＭＬ暗号化）を用いて署名または暗号化される場合に不利である。もちろん、上記のことはＳＯＡＰメッセージにも当てはまる。というのは、ＳＯＡＰはＸＭＬベースであり、使用されるセキュリティ手段、すなわちＷＳセキュリティ（Web Services Security）はＸＭＬセキュリティに基づいているからである。このため、ウェブサービスフレームワーク開発者は数年来、メッセージ処理フローの最適化に取り組んでいる。１つの有望なアプローチは、ストリーミング処理パラダイムである。これは、セキュリティ保護されてないメッセージについては、例えばウェブサービスフレームワークＡｐａｃｈｅ  Ａｘｉｓ２ですでに採用されており、セキュリティ保護されているメッセージについては、最初の成果が現れている。
【０００３】
現在の技術、特にＸＭＬ暗号化および署名の手続きならびに対応するメッセージのストリーミング処理に関する情報を提供する文書は以下の通りである。
１．非特許文献１
２．非特許文献２
３．非特許文献３
４．非特許文献４
５．非特許文献５
６．非特許文献６
７．非特許文献７
【０００４】
ＳＯＡＰメッセージ処理の基本的問題は、その高いリソース消費である。リソース消費は、メッセージ部分が暗号化または署名されているときにはさらに高くなる。ストリーミングメッセージ処理は、リソース消費を低減する１つの方法である。しかし、セキュリティ保護されているＭＴＯＭアタッチメントは、ネットワークストリームからのストリーミング１パス処理を妨げる。
【０００５】
より正確には、ＳＯＡＰメッセージが、（１）ＭＴＯＭアタッチメントを使用し、（２）このアタッチメントのうちの１つ以上がＷＳセキュリティを用いてセキュリティ保護されている場合、ストリーミングメッセージ処理は今のところ実現可能でない。その理由を以下で説明する。アタッチメントとしてトランスポートされるべきＳＯＡＰ文書のバイナリ部分はＭＴＯＭ参照によって置き換えられる。ネットワーク上には、まずこのＳＯＡＰ文書が送信され、次にバイナリ部分がＭＴＯＭアタッチメントとして送信される。しかし、アタッチメントは参照位置においてＳＯＡＰメッセージ内に仮想的に埋め込まれている。ＳＯＡＰ文書に対するいくつかの代表的なオペレーション（文書サブツリーの抽出または移動等）の場合、この性質は無視することができる。しかし、他のいくつかのオペレーション（署名検証や暗号化されたコンテンツの復号のためのハッシュ値計算等）の場合、ＳＯＡＰメッセージ内の参照を処理する時点で、アタッチメントを全部読まなければならない。したがって、この場合、メッセージの１パスストリーミング処理は破綻する。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Bartel, Mark, Boyer, John, Fox, Barb, LaMacchia, Brian, and Simon, Ed: XML Signature Syntax and Processing, W3C Recommendation, 2002.
【非特許文献２】Imamura, Takeshi, Dillaway, Blair, and Simon, Ed: XML Encryption Syntax and Processing, W3C Recommendation, 2002.
【非特許文献３】Gudgin, Martin, Mendelsohn, Noah, Nottingham, Mark, and Ruellan, Herve: SOAP Message Transmission Optimization Mechanism, W3C Recommendation, 2005.
【非特許文献４】Gruschka, Nils, Luttenberger, Norbert, and Herkenhoner, Ralph: Event-based SOAP Message Validation for WS-SecurityPolicy-enriched Web Services, Proceedings of the 2006 International Conference on Semantic Web & Web Services, 2006.
【非特許文献５】Govindaraju, Madhusudhan, Slominski, Aleksander, Chiu, Kenneth, Liu, Pu, van Engelen, Robert, and Lewis, Michael J.: Toward Characterizing the Performance of SOAP Toolkits, Proceedings of the Fifth IEEE/ACM International Workshop on Grid Computing (GRID'04), IEEE Computer Society, 365-372, 2004.
【非特許文献６】Lu, Wei, Chiu, Kenneth, Slominski, Aleksander, and Gannon, Dennis: A Streaming Validation Model for SOAP Digital Signature, In The 14th IEEE International Symposium on High Performance Distributed Computing (HPDC-14), 2005.
【非特許文献７】Imamura, Takeshi, Clark, Andy, and Maruyama, Hiroshi: A stream-based implementation of XML Encryption, XMLSEC '02: Proceedings of the 2002 ACM workshop on XML security, ACM Press, 11-17, 2002.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、ネットワークにおけるＳＯＡＰメッセージの処理方法および対応するネットワークにおいて、署名および／または暗号化されたＭＴＯＭアタッチメントを有するＳＯＡＰメッセージのストリーミング処理を簡単な形で可能にするような改良およびさらなる展開を行うことである。
【課題を解決するための手段】
【０００８】
本発明によれば、上記の目的は、請求項１の構成を備えた方法および請求項１３の構成を備えたネットワークによって達成される。
【０００９】
請求項１に記載の通り、本方法は、署名プロセス中に、署名されるフラグメント自体のハッシュに加えて、同じフラグメントがバイナリコンテンツを除いてハッシュされ、および／または、暗号化プロセス中に、フラグメント自体の暗号化に加えて、バイナリコンテンツの代わりにバイナリコンテンツへの参照のみを含むフラグメントが暗号化されることを特徴とする。
【００１０】
請求項１３に記載の通り、本ネットワークは、署名プロセス中に、署名されるフラグメント自体のハッシュに加えて、同じフラグメントがバイナリコンテンツを除いてハッシュされることが可能であるように構成されたハッシュ手段、および／または、暗号化プロセス中に、フラグメント自体の暗号化に加えて、バイナリコンテンツの代わりにバイナリコンテンツへの参照のみを含むフラグメントが暗号化されることが可能であるように構成された暗号化手段を備えたことを特徴とする。
【００１１】
本発明によって認識されたこととして、出力ＳＯＡＰメッセージに署名および／または暗号化されたアタッチメントに関する追加情報を単に追加することによって、署名および／または暗号化されたＭＴＯＭアタッチメントを有するＳＯＡＰメッセージのストリーミング処理が可能となる。具体的には、署名プロセス中に、署名されるフラグメント自体のハッシュに加えて、同じフラグメントがバイナリコンテンツを除いてハッシュされ、適当な形でＳＯＡＰメッセージに追加されることが可能である。同様に、暗号化プロセス中に、フラグメント自体の暗号化に加えて、バイナリコンテンツの代わりにバイナリコンテンツへの参照のみを含むフラグメントが暗号化される。この追加情報は、出力ＳＯＡＰメッセージに追加されることが可能である。サーバ側でのＳＯＡＰメッセージの処理中には、出力ＳＯＡＰメッセージに追加された追加部分に基づいて、署名および／または暗号化されたＭＴＯＭアタッチメントを有するＳＯＡＰメッセージの１パスストリーミング処理が可能となる。
【００１２】
好ましくは、署名および／または暗号化プロセス中に、バイナリコンテンツは、テキスト符号化形式、好ましくはｂａｓｅ６４符号化形式でフラグメント内に存在してもよい。このようなテキスト符号化形式に基づいて、通常の署名および暗号化技術が、署名および／または暗号化プロセス中に使用可能である。
【００１３】
本発明の方法において、特に署名プロセス中に、バイナリコンテンツを除いて追加的にハッシュされたフラグメントに基づいて、トランスポートプロトコル内で使用するための追加ブロックを作成してもよい。好ましくは、このような追加ブロックは、それぞれの署名の変換エレメントに追加することが可能な変換ブロックであってもよい。上記のステップに基づいて、通常のＳＯＡＰメッセージへの簡単な拡張により、ＳＯＡＰメッセージの１パスストリーミング処理が可能となる。
【００１４】
本発明のさらに好ましい実施形態に関して、バイナリコンテンツへの参照のみを含む追加的に暗号化されたフラグメントに基づいて、トランスポートプロトコル内で使用するための暗号化プロパティを作成してもよい。このような暗号化プロパティは、メッセージ処理のためにサーバ側で１パスストリーミングを行うための暗号化ブロックに単に追加されてもよい。
【００１５】
好ましくは、暗号化プロパティは、テキスト符号化形式、好ましくはｂａｓｅ６４符号化形式で存在してもよい。これにより、通常の暗号化技術が、本発明の方法において使用可能である。
【００１６】
非常に簡単で効果的な方法に関して、バイナリコンテンツへの参照は、ＸＯＰ（XML-binary Optimized Packaging）参照であってもよい。このようなＸＯＰ参照は、元のメッセージ内に参照部分のみを残してメッセージの外部へバイナリコンテンツを移動する可能性を提供することができる。
【００１７】
非常に効果的な１パスストリーミング処理に関して、ＳＯＡＰメッセージは、サーバ側１パスストリーミング処理のためにシリアライズされてもよい。
【００１８】
ＳＯＡＰメッセージの非常に効果的な処理に関して、サーバ側処理中に、ハッシュ値の計算は、１パスストリーミング方式でそれぞれ並列に実行されてもよい。
【００１９】
非常に簡単で確実な方法を提供するため、署名および／または暗号化プロセスのためにＷＳセキュリティ（Web Services Security）を使用してもよい。これにより、上記の方法を単純化するために既知の署名および／または暗号化技術の使用が可能となる。
【００２０】
フラグメント内のバイナリコンテンツの種類はいかなる特定のアプリケーションにも限定されない。好ましい実施形態において、バイナリコンテンツは、写真、医療画像またはソフトウェアバイナリであってもよい。
【００２１】
本発明は、現在のウェブサービスセキュリティ仕様およびメッセージ処理方法への拡張を導入することにより、上記の問題を克服して、暗号化および／または署名されたＭＴＯＭアタッチメントを有するＳＯＡＰメッセージのストリーミング処理を可能にする。より詳細には、本発明は、ウェブサービスセキュリティ仕様のＸＭＬ署名およびＸＭＬ暗号化に対する拡張を規定する。これらの拡張は、本発明で規定されるメカニズムをサポートするウェブサービスクライアントによって、出力ＳＯＡＰメッセージに追加され、署名または暗号化されたアタッチメントに関する追加情報を含む。本発明で規定されるメカニズムをサポートするウェブサービスサーバは、これらの拡張を用いて、１パスストリーミング方式でこのメッセージを効率的に処理することができる。これにより、サーバ側でパフォーマンスが向上し、リソース消費が低減される。しかし、標準化されたメッセージフォーマットは変更されないので、ＳＯＡＰメッセージ内の署名および暗号化は、本発明で規定されるメカニズムをサポートしないウェブサービスサーバによっても依然として処理可能である。
【００２２】
本発明は、ＭＴＯＭアタッチメントに関連してＳＯＡＰセキュリティに対する拡張を提供する。アタッチメントを含むＳＯＡＰメッセージ全体の１パスサーバ側ストリーミング処理が提供される。その結果、ウェブサービスサーバのパフォーマンスが向上し、リソース消費が低減される。現在の標準およびフレームワークとの完全な下位互換性がある。
【００２３】
本発明を好ましい態様で実施するにはいくつもの可能性がある。このためには、一方で請求項１に従属する諸請求項を参照しつつ、他方で図面により例示された本発明の好ましい実施形態についての以下の説明を参照されたい。図面を用いて本発明の好ましい実施形態を説明する際には、本発明の教示による好ましい実施形態一般およびその変形例について説明する。
【図面の簡単な説明】
【００２４】
【図１】ＭＴＯＭ  ＳＯＡＰメッセージの標準フォーマットおよびシリアライゼーションを例示する図である。
【図２】署名されたＭＴＯＭ  ＳＯＡＰメッセージの標準フォーマット、処理およびシリアライゼーションを例示する図である。
【図３】暗号化されたＭＴＯＭ  ＳＯＡＰメッセージの標準フォーマット、処理およびシリアライゼーションを例示する図である。
【図４】本発明による署名されたＭＴＯＭ  ＳＯＡＰメッセージを作成する実施形態を例示する図である。
【図５】本発明による暗号化されたＭＴＯＭ  ＳＯＡＰメッセージを作成する実施形態を例示する図である。
【図６】本発明による署名されたＭＴＯＭ  ＳＯＡＰメッセージのサーバ側処理の実施形態を例示する図である。
【図７】本発明による暗号化されたＭＴＯＭ  ＳＯＡＰメッセージのサーバ側処理の実施形態を例示する図である。
【発明を実施するための形態】
【００２５】
以下、図１〜図７を用いて、本発明およびその実施形態を説明する。図１〜図３は、セキュリティ保護および暗号化されたＭＴＯＭメッセージを作成する標準的アプローチを示す。図４〜図７は、本発明の方法を示す。
【００２６】
図１は、ＭＴＯＭ  ＳＯＡＰメッセージの標準フォーマットおよびシリアライゼーションを例示している。この図１は、ＭＴＯＭアタッチメントがどのように作成されるかを例示している。左側には、バイナリコンテンツを有するＳＯＡＰメッセージフラグメントを示している。バイナリコンテンツは、ここでは写真（photo）である。ＸＭＬはテキストフォーマットであるので、バイナリコンテンツはテキスト符号化形式でのみトランスポート可能である。このための最も一般的な形式はｂａｓｅ６４符号化である。バイナリコンテンツ（特に、大規模な）のこの種の処理はいくつかの問題を生じる。主として、ｂａｓｅ６４の使用は、メモリおよびネットワークでのスペース消費を増大させる（３３％）。さらに、大規模なＳＯＡＰ文書の処理は、より困難でリソースを消費する。これらの問題を克服するため、従来、ＳＯＡＰメッセージからこれらの論理的な「外部文書部分」を取り出し、それらの部分をアタッチメントとしてトランスポートするいくつかの可能性が公開されている。これらのうち、ＭＴＯＭは、例えばＳｗＡ（SOAP with Attachments）のいくつかの欠点を除去しているので、最良のアプローチとみなされている。
【００２７】
図１に示すように、ＭＴＯＭは、メモリ内にメッセージを格納するために、いわゆるＸＯＰインフォセット（XOP infoset）を使用する。これにより、バイナリデータ（ここでは写真）が、ＳＯＡＰメッセージの外部に元の形式で保持され、ＳＯＡＰメッセージはバイナリファイルへの参照（<xop:Include>）のみを含む。
【００２８】
最後に、図の右側には、ＸＯＰインフォセットがネットワーク上でどのようにトランスポートされるかを示している。シリアライズされたＸＭＬ部分およびバイナリ部分が、トランスポートプロトコル（通常、ＨＴＴＰ（HyperText Transfer Protocol））内の別個のＭＩＭＥ（Multipurpose Internet Mail Extensions）ブロックとしてトランスポートされる。このようにして、バイナリ部分はそのまま（符号化されずに）、ＳＯＡＰメッセージへのアタッチメントとしてトランスポート可能である。
【００２９】
図２は、署名されたＭＴＯＭ  ＳＯＡＰメッセージの標準フォーマット、処理およびシリアライゼーションを例示している。図２は、ＭＴＯＭ対応ＳＯＡＰメッセージに対する署名作成プロセスを示している。ＸＯＰインフォセットの重要な性質は、<xop:Include>参照が「値渡し」参照であることである。すなわち、すべてのオペレーションは、ＸＭＬ文書を、その文書内に埋め込まれたバイナリコンテンツとともに処理しなければならない。いくつかのオペレーション（例えば<m:photo>ノードの移動）の場合には、これは考慮する必要がない。というのは、その場合、ＸＯＰインフォセットに対する作用と元のインフォセットに対する作用は等価であるからである。しかし、署名オペレーションは、署名されるノードのコンテンツ全体を読んでハッシュすることを必要とするので、この性質に従わなければならない。
【００３０】
そこで、図２に示すように、ＭＴＯＭアタッチメントを含むノードに署名する前に、アタッチメントをＸＭＬ文書に埋め込まなければならない。これは実際には、元のインフォセットを再構成することになる。その後、ｂａｓｅ６４符号化されたバイナリアタッチメントををハッシュすることを含めて、ノードに署名することができる。署名計算後、ＸＯＰ部分を復元し（図２には示していない）、バイナリ部分を再びアタッチメントとしてトランスポートすることができる。
【００３１】
このようなシリアライゼーションがサーバ側で処理される場合、これを１パスストリーミング方式で行うことはできない。<m:photo>ノードを処理した後、ハッシュ計算が実行可能となるようにアタッチメントを完全に受信するまで、ハッシュ計算を一時停止しなければならない。これは、ＳＯＡＰ処理を妨げる挙動となる。
【００３２】
図３は、暗号化されたＭＴＯＭ  ＳＯＡＰメッセージの標準フォーマット、処理およびシリアライゼーションを例示している。この図は、ＭＴＯＭアタッチメントを含むＳＯＡＰメッセージフラグメントを暗号化する方法を例示している。この場合も、暗号化オペレーションを適用する前に、アタッチメントをＸＭＬ文書内に再埋め込み（およびｂａｓｅ６４符号化）しなければならない。暗号化後、ＸＭＬ暗号化ブロックが、暗号化されたブロック（上記の例では、<m:photo>エレメント）を置き換える。この暗号化ブロックは、再び、（ｂａｓｅ６４符号化された）バイナリコンテンツノード、すなわち、<xenc:CipherData>エレメントのコンテンツを含む。その後、このバイナリコンテンツは、ＸＭＬ文書から抽出され、ＭＴＯＭアタッチメントとしてシリアライズされることが可能である。なお、署名作成とは異なり、暗号化されたメッセージのアタッチメントは、暗号化されていないメッセージにおけるものと同一でないことに注意しなければならない。
【００３３】
暗号化されていないＸＭＬ文書の部分（ここでは<m:photo>ラッパ）は暗号化プロセスによってアタッチメントに移動されているので、この場合も、サーバ側での処理すなわち復号は、１パスストリーミング方式で実行することはできない。
【００３４】
図４は、本発明による署名されたＭＴＯＭ  ＳＯＡＰメッセージを作成する方法の実施形態を例示している。この図４は、ＭＴＯＭアタッチメントを含むフラグメントに対するＸＭＬ署名を作成するための本発明のアプローチを示している。結果として得られるメッセージは、サーバ側で１パスストリーミング処理が可能である（後の図６参照）。署名プロセスの詳細は以下の通りである。署名されるフラグメント自体（上記の例では<m:photo>）のハッシュに加えて、同じフラグメントがバイナリコンテンツを除いてハッシュされる。したがって、以下の変換ブロックが、それぞれの署名の<ds:Transforms>エレメントに追加される。
【００３５】
<ds:Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2">
<dsf:XPath Filter="intersect">
xpath-of-signed-element
</dsf:XPath>
<dsf:XPath Filter="subtract">
xpath-of-wrapping-element/*
</dsf:XPath>
</ds:Transform>
【００３６】
Prefix Namespace
dsf http://www.w3.org/2002/06/xmldsig-filter2
ds http://www.w3.org/2000/09/xmldsig#
【００３７】
xpath-of-signed-elementおよびxpath-of-wrapping-elementの値は、署名されるべきエレメントおよびバイナリコンテンツ（「wrapping element」）の親エレメントを参照するＸＰａｔｈ式によって置き換えなければならない。図４で用いた例では、いずれの式も//m:photoである。
【００３８】
図５は、本発明による暗号化されたＭＴＯＭ  ＳＯＡＰメッセージを作成する方法の実施形態を例示している。この図５は、ＭＴＯＭアタッチメントを含むフラグメントを暗号化するための本発明のアプローチを示している。結果として得られるメッセージは、サーバ側で１パスストリーミング処理が可能である（後の図７参照）。暗号化プロセスの詳細は以下の通りである。「元のインフォセット」からのフラグメント（上記の例では、バイナリコンテンツを含むエレメント<m:photo>）に加えて、「ＸＯＰインフォセット」からの同じフラグメント（上記の例では、ＸＯＰ参照を含むエレメント<m:photo>）が暗号化される。第２の暗号化オペレーションの結果が、（ｂａｓｅ６４符号化されて）暗号化プロパティとして暗号化ブロックに追加される。より正確には、以下のエレメントが<xenc:EncryptionProperties>ブロックに追加される。
【００３９】
<xenc:EncryptionProperty>
<nec:EncrytedBinaryWrapper>
encrypted-xop-infoset-fragment
</nec:EncrytedBinaryWrapper>
</xenc:EncryptionProperty>
【００４０】
Prefix Namespace
xenc http://www.w3.Org/2001/04/xmlenc#
nec http://www.neclab.eu/2010/10/secmtom
【００４１】
最後に、ＳＯＡＰメッセージをシリアライズする一方、<xenc:CipherValue>のコンテンツがＭＴＯＭアタッチメントとして抽出され、<nec:EncrytedBinaryWrapper>のコンテンツはＸＭＬ文書内に残る。アタッチメントは大規模なバイナリアタッチメントを目的としており、ラッパは比較的小さいと想定されるので、これは、アタッチメントの基本理念に従っている。
【００４２】
図６は、本発明による署名されたＭＴＯＭ  ＳＯＡＰメッセージのサーバ側処理の実施形態を例示している。この図６は、前述のアプローチ（図４参照）を用いて作成された、署名されたメッセージに対する、本発明が提案するサーバ側処理を示している。２つのハッシュ値（ｄｉｇ１およびｄｉｇ２）の計算が、１パスストリーミング方式でそれぞれ並列に実行されることがわかる。１パスストリーミング中に、閉じラッピングエレメント（上記の例では</m:photo>エレメント）のキャッシュが実行される。しかし、ラッピングエレメントは比較的小さいという仮定に基づくと、これはほんのわずかなメモリ消費しか意味しない。
【００４３】
最後のＳＯＡＰメッセージエレメントを読んだ後、ＸＯＰインフォセット版のメッセージを確認することができることがわかる。
【００４４】
図７は、暗号化されたＭＴＯＭ  ＳＯＡＰメッセージのサーバ側処理の実施形態を例示している。この図７は、前述のアプローチ（図５参照）を用いて作成された、暗号化されたメッセージに対する、本発明が提案するサーバ側処理を示している。ＸＯＰインフォセットの暗号化されたエレメントが作成され、ストリーミング方式でサービスアプリケーションに転送されていることがわかる。１パスストリーミング中に、ラッピングエレメントのキャッシュが実行されるが、これは、アタッチメントを復号している間にラッパを除去するために必要とされる。
【００４５】
最後のＳＯＡＰメッセージエレメントを読んだ後、ＸＯＰインフォセット版のメッセージが完全に復号されていることがわかる。
【００４６】
もちろん、署名および暗号化のための上記の本発明によるアプローチは、さまざまなアプリケーションを提供するためにシームレスに組み合わせることができる。したがって、ネストしたセキュリティメカニズムが完全にサポートされる。
【００４７】
本発明の効果は次の通りである。第１に、本方法によれば、完全にストリーミング方式でサーバ側メッセージ処理が可能となる。これにより、一般的に、文書ベースの方法に比べて、大幅にリソースが低減される。また、最後のＳＯＡＰエレメントを読んだ後（すなわち、アタッチメントを読む前）にＳＯＡＰメッセージは完全に復号・確認されるので、本方法によれば、例えばアタッチメントを必要としないデバイスタスクを開始するための「早期前処理」が可能となる。また、アタッチメント処理にリソースを消費せずに、不正なメッセージコールを検出・拒否することが可能となる。
【００４８】
本発明は、セキュリティ保護されたＭＴＯＭアタッチメントにおけるＳＯＡＰメッセージフォーマットおよび処理の拡張を提供する。セキュリティ保護されたＳＯＡＰ／ＭＴＯＭメッセージフォーマットのこの新規な使用法は、署名および／または暗号化されたＭＴＯＭ  ＳＯＡＰメッセージの１パスストリーミングによるサーバ側処理を提供する。
【００４９】
本発明の方法の結果として、サーバ側メッセージ処理のメモリ消費および計算コストが低減される（グリーンコンピューティング）。本発明の方法は、関連する標準および従来のウェブサービスフレームワークとの完全な互換性を提供する。
【００５０】
上記の説明および添付図面の記載に基づいて、当業者は本発明の多くの変形例および他の実施形態に想到し得るであろう。したがって、本発明は、開示した具体的実施形態に限定されるものではなく、変形例および他の実施形態も、添付の特許請求の範囲内に含まれるものと解すべきである。本明細書では特定の用語を用いているが、それらは総称的・説明的意味でのみ用いられており、限定を目的としたものではない。
【図１】
0005451897.tif 000002
【図２】
0005451897.tif 000003
【図３】
0005451897.tif 000004
【図４】
0005451897.tif 000005
【図５】
0005451897.tif 000006
【図６】
0005451897.tif 000007
【図７】
0005451897.tif 000008