(57)【要約】      （修正有）【課題】機密文書をクラウドストレージサービス管理者のミスや害意から文書を保護するとともに、簡単な運用で機密文書を安全にクラウドストレージに保管することを可能とする技術を提供する。【解決手段】仮想端末１１３が、共通鍵を管理する秘密鍵管理装置１３０から、複数種類の鍵を保護するための第１の共通鍵であって、暗号化された第１の共通鍵を取得し、暗号化された第１の共通鍵を、仮想端末管理装置１１０に固有のコンピュータ秘密鍵１１２と仮想端末のそれぞれに固有のユーザ秘密鍵１１５で復号して平文の第１の共通鍵を取得する。また、仮想端末１１３は、平文の第１の共通鍵で、文書を暗号化するためのデータ鍵を暗号化して保護済データ鍵を生成する。そして、仮想端末１１３は、保護済データ鍵と暗号化文書をクラウドサービスに設けられた暗号化文書管理装置１００に送信して保存させる。【選択図】図１
2017147654.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの仮想端末をクライアント端末に提供する仮想端末管理装置であって、
前記仮想端末は、
共通鍵を管理する外部サーバから、複数種類の鍵を保護するための第１の共通鍵であって、暗号化された前記第１の共通鍵を取得し、
前記暗号化された第１の共通鍵を、前記仮想端末管理装置に固有のコンピュータ秘密鍵と前記仮想端末のそれぞれに固有のユーザ秘密鍵で復号して平文の前記第１の共通鍵を取得し、
前記平文の第１の共通鍵で、文書を暗号化するためのデータ鍵を暗号化して保護済データ鍵を生成し、
前記保護済データ鍵と暗号化文書をクラウドサービスに設けられた暗号化文書管理装置に送信して保存させる、仮想端末管理装置。
【請求項２】
請求項１において、
前記仮想端末は、
前記共通鍵を管理する外部サーバから、インデックスを保護するための第２の共通鍵であって、暗号化された前記第２の共通鍵を取得し、
前記暗号化された第２の共通鍵を、前記平文の第１の共通鍵で復号して平文の前記第２の共通鍵を取得し、
前記文書に基づいてインデックスを生成し、当該インデックスを前記平文の第２の共通鍵で暗号化して保護済インデックスを生成し、
前記保護済インデックスを前記暗号化文書管理装置に送信して保存させる、仮想端末管理装置。
【請求項３】
請求項２において、
前記仮想端末は、
入力された検索キーワードに対応する、暗号化された文書識別情報を前記暗号化文書管理装置から取得し、
前記暗号化された文書識別情報を、前記平文の第２の共通鍵で復号して平文の文書識別情報を取得し、
前記平文の文書識別情報に基づいて前記暗号化文書管理装置から、前記検索キーワードに対応する検索結果のリストを取得し、前記クライアント端末に提供する、仮想端末管理装置。
【請求項４】
請求項３において、
前記仮想端末は、前記平文の第２の共通鍵で前記検索キーワードを暗号化して前記暗号化文書管理装置に送信し、前記暗号化された検索キーワードに対応する前記暗号化された文書識別情報を前記暗号化文書管理装置から取得する、仮想端末管理装置。
【請求項５】
請求項３において、
前記仮想端末は、
前記暗号化文書管理装置から、所望の前記暗号化文書と当該暗号化文書を復号するための前記保護済データ鍵を取得し、
前記平文の第１の共通鍵で前記保護済データ鍵を復号し、
前記復号されたデータ鍵で前記所望の暗号化文書を復号する、仮想端末管理装置。
【請求項６】
請求項２において、
前記仮想端末は、
前記第１の共通鍵をランダムに生成し、
前記第２の共通鍵をランダムに生成し、
前記第２の共通鍵を前記第１の共通鍵で暗号化し、前記共通鍵を管理する外部サーバに前記暗号化された第２の共通鍵を送信して保存させ、
前記第１の共通鍵を、前記仮想端末管理装置に固有のコンピュータ公開鍵と前記仮想端末のそれぞれに固有のユーザ公開鍵で暗号化し、前記共通鍵を管理する外部サーバに前記暗号化された第１の共通鍵を送信して保存させる、仮想端末管理装置。
【請求項７】
請求項１において、
第１の仮想端末は、
第２の仮想端末に固有のユーザ公開鍵を取得し、
前記平文の第１の共通鍵を、前記仮想端末管理装置に固有のコンピュータ公開鍵と前記第２の仮想端末に固有のユーザ公開鍵で暗号化して第２の仮想端末の保護済の第１の共通鍵を生成し、
前記共通鍵を管理する外部サーバに前記第２の仮想端末の保護済の第１の共通鍵を送信して保存させることにより、前記第１の共通鍵を前記第２の仮想端末と共有する、仮想端末管理装置。
【請求項８】
クラウドサービスを利用して文書を保存し、保護する文書保護方法であって、
仮想端末管理装置が、少なくとも１つの仮想端末をクライアント端末に提供することと、
前記仮想端末が、共通鍵を管理する外部サーバから、複数種類の鍵を保護するための第１の共通鍵であって、暗号化された前記第１の共通鍵を取得することと、
前記仮想端末が、前記暗号化された第１の共通鍵を、前記仮想端末管理装置に固有のコンピュータ秘密鍵と前記仮想端末のそれぞれに固有のユーザ秘密鍵で復号して平文の前記第１の共通鍵を取得することと、
前記仮想端末が、前記平文の第１の共通鍵で、文書を暗号化するためのデータ鍵を暗号化して保護済データ鍵を生成することと、
前記仮想端末が、前記保護済データ鍵と暗号化文書をクラウドサービスに設けられた暗号化文書管理装置に送信することと、
前記暗号化文書管理装置が、前記保護済データ鍵と前記暗号化文書を記憶領域に保存することと、
を含む、文書保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想端末管理装置、及び文書保護方法に関し、例えば、機密情報の保護技術に関するものである。
【背景技術】
【０００２】
企業における情報システムでは、運用コストの削減を目的としてクラウドの活用が進んでいる。中でも、クラウドストレージの活用は、企業間での文書の相互活用などに有効である。クラウドストレージサービスとしては現在多くのものが知られており、例えば非特許文献１及び２に開示されるサービスがある。
【０００３】
企業におけるクラウドストレージの利活用には課題がある。まず、企業で取り扱う文書のほとんどは機密文書であるため、クラウドストレージ上の文書を攻撃者から保護できるようにする必要がある。このことは、通信路の暗号化やストレージの暗号化などによってある程度は実現することができる。しかし、クラウドストレージの管理者はストレージの暗号化に必要な鍵を知っているため、当該管理者のミスや害意などによって機密文書を盗み見される可能性がある。つまり、このような脅威からも機密文書を保護する必要がある。さらに、この保護対策が実効性のあるものにするには、ユーザサイドや管理者サイドの運用を簡単なものにする必要がある。
【０００４】
このような脅威への対策としては、暗号鍵をクラウドではなくクライアント端末に保持するというものが考えられる。例えば、データ鍵と呼ぶ暗号鍵で暗号化した文書を保管する暗号化文書管理装置をクラウドに設定し、この暗号化文書管理装置へのアクセスもシステム鍵と呼ぶ暗号鍵で制限をかける。復号に用いるデータ鍵やシステム鍵はクライアント端末で保管し、クライアント端末でこれらの復号鍵を用いて、クライアント端末に設置されている、復号処理を実行する暗号処理部によって復号を実施する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】https://drive.google.com
【非特許文献２】https://aws.amazon.com/jp/s3
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述の方式には、ユーザの端末にホストの鍵と文書の鍵の２種類が存在するため、鍵の運用管理が煩雑になる。運用を簡単にするには、ユーザ端末で管理される鍵は１つにすることが望ましい。その一方で、鍵をユーザが使用する物理的な端末に保存すると、文書が盗み見られるリスクが残ってしまい都合が悪い。
【０００７】
本発明はこのような状況に鑑みてなされたものであり、機密文書をクラウドストレージサービス管理者のミスや害意から文書を保護するとともに、簡単な運用で機密文書を安全にクラウドストレージに保管することを可能とする技術を提供するものである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明では、仮想端末が、共通鍵を管理する外部サーバから、複数種類の鍵を保護するための第１の共通鍵であって、暗号化された第１の共通鍵を取得し、暗号化された第１の共通鍵を、仮想端末管理装置に固有のコンピュータ秘密鍵と仮想端末のそれぞれに固有のユーザ秘密鍵で復号して平文の第１の共通鍵を取得する。また、仮想端末は、平文の第１の共通鍵で、文書を暗号化するためのデータ鍵を暗号化して保護済データ鍵を生成する。そして、仮想端末は、保護済データ鍵と暗号化文書をクラウドサービスに設けられた暗号化文書管理装置に送信して保存させる。
【０００９】
本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、本発明の態様は、要素及び多様な要素の組み合わせ及び以降の詳細な記述と添付される特許請求の範囲の様態により達成され実現される。
【００１０】
本明細書の記述は典型的な例示に過ぎず、本発明の特許請求の範囲又は適用例を如何なる意味に於いても限定するものではないことを理解する必要がある。
【発明の効果】
【００１１】
本発明によれば、機密文書をクラウドストレージサービス管理者のミスや害意から文書を保護するとともに、簡単な運用で機密文書を安全にクラウドストレージに保管することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態による文書保護システムの概略構成を示す図である。
【図２】本実施形態による暗号化及び復号の形態（データ構成）を説明するための図である。
【図３】本実施形態による、文書を登録・一覧表示するユーザインタフェース（ＵＩ）３００の例を示す図である。
【図４】本実施形態による、文書を検索するユーザインタフェース４００の例を示す図である。
【図５】コンピュータ証明書とユーザ証明書を発行する処理を説明するためのフローチャートである。
【図６】最初のユーザの保護済組織鍵および保護済インデックス鍵を作成する処理を説明するためのフローチャートである。
【図７】２人目以降のユーザの保護済組織鍵を作成する処理を説明するためのフローチャートである。
【図８】暗号化文書を保存する処理を説明するためのフローチャートである。
【図９】登録済み文書を検索する処理を説明するためのフローチャートである。
【図１０】登録済み文書を復号し、平文として取得する処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１３】
本実施形態では、仮想端末管理装置は、少なくとも１つの仮想端末をクライアント端末に提供する。当該仮想端末は、共通鍵を管理する外部サーバ（秘密鍵管理装置）から、複数種類の鍵を保護するための第１の共通鍵（組織鍵）であって、暗号化された第１の共通鍵を取得し、暗号化された第１の共通鍵を、仮想端末管理装置に固有のコンピュータ秘密鍵と当該仮想端末に固有のユーザ秘密鍵で復号して平文の第１の共通鍵を取得する。そして、仮想端末は、平文の第１の共通鍵で、文書を暗号化するためのデータ鍵を暗号化して保護済データ鍵を生成し、これと暗号化文書をクラウドサービスに送信して保存する。このようにすることにより、仮想端末管理装置の管理者であってもミスや害意により機密文書を開示したり、盗み見したりすることはできなくなる（ユーザ秘密鍵を取得できないため）。また、１つの仮想端末が管理しなければならない鍵は１つ（１組のユーザ公開鍵及び秘密鍵）だけであるため、システム運用が非常に簡単になるという利点もある。
【００１４】
また、仮想端末は、共通鍵を管理する外部サーバから、インデックスを保護するための第２の共通鍵（インデックス鍵）であって、暗号化された第２の共通鍵を取得し、暗号化された第２の共通鍵を、平文の第１の共通鍵で復号して平文の第２の共通鍵を取得する。そして、仮想端末は、文書と平文の第２の共通鍵に基づいて保護済インデックスを生成し、これをクラウドサービスに送信して保存する。このようにすることにより、文書を検索するために生成されたインデックスさえもユーザ公開鍵で保護された第１の共通鍵（組織鍵）で保護されているので、仮想端末管理装置の管理者であってもインデックスを見ることができず、どのような文書が存在するかさえ知ることができない。
【００１５】
なお、仮想端末は、第１の共通鍵（組織鍵）及び第２の共通鍵（インデックス鍵）をランダムに生成する。そして、仮想端末は、第２の共通鍵を第１の共通鍵で暗号化し、共通鍵を管理する外部サーバ（秘密鍵管理装置）に暗号化された第２の共通鍵を送信して保存する。また、仮想端末は、第１の共通鍵を、コンピュータ公開鍵とユーザ公開鍵で暗号化し、共通鍵を管理する外部サーバに暗号化された第１の共通鍵を送信して保存する。
【００１６】
また、既存ユーザが新規ユーザを共通のグループに入れる場合、第１の仮想端末（既存ユーザ）は、第２の仮想端末（新規ユーザ）に固有のユーザ公開鍵を取得し、平文の第１の共通鍵（組織鍵）を、コンピュータ公開鍵と新規ユーザのユーザ公開鍵で暗号化して保護済の第１の共通鍵（新規ユーザ用）を生成する。そして、第１の仮想端末は、共通鍵を管理する外部サーバに新規ユーザ用の保護済の第１の共通鍵を送信して保存する。このようにすることにより、新規ユーザ（第２の仮想端末）と既存ユーザ（第１の仮想端末）は、第１の共通鍵（組織鍵）を機密性を保ちながら共有することができるようになる。
【００１７】
以下、添付図面を参照して本発明の実施形態について説明する。添付図面では、機能的に同じ要素は同じ番号で表示される場合もある。なお、添付図面は本発明の原理に則った具体的な実施形態と実装例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
【００１８】
本実施形態では、当業者が本発明を実施するのに十分詳細にその説明がなされているが、他の実装・形態も可能で、本発明の技術的思想の範囲と精神を逸脱することなく構成・構造の変更や多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述をこれに限定して解釈してはならない。
【００１９】
更に、本発明の実施形態は、後述されるように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装しても良い。
【００２０】
なお、以後の説明では「テーブル」形式によって本発明の各情報について説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、ＤＢ、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「ＤＢ」、「キュー」等について単に「情報」と呼ぶことがある。
【００２１】
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ＩＤ」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
【００２２】
以下では、主に「仮想端末」を主語（動作主体）として本発明の実施形態における各処理について説明を行うが、仮想端末は仮想端末管理装置のプロセッサやメモリ等のハードウェアの一部を用いて実現されるものであるため、プロセッサを主語とした説明としてもよい。また、仮想端末がフローチャートに従って実行するプログラムに関しては、そのプログラムの一部または全てを専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
【００２３】
＜文書保護システムの構成＞
図１は、本発明の実施形態による文書保護システム（「文書管理システム」と称することも可能）１の概略構成を示す図である。
【００２４】
文書保護システム１は、例えば、クラウドサービスとしての暗号化文書管理装置１００と、仮想端末管理装置１１０と、証明書管理装置１２０と、秘密鍵管理装置１３０と、少なくとも１つのクライアント端末１４０と、を備えている。仮想端末管理装置１１０、証明書管理装置１２０、及び秘密鍵管理装置１３０は、それぞれサーバ装置として位置づけられるようにしても良い。
【００２５】
暗号化文書管理装置１００は、平文の文書をデータ鍵という共通鍵で暗号化した暗号化文書を格納する暗号化文書格納部１０１と、データ鍵を組織鍵という別の共通鍵で保護した保護済データ鍵を格納する保護済データ鍵格納部１０２と、暗号化文書格納部１０１に格納された各暗号化文書を復号せずに検索できるようにするためのインデックスであって、インデックス鍵という共通鍵で暗号化したインデックスを格納する暗号化インデックス格納部１０３と、文書の登録や検索などの操作を受け付けて暗号化や復号などを自動的に実行する暗号処理部１０４と、を備えている。暗号化文書格納部１０１、保護済データ鍵格納部１０２、及び暗号化インデックス格納部１０３は別々の記憶装置として設けても良いし、１つの記憶装置の記憶領域を区分して用いるようにしても良い。
【００２６】
証明書管理装置１２０は、文書へのアクセスに必要なコンピュータ公開鍵証明書（正当な仮想端末管理装置であることを証明する証書）とユーザ公開鍵証明書（正当な仮想端末であることを証明する証書）とを発行する機能を有している。
【００２７】
秘密鍵管理装置１３０は、ユーザごとに組織鍵を前述のコンピュータ公開鍵証明書に付随する公開鍵であるコンピュータ公開鍵１１１と前述のユーザ公開鍵証明書に付随するユーザ公開鍵１１４で暗号化した保護済組織鍵を保護済組織鍵格納部１３１で、インデックス鍵を組織鍵で保護した保護済インデックス鍵を保護済インデックス鍵格納部１３２で保管する機能を有する。
【００２８】
仮想端末管理装置１１０は、コンピュータ公開鍵１１１とそれに付随する秘密鍵であるコンピュータ秘密鍵１１２とを持ち、ユーザごとに仮想端末１１３を提供する機能と、仮想端末１１３にユーザ公開鍵１１４とそれに付随する秘密鍵であるユーザ秘密鍵１１５とを保持させ、これらの鍵を用いて暗号化文書管理装置１００の暗号化文書格納部１０１にアクセスする機能と、を有する。当該仮想端末１１３は、暗号処理部１０４で生成された所定の画面データ（例えば、図３や４のＵＩ）を取得し、対応するクライアント端末１４０に転送する。データを受信したクライアント端末１４０は、その画面データを表示画面上に表示する。
【００２９】
クライアント端末１４０は、仮想端末管理装置１１０を経由して暗号化文書管理装置１００にアクセスすることができるように構成されている。
【００３０】
仮想端末管理装置１１０、証明書管理装置１２０、及び秘密鍵管理装置１３０はそれぞれオンプレミスで構成されるようにすることが機密保持上望ましいが、別々の企業体などで構成されるようにしても良い。
【００３１】
＜データ構成例＞
図２は、本実施形態による暗号化及び復号の形態（データ構成）を説明するための図である。図２において、錠前マークは暗号化するための鍵を表し、鍵マークは復号するための鍵を表している。
【００３２】
暗号化文書は、管理対象となる文書を、データ鍵と呼ぶ文書ごとの共通鍵（暗号化及び復号で同一の鍵を使うもの）によって暗号化したものである。共通鍵による暗号化の方式は、例えばＡＥＳによる。以下、共通鍵による暗号化の方式の例については、特記すべきことがなければ繰り返さない。データ鍵は、文書によって異なり、文書の登録時に生成される。
【００３３】
保護済データ鍵は、文書を暗号化・復号するために用いるデータ鍵を、組織鍵と呼ぶ、文書を共有する単位（共有単位：例えば、所定のグループ）ごとの共通鍵によって暗号化したものである。組織鍵は、共有単位を形成する度に生成される。
【００３４】
暗号化インデックスは、管理対象となる文書を検索するためのインデックスを、インデックス鍵と呼ぶ共通鍵によって暗号化したものである。インデックス鍵は、共有単位を形成する度に生成される。
【００３５】
保護済インデックス鍵は、インデックス鍵を、組織鍵によって暗号化したものである。
【００３６】
コンピュータ公開鍵は、仮想端末管理装置１１０に付随する固有の公開鍵であり、証明書管理装置１２０によってその公開鍵証明書が発行される。公開鍵による暗号化の方式は、例えばＲＳＡによる。以下、公開鍵による暗号化の方式の例については、特記すべきことがなければ繰り返さない。コンピュータ秘密鍵は、仮想端末管理装置１１０に付随する固有の秘密鍵であり、コンピュータ公開鍵と対となり、コンピュータ公開鍵で暗号化したデータの復号を仮想端末管理装置１１０のみにおいて可能とするものである。
【００３７】
ユーザ公開鍵は、仮想端末１１３に付随する固有の公開鍵であり、証明書管理装置１２０によってその公開鍵証明書が発行される。ユーザ公開鍵は、仮想端末ごとに異なる。ユーザ秘密鍵は、仮想端末１１３に付随する固有の秘密鍵であり、ユーザ公開鍵と対となり、ユーザ公開鍵で暗号化したデータの復号を仮想端末１１３のみにおいて可能とするものである。ユーザ秘密鍵は、仮想端末ごとに異なる。
【００３８】
保護済組織鍵は、組織鍵を、コンピュータ公開鍵で暗号化し、それをさらにユーザ公開鍵で暗号化したものである。これにより、組織鍵を使用するには、保護済組織鍵をユーザ秘密鍵で復号し、さらにコンピュータ秘密鍵で復号する必要がある。このため、組織鍵の使用は、ユーザがクライアント端末１４０から仮想端末管理装置１１０を通して仮想端末１１３を用いる場合のみによって可能になり、この場合にのみ保護済データ鍵や保護済インデックス鍵の復号、暗号化文書や暗号化インデックスの復号が可能になる。この結果、仮想端末管理装置１１０を通さずに暗号化文書管理装置１００の文書を利用しようとしても組織鍵が使えないため、文書が保護される。
【００３９】
＜文書を登録・一覧表示するユーザインタフェースの例＞
図３は、本実施形態による、文書を登録・一覧表示するユーザインタフェース（ＵＩ）３００の例を示す図である。ユーザインタフェース３００は、例えばＨＴＭＬによって提供され、登録済文書表示領域３０１と、ファイル追加領域３０２と、を含んでいる。
【００４０】
登録済文書表示領域３０１は、登録済みの文書を表示する領域である。文書の表示内容は、例えば、ファイルの種類、名前、サイズおよび更新日時であるが、これに限るものではない。
【００４１】
ファイル追加領域３０２は、ファイルを追加するためのユーザインタフェースを提供する。ファイル追加領域３０２にファイルをＯＳのファイル管理ＧＵＩなどからドラッグアンドドロップすると、仮想端末１１３は、当該ファイルをデータ鍵で暗号化する。そして、仮想端末１１３は、当該登録されるファイルに対する暗号化インデックスを作成して暗号化文書管理装置１００に送信する。暗号化文書管理装置１００は、受け取った暗号化インデックスを暗号化インデックス格納部１０３に保存する。ファイルの追加方法はこれに限るものではなく、例えば、追加するファイルを選択するダイアログを表示させるユーザインタフェースと、選択したファイルを追加するためのボタンを備えたものであってもよい。
【００４２】
また、例えば、登録済文書表示領域３０１に表示されたファイルの名前をクリックすると、仮想端末１１３は、選択したファイルを暗号化されたままの状態でダウンロードする。そして、当該暗号化ファイルは、復号された後に仮想端末１１３の記憶領域に保存される。この操作は、典型的にはＷｅｂブラウザのファイルダウンロード機能を利用するので、ユーザの選択によっては復号後のファイルを開くことになってもよい。
【００４３】
＜文書を検索するユーザインタフェースの例＞
図４は、本実施形態による、文書を検索するユーザインタフェース４００の例を示す図である。ユーザインタフェース４００は、仮想端末１１３が暗号化文書管理装置１００の暗号処理部１０４に対して検索を要求すると仮想端末１１３を介してクライアント端末１４０の画面上に表示されるものである。
【００４４】
ユーザインタフェース４００は、検索キーワード入力領域４０１と、検索開始ボタン４０２と、検索結果表示領域４０３と、を含んでいる。
【００４５】
検索キーワード入力領域４０１は、目的の文書をヒットさせるためのキーワードを入力するための領域である。検索開始ボタン４０２は、検索キーワード入力領域４０１で入力したキーワードを基に暗号化文書管理装置１００に問い合わせ、検索結果を返すためのボタンである。検索結果表示領域４０３は、検索開始ボタン４０２を押したときの検索結果を示す領域である。図４に表示されている検索結果は、キーワードとして「マニュアル」を入力して検索を実行したときの結果例を示している。なお、ここでは、検索結果の表示内容はファイルの種類、名前、サイズおよび更新日時としているが、これに限るものではない。
【００４６】
また、例えば、検索結果で表示されたファイルの名前をクリックすると、仮想端末１１３は、選択したファイルを暗号化されたままの状態でダウンロードする。当該暗号化ファイルは、復号された後に仮想端末１１３の記憶領域に保存される。この操作は、典型的にはＷｅｂブラウザのファイルダウンロード機能を利用するので、ユーザの選択によっては復号後のファイルを開くことになってもよい。
【００４７】
＜コンピュータ証明書とユーザ証明書の発行処理＞
図５は、コンピュータ証明書とユーザ証明書を発行する処理を説明するためのフローチャートである。なお、証明書管理装置では、コンピュータ証明書・ユーザ証明書ともに、発行した証明書からの秘密鍵のエクスポートを禁止する設定をあらかじめしておくものとする。
【００４８】
（Ａ）コンピュータ証明書発行処理
コンピュータ証明書発行処理は、仮想端末管理装置１１０が初めて運用されるときに１回だけ実行される初期処理である。
【００４９】
（i）ステップ５０１
管理ユーザが仮想端末管理装置１１０を操作してコンピュータ証明書発行を指示すると、仮想端末管理装置１１０は、ランダムにコンピュータ公開鍵とコンピュータ秘密鍵を作成する。そして、仮想端末管理装置１１０は、証明書管理装置１２０に対して、生成したコンピュータ公開鍵とコンピュータ秘密鍵と共にコンピュータ証明書の発行の要求を送信する。
【００５０】
（ii）ステップ５０２
証明書管理装置１２０は、ステップ５０１の要求に応答して、コンピュータ証明書を仮想端末管理装置１１０に対して発行する。コンピュータ証明書は、例えば、承認されたコンピュータ公開鍵及びコンピュータ秘密鍵を含んでいる。ただし、上述のように、コンピュータ秘密鍵は、証明書からエクスポートできないようになっている。
【００５１】
（iii）ステップ５０３
仮想端末管理装置１１０は、発行されたコンピュータ証明書を自装置にインストールする。同時に、これに付随するコンピュータ公開鍵がインストールされる。これらの手続きは、仮想端末管理装置１１０へのログインなどの操作によって自動的に実行されてもよい。コンピュータ秘密鍵については、コンピュータ証明書発行前に仮想端末管理装置１１０が生成したものを用いれば良い。なお、コンピュータ証明書は、コンピュータ公開鍵及びコンピュータ秘密鍵の両方について、単に承認した事実のみを情報として含むようにしても良い。その場合、仮想端末管理装置１１０は、証明書発行要求前に自身が作成したコンピュータ公開鍵及びコンピュータ秘密鍵を用いることになる。
【００５２】
（Ｂ）ユーザ証明書発行処理
ユーザ証明書発行処理は、仮想端末１１３が初めて運用されるときに１回だけ実行される初期処理である。
【００５３】
（i）ステップ５０４
事前に通知されたログイン情報に基づいて、ユーザはクライアント端末１４０を操作して仮想端末管理装置１１０にログインすると、クライアント端末１４０は、仮想端末１１３に接続する。
【００５４】
（ii）ステップ５０５
接続に成功した後、ユーザが仮想端末１１３を操作してユーザ証明書発行を指示すると、仮想端末１１３は、ランダムにユーザ公開鍵とユーザ秘密鍵を作成する。そして、仮想端末１１３は、証明書管理装置１２０に対して、生成したユーザ公開鍵とユーザ秘密鍵と共にユーザ証明書の発行の要求を送信する。
【００５５】
（iii）ステップ５０６
証明書管理装置１２０は、ステップ５０５の要求に応答して、ユーザ証明書を仮想端末管理装置１１０の仮想端末１１３に対して発行する。ユーザ証明書は、例えば、承認されたユーザ公開鍵及びユーザ秘密鍵を含んでいる。ただし、上述のように、ユーザ秘密鍵は、証明書からエクスポートできないようになっている。
【００５６】
（iv）ステップ５０７
仮想端末１１３は、発行されたユーザ証明書を自端末にインストールする。同時に、これに付随するユーザ公開鍵がインストールされる。これらの手続きは、仮想端末１１３へのログインなどの操作によって自動的に実行されてもよい。ユーザ秘密鍵については、ユーザ証明書発行前に仮想端末１１３が生成したものを用いれば良い。なお、ユーザ証明書は、ユーザ公開鍵及びユーザ秘密鍵の両方について、単に承認した事実のみを情報として含むようにしても良い。その場合、仮想端末１１３は、証明書発行要求前に自身が作成したユーザ公開鍵及びユーザ秘密鍵を用いることになる。
【００５７】
＜最初のユーザの保護済組織鍵および保護済インデックス鍵の作成処理＞
図６は、最初のユーザの保護済組織鍵および保護済インデックス鍵を作成する処理を説明するためのフローチャートである。当該処理は、最初のユーザが仮想端末１１３にログインしたうえで、仮想端末１１３から秘密鍵管理装置１３０にアクセスすることで実行される。例えば、仮想端末１１３に、保護済組織鍵および保護済インデックス鍵を作成するプログラムをインストールしておき、それを実行する。あるいは、暗号処理部１０４に同等の機能を組み込んでおき、そこから実行してもよい。
【００５８】
（i）ステップ６０１
仮想端末１１３は、平文の組織鍵をランダムに生成する。組織鍵は、あるグループ（文書の共有単位）内で共有される鍵である。
【００５９】
（ii）ステップ６０２
仮想端末１１３は、平文のインデックス鍵をランダムに生成する。インデックス鍵は、登録される文書のインデックスを暗号化するための鍵であり、組織鍵と同様に、上記グループ内で共有される鍵である。
【００６０】
（iii）ステップ６０３
仮想端末１１３は、平文のインデックス鍵を平文の組織鍵で暗号化する。
【００６１】
（iv）ステップ６０４
仮想端末１１３は、ステップ６０３における暗号化結果を保護済インデックス鍵として、秘密鍵管理装置１３０に送信する。そして、秘密鍵管理装置１３０は、受信した保護済インデックス鍵を保護済インデックス鍵格納部１３２に保存する。
【００６２】
（v）ステップ６０５
仮想端末１１３は、平文の組織鍵をコンピュータ公開鍵で暗号化する。なお、コンピュータ鍵は、仮想端末管理装置１１０に保持されているので、これが用いられる。
【００６３】
（vi）ステップ６０６
仮想端末１１３は、ステップ６０５での暗号化結果をさらにユーザ公開鍵で暗号化する。ユーザ公開鍵は、当該仮想端末１１３にユーザがログインしたときに生成されているため、これが用いられる。
【００６４】
（vii）ステップ６０７
仮想端末１１３は、ステップ６０６での暗号化結果を保護済組織鍵として、秘密鍵管理装置１３０に送信する。そして、秘密鍵管理装置１３０は、保護済組織鍵を保護済組織鍵格納部１３１に保存する。
【００６５】
＜２人目以降のユーザの保護済組織鍵の作成処理＞
図７は、２人目以降のユーザの保護済組織鍵を作成する処理を説明するためのフローチャートである。ここでは、既存ユーザが仮想端末１１３にログインしたうえで、新規ユーザを招待する形（既存ユーザが新規ユーザの保護済組織鍵を作成して受け渡す）で、新規ユーザの保護済組織鍵を作成する。例えば、仮想端末１１３に、保護済組織鍵を作成するプログラムをインストールしておき、それを実行する。あるいは、暗号処理部１０４に同等の機能を組み込んでおき、そこから実行してもよい。
【００６６】
（i）ステップ７０１
既存ユーザ（招待者）の指示に応答して、仮想端末（既存ユーザの仮想端末）１１３は、秘密鍵管理装置１３０に問い合わせて、自身の保護済組織鍵を取得する。
【００６７】
（ii）ステップ７０２
仮想端末１１３は、ステップ７０１で取得した保護済組織鍵を、既存ユーザのユーザ秘密鍵で復号する。
【００６８】
（iii）ステップ７０３
仮想端末１１３は、ステップ７０２での復号結果を、既存ユーザの仮想端末１１３が属する仮想端末管理装置１１０のコンピュータ秘密鍵で復号する。これによって平文の組織鍵が得られる。
【００６９】
（iv）ステップ７０４
仮想端末１１３は、新規ユーザ（被招待者）から取得したユーザＩＤを含む情報を証明書管理装置１２０に送信して当該新規ユーザのユーザ公開鍵について問い合わせ、新規ユーザのユーザ公開鍵を取得する。なお、ここでは、招待する時点で当該新規ユーザが自身の仮想端末にログインしていて自身のユーザ公開鍵を既に生成済であることを前提としている。
【００７０】
（v）ステップ７０５
既存ユーザの仮想端末１１３は、平文の組織鍵を、コンピュータ公開鍵で暗号化する。
【００７１】
（vi）ステップ７０６
仮想端末１１３は、ステップ７０５での暗号化結果を、ステップ７０４で取得した新規ユーザのユーザ公開鍵で暗号化する。
【００７２】
（vii）ステップ７０７
仮想端末１１３は、ステップ７０６での暗号化結果を新規ユーザの保護済組織鍵として、秘密鍵管理装置１３０に送信する。そして、秘密鍵管理装置１３０は、受信した保護済組織鍵を保護済組織鍵格納部１３１に保存する。
【００７３】
＜暗号化文書の保存処理＞
図８は、暗号化文書を保存する処理を説明するためのフローチャートである。ここでは、ユーザが仮想端末１１３から暗号化文書管理装置１００にアクセスし、暗号処理部１０４をブラウザ（図３参照）に表示してから、暗号処理部１０４のファイル追加インタフェース３０２にファイルをドラッグアンドドロップすることで処理が開始する。
【００７４】
（i）ステップ８０１
仮想端末１１３は、文書の登録操作を受けて、当該文書に固有のデータ鍵をランダムに生成する。
【００７５】
（ii）ステップ８０２
仮想端末１１３は、ステップ８０１で生成したデータ鍵で文書を暗号化する。
【００７６】
（iii）ステップ８０３
仮想端末１１３は、秘密鍵管理装置１３０に問い合わせて、文書を登録するユーザの保護済組織鍵を取得する。
【００７７】
（iv）ステップ８０４
仮想端末１１３は、ステップ８０３で取得した保護済組織鍵を、文書を登録するユーザのユーザ秘密鍵で復号する。
【００７８】
（v）ステップ８０５
仮想端末１１３は、ステップ８０４における復号結果をさらに、文書を登録するユーザのコンピュータ秘密鍵で復号する。これによって、平文の組織鍵が得られる。
【００７９】
（vi）ステップ８０６
仮想端末１１３は、ステップ８０５で得られた平文の組織鍵で、ステップ８０１で生成したデータ鍵を暗号化し、保護済データ鍵を作成する。
【００８０】
（vii）ステップ８０７
仮想端末１１３は、秘密鍵管理装置１３０に問い合わせて、保護済インデックス鍵を取得する。
【００８１】
（viii）ステップ８０８
仮想端末１１３は、ステップ８０７で取得した保護済インデックス鍵を平文の組織鍵で復号し、平文のインデックス鍵を得る。
【００８２】
（ix）ステップ８０９
仮想端末１１３は、登録する文書と、ステップ８０８で取得した平文のインデックス鍵を基に、暗号化インデックスを作成する。
【００８３】
（x）ステップ８１０
仮想端末１１３は、暗号化文書・保護済データ鍵を暗号化文書管理装置１００に送信する。暗号化文書管理装置１００は、受信した暗号化文書及び保護済データ鍵を、暗号化文書格納部１０１および保護済データ鍵格納部１０２にそれぞれ保存する。
【００８４】
（xi）ステップ８１１
仮想端末１１３は、暗号化インデックスを暗号化文書管理装置１００に送信する。暗号化文書管理装置１００は、受信した暗号化インデックスを暗号化インデックス格納部１０３に保存する。
【００８５】
＜登録済み文書の検索処理＞
図９は、登録済み文書を検索する処理を説明するためのフローチャートである。ここでは、ユーザが仮想端末１１３から暗号化文書管理装置１００にアクセスし、暗号処理部１０４をブラウザ（図４参照）に表示してから、暗号処理部１０４の検索キーワード入力領域４０１に検索キーワードを入力して検索ボタン４０２をクリックすることで処理が開始する。
【００８６】
（i）ステップ９０１
仮想端末１１３は、文書の取得操作を受けて、秘密鍵管理装置１３０から保護済組織鍵および保護済インデックス鍵を取得する。
【００８７】
（ii）ステップ９０２
仮想端末１１３は、ステップ９０１で取得した保護済組織鍵を、文書を検索するユーザのユーザ秘密鍵で復号する。
【００８８】
（iii）ステップ９０３
仮想端末１１３は、ステップ９０２における復号結果をさらに、文書を検索する仮想端末１１３が属する仮想端末管理装置１１０のコンピュータ秘密鍵で復号する。これによって、平文の組織鍵が得られる。
【００８９】
（iv）ステップ９０４
仮想端末１１３は、ステップ９０３で取得した組織鍵を用いて、保護済インデックス鍵を復号する。これによって、平文のインデックス鍵が得られる。
【００９０】
（v）ステップ９０５
仮想端末１１３は、ステップ９０４で取得したインデックス鍵でキーワードを暗号化する。
【００９１】
（vi）ステップ９０６
仮想端末１１３は、ステップ９０５における処理結果である暗号化キーワードを暗号化文書管理装置１００に送信する。
【００９２】
（vii）ステップ９０７
暗号化文書管理装置１００は、受信した暗号化キーワードにマッチする文書を一意に識別する、暗号化ドキュメント識別子のリストを返却する。
【００９３】
（viii）ステップ９０８
仮想端末１１３は、返却された暗号化ドキュメント識別子のリストをインデックス鍵で復号し、平文のドキュメント識別子を得る。
【００９４】
（ix）ステップ９０９
仮想端末１１３は、ステップ９０８で得た平文のドキュメント識別子を暗号化文書管理装置１００に送信し、検索結果について問い合わせる。そして、仮想端末１１３は、暗号化文書管理装置１００から検索結果の文書名とアクセスするための場所の情報を取得する。
【００９５】
（x）ステップ９１０
仮想端末１１３は、ステップ９０９で取得した、検索結果の文書名とアクセスするための場所の情報に基づいて検索結果リスト（検索結果表示領域４０３）を表示する。ユーザが検索結果リスト（検索結果表示領域４０３）に表示されている１つのファイル名をクリックすると、図１０で説明する平文の文書が取得される。
【００９６】
＜登録済み文書の復号及び取得処理＞
図１０は、登録済み文書を復号し、平文として取得する処理を説明するためのフローチャートである。ここでは、ユーザが仮想端末１１３から暗号化文書管理装置１００にアクセスし、暗号処理部１０４をブラウザ（図４参照）に表示してから、暗号処理部１０４のファイル名をクリックすることで処理が開始する。
【００９７】
（i）ステップ１００１
仮想端末１１３は、文書の取得操作を受けて、暗号化文書管理装置１００から暗号化文書および保護済データ鍵を取得する。
【００９８】
（ii）ステップ１００２
仮想端末１１３は、秘密鍵管理装置１３０に問い合わせて、文書を取得するユーザの保護済組織鍵を取得する。
【００９９】
（iii）ステップ１００３
仮想端末１１３は、ステップ１００２で取得した保護済組織鍵を、文書を取得するユーザのユーザ秘密鍵で復号する。
【０１００】
（iv）ステップ１００４
仮想端末１１３は、ステップ１００３における復号結果をさらに、文書を取得するユーザのコンピュータ秘密鍵で復号する。これによって、平文の組織鍵が得られる。
【０１０１】
（v）ステップ１００５
仮想端末１１３は、ステップ１００４で得られた平文の組織鍵で、ステップ１００１で取得した保護済データ鍵を復号する。これによって、平文のデータ鍵が得られる。
【０１０２】
（vi）ステップ１００６
仮想端末１１３は、ステップ１００５で得られた平文のデータ鍵で、ステップ１００１で取得した暗号化文書を復号し、平文の文書を得る。
【０１０３】
（vii）ステップ１００７
仮想端末１１３は、ユーザの操作に応じて、平文の文書を表示または自身の記憶領域（仮想端末の記憶領域）に保存する。
【０１０４】
＜まとめ＞
（i）本発明の実施形態では、コンピュータ公開鍵とコンピュータ秘密鍵を用いることでアクセス可能な物理端末を仮想環境のホスト機（仮想端末管理装置）のみに限定する。また、ユーザ公開鍵とユーザ秘密鍵を用いることでこの仮想環境にアクセス可能なユーザを限定する。さらに、秘密鍵の利用は仮想環境においてのみ行い、ユーザはリモートデスクトップからアクセスさせる。また、各証明書の秘密鍵は仮想環境から出せないように、エクスポートを禁止する。さらに、秘密鍵によって組織鍵等を保護し、仮想環境のみで閲覧や検索できるようにする。
【０１０５】
以上を実現するために、暗号化文書と暗号化文書の暗号化に用いた鍵を組織鍵という別の共通鍵で保護した保護済データ鍵と暗号化文書を復号せずに検索できるようにするための暗号化インデックスとを格納する機能を備え、仮想端末で使用するために文書の登録や検索などの操作を受け付けて暗号化や復号などを自動的に実行する暗号処理部を備えたクラウドサービスである暗号化文書管理装置と、文書へのアクセスに必要なコンピュータ公開鍵証明書とユーザ公開鍵証明書とを発行する機能をオンプレミスで持つ証明書管理装置と、ユーザごとに組織鍵をコンピュータ証明書の公開鍵とユーザ証明書の公開鍵で暗号化した保護済組織鍵と、暗号化インデックスの保護に用いたインデックス鍵という秘密鍵を組織鍵で保護した保護済インデックス鍵とを保管する機能をオンプレミスで持つ秘密鍵管理装置と、証明書管理装置が発行したコンピュータ公開鍵証明書に付随するコンピュータ公開鍵とコンピュータ秘密鍵とを持ち、仮想端末のユーザごとに、証明書管理装置が発行したユーザ公開鍵証明書に付随するユーザ公開鍵とユーザ秘密鍵とを持ち、これらの鍵を用いて暗号化文書管理装置の暗号化文書にアクセスする仮想端末管理装置と、暗号化文書管理装置へ仮想端末管理装置を経由してアクセスするクライアント端末とを設ける。
【０１０６】
このようにすることにより、仮想環境以外の装置ではコンピュータ秘密鍵がないため復号できず、組織鍵が漏えいしたとしても、コンピュータ秘密鍵で暗号化されているため、仮想環境外の環境では使えず、平文の文書にアクセスできない。このため、クライアント端末を紛失しても文書が漏えいすることはない。また、コンピュータ秘密鍵は利用者が使う仮想端末から直接はアクセスできないので、利用者はコンピュータ秘密鍵を盗めず、仮想端末がウィルスに感染してもコンピュータ秘密鍵が漏洩することがないので、害意の利用者やマルウェアからも文書を保護できる。このように、安全に文書を取り扱え、検索を含めた文書の効果的な活用ができる。
【０１０７】
さらに、ユーザが管理する鍵はユーザ秘密鍵一つなのでユーザの運用の手間を極小化できる。さらに、ユーザ秘密鍵は仮想端末という組織的に管理された環境にあるので安全にユーザ秘密鍵を保管できる。管理者の運用も証明書管理のオペレーションに集約されるので運用を簡易化できる。例えば、管理者がユーザを追加するときは仮想端末上の鍵ペアの証明書を発行すればよいし、万が一ユーザがユーザ秘密鍵を紛失・漏洩したときは、管理者は対応する証明書を失効させればよい。
【０１０８】
（ii）本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１０９】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【０１１０】
さらに、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ）が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【０１１１】
最後に、ここで述べたプロセス及び技術は本質的に如何なる特定の装置に関連することはなく、コンポーネントの如何なる相応しい組み合わせによってでも実装できることを理解する必要がある。更に、汎用目的の多様なタイプのデバイスがここで記述した教授に従って使用可能である。ここで述べた方法のステップを実行するのに、専用の装置を構築するのが有益であることが判るかもしれない。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。本発明は、具体例に関連して記述したが、これらは、すべての観点に於いて限定の為ではなく説明の為である。本分野にスキルのある者には、本発明を実施するのに相応しいハードウェア、ソフトウェア、及びファームウエアの多数の組み合わせがあることが解るであろう。例えば、記述したソフトウェアは、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０１１２】
さらに、上述の実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていても良い。
【０１１３】
加えて、本技術分野の通常の知識を有する者には、本発明のその他の実装がここに開示された本発明の明細書及び実施形態の考察から明らかになる。明細書と具体例は典型的なものに過ぎず、本発明の範囲と精神は後続する請求範囲で示される。
【符号の説明】
【０１１４】
１  文書保護システム、１００  暗号化文書管理装置、１０１  暗号化文書格納部、１０２  保護済データ鍵格納部、１０３  暗号化インデックス格納部、１０４  暗号処理部、１１０  仮想端末管理装置、１１３  仮想端末、１２０  証明書管理装置、１３０  秘密鍵管理装置、１３１  保護済組織鍵格納部、１３２  保護済インデックス鍵格納部、１４０  クライアント端末
【図１】
2017147654.tif 000003
【図２】
2017147654.tif 000004
【図３】
2017147654.tif 000005
【図４】
2017147654.tif 000006
【図５】
2017147654.tif 000007
【図６】
2017147654.tif 000008
【図７】
2017147654.tif 000009
【図８】
2017147654.tif 000010
【図９】
2017147654.tif 000011
【図１０】
2017147654.tif 000012