〔許可証の形態〕
本発明において発行される許可証を、ドキュメントファイルの管理責任者による許可の形態から整理すると、以下の側面の組み合わせとなる。
A.許可の与え方
(1)回数を限定した許可(切符・回数券タイプ)
(2)期間を限定した許可(定期券タイプ)
B.許可を与える対象
(1)ある特定のドキュメントファイルへのアクセス許可
(2)ある種別のドキュメントファイル群へのアクセス許可
C.許可する内容
(1)特定のアクセスを許可(例:処理要件付きで印刷を許可)
(2)特定のアクセスの要件解除を許可(例:印刷時の地紋出力要件を解除)
〔第1の実施形態〕
本発明を好適に実施した第1の実施形態について説明する。
図1に、本実施形態にかかるドキュメント保護・印刷システムの構成を示す。
本実施形態にかかるドキュメント保護・印刷システムは、配布者端末201、ユーザ端末202、プリンタ203およびアクセスコントロールサーバ204を有する。
配布者端末201およびユーザ端末202は、表示装置(例えば、LCD)、入力装置(例えば、キーボード)、外部記録装置(例えば、FDD、HDD)などを備えたコンピュータ端末を適用できる。なお、配布者端末201にはドキュメント保護プログラム211が、ユーザ端末202にはドキュメント印刷プログラム221がそれぞれ実装されている。
ドキュメント保護プログラム211は、ドキュメントファイルに配布者端末201の使用者(配布者)の入力操作に応じて処理要件を設定するとともに、暗号化アルゴリズム(RC4、Triple DES、IDEAなど)を用いてドキュメントファイルを暗号化し、保護ドキュメントを生成する処理を行うプログラムである。図2はドキュメント保護プログラム211の構成例を示したものであり、暗号化部211aと暗号鍵取得部211bと属性付与部211cと属性登録部211dとを含んでいる。各部の機能については後の動作において説明する。
図1に戻り、ドキュメント印刷プログラム221は、ユーザ端末202の使用者(ユーザ)の入力操作に応じ、保護ドキュメントを復号するとともに処理要件の一部として設定されている印刷要件に応じた印刷処理をプリンタ203に実行させる処理を行うプログラムである。図3はドキュメント印刷プログラム221の構成例を示したものであり、復号部221aと復号鍵取得部221bと印刷要件取得部221cと印刷処理部221dとを含んでいる。また、図4は図3における印刷処理部221dの構成例を示したものであり、要件処理部221eとドキュメント加工部221fとプリンタドライバ221gと警告表示部221hとログ記録部221iとを含んでいる。各部の機能については後の動作において説明する。
図1に戻り、アクセスコントロールサーバ204は、配布者がドキュメント保護プログラム211により保護ドキュメントを生成する際に保護ドキュメントに関する情報を取得して登録すると共に、ユーザがドキュメントにアクセス(例えば、印刷)しようとする場合に、ドキュメント印刷プログラム221からの要求に応じてアクセス制御リスト(Access Control List:ACL)を参照し、ドキュメントにアクセスする権限があるか否か、処理要件がどのように設定されているかを取得するサーバである。また、アクセスコントロールサーバ204は、本発明の特徴的な機能の一つとして、ドキュメントの管理責任者からの要求を受けて許可証を発行し登録する機能も有している。
アクセスコントロールサーバ204には、ユーザ各人の認証用の情報(ユーザ名とパスワードとの組)が格納されたユーザデータベース241と、ユーザ各人ごとに設定された処理要件(印刷処理の要件を特に印刷要件という)を含むACLが登録されるACLデータベース242と、ドキュメントを指定して特定のユーザに発行された許可証を格納する許可証データベース243とが接続されている。
図5はアクセスコントロールサーバ204の構成例を示したものであり、属性DB登録部204aとユーザ認証部204bとアクセス権限確認部204cと印刷要件取得送付部204dと許可証発行部204eと許可証確認部204fとを含んでいる。各部の機能については後の動作において説明する。
なお、ACLの構成例を図6に示す。ACLはユーザ名(User Name)、アクセスタイプ(Access Type)、許可情報(Permission)および処理要件(Requirement)をパラメータとして構成される。そして、このACLは、図7に示すように、後述するドキュメントID(Document ID)および暗号鍵(Key)と関連付けられて一つのレコードとしてACLデータベース242に記録保持される。
また、図8は許可証データベース243の構成例を示したものであり、ドキュメントを特定するドキュメントID(Document ID)と、アクセスを許可するユーザ名(User Name)と、許可証情報(Authorization)とから構成されている。同図の下段は許可証情報(Authorization)の構成例を示したものであり、アクセスの種類(例えば「印刷」)を示すアクセスタイプ(Access type)と、許可/不許可を示す許可情報(Permission)と、許可証のタイプを示す許可証タイプ(Azn type: Authorization type)と、許可証の条件を示すパラメータ(Parameter)と、印刷時等に強制される処理を示す処理要求(Requirements)とを含んでいる。許可証タイプが「Ticket」のものは許可の与え方を回数で指定するタイプ(切符・回数券タイプ)のもので、その許可証を使ってアクセスを行う場合にはパラメータ部に記載されている回数が1回減らされる。また、許可証タイプが「Pass」のものは許可の与え方を期限で指定するタイプ(定期券タイプ)のもので、パラメータ部に記載されている期限内であればアクセスが許可される。
なお、配布者の入力操作に応じてドキュメント保護プログラム211がドキュメントファイルに設定する印刷要件の例としては、地紋印刷(Background Dot Pattern:以下、BDPという)、機密印刷(Private Access:以下、PACという)、電子透かし(Digital Watermark:以下、DWMという)の付加、バーコード付加(Embedding Barcode:以下、EBCという)、機密ラベルスタンプ(Security Label Stamp:以下、SLSという)などが挙げられる。
以下、本実施形態にかかるドキュメント保護・印刷システムの動作について説明する。最初にシステム全体の動作について説明する。
図1において、配布者は、配布者端末201を操作してこれにドキュメントファイルを実装しておく。例えば、入力装置を用いて配布者がドキュメントファイルを作成してもよいし、外部記録装置を用いて情報記録媒体に記録されたドキュメントファイルを読み取らせても良い。
ドキュメントファイルにセキュリティを設定する場合、配布者は配布者端末201の入力装置を操作してドキュメントファイルをドキュメント保護プログラム211に受け渡す。ドキュメントファイルを取得したドキュメント保護プログラム211は、ACLの設定を配布者に要求する。例えば、ドキュメント保護プログラム211は、配布者端末201の表示装置にメッセージを表示するなどして、ACLの設定を要求する。図9はACLの設定を要求する画面の例を示したものであり、ユーザ名、アクセス許可、印刷要件の設定が行えるようになっている。すなわち、ACLのエントリとなるグループまたはユーザを追加し、そのグループまたはユーザに割り当てるアクセス権限を指定する。その際、必要に応じて印刷要件を指定することができ、印刷要件として設定可能なものの中から選択(チェック)を行い、更に補足情報が必要なものについては入力を行う。図ではウォーターマークの文字列として「CONFIDENTIAL」を指定している。そして、暗号化ボタンを押すことにより設定内容が取り込まれる。なお、この画面では保護するドキュメントファイルを指定することもできるようになっている。
配布者が配布者端末201の入力装置を介してACLを設定すると、ドキュメント保護プログラム211はこれを取得する。
ACLを取得したドキュメント保護プログラム211は、ドキュメントファイルごとに固有のドキュメントID(Document ID)と暗号化および復号に使用する暗号鍵(Key)とを生成し、ACLをこれらに関連付けてアクセスコントロールサーバ204へ送信し、ACLデータベース242への登録を要求する。
また、ドキュメント保護プログラム211は、暗号鍵を用いて暗号化したドキュメントファイルに対してドキュメントIDを付加して保護ドキュメントを生成する。
配布者は、ドキュメント保護プログラム211が生成した保護ドキュメントをユーザに受け渡す。
ここで、保護ドキュメントを生成した後に、何らかの理由でACLに設定したユーザとは異なるユーザにアクセスを許可したり、あるいは設定した制限を軽減してアクセスさせたりしたい状況が発生した場合、管理責任者はアクセスコントロールサーバ204に対して許可証の発行処理を行う。すなわち、アクセスコントロールサーバ204は操作する者(管理責任者)に対してユーザ名およびパスワードを求め、許可証を発行する権限があるか否かをユーザデータベース241を参照して確認する。権限が確認された場合、ドキュメントID、ユーザ名(アクセスを許可する相手)、アクセスタイプ、許可情報、許可証タイプ、パラメータ、印刷要件を管理責任者から受け取り、許可証データベース243に登録する。
ユーザがドキュメントを印刷しようとする場合には、ユーザ端末202に保護ドキュメントを実装する。例えば、情報記録媒体に記録された保護ドキュメントを外部記録装置を用いてユーザ端末202に読み取らせても良いし、ユーザ端末202が配布者端末201と通信可能である場合には、通信網を介して配布者端末201から保護ドキュメントを取得するようにしてもよい。
ユーザが、ユーザ端末202の入力装置を介してドキュメント印刷プログラム221に対して印刷を指示すると、印刷を要求されたドキュメント印刷プログラム221は、ユーザを認証するために必要となるユーザ名とパスワードの入力をユーザに要求する。例えば、ドキュメント印刷プログラム221は、ユーザ端末202の表示装置にメッセージを表示するなどして、ユーザ名とパスワードの入力を要求する。図10はユーザ名(ユーザID)とパスワードを要求する画面の例を示したものであり、キーボード等によって入力が行えるようになっている。
ドキュメント印刷プログラム221は、ユーザから入力されたユーザ名とパスワードとをアクセスコントロールサーバ204へ送信して、ユーザ認証を要求する。
アクセスコントロールサーバ204は、ドキュメント印刷プログラム221から受け渡されたユーザ名とパスワードとを用いてユーザ認証を行い、ユーザを特定する。
ユーザを特定すると、アクセスコントロールサーバ204は、許可証データベース243およびACLデータベース242を参照し、ドキュメントファイルを印刷する権限がユーザにあるか否かや、ユーザがドキュメントファイルを印刷する際には、どのような印刷要件が設定されているかを取得する。
ユーザにドキュメントファイルを印刷する権限がある場合、アクセスコントロールサーバ204は、その旨を示す認証情報とともに、保護ドキュメントを復号するための暗号鍵とユーザがドキュメントファイルを印刷する際の印刷要件とをユーザ端末202を介してドキュメント印刷プログラム221に通知する。
アクセスコントロールサーバ204から認証情報とともに、暗号鍵と印刷要件とを取得したドキュメント印刷プログラム221は、暗号鍵を用いて保護ドキュメントを復号してドキュメントファイルに復元する。
そしてドキュメント印刷プログラム221は、印刷要件を満たすようにプリンタ203に印刷処理を実行させる。例えば、ドキュメントファイルに前述したBDPが印刷要件として設定されている場合には、ドキュメントの内容とともに地紋画像を印刷する。
これにより、ドキュメントファイルを印刷する際に、配布者がユーザ各人に対して設定した印刷要件を強制することが可能となる。
なお、ユーザが印刷要件について意識していない場合があると共に、印刷要件によっては特定のプリンタでないと処理できないものもあるため、印刷の実行前にその旨の情報がユーザに提供されることが望ましい。図11はユーザ端末202の表示装置上に表示される確認画面の例を示したものであり、印刷要件と利用できるプリンタとが表示され、使用するプリンタを選択することができるようになっている。
次に、ドキュメントを保護する際のドキュメント保護プログラム211およびアクセスコントロールサーバ204の動作、許可証を発行する際のアクセスコントロールサーバ204の動作、および保護ドキュメントをドキュメントファイルに復元して印刷する際のドキュメント印刷プログラム221およびアクセスコントロールサーバ204の動作についてさらに詳しく説明する。
図12に、ドキュメント保護プログラム211が保護ドキュメントを生成する際の動作を示す。ドキュメント保護プログラム211は、配布者端末201の入力装置における配布者の入力操作によってドキュメントファイルとACLとを取得すると、ドキュメントファイルを暗号化および復号するための暗号鍵を生成する。そして、ドキュメント保護プログラム211は、生成した暗号鍵を用いてドキュメントファイルを暗号化して、暗号化ドキュメントを生成する。
さらにドキュメント保護プログラム211は、ドキュメントファイルごとに固有のドキュメントIDを暗号化ドキュメントに添付して保護ドキュメントを生成する。
保護ドキュメントを生成した後、ドキュメント保護プログラム211は配布者端末201の通信機能を用いて、暗号鍵とACLとドキュメントIDとをアクセスコントロールサーバ204へ送信し、これらの登録をアクセスコントロールサーバ204に要求する。
暗号鍵とACLとドキュメントIDとをドキュメント保護プログラム211から受け渡されたアクセスコントロールサーバ204は、図7に示したように、これらを関連付けて一つのレコードとしてACLデータベース242に記録保持する。
上記の動作を図2および図5に基づいてさらに詳しく説明する。
まず、図2において、ドキュメント保護プログラム211の暗号化部211aは、配布者から引き渡されたドキュメントファイルに対し、暗号鍵取得部211bが生成した暗号鍵を用いて暗号化を行い、この暗号化ドキュメントを属性付与部211cに渡す。
属性付与部211cはドキュメントIDを生成し、暗号化部211aから渡された暗号化ドキュメントにドキュメントIDを付与して保護ドキュメントとして出力する。
また、属性登録部211dは配布者からACLを受け取るとともに、暗号鍵取得部211bから暗号鍵を、属性付与部211cからドキュメントIDをそれぞれ受け取り、アクセスコントロールサーバ204に対してこれらのドキュメントID、暗号鍵、ACLを渡して登録を要求する。
次いで、図5において、アクセスコントロールサーバ204の属性DB登録部204aは、渡されたドキュメントID、暗号鍵、ACLをACLデータベース242に登録する。
なお、上記の例においてはドキュメントIDの生成や暗号鍵の生成をドキュメント保護プログラム211が行う場合を示したが、これらの処理はアクセスコントロールサーバ204や不図示のサーバなどで行っても良い。
また、配布者端末201とアクセスコントロールサーバ204との間が専用回線ではなくネットワークを介して接続されており、暗号鍵などを送信する際に盗聴される懸念がある場合には、SSL(Secure Socket Layer)を用いて通信を行えばよい。
ドキュメント保護プログラム211がアクセスコントロールサーバ204と通信する際のプロトコルは、どのようなものを用いてもよい。例えば、分散オブジェクト環境を導入し、Java(R)RMI(Remote Method Invocation)やSOAP(Simple Object Access Protocol)をベースとして情報を送受信するようにしても良い。その場合、アクセスコントロールサーバ204は、例えば「register(String docId, byte[] key, byte[] acl)」のようなメソッドを実装するようにしてもよい。SOAPであれば、HTTPSの上でSOAPプロトコルをやりとりし、RMIであればSSLベースのSocketFactoryを用いてRMIを実行するようにすれば、ネットワーク上でのセキュリティを確保できる。
次に、許可証を発行する際のアクセスコントロールサーバ204の動作について説明する。
図5において、アクセスコントロールサーバ204のユーザ認証部204bは管理責任者から本人のユーザ名およびパスワードを入力し、ユーザデータベース241を参照して許可証を発行する権限があるか否かを確認する。権限が確認された場合、許可証発行部204eは管理責任者からドキュメントID、ユーザ名(アクセスを許可する相手)、アクセスタイプ、許可情報、許可証タイプ、パラメータ、印刷要件を受け取り、許可証データベース243に登録する。
次に、ドキュメント印刷プログラム221が保護ドキュメントを印刷する際の動作について説明する。
図13に、保護ドキュメントを印刷する際のドキュメント印刷プログラム221およびアクセスコントロールサーバ204の動作の流れを示す。
ドキュメント印刷プログラム221は、ユーザ端末202の入力装置におけるユーザの入力操作によって保護ドキュメントとユーザ名とパスワードとを取得すると、保護ドキュメントに添付されているドキュメントIDを取得する。
そして、ユーザ名とパスワードとドキュメントIDとアクセスタイプ(ユーザが要求する処理を示す情報。ここでは、保護ドキュメントを印刷しようとするので、“print”となる。)とをアクセスコントロールサーバ204へ送信して、アクセス権限があるか否かのチェックを要求する。なお、図14はアクセスコントロールサーバ204へのSOAPによる問い合わせの例を示す図であり、ユーザ名(userId)とドキュメントID(docId)とアクセスタイプ(accessType)とを渡してアクセスが許可されているかを問い合わせるSOAPメッセージ(isAllowed)を送付し、その結果(isAllowedResponse)を受け取っている例である。結果には、許可されているということ(allowedがtrue)と要件(requirements)とが含まれている。
アクセスコントロールサーバ204は、ドキュメント印刷プログラム221からユーザ名とパスワードとドキュメントIDとアクセスタイプとを取得すると、ユーザデータベース241に登録されている情報を参照し、ユーザ認証を行う。換言すると、アクセスコントロールサーバ204は、ユーザデータベース241に登録されている情報を参照し、ドキュメント印刷プログラム221から取得した情報に含まれるユーザ名とパスワードとを組としたものが、ユーザデータベース241に組として登録されているか否かを判断する。
ユーザ認証に失敗した場合(換言すると、ドキュメント印刷プログラム221から受け渡された情報に含まれるユーザ名とパスワードとを組としたものがユーザデータベース241に登録されていない場合)、アクセスコントロールサーバ204は、許可情報(ユーザが要求する処理を許可するか否かを示す情報)を「不許可」としてユーザ端末202へ送信し、ドキュメント印刷プログラム221へ受け渡す。なお、この場合は「エラー」とした許可情報をドキュメント印刷プログラム221へ受け渡すようにしてもよい。
一方、ユーザ認証に成功した場合、アクセスコントロールサーバ204は、許可証データベース243に格納されているレコードのうち、ドキュメント印刷プログラム221から取得した情報に含まれるドキュメントID、ユーザ名、アクセスタイプが一致するレコードを読み出す。許可証のレコードが読み出せた場合、その許可証が回数を指定するタイプである場合には、そのレコードから許可情報と印刷要件を取得し、パラメータの示す回数を1回分だけ減じ、許可証データベース243の該当レコードを更新する。また、パラメータの示す回数がゼロになった場合には該当レコードを削除する。一方、その許可証が期限を指定するタイプである場合には、現在日時がパラメータの示す期限内であるか否かを判断し、期限内であればそのレコードから許可情報と印刷要件を取得する。また、期限内でなければ該当レコードを削除する。
一方、許可証のレコードが取り出せなかった場合、ACLデータベース242に格納されているレコードのうち、ドキュメント印刷プログラム221から取得した情報に含まれるドキュメントIDに関するレコードを読み出す。
アクセスコントロールサーバ204は、読み出したレコードに含まれるACLを取得し、ドキュメント印刷プログラム221から取得したユーザ名およびアクセスタイプに基づいて、ACLから許可情報および印刷要件を取得する。換言すると、アクセスコントロールサーバ204は、ユーザ名とアクセスタイプとに基づいて、予めACLに設定されている許可情報と印刷要件とを取得する。
許可証もしくはACLから取得した許可情報が「許可」である場合、アクセスコントロールサーバ204は、レコードに格納されている暗号鍵と印刷要件とを許可情報とともにユーザ端末202へ送信してドキュメント印刷プログラム221に受け渡す。
一方、許可証もしくはACLから取得した許可情報が「不許可」である場合、アクセスコントロールサーバ204は、許可情報のみをユーザ端末202へ送信してドキュメント印刷プログラム221に受け渡す。
アクセスコントロールサーバ204から許可情報を受け渡されたドキュメント印刷プログラム221は、取得した許可情報を参照し、「不許可」である場合には、ユーザ端末202の表示装置にメッセージを表示するなどして、要求された処理を実行できないことをユーザに通知する。
一方、取得した許可情報が「許可」である場合には、許可情報と共に受け渡された暗号鍵を用いて、保護ドキュメントのうちの暗号化ドキュメントの部分を復号してドキュメントファイルに復元する。
また、ドキュメント印刷プログラム221は、許可情報と共に取得した印刷要件を満足するようにプリンタドライバを設定し(例えば、PACが指定されていれば機密印刷モードに設定する)、プリンタ203にドキュメントの印刷処理を実行させる。なお、必要があれば、ユーザ端末202の表示装置にメッセージを表示するなどして、印刷パラメータの設定をユーザに要求するようにしてもよい。
アクセスコントロールサーバ204から取得した印刷要件を満足する印刷をプリンタ203では実行できない場合、換言すると、プリンタ203が許可証もしくはACLに設定されていた印刷要件を満たす機能を備えていない場合には、その旨を示すメッセージを表示装置に表示させるなどしてユーザに通知し、印刷は行わずに処理を終了する。
なお、上記の例ではアクセスコントロールサーバ204がアクセスの許可/不許可の判断をする際に同時に許可証の確認をし、その許可証の使用可能回数を消費するやり方になっているが、これを一度に処理せず、個別の処理に分離しても良い。例えば、ドキュメント印刷プログラム221からアクセスコントロールサーバ204への最初の問い合わせでは単にACLをベースにした権限確認を行い、次にドキュメント印刷プログラム221が許可証が発行されているかどうかの問い合わせをアクセスコントロールサーバ204に対して行い、許可証が発行されていればその許可証を使用するかどうかドキュメント印刷プログラム221がユーザに確認し、ユーザが許可証の使用を要求した場合にはドキュメント印刷プログラム221がアクセスコントロールサーバ204にその許可証の消費を通知する、というように分離して処理しても良い。
上記の動作を図3〜図5に基づいてさらに詳しく説明する。
まず、図3において、ドキュメント印刷プログラム221の復号鍵取得部221bはアクセスコントロールサーバ204に対してアクセス権の確認を行う。
確認の問い合わせを受けたアクセスコントロールサーバ204は、図5において、ユーザ認証部204bがユーザデータベース241を参照してユーザ認証を行い、認証結果をドキュメント印刷プログラム221に通知する。また、ユーザ認証に成功した場合、許可証確認部204fが許可証データベース243を参照して許可情報および複合鍵を取得し、許可証が存在しなかった場合にはアクセス権限確認部204cがACLデータベース242を参照して許可情報および復号鍵を取得する。そして、印刷要件取得送付部204dが許可証データベース243もしくはACLデータベース242から印刷要件を取得し、ドキュメント印刷プログラム221に通知する。なお、図5ではいったん認証結果を返してから再び認証結果を渡すようにしているが、これを一度に実行してもよい。また、許可情報、復号鍵および印刷要件を別々に返すようにしているが、これらを一度に返すようにしてもよい。
図3において、復号鍵取得部221bはアクセス権の確認ができた場合にアクセスコントロールサーバ204から復号鍵を得て、これを復号部221aに渡す。また、印刷要件取得部221cはアクセスコントロールサーバ204から印刷要件を取得し、印刷処理部221dに渡す。
復号部221aは復号鍵取得部221bから取得した復号鍵を用いて保護ドキュメントを復号し、ドキュメントファイルを得て印刷処理部221dに渡す。
次いで、図4において、印刷処理部221dの要件処理部221eは、受け取った印刷要件の内容に応じて複数の処理を行う。すなわち、前述したBDP、EBC、SLSのようにドキュメントファイルそのものを加工する必要がある処理についてはドキュメント加工部221fに加工情報を与えてドキュメントファイルの加工を行わせ、加工済みのドキュメントファイルをプリンタドライバ221gに渡し、印刷データをプリンタ203に与えて印刷を行う。また、PACのようにプリンタドライバに特別な設定を行う必要がある処理についてはプリンタドライバ221gに印刷設定を行う。さらに、ユーザに対して警告メッセージを表示する必要がある場合には警告表示部221hに警告メッセージを渡し、表示装置に表示を行わせる。また、印刷のログを残す必要がある場合にはログ記録部221iにログ情報を渡し、リモートサーバ等にログデータを登録させる。
以上の動作によって、ユーザごとに異なるアクセス権や印刷要件を設定することが可能となると共に、ユーザごと、ドキュメントごとに明示的に許可証を発行してアクセスを許可することができるようになり、許可する際に印刷要件などの処理要件を強制することができる。また、上記のようにサーバ側で許可証を管理する仕組みにすることで、発行した許可証レコードを後から変更できるような機能を更に加えれば、許可証を発行した後でもその許可証を無効にすることが容易にできるようになる。
また、サーバ側で許可証を管理する仕組みが必須であるわけではない。許可証データベース243に格納されている許可証をユーザに渡してアクセスの際に提示させるようなモデルにしてもよい。その場合には許可証が改ざん・偽造される恐れがあるため、図8に示した許可証の構成に加えてその許可証の改ざん等を検出するためのメッセージ認証子のフィールドを加え、その許可証が提示された際にメッセージ認証子の正当性を確認するような処理を行うようにしてもよい。ここで、メッセージ認証子の生成方法の例としては、図8に示すデータに対してSHA-1やMD5といったハッシュアルゴリズムによりハッシュ値を計算し、許可証発行元だけが持つ秘密鍵によりそのハッシュ値を暗号化したもの等がある。更に、許可証の再利用を防ぐためにシリアル番号のフィールドを追加するようにして、すでに使用された許可証でないかどうか、シリアル番号で確認するような処理を行うようにしてもよい。
なお、本実施形態にかかるドキュメント保護・印刷システムが上記のような手法でドキュメントファイルを保護していることを知っている者は、ドキュメント印刷プログラム221に成りすますプログラムをコンピュータ端末に実行させて暗号鍵を不正に入手し、保護ドキュメントを復号することも可能ではある。この場合は、ACLとして設定されている印刷要件を強制されることなく、保護ドキュメントを印刷できてしまうこととなる。
このため、単に暗号鍵のみを用いてドキュメントファイルを暗号化するのではなく、ドキュメント保護プログラム211の内部に埋め込まれた秘密鍵と暗号鍵とを合わせたもの(排他的論理和を取ったもの)でドキュメントファイルを暗号化することが好ましい。 この場合は、ドキュメント印刷プログラム221にも同一の秘密鍵を埋め込んでおくことで、配布者が設定した印刷要件を印刷時に強制するドキュメント印刷プログラム221のみが、保護ドキュメントを復号して印刷することが可能となる。
図15および図16は上述したような内部に秘密鍵を埋め込んでおくタイプの構成例を示したものであり、図15はドキュメント保護プログラム211の構成例を示し、図16はドキュメント印刷プログラム221の構成例のうち復号に関係する部分のみを示している。なお、この例は、単に内部に秘密鍵を埋め込んでおくだけではなく、乱数を導入して不正アクセスに対しより強化している。
図15において、ドキュメント保護プログラム211は暗号化部211aと暗号鍵取得部211bと属性付与部211cと属性登録部211dとパラメータ取得部211eとを含んでいる。
動作にあっては、パラメータ取得部211eはパラメータ(kp)を生成し、暗号鍵取得部211bに渡す。なお、パラメータ(kp)はドキュメント保護プログラム211の内部に保持しておくか、要求があった場合に生成するようにする。
暗号鍵取得部211bはパラメータ取得部211eからパラメータ(kp)を受け取った上で、二つの乱数(kd)(ks)を生成し、暗号鍵(k)を式k=H{ks,kp,kd}あるいはk=D{kd,D{ks,kp}}で計算して生成し、暗号鍵(k)を暗号化部211aに、乱数(kd)を属性付与部211cに、乱数(ks)を属性登録部211dにそれぞれ渡す。なお、H{data1,data2,・・}はdata1,data2,・・のハッシュ値を計算することを意味し、D{data,key}はkeyでdataを復号することを意味している。
暗号化部211aは配布者から引き渡されたドキュメントファイル(doc)に対し、暗号鍵取得部211bから取得した暗号鍵(k)を用いて暗号化を行い、暗号化されたドキュメント(enc)を属性付与部211cに渡す。式で示せばenc=E{doc,k}となる。なお、E{data,key}はkeyでdataを暗号化することを意味している。
次いで、属性付与部211cはドキュメントID(id)を生成し、暗号化されたドキュメント(enc)にそのドキュメントID(id)と暗号鍵取得部211bから渡された乱数(kd)を付与して保護ドキュメント(enc+id+kd)を出力する。また、属性付与部211cは生成したドキュメントID(id)を属性登録部211dに渡す。
属性登録部211dは、属性付与部211cから渡されたドキュメントID(id)と暗号鍵取得部211bから渡された乱数(ks)と配布者から取得したACL(attr)とをアクセスコントロールサーバ204に通知し、登録を要求することになる。
復号にあっては、図16において、復号鍵取得部221bは保護ドキュメントから乱数(kd)を取得するとともに、パラメータ取得部221jからドキュメント印刷プログラム221の内部に保持してある、あるいは要求に応じて生成したパラメータ(kp)を取得し、さらにアクセスコントロールサーバ204から乱数(ks)を取得し、暗号化の場合と同様に式k=H{ks,kp,kd}あるいはk=D{kd,D{ks,kp}}で計算して復号鍵(暗号鍵)(k)を得る。
そして、復号部221aは暗号化されたドキュメント(enc)を復号鍵(k)で復号し、ドキュメントファイル(doc)を得る。
図15および図16は、アクセスコントロールサーバ204に登録される乱数(ks)と保護ドキュメント内の乱数(kd)とドキュメント保護プログラム211もしくはドキュメント印刷プログラム221内から取得されるパラメータ(kp)とに基づいて暗号鍵(復号鍵)(k)を生成する方式であるが、こうすることでアクセスコントロールサーバ204が悪意のあるユーザによって不正アクセスされて乱数(ks)が知られてしまった場合であっても、乱数(kd)やパラメータ(kp)が知られなければ保護ドキュメントを復号できないことになる。なお、アクセスコントロールサーバ204が不正アクセスされないように十分にガードされている環境にあっては、乱数(ks)をそのまま暗号鍵(復号鍵)(k)として使用してもよい。
一方、これまで説明してきた第1の実施形態では、印刷要件をアクセスコントロールサーバ204にのみ格納するものとしてきたが、そのような形式に限定されず、保護ドキュメントに含めるようにしてもよい。例えば、ユーザによらずドキュメントファイルに対して必ず指定するような印刷要件については保護ドキュメントの中に含めるようにしてもよい。
図17は、印刷要件を保護ドキュメントに含める第一印刷要件と、アクセスコントロールサーバ204に格納される第二印刷要件とに分けた場合のドキュメント印刷プログラム221の構成例を示したものであり、印刷要件取得部221cにおいてアクセスコントロールサーバ204から第二印刷要件を取得するとともに、復号部221aにおいて保護ドキュメントから第一印刷要件を取得し、第一印刷要件および第二印刷要件に基づいて印刷処理部221dで印刷処理を行うようにしている。その他は図3に示したドキュメント印刷プログラム221と同様である。
また、本実施形態においては、ドキュメント印刷プログラム221は、ドキュメントファイルの印刷に関する処理のみを行っているが、ドキュメント印刷プログラム221は、ドキュメントファイルの内容をユーザに提示したり、ドキュメントファイルを編集する機能を備えていても良い。例えば、Adobe Acrobat(R)のPlug-inとしてポータブルドキュメントファイル(Portable Document Format:PDF File)の表示、編集および印刷の機能を実現することが可能である。
〔第2の実施形態〕
本発明を好適に実施した第2の実施形態について説明する。
上記第1の実施形態においては、配布者がドキュメントファイルに対してACLを設定する必要がある。このため、多数のユーザにドキュメントを配布しようとする場合は、各ユーザごとに印刷要件を個別に設定することはドキュメントファイルの配布者がACLを作成するための負担が大きくなってしまう。一方、ドキュメントファイルの内容がビジネス文書などである場合は、これをどのように保護するかは、配布者が独自に決定するのではなく、所属する組織(企業や団体など)のセキュリティポリシー(秘密管理規則)に基づいて決定することとなる。よって、ドキュメント保護・印刷システムが配布者の所属する組織のセキュリティポリシーに従ってドキュメントファイルを保護できれば、配布者がACLを設定しなくても良くなる。本発明の第2の実施形態では、配布者の所属する組織のセキュリティポリシーに従ってドキュメントを保護するドキュメント保護・印刷システムに対し、許可証の作成および適用を行う機能を付加したものについて説明する。
図18に、本実施形態にかかるドキュメント保護・印刷システムの構成を示す。
本実施形態にかかるドキュメント保護・印刷システムは、配布者端末301、ユーザ端末302、プリンタ303およびアクセスコントロールサーバ304を有する。
配布者端末301およびユーザ端末302は、表示装置(例えば、LCD)、入力装置(例えば、キーボード)、外部記録装置(例えば、FDD、HDD)などを備えたコンピュータ端末を適用できる。なお、配布者端末301にはドキュメント保護プログラム311が、ユーザ端末302にはドキュメント印刷プログラム321がそれぞれ実装されている。
ドキュメント保護プログラム311は、ドキュメントファイルに配布者端末301の使用者(配布者)の入力操作に応じて印刷要件を設定するとともに、暗号化アルゴリズム(RC4、Triple DES、IDEAなど)を用いてドキュメントファイルを暗号化し、保護ドキュメントを生成する処理を行うプログラムである。図19はドキュメント保護プログラム311の構成例を示したものであり、暗号化部311aと暗号鍵取得部311bと属性付与部311cと属性登録部311dとを含んでいる。各部の機能については後の動作において説明する。
図18に戻り、ドキュメント印刷プログラム321は、ユーザ端末302の使用者(ユーザ)の入力操作に応じ、保護ドキュメントを復号するとともに設定されている印刷要件に応じた印刷処理をプリンタ303に実行させる処理を行うプログラムである。図20はドキュメント印刷プログラム321の構成例を示したものであり、復号部321aと復号鍵取得部321bと印刷要件取得部321cと印刷処理部321dとを含んでいる。また、図21は図20における印刷処理部321dの構成例を示したものであり、要件処理部321eとドキュメント加工部321fとプリンタドライバ321gと警告表示部321hとログ記録部321iとを含んでいる。各部の機能については後の動作において説明する。
図18に戻り、アクセスコントロールサーバ304は、配布者がドキュメント保護プログラム311により保護ドキュメントを生成する際に保護ドキュメントに関する情報を取得して登録すると共に、ユーザがドキュメントにアクセス(例えば、印刷)しようとする場合に、ドキュメント印刷プログラム321からの要求に応じてACLを参照し、ドキュメントにアクセスする権限があるか否か、処理要件がどのように設定されているかを取得するサーバである。また、アクセスコントロールサーバ304は、本発明の特徴的な機能の一つとして、ドキュメントの管理責任者からの要求を受けて許可証を発行し登録する機能も有している。
アクセスコントロールサーバ304には、ユーザ各人の認証用の情報(ユーザ名とパスワードとの組)およびユーザの階級を示す情報が格納されたユーザデータベース341と、ユーザ各人ごとに設定された処理要件を含むACLがセキュリティ属性に応じて複数登録されているACLデータベース342と、各保護ドキュメントにどのようなセキュリティ属性が設定されているかを示す情報およびその保護ドキュメントを復号するための暗号鍵が関連付けられて登録されるセキュリティ属性データベース343と、ドキュメントあるいはドキュメント群を指定して特定のユーザに発行された許可証を格納する許可証データベース344とが接続されている。
図22はアクセスコントロールサーバ304の構成例を示したものであり、属性DB登録部304aとユーザ認証部304bとアクセス権限確認部304cと印刷要件取得送付部304dと許可証発行部304eと許可証確認部304fとを含んでいる。各部の機能については後の動作において説明する。
なお、セキュリティ属性に応じたACLの例をあげると、「第一設計室用ACL」、「第二設計室用ACL」のように小組織に応じたACLである。ACLの構成例を図23に示すが、ACLはユーザ名(User Name)、アクセスタイプ(Access Type)、許可情報(Permission)および処理要件(Requirement)をパラメータとして構成される。そして、このACLは、ACLデータベース342内ではセキュリティ属性ごとに登録されている。
また、図24は許可証データベース344の構成例を示したものであり、ドキュメントまたはドキュメント群を特定する部分として、ドキュメントを特定するドキュメントID(Document ID)と、技術関連、人事関連等の文書カテゴリ(Category)と、極秘、秘、社外秘、公開等の機密レベル(Level)とを含み、その他に、アクセスを許可するユーザ名(User Name)と、許可証情報(Authorization)とを含んでいる。同図の下段は許可証情報(Authorization)の構成例を示したものであり、アクセスの種類(例えば「印刷」)を示すアクセスタイプ(Access type)と、許可/不許可を示す許可情報(Permission)と、許可証のタイプを示す許可証タイプ(Azn type: Authorization type)と、許可証の条件を示すパラメータ(Parameter)と、印刷時等に強制される処理を示す処理要求(Requirements)とを含んでいる。許可証タイプが「Ticket」のものは許可の与え方を回数で指定するタイプ(切符・回数券タイプ)のもので、その許可証を使ってアクセスを行う場合にはパラメータ部に記載されている回数が1回減らされる。また、許可証タイプが「Pass」のものは許可の与え方を期限で指定するタイプ(定期券タイプ)のもので、パラメータ部に記載されている期限内であればアクセスが許可される。
以下、本実施形態にかかるドキュメント保護・印刷システムの動作について説明する。最初にシステム全体の動作について説明する。
配布者は、配布者端末301を操作してこれにドキュメントファイルを実装しておく。例えば、入力装置を用いて配布者がドキュメントファイルを作成してもよいし、外部記録装置を用いて情報記録媒体に記録されたドキュメントファイルを読み取らせても良い。
ドキュメントファイルにセキュリティを設定する場合、配布者は配布者端末301の入力装置を操作してドキュメントファイルをドキュメント保護プログラム311に受け渡す。ドキュメントファイルを取得したドキュメント保護プログラム311は、セキュリティ属性の設定を配布者に要求する。例えば、ドキュメント保護プログラム311は、配布者端末301の表示装置にメッセージを表示するなどして、セキュリティ属性の設定を要求する。図25はセキュリティ属性の設定を要求する画面の例を示したものであり、文書カテゴリ(技術関連、人事関連等)および機密レベル(極秘、秘、社外秘、公開等)の設定がプルダウンメニュー等から選択することにより行えるようになっている。なお、図25の画面では保護するドキュメントファイルを指定することもできるようになっている。
配布者が配布者端末301の入力装置を介してドキュメントファイルにセキュリティ属性を設定すると、ドキュメント保護プログラム311はこれを取得する。
セキュリティ属性を取得したドキュメント保護プログラム311は、ドキュメントファイルごとに固有のドキュメントIDを生成し、暗号化および復号に使用する暗号鍵とセキュリティ属性とをこれに関連付けてアクセスコントロールサーバ304へ送信し、セキュリティ属性データベース343への登録を要求する。
また、ドキュメント保護プログラム311は、暗号鍵を用いて暗号化したドキュメントファイルに対してドキュメントIDを付加して保護ドキュメントを生成する。
配布者は、ドキュメント保護プログラム311が生成した保護ドキュメントをユーザに受け渡す。
ここで、保護ドキュメントを生成した後に、何らかの理由でACLに設定した条件(セキュリティ属性)とは異なる条件で特定のユーザにアクセスを許可したり、あるいは設定した制限を軽減してアクセスさせたりしたい状況が発生した場合、管理責任者はアクセスコントロールサーバ304に対して許可証の発行処理を行う。すなわち、アクセスコントロールサーバ304は操作する者(管理責任者)に対してユーザ名およびパスワードを求め、許可証を発行する権限があるか否かをユーザデータベース341を参照して確認する。権限が確認された場合、ドキュメントID(ドキュメント群を指定する場合はセキュリティ属性)、ユーザ名(アクセスを許可する相手)、アクセスタイプ、許可情報、許可証タイプ、パラメータ、印刷要件を管理責任者から受け取り、許可証データベース344に登録する。
ユーザがドキュメントを印刷しようとする場合には、ユーザ端末302に保護ドキュメントを実装する。例えば、情報記録媒体に記録された保護ドキュメントを外部記録装置を用いてユーザ端末に読み取らせても良いし、ユーザ端末302が配布者端末301と通信可能である場合には、通信網を介して配布者端末301から保護ドキュメントを取得するようにしてもよい。
ユーザが、ユーザ端末302の入力装置を介してドキュメント印刷プログラム321に対して印刷を指示すると、印刷を要求されたドキュメント印刷プログラム321は、ユーザを認証するために必要となるユーザ名とパスワードの入力をユーザに要求する。例えば、ドキュメント印刷プログラム321は、ユーザ端末302の表示装置にメッセージを表示するなどして、ユーザ名とパスワードの入力を要求する。図26はユーザ名(ユーザID)とパスワードを要求する画面の例を示したものであり、キーボード等によって入力が行えるようになっている。
ドキュメント印刷プログラム321は、ユーザから入力されたユーザ名とパスワードとをアクセスコントロールサーバ304へ送信して、ユーザ認証を要求する。
アクセスコントロールサーバ304は、ドキュメント印刷プログラム321から受け渡されたユーザ名とパスワードとを用いてユーザ認証を行い、ユーザを特定する。
ユーザを特定すると、アクセスコントロールサーバ304は、セキュリティ属性データベース343を参照し、保護ドキュメントに設定されているセキュリティ属性の種類を特定する。その後、アクセスコントロールサーバ304は、許可証データベース344を参照し、ドキュメントファイルを印刷する権限がユーザにあるか否かや、ユーザがドキュメントファイルを印刷する際には、どのような印刷要件が設定されているかを取得する。この時、最初はドキュメントID、ユーザ名、アクセスタイプの一致する許可証が存在するか否かを調べ、存在しない場合は文書カテゴリ、機密レベル、ユーザ名、アクセスタイプの一致する許可証が存在するか否かを調べる。更に、合致する許可証が存在しない場合は、ACLデータベース342に登録されているACLのうち、保護ドキュメントに設定されているセキュリティ属性に該当するものを参照し、ドキュメントファイルを印刷する権限がユーザにあるか否かや、ユーザがドキュメントファイルを印刷する際には、どのような印刷要件が設定されているかを取得する。
ユーザにドキュメントファイルを印刷する権限がある場合、アクセスコントロールサーバ304は、印刷が許可されていることを示す許可情報とともに、保護ドキュメントを復号するための暗号鍵とユーザがドキュメントファイルを印刷する際の印刷要件とをユーザ端末302へ送信し、ドキュメント印刷プログラム321に受け渡す。
アクセスコントロールサーバ304から許可情報とともに、暗号鍵と印刷要件とを取得したドキュメント印刷プログラム321は、暗号鍵を用いて保護ドキュメントを復号してドキュメントファイルに復元する。
そしてドキュメント印刷プログラム321は、印刷要件を満たすようにプリンタ303に印刷処理を実行させる。例えば、ドキュメントファイルに前述したBDPが印刷要件として設定されている場合には、ドキュメントの内容とともに地紋画像を印刷する。
これにより、ドキュメントファイルを印刷する際に、予め設定されたセキュリティ属性に応じた印刷要件を強制することが可能となる。
なお、ユーザが印刷要件について意識していない場合があると共に、印刷要件によっては特定のプリンタでないと処理できないものもあるため、印刷の実行前にその旨の情報がユーザに提供されることが望ましい。図27はユーザ端末302の表示装置上に表示される確認画面の例を示したものであり、印刷要件と利用できるプリンタとが表示され、使用するプリンタを選択することができるようになっている。
次に、ドキュメントを保護する際のドキュメント保護プログラム311およびアクセスコントロールサーバ304の動作、許可証を発行する際のアクセスコントロールサーバ304の動作、および保護ドキュメントをドキュメントファイルに復元して印刷する際のドキュメント印刷プログラム321およびアクセスコントロールサーバ304の動作についてさらに詳しく説明する。
図28に、ドキュメント保護プログラム311が保護ドキュメントを生成する際の動作を示す。ドキュメント保護プログラム311は、配布者端末301の入力装置における配布者の入力操作によってドキュメントファイルとそのセキュリティ属性とを取得すると、ドキュメントファイルを暗号化および復号するための暗号鍵を生成する。そして、ドキュメント保護プログラム311は、生成した暗号鍵を用いてドキュメントファイルを暗号化し、暗号化ドキュメントを生成する。
さらにドキュメント保護プログラム311は、ドキュメントファイルごとに固有のドキュメントIDを暗号化ドキュメントに添付して保護ドキュメントを生成する。
保護ドキュメントを生成した後、ドキュメント保護プログラム311は配布者端末301の通信機能を用いて、暗号鍵とセキュリティ属性とドキュメントIDとをアクセスコントロールサーバ304へ送信し、これらの登録をアクセスコントロールサーバ304に要求する。
暗号鍵とセキュリティ属性とドキュメントIDとをドキュメント保護プログラム311から受け渡されたアクセスコントロールサーバ304は、これらを関連付けて一つのレコードとしてセキュリティ属性データベース343に登録し、記録保持する。
上記の動作を図19および図22に基づいてさらに詳しく説明する。
まず、図19において、ドキュメント保護プログラム311の暗号化部311aは、配布者から引き渡されたドキュメントファイルに対し、暗号鍵取得部311bが生成した暗号鍵を用いて暗号化を行い、この暗号化ドキュメントを属性付与部311cに渡す。
属性付与部311cはドキュメントIDを生成し、暗号化部311aから渡された暗号化ドキュメントにドキュメントIDを付与して保護ドキュメントとして出力する。
また、属性登録部311dは配布者からセキュリティ属性を受け取るとともに、暗号鍵取得部311bから暗号鍵を、属性付与部311cからドキュメントIDをそれぞれ受け取り、アクセスコントロールサーバ304に対してこれらのドキュメントID、暗号鍵、セキュリティ属性を渡して登録を要求する。
次いで、図22において、アクセスコントロールサーバ304の属性DB登録部304aは、渡されたドキュメントID、暗号鍵、セキュリティ属性をセキュリティ属性データベース343に登録する。
なお、上記の例においてはドキュメントIDの生成や暗号鍵の生成をドキュメント保護プログラム311が行う場合を示したが、これらの処理はアクセスコントロールサーバ304や不図示のサーバなどで行っても良い。
また、配布者端末301とアクセスコントロールサーバ304との間が専用回線ではなくネットワーク網を介して接続されており、暗号鍵など送信する際に盗聴される懸念がある場合には、SSL(Secure Socket Layer)を用いて通信を行えばよい。
ドキュメント保護プログラム311がアクセスコントロールサーバ304と通信する際のプロトコルは、どのようなものを用いてもよい。例えば、分散オブジェクト環境を導入し、Java(R)RMI(Remote Method Invocation)やSOAP(Simple Object Access Protocol)をベースとして情報を送受信するようにしても良い。その場合、アクセスコントロールサーバ304は、例えば「register(String docId, byte[] key, byte[] acl)」のようなメソッドを実装するようにしてもよい。SOAPであれば、HTTPSの上でSOAPプロトコルをやりとりし、RMIであればSSLベースのSocketFactoryを用いてRMIを実行するようにすれば、ネットワーク上でのセキュリティを確保することができる。
次に、許可証を発行する際のアクセスコントロールサーバ304の動作について説明する。
図22において、アクセスコントロールサーバ304のユーザ認証部304bは管理責任者から本人のユーザ名およびパスワードを入力し、ユーザデータベース341を参照して許可証を発行する権限があるか否かを確認する。権限が確認された場合、許可証発行部304eは管理責任者からドキュメントID(ドキュメント群を指定する場合はセキュリティ属性)、ユーザ名(アクセスを許可する相手)、アクセスタイプ、許可情報、許可証タイプ、パラメータ、印刷要件を受け取り、許可証データベース344に登録する。
次に、ドキュメント印刷プログラム321が保護ドキュメントを印刷する際の動作について説明する。
図29に、ドキュメント印刷プログラム321が行う処理の内容を示す。また、図30に、ドキュメント印刷プログラム321およびアクセスコントロールサーバ304の動作の流れを示す。
ドキュメント印刷プログラム321は、ユーザ端末302の入力装置におけるユーザの入力操作によって保護ドキュメントとユーザ名とパスワードとを取得すると、保護ドキュメントに添付されているドキュメントIDを取得する。
そして、ユーザ名とパスワードとドキュメントIDとアクセスタイプ(ユーザが要求する処理を示す情報。ここでは、保護ドキュメントを印刷しようとするので、“print”となる。)とをアクセスコントロールサーバ304へ送信して、アクセス権限があるか否かのチェックを要求する。なお、図31はアクセスコントロールサーバ304へのSOAPによる問い合わせの例を示す図であり、ユーザ名(userId)とドキュメントID(docId)とアクセスタイプ(accessType)とを渡してアクセスが許可されているかを問い合わせるSOAPメッセージ(isAllowed)を送付し、その結果(isAllowedResponse)を受け取っている例である。結果には、許可されているということ(allowedがtrue)と要件(requirements)とが含まれている。
アクセスコントロールサーバ304は、ドキュメント印刷プログラム321からユーザ名とパスワードとドキュメントIDとアクセスタイプとを取得すると、ユーザデータベース341に登録されている情報を参照し、ユーザ認証を行う。換言すると、アクセスコントロールサーバ304は、ユーザデータベース341に登録されている情報を参照し、ドキュメント印刷プログラム321から取得した情報に含まれるユーザ名とパスワードとの組と一致するものが、ユーザデータベース341に登録されているか否かを判断する。
ユーザ認証に失敗した場合(換言すると、ドキュメント印刷プログラム321から受け渡された情報に含まれるユーザ名とパスワードとを組としたものがユーザデータベース341に登録されていない場合)、アクセスコントロールサーバ304は、許可情報(ユーザが要求する処理を許可するか否かを示す情報)を「不許可」としてユーザ端末302へ送信し、ドキュメント印刷プログラム321へ受け渡す。なお、この場合は「エラー」とした許可情報をドキュメント印刷プログラム321へ受け渡すようにしてもよい。
一方、ユーザ認証に成功した場合、アクセスコントロールサーバ304は、セキュリティ属性データベース343に登録されているレコードのうち、ドキュメント印刷プログラム321から取得した情報に含まれるドキュメントIDに関するレコードを読み出す。
アクセスコントロールサーバ304は、読み出したレコードに含まれるセキュリティ属性を取得する。
そして、アクセスコントロールサーバ304は、許可証データベース344を参照し、最初にドキュメントID、ユーザ名、アクセスタイプの一致する許可証が存在するか否かを調べ、存在しない場合はユーザ名、アクセスタイプに加え、セキュリティ属性データベース343から取得した文書カテゴリ、機密レベルの一致する許可証が存在するか否かを調べる。一致する許可証が取得できた場合は、その許可証が回数を指定するタイプである場合には、そのレコードから許可情報と印刷要件を取得し、パラメータの示す回数を1回分だけ減じ、許可証データベース344の該当レコードを更新する。また、パラメータの示す回数がゼロになった場合には該当レコードを削除する。一方、その許可証が期限を指定するタイプである場合には、現在日時がパラメータの示す期限内であるか否かを判断し、期限内であればそのレコードから許可情報と印刷要件を取得する。また、期限内でなければ該当レコードを削除する。
許可証データベース344に合致する許可証が存在しない場合、アクセスコントロールサーバ304は、ACLデータベース342に登録されているACLのうち、レコードから取得したセキュリティ属性に応じたACLを読み出して取得する。さらに、アクセスコントロールサーバ304は、ドキュメント印刷プログラム321から取得したユーザ名およびアクセスタイプに基づいて、ACLから許可情報および印刷要件を取得する。換言すると、アクセスコントロールサーバ304は、ユーザ名とアクセスタイプとに基づいて、予めACLに設定されている許可情報と印刷要件とを取得する。
許可証もしくはACLから取得した許可情報が「許可」である場合、アクセスコントロールサーバ304は、レコードに格納されている暗号鍵と印刷要件とを許可情報とともにユーザ端末302へ送信してドキュメント印刷プログラム321に受け渡す。
一方、許可証もしくはACLから取得した許可情報が「不許可」である場合、アクセスコントロールサーバ304は、許可情報のみをユーザ端末302へ送信してドキュメント印刷プログラム321に受け渡す。
アクセスコントロールサーバ304から許可情報を受け渡されたドキュメント印刷プログラム321は、取得した許可情報を参照し、「不許可」である場合には、表示装置にメッセージを表示するなどして、要求された処理を実行できないことをユーザに通知する。
一方、取得した許可情報が「許可」である場合には、許可情報と共に受け渡された暗号鍵を用いて、保護ドキュメントのうちの暗号化ドキュメントの部分を復号してドキュメントファイルに復元する。
また、ドキュメント印刷プログラム321は、許可情報と共に取得した印刷要件を満足するようにプリンタドライバを設定し(例えば、PACが指定されていれば機密印刷モードに設定する)、プリンタ303にドキュメントの印刷処理を実行させる。なお、必要があれば、表示装置にメッセージを表示するなどして、印刷パラメータの設定をユーザに要求するようにしてもよい。
アクセスコントロールサーバ304から取得した印刷要件を満足する印刷をプリンタ303では実行できない場合、換言すると、プリンタ303が許可証もしくはACLに設定されていた印刷要件を満たす機能を備えていない場合には、ドキュメント印刷プログラム321は、その旨を示すメッセージを表示装置に表示させるなどしてユーザに通知し、印刷は行わずに処理を終了する。
なお、上記の例ではアクセスコントロールサーバ304がアクセスの許可/不許可の判断をする際に同時に許可証の確認をし、その許可証の使用可能回数を消費するやり方になっているが、これを一度に処理せず、個別の処理に分離しても良い。例えば、ドキュメント印刷プログラム321からアクセスコントロールサーバ304への最初の問い合わせでは単にACLをベースにした権限確認を行い、次にドキュメント印刷プログラム321が許可証が発行されているかどうかの問い合わせをアクセスコントロールサーバ304に対して行い、許可証が発行されていればその許可証を使用するかどうかドキュメント印刷プログラム321がユーザに確認し、ユーザが許可証の使用を要求した場合にはドキュメント印刷プログラム321がアクセスコントロールサーバ304にその許可証の消費を通知する、というように分離して処理しても良い。
上記の動作を図20〜図22に基づいてさらに詳しく説明する。
まず、図20において、ドキュメント印刷プログラム321の復号鍵取得部321bはアクセスコントロールサーバ304に対してアクセス権の確認を行う。
確認の問い合わせを受けたアクセスコントロールサーバ304は、図22において、ユーザ認証部304bがユーザデータベース341を参照してユーザ認証を行い、認証結果をドキュメント印刷プログラム321に通知する。また、ユーザ認証に成功した場合、アクセス権限確認部304cおよび許可証確認部304fがセキュリティ属性データベース343、許可証データベース344、ACLデータベース342を参照して許可情報および復号鍵を取得するとともに、印刷要件取得送付部304dが許可証データベース344もしくはACLデータベース342から印刷要件を取得し、ドキュメント印刷プログラム321に通知する。なお、図22ではいったん認証結果を返してから再び認証結果を渡すようにしているが、これを一度に実行してもよい。また、許可情報、復号鍵および印刷要件を別々に返すようにしているが、これらを一度に返すようにしてもよい。
図20において、復号鍵取得部321bはアクセス権の確認ができた場合にアクセスコントロールサーバ304から復号鍵を得て、これを復号部321aに渡す。また、印刷要件取得部321cはアクセスコントロールサーバ304から印刷要件を取得し、印刷処理部321dに渡す。
復号部321aは復号鍵取得部321bから取得した復号鍵を用いて保護ドキュメントを復号し、ドキュメントファイルを得て印刷処理部321dに渡す。
次いで、図21において、印刷処理部321dの要件処理部321eは、受け取った印刷要件の内容に応じて複数の処理を行う。すなわち、前述したBDP、EBC、SLSのようにドキュメントファイルそのものを加工する必要がある処理についてはドキュメント加工部321fに加工情報を与えてドキュメントファイルの加工を行わせ、加工済みのドキュメントファイルをプリンタドライバ321gに渡し、印刷データをプリンタ303に与えて印刷を行う。また、PACのようにプリンタドライバに特別な設定を行う必要がある処理についてはプリンタドライバ321gに印刷設定を行う。さらに、ユーザに対して警告メッセージを表示する必要がある場合には警告表示部321hに警告メッセージを渡し、表示装置に表示を行わせる。また、印刷のログを残す必要がある場合にはログ記録部321iにログ情報を渡し、リモートサーバ等にログデータを登録させる。
以上の動作によって、ユーザごとに異なるアクセス権や印刷要件を設定することが可能となると共に、ユーザごと、ドキュメントごとに明示的に許可証を発行してアクセスを許可することができるようになり、許可する際に印刷要件などの処理要件を強制することができる。また、上記のようにサーバ側で許可証を管理する仕組みにすることで、発行した許可証レコードを後から変更できるような機能を更に加えれば、許可証を発行した後でもその許可証を無効にすることが容易にできるようになる。
また、サーバ側で許可証を管理する仕組みが必須であるわけではない。許可証データベース344に格納されている許可証をユーザに渡してアクセスの際に提示させるようなモデルにしてもよい。その場合には許可証が改ざん・偽造される恐れがあるため、図24に示した許可証の構成に加えてその許可証の改ざん等を検出するためのメッセージ認証子のフィールドを加え、その許可証が提示された際にメッセージ認証子の正当性を確認するような処理を行うようにしてもよい。ここで、メッセージ認証子の生成方法の例としては、図24に示すデータに対してSHA-1やMD5といったハッシュアルゴリズムによりハッシュ値を計算し、許可証発行元だけが持つ秘密鍵によりそのハッシュ値を暗号化したもの等がある。更に、許可証の再利用を防ぐためにシリアル番号のフィールドを追加するようにして、すでに使用された許可証でないかどうか、シリアル番号で確認するような処理を行うようにしてもよい。
なお、本実施形態にかかるドキュメント保護・印刷システムが上記のような手法でドキュメントファイルを保護していることを知っている者は、ドキュメント印刷プログラム321に成りすますプログラムをコンピュータ端末に実行させて暗号鍵を不正に入手し、保護ドキュメントを復号することも可能ではある。この場合は、設定されている印刷要件を強制されることなく、保護ドキュメントを印刷できてしまうこととなる。
このため、単に暗号鍵のみを用いてドキュメントファイルを暗号化するのではなく、ドキュメント保護プログラム311の内部に埋め込まれた秘密鍵と暗号鍵とを合わせたもの(排他的論理和を取ったもの)でドキュメントファイルを暗号化することが好ましい。 この場合は、ドキュメント印刷プログラム321にも同一の秘密鍵を埋め込んでおくことで、配布者が設定した印刷要件を印刷時に強制するドキュメント印刷プログラム321のみが、保護ドキュメントを復号して印刷することが可能となる。具体的には、第1の実施形態におけるものと同様に、図15および図16のように構成することができる。
同様に、第1の実施形態における図17のように、印刷要件を保護ドキュメントに含める第一印刷要件と、アクセスコントロールサーバ304に格納される第二印刷要件とに分け、ユーザによらずドキュメントファイルに対して必ず指定するような印刷要件については保護ドキュメントの中に含めるようにしてもよい。
また、本実施形態においては、ドキュメント印刷プログラム321は、ドキュメントファイルの印刷に関する処理のみを行っているが、ドキュメント印刷プログラム321は、ドキュメントファイルの内容をユーザに提示したり、ドキュメントファイルを編集する機能を備えていても良い。例えば、Adobe Acrobat(R)のPlug-inとしてポータブルドキュメントファイル(Portable Document Format:PDF File)の表示、編集および印刷の機能を実現することが可能である。
〔第3の実施形態〕
本発明を好適に実施した第3の実施形態について説明する。
上記本発明の第2の実施形態においては、配布者の所属する組織のセキュリティポリシーに従ってドキュメントを保護するドキュメント保護・印刷システムについて説明した。
しかし、第2の実施形態にかかるドキュメント保護・印刷システムは、配布者が所属する組織の規模が大きい場合は、その下位組織ごとに数多くのACLを予め定義して登録しておかなければならない。例えば、「第一設計室の技術文書用ACL」、「第一設計室の契約書用ACL」、「第二設計室の技術文書用ACL」、「第二設計室の契約書用ACL」のように、各ユーザを網羅するようにACLを予め定義しておく必要がある。
一般に、組織の掲げるセキュリティポリシーは総則的なものであり、誰にどのドキュメントファイルに対するアクセスを許可するかといったことまでを規定するものではない。
組織の掲げるセキュリティポリシーの例を図32に示す。図32に示すように、組織におけるセキュリティポリシーは、ドキュメントに対して機密レベル(Sensitivity)および分野(Category)を設定した上で、ドキュメントに対するアクセスを許可するユーザの階級(Level)や部門(Category)およびその印刷要件を設定したものであるといえる。
例えば、機密レベルが極秘(Top Secret)の人事関連(Human Resource)のドキュメントは、人事部の管理職のみが地紋印刷を条件として印刷可能という具合である。
本発明の第3の実施形態では、組織の掲げるセキュリティポリシーをそのままの形で電子的に記述したものをドキュメントファイルの保護に適用したドキュメント保護・印刷システムに対し、許可証の作成および適用を行う機能を付加したものについて説明する。
図33に、本実施形態にかかるドキュメント保護・印刷システムの構成を示す。
本実施形態にかかるドキュメント保護・印刷システムは、配布者端末401、ユーザ端末402、プリンタ403およびアクセスコントロールサーバ404を有する。
配布者端末401およびユーザ端末402は、表示装置(例えば、LCD)、入力装置(例えば、キーボード)、外部記録装置(例えば、FDD、HDD)などを備えたコンピュータ端末を適用できる。なお、配布者端末401にはドキュメント保護プログラム411が、ユーザ端末402にはドキュメント印刷プログラム421がそれぞれ実装されている。
ドキュメント保護プログラム411は、ドキュメントファイルに配布者端末401の使用者(配布者)の入力操作に応じた処理要件を設定するとともに、暗号化アルゴリズム(RC4、Triple DES、IDEAなど)を用いてドキュメントファイルを暗号化し、保護ドキュメントを生成する処理を行うプログラムである。ドキュメント保護プログラム411の内部構成は図19に示した第2の実施形態におけるものと同様である。
ドキュメント印刷プログラム421は、ユーザ端末402の使用者(ユーザ)の入力操作に応じ、保護ドキュメントを復号するとともに設定されている印刷要件に応じた印刷処理をプリンタ403に実行させる処理を行うプログラムである。ドキュメント印刷プログラム421の内部構成は図20および図21に示した第2の実施形態におけるものと同様である。
アクセスコントロールサーバ404は、配布者がドキュメント保護プログラム411により保護ドキュメントを生成する際に保護ドキュメントに関する情報を取得して登録すると共に、ユーザがドキュメントを印刷しようとする場合に、ドキュメント印刷プログラム421からの要求に応じて自身が記録保持しているセキュリティポリシー444を参照し、ドキュメントを印刷する権限があるか否か、印刷要件がどのように設定されているかを取得するサーバである。また、アクセスコントロールサーバ404は、本発明の特徴的な機能の一つとして、ドキュメントの管理責任者からの要求を受けて許可証を発行し登録する機能も有している。
アクセスコントロールサーバ404には、ユーザ各人の認証用の情報(ユーザ名とパスワードとの組)が格納されたユーザデータベース441と、各保護ドキュメントにどのようなセキュリティ属性が設定されているかを示す情報およびその保護ドキュメントを復号するための暗号鍵が関連付けられて登録されるセキュリティ属性データベース443と、組織全体のセキュリティポリシーが格納されるセキュリティポリシー444と、ドキュメントあるいはドキュメント群を指定して特定のユーザに発行された許可証を格納する許可証データベース445とが接続されている。
図34はアクセスコントロールサーバ404の構成例を示したものであり、属性DB登録部404aとユーザ認証部404bとアクセス権限確認部404cと印刷要件取得送付部404dと許可証発行部404eと許可証確認部404fとを含んでいる。各部の機能については後の動作において説明する。
図35に、アクセスコントロールサーバ404から参照されるセキュリティポリシー444の例を示す。
例えば、カテゴリが「技術(Technical)」で機密レベルが「マル秘(Secret)」のドキュメントファイルは、カテゴリが「技術(Technical)」で階級が「中(Medium)」又は「上(High)」のユーザに対して、閲覧は許可するがRADを要件とすること、印刷を許可するがPACとBDPとEBCとRADとを要件とすること、および、ハードコピーは許可しないことが規定されている。
アクセスコントロールサーバ404は、セキュリティポリシー444のデータをどのような形で記録保持していても構わない。なお、XML(eXtensible Markup Language)を用いれば、図36に示すように、簡単に記述できる。
図37に、ユーザデータベース441に登録される情報の例を示す。
図37においてはユーザごとにカテゴリと階級とを別々の属性として管理する構造としているが、たとえば、Windows(R)Domainのユーザ管理機構を利用してユーザを管理するような場合には、グループアカウントとしてTechnical_Mediumのようなものを生成し、Ichiroというユーザをそのグループに所属させるようにしてもよい。所属グループの命名規則をこのように設定しておくことで、カテゴリと階級とを管理することが可能となる。
また、許可証データベース445は図24に示した第2の実施形態のものと同様である。
以下、本実施形態にかかるドキュメント保護・印刷システムの動作について説明する。最初に、システム全体の動作について説明する。
図33において、配布者は、配布者端末401を操作してこれにドキュメントファイルを実装しておく。例えば、入力装置を用いて配布者がドキュメントファイルを作成してもよいし、外部記録装置を用いて情報記録媒体に記録されたドキュメントファイルを読み取らせても良い。
ドキュメントファイルにセキュリティを設定する場合、配布者は配布者端末401の入力装置を操作してドキュメントファイルをドキュメント保護プログラム411に受け渡す。ドキュメントファイルを取得したドキュメント保護プログラム411は、セキュリティ属性の設定を配布者に要求する。例えば、ドキュメント保護プログラム411は、配布者端末401の表示装置にメッセージを表示するなどして、セキュリティ属性の設定を要求する。セキュリティ属性の設定を要求する画面は図25に示した第2の実施形態におけるものと同様である。なお、ここでのセキュリティ属性とは、保護しようとするドキュメントがセキュリティ属性データベース443に登録されているセキュリティ属性のうちのいずれに該当するかを示す情報である。
配布者が配布者端末401の入力装置を介してドキュメントファイルにセキュリティ属性を設定すると、ドキュメント保護プログラム411はこれを取得する。
セキュリティ属性を取得したドキュメント保護プログラム411は、ドキュメントファイルごとに固有のドキュメントIDを生成し、復号に使用する暗号鍵とセキュリティ属性とをこれに関連付けてアクセスコントロールサーバ404へ送信し、登録する。
また、ドキュメント保護プログラム411は、暗号鍵を用いて暗号化したドキュメントファイルに対してドキュメントIDを付加して保護ドキュメントを生成する。
配布者は、ドキュメント保護プログラム411が生成した保護ドキュメントをユーザに受け渡す。
ここで、保護ドキュメントを生成した後に、何らかの理由でセキュリティ属性データベース443に登録した条件(セキュリティ属性)とは異なる条件で特定のユーザにアクセスを許可したり、あるいは設定した制限を軽減してアクセスさせたりしたい状況が発生した場合、管理責任者はアクセスコントロールサーバ404に対して許可証の発行処理を行う。すなわち、アクセスコントロールサーバ404は操作する者(管理責任者)に対してユーザ名およびパスワードを求め、許可証を発行する権限があるか否かをユーザデータベース441を参照して確認する。権限が確認された場合、ドキュメントID(ドキュメント群を指定する場合はセキュリティ属性)、ユーザ名(アクセスを許可する相手)、アクセスタイプ、許可情報、許可証タイプ、パラメータ、印刷要件を管理責任者から受け取り、許可証データベース445に登録する。
ユーザがドキュメントを印刷しようとする場合には、ユーザ端末402に保護ドキュメントを実装する。例えば、情報記録媒体に記録された保護ドキュメントを外部記録装置を用いてユーザ端末に読み取らせても良いし、ユーザ端末402が配布者端末401と通信可能である場合には、通信網を介して配布者端末401から保護ドキュメントを取得するようにしてもよい。
ユーザが、ユーザ端末402の入力装置を介してドキュメント印刷プログラム421に対して印刷を指示すると、印刷を要求されたドキュメント印刷プログラム421は、ユーザを認証するために必要となるユーザ名とパスワードの入力をユーザに要求する。例えば、ドキュメント印刷プログラム421は、ユーザ端末402の表示装置にメッセージを表示するなどして、ユーザ名とパスワードの入力を要求する。ユーザ名とパスワードの入力をユーザに要求する画面は図26に示した第2の実施形態におけるものと同様である。
ドキュメント印刷プログラム421は、ユーザから入力されたユーザ名とパスワードとをアクセスコントロールサーバ404へ送信して、ユーザ認証を要求する。
アクセスコントロールサーバ404は、ドキュメント印刷プログラム421から受け渡されたユーザ名とパスワードとを用いてユーザ認証を行い、ユーザを特定する。
ユーザを特定すると、アクセスコントロールサーバ404は、セキュリティ属性データベース443を参照し、保護ドキュメントに設定されているセキュリティ属性の種類を特定する。
その後、アクセスコントロールサーバ404は、許可証データベース445を参照し、ドキュメントファイルを印刷する権限がユーザにあるか否かや、ユーザがドキュメントファイルを印刷する際には、どのような印刷要件が設定されているかを取得する。この時、最初はドキュメントID、ユーザ名、アクセスタイプの一致する許可証が存在するか否かを調べ、存在しない場合は文書カテゴリ、機密レベル、ユーザ名、アクセスタイプの一致する許可証が存在するか否かを調べる。更に、合致する許可証が存在しない場合、アクセスコントロールサーバ404は、ユーザデータベース441から取得したユーザの階級を示す情報とドキュメントに設定されているセキュリティ属性とに基づいて、セキュリティポリシー444を参照し、ドキュメントを印刷する権限がユーザにあるか否かや、ユーザがドキュメントファイルを印刷する際にはどのような印刷要件が設定されているのかを取得する。
ユーザにドキュメントファイルを印刷する権限がある場合、アクセスコントロールサーバ404は、印刷が許可されていることを示す許可情報とともに、保護ドキュメントを復号するための暗号鍵とユーザがドキュメントファイルを印刷する際の印刷要件とをユーザ端末402へ送信し、ドキュメント印刷プログラム421に受け渡す。
アクセスコントロールサーバ404から許可情報とともに、暗号鍵と印刷要件とを取得したドキュメント印刷プログラム421は、暗号鍵を用いて保護ドキュメントを復号してドキュメントファイルに復元する。
そしてドキュメント印刷プログラム421は、印刷要件を満たすようにプリンタ403に印刷処理を実行させる。例えば、ドキュメントファイルにBDPが印刷要件として設定されている場合には、ドキュメントの内容とともに地紋画像を印刷する。
これにより、ドキュメントファイルを印刷する際に、予め設定されたセキュリティ属性に応じた印刷要件を強制することが可能となる。
ここで、ドキュメントを保護する際のドキュメント保護プログラム411およびアクセスコントロールサーバ404の動作、許可証を発行する際のアクセスコントロールサーバ404の動作、および保護ドキュメントをドキュメントファイルに復元して印刷する際のドキュメント印刷プログラム421およびアクセスコントロールサーバ404の動作についてさらに詳しく説明する。
図38に、ドキュメント保護プログラム411が保護ドキュメントを生成する際の処理を示す。また、図39に、ドキュメント保護プログラム411およびアクセスコントロールサーバ404の動作の流れを示す。
ドキュメント保護プログラム411は、配布者端末401の入力装置における配布者の入力操作によってドキュメントファイルとそのセキュリティ属性とを取得すると、ドキュメントファイルを暗号化および復号するための暗号鍵を生成する。そして、ドキュメント保護プログラム411は、生成した暗号鍵を用いてドキュメントファイルを暗号化して、暗号化ドキュメントを生成する。
さらに、ドキュメント保護プログラム411は、ドキュメントファイルごとに固有のドキュメントIDを暗号化ドキュメントに添付して保護ドキュメントを生成する。
保護ドキュメントを生成した後、ドキュメント保護プログラム411は、配布者端末401の通信機能を用いて、暗号鍵とセキュリティ属性とドキュメントIDとをアクセスコントロールサーバ404へ送信し、これらの登録をアクセスコントロールサーバ404に要求する。
暗号鍵とセキュリティ属性とドキュメントIDとをドキュメント保護プログラム411から受け渡されたアクセスコントロールサーバ404は、これらを一つのレコードとしてセキュリティ属性データベース443に記録保持する。より詳しくは、図34におけるアクセスコントロールサーバ404の属性DB登録部404aがセキュリティ属性データベース443への登録を行う。
なお、ドキュメント保護プログラム411がドキュメントIDを生成して暗号化ドキュメントに添付する場合を例に挙げたが、SHA−1などのハッシュアルゴリズムを用いて暗号化ドキュメントファイルを生成した場合には、そのハッシュ値をドキュメントIDの代わりに用いてもよい。この場合は、保護ドキュメントにドキュメントIDを添付する必要はなく、後でドキュメントIDを取得したい時は、再度ハッシュ値を計算すれば良い。
また、上記の例においてはドキュメントIDの生成や暗号鍵の生成をドキュメント保護プログラム411が行う場合を示したが、これらの処理はアクセスコントロールサーバ404や不図示のサーバなどで行っても良い。
また、配布者端末401とアクセスコントロールサーバ404との間が専用回線ではなくネットワーク網を介して接続されており、暗号鍵など送信する際に盗聴される懸念がある場合には、SSL(Secure Socket Layer)を用いて通信を行えばよい。
ドキュメント保護プログラム411がアクセスコントロールサーバ404と通信する際のプロトコルは、どのようなものを用いてもよい。例えば、分散オブジェクト環境を導入し、Java(R)RMI(Remote Method Invocation)やSOAP(Simple Object Access Protocol)をベースとして情報を送受信するようにしても良い。その場合、アクセスコントロールサーバ404は、例えば「register(String docId, byte[] key, byte[] acl)」のようなメソッドを実装するようにしてもよい。SOAPであれば、HTTPSの上でSOAPプロトコルをやりとりし、RMIであればSSLベースのSocketFactoryを用いてRMIを実行するようにすれば、ネットワーク上でのセキュリティを確保することができる。
次に、許可証を発行する際のアクセスコントロールサーバ404の動作について説明する。
図34において、アクセスコントロールサーバ404のユーザ認証部404bは管理責任者から本人のユーザ名およびパスワードを入力し、ユーザデータベース441を参照して許可証を発行する権限があるか否かを確認する。権限が確認された場合、許可証発行部404eは管理責任者からドキュメントID(ドキュメント群を指定する場合はセキュリティ属性)、ユーザ名(アクセスを許可する相手)、アクセスタイプ、許可情報、許可証タイプ、パラメータ、印刷要件を受け取り、許可証データベース445に登録する。
次に、ドキュメント印刷プログラム421が保護ドキュメントを印刷する際の動作について説明する。図40に、ドキュメント印刷プログラム421およびアクセスコントロールサーバ404の動作の流れを示す。
ドキュメント印刷プログラム421は、ユーザ端末402の入力装置におけるユーザの入力操作によって保護ドキュメントとユーザ名とパスワードとを取得すると、保護ドキュメントに添付されているドキュメントIDを取得する。
そして、ユーザ名とパスワードとドキュメントIDとアクセスタイプ(ユーザが要求する処理を示す情報。ここでは、保護ドキュメントを印刷しようとするので、“print”となる。)とをアクセスコントロールサーバ404へ送信して、アクセス権限があるか否かのチェックを要求する。
アクセスコントロールサーバ404は、ドキュメント印刷プログラム421からユーザ名とパスワードとドキュメントIDとアクセスタイプとを取得すると、ユーザデータベース441に登録されている情報を参照し、ユーザ認証を行う。換言すると、アクセスコントロールサーバ404は、ユーザデータベース441に登録されている情報を参照し、ドキュメント印刷プログラム421から取得した情報に含まれるユーザ名とパスワードとの組と一致するものが、ユーザデータベース441に登録されているか否かを判断する。
ユーザ認証に失敗した場合(換言すると、ドキュメント印刷プログラム421から受け渡された情報に含まれるユーザ名とパスワードとを組としたものがユーザデータベース441に登録されていない場合)、アクセスコントロールサーバ404は、許可情報を「不許可」としてユーザ端末402へ送信し、ドキュメント印刷プログラム421へ受け渡す。なお、この場合は「エラー」とした許可情報をドキュメント印刷プログラム421へ受け渡すようにしてもよい。
一方、ユーザ認証に成功した場合、アクセスコントロールサーバ404は、セキュリティ属性データベース443に登録されているレコードのうち、ドキュメント印刷プログラム421から取得した情報に含まれるドキュメントIDに関するレコードを読み出す。
そして、アクセスコントロールサーバ404は、許可証データベース445を参照し、最初にドキュメントID、ユーザ名、アクセスタイプの一致する許可証が存在するか否かを調べ、存在しない場合はユーザ名、アクセスタイプに加え、セキュリティ属性データベース443から取得した文書カテゴリ、機密レベルの一致する許可証が存在するか否かを調べる。一致する許可証が取得できた場合は、その許可証が回数を指定するタイプである場合には、そのレコードから許可情報と印刷要件を取得し、パラメータの示す回数を1回分だけ減じ、許可証データベース445の該当レコードを更新する。また、パラメータの示す回数がゼロになった場合には該当レコードを削除する。一方、その許可証が期限を指定するタイプである場合には、現在日時がパラメータの示す期限内であるか否かを判断し、期限内であればそのレコードから許可情報と印刷要件を取得する。また、期限内でなければ該当レコードを削除する。
許可証データベース445に合致する許可証が存在しない場合、アクセスコントロールサーバ404は、ユーザデータベース441からユーザの「階級」および「部門」を取得する。
そして、アクセスコントロールサーバ404は、読み出したレコードに基づいてドキュメントファイルに設定されているセキュリティ属性(すなわち、機密レベルおよびカテゴリ)を取得する。そして、自身が記録保持しているセキュリティポリシー444とレコードから読み出したセキュリティ属性に基づいて、ユーザがドキュメントに対してアクセスタイプで示される処理を行う場合の可否を示す許可情報とユーザがドキュメントを印刷する際の印刷要件を取得する。
許可証もしくはセキュリティポリシーから取得した許可情報が「許可」である場合、すなわちユーザにドキュメントファイルを印刷する権限がある場合は、アクセスコントロールサーバ404は、レコードに格納されていた暗号鍵と印刷要件とを許可情報とともにユーザ端末402へ送信して、ドキュメント印刷プログラム421に受け渡す。
一方、ユーザにドキュメントファイルを印刷する権限がない場合、すなわち許可情報が「不許可」である場合は、アクセスコントロールサーバ404は、許可情報のみをユーザ端末402へ送信してドキュメント印刷プログラム421に受け渡す。
上記のアクセスコントロールサーバ404における処理は、より詳しくは、図34に示すように、ユーザ認証部404bがユーザデータベース441を参照してユーザ認証を行い、認証結果をアクセス権限確認部404cに通知する。また、ユーザ認証に成功した場合、アクセス権限確認部404cおよび許可証確認部404fがセキュリティ属性データベース443、許可証データベース445、およびセキュリティポリシー444を参照して許可情報および復号鍵を取得するとともに、印刷要件取得送付部404dが許可証データベース445もしくはセキュリティポリシー444から印刷要件を取得し、ドキュメント印刷プログラム421に通知する。なお、図34では許可情報、復号鍵および印刷要件を別々に返すようにしているが、これらを一度に返すようにしてもよい。
次いで、ドキュメント印刷プログラム421は、許可情報と共に取得した印刷要件を満足するようにプリンタドライバを設定し(例えば、PACが指定されていれば機密印刷モードに設定する)、プリンタ403にドキュメントファイルの印刷処理を実行させる。なお、必要があれば、表示装置にメッセージを表示するなどして、印刷パラメータの設定をユーザに要求するようにしてもよい。
アクセスコントロールサーバ404から取得した印刷要件を満足する印刷をプリンタ403では実行できない場合、換言すると、プリンタ403がセキュリティポリシー444として設定されていた印刷要件を満たす機能を備えていない場合には、その旨を示すメッセージを表示装置に表示させるなどしてユーザに通知し、印刷は行わずに処理を終了する。
なお、上記の例ではアクセスコントロールサーバ404がアクセスの許可/不許可の判断をする際に同時に許可証の確認をし、その許可証の使用可能回数を消費するやり方になっているが、これを一度に処理せず、個別の処理に分離しても良い。例えば、ドキュメント印刷プログラム421からアクセスコントロールサーバ404への最初の問い合わせでは単にセキュリティポリシー444をベースにした権限確認を行い、次にドキュメント印刷プログラム421が許可証が発行されているかどうかの問い合わせをアクセスコントロールサーバ404に対して行い、許可証が発行されていればその許可証を使用するかどうかドキュメント印刷プログラム421がユーザに確認し、ユーザが許可証の使用を要求した場合にはドキュメント印刷プログラム421がアクセスコントロールサーバ404にその許可証の消費を通知する、というように分離して処理しても良い。
以上の動作によって、ユーザごとに異なるアクセス権や印刷要件を設定することが可能となると共に、ユーザごと、ドキュメントごとに明示的に許可証を発行してアクセスを許可することができるようになり、許可する際に印刷要件などの処理要件を設定することができる。また、上記のようにサーバ側で許可証を管理する仕組みにすることで、発行した許可証レコードを後から変更できるような機能を更に加えれば、許可証を発行した後でもその許可証を無効にすることが容易にできるようになる。
また、サーバ側で許可証を管理する仕組みが必須であるわけではない。許可証データベース445に格納されている許可証をユーザに渡してアクセスの際に提示させるようなモデルにしてもよい。その場合には許可証が改ざん・偽造される恐れがあるため、図24に示した許可証の構成に加えてその許可証の改ざん等を検出するためのメッセージ認証子のフィールドを加え、その許可証が提示された際にメッセージ認証子の正当性を確認するような処理を行うようにしてもよい。ここで、メッセージ認証子の生成方法の例としては、図24に示すデータに対してSHA-1やMD5といったハッシュアルゴリズムによりハッシュ値を計算し、許可証発行元だけが持つ秘密鍵によりそのハッシュ値を暗号化したもの等がある。更に、許可証の再利用を防ぐためにシリアル番号のフィールドを追加するようにして、すでに使用された許可証でないかどうか、シリアル番号で確認するような処理を行うようにしてもよい。
なお、ドキュメントファイルを印刷する際に、ドキュメント印刷プログラム421が必ずアクセスコントロールサーバ404に対してセキュリティポリシーを問い合わせる方式とすると、ユーザ数の増加に伴いアクセスコントロールサーバ404の情報処理量が増え、負担が大きくなってしまう。
このため、アクセスコントロールサーバ404の機能の一部をドキュメント印刷プログラム421に移行してもよい。
例えば、ドキュメント印刷プログラム421は、ユーザ認証を行った上で、ドキュメントIDをアクセスコントロールサーバ404へ受け渡すと、セキュリティポリシーと暗号鍵とセキュリティ属性とをアクセスコントロールサーバ404から取得し、これを基に許可情報や印刷要件を判断して処理するようにしてもよい。
このようにすれば、アクセスコントロールサーバ404の情報処理量を減らし、システム動作上の負担を軽減できる。この場合は、セキュリティポリシーに基づいた判断をドキュメント印刷プログラム421が行うため、ドキュメントにセキュリティ属性を添付した後に暗号化して暗号化ドキュメントとし、ドキュメントIDを添付して保護ドキュメントとすることが好ましい。これにより、セキュリティ属性をアクセスコントロールサーバ404で管理する必要がなくなり、システム動作上のアクセスコントロールサーバ404の負担をさらに軽減できる。
なお、本実施形態にかかるドキュメント保護・印刷システムが上記のような手法でドキュメントファイルを保護していることを知っている者は、ドキュメント印刷プログラム421に成りすますプログラムをコンピュータ端末に実行させて暗号鍵を不正に入手し、保護ドキュメントを復号することも可能ではある。この場合は、セキュリティポリシーとして設定されている印刷要件を強制されることなく、保護ドキュメントを印刷できてしまうこととなる。
このため、単に暗号鍵のみを用いてドキュメントファイルを暗号化するのではなく、ドキュメント保護プログラム411の内部に埋め込まれた秘密鍵と暗号鍵とを合わせたもの(排他的論理和を取ったもの)でドキュメントファイルを暗号化することが好ましい。 この場合は、ドキュメント印刷プログラム421にも同一の秘密鍵を埋め込んでおくことで、配布者が設定した印刷要件を印刷時に強制するドキュメント印刷プログラム421のみが、保護ドキュメントを復号して印刷することが可能となる。具体的には、第1の実施形態におけるものと同様に、図15および図16のように構成することができる。
また、本実施形態においては、ドキュメント印刷プログラム421は、ドキュメントファイルの印刷に関する処理のみを行っているが、ドキュメント印刷プログラム421は、ドキュメントファイルの内容をユーザに提示したり、ドキュメントファイルを編集する機能を備えていても良い。例えば、Adobe Acrobat(R)のPlug-inとしてポータブルドキュメントファイル(Portable Document Format:PDF File)の表示、編集および印刷の機能を実現することが可能である。
このように、本実施形態にかかるドキュメント保護・印刷システムによれば、予めセキュリティポリシーとして設定されている印刷要件をドキュメントを印刷する際に強制することができると共に、ユーザごと、ドキュメントごとに明示的に許可証を発行してアクセスを許可することができるようになり、許可する際に印刷要件などの処理要件を強制することができる。
図41に、上記各実施形態において適用されるプリンタが備えるセキュリティ機能の一部を示す。これらについて第3の実施形態におけるシステム構成を例として具体的に説明する。
まず、印刷要件としてPACが設定されている場合のドキュメント印刷プログラム421の動作について説明する。PACが設定されている場合のドキュメント印刷プログラム421の動作を図42に示す。
(1)ドキュメント印刷プログラム421はPACが設定されているドキュメントファイルを印刷する際には、図43に示すように、プリントダイアログを表示させた後に個人識別番号(Personal Identification Number:PIN)を入力するダイアログをユーザ端末402の表示装置に表示させ、ユーザにPINの入力を要求する。
(2)ユーザ端末402の入力装置を用いてユーザがPINを入力すると、ドキュメント印刷プログラム421は、これをプリンタドライバに設定し、印刷を指示する。
プリンタドライバは、ドキュメントからPostscriptなどのPDL(Page Description Language)で記述された印刷データ(PDLデータ)を生成し、印刷部数や出力トレイなどの印刷ジョブ情報を記述したPJL(Print Job Language)データをPDLデータの先頭に付加する。プリンタドライバはさらにPJLデータの一部としてPINを付加し、そのPJLデータ付きPDLデータをプリンタ403に送る。
プリンタ403は、PJLデータ付きPDLデータを受け取るとPJLデータの内容を参照し、機密印刷用のPINが含まれている場合は印刷出力せずにプリンタ403内部の記憶装置(HDDなど)にPJLデータ付きPDLデータを保存する。ユーザがPINをプリンタ403のオペレーションパネルを介して入力すると、プリンタ403は入力されたPINをPJLデータに含まれるPINと照合し、一致すればPJLデータに含まれていた印刷ジョブ条件(部数、トレイなど)を適用しながらPDLデータに従って印刷出力する。
(3)プリンタドライバにPINが設定できない、すなわち、プリンタ403が機密印刷をサポートしていない場合には、機密印刷をサポートしている別のプリンタを選択するようにユーザに通知し、ドキュメントを印刷せずに処理を終了する。
このようにすることで、印刷実行後、プリンタ403のオペレーションパネルにおいて印刷実行前に入力したものと同一のPINが入力されるまでドキュメントのプリントアウトがプリンタ403から出力されなくなる。このため、ドキュメントのプリントアウトがプリンタ403に不用意に放置されることがなくなり、プリントアウトによるドキュメントの漏洩を防止することが可能となる。さらに、ネットワーク上を流れるプリントデータを盗聴されないようにプリンタ403とのやりとりをSSLで保護してもよい。
また、ドキュメント印刷プログラム421をWindows(R)Domainのユーザ管理と連動させて、ユーザに対してPINの入力を要求しないようにしてもよい。例えば、PINをユーザに入力させるのではなく、Windows(R)Domainから現在ログオン中のユーザIDを取得し、プリントデータとともにユーザIDをプリンタ403へ送付するようにする。プリンタ403は、オペレーションパネルでユーザからのパスワード入力を受け、そのユーザIDとパスワードとでWindows(R)Domainのユーザ認証機構を用いてユーザ認証を行い、成功すればプリントアウトするようにしても良い。Windows(R)Domainに限定されず、予め導入されているユーザ管理と連動させることで、ユーザにとって面倒なPIN入力の手間を削減できる。
次に、印刷要件としてEBCが設定されている場合のドキュメント印刷プログラム421の動作について説明する。
(1)ドキュメント印刷プログラム421は、EBCが設定されているドキュメントを印刷する際にドキュメントIDを示すバーコード画像データ(又は、二次元コード)のデータを生成する。
(2)ドキュメント印刷プログラム421は、生成したバーコード画像データをスタンプ画像としてプリンタドライバにセットし、プリンタ403に印刷を指示する。
(3)プリンタドライバにEBCが設定できない、すなわち、プリンタ403がスタンプ機能をサポートしていない場合は、スタンプ機能をサポートしている他のプリンタを選択するようにユーザに通知し、印刷を行わずに処理を終了する。
このようにすることで、ドキュメントのプリントアウトの各ページにはバーコードが印刷されるため、このバーコードを識別できる複写機、ファックス、スキャナのみがバーコードをデコードすることでドキュメントIDを取得し、そのドキュメントIDを基にアクセスコントロールサーバ404でハードコピー、画像読み取り、ファックス送信などが許可されているか否かを判断することが可能となる。これにより、紙文書まで一貫したセキュリティ確保が可能となる。
次に、印刷要件としてBDPが設定されている場合のドキュメント印刷プログラム421の動作について説明する。
(1)ドキュメント印刷プログラム421は、BDPが設定されているドキュメントを印刷する際に、印刷を要求しているユーザ名と印刷日時とを文字列として取得する(例えば、Ichiro,2002/08/04 23:47:10)。
(2)ドキュメント印刷プログラム421は、ドキュメントのプリントアウトを複写機で複写した際に、生成した文字列が浮き上がるように地紋画像を生成する。
(3)ドキュメント印刷プログラム421は、生成した地紋画像をスタンプとしてプリンタドライバにセットし、プリンタ403にドキュメントの印刷を指示する。
(4)プリンタドライバにBDPが設定できない場合、すなわちプリンタ403が地紋印刷をサポートしていない場合には、地紋印刷をサポートしている別のプリンタを選択するようにユーザに通知し、印刷を行わずに処理を終了する。
このようにすることで、ドキュメントのプリントアウトの各ページには、印刷処理を実行したユーザ名と日時とが浮き出る地紋画像として印刷され、プリントアウトを複写機やスキャナ、ファックスで処理すると文字列が浮き出ることとなる。これ、EBCをサポートしていない複写機を使用する場合などに有効であり、ドキュメントのプリントアウトを複写することによる情報漏洩に対して抑止力を有する。
次に、印刷要件としてSLSが設定されている場合のドキュメント印刷プログラム421の動作について説明する。
(1)ドキュメント印刷プログラム421は、SLSが設定されているドキュメントファイルを印刷する際に、予め用意された画像のうち、そのドキュメントの機密レベルに応じたもの(Top Secretならば「極秘」のマークなど)を選択する。
(2)選択した画像のデータを、スタンプとしてプリンタドライバにセットし、プリンタ403に印刷を指示する。
(3)プリンタドライバにSLSをセットできない場合、すなわち、プリンタ403がSLSをサポートしていない場合には、ラベルスタンプをサポートしている別のプリンタを選択するようにユーザに通知し、印刷を行わずに処理を終了する。
このようにすることで、ドキュメントファイルのプリントアウトには、自動的に「極秘」や「マル秘」がスタンプとして印刷されるため、ドキュメントが機密文書であることが明らかとなる。すなわち、プリントアウトを所持する者に管理上の注意を喚起することができる。
上記の各例は、あくまでも印刷要件の例であり、改ざん防止用の電子透かしを印刷するようにしたり、保護されているドキュメントは特殊な用紙に印刷する(印刷に使用する用紙トレイを特殊用紙のトレイに限定する)ようにしてもよい。
さらに付言すると、印刷要件には、機能を制限・禁止するものと、機能を強制的に使用させるもの、加えて通常の印刷条件指定などを含めることができる。機能を制限・禁止する例としては、機密文書原本と区別をするために特別なユーザのみカラーでの印刷を許可して、他のユーザはグレースケールでの印刷のみを許可するように制限するための印刷要件などである。機能を強制的に使用させる例としては、機密印刷モードを強制的に使用するような印刷要件や、ログを強制的に記録するような印刷要件、印刷紙面に印刷したユーザの名前を強制的に印字するような印刷要件、ウォーターマークを強制的に印刷する印刷要件、地紋を強制的に印刷する印刷要件などである。通常の印刷条件を指定する例としては、用紙設定としてA4を指定する印刷要件,再生紙トレイを使用する印刷要件,両面印刷を指定する印刷要件などである。
また、これまで印刷要件の表現形式としてRAD、PACといったキーワードを用いて説明してきたが、そのようなキーワードでなくとも、例えば、プリンタドライバに設定する設定ファイルのデータそのものや、プリントデータに挿入するページ記述言語で表現したデータ、画面に表示する文字列そのもの、処理すべき要件の内容をスクリプト言語で記述したデータのようなものを用いて印刷要件を表現して規定するようにしても良い。すなわち、印刷要件の表現をキーワードのようなものに限定するものではない。
このように、プリンタ403がサポートする様々なセキュリティ機能を利用してセキュリティポリシーに沿った印刷要件を設定することによって、プリンタ403のセキュリティ機能を無駄なく活用して、プリントアウトに至るまで一貫したセキュリティの確保が可能となる。これは他の実施形態のシステム構成においても同様である。
一方、これまでの説明において、保護対象はドキュメント全体であるように記述してきたが、ドキュメントの中に保護対象となる部分(セグメントと呼ぶ)と、保護対象としない部分が混在していても良い。例えば、図44に示すように、保護セグメントが複数保護ドキュメント内に存在していても良い。この場合、保護セグメントごとに異なるセグメントIDをつけ、これまでの説明におけるドキュメントIDをセグメントIDと読みかえれば、同じ原理で保護セグメントごとに印刷を含むアクセスの制御が可能になる。実際には、保護セグメントの先頭と末尾には、そこから保護セグメントが開始することを示しそこで保護セグメントが終了することを示すマーカのようなものをつける必要がある。そういったマーカの入れ方については、MIMEのマルチパートセパレータなどの従来技術を用いることができる。
また、これまではドキュメント保護プログラムが配布者端末に配置されるような実施例に基づいて説明してきたが、ドキュメント保護プログラム本体はリモートサーバ上に配置するようにしても良い。例えば図33の配布者端末401、ドキュメント保護プログラム411およびアクセスコントロールサーバ404の関係は、図45に示すように変形することができる。このように配置することにより、ドキュメント保護プログラムがインストールされていない端末からでもリモートサーバにドキュメントと必要なパラメータを送付して保護ドキュメントを取得することができる。
なお、上述した各実施形態は、本発明の好適な実施の例であり、本発明はこれらに限定されることはない。
例えば、上記各実施形態においては、配布者端末とユーザ端末とが別個の装置である場合を例に説明を行ったが、これらは同一の装置を共用するような構成であっても構わない。
また、上記各実施形態では、ドキュメント印刷プログラムが実装されたユーザ端末を、ユーザが直接操作する場合を例に説明を行ったが、これに限定されるものではない。例えば、ドキュメント印刷プログラムがサーバに実装されており、ユーザがユーザ端末を操作しネットワーク網を介してドキュメント印刷プログラムを実行させる構成であってもよい。
また、ユーザ認証の方法は、ユーザ名とパスワードとを用いる方法に限定されることはなく、スマートカードを用いたPKIベースの認証方法を適用してもよい。
このように、本発明は様々な変形が可能である。
さらに、上記の説明では「プリンタ」という用語が使われているが、これは狭義のプリンタ専用機に限らず、コピー、ファクシミリ、これらの複合・融合された機器等、すなわち印刷機能を有するすべての機器を意味するものである。