(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
以下、図面を参照しながら、本発明の実施の形態について説明する。なお、以下の説明において参照する各図では、他の図と同等の部分は同一符号によって示される。
(共有認証情報更新システムの概要)
まず、本実施形態に係る共有認証情報更新システムの概要について説明する。また、以下においては、説明の便宜上、一例として、共用端末内のファイルごとに利用者のアクセス権等が設定されている、すなわち、ファイルごとに複数の利用者で共用する暗復号鍵がそれぞれ存在するものとして説明する。なお、本明細書においては、複数の利用者がアクセスするデータ・記憶領域等(ここではファイル)を暗号化する暗号鍵および復号する復号鍵を総称して「暗復号鍵」という。
【0016】
共用端末のある利用者(利用者A)について、あるファイルにアクセスするための暗復号鍵(またはパスワード)を更新する際に、すべての利用者の暗復号鍵を管理しているサーバ装置は、更新対象の暗復号鍵を利用者Aと共有している他の利用者を検索する。ここで例えば、他の利用者(利用者B、利用者C)が見つかった場合、サーバ装置は、更新された暗復号鍵を利用者Bのみが知る利用者Bの秘密の情報(以下、「秘密情報」という)を用いて暗号化する。同様に、サーバ装置は、利用者Cに関しても、更新された暗復号鍵を利用者Cのみが知る利用者Cの秘密情報を用いて暗号化する。そして、サーバ装置は、この異なる利用者Bと利用者Cの秘密情報によってそれぞれ暗号化された更新後の新しい暗復号鍵を共用端末に送信する。共用端末は、取得された利用者Aの最新の暗復号鍵のみならず、利用者Bと利用者Cの秘密情報によってそれぞれ暗号化された更新後の新しい暗復号鍵を、暗号化されたまま自端末内の記憶装置に保存しておく。
【0017】
後日、例えば利用者Bが共用端末にログインした場合(または何らかのタイミングで)、共用端末は、利用者Bの暗復号鍵が更新されていることを検出する。そして、共用端末は、利用者Bの秘密情報を利用者Bに入力させる(秘密情報は各利用者が事前にサーバ装置に登録しておく)。共用端末は、入力された秘密情報を用いて、(利用者Bの秘密情報で暗号化されたまま共用端末に保存されている)新しい暗復号鍵を復号し、更新前の古い暗復号鍵と入れ替える。
【0018】
このように、利用者Aが暗復号鍵を更新する際に、利用者Aの暗復号鍵の更新と同時に、この更新された暗復号鍵を共用している他の利用者の秘密情報で暗号化された(更新後の)暗復号鍵をも共用端末に保持させる。そして、他の利用者が共用端末にログインした場合等のタイミングで、すでに共用端末に保持されているその利用者のための(秘密情報で暗号化されている)暗復号鍵を読み出し、秘密情報で暗復号鍵を復号して利用可能な状態とする。
【0019】
このような仕組みにより、ある利用者によって共有の暗復号鍵が更新された場合でも、ファイルを共用する他の利用者が新しい暗復号鍵を使用することが可能になる。また、ある利用者が暗復号鍵を更新した後、他の利用者は、オフライン状態であっても更新された暗復号鍵を利用することが可能である。
【0020】
なお、以下の説明においては、ある利用者が他の利用者に先んじて暗復号鍵の更新をサーバ装置にアクセスして行う場合を、「オンラインによる更新」などと言う。また、ある利用者によるオンライン更新の後に、他の利用者がサーバ装置にアクセスせずに共用端末内で暗復号鍵を利用する場合を「オフラインによる利用」などと言う。
【0021】
(共有認証情報更新システムの構成)
本実施形態に係る共有認証情報更新システムは、複数の利用者が共同で使用する共用端末と、各利用者の暗復号鍵の管理を行うサーバ装置とを含んで構成される。共用端末は、複数の利用者が共同で使用する端末である。主には、スマートフォン、タブレット型コンピュータ、ノート型パソコン、等の可搬型端末が想定されるが、これに限定されるものではなく、複数の利用者が共用するコンピュータ端末であればよい。
【0022】
(共用端末の構成)
図1は、共用端末の構成の一例を示す図である。共用端末1の構成は、大まかには、入力手段10、出力手段20、認証手段30、通信手段40、記憶手段50、および暗復号機能管理手段60に分けられる。入力手段10は、利用者からの入力を受け付けるためのユーザインタフェースを提供する。具体的には、例えば、タッチパネル、入力ボタン、キーボード、マウス、等の入力デバイスを用いて実現されうる。出力手段20は、共用端末1から利用者に音声や画像等の情報を伝えるユーザインタフェースを提供する。具体的には、例えば、ディスプレイ、スピーカ、等の出力デバイスを用いて実現されうる。
【0023】
また、認証手段30は、利用者の認証を行う機能を提供する。通信手段40は、後述するサーバ装置と各種データの送受信を行う機能を有する。記憶手段50は、暗復号鍵データ、利用者情報、利用者が共用する共用ファイル等のデータなどの各種データを共用端末1のハードディスク等の記憶領域にデータベース等の各種形式で記憶保持する機能を提供する。暗復号機能管理手段60は、暗復号鍵の更新、暗復号鍵の読み出し、共用ファイルの暗復号などの暗復号に関する機能を提供する。以下、各手段における具体的な構成例について説明する。
【0024】
[入力手段]
入力手段10は、認証情報受付部101と、秘密情報受付部102と、ファイル利用要求受付部103とを備える。
【0025】
(認証情報受付部)
認証情報受付部101は、利用者がタッチパネル等の入力デバイスを使用して入力する利用者認証情報を受け付ける。利用者認証情報は、ユーザ認証を行うための情報であり、例えば利用者を一意に特定するための識別情報(以下、「利用者ID」という)と、パスワードとの組み合わせである。
【0026】
(秘密情報受付部)
秘密情報受付部102は、利用者がタッチパネル等の入力デバイスを使用して入力する秘密情報を受け付ける。秘密情報は、利用者のみが知る秘密の情報であって、例えば利用者の好きな動物、好きなスポーツ、出身学校名、などの情報である。より具体的には、共有認証情報更新システムがあらかじめ複数種類の秘密情報を質問という形式で準備しておき、利用者はこの中から一つを選択して回答する、という形で入力するようになっていてもよい。例えば、共用端末1のディスプレイに、「あなたの好きな動物は?」、「あなたの好きなスポーツは?」、「あなたの出身学校は?」などの質問がプルダウンメニューで共用端末1のディスプレイに表示され、利用者はこの中から一つ選択する。そして、共用端末1のディスプレイに表示される入力ボックスに、質問の回答を入力する、というようにして、秘密情報を設定することができる。ただし、これらは秘密情報の一例であって、これらに限定されるものではない。秘密情報は各利用者に特有の情報であればよく、その内容や形式は様々なものが考えられる。例えば、利用者本人のみが知りうる情報や単なるパスワードのようなものであってもよく、さらに、これらの情報を特定の規則や数式で変換したもの等であってもよい。
【0027】
(ファイル利用要求受付部)
ファイル利用要求受付部103は、利用者が共用端末1内の共用のファイルにアクセスするための要求を受け付ける。具体的には例えば、共用端末1のディスプレイに表示される共用ファイルのアイコンをダブルクリックすることでファイルを開く操作が行われたことを検出すること等が該当する。
【0028】
[出力手段]
出力手段20は、秘密情報入力画面出力部201と、データ出力部202とを備える。
【0029】
(秘密情報入力画面出力部)
秘密情報入力画面出力部201は、利用者が秘密情報を入力するための秘密情報入力画面を共用端末1のディスプレイに表示出力する機能を有する。秘密情報入力画面は、具体的には例えば、上述したように、あらかじめ準備されている各種の質問を利用者に選択させるためのプルダウンメニューと、この中から利用者が選択した質問に対する回答を入力するための入力ボックスとを備える画面である。
【0030】
(データ出力部)
音声や画像等の情報を共用端末1のディスプレイに表示する、スピーカから音声出力する、等によって、利用者に対してデータの出力を行う。
【0031】
[認証手段]
認証手段30は、オンライン認証要求部301と、オフライン認証検証部302とを備える。
【0032】
(オンライン認証要求部)
オンライン認証要求部301は、ある利用者がオンラインにて暗復号鍵の更新を行う場合に、サーバ装置へのアクセスおよび暗復号鍵の更新に関する処理を要求するための機能を有する。サーバ装置へ暗復号鍵の更新処理を要求する際には、オンライン認証要求部301は、後述の情報送信部401を介してサーバ装置へ利用者認証情報を送信する。
【0033】
(オフライン認証検証部)
オフライン認証検証部302は、ある利用者によってオンラインによる暗復号鍵の更新が行われた後、他の利用者がオフラインにて暗復号鍵の更新・利用を行う場合に、後述する利用者情報DB502を参照して利用者認証を行う機能を有する。
【0034】
[通信手段]
通信手段40は、情報送信部401と、情報受信部402とを備える。
【0035】
(情報送信部)
情報送信部401は、サーバ装置へ各種のデータを送信する機能を有する。本実施形態においては、情報送信部401は、主に、利用者IDおよびパスワードを含む利用者認証情報と、共用端末1を一意に識別する識別情報(以下、「端末ID」という)とを、サーバ装置へ送信する。
【0036】
(情報受信部)
情報受信部402は、サーバ装置から各種のデータを受信する機能を有する。なお、情報送信部401および情報受信部402におけるデータの送受信は、例えばネットワークを介して、符号化されたパケットデータの形式で行われる。また、データの送受信は有線通信であっても無線通信であってもよい。
【0037】
[記憶手段]
記憶手段50は、ファイルDB(データベース)501と、利用者情報DB502と、暗復号鍵DB503と、新暗復号鍵DB504とを備える。
【0038】
(ファイルDB)
ファイルDB501は、複数の利用者が共同で使用する共用ファイルを保存するデータベースである。
【0039】
(利用者情報DB)
利用者情報DB502は、共用端末1の各利用者の認証情報(利用者IDとパスワード)を保持するデータベースである。また、パスワードはハッシュ値の形式で保存されていてもよい。利用者がオフラインにて暗復号鍵の更新を行う際に利用者認証を行う場合、上述したオフライン認証検証部302は、この利用者情報DB502を参照して利用者認証を行う。
【0040】
(暗復号鍵DB)
暗復号鍵DB503は、共用端末1内で各利用者の暗復号鍵を保持するデータベースである。
図3は、暗復号鍵DB503が保持する情報の一例を示す図である。
図3の例においては、暗復号鍵DB503は、各暗復号鍵を共有する利用者を示す「利用者範囲」、暗復号鍵のバージョンを示す「暗復号鍵バージョン」、暗復号鍵の有効期限を示す「有効期限」、暗復号鍵を示す「暗復号鍵値」を関連付けて保持する。例えば、「利用者範囲」が“A&B”である暗復号鍵は、利用者Aと利用者Bとがその暗復号鍵を共有していることを示す。なお、セキュリティの観点から、暗復号鍵は何らかの方法で暗号化して暗復号鍵DB503に保持されることが望ましい。
【0041】
(新暗復号鍵DB)
新暗復号鍵DB504は、サーバ装置2から送信される、利用者の秘密情報で暗号化された新しい(更新後の)暗復号鍵を格納するデータベースである(詳細は後述する)。
図4は、新暗復号鍵DB504が保持する情報の一例を示す図である。
図4の例においては、新暗復号鍵DB504は、利用者を一意に示す「利用者ID」、「利用者範囲」、「暗復号鍵バージョン」、秘密情報で暗号化された暗復号鍵である「暗復号鍵値」を関連付けて保持している。
【0042】
[暗復号機能管理手段]
暗復号機能管理手段60は、ファイル管理部601と、暗復号鍵管理部602と、暗復号部603とを備える。
【0043】
(ファイル管理部)
ファイル管理部601は、ファイル利用要求受付部103において受け付けられたファイル利用の要求に応じて、ファイルDB501にアクセスして、要求された共用ファイルに関する処理(例えば、ファイルを開く処理)を実行する。
【0044】
(暗復号鍵管理部)
暗復号鍵管理部602は、暗復号鍵DB503および新暗復号鍵DB504にアクセスして、各利用者の暗復号鍵の読み出し、書き込み、削除などの各種処理を実行する機能を有する。
【0045】
(暗復号部)
暗復号部603は、共用ファイルを暗復号鍵で暗号化する(その後、ファイル管理部602によって暗号化された共用ファイルはファイルDB501に保存される)、暗号化されて保存されている共用ファイルを、ファイル管理部601を介して読み出して復号する(復号されたデータはデータ出力部202に渡されて共用ファイルの内容をディスプレイに表示出力等する)、等の処理を行う。
【0046】
(サーバ装置の構成)
図2は、サーバ装置の構成の一例を示す図である。サーバ装置2の構成は、大まかには、通信手段15、認証手段25、記憶手段35、および暗復号鍵管理手段45に分けられる。
【0047】
通信手段15は、共用端末1と各種データの送受信を行う機能を有する。認証手段25は、ある利用者がオンラインにて暗復号鍵の更新を行う場合にサーバ装置2へアクセスするが、この時、利用者の認証を行う機能を有する。
【0048】
記憶手段35は、利用者情報、各利用者の暗復号鍵データ、各利用者の秘密情報などの各種データをサーバ装置2のハードディスク等の記憶領域にデータベース等の各種形式で保持する機能を有する。暗復号鍵管理部45は、暗復号鍵の検索、読み出し、更新、および秘密情報の検索、等の暗復号鍵の更新に関する各種処理を実行する。以下、各手段における具体的な構成例について説明する。
【0049】
[通信手段]
通信手段15は、情報受信部151と、情報送信部152とを備える。
【0050】
(情報受信部)
情報受信部151は、共用端末1から各種のデータを受信する機能を有する。本実施形態においては、情報受信部151は、主に、利用者IDおよびパスワードを含む利用者認証情報と、共用端末1を一意に識別する端末IDとを、共用端末1から受信する。
【0051】
(情報送信部)
情報送信部152は、共用端末1へ各種のデータを送信する機能を有する。なお、情報受信部151および情報送信部152におけるデータの送受信は、例えばネットワークを介して、符号化されたパケットデータの形式で行われる。また、データの送受信は有線通信であっても無線通信であってもよい。
【0052】
[認証手段]
認証手段25は、オンライン認証検証部251を備える。
【0053】
(オンライン認証検証部)
オンライン認証検証部251は、ある利用者がオンラインにて暗復号鍵の更新を行う場合に、後述の利用者情報DB351を参照して利用者の認証を行う機能を有する。
【0054】
[記憶手段]
記憶手段35は、利用者情報DB351と、暗復号鍵DB352と、秘密情報DB353とを備える。
【0055】
(利用者情報DB)
利用者情報DB351は、各共用端末の各利用者の認証情報(利用者IDとパスワード)を保持するデータベースである。
【0056】
図5は、利用者DB351が保持する情報の一例を示す図である。
図5の例においては、「端末ID」、「利用者ID」、ハッシュ値化された「パスワード」、を関連付けて保持している。利用者がオンラインにて暗復号鍵の更新を行う場合、上述したオンライン認証検証部251は、共用端末1から受信した利用者ID、パスワード、および端末IDを検索キーとして、この利用者情報DB351を検索する。そして、検索キーの端末ID、利用者ID、パスワードの組み合わせが利用者情報DB351に保存されていれば、認証成功という検索結果をオンライン認証検証部251に返す。
【0057】
(暗復号鍵DB)
暗復号鍵DB352は、サーバ装置2内で各利用者の暗復号鍵を保持するデータベースである。
図3に示されるような、共用端末1の暗復号鍵DB503と同様の構成を有する。
【0058】
(秘密情報DB)
秘密情報DB353は、各利用者の秘密情報を保持するデータベースである。
図6は、秘密情報DB353が保持する情報の一例を示す図である。
図6の例においては、「利用者ID」、利用者IDで特定される利用者の「質問」、質問に対する答えに該当する「秘密情報」が関連付けて保持されている。例えば、利用者“A”の場合、“好きな動物は?”という問いに対して“猫”という答えの組み合わせが秘密情報となっている。なお、
図6に示される秘密情報は一例であり、これに限定されるものではなく、利用者本人のみが知る情報であればよい。
【0059】
[暗復号鍵管理手段]
暗復号鍵管理手段45は、暗復号鍵取得部451と、新暗復号鍵群生成部452と、同一暗復号鍵利用者特定部453と、秘密情報取得部454と、暗号化部455とを備える。
【0060】
(暗復号鍵取得部)
暗復号鍵取得部451は、ある利用者がオンラインにて認証を行い、暗復号鍵を取得する際に、暗復号鍵DB352を参照して、その利用者の1つまたは複数の暗復号鍵(暗復号鍵群)を検索して取得する。
【0061】
(新暗復号鍵群生成部)
新暗復号鍵群生成部452は、暗復号鍵取得部451において検索された1つまたは複数の暗復号鍵のうち、更新されるべき暗復号鍵が存在する場合には、新たな暗復号鍵を生成する。更新されるべき暗復号鍵は、例えば各暗復号鍵の「有効期限」が切れているか否かで判断することができる。新たに生成した暗復号鍵は暗復号鍵DB352へ格納する。
【0062】
付言すると、暗復号鍵の暗号化およびその復号は、1つの暗復号鍵に対して行われてもよいし、複数の暗復号鍵に対して行われてもよい。また、複数の暗復号鍵に対して行う場合には、それぞれの暗復号鍵に対して暗号化および復号を行うようになっていてもよいし、複数の暗復号鍵をまとめて暗号化および復号を行うようになっていてもよい。(本明細書を通じて同様。)
【0063】
(同一暗復号鍵利用者特定部)
同一暗復号鍵利用者特定部453は、ある利用者がオンラインにて暗復号鍵の更新を行う際に、暗復号鍵DB352にアクセスして、更新を行おうとしている暗復号鍵(すなわち、新暗復号鍵群生成部452において新しく暗復号鍵を生成したもの)を共用している利用者を特定する。他の利用者の特定は、例えば、暗復号鍵DB352に保存されている「利用者範囲」によって特定できる。例えば、暗復号鍵DB352が
図3に示されるようなデータを有しているとすると、「利用者範囲」が“A&B”である暗復号鍵を利用者Aが更新しようとしているのであれば(新暗復号鍵群生成部452にてこの暗復号鍵の新しいバージョンを生成した場合)、これを共有している“利用者B”が特定される。
【0064】
(秘密情報取得部)
秘密情報取得部454は、同一暗復号鍵利用者特定部453で特定された更新対象の暗復号鍵を共用している利用者の利用者IDをキーとして秘密情報DB353を検索し、利用者の秘密情報を取得する。
【0065】
(暗号化部)
(暗復号鍵群/新暗復号鍵群)暗号化部455は、オンライン認証検証部251にて認証された利用者について、この利用者のパスワードから暗号鍵を生成し、暗復号鍵取得部451にて検索された暗復号鍵群、および新暗復号鍵群生成部452にて生成された新暗復号鍵群を暗号化する。また、暗号化部455は、同一暗復号鍵利用者特定部453で検索された利用者について、秘密情報取得部454で取得された秘密情報を用いて、新暗復号鍵群を暗号化する。
【0066】
(処理例)
以下、本実施形態に係る共有認証情報更新システムにおける処理の流れについて説明する。
(オンラインによる暗復号鍵の更新)
図7は、ある利用者がオンラインにて暗復号鍵の更新を実行する場合の処理シーケンスの一例を示す図である。
【0067】
利用者がタッチパネル等の入力デバイスを用いて利用者認証情報(例えば、利用者IDおよびパスワード)を入力すると、共用端末1の認証情報受付部101は入力された利用者認証情報を受け付ける(ステップS11)。認証情報受付部101において受け付けられた利用者認証情報は、オンライン認証要求部301を介して、情報送信部401に渡される。情報送信部401は、この利用者認証情報を、共用端末1を一意に識別するための端末IDとともにサーバ装置2へ送信する。また、この時、更新対象の共用ファイルの利用者範囲と暗復号鍵のバージョンの組み合わせを一緒に送信する。
【0068】
サーバ装置2の情報受信部151は、共用端末1からの利用者認証情報、端末ID、および更新対象の共用ファイルの利用者範囲と暗復号鍵のバージョンの組み合わせを受信すると、オンライン認証検証部251へ、利用者の認証処理を命令する。オンライン認証検証部251は、利用者認証情報内の「パスワード」のハッシュ値を計算する。そして、利用者情報DB351を参照して、受信した端末IDと利用者IDとの組み合わせを検索する。その結果、検索結果とともに利用者情報DB351に保存されているパスワード(ハッシュ値)と、共用端末1から受信したパスワードから計算されたハッシュ値とを比較して、正当な利用者であるか検証する(ステップS12)。利用者が正当であった場合には、オンライン認証検証部251は、利用者認証情報および端末IDを暗復号鍵取得部451へ渡す。なお、利用者が認証できなかった場合には、例えば、共用端末1にその旨を通知するメッセージを送信し、共用端末1のディスプレイにこのメッセージを表示して処理を終了する。
【0069】
利用者の認証が成功した場合には、暗復号鍵検証部451は、利用者認証情報のうちの利用者IDを検索キーとして暗復号鍵DB352を参照し、検索キーである利用者IDが暗復号鍵DB352の「利用者範囲」に含まれる暗復号鍵を検索する(すなわち、この利用者が使用している暗復号鍵を検索する)。そして、検索結果として、1つまたは複数の暗復号鍵を含む暗復号鍵群を取得する(ステップS13)。
【0070】
取得された暗復号鍵群に含まれる各暗復号鍵の有効期限と、現在の時刻とを比較し(ステップS14)、有効期限が現在時刻より古い(有効期限が切れている)暗復号鍵については、以下のステップS15〜S17の処理を行う。
【0071】
新暗復号鍵群生成部452は、有効期限が切れている1つまたは複数の暗復号鍵について、それぞれ、新しいバージョンの暗復号鍵を生成する(ステップS15)。生成方法は乱数や鍵導出関数など、一般的かつ安全性が担保された方法であれば構わない。この時、暗復号鍵DB352には、新しいバージョンが生成された暗復号鍵について、「暗復号鍵バージョン」が“1”加算された、上記生成された暗復号鍵の行が追加される(この新しいバージョンが生成された(すなわち、更新された)1つまたは複数の暗復号鍵を新暗復号鍵群という)。
【0072】
さらに、同一暗復号鍵利用者特定部453は、更新された各暗復号鍵のそれぞれについて、ステップS13にて取得された暗復号鍵群の「利用者範囲」に基づいて、各鍵を共用している他の利用者を特定する。また、秘密情報取得部454は、特定された他の利用者の利用者IDを検索キーとして、他の利用者の秘密情報を秘密情報DB353から取得する(ステップS16)。そして、暗号化部455は、他の利用者について、ステップS16で取得された秘密情報を用いて、新暗復号鍵群を暗号化する(ステップS17)。なお、利用者の秘密情報は各利用者があらかじめ登録しておけばよい。
【0073】
また、ステップS14において、取得された暗復号鍵群に含まれる各暗復号鍵の有効期限が、現在時刻より先の期限(有効期限が切れていない)である暗復号鍵については、以下のステップS31〜S32の処理を行う。すなわち、ステップS11において共用端末1から送信された暗復号鍵のバージョンが、ステップS13において取得された暗復号鍵のバージョンよりも古い場合(ステップS31:Yes)、共用端末1から送信された古いバージョンの暗復号鍵を暗復号鍵DB352から取得する(ステップS32)。その後、ステップS16に移行し、この古いバージョンの暗復号鍵について、ステップS16以降の処理を上述と同様に実行する。すなわち、同一暗復号鍵利用者特定部453が、この古いバージョンの(1つまたは複数の)暗復号鍵の「利用者範囲」に基づいて、各鍵を利用している他の利用者を特定する。そして、特定された他の利用者の利用者IDを検索キーとして、各利用者の秘密情報を秘密情報DB353から取得する(ステップS16)。暗号化部455は、他の利用者について、ステップS16で取得された秘密情報を用いて、新暗復号鍵群を暗号化する(ステップS17)。なお、ステップS31において、共用端末1から送信された暗復号鍵のバージョンが、ステップS13において取得された暗復号鍵のバージョンよりも同一もしくは新しいと判断された場合には(ステップS31:No)、以下に説明するステップS18に移行する。
【0074】
次に、暗号化部455は、ステップS12にて認証された利用者(暗復号鍵を更新しようとしている利用者)のパスワードから暗号鍵を生成する。そして、この暗号鍵を用いて、ステップS13にて取得された利用者の暗復号鍵群、およびステップS15にて生成された利用者の新暗復号鍵群を暗号化する。パスワードを使用して暗号化を行う方法として、例えば、“PBKDF2”等の鍵導出関数を採用することができる。そして、情報送信部152は、パスワードによって暗号化された利用者の暗復号鍵群および利用者の新暗復号鍵群、ならびにステップS17にて秘密情報で暗号化された他の利用者の新暗復号鍵群を共用端末1に送信する(ステップS18)。また、共用端末1の情報受信部402は、サーバ装置2から送信されるこれらの情報を受信する(ステップS19)。また、共用端末1の暗復号鍵管理部602は、本処理を実行中の利用者の暗復号鍵群および新暗復号鍵群を復号した後、暗復号鍵群と新暗復号鍵群をまとめて再暗号化して暗復号鍵DB503に格納する。さらに、暗復号鍵管理部602は、他の利用者の秘密情報で暗号化された他の利用者の新暗復号鍵群を(暗号化されたまま)新暗復号鍵DB504に格納する。ここで、暗復号鍵群と新暗復号鍵群をまとめて再暗号化する、とは、たとえば、暗復号鍵群と新暗復号鍵群とを所定の方法で連結して連結した結果を(本処理を実行中の)利用者のパスワードで暗号化することを示す。あるいは、暗復号鍵群を利用者のパスワードで暗号化したものと、新暗復号鍵群を(本処理を実行中の)利用者のパスワードで暗号化したものを連結することとしても良い。
【0075】
以後、上記の更新処理を実行した利用者が共用端末1内の共用ファイルにアクセスしようとした場合には、共用端末1の暗復号鍵管理部602が、暗復号鍵DB503に保存されている新しい暗復号鍵を用いてファイルを復号することができる。以後、他の利用者が共用ファイルにアクセスする場合の処理を以下に説明する。
【0076】
(オフラインによる暗復号鍵の更新)
図8は、
図7の処理によって、ある利用者がオンラインにて暗復号鍵の更新を実行した後に、他の利用者がオフラインにて暗復号鍵を利用する場合の処理シーケンスの一例を示す図である。
【0077】
例えば、利用者が共用端末1を使用するために、タッチパネル等の入力デバイスを用いて利用者認証情報(例えば、利用者IDおよびパスワード)を入力すると、共用端末1の認証情報受付部101は、この利用者認証情報を受け付ける(ステップS21)。認証情報受付部101において受け付けられた利用者認証情報は、オフライン認証検証部302に渡される。オフライン認証検証部302は、利用者情報DB502を参照して受信した利用者IDを検索する。その結果、検索結果のパスワード(ハッシュ値)と、ステップS21にて受け付けたパスワードから計算されたハッシュ値とを比べて、正当な利用者であるかを検証する(ステップS22)。
【0078】
利用者が正当であると認証されると、オフライン認証検証部302は、利用者認証情報を暗復号鍵管理部602に渡す。暗復号鍵管理部602は、暗復号鍵DB503を参照して、利用者IDをキーとして、この利用者の暗復号鍵群を検索して取得し、利用者のパスワードで復号する(ステップS23)。
【0079】
次に、暗復号鍵管理部602は、新暗復号鍵DB504を参照して、利用者IDをキーとして、この利用者の暗復号鍵を検索する(ステップS24)。なお、本ステップにて取得される(1つまたは複数の)暗復号鍵は、事前に
図7の処理シーケンスによってサーバ装置2から取得された更新後の1つまたは複数の新暗復号鍵を、この利用者特有の秘密情報を用いて暗号化したものである。
【0080】
ステップS24において暗復号鍵が1つも検索されなかった場合は、すなわち更新された暗復号鍵が存在しないということであり(ステップS25:No)、この場合は処理を終了する。ステップS24において1つまたは複数の新暗復号鍵が検索された場合には(ステップS25:Yes)、秘密情報入力画面出力部201が、利用者に秘密情報を入力させるための秘密情報入力画面を、共用端末1のディスプレイ等に出力表示することで、利用者に秘密情報の入力を要求する(ステップS26)。そして、秘密情報受付部102は、利用者が秘密情報入力画面に入力した秘密情報を受け付ける(ステップS27)。
【0081】
ステップS27にて受け付けられた利用者の秘密情報は、暗復号鍵管理部602に渡される。そして、暗復号鍵管理部602はこの秘密情報を使用して、ステップS24で取得された新暗復号鍵群を復号し(ステップS28)、復号した新暗復号鍵を、暗復号鍵DB503に登録する(ステップS29)。なお、ここで利用者が入力した秘密情報がサーバ装置2の秘密情報DB353に保存されているものと異なっていた場合には、復号することはできないため、共用端末1のディスプレイにエラー表示をして利用者に再度、秘密情報を入力するよう促すようになっていてもよい。
【0082】
暗復号鍵管理部602は、上述したように利用者の秘密情報を使いステップS24で取得された新暗復号鍵群を復号した後、正しく復号されているかどうかを確認し(たとえば鍵とともに、サーバからMAC:Message Authentication Codeを受信して鍵と対応付けて記憶しておき、MACを使って復号が正しくできたか否かを確認することとしても良い)、正しく復号されていない場合には再度秘密情報を入力するよう促す処理を行うこととしても良い。(所定回数以上正しく復号されない場合には、認証画面にロックをかける、ファイルDB等に記憶されているデータを消去する、等の所定の不正ログインリスク等に対する処理を実施することとしても良い。)
【0083】
また、暗復号鍵管理部602は、利用者の秘密情報を使いステップS24で取得された新暗復号鍵群が正しく復号され、暗復号鍵DB503に記憶された場合に、正しく復号された新暗復号鍵群を新暗復号鍵DB504から削除することとしても良い。
【0084】
また、MAC以外に復号できたか否かを確認する方法として、
図7のステップS18において新暗復号鍵群がサーバ装置2から送付される時に、ステップS17で使用された秘密情報も一緒に送付されるようになっていてもよい。そして、上記ステップS27において利用者が入力した秘密情報を受け付けた時点で、サーバ装置2から送付されていた秘密情報と照合し、同一内容でない場合にはエラー表示する等となっていてもよい。
【0085】
以上の処理によって、更新後の暗復号鍵が使用可能な状態となる。以後、この利用者がファイル利用要求受付部103を介してファイルDB501に格納されている共用ファイルを利用する際は、ファイル管理部601によって共用ファイルがファイルDB501から読み出されるとともに、暗復号鍵管理部602によって新しい更新後の暗復号鍵が暗復号鍵DB503から読み出される。そして、暗復号部603にて、共用ファイルが更新後の暗復号鍵を用いて復号されて、データ出力部202によって、利用者が利用可能なようにディスプレイ等に出力される。
【0086】
(共通鍵を利用する他の利用者が共通鍵を更新した後に、ある利用者がオンラインによって共通鍵を更新する場合)
まずは、
図7を用いて説明したオンラインによる暗復号鍵の更新の際と同様に認証等がなされ、サーバ装置2は、パスワードによって暗号化された利用者(現在、オフラインにて鍵の更新処理をしようとしている利用者。本説明内において“利用者X”という。)の暗復号鍵群および利用者(利用者X)の新暗復号鍵群、ならびにステップS17にて秘密情報で暗号化された他の利用者の新暗復号鍵群を共用端末1に送信する(ステップS18)。このとき、利用者Xの暗復号鍵群の中には、他の利用者が共用端末1を利用した時に更新された共通鍵の情報も含まれている。したがって、共用端末1は、暗復号鍵群を共用端末1の暗復号鍵DB503に記憶した後、暗復号鍵DB503の中で利用者XのIDが「利用者範囲」に該当するエントリを抽出し、抽出された各エントリの“利用者範囲”と利用者Xの“利用者ID”を検索キーとして、新暗復号鍵DB504の中から対応するエントリを特定する。
【0087】
そして、暗復号鍵DB503から抽出されたエントリのバージョン情報の値が新暗復号鍵DB504の中から対応すると特定されたエントリのバージョン情報の値以上である場合、新暗復号鍵DB504の特定されたエントリを削除する。(これにより、エントリ削除により不要となった暗復号鍵の情報が共通端末1の中に残らないようにし、セキュリティレベルを上げることができる。)なお、暗復号鍵DB503で抽出されたエントリのバージョン情報の値が新暗復号鍵DB504の中から対応すると特定されたエントリのバージョン情報の値よりも小さい場合には何らかのエラーが生じていると考えられるため、所定のエラー処理を実施することとしても良い。
【0088】
(ハードウェア構成例)
共用端末1およびサーバ装置2は、一般的なコンピュータ装置と同様のハードウェア構成によって実現可能である。
図9は、共用端末1およびサーバ装置2のハードウェア構成の一例を示す図である。
図9に示されるコンピュータ装置7は、一例として、プロセッサ71と、RAM72と、ROM73と、ハードディスク装置74と、リムーバブルメモリ75と、通信インタフェース76と、ディスプレイ/タッチパネル77と、スピーカ78と、キーボード/キーパット79とを備える。
図1および
図2に示される共用端末1およびサーバ装置2の各構成の機能は、例えば、プロセッサ71が、ハードディスク装置74にあらかじめ格納されたプログラムをメモリに読み出して実行することで実現可能である。また、共用端末1がスマートフォン等の無線通信可能な端末であれば、通信インタフェース76は、無線通信のインタフェースであってもよい。
【0089】
(まとめ)
上記説明したように、本実施形態に係る共有認証情報更新システムによれば、ある利用者によって共用の認証情報が更新された後、他の利用者がオフライン環境下であっても更新後の認証情報を使用することが可能となる。また、特許文献1の方法では、全ての利用者がパスワードを更新するまでは過去の(脆弱な可能性のある)パスワードが利用可能な状態であり、例えば権限のない第三者に盗まれる等して悪用される可能性があるという問題もあった。しかしながら、本実施形態の共有認証情報更新システムによれば、利用者が共用端末にログインした時に、その利用者の新しい暗復号鍵が存在するかを判断し、存在すれば秘密情報を入力させて暗復号鍵を使用可能な状態とする(すなわち、暗復号鍵を更新する)。このため、古い暗復号鍵が長い期間、使用可能な状態のままとなることを避けることができるため、古い暗復号鍵を第三者に悪用される可能性が低減される。
【0090】
なお、上記実施形態においては、複数の利用者で共用するものをファイルとしたが、これに限定されるものではない。例えば、フォルダごとに利用者のアクセス権が決定されていてもよいし、記憶領域のある特定の部分ごと等であってもよい。
【0091】
また、
図8を用いて説明した暗復号鍵の更新処理が実行されるタイミングは、上記説明では、利用者が共用端末1を使用する際のログイン時としたが、これに限定する趣旨ではない。例えば、ログイン後に利用者が任意で指定したタイミングで行われる、いずれかの共用ファイルにアクセスする際に行われる、定期的に暗復号鍵の更新確認を行う、等となっていてもよい。
【0092】
ここまで、本発明の一実施形態について説明したが、本発明は上述の実施形態に限定されず、その技術的思想の範囲内において種々異なる形態にて実施されてよいことは言うまでもない。
【0093】
本発明の範囲は、図示され記載された例示的な実施形態に限定されるものではなく、本発明が目的とするものと均等な効果をもたらすすべての実施形態をも含む。さらに、本発明の範囲は、各請求項により画される発明の特徴の組み合わせに限定されるものではなく、すべての開示されたそれぞれの特徴のうち特定の特徴のあらゆる所望する組み合わせによって画されうる。