(57)【特許請求の範囲】
【請求項１】
構造化文書を構成する構造要素ごとに電子署名を付与する情報処理装置であって、
前記構造要素を予め定められた属性に分類する分類手段と、
前記構造化文書の出力先と関連付けて、前記構造要素の属性のうち、どの属性を電子署名の検証対象とするかを記述したデータを保存する保存手段と、
前記構造要素に電子署名を付与する付与手段と、
前記保存手段により保存されたデータと前記構造化文書のデータとを参照して、電子署名が付与された前記構造要素のうち、どの構造要素を電子署名の検証対象とするかを示す、前記構造化文書の出力先に対応するツリーデータを生成し、前記構造化文書のデータに前記ツリーデータを挿入する挿入手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記構造要素に付与された電子署名を検証する場合に、
前記構造化文書のデータに挿入された前記ツリーデータを参照し、電子署名の検証対象とされた構造要素に付与された電子署名の検証を行う検証手段を、更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記構造要素の属性は、
該構造要素がメタ情報であることを示すメタ情報属性と、
該構造要素がプリントチケットであることを示すプリントチケット属性と、
該構造要素が印刷範囲の対象外とされた構造要素であることを示す印刷範囲対象外属性と、
該構造要素が他の構造要素とリンクが貼られていない構造要素であることを示す無リンク属性とのうち、いずれかであることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記構造化文書の出力先が変更されると、前記保存手段により保存されたデータと前記構造化文書のデータとを参照して、前記構造化文書のデータに挿入された前記ツリーデータを変更する変更手段を、更に備えることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記構造化文書は、ＸＰＳであることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
構造化文書を構成する構造要素ごとに電子署名を付与する情報処理装置において実行される情報処理方法であって、
前記情報処理装置の分類手段が、前記構造要素を予め定められた属性に分類する分類工程と、
前記情報処理装置の保存手段が、前記構造化文書の出力先と関連付けて、前記構造要素の属性のうち、どの属性を電子署名の検証対象とするかを記述したデータを保存する保存工程と、
前記情報処理装置の付与手段が、前記構造要素に電子署名を付与する付与工程と、
前記情報処理装置の挿入手段が、前記保存工程により保存されたデータと前記構造化文書のデータとを参照して、電子署名が付与された前記構造要素のうち、どの構造要素を電子署名の検証対象とするかを示す、前記構造化文書の出力先に対応するツリーデータを生成し、前記構造化文書のデータに前記ツリーデータを挿入する挿入工程と、
を備えることを特徴とする情報処理方法。
【請求項７】
請求項６に記載の情報処理方法の各工程をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子ファイルに署名を付与する情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
電子署名技術は、電子ファイルの作成者を証明し、かつその電子ファイルが改竄されていないことを保証するために、暗号化技術を利用するものである。例えば、電子ファイル又はそのダイジェストを暗号化し、その暗号化された値を元の電子ファイルに付与するのが電子署名の付与である。電子署名を検証する場合は、上記の暗号化された電子ファイル又はそのダイジェスト値を復号化する。そして、元の電子ファイル又はそのダイジェストと復号化された値とが等しい場合、改竄がないことを保証する。しかし、上記のような電子署名技術では、電子ファイル全体として改竄の有無を検証することは可能であるが、電子ファイルのどの箇所が改竄されたかを特定する事ができなかった。
【０００３】
そのような問題をＸＭＬ等の構造化文書において解決するために、特許文献１には、構造化文書を構成する各構造要素から署名を生成し、生成された署名（暗号）を構造に対応した１つの署名に結合するという技術が記載されている。
【０００４】
また、構造化文書の情報をデータベース等に格納して、バックエンドシステム等で活用する場合を考える。その場合、構造化文書のコンテンツの先頭と最後に含まれる空白・ＴＡＢ等の情報は、無効なデータとして扱われ、トリミング等の技術によって削除してから、データベースに格納される。そのため、データベースに格納された情報から元の構造化文書を再構築する場合には、空白・ＴＡＢ等の情報が欠落している場合が考えられる。そのような場合、データベースに格納された署名付き構造化文書の署名を検証すると、空白・ＴＡＢ等が欠落しているので、改竄ありとして判断されてしまう。
【０００５】
そのような問題を解決する方法として、特許文献２においては、構造化文書を署名する際、署名対象データから可視性を高める等のため含まれている空白・ＴＡＢ等のデータを削除した有効な署名対象データを抽出した上で署名を施す署名技術が記載されている。加えて、署名対象データから空白・ＴＡＢ等のデータを削除した有効な署名対象データを抽出した上で署名を検証する技術が記載されている。
【０００６】
一方、構造化文書には文書内に印刷に関係のないデータが含まれている事もある。例えば、作成日時や作成者といったメタ情報や、実際にはリンクがされていない構造要素等が挙げられる。また、構造化文書フォーマットの一つとしてＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）がある。ＸＰＳとは、Ｍｉｃｒｏｓｏｆｔ社が規定した構造化文書フォーマットであり、文書構造、描画情報、印刷設定（プリントチケット）等の情報を保持するＸＭＬとビットマップやフォントなどのバイナリリソースといった様々なパーツから構成されている。ＸＰＳの特徴の一つとして、印刷設定が電子文書内に含まれている事が挙げられる。このような構造化文書において、電子文書全体に署名が施された場合、印刷設定を変更しただけで改竄ありとして判断されてしまう。ＸＰＳではその仕様上、文書の構造要素毎に電子署名を付与することが容易であるため、今後は構造要素毎に署名を付与するアプリケーションやシステムがより普及することが考えられる。
【０００７】
また、電子署名による電子文書の保証範囲を電子文書の位置（保存場所）によって動的に変更したい場合がある。例えば、セキュリティレベルが高くない共有サーバ（若しくは、フォルダ）上で作成途中の文書を保存しておき、完成した時点でセキュリティレベルの高いフォルダに移動するというケースを考える。このような場合、セキュリティレベルの高くない共有サーバ等では、電子文書内に含まれるメタ情報や印刷設定等は保証の対象外でも良い。しかしながら、電子文書がセキュリティレベルの高いサーバ（若しくは、フォルダ）に存在する場合は、電子文書全体を保証範囲とすることが望ましい。即ち、文書を保存、移動した際に、文書の位置（ＵＲＬ、ＩＰアドレス、フォルダ等）によって保証範囲（検証）を動的に変更するシステムが求められている。
【０００８】
しかし、上述のように文書の保存先に応じて保証範囲を動的に変更する事を実現するためには従来技術では以下のような課題があった。即ち、特許文献１では、構造化文書に対して、各構造要素のツリーの深さレベルに応じて電子署名の付与、検証を行うものである。そのため、印刷設定のようなツリーの深さレベルによっては要不要を判断できない構造要素を保証の対象外とする事はできない。また、署名を付与する際に、検証範囲を決める必要があり、動的に保証範囲を変更する事ができない。また、特許文献２では、構造化文書に対して、予め定めておいたルールにそって有効署名対象データ（例えば空白、Ｔａｂ等を削除したデータ）を抽出した上で署名の付与を行う。また、検証時も署名付与時のルールにそって有効署名データを抽出し検証するものである。よって、署名付与時に検証範囲を決める必要があり、動的に保証範囲を変更する事ができない。
【特許文献１】特開２００２−２２９４４８号公報（段落００２３）
【特許文献２】特開２００５−３３３２３３号公報（段落００１０）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで、上記の点に鑑み、本発明は、文書を保存、移動した際に、文書の位置によって検証範囲を動的に変更することができる情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る情報処理装置は、構造化文書を構成する構造要素ごとに電子署名を付与する情報処理装置であって、構造要素を予め定められた属性に分類する分類手段と、構造化文書の出力先と関連付けて、構造要素の属性のうち、どの属性を電子署名の検証対象とするかを記述したデータを保存する保存手段と、構造要素に電子署名を付与する付与手段と、保存手段により保存されたデータと構造化文書のデータとを参照して、電子署名が付与された構造要素のうち、どの構造要素を電子署名の検証対象とするかを示す、構造化文書の出力先に対応するツリーデータを生成し、構造化文書のデータにツリーデータを挿入する挿入手段とを備える。
【発明の効果】
【００１１】
本発明によれば、文書を保存、移動した際に、文書の位置によって検証範囲を動的に変更することができることができる。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明を実施するための最良の形態について、図面を参照しながら詳しく説明する。なお、同一の構造要素には同一の参照番号を付して、説明を省略する。
＜実施例１＞
以下、本発明に関して詳細に説明する。図１は、本発明を適用可能な情報処理システムの構成を説明するブロック図である。なお、本システムにおける文書管理クライアント１０１、文書管理サーバ１０２、ファイル共有サーバ１０３、機密情報サーバ１０４、プルプリントサーバ１０５、印刷装置１０６は、それぞれ１台又は複数台接続されている。図１において、文書管理クライアント１０１、文書管理サーバ１０２、ファイル共有サーバ１０３、機密情報サーバ１０４、プルプリントサーバ１０５は情報処理装置であり、アプリケーションプログラム等の各種のプログラムを実行することができる。また、印刷装置１０６も情報処理装置であり、アプリケーションプログラム等の各種のプログラムを実行することができる。また、文書管理クライアント１０１、文書管理サーバ１０２、ファイル共有サーバ１０３、機密情報サーバ１０４、プルプリントサーバ１０５、印刷装置１０６は、ネットワーク１０７にケーブルを介して接続され、相互に通信することができる。ここで、ネットワーク１０７として、例えば、ＬＡＮ、ＷＡＮ、インターネットが用いられる。
【００１３】
文書管理クライアント１０１は、文書管理サーバ１０２に接続する各種サーバ（ファイル共有サーバ１０３、機密情報サーバ１０４等）の登録を行う場合に用いられる。また、文書管理クライアント１０１により、各種サーバに対する電子署名検証ルール（後述）を作成し、文書管理サーバ１０２に登録することができる。文書管理クライアント１０１は、電子文書の登録、登録されている電子文書リストの表示、電子文書の移動等を文書管理サーバ１０２に対して要求することができる。その結果、登録された各種サーバに電子文書の登録、リスト表示、又は、電子文書の移動を行うことができる。
【００１４】
文書管理サーバ１０２は、ユーザ、文書、接続されている各種サーバや印刷装置情報を管理するアプリケーションサーバであり、文書に関する情報、例えば、所有ユーザ、文書ＩＤ、文書ファイル等を保管し、参照することができる。また、文書管理サーバ１０２は、文書管理クライアント１０１が要求する文書の登録先、移動先を認識し、各種サーバに対応する電子署名検証ルール（後述）に基いて、電子文書に対して電子署名検証情報を付与する。その上で、文書管理サーバ１０２は、文書を指示されたサーバに登録、移動することができる。文書管理サーバ１０２にＷｅｂサーバ機能を持たせて、文書管理クライアント１０１からＷｅｂブラウザを用いてアクセスできるようにしてもよい。又は、文書管理クライアント１０１上で動作する専用アプリケーション（Ｗｅｂブラウザとは限らない）から、ＴＣＰ／ＩＰやＨＴＴＰ等の通信プロトコルを用いて、文書管理サーバ１０２に接続するように構成しても良い。その場合に、通信プロトコルは特に限定されない。
【００１５】
ファイル共有サーバ１０３、機密情報サーバ１０４、プルプリントサーバ１０５、印刷装置１０６は、それぞれファイルサーバとしての機能を持った情報機器である。特に、印刷装置１０６は、加えて印刷機能も有する。本発明においては、その他の特別な構成は、特に必要としない。
【００１６】
図２は、本発明における文書管理クライアント１０１と文書管理サーバ１０２のモジュール構成を説明する図である。まず、主な構成モジュールについて説明する。文書管理アプリケーション１０１１は、文書管理クライアント１０１上で動作するアプリケーションで、電子文書の登録、登録済みのリスト表示、移動等を文書管理サーバ１０２に対して要求する。その結果、文書管理サーバ１０２に登録された各種サーバに対して、電子文書の登録、リスト表示、移動が行われる。サーバ管理アプリケーション１０１２は、文書管理サーバ１０２に接続する各種サーバ（ファイル共有サーバ１０３等）の登録・削除を行う。また、各種サーバに対する電子署名検証ルール（後述）を作成し、文書管理サーバ１０２に登録する。
【００１７】
文書管理サーバ１０２は、ネットワーク１０７との接続手段であるネットワークインタフェース１０２１、文書管理サーバ１０２の動作を制御する文書管理部１０２２を含んでいる。また、文書管理サーバ１０２は、文書管理サーバ１０２に登録されている各種サーバの情報や各種サーバに対する電子署名検証ルール（後述）や登録されている文書情報等を管理するデータベース管理部１０２３を含んでいる。また、文書管理サーバ１０２は、各種サーバに対して設定されている電子署名検証ルールに基いて電子署名検証情報（後述する）を付与する電子署名付与部１０２４を含んでいる。また、文書管理サーバ１０２は、電子署名検証情報に基いて電子署名の検証を行う電子署名検証部１０２５、電子署名付与部１０２４、電子署名検証部１０２５の処理を行う際に構造化文書の構造を解析する構造化文書解析部１０２６を含んでいる。
＜ハードウェアの構成例＞
図３は、文書管理クライアント１０１、文書管理サーバ１０２として使用できる情報処理装置の構成を示すハードウェア構成図である。文書管理クライアント１０１及び文書管理サーバ１０２の機能は、図３の構成において、メモリ１０１４に格納されたプログラムがＣＰＵ１０１３により実行されることで実現される。また、図２の構成を実現するためのプログラムは、例えば、ハードディスク等の外部メモリ１０１５に格納される。外部メモリ１０１５は、フレキシブルディスクやＣＤＲＯＭ等の取り外し可能な記憶媒体が用いられても良い。ディスプレイ１０１８は、画像を表示し、Ｉ／Ｏインタフェース１０１６を介してネットワーク１０７等に接続されている。また、キーボード（又は、ポインティングデバイス等）１０１７により、オペレータが入力することができる。ファイル共有サーバ１０３、機密情報サーバ１０４、プルプリントサーバ１０５についても、上記と同じ構成である。印刷装置１０６については、上記の構成に加えて、各種情報機器からの印刷指示に従い印刷を行うことができる。印刷装置１０６内にも文書を保存できる外部メモリ１０１５相当のメモリが構成されても良い。
【００１８】
次に本実施形態におけるユーザ操作とそれに応じた各システムの動作内容について簡単に説明する。管理したい文書を登録（保存）するユーザは、文書管理クライアント１０１にて、管理したい文書とその登録場所を指定し、文書管理サーバ１０２にネットワーク１０７を介して通知する。文書管理サーバ１０２は、その通知に基いて、電子署名を施した上で文書を指定された場所に保存する。その際、後述する電子署名検証ルールに基いて、文書に対して登録先に応じた署名検証情報を格納しておく。
【００１９】
登録された文書を閲覧する場合に、文書管理クライアント１０１は、文書管理サーバ１０２から文書リストを取得して表示する。ユーザは、文書リストの中から閲覧したい文書を指定し、文書を閲覧することができる。更に、選択した文書の電子署名の検証を行う場合に、文書管理クライアント１０１は、文書管理サーバ１０２に電子署名の検証処理を要求する。文書管理サーバは、文書内に保持されている署名検証情報に基いて署名検証処理を実行する。署名検証情報については後述する。
【００２０】
登録された文書を移動する場合に、文書管理クライアント１０１は、文書管理サーバ１０２から文書リストを取得して表示する。ユーザは、文書リストの中から移動したい文書とその移動先を指定することができる。その際、後述する電子署名検証ルールに基いて、文書の移動先に応じて、署名検証情報を更新する。本実施形態では構造化文書としてＸＰＳを例に説明を進める。以下、ＸＰＳフォーマットについて簡単に説明する。なお、本実施形態では、ＸＰＳの署名付与・検証を例とするが、他の構造化文書においても本発明を適用することができる。
【００２１】
図４は、ＸＰＳファイルの概念図である。ＦＤＳパーツ（Fixed Document Sequence）４０１をジョブ、ＦＤパーツ（Fixed Document）４０２をドキュメント、ＦＰ（Fixed Page）４０３をページとして理解しても良い。ＦＤＳパーツ４０１は、必ず１つだけ存在し、複数のＦＤパーツ４０２を保持する。更に、各々のＦＤパーツ４０２は、複数のＦＰパーツ４０３を保持する。更に、これら任意のＦＤＳパーツ４０１、ＦＤパーツ４０２、ＦＰパーツ４０３にそれぞれ印刷設定を関連付けることができる。この印刷設定のことをプリントチケット４０４と呼ぶ。ここで、ＦＤＳパーツ４０１に関連付けた印刷設定をジョブレベルのプリントチケット、ＦＤパーツ４０２に関連付けた印刷設定をドキュメントレベルのプリントチケット、ＦＰパーツ４０３に関連付けた印刷設定をページレベルのプリントチケットという。ジョブレベルのプリントチケットは、ジョブの印刷設定を行う。ドキュメントレベルのプリントチケットは、ドキュメントの印刷設定を行う。ページレベルのプリントチケットは、ページの印刷設定を行う。また、リソース４０５は、フォントやビットマップといったバイナリリソースである。コアプロパティ４０６は、作成日時や作成者、最終印刷日時といったメタ情報を保持する。
【００２２】
図５は、図４のＸＰＳ概念図の各パーツに署名を施した場合の概念図である。この状態で、例えば、ＸＰＳファイルを印刷すると、コアプロパティの最終印刷日時が更新されるので、署名の検証を行うと「改竄あり」と判断されることになる。また、印刷設定を変更した後に、署名の検証を行った場合も同様に「改竄あり」と判断されることになる。
【００２３】
次に、電子署名検証ルールについてその概念を説明する。ここでも構造化文書としてＸＰＳを例に説明するが、他の構造化文書においても本発明を適用することができる。文書管理サーバ１０２に接続された各種サーバ毎に、構造化文書を構成する構造要素のうち、検証対象外（改竄されていても改竄とみなさない構造要素）の構造要素を決定するルールを以下から選択する（複数を組み合わせるようにしても良い）。本実施形態におけるルールとして、「メタ情報属性」「プリントチケット属性」「印刷範囲対象外属性」「無リンク要素属性」がある。本実施形態においては、これらのルールに基いて電子文書内に電子署名検証情報を挿入しておき、ルールが変更されると電子署名検証情報を更新（変更）するようにする。その結果、動的に署名検証範囲を変更することができる。このルール属性を本発明では電子署名検証ルールという。ここで、それぞれのルールについて簡単に説明する。なお、実際に文書に挿入する電子署名検証情報の内容と挿入する方法については後述する。
【００２４】
「メタ情報属性」
作成日時や作成者、最終印刷日時等のメタ情報を検証対象外とするルールである。ＸＰＳにおけるコアプロパティが該当する。
【００２５】
「プリントチケット属性（ＰＴ属性）」
印刷する際のレイアウト等の各種印刷設定情報を検証対象外とするルールである。ＸＰＳにおけるプリントチケットがこれに該当する。
【００２６】
「印刷範囲対象外属性」
文書内の一部を印刷する設定となっている場合（例えば、３ページの文書であるがプリントチケットの印刷設定では２ページ目まで印刷となっている場合）、印刷範囲対象外の構造要素を検証対象外とするルールである。
【００２７】
「無リング要素属性」
構造化文書のツリー構造において、ツリーの最上位が「Root」に繋がっていないような構造要素を検証対象外とするルールである。表現を変えると、リンクが貼られていないゴミの構造要素のことである。
【００２８】
本実施形態では上記の４つが予め定められているが、他の属性が定められてもよい。このようなルールを用いて、電子署名検証情報を文書内に挿入する。例えば、ファイル共有サーバ１０３は「メタ情報属性」「ＰＴ属性」「無リンク属性」を検証対象外とする情報を文書内に挿入し、検証する際に、その挿入された情報を元に検証するのである。例えば、図４で示したＸＰＳにおいては、図６の（ａ）で示すようなツリーの部分が検証対象の構造要素とされる。このツリーが示すツリーデータが、本実施形態における署名検証情報であり、本発明では以後、「署名検証対象ツリー」と呼ぶ。署名検証対象ツリー７０１を図７に示すように構造化文書内に挿入し、検証の際に、この署名検証対象ツリー７０１に基いて検証対象の構造要素を決定する。また、文書を移動したとき、即ち、検証ルールが変更された場合には、この署名検証対象ツリーを更新するようにする。例えば、機密情報サーバ１０４は、検証対象外とする構造要素を認めない設定であるとする。その場合に、図６の（ａ）で示した署名検証対象ツリーを図６の（ｂ）で示したようなツリーに更新する。これにより、文書の登録（保存）位置によって、署名検証範囲を動的に変更することができる。詳細については後述する。
【００２９】
次に、図８を用いて、サーバ管理アプリケーション１０１２を操作することにより、文書管理サーバ１０２に文書の登録を行うことができるサーバを登録する方法について説明する。図８は、サーバ管理アプリケーション１０１２におけるサーバの登録画面の一例を示す図である。ユーザは、登録するサーバ名とそのＩＰアドレスを入力８０１、８０２に、そのサーバについての署名検証ルールを入力８０３、８０４、８０５、８０６に入力する。ユーザが登録ボタン８０７を押下すると、サーバ管理アプリケーション１０１２は、ネットワーク１０７を介して登録情報を文書管理サーバ１０２に通知する。文書管理サーバ１０２は、その情報をネットワークインタフェース１０２１を介して受信する。データベース管理部１０２３は受信した登録情報を元に、図９に示したようなサーバ情報テーブルを保存し、登録を完了する。ここで、登録するサーバを追加することもできるし、削除することもできる。また、本実施形態において、図８に示す画面上で、ユーザが、検証対象（検証対象外ではなく）とする属性を選択できるようにしても良い。以上のように、受信した登録情報を元に、記述されたデータ（図９に示すようなサーバ情報テーブル）が作成される。本実施形態において、文書管理サーバ１０２から文書を出力し、他のサーバに文書の登録を行うのみでなく、文書管理サーバに接続された外部ストレージに文書の登録を行うように構成されても良い。即ち、文書管理サーバ１０２からの文書の出力先は、サーバであっても良いし、外部ストレージであっても良い。
【００３０】
次に、図１０を参照し、文書管理アプリケーション１０１１を操作して、文書管理サーバ１０２に文書を登録（保存）する方法について説明する。図１０は、文書管理アプリケーション１０１１のユーザ操作画面の一例を示す図である。ユーザは、登録する文書とその登録先のサーバを指定した上で、文書の登録ボタン１００１を押下する。ネットワーク１０７を介してデータベース管理部１０２３から受信することで、図９に示すサーバ情報テーブルのサーバ名を登録先のサーバとして文書管理アプリケーション１０１１に表示することができる。ユーザは、その中から登録先のサーバを選択する。登録ボタン１００１が押下されると文書管理アプリケーション１０１１は、登録情報（文書名、電子文書、登録するサーバ名等）を、ネットワーク１０７を介して文書管理サーバ１０２に通知する。一方、文書管理サーバ１０２は、その情報をネットワークインタフェース１０２１を介して受信する。文書管理部１０２２は、受信した登録情報を元に、電子文書名、電子文書の登録先、登録する文書を関連付ける文書ＩＤを発行し、図１１に示すような文書情報として保存する。更に、文書管理部１０２２は、電子署名付与部１０２４及び構造化文書解析部１０２６を制御し、登録された文書に対して電子署名及び登録先に応じた署名検証ツリーを文書内に生成する（詳細については後述する）。文書管理部１０２２は、指定されたサーバに電子文書ファイルの実体を保存し、図１１に示すような文書情報の文書データにその参照情報を加えた上で、データベース管理部１０２３に保存する。ここで、参照情報とは、文書データが実際に保存されるアドレスを指す。また、文書ＩＤ、文書名、登録サーバ名もあわせて文書情報に保存する。なお、登録したい文書を選択し、サーバリスト一覧１００２へＤ＆Ｄ（ドラッグ・アンド・ドロップ）した場合も文書の登録ボタン１００１を押下した場合と同様の処理を行う。
【００３１】
次に、図１０を参照して、文書管理アプリケーション１０１１を操作し登録済みの文書を移動する際及び検証する際の方法について説明する。文書管理アプリケーション１０１１は、データベース管理部１０２３において管理されているサーバ情報テーブル（図９）をネットワーク１０７を介して受信する。すると、既に登録されているサーバリストが、文書管理アプリケーション１０１１に表示される（図１０に示すサーバリスト一覧１００２）。また、データベース管理部１０２３において管理されている文書情報（図１１）をネットワーク１０７を介して受信する。すると、既に登録されている文書リストが文書管理アプリケーション１０１１に表示される（図１０に示す文書リスト１００３）。
【００３２】
ユーザは、その文書リスト１００３の中から移動する文書を選択し、移動先のサーバを指定し、文書の移動ボタン１００４を押下する。移動ボタン１００４が押下されると、文書管理アプリケーション１０１１は、移動情報をネットワーク１０７を介して文書管理サーバ１０２に通知する。一方、文書管理サーバ１０２は、その情報をネットワークインタフェース１０２１を介して受信する。文書管理部１０２２は、受信した移動情報を元に、電子文書を指定されたサーバに移動する。更に、文書管理部１０２２は、電子署名付与部１０２４及び構造化文書解析部１０２６を制御し、移動する文書に対して署名検証対象ツリーを更新する（詳細については後述する）。文書管理部１０２２は、図１１に示す文書情報の登録サーバ名を移動先のサーバに書き換え、処理を終了する。なお、移動したい文書を文書リスト１００３から選択してサーバリスト一覧１００２にＤ＆Ｄした場合も、文書の移動ボタン１００４を押下した場合と同様の処理を行う。
【００３３】
また、ユーザが文書を選択した状態で文書の検証ボタン１００５を押下すると、文書管理アプリケーション１０１１は、検証処理要求をネットワーク１０７を介して文書管理サーバ１０２に通知する。一方、文書管理サーバ１０２は、その情報をネットワークインタフェース１０２１を介して受信する。文書管理部１０２２は、受信した検証処理要求を元に、電子署名検証部１０２５及び構造化文書解析部１０２６を制御し、指定された文書に対して署名検証処理を実行し、その結果をユーザに通知する。通知の内容は、例えば、改竄の有無である。
【００３４】
署名検証対象ツリーの生成方法を述べる前に、ＸＰＳファイルのフォーマットの内部構造について説明する。図１２の（ａ）〜（ｄ）は、図４で示したＸＰＳファイルの内部構造の一部を示すものである。但し、説明のために簡略化しているので、正規のＸＰＳ仕様に則っていない。図１２の（ａ）に示す「FixedDocumentSequence」は、「FixedDocument1」、「FixedDocument2」(不図示）、「Job_PT.xml」、「Core_Property.xml」へのリンクを示す。「FixedDocument1」は、図１２の（ｂ）に示される「FixedDocument」の１つである。また、「Job_PT.xml」は、図１２の（ｃ）に示されるプリントチケットである。また、「Core_Property.xml」は、図１２の（ｄ）に示されるメタ情報である。このように、各構造要素それぞれが独立したファイルであり、ＸＭＬベースで、下位の構造要素とリンクし、全体として一つの構造化文書を構成するのがＸＰＳの仕様概念である。実際には、その構造要素群を圧縮することによって、ＺＩＰファイル化されている。
【００３５】
次に、図１３に示す文書管理サーバ１０２上で実行されるプログラムに関するフローチャートを参照し、文書管理アプリケーション１０１１によって文書が登録された場合の署名検証対象ツリーの生成方法について説明する。以下、登録される文書が構造化文書であることを前提として説明する。登録された文書が構造化文書ではない場合には、本処理を行う前に文書を構造化文書に変換する処理を行う。まず、文書管理部１０２２は、構造化文書解析部１０２６及び電子署名付与部１０２４を制御し、構造化文書を解析して各要素について電子署名を付与する（ステップＳ１３０１）。構造化文書解析部１０２６は、前述したＸＰＳの仕様に基づきファイルを解析し、その後、電子署名付与部１０２４は、各構造要素に電子署名を施す。この処理の結果、図４で示した構造化文書は、図５で示した構造化文書になる。また、内部的には、図１２で示したＸＭＬ構造から図１４の（ａ）〜（ｄ）に示したＸＭＬ構造になる。
【００３６】
次に、文書管理部１０２２は、ユーザが指定した登録先サーバの署名検証ルールを、データベース管理部１０２３において管理されているサーバ情報テーブル（図９）から取得する（ステップＳ１３０２）。
【００３７】
次に、ステップＳ１３０３〜Ｓ１３０５までの処理を通して、図１５に示したような内部構成情報を生成する。図１５は、図４で示したＸＰＳに対応している。パーツ名は構造要素のファイル名そのものを示し、Ｔａｇ（タグ）名は各構造要素の先頭Ｔａｇの名前である。また、ツリー情報は、構造化文書のリンク関係を解析した結果、各構造要素においてリンクされているものを「親」、リンクしているものを「子」として表現している。属性情報は、各構造要素の属性を示しており、「○」印は、その属性であることを示し、「×」印は、その属性ではないことを示す。
【００３８】
まず、ステップＳ１３０３で、登録される構造化文書を構造化文書解析部１０２６において解析し、ＸＰＳファイルを構成する各構造要素について、各構造要素のパーツ名と先頭Ｔａｇ名を検出する。次に、電子署名付与部１０２４は、ステップＳ１３０４で、各構造要素の各属性情報（メタ情報、プリントチケット、印刷範囲対象外、無リンク要素）を判定し、内部構成情報の属性情報の部分を生成する。メタ情報であるか否かとプリントチケットであるか否かは、図１６で示した属性分類テーブルと図１５に示すＴａｇ名とから判断される。本実施形態において、メタ情報属性となるのは、「CoreProperty」のみ、プリントチケット属性となるのは「PrintTicket」のみである。また、印刷対象外であるか否かは、プリントチケットから印刷範囲を解析することで判断される。図１２の（ｃ）の例では、「PrintRange」が「FixedDocument1.fdco」となっているので、「FixedDocument2.fdoc」層以下の構造要素は、印刷対象外と判断することができる。また、 「FixedDocumentSequence」から順次リンクをたどった結果、どこにもリンクが繋がっていない構造要素を「無リンク属性」と判定する。
【００３９】
次に、ステップＳ１３０５にて、電子署名付与部１０２４は、ステップＳ１３０２において読み込んだサーバ情報テーブル（図９）の署名検証ルールにそって、各構造要素が署名検証対象外の構造要素であるか否かを判断する。例えば、登録先のサーバがファイル共有サーバであった場合に、図９のサーバ情報テーブルの「ファイル共有サーバ」を参照し、その属性フラグと図１５に示す属性情報とを比較する。
【００４０】
例えば、図１５において、構造要素「FixedDocument1」は、どの属性情報にも属していない。ここで、図９のサーバ情報テーブルにおいて、ファイル共有サーバは、「メタ情報」、「プリントチケット」、「無リンク」の属性情報を検証対象外とすることが示されている。従って、図１５の構造要素「FixedDocument1」は、検証対象と判断される（即ち、「○」印とされる）。
【００４１】
また、図１５において、構造要素「Job_PT」は、プリントチケットの属性に属している。ここで、上述のように、図９のサーバ情報テーブルにおいて、ファイル共有サーバは、「プリントチケット」の属性情報を検証対象外とすることが示されている。従って、図１５の構造要素「Job_PT」は、検証対象外として判断される（即ち、「×」印とされる）。
【００４２】
以上の処理を行うと、図４（図１２）で示したＸＰＳで、かつ、登録先がファイル共有サーバである場合に、図１５で示した内部構成情報が生成できる。この内部構成情報をＸＭＬ化した例を図１７に示す。図１７において、「Sign = True」となっている構造要素が、検証の際に検証するべき構造要素となる。図１７で示したＸＭＬが署名検証対象ツリーである。最後に、ステップＳ１３０６にて、署名対象ツリーをＸＰＳ文書に格納し処理を終了する。図１８に署名対象ツリーを格納したＸＰＳ文書の例を示す。但し、図１８には、署名検証対象ツリーをリンクする部分のみが示されている。また、図７は、その概念を示す図である。
【００４３】
次に、図１９に示す文書管理サーバ１０２上で実行されるプログラムに関するフローチャートを参照し、文書管理アプリケーション１０１１によって、文書の登録先が移動された場合の署名検証対象ツリーの更新方法について説明する。ここでは、図７、図１５、図１７、図１８で用いたＸＰＳファイル（ファイル共有サーバに登録されている文書）を機密情報サーバ１０４に移動する際の処理を例として説明する。まず、ユーザ操作によって文書移動指示がなされると、文書管理部１０２２は、ユーザが指定した移動先サーバの署名検証ルールをデータベース管理部１０２３において管理されているサーバ情報テーブル（図９）から取得する（ステップＳ１９０１）。本例においては、機密情報サーバ１０４に移動するので、図９に示す「機密情報サーバ」を参照する。
【００４４】
次に、ステップＳ１９０２〜Ｓ１９０４までの処理を通して、署名検証対象ツリーを更新する。まず、文書管理部１０２２は、構造化文書解析部１０２６を制御して、構造化文書を解析し、構造化文書から署名検証対象ツリーを取得する（ステップＳ１９０２、Ｓ１９０３）。この例では図１７が署名検証対象ツリーであり、図１８で示す「FixedDocumentSequence」でいうところの「＜SignatureTree＞」の部分にそのファイルパスが記載されている。次に、文書管理部１０２２は、構造化文書解析部１０２６及び電子署名付与部１０２４を制御し、署名検証対象ツリーを更新する。
【００４５】
例えば、図１５において、構造要素「FixedDocument1」は、どの属性情報にも属していない。ここで、図９のサーバ情報テーブルにおいて、機密情報サーバは、検証対象外とする属性情報を指定していない。従って、図１５の構造要素「FixedDocument1」は、検証対象とされたままである（即ち、「○」印のままである）。
【００４６】
また、図１５において、構造要素「Job_PT」は、プリントチケットの属性に属している。ここで、上述のように、図９のサーバ情報テーブルにおいて、機密情報サーバは、検証対象外とする属性情報を指定していない。従って、図１５の構造要素「Job_PT」は、検証対象と判断される（即ち、「○」印に変更される）。
【００４７】
以上の処理を行うと、図２０で示すように内部構成情報が更新される。本例において、機密情報サーバは、検証対象外とする属性を指定していない署名検証ルールであるので、図２０に示す検証対象情報は、全て「○」印とされている。この内部構成情報をＸＭＬ化した例を図２１に示す。図１７と異なり、全ての構造要素が検証処理の際に検証すべき構造要素である状態を示している（「Sign = True」として示される）。以上のようにして、署名検証対象ツリーを更新することで、動的に署名対象範囲を変更する事ができる。
【００４８】
次に、図２２に示す文書管理サーバ１０２上で実行されるプログラムに関するフローチャートを参照し、文書管理アプリケーション１０１１によって、文書の検証指示がなされた場合の検証方法について説明する。ここでは、図７、図１５、図１７、図１８で用いたＸＰＳファイル（ファイル共有サーバに登録されている文書）を検証する際の処理を例として説明する。ユーザ操作によって文書検証指示がされると、文書管理部１０２２は、構造化文書解析部１０２６を制御し、構造化文書を解析して、構造化文書から署名検証対象ツリーを取得する（ステップＳ２２０１、Ｓ２２０２）。本例においては、図１７が署名検証対象ツリーであり、図１８で示す「FixedDocumentSequence」でいうところの「＜SignatureTree＞」の部分にそのファイルパスが記載されている。
【００４９】
次に、文書管理部１０２２は、構造化文書解析部１０２６及び電子署名検証部１０２５を制御し、署名検証対象ツリーにおいて署名検証対象とされている全ての構造化要素（即ち、検証対象外とされた構造要素以外）について検証処理を実行する。図１７に示す署名検証ツリーでいうところの「Sign = True」となっている構造要素が、署名検証対象とされる。各構造要素への参照情報は、例えば、図１７に示す「Target = FixedDocumentSequence.fdeq」のようなリンク情報をたどることで取得できる。この各構造要素の検証処理を実行し、１つでも改竄のある構造要素があった場合には、その文書は、「改竄あり」と判断し、その旨をユーザに通知する。このように、署名検証対象ツリーによって検証対象であると判断された構造要素について検証を行うことで、文書の登録先で保護すべき構造要素の改竄の有無を検証することができる。 
以上の説明のように、文書管理システムで文書を登録する際、及び、文書管理システム内で文書を移動する際に、署名検証対象ツリーを作成又は更新することにより、文書の位置（保存場所）に対応して、動的に署名検証範囲を変更ことができる。例えば、印刷設定は、ファイル共有サーバにおいては署名検証対象外、プルプリントサーバにおいては署名検証対象とすることができる。また、署名検証対象ツリーはリンク構造であるので、容易に変更することができ、文書位置に応じて署名自体を付与し直す必要がない。
【図面の簡単な説明】
【００５０】
【図１】本発明を適用可能な情報処理システムのブロック構成を示す図である。
【図２】本実施形態における文書管理クライアントと文書管理サーバのモジュール構成を示す図である。
【図３】文書管理クライアント又は文書管理サーバとして使用可能な情報処理装置のハードウエア構成を示す図である。
【図４】ＸＰＳファイルの概念を示す図である。
【図５】図４に示すＸＰＳファイルの各パーツに署名を施した場合を示す図である。
【図６】図５において検証対象の構造要素が定められた場合を説明する図である。
【図７】署名検証対象ツリーを挿入された構造化文書を示す図である。
【図８】サーバ管理アプリケーションにおけるサーバの登録画面の一例を示す図である。
【図９】本実施形態におけるサーバ情報テーブルを示す図である。
【図１０】文書管理アプリケーションのユーザ操作画面の一例を示す図である。
【図１１】電子文書名、電子文書の登録先、登録する文書を関連付ける文書情報を示す図である。
【図１２】図４で示したＸＰＳファイルの内部構造の一部を示すものである。
【図１３】文書アプリケーションによって文書が登録された場合に、署名検証対象ツリーを生成する処理の手順を示すフローチャートである。
【図１４】図１２で示したＸＭＬ構造における各構造要素に電子署名が施されたＸＭＬ構造を示す図である。
【図１５】本実施形態における内部構成情報を示す図である。
【図１６】タグ名と属性とを関連付ける属性分類テーブルを示す図である。
【図１７】図１５に示す内部構成情報をＸＭＬ化した例を示す図である。
【図１８】署名対象ツリーを格納したＸＰＳの例を示す図である。
【図１９】文書アプリケーションによって文書の登録先が移動された場合に、署名検証対象ツリーを更新する処理の手順を示すフローチャートである。
【図２０】図１５に示す内部構成情報が更新された例を示す図である。
【図２１】図２０に示す内部構成情報をＸＭＬ化した例を示す図である。
【図２２】文書アプリケーションによって文書の検証指示がなされた場合に、検証の処理の手順を示すフローチャートである。
【符号の説明】
【００５１】
４０１  ＦＤＳパーツ
４０２  ＦＤパーツ
４０３  ＦＰパーツ
４０４  プリントチケット
４０５  リソース
４０６  コアプロパティ
７０１  署名検証対象ツリー
【図１】
0005046984.tif 000002
【図２】
0005046984.tif 000003
【図３】
0005046984.tif 000004
【図４】
0005046984.tif 000005
【図５】
0005046984.tif 000006
【図６】
0005046984.tif 000007
【図７】
0005046984.tif 000008
【図８】
0005046984.tif 000009
【図９】
0005046984.tif 000010
【図１０】
0005046984.tif 000011
【図１１】
0005046984.tif 000012
【図１２】
0005046984.tif 000013
【図１３】
0005046984.tif 000014
【図１４】
0005046984.tif 000015
【図１５】
0005046984.tif 000016
【図１６】
0005046984.tif 000017
【図１７】
0005046984.tif 000018
【図１８】
0005046984.tif 000019
【図１９】
0005046984.tif 000020
【図２０】
0005046984.tif 000021
【図２１】
0005046984.tif 000022
【図２２】
0005046984.tif 000023