(実施の形態1)
以下に、本発明を実施するための形態に係る情報処理システム、情報処理方法、及びプログラムについて、図面を参照して詳細に説明する。なお、図中同一または相当する部分には同一符号を付す。
本実施の形態1に係る情報処理システム100は、第1ユーザが作成したファイルを、第1端末を使用して複数のクラウドに分散して保存し、第1ユーザからファイルの閲覧を許可された第2ユーザが、認証用サーバで本人と認証された場合に、第2端末を使用して複数のクラウドに分散して保存されたファイルを取得し、復元して使用することができるシステムである。
情報処理システム100の構成を、図1に示す。情報処理システム100は、ユーザをユーザ本人と認証する認証用サーバ1と、ファイルを分散して保存する第1クラウド3A及び第2クラウド3Bと、第1ユーザによって使用される第1端末4A及び第2ユーザによって使用される第2端末4Bと、を備える。ここで、第1クラウド3A及び第2クラウド3Bは、クラウド3と総称する。また、第1端末4A及び第2端末4Bは、端末4と総称する。認証用サーバ1と、クラウド3と、端末4とは、ネットワーク2を介して相互に接続している。
次に、認証用サーバ1の構成を、図2に示す。認証用サーバ1は、サーバ制御部11とサーバ記憶部12とを含む。サーバ制御部11は、自身にアクセスするユーザを本人と認証するとともに、認証したユーザとの間で各種データを送受信するためのユーザ認証処理プログラム110を実行する。このユーザ認証処理プログラムについて、詳細は後述する。また、サーバ記憶部12には、第1ユーザの使用する第1端末4A及び第2ユーザの使用する第2端末4Bとの間で用いる秘密鍵と暗号鍵のペア鍵と、共通鍵とを記憶する暗号鍵情報データベース120を記憶している。この暗号鍵情報データベース120について、詳細は後述する。
続いて、第1クラウド3A及び第2クラウド3Bの構成を、図3A及び図3Bに示す。第1クラウド3Aは、図3Aに示すように、第1記憶部30を備えている。また、第2クラウド3Bは、図3Bに示すように、第2記憶部31を備えている。
本実施の形態1における端末4は、いわゆるスマートフォンであり、ユーザの顔の画像、指紋、声紋等の生体情報と、ユーザが端末4を操作する際の特有の挙動、操作状態等によるユーザの癖とを用いる認証機能を備える。
端末4は、図4Aに示すように、端末4の正面に、ユーザの顔を撮影するインカメラ41Aと、スピーカ42Aと、通話用のマイク(マイクロフォン)42Bと、端末4の傾きを検出する傾き検出部43と、操作入力部44及び表示部49を兼ねるタッチパネルと、ユーザの指紋を検出する左指紋センサ45A及び右指紋センサ45Bと、端末4の現在位置を検出する位置検出部46とを備える。また、端末4は、背面に、ユーザから見た人間、風景、物体等を撮影することができるメインカメラ41Bを備える。
ここで、以下では、インカメラ41Aとメインカメラ41Bとを総称して、撮影部41と称する。以下では、スピーカ42Aと、通話用のマイク(マイクロフォン)42Bとを総称して、音声入出力部42と称する。また、以下では、左指紋センサ45A及び右指紋センサ45Bを総称して、指紋検出部45と称する。
図4Bは、端末4の構成を示すブロック図である。端末4は、通信部40と、撮影部41と、音声入出力部42と、傾き検出部43と、操作入力部44と、指紋検出部45と、位置検出部46と、端末記憶部47と、端末制御部48と、表示部49とを備える。
通信部40は、図1に示したネットワーク2を介して、認証用サーバ1及びクラウド3との通信し、データの送受信し、また、通信部40は、第1端末4Aと第2端末4Bとの間で通信し、データの送受信をすることができるデータ通信部と、図示せぬ基地局との間で、電話通信用の無線信号を送受信する音声通信部とを含む。データ通信部は、無線LAN(Local Area Network)、Wi-fi(登録商標)、Bluetooth(登録商標)等を用いて構成することができる。また、音声通信部は、基地局との間で、電話通信用の無線信号を送受信する通信機器を用いて構成することができる。
撮影部41は、図4Aに示したインカメラ41Aとメインカメラ41Bとを含む。撮影部41には、CCD(Charge Coupled Device)、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等の撮像素子を用いたカメラ、ビデオカメラ等、静止画または動画を撮影し、撮影した静止画または動画を取得することが可能な各種カメラを用いることができる。
音声入出力部42は、図4Aに示したスピーカ42Aと、通話用のマイク42Bとを含む。スピーカ42Aは、音声通話で受信した音声、図1に示したネットワーク2を介して外部から取得した音楽データ等を出力する。通話用のマイク42Bは、ユーザの音声をピックアップする装置である。
傾き検出部43は、端末4の傾き、揺れ等を検出することができる装置である。傾き検出部43は、加速度センサ、角度センサ、地磁気を検出する磁気センサ等の端末4の傾きを検出できる各種センサを用いて構成することができる。なお、加速度センサ、角度センサ等のセンサの個数は、単数又は複数のどちらでもよい。また、センサの種類は、一種類又は複数種類のどちらでもよい。
操作入力部44は、図4Aに示したユーザからの操作を入力することができる装置である。指紋検出部45は、ユーザの指紋を検出するセンサである。指紋検出部45は、図4Aに示した左指紋センサ45A及び右指紋センサ45Bを含む。なお、指紋検出部45には、指紋センサに限らず、ユーザの指紋を検出することができるセンサ、機器等であれば、いずれのものを用いてもよい。
位置検出部46は、端末4の現在位置を検出することができる装置である。位置検出部46は、GPS(Global Positioning System)等の、端末4の現在位置を検出することができる機器を用いて構成することができる。
端末記憶部47は、認証処理プログラム470と、認証用生体情報データベース471と、認証用ユーザの癖データベース472と、スコア値テーブル473と、ファイル管理処理プログラム474と、ファイル管理テーブル475と、第1暗号鍵データベース476と、ファイル分割用暗号鍵テーブル477と、ファイル預託処理プログラム478と、第2暗号鍵データベース479と、ファイル取得処理プログラム480とを含む。
認証処理プログラム470は、ユーザを認証する処理を行うプログラムである。認証用生体情報データベース471は、ユーザの生体情報に関する情報と認証結果とを保存するデータベースである。認証用ユーザの癖データベース472は、端末4を操作する際のユーザ特有の癖に関する情報と認証結果とを保存するデータベースである。ここで、ユーザ特有の癖とは、ユーザが端末4を操作する際の挙動、表示部49の画面とユーザの顔の距離、キーストローク、持ち方、端末4が使用される位置、通信環境等、端末4の操作時におけるユーザ特有の振る舞いのことをいう。
スコア値テーブル473は、予め端末4に登録されたユーザの生体情報及びユーザの癖に関するスコア値の上限値及び下限値、ユーザを認証するためのしきい値となるスコア値が記憶されたデータベースである。
ファイル管理処理プログラム474は、端末4により複数のクラウドへ情報ファイルを分散させる処理と、分散した情報ファイルの保存先とを管理するためのプログラムである。ファイル管理テーブル475は、分散した情報ファイルの保存先を管理するためのテーブルである。
第1暗号鍵データベース476は、認証用サーバ1及び第2ユーザの使用する第2端末4Bとの間で用いられる秘密鍵及び公開鍵の暗号鍵ペアと、共通鍵とを保存するデータベースである。ファイル分割用暗号鍵テーブル477は、第1ユーザの使用する第1端末4Aにより第1クラウド3A、第2クラウド3Bに分散して保存する情報ファイルのデータを、暗号化及び復号化するための暗号鍵を管理するためのテーブルである。ファイル預託処理プログラム478は、第1ユーザの使用する第1端末4Aにより情報ファイルのデータを分割し、第1クラウド3A及び第2クラウド3Bに預ける処理を行うプログラムである。
第2暗号鍵データベース479は、認証用サーバ1と第1ユーザの使用する第1端末4Aとの間で用いる秘密鍵及び公開鍵のペア鍵と、公開鍵とを記憶したデータベースである。ファイル取得処理プログラム480は、第1ユーザの使用する第1端末4Aにより分割された情報ファイルのデータを第1クラウド3A及び第2クラウド3Bから取得して復元する処理を行うためのプログラムである。
なお、認証用生体情報データベース471と、認証用ユーザの癖データベース472と、スコア値テーブル473と、ファイル管理処理プログラム474と、ファイル管理テーブル475と、第1暗号鍵データベース476と、ファイル分割用暗号鍵テーブル477と、ファイル預託処理プログラム478と、第2暗号鍵データベース479と、ファイル取得処理プログラム480とについては、その詳細を後述する。
端末制御部48は、端末記憶部47に記憶された各種プログラムを実行する。また、端末制御部48は、通信部40と、撮影部41と、音声入出力部42と、傾き検出部43と、操作入力部44と、指紋検出部45と、位置検出部46とから各種データを取得して処理し、端末記憶部47の各種データベースに記憶する。
表示部49は、端末制御部48で実行される各種プログラムの処理内容を表示する。また、表示部49は、撮影部41で撮影された静止画、動画等の画像、操作入力部44から入力されたデータ等を表示することもできる。表示部49は、操作入力部44上に積層されており、図4Aに示したタッチパネルを構成する。
次に、端末4のハードウエア構成の一例を、図4Cを参照しつつ説明する。端末4は、各種プログラムを実行するプロセッサ51と、各種プログラムを展開するためのメモリ52と、各種表示用データを出力する表示コントローラ53と、各種表示用データを表示する表示機器54と、撮影部41、音声入出力部42等を接続するためのI/Oポート55と、各種プログラム及び各種データを記憶する記憶機器56と、外部との通信をしデータを送受信する通信機器57とを備える。このプロセッサ51と、メモリ52と、表示コントローラ53と、表示機器54と、I/Oポート55と、記憶機器56と、通信機器57とは、データバス58を介して相互に接続されている。
プロセッサ51は、記憶機器56に記憶された各種プログラムを読み出してメモリ52に展開し、実行する。プロセッサ51は、CPU(Central Processing Unit)、MPU(Micro-processing Unit)等の処理装置を用いて構成することができる。また、メモリ52は、RAM(Random Access Memory)、フラッシュメモリ等の揮発性または不揮発性の半導体メモリといった記憶素子および記憶媒体を用いて構成することができる。
表示コントローラ53は、表示機器54に各種表示用データを出力するコントローラである。表示コントローラ53は、ビデオカード、GPU(Graphics Processing Unit)、グラフィックボード等の映像信号出力装置を用いて構成することができる。また、表示機器54は、LCD(Liquid Crystal Display)、有機EL(Electroluminescence)モニタ等の表示装置を用いて構成することができる。
I/Oポート55は、撮影部41と、音声入出力部42と、傾き検出部43と、操作入力部44と、指紋検出部45と、位置検出部46とを接続することができる接続用ポートである。I/Oポート55には、USB(Universal Serial Bus)ポート、IEEE1394ポート等、機器を接続することができる各種ポートを用いて構成すことができる。
記憶機器56は、プロセッサ51で実行する各種プログラム、各種プログラムで使用する各種データを記憶する機器である。記憶機器56は、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の記憶装置を用いて構成することができる。
通信機器57は、図1に示したネットワーク2を介して、認証用サーバ1とクラウド3との間で各種データを送受信することができる機器である。通信機器57は、無線LAN(Local Area Network)、Bluetooth(登録商標)、無線通信等による通信を行う各種器機を用いて構成することができる。
次に、端末4におけるユーザの認証方法について、図5Aから図5Dを参照しつつ、以下に説明する。
図4Bに示した端末4の端末制御部48は、電源ボタンを押下、指紋検出部45による指紋検出等のユーザによる端末4の操作があった場合、他のプログラムからユーザの認証の要求があった場合に、生体情報を取得する。端末制御部48の取得する生体情報のデータは、図4Aに示したインカメラ41Aで撮影したユーザの顔の画像、通話用のマイク42Bでピックアップしたユーザの音声、インカメラ41Aで撮影したユーザの虹彩の画像、指紋検出部45で検出した指紋等である。
例えば、ユーザが、図4Aに示した表示部49の正面をユーザの顔と対向させる位置に端末4を持ってきた場合、端末制御部48は、図4Aに示したインカメラ41Aでユーザの顔の画像を撮影し、ユーザの生体情報として取得する。また、ユーザが端末4から他者へ電話をかけ通話をした場合、ユーザが端末4を利用する時に話をした場合、ユーザが端末4の表示部49の画面上に表示される指示によって話す必要がある場合等、端末制御部48は、通話用のマイク42Bでピックアップしたユーザの音声を、ユーザの生体情報として取得する。ユーザが端末4を持ち、図4Aに示した表示部49の正面と顔とを一定距離よりも近づけた場合、端末制御部48は、インカメラ41Aで撮影したユーザの虹彩の画像を、ユーザの生体情報として取得する。ユーザが端末4を予め定められた時間以上持った場合、端末制御部48は、指紋検出部45で検出した指紋を、ユーザの生体情報として取得する。
また、例えば、ユーザが、図4Aに示した表示部49の正面をユーザの顔と対向させる位置に端末4を持ってきて、そのままユーザが端末4を予め定められた時間以上持った場合のように、複数の生体情報を取得するための条件が揃う場合がある。この場合、取得する生体情報の優先順位を予め定めておき、優先順位の順にユーザの生体情報を取得するようにする。例えば、ユーザの顔の画像、音声、虹彩、指紋の順に優先順位が定められていたとする。この場合、上述のユーザが、図4Aに示した表示部49の正面をユーザの顔と対向させる位置に端末4を持ってきて、そのままユーザが端末4を予め定められた時間以上持った場合には、ユーザの顔の画像、指紋の順に生体情報を取得する。
例えば、図5Aに示す、2019年3月1日の12時22分23秒において、ユーザが、図4Aに示した表示部49の正面をユーザの顔と対向させる位置に端末4を持ってきたものとする。端末制御部48は、インカメラ41Aからユーザの顔の画像を撮影し、ユーザの生体情報として端末4に保存する。端末制御部48は、端末4に予め登録されているユーザの顔の画像における特徴量と、インカメラ41Aから取得したユーザの顔の画像における特徴量とを比較し、類似度を求める。
この類似度からスコア値を求める。スコア値は、予め登録されているデータの特徴量と、端末制御部48の取得したデータの特徴量とが一致する場合に上限値、不一致の場合に下限値とする。一致または不一致以外の場合には、特徴量の類似度に応じて設定される値がスコア値となる。
スコア値の上限値及び下限値は、図4Bに示した端末4の端末記憶部47に記憶されているスコア値テーブル473に記憶されている。このスコア値テーブル473に設定されたスコア値を、図5Dに示す。スコア値テーブル473には、生体情報におけるスコア値の上限値及び下限値として、-100~100が設定されている。また、ユーザの癖のデータにおけるスコア値の上限値及び下限値として、-50~50が設定されている。
ここでは、特徴量が一致するものとして、図5Dに示したスコア値テーブル473に設定された生体情報の上限値100をスコア値とする。端末制御部48は、取得した生体情報のデータ及び求めたスコア値を、図4Bに示す認証用生体情報データベース471に書き込む。認証用生体情報データベース471のテーブルを図5Bに示す。認証用生体情報データベース471のテーブルには、端末制御部48が生体情報を取得した日時と、取得した生体情報の種類と、生体情報として取得した情報と、スコア値との各項目が含まれる。
端末制御部48は、図5Bに示した認証用生体情報データベース471のテーブルの日時の項目に、生体情報を取得した日時である2019年3月1日の12時22分23秒を書き込む。端末制御部48は、取得した生体情報の種類の項目に顔と書き込む。端末制御部48は、取得した情報の項目に、インカメラ41Aから取得したユーザの顔の画像のデータを書き込む。端末制御部48は、スコア値の項目に100を書き込む。
次に、端末制御部48は、ユーザの癖のデータを取得する。このユーザの癖とは、ユーザが端末4を使用する時の挙動、操作状態、場所、通信状態等、ユーザ特有の振る舞いをいう。端末制御部48の取得するユーザの癖のデータは、生体情報を取得した時と同じ日時のデータである。例えば、図5Aに示す2019年3月1日の12時22分23秒において、端末制御部48は、図4Aに示したインカメラ41Aで撮影したユーザの顔の画像から求めたユーザの顔と表示部49の画面との距離、傾き検出部43で求めた端末4の傾き角度、操作入力部44で求めたキー操作のストロークのデータ、通信部40から取得した通信環境の情報、位置検出部46から取得した端末4の位置情報等を、ユーザの癖のデータとして取得する。
端末制御部48は、端末4に予め登録されているユーザの癖に関する各データにおける特徴量と、取得したユーザの癖に関する各データにおける特徴量とを比較し、類似度を求める。端末制御部48は、求めた類似度をもとに、ユーザの癖に関する各データにおけるスコア値を求める。このスコア値は、図5Dに示したスコア値テーブル473に設定された上限値50から下限値-50の範囲内の値となる。
端末制御部48は、取得したユーザの癖のデータと求めたスコア値とを、図4Bの端末記憶部47に記憶した認証用ユーザの癖データベース472に書き込む。認証用ユーザの癖データベース472のテーブルを、図5Cに示す。認証用ユーザの癖データベース472のテーブルには、端末制御部48がユーザの癖のデータを取得した日時と、ユーザの癖の種類と、ユーザの癖として取得した情報と、スコア値との各項目が含まれる。
例えば、端末制御部48は、図5Cに示した認証用ユーザの癖データベース472のテーブルの日時の項目に生体情報を取得した日時と同じ2019年3月1日の12時22分23秒を書き込む。端末制御部48は、ユーザの癖の項目に、顔と画面との距離と書き込む。端末制御部48は、取得した情報の項目に250mmを書き込む。この250mmは、インカメラ41Aで撮影したユーザの顔の画像から、端末制御部48により求められたユーザの顔と画面との距離である。
端末制御部48は、求めたユーザの顔と画面との距離の値と、端末4に登録されているユーザの顔と画面との距離の値とを比較し、その類似度からスコア値を求める。ここでは、距離は一致ではないが類似度が高いものとして、求められたスコア値を35とする。端末制御部48は、図5Cに示したテーブルのスコア値の項目に35と書き込む。
続いて、端末制御部48は、傾き検出部43で求めた端末4の傾き角度等、得られたユーザの癖に関するデータを図5Cに示した認証用ユーザの癖データベース472のテーブルの各項目に書き込む。全てのユーザの癖に関するデータの書き込みが終わると、端末制御部48は、図5Bに示した認証用生体情報データベース471及び図5Cに示した認証用ユーザの癖データベース472における同じ日時のスコア値とを合計する。
例えば、図5Bに示した認証用生体情報データベース471における2019年3月1日の12時22分23秒の日時において、生体情報のスコア値100である。また、同じ日時において、図5Cに示した認証用ユーザの癖データベース472におけるユーザの癖のスコア値は、上から順に35、40、-15、25、42である。この生体情報のスコア値100とユーザの癖のスコア値35、40、-15、25、42とを合計すると227となる。
端末制御部48は、図5Dに示したスコア値テーブル473から合計値の項目に設定されたスコア値を取得する。端末制御部48は、合計した生体情報及びユーザの癖のスコア値と、スコア値テーブル473から合計値の項目に設定されたスコア値とを比較する。端末制御部48は、合計した生体情報及びユーザの癖のスコア値が、スコア値テーブル473の合計値の項目に設定されたスコア値以上であれば、端末4を使用しているユーザを正しいユーザとして認証し、スコア値以下であればユーザを正しいユーザではないとして認証しない。
例えば、図5Dに示したスコア値テーブル473には、スコア値の合計値として200が設定されている。端末制御部48は、求めたスコア値の合計値227と、スコア値テーブル473に設定されたスコア値の合計値200とを比較する。求めたスコア値の合計値がスコア値テーブル473に設定されたスコア値の合計値以上であるため、端末制御部48は、端末4を操作しているユーザを正しいユーザとして認証する。
上述の端末4におけるユーザの認証方法は、認証処理プログラム470として端末記憶部47に記憶されている。端末制御部48は、電源ボタンの押下があった場合、指紋検出部45による指紋検出等のユーザによる端末4の操作があった場合、他のプログラムから要求があった場合に、認証処理プログラム470を実行してユーザの認証を行う。
認証処理プログラム470が実行する処理について、図6に示す認証処理のフローチャートを参照しつつ、以下に説明する。端末制御部48は、認証処理プログラム470が起動すると、ユーザの顔の画像、指紋等の生体情報を取得する(ステップS1)。続いて、端末制御部48は、ユーザの癖に関するデータを取得する(ステップS2)。
端末制御部48は、端末4に予め登録されている生体情報の特徴量と、取得した生体情報の特徴量とを比較し、類似度を求める。端末制御部48は、求めた類似度から、図5Dのスコア値テーブル473に設定された生体情報のスコア値の上限値から下限値の範囲内でスコア値を求める。また、端末制御部48は、端末4に予め登録されているユーザの癖のデータにおける特徴量と、取得したユーザの癖のデータにおける特徴量とを比較し、類似度を求める。端末制御部48は、求めた類似度から、図5Dのスコア値テーブル473に設定されたユーザの癖のスコア値の上限値から下限値の範囲内でスコア値を求める(ステップS3)。
端末制御部48は、取得した生体情報のデータ及び求めたスコア値を、図4Bに示す認証用生体情報データベース471に書き込む。また、端末制御部48は取得したユーザの癖のデータと求めたスコア値とを、図4Bの端末記憶部47に記憶した認証用ユーザの癖データベース472に書き込み、記憶させる(ステップS4)。
端末制御部48は、同じ日時における生体情報及びユーザの癖のデータにおけるスコア値を合計する(ステップS5)。端末制御部48は、図5Dに示したスコア値テーブル473から合計値の項目に設定されたスコア値を取得する。端末制御部48は、合計した生体情報及びユーザの癖のスコア値と、スコア値テーブル473から合計値の項目に設定されたスコア値とを比較する(ステップS6)。
端末制御部48は、合計した生体情報及びユーザの癖のスコア値が、スコア値テーブル473の合計値の項目に設定されたスコア値以上であれば(ステップS6;YES)、端末4を使用しているユーザを正しいユーザとして認証する(ステップS7)。続いて、端末制御部48は、端末4に予め登録されている生体情報の特徴量と取得した生体情報の特徴量との平均値を求める。端末制御部48は、求めた平均値により端末4に登録されている生体情報の特徴量を更新する。また、端末制御部48は、端末4に予め登録されているユーザの癖のデータにおける特徴量と、取得したユーザの癖のデータにおける特徴量との平均値を求める。端末制御部48は、求めた平均値により端末4に登録されているユーザの癖のデータにおける特徴量を更新する(ステップS8)。
また、端末制御部48は、合計した生体情報及びユーザの癖のスコア値が、スコア値テーブル473の合計値の項目に設定されたスコア値以下であれば(ステップS6;NO)、図4Bに示した表示部49にユーザが異なる旨のメッセージを表示し、ステップS1へ戻る(ステップS9)。なお、この認証処理プログラム470は、請求の範囲におけるユーザ認証手段の一例である。また、ユーザの生体情報は、請求の範囲における第1認証用データの一例である。ユーザの癖のデータは、請求の範囲における第2認証用データの一例である。
次に、図4Bに示した端末4の端末記憶部47に記憶する第1暗号鍵データベース476に書き込まれている暗号鍵について説明する。図7Aに、第1暗号鍵データベース476のテーブルの一例を示す。このテーブルには、項目として鍵を用いる対象の名称と、公開鍵と、共通鍵とが設定されている。この公開鍵は、秘密鍵とペア鍵となる鍵であり、認証用サーバ1及び第2ユーザの用いる第2端末4Bで生成されたものである。また、共通鍵は、第1ユーザの用いる第1端末4Aと、認証用サーバ1及び第2ユーザの用いる第2端末4Bとの間で用いる鍵である。この共通鍵は、第1ユーザの用いる第1端末4Aで生成される。
例えば、図7Aにおいて、鍵を用いる対象の名称である「認証用サーバ」には、公開鍵としてKa2、共通鍵としてKAが記憶されている。また、鍵を用いる対象の名称である「第2端末」には、公開鍵としてKf2、共通鍵としてKFが記憶されている。
次に、図4Bに示した第2端末4Bの端末記憶部47に記憶する第2暗号鍵データベース479に書き込まれている暗号鍵について説明する。図7Bに、第2暗号鍵データベース479のテーブルの一例を示す。このテーブルには、項目として鍵を用いる対象の名称と、秘密鍵と、公開鍵と、共通鍵とが設定されている。この秘密鍵と公開鍵とは、ペア鍵となる鍵である。このテーブルには、第2端末4Bと認証用サーバ1との間で用いる公開鍵及び共通鍵と、第2端末4Bと第1端末4Aとの間で用いる秘密鍵、公開鍵、及び共通鍵とが記憶されている。
第2端末4Bと認証用サーバ1との間で用いる鍵のうち、公開鍵は認証用サーバ1で生成した鍵であり、共通鍵は第2端末4Bで生成した鍵である。また、第2端末4Bと第1端末4Aとの間で用いる鍵のうち、秘密鍵および公開鍵は第2端末4B生成した鍵であり、共通鍵は第1端末4Aで生成した鍵である。例えば、図7Bにおいて、鍵を用いる対象の名称である「認証用サーバ」には、公開鍵にKb2、共通鍵にKBが記憶されている。また、鍵を用いる対象の名称である「第1端末」には、秘密鍵にKf1、公開鍵にKf2、共通鍵にKFが記憶されている。
次に、図4Bに示した第1端末4A及び図4Bに示した第2端末4Bの端末記憶部47に記憶されるファイル分割用暗号鍵テーブル477に書き込まれる鍵について説明する。図7Cにファイル分割用暗号鍵テーブル477の構成の一例を示す。このテーブルに記憶された鍵は、第1端末4Aにより複数の分割ファイルに分割された情報ファイルの各分割ファイルを暗号化するための鍵である。例えば、図7Cに示すテーブルには、Kr1及びKr2が書き込まれている。なお、以下では、Kr1及びKr2をファイル分割用暗号鍵と称する。
また、ファイル分割用暗号鍵は、ファイル分割用暗号鍵テーブル477に書き込まれている鍵だけではなく、第1端末4A及び第2端末4Bの端末制御部48により必要に応じて生成される。生成されたファイル分割用暗号鍵は、ファイル分割用暗号鍵テーブル477の末尾に追加される。
次に、図2に示した認証用サーバ1のサーバ記憶部12に記憶される暗号鍵情報データベース120に書き込まれる暗号鍵について説明する。図8に、暗号鍵情報データベース120のテーブルの一例を示す。このテーブルには、項目として鍵を用いる対象の名称と、秘密鍵と、公開鍵と、共通鍵とが設定されている。この秘密鍵と公開鍵とは、ペア鍵となる鍵である。このテーブルには、第1端末4A及び第2端末4Bと認証用サーバ1との間で用いる秘密鍵と公開鍵と共通鍵とが記憶されている。
例えば、図8において、鍵を用いる対象の名称である「第1端末」には、秘密鍵にKa1、公開鍵にKa2、共通鍵にKAが記憶されている。また、鍵を用いる対象の名称である「第2端末」には、秘密鍵にKb1、公開鍵にKb2、共通鍵にKBが記憶されている。
本実施の形態1に係る情報処理システム100は、第1ユーザが第1端末4Aを使用してファイルを第1クラウド3A及び第2クラウド3Bに分散して保存し、第1ユーザからファイルの閲覧を許可された第2ユーザが、認証用サーバで本人と認証された場合に、第2端末4Bを使用して第1クラウド3A及び第2クラウド3Bに分散して保存されたファイルを取得し、復元できるシステムである。そこで、以下では、ファイルを複数のクラウドに分散して保存する方法について、第1ユーザの使用する第1端末4Aで行うものとして、図9から図13を参照しつつ説明する。また、複数のクラウドに分散されたファイルを取得して復元する方法について、第2ユーザの使用する第2端末4Bにより行うものとして、図9から図12、及び図14を参照しつつ説明する。なお、以下では、第1ユーザの作成した情報のデータを含むファイルを、ユーザの預託ファイルと呼ぶものとする。
まず、ファイルを複数のクラウドに分散して保存する方法について、第1ユーザの使用する第1端末4Aで行うものとして、図9から図13を参照しつつ説明する。図9に示すように、1つのユーザの預託ファイルは、コンピュータのデスクアクセスの最小単位であるクラスタに分割される。1クラスタに含まれるセクタの数は任意であるが、以下の説明では、図10に示すように8個とする。本実施形態では、1セクタを512バイトとする。従って、1クラスタは、4,096バイト(約4Kバイト)のサイズを有する。
このセクタ及びクラスタは、論理アドレスで管理される。クラスタはnビットの論理アドレスの上位n-3ビットで指定される。クラスタ内の各セクタは、論理アドレスの下位3ビットにより指定される。以下の説明において、クラスタについての論理アドレスは、nビットの論理アドレス全体の上位(n-3)ビットを意味するものとする。
図4Bに示した第1端末4Aの端末制御部48は、ユーザの預託ファイルを、図3に示した第1クラウド3Aの第1記憶部30及び第2クラウド3Bの第2記憶部31に格納する際、図11Aに示す奇数の論理アドレス((n-3)ビット)が割り当てられているクラスタと、図11Bに示す偶数の論理アドレスが割り当てられているクラスタとに異なった処理を行う。なお以下では、奇数の論理アドレスが割り当てられているクラスタを、奇数論理アドレスクラスタと称する。また、以下では、偶数の論理アドレスが割り当てられているクラスタを偶数論理アドレスクラスタと称する。
まず、第1端末4Aの端末制御部48は、端末記憶部47のファイル分割用暗号鍵テーブル477から、ファイル分割用暗号鍵を取得する。例えば、端末制御部48は、図7Cに示したファイル分割用暗号鍵テーブル477に書き込まれたファイル分割用暗号鍵Kr1及びKr2を取得する。
端末制御部48は、奇数論理アドレスが割り当てられているクラスタには、ファイル分割用暗号鍵Kr1による暗号化処理を行い、図3Aに示した第1クラウド3Aの第1記憶部30上の任意の物理アドレスPAに格納する。一方、端末制御部48は、偶数論理アドレスが割り当てられているクラスタには、ファイル分割用暗号鍵Kr2による暗号化処理を行い、第2クラウド3Bの第2記憶部31上の任意の物理アドレスPBに格納する。
端末制御部48は、上述の処理を行った後、図12に示すファイル管理テーブル475を生成する。ファイル管理テーブル475は、論理アドレスLiで特定されるクラスタと、格納先の物理アドレスPAi又はPBiと、暗号化するためのファイル分割用暗号鍵Kr1又はKr2と、物理アドレスPAi又はPBiを備える第1クラウド3A又は第2クラウド3Bを示す番号と対応付けて保存するテーブルである。この番号は、例えば、図12に示すように、物理アドレスPAiを備える第1クラウド3Aを示す番号を「1」とし、また、物理アドレスPBiを備える第2クラウド3Bを示す番号を「2」としている。
このファイル管理テーブル475は、図4Bに示した第1端末4Aの端末記憶部47に記憶されている。なお、本実施の形態1において、論理アドレスLiが偶数の場合にはファイル分割用暗号鍵Kr1を使用し、論理アドレスLiが奇数の場合にはファイル分割用暗号鍵Kr2を用いるものとした。このような場合には、論理アドレスLiから暗号鍵を特定することができるため、ファイル管理テーブル475にファイル分割用暗号鍵Kr1又はKr2は記憶しなくてもよい。
次に、上記のようにして、暗号化して分散して図3Aに示した第1クラウド3A及び図3Bに示した第2クラウド3Bに格納したファイルを復元する方法について、第2ユーザの使用する第2端末4Bにより行うものとして、図9から図12、及び図14を参照しつつ説明する。
図4Bに示した第2端末4Bの端末制御部48は、第1端末4Aにより図2に示した認証用サーバ1のサーバ記憶部12に予め保存したファイル管理テーブル475を、認証用サーバ1のサーバ記憶部12から取得する。第2端末4Bの端末制御部48は、取得したファイル管理テーブル475から、復元の対象であるユーザの預託ファイルを構成するクラスタの先頭クラスタの論理アドレスを求める。
第2端末4Bの端末制御部48は、先頭クラスタの論理アドレスに対応するクラウド3及び物理アドレスを、ファイル管理テーブル475から特定する。次いで、端末制御部48は、先頭クラスタの論理アドレスに対応するファイル分割用暗号鍵を特定する。端末制御部48は、特定したクラウド3及び物理アドレスに基づいてクラスタを読み出し、特定したファイル分割用暗号鍵を使って復号化する。
第2端末4Bの端末制御部48は、同様の動作を後続するクラスタで実行し、全てのクラスタを復号する。端末制御部48は復号したクラスタを連結し、ユーザの預託ファイルを復元する。なお、ユーザの預託ファイルを分割したクラスタは、請求の範囲における分割ファイルの一例である。
上述した、ユーザの預託ファイルを分割した分割ファイルをクラウドに分散して記憶する方法は、ファイル格納処理として、端末4の端末記憶部47に記憶したファイル管理処理プログラム474に含まれている。また、クラウドに分散して記憶された分割ファイルからユーザの預託ファイルを復元する方法は、ファイルの復元処理として端末4の端末記憶部47に記憶したファイル管理処理プログラム474に含まれている。
まず、ユーザの預託ファイルを分割して複数のクラウドに分散させて記憶するファイル格納処理について、図13に示すフローチャートを参照しつつ説明する。なお、ここでは、ファイル格納処理を、図4Bに示した第1端末4Aの端末制御部48で実行される処理として説明する。
第1端末4Aの端末制御部48は、保存対象のユーザの預託ファイルを構成する先頭クラスタの論理アドレスLiを特定し、それが奇数であるか否かを判別する(ステップS11)。論理アドレスLiが奇数である場合(ステップS11;YES)、図11Aに示すように、ファイル分割用暗号鍵Kr1で処理対象のクラスタを暗号化する(ステップS12)。端末制御部48は、暗号化したクラスタを、図3Aに示した第1クラウド3Aの第1記憶部30上の空き物理アドレスPAの領域に格納する(ステップS13)。
続いて、第1端末4Aの端末制御部48は、処理したクラスタの論理アドレスLiと、格納した領域の物理アドレスPAiと、ファイル分割用暗号鍵Kr1と、物理アドレスPAiを備える第1クラウド3Aを示す番号を「1」とを対応付けて、図12に示したファイル管理テーブル475のテーブルに書き込み、図4Bに示した端末記憶部47に記憶する(ステップS14)。
第1端末4Aの端末制御部48は、全てのクラスタの保存が終了したか否かを判別する(ステップS15)。端末制御部48は、全てのクラスタの保存が終了していない場合(ステップS15:No)、論理アドレスLiに1を足す(ステップS18)。続いて、端末制御部48は、ステップS11に戻り、次のクラスタを処理する。
一方、ステップS11で、処理対象のクラスタの論理アドレスが奇数ではないと判別された場合(ステップS11;NO)、図11Bに示すようにファイル分割用暗号鍵Kr2で処理対象のクラスタを暗号化する(ステップS16)。第1端末4Aの端末制御部48は、図3Bに示した第2クラウド3Bの第2記憶部31上の空き物理アドレスPBの領域に格納する(ステップS17)。
第1端末4Aの端末制御部48は、処理したクラスタの論理アドレスLiと、格納した領域の物理アドレスPBiと、ファイル分割用暗号鍵Kr2と、物理アドレスPBiを備える第2クラウド3Bを示す番号を「2」とを対応付けて、図12に示したファイル管理テーブル475のテーブルに書き込み、図4Bに示した端末記憶部47に記憶する(ステップS14)。
第1端末4Aの端末制御部48は、全てのクラスタの保存が終了したか否かを判別する(ステップS15)。端末制御部48は、全てのクラスタの保存が終了していない場合(ステップS15;NO)、論理アドレスLiに1を足す(ステップS18)。続いて、端末制御部48は、ステップS11に戻り、次のクラスタを処理する。また、ステップS15で、全てのクラスタの保存が終了したと判別された場合(ステップS15;YES)、第1端末4Aの端末制御部48は、ファイル格納処理を終了する。
次に、クラウドに分散して記憶された分割ファイルからユーザの預託ファイルを復元するファイルの復元処理について、図14に示すフローチャートを参照しつつ説明する。なお、ここでは、ファイルの復元処理を、図4Bに示した第2端末4Bの端末制御部48で実行される処理として説明する。
図4Bに示した第2端末4Bの端末制御部48は、第1端末4Aにより図2に示した認証用サーバ1のサーバ記憶部12に予め保存したファイル管理テーブル475を、認証用サーバ1のサーバ記憶部12から取得する。第2端末4Bの端末制御部48は、取得したファイル管理テーブル475から、復元の対象であるユーザの預託ファイルを構成するクラスタの先頭クラスタの論理アドレスを求める。端末制御部48は、先頭クラスタの論理アドレスに対応するクラウド3及び物理アドレスを、ファイル管理テーブル475から特定する。次いで、端末制御部48は、先頭クラスタの論理アドレスに対応するファイル分割用暗号鍵を特定する(ステップS21)。
第2端末4Bの端末制御部48は、特定したクラウド3及び物理アドレスに基づいてデータを読み出す(ステップS22)。端末制御部48は、特定したファイル分割用暗号鍵を使って、特定したクラウド3及び物理アドレスから読み出したクラスタを復号化する(ステップS23)。続いて、ユーザの預託ファイルを構成する全てのクラスタの読み出しが終了したか否かを判別する(ステップS24)。
ユーザの預託ファイルを構成する全てのクラスタの読み出しが終了していない場合(ステップS24;NO)、ステップS21に戻り、次のクラスタに対してステップS21からステップS23を実行する。また、ユーザの預託ファイルを構成する全てのクラスタの読み出しが終了した場合(ステップS24;YES)、端末制御部48は、復号化したクラスタを連結し、ユーザの預託ファイルを復元する(ステップS25)。
本実施の形態1に係る情報処理システム100は、第1ユーザが第1端末4Aを使用して複数のクラウド3に分散して保存したユーザの預託ファイルを、第1ユーザからファイルの使用を認められた第2ユーザが、認証用サーバ1で本人と認証された場合に第2端末4Bを使用して取得し、復元し使用することができるシステムである。情報処理システム100において実行される処理の流れを、図15から図19に示すフローチャートを参照しつつ、以下に説明する。
図15に示すフローチャートは、情報処理システム100において実行される処理の全体構成を示すものである。図15に示す各処理は、図2に示した認証用サーバ1のユーザ認証処理プログラム110と、図4Bに示した第1端末4Aのファイル預託処理プログラム478と、図4Bに示した第2端末4Bのファイル取得処理プログラム480とを、認証用サーバ1と、第1端末4Aと、第2端末4Bとがそれぞれ実行することにより実現される処理である。
ここでは、第1ユーザが図1に示したクラウド3に記憶させるユーザの預託ファイルは、図4Bに示した第1端末4Aの端末記憶部47に記憶されているものとする。第1ユーザが、図4Bに示した第1端末4Aの表示部49の画面上に表示されたファイル預託処理プログラム478に関連付けられているアイコンを、操作入力部44からを選択する。
第1端末4Aの端末制御部48は、現在第1端末4Aを使用している第1ユーザが正しいか認証する(ステップS31)。この認証は、図6に示した認証処理により行われる。端末制御部48は、図6に示した認証処理のステップS1からステップS7を実行し、第1ユーザが第1ユーザ本人であると認証されると、ファイル預託処理プログラム478を実行する。具体的には、第1端末4Aは、図4Cに示す記憶機器56に記憶されたファイル預託処理プログラム478をメモリ52に読み出して、プロセッサ51により実行する。また、第1端末4Aの端末制御部48は、図6に示した認証処理のステップS1からステップS6を実行して、第1ユーザが第1ユーザ本人であると判定できなかった場合には、ステップS8を実行して図4Bに示した表示部49に、ユーザが異なる旨を表示させる。
続いて、第2ユーザが、図4Bに示した第2端末4Bの表示部49の画面上に表示されたファイル取得処理プログラム480に関連付けられているアイコンを、操作入力部44から選択する。第2端末4Bの端末制御部48は、現在第2端末4Bを使用している第2ユーザが正しいか認証する(ステップS32)。この認証は、図6に示した認証処理により行われる。端末制御部48は、図6に示した認証処理のステップS1からステップS7を実行し、第2ユーザが第2ユーザ本人であると認証されると、ファイル取得処理プログラム480を実行する。具体的には、第2端末4Bは、図4Cに示す記憶機器56に記憶されたファイル取得処理プログラム480をメモリ52に読み出して、プロセッサ51により実行する。また、第2端末4Bの端末制御部48は、図6に示した認証処理のステップS1からステップS6を実行して、第2ユーザが第2ユーザ本人であると判定できなかった場合には、ステップS8を実行して図4Bに示した表示部49に、ユーザが異なる旨を表示させる。
第1端末4Aの端末制御部48及び第2端末4Bの端末制御部48は、ユーザ登録処理を行う(ステップS33)。ユーザ登録処理については、図16に示すフローチャートを参照して説明する。第1端末4Aの端末制御部48は、第1ユーザの名称及び登録に必要な情報を認証用サーバ1に送信する(ステップS100)。
図2に示した認証用サーバ1のサーバ制御部11は、第1端末4Aから、第1ユーザの名称及び登録に必要な情報を受信すると、ユーザ認証処理プログラム110を実行する。認証用サーバ1のサーバ制御部11は、第1ユーザの名称及び必要な情報を登録する。サーバ制御部11は、第1ユーザとの間で用いる秘密鍵と公開鍵とのペア鍵を生成する(ステップS101)。ここで、サーバ制御部11の生成する鍵は、例えば、秘密鍵をKa1とし、公開鍵をKa2とする。サーバ制御部11は、生成したペア鍵を、図8に示した暗号鍵情報データベース120のテーブルに、ユーザ名と対応付けて書き込んで保存する。
サーバ制御部11は、生成したペア鍵のうち公開鍵Ka2を第1端末4Aに送信する(ステップS102)。第1端末4Aの端末制御部48は、受信した公開鍵Ka2を、図7Aに示した第1暗号鍵データベース476のテーブルに、鍵を用いる対象の名称と関連つけて書き込む。例えば、図7Aに示すように、鍵を用いる対象の名称に「認証用サーバ」、公開鍵に「Ka2」と書き込む。続いて、第1端末4Aの端末制御部48は、認証用サーバ1との間で用いる共通鍵を生成する(ステップS103)。第1端末4Aの端末制御部48の生成した共通鍵を、例えば、KAとする。第1端末4Aの端末制御部48は、共通鍵KAを、図7Aに示した第1暗号鍵データベース476に、鍵を用いる対象である認証用サーバ1と対応付けて書き込む。
第1端末4Aの端末制御部48は、ステップS103で認証用サーバ1から受信した公開鍵Ka2を用いて共通鍵KAを暗号化し、認証用サーバ1に送信する(ステップS104)。認証用サーバ1のサーバ制御部11は、第1端末4Aから受信した共通鍵KAを、ステップS101で生成した秘密鍵Ka1で複合化し、図8に示した暗号鍵情報データベース120のテーブルに、鍵を用いる対象である第1端末4Aと対応付けて書き込む。サーバ制御部11は、共通鍵KAの書き込まれた暗号鍵情報データベース120を、図2に示した認証用サーバ1のサーバ記憶部12に保存する(ステップS105)。
第2端末4Bの端末制御部48は、第2ユーザの名称及び登録に必要な情報を認証用サーバ1に送信する(ステップS106)。図2に示した認証用サーバ1のサーバ制御部11は、第2端末4Bから受信した第2ユーザの名称及び登録に必要な情報を登録する。サーバ制御部11は、第2ユーザとの間で用いる秘密鍵と公開鍵とのペア鍵を生成する(ステップS107)。ここで、サーバ制御部11の生成する鍵は、例えば、秘密鍵をKb1とし、公開鍵をKb2とする。サーバ制御部11は、生成したペア鍵を、図8に示した暗号鍵情報データベース120のテーブルに、ユーザ名と対応付けて書き込む。
サーバ制御部11は、生成したペア鍵のうち公開鍵Kb2を第2端末4Bに送信する(ステップS108)。第2端末4Bの端末制御部48は、受信した公開鍵Kb2を、図7Bに示した第2暗号鍵データベース479のテーブルに、鍵を用いる対象の名称と関連つけて書き込む。例えば、図7Bに示すように、鍵を用いる対象の名称に「認証用サーバ」、公開鍵に「Kb2」と書き込む。続いて、第2端末4Bの端末制御部48は、認証用サーバ1との間で用いる共通鍵を生成する(ステップS109)。第2端末4Bの端末制御部48の生成した共通鍵を、例えば、KBとする。第2端末4Bの端末制御部48は、共通鍵KBを図7Bに示した第2暗号鍵データベース479に、鍵を用いる対象である認証用サーバ1と対応付けて書き込む。
第2端末4Bの端末制御部48は、ステップS109で認証用サーバ1から受信した公開鍵Kb2を用いて共通鍵KBを暗号化し、認証用サーバ1に送信する(ステップS110)。認証用サーバ1のサーバ制御部11は、第2端末4Bから取得した共通鍵KBを、ステップS107で生成した秘密鍵Kb1で複合化し、図8に示した暗号鍵情報データベース120のテーブルに、鍵を用いる対象である第2端末4Bと対応付けて書き込む。サーバ制御部11は、共通鍵KBの書き込まれた暗号鍵情報データベース120を、図2に示した認証用サーバ1のサーバ記憶部12に保存する(ステップS111)。
ここで、図15に戻る。第1ユーザは、クラウド3に分散させたファイルを、自らの定めたタイミングで第2ユーザに開示したい場合、分散させたファイルを第2ユーザと共有できるように設定する。まず、第1ユーザが使用する第1端末4Aの端末制御部48は、現在第1端末4Aを使用している第1ユーザが正しいか認証する(ステップS34)。続いて、分散させたファイルを共有する第2ユーザは、自身の使用する第2端末4Bの端末制御部48において、現在第2端末4Bを使用している第2ユーザが正しいか認証する(ステップS35)。
第1端末4Aの端末制御部48は、図6に示した認証処理のステップS1からステップS7を実行し、第1ユーザが第1ユーザ本人であると認証されると、ユーザ情報共有処理を実行する(ステップS36)。また、第1端末4Aの端末制御部48は、図6に示した認証処理のステップS1からステップS6を実行して、第1ユーザが第1ユーザ本人であると判定できなかった場合には、ステップS8を実行して図4Bに示した表示部49に、ユーザが異なる旨を表示させる。
同様に、第2端末4Bの端末制御部48は、図6に示した認証処理のステップS1からステップS7を実行し、第2ユーザが第2ユーザ本人であると認証されると、ユーザ情報共有処理を実行する(ステップS36)。また、第2端末4Bの端末制御部48は、図6に示した認証処理のステップS1からステップS6を実行して、第2ユーザが第2ユーザ本人であると判定できなかった場合には、ステップS8を実行して図4Bに示した表示部49に、ユーザが異なる旨を表示させる。
ユーザ情報共有処理については、図17に示すフローチャートを参照しつつ、以下に説明する。第1端末4Aの端末制御部48は、第2端末4Bに公開鍵を要求する(ステップS120)。第2端末4Bの端末制御部48は、秘密鍵と公開鍵とのペア鍵を生成する(ステップS121)。ここで、第2端末4Bの端末制御部48の生成するペア鍵は、例えば、秘密鍵をKf1とし、公開鍵をKf2とする。第2端末4Bの端末制御部48は、図7Bに示した第2暗号鍵データベース479のテーブルに、鍵を用いる対象の名称とペア鍵とを対応付けて書き込む。例えば、鍵を用いる対象の名称に「第1端末」、秘密鍵の項目に「Kf1」、公開鍵の項目に「Kf2」とする。第2端末4Bの端末制御部48は、書き込んだ第2暗号鍵データベース479を図4Bに示した第2端末4Bの端末記憶部47に保存する。
第2端末4Bの端末制御部48は、公開鍵Kf2を第1端末4Aに送信する(ステップS122)。第1端末4Aの端末制御部48は、第2端末4Bから公開鍵Kf2を受信すると(ステップS123)、図4Bに示した第1暗号鍵データベース476に保存する。例えば、図7Aに示した第1暗号鍵データベース476のテーブルに、鍵を用いる対象の名称と公開鍵Kf2とを対応付けて書き込む。例えば、鍵を用いる対象の名称に「第2端末」を、公開鍵の項目に「Kf2」を書き込む。
第1端末4Aの端末制御部48は、第2端末4Bとの間で用いる共通鍵を生成する。第1端末4Aの端末制御部48は、ステップS123で第2端末4Bから受信した公開鍵Kf2により暗号化し、第2端末4Bに送信する(ステップS124)。ここで、第1端末4Aの端末制御部48の生成する共通鍵を、例えば、KFとする。第1端末4Aの端末制御部48は、生成した共通鍵を図4Bに示した第1暗号鍵データベース476に保存する。例えば、図7Aに示した第1暗号鍵データベース476のテーブルに、鍵を用いる対象の名称と共通鍵KFとを対応付けて書き込む。例えば、鍵を用いる対象の名称に「第2端末」を、公開鍵の項目に「KF」を書き込む。
第2端末4Bの端末制御部48は、第1端末4Aから共通鍵KFを受信する(ステップS125)。第2端末4Bの端末制御部48は、第1端末4Aから受信した共通鍵KFを、ステップS121で生成した秘密鍵Kf1により複合化し、図4Bに示した第2暗号鍵データベース479に、鍵を用いる対象の名称と対応付けて保存する(ステップS126)。例えば、図7Bに示した第2暗号鍵データベース479のテーブルおいて、鍵を用いる対象の名称である「第1端末」、共通鍵をKFとして書き込む。
続いて、第1端末4Aの端末制御部48は、第2端末4Bに対して、第2ユーザの生体情報を要求する(ステップS127)。第2ユーザの生体情報は、第2端末4Bに登録されている第2ユーザの生体情報でも、新しく取得した第2ユーザの生体情報でも、どちらでもよい。
第2端末4Bの端末制御部48は、第2ユーザの生体情報を第1端末4Aから受信した共通鍵KFで暗号化する(ステップS128)。ここでは、第2ユーザの生体情報を、図4Aに示した第2端末4Bのインカメラ41Aで撮影した第2ユーザの顔の画像とする。第2端末4Bの端末制御部48は、暗号化した第2ユーザの生体情報を第1端末4Aへ送信する(ステップS129)。
第1端末4Aの端末制御部48は、第2端末4Bから暗号化した第2ユーザの生体情報を受信する(ステップS130)。第1端末4Aの端末制御部48は、受信した第2ユーザの生体情報を、図4Bに示した端末記憶部47に保存する(ステップS131)。
ここで、図15に戻る。第1ユーザは、第2ユーザに開示したい、自身の作成した情報を含むユーザの預託ファイルを、クラウド3に分散させて保存する。まず、第1ユーザが使用する第1端末4Aの端末制御部48は、現在第1端末4Aを使用している第1ユーザが正しいか認証する(ステップS37)。第1端末4Aの端末制御部48は、図6に示した認証処理のステップS1からステップS7を実行し、第1ユーザが第1ユーザ本人であると認証されると、ファイル預け処理を実行する(ステップS38)。ファイル預け処理については、図18に示すフローチャートを参照しつつ、以下に説明する。
第1端末4Aの端末制御部48は、第1ユーザの作成した情報を含むユーザの預託ファイルについて、図13に示したファイル格納処理のステップS11からステップS18を実行する(ステップS141)。このファイル格納処理により、第1ユーザの作成した情報を含むユーザの預託ファイルを分割し、図1に示した第1クラウド3A及び第2クラウド3Bに分散して保存する。
第1端末4Aの端末制御部48は、第1クラウド3A及び第2クラウド3Bへアクセスするための情報と、図4Bに示したファイル管理テーブル475のデータと、ファイル分割用暗号鍵とを、図7Aに示した第2端末4Bとの公開鍵Kf2で暗号化する(ステップS142)。このファイル分割用暗号鍵は、第1クラウド3A及び第2クラウド3Bに分散して保存したユーザの預託ファイルを暗号化した鍵であり、図4Bに示した第1端末4Aの端末記憶部47のファイル分割用暗号鍵テーブル477に保存されている。例えば、図7Cに示したファイル分割用暗号鍵テーブル477のテーブルに書き込まれたKr1、Kr2である。また、ここで暗号化した第1クラウド3A及び第2クラウド3Bへアクセスするための情報と、図4Bに示したファイル管理テーブル475のデータと、ファイル分割用暗号鍵とを、以下では、暗号化したアクセス情報と呼ぶ。
第1端末4Aの端末制御部48は、暗号化したアクセス情報に、ユーザの預託ファイルの利用開始日時及び第2ユーザの生体情報を追加する(ステップS143)。このユーザの預託ファイルの利用開始日時は、第2端末4Bにより預託ファイルを取得できる日時である。また、第2ユーザの生体情報は、図17に示したステップS130で第2端末4Bから受信したものである。第1端末4Aの端末制御部48は、暗号化したアクセス情報と、ユーザの預託ファイルの利用開始日時及び第2ユーザの生体情報とを、図7Aに示した第1暗号鍵データベース476に記憶された認証用サーバ1との共通鍵KAで暗号化し、認証用サーバ1に送信する(ステップS144)。
認証用サーバ1は、第1端末4Aの端末制御部48から、暗号化したアクセス情報と、ユーザの預託ファイルの利用開始日時及び第2ユーザの生体情報とを受信する(ステップS145)。認証用サーバ1は、受信した暗号化したアクセス情報と、ユーザの預託ファイルの利用開始日時及び第2ユーザの生体情報とを、図2に示したサーバ記憶部12に保存する(ステップS146)。第1端末4Aの端末制御部48は、ファイル分割用暗号鍵を新たに生成する。ここで生成される鍵を、例えば、Kr3、Kr4とする。
第1端末4Aの端末制御部48は、端末記憶部47のファイル分割用暗号鍵テーブル477に保存されているファイル分割用暗号鍵Kr1、Kr2の次の行に、新たに生成したファイル分割用暗号鍵Kr3、Kr4を書き込み、保存する(ステップS147)。これにより、ユーザの預託ファイルを、第1クラウド3A及び第2クラウド3Bに分散させた分散時期毎に、ファイル分割用暗号鍵を異ならせることができる。このため、第1ユーザは、ユーザの預託ファイルを復元し使用する許可を、分散時期毎に異なるユーザに与えることができる。したがって、第1ユーザは、ユーザ毎に必要な情報を共有することができる。
ここで、図15に戻る。第2ユーザは、第1ユーザから共有してもらったユーザの預託ファイルをクラウド3から取得したい場合、クラウド3に分散して保存されたファイルを取得し、復元する。第2端末4Bの端末制御部48は、図6に示した認証処理のステップS1からステップS7を実行し(ステップS39)、第2ユーザが第2ユーザ本人であると認証されると、ファイル取得処理を実行する(ステップS40)。また、第2端末4Bの端末制御部48は、図6に示した認証処理のステップS1からステップS6を実行して(ステップS39)、第2ユーザが第2ユーザ本人であると判定できなかった場合には、ステップS8を実行して図4Bに示した表示部49に、ユーザが異なる旨を表示させる。ファイル取得処理については、図19に示すフローチャートを参照しつつ、以下に説明する。
第2端末4Bは、認証用サーバ1に第1ユーザの作成した情報を含むユーザの預託ファイルの取得を要求する(ステップS151)。図2に示した認証用サーバ1のサーバ制御部11は、第2端末4Bに第2ユーザの生体情報を要求する(ステップS152)。ここで、認証用サーバ1のサーバ記憶部12に記憶されている第2ユーザの生体情報は、図18のステップS145で第1端末4Aから受信したものである。そして、第1端末4Aから認証用サーバ1に送信した第2ユーザの生体情報は、図17に示したステップS129で第2端末4Bから第1端末4Aに送信した第2ユーザの顔画像である。このため、具体的には、ステップS152では、認証用サーバ1のサーバ制御部11は、第2端末4Bに第2ユーザの顔画像を要求する。
第2端末4Bの端末制御部48は、第2ユーザの顔画像を認証用サーバ1との共通鍵で暗号化し認証用サーバ1へ送信する(ステップS153)。ここで、端末制御部48が、第2ユーザの顔画像を暗号化する共通鍵は、図7Bの第2暗号鍵データベース479に示した認証用サーバ1との共通鍵KBである。
認証用サーバ1のサーバ制御部11は、サーバ記憶部12に保存した第1端末4Aから受信した第2ユーザの顔画像と、第2端末4Bから受信した第2ユーザの顔画像とに基づいて、第2ユーザを認証する(ステップS154)。サーバ制御部11は、第2ユーザが本人と認証できたか否かを判定する(ステップS155)。サーバ制御部11は、第2ユーザが本人と認証できた場合(ステップS155;YES)、サーバ制御部11は、ユーザの預託ファイルの利用開始日時を経過したか否かを判定する(ステップS156)。また、サーバ制御部11は、第2ユーザが本人と認証できなかった場合(ステップS155;NO)、それ以降の処理をスキップする。これにより、第1ユーザが第1端末4Aを用いて認証用サーバ1に預けたユーザの預託ファイルを、第三者である第2ユーザに開示しないようにすることができる。
ユーザの預託ファイルの利用開始日時を経過した場合(ステップS156;YES)、認証用サーバ1のサーバ制御部11は、図18に示したステップS145で第1端末4Aから受信した情報を、第2端末4Bとの共通鍵KBで暗号化する。また、ユーザの預託ファイルの利用開始日時を経過していない場合(ステップS156;NO)、認証用サーバ1のサーバ制御部11は、これ以降の処理をスキップする。これにより、第1ユーザが第1端末4Aを用いて認証用サーバ1に預けたユーザの預託ファイルを、第三者である第2ユーザに開示しないようにすることができる。
認証用サーバ1のサーバ制御部11は、図18に示したステップS145で第1端末4Aから受信した、暗号化された情報を第2端末4Bへ送信する(ステップS157)。この暗号化された情報には、図2に示したサーバ記憶部12に保存された第1クラウド3A及び第2クラウド3Bへアクセスするための情報と、ファイル管理テーブル475のデータと、ファイル分割用暗号鍵とが含まれている。
第2端末4Bの端末制御部48は、認証用サーバ1から受信した情報を、まず、認証用サーバ1との共通鍵で復号化する。ここで復号化するための共通鍵は、図4Bに示した第2端末4Bの端末記憶部47の第2暗号鍵データベース479に記憶された共通鍵KBである。続いて、第2端末4Bの端末制御部48は、認証用サーバ1との共通鍵KBで復号化した情報を、第1端末4Aとの秘密鍵で複合化する。ここで復号化するための秘密鍵は、図4Bに示した第2端末4Bの端末記憶部47の第2暗号鍵データベース479に記憶された秘密鍵Kf1である(ステップS158)。
第2端末4Bの端末制御部48は、復号化した情報を用いて、ファイルの復元処理を実行する(ステップS159)。ファイルの復元処理については、図14に示したステップS21からステップS25を実行する。第2端末4Bの端末制御部48は、復元したユーザの預託ファイルを、図4Bに示した第2端末4Bの端末記憶部47に保存する(ステップS160)。
ここで、図15に戻る。第1端末4Aの端末制御部は、図4Bに示した端末記憶部47のファイル預託処理プログラム478を終了する。認証用サーバ1のサーバ制御部11は、図2に示したユーザ認証処理プログラム110を終了する。第2端末4Bの端末制御部は、図4Bに示した端末記憶部47のファイル取得処理プログラム480を終了する。
以上のとおり、実施の形態1では、情報処理システム100において、第1ユーザが作成したファイルを、第1端末を使用して複数のクラウドに分散して保存し、第1ユーザにファイルの閲覧を許可された第2ユーザが、認証用サーバで本人と認証された場合に、第2端末を使用して複数のクラウドに分散して保存されたファイルを取得し、復元して使用することができる。これにより、第1ユーザの作成した情報を含むファイルを、第1ユーザに許可された、すなわち権限のある第2ユーザが取得して使用することができる。
また、実施の形態1では、情報処理システム100において、第1ユーザが作成したファイルを複数のクラウドに分散して保存した後、各クラウドに保存する分割ファイルを暗号化するためのファイル分割用暗号鍵を、ファイル分割用暗号鍵テーブル477の末尾に追記している。これにより、ファイルを複数のクラウドに分散させた分散時期毎に、ファイル分割用暗号鍵を異ならせることができる。このため、第1ユーザは、自身の作成した情報の含まれるファイルを復元し、使用する許可を、分散時期毎に異なるユーザに与えることができる。これにより、第1ユーザは、第三者であるユーザ毎に必要な情報を共有することができる。
(実施の形態2)
実施の形態2に係る情報処理システム100では、上記実施の形態1に係る情報処理システム100で実行される処理に加え、第1ユーザが図1に示したクラウド3にユーザの預託ファイルを預けた後、ユーザの預託ファイルの内容を更新することができるシステムである。これにより、例えば、第1ユーザがユーザの預託ファイルをクラウド3に預けた後で、ユーザの預託ファイルに第2ユーザに見せたく無い情報が含まれているに気がついた場合、第2ユーザに開示する情報に追加の内容を加えたい場合等に、対応することができる。
実施の形態2に係る情報処理システム100において実行される処理の流れを、図20及び図21に示すフローチャートを参照しつつ、以下に説明する。図20に示すフローチャートは、実施の形態2に係る情報処理システム100において実行される処理の全体構成を示すものである。図20に示す各処理は、図2に示した認証用サーバ1のユーザ認証処理プログラム110と、図4Bに示した第1端末4Aのファイル預託処理プログラム478と、図4Bに示した第2端末4Bのファイル取得処理プログラム480とを、認証用サーバ1と、第1端末4Aと、第2端末4Bとがそれぞれ実行することにより実現される処理である。
第1端末4Aのファイル預託処理プログラム478は、第1ユーザにより、図4Bに示した第1端末4Aの表示部49の画面上に表示されたファイル預託処理プログラム478に関連付けられているアイコンを、操作入力部44からを選択されることにより実行される。また、第2端末4Bのファイル取得処理プログラム480は、第2ユーザにより、図4Bに示した第2端末4Bの表示部49の画面上に表示されたファイル取得処理プログラム480に関連付けられているアイコンを、操作入力部44から選択することにより実行される。認証用サーバ1のユーザ認証処理プログラム110は、図2に示した認証用サーバ1のサーバ制御部11により、第1端末4Aから、第1ユーザの名称及び登録に必要な情報を受信することにより実行される。
ここで、図20に示したフローチャートのステップS51からステップS58は、上記実施の形態1で説明した図15に示したフローチャートのステップS31からステップS38と同様の処理である。ステップS58のファイル預け処理が終了すると、第1端末4Aの端末制御部48は、現在第1端末4Aを使用している第1ユーザが正しいか認証する(ステップS59)。この認証は、図6に示した認証処理により行われる。端末制御部48は、図6に示した認証処理のステップS1からステップS7を実行し、第1ユーザが第1ユーザ本人であると認証されると、ファイル更新処理を実行する(ステップS60)。ファイル更新処理については、図21に示すフローチャートを参照して説明する。また、第1端末4Aの端末制御部48は、図6に示した認証処理のステップS1からステップS6を実行して、第1ユーザが第1ユーザ本人であると判定できなかった場合には、ステップS8を実行して図4Bに示した表示部49に、ユーザが異なる旨を表示させる。
第1端末4Aの端末制御部48は、図21に示すファイル更新処理のファイル復元処理を実行する(ステップS201)。ファイルの復元処理については、図14に示したステップS21からステップS25を実行する。第1端末4Aの端末制御部48は、復元したユーザの預託ファイルを、図4Bに示した第1端末4Aの端末記憶部47に保存する。
第1ユーザは、第1端末4Aの端末制御部48により、端末記憶部47に保存されたユーザの預託ファイルの内容を更新し、上書き保存する(ステップS202)。第1ユーザは、第1端末4Aの端末制御部48に、ユーザの預託ファイルを図9に示すように、コンピュータのデスクアクセスの最小単位であるクラスタに分割させる(ステップS203)。クラスタは、論理アドレスで管理される。以下では、この論理アドレスを論理アドレスLkと称する。
第1端末4Aの端末制御部48は、端末記憶部47に保存されたファイル管理テーブル475から、クラウド3に保存されているユーザの預託ファイルを構成するクラスタの先頭クラスタの論理アドレスを求める(ステップS204)。第1端末4Aの端末制御部48は、ファイル管理テーブル475から、求めた先頭クラスタの論理アドレスに対応するファイル分割用暗号鍵と、先頭クラスタを格納した領域の物理アドレスと、先頭クラスタを格納した領域の物理アドレスを備えるクラウド3を示す番号とを取得する(ステップS205)。
第1端末4Aの端末制御部48は、ステップS203でクラスタに分割したユーザの預託ファイルの先頭クラスタを、取得したファイル分割用暗号鍵で暗号化する。続いて、第1端末4Aの端末制御部48は、ステップS205で取得した物理アドレスと、その物理アドレスを備えるクラウド3を示す番号とに基づいて、格納先のクラウド3及び物理アドレスを定め、暗号化した先頭クラスタを保存する(ステップS206)。
第1端末4Aの端末制御部48は、端末記憶部47のファイル管理テーブル475に保存されている先頭クラスタの論理アドレスを、ステップS203でクラスタに分割したユーザの預託ファイルの先頭クラスタの論理アドレスLkで上書き、更新する(ステップS207)。第1端末4Aの端末制御部48は、ステップS203で分割した全てのクラスタの保存が終了したか否かを判別する(ステップS208)。端末制御部48は、全てのクラスタの保存が終了していない場合(ステップS208;NO)、論理アドレスLkに1を足す(ステップS209)。
続いて、第1端末4Aの端末制御部48は、ステップS205に戻り、次のクラスタを処理する。また、ステップS208で、全てのクラスタの保存が終了したと判別された場合(ステップS208;YES)、第1端末4Aの端末制御部48は、ファイル更新処理を終了する。
図20に戻る。第2ユーザは、第1ユーザから共有してもらったユーザの預託ファイルをクラウド3から取得したい場合、第2端末4Bの端末制御部48により、ステップS61の認証処理及びステップS62のファイル取得処理を実行する。なお、ステップS61の認証処理及びステップS62のファイル取得処理は、図15に示したフローチャートのステップS39及びステップS40と同様の処理である。
以上のとおり、実施の形態2では、上記実施の形態1に係る情報処理システム100で実行される処理に加え、第1ユーザが図1に示したクラウド3にユーザの預託ファイルを預けた後、ユーザの預託ファイルの内容を更新することができる。これにより、例えば、第1ユーザがユーザの預託ファイルをクラウド3に預けた後で、ユーザの預託ファイルに第2ユーザに見せたく無い情報が含まれていることに気がついた場合、第2ユーザに開示する情報に追加の内容を加えたい場合等に、対応することができる。
(実施の形態3)
実施の形態3に係る情報処理システム100では、上記実施の形態1に係る情報処理システム100で実行される処理に加え、第1ユーザが図1に示したクラウド3にユーザの預託ファイルを預けた後、第2ユーザに開示する情報を変更することができるシステムである。これにより、例えば、第1ユーザがユーザの預託ファイルをクラウド3に預けた後で、ユーザの預託ファイルを第2ユーザに利用開始させる利用開始日時を変更したい場合、クラウド3へのアクセス情報、第2ユーザの生体情報等を間違えたことに気が付いた場合等に、対応することができる。
実施の形態3に係る情報処理システム100において実行される処理の流れを、図22及び図23に示すフローチャートを参照しつつ、以下に説明する。図22に示すフローチャートは、実施の形態3に係る情報処理システム100において実行される処理の全体構成を示すものである。図22に示す各処理は、図2に示した認証用サーバ1のユーザ認証処理プログラム110と、図4Bに示した第1端末4Aのファイル預託処理プログラム478と、図4Bに示した第2端末4Bのファイル取得処理プログラム480とを、認証用サーバ1と、第1端末4Aと、第2端末4Bとがそれぞれ実行することにより実現される処理である。
第1端末4Aのファイル預託処理プログラム478は、第1ユーザにより、図4Bに示した第1端末4Aの表示部49の画面上に表示されたファイル預託処理プログラム478に関連付けられているアイコンを、操作入力部44からを選択されることにより実行される。また、第2端末4Bのファイル取得処理プログラム480は、第2ユーザにより、図4Bに示した第2端末4Bの表示部49の画面上に表示されたファイル取得処理プログラム480に関連付けられているアイコンを、操作入力部44から選択することにより実行される。認証用サーバ1のユーザ認証処理プログラム110は、図2に示した認証用サーバ1のサーバ制御部11により、第1端末4Aから、第1ユーザの名称及び登録に必要な情報を受信することにより実行される。
ここで、図22に示したフローチャートのステップS71からステップS78は、上記実施の形態1で説明した図15に示したフローチャートのステップS31からステップS38と同様の処理である。ステップS78のファイル預け処理が終了すると、第1端末4Aの端末制御部48は、現在第1端末4Aを使用している第1ユーザが正しいか認証する(ステップS79)。この認証は、図6に示した認証処理により行われる。端末制御部48は、図6に示した認証処理のステップS1からステップS7を実行し、第1ユーザが第1ユーザ本人であると認証されると、開示情報変更処理を実行する(ステップS80)。開示情報子変更処理については、図23に示すフローチャートを参照して説明する。また、第1端末4Aの端末制御部48は、図6に示した認証処理のステップS1からステップS6を実行して、第1ユーザが第1ユーザ本人であると判定できなかった場合には、ステップS8を実行して図4Bに示した表示部49に、ユーザが異なる旨を表示させる。
第1端末4Aの端末制御部48は、図23に示す開示情報変更処理を実行すると、まず、認証用サーバ1に預けている、暗号化した情報及びその情報の利用開始日時を要求する(ステップS301)。この暗号化した情報は、第1クラウド3A及び第2クラウド3Bへアクセスするための情報と、図4Bに示したファイル管理テーブル475のデータと、ファイル分割用暗号鍵とを、図7Aに示した第1端末4Aと第2端末4Bとの公開鍵Kf2で暗号化したものである。
認証用サーバ1のサーバ制御部11は、第1端末4Aに対して、第1ユーザを正しいユーザとして認証するためのユーザ認証用の情報を要求する(ステップS302)。ここでは、ユーザ認証用の情報は、認証用サーバ1に第1ユーザを登録した際に使用した第1ユーザの名称及び登録に必要な情報である。
第1端末4Aの端末制御部48は、認証用サーバ1に第1ユーザを登録した際に使用した第1ユーザの名称及び登録に必要な情報を、ユーザ認証用の情報として認証用サーバ1に送信する(ステップS303)。認証用サーバ1のサーバ制御部11は、第1ユーザを本人であると認証できた場合(ステップS304;YES)、第1端末4Aから要求されている暗号化した情報及びその情報の利用開始日時を、第1端末4Aに送信する(ステップS305)。また、認証用サーバ1のサーバ制御部11は、第1ユーザを本人であると認証できなかった場合(ステップS304;NO)、その後の処理をスキップし、図22へ戻る。
第1端末4Aの端末制御部48は、要求した暗号化した情報及びその情報の利用開始日時を、認証用サーバ1から受信する(ステップS306)。第1ユーザは、第1端末4Aの端末制御部48により、受信した暗号化した情報及びその情報の利用開始日時を変更する(ステップS307)。例えば、暗号化した情報を変更する場合、第1ユーザは、第1端末4Aの端末制御部48により、暗号化した情報を第1端末4A及び第2端末4Bの公開鍵Kf2で複合し、第1クラウド3A及び第2クラウド3Bへアクセスするための情報、図4Bに示したファイル管理テーブル475のデータ等を変更する。そして、第1ユーザは、第1端末4Aの端末制御部48により、変更した情報を第1端末4A及び第2端末4Bの公開鍵Kf2で暗号化する。また、暗号化した情報の利用開始日時を変更する場合、第1ユーザは、第1端末4Aの端末制御部48により、利用開始日時を変更する。
第1端末4Aの端末制御部48は、変更した暗号化した情報及びその情報の利用開始日時を認証用サーバ1に送信する(ステップS308)。認証用サーバ1のサーバ制御部11は、変更した暗号化した情報及びその情報の利用開始日時を受信する(ステップS309)。認証用サーバ1のサーバ制御部11は、受信した暗号化した情報及びその情報の利用開始日時を図2に示したサーバ記憶部12に保存する(ステップS310)。
図22に戻る。第2ユーザは、第1ユーザから共有してもらったユーザの預託ファイルをクラウド3から取得したい場合、第2端末4Bの端末制御部48により、ステップS81の認証処理及びステップS82のファイル取得処理を実行する。なお、ステップS81の認証処理及びステップS82のファイル取得処理は、図15に示したフローチャートのステップS39及びステップS40と同様の処理である。
以上の通り、実施の形態3では、上記実施の形態1に係る情報処理システム100で実行される処理に加え、第1ユーザが図1に示したクラウド3にユーザの預託ファイルを預けた後、第2ユーザに開示する情報を変更することができるシステムである。これにより、例えば、第1ユーザがユーザの預託ファイルをクラウド3に預けた後で、ユーザの預託ファイルを第2ユーザに利用開始させる利用開始日時を変更したい場合、クラウド3へのアクセス情報、第2ユーザの生体情報等を間違えたことに気か付いた場合等に、対応することができる。
(実施の形態4)
実施の形態4に係る情報処理システム100では、上記実施の形態1から3に係る情報処理システム100で実行される処理とは異なり、端末4におけるユーザの認証処理と端末4と認証用サーバ1との間で行われる公開鍵認証とを連携することにより、ユーザの認証を行う。これにより、ユーザの生体情報を認証用サーバ1に送信しなくともユーザを特定することができるので、ユーザの生体情報の漏洩を防止しつつユーザの認証をすることができる。
実施の形態4に係る情報処理システム100において実行される処理について、図24Aから図34を参照しつつ、以下に説明する。実施の形態4では、実施の形態1から3で用いた、図7Aに示した第1暗号鍵データベース476の代わりに図24Aに示す第1暗号鍵データベース476Aを、図7Bに示した第2暗号鍵データベース479の代わりに図24Bに示す第2暗号鍵データベース479Aを、図8に示した暗号鍵情報データベース120の代わりに図25に示す暗号鍵情報データベース120Aを用いる。
まず、第1暗号鍵データベース476Aに書き込まれている暗号鍵について説明する。図24Aに示すのは第1暗号鍵データベース476Aのテーブルの一例である。このテーブルには、項目として鍵を用いる対象の名称と、秘密鍵と、公開鍵と、共通鍵とが設定されている。この秘密鍵と公開鍵とはペア鍵となる鍵である。鍵を用いる対象の名称の「認証用サーバ」に対応付けられた秘密鍵、公開鍵及び共通鍵は、第1ユーザの用いる第1端末4Aと認証用サーバ1との間で用いる鍵である。この秘密鍵と公開鍵とは、第1端末4Aで生成された鍵である。また、共通鍵は、認証用サーバ1で生成された鍵である。
鍵を用いる対象の名称の「第2端末」に対応付けられた公開鍵及び共通鍵は、第1ユーザの用いる第1端末4Aと第2ユーザの用いる第2端末4Bとの間で用いる鍵である。この公開鍵は、第2端末4Bで生成された鍵である。また、共通鍵は、第1端末4Aで生成された鍵である。
例えば、図24Aにおいて、鍵を用いる対象の名称である「認証用サーバ」には、秘密鍵としてKp1、公開鍵としてKp2、共通鍵としてKCが記憶されている。また、鍵を用いる対象の名称である「第2端末」には、公開鍵としてKh2、共通鍵としてKEが記憶されている。
続いて、第2暗号鍵データベース479Aに書き込まれている暗号鍵について説明する。図24Bに示すのは、第2暗号鍵データベース479Aのテーブルの一例である。このテーブルには、項目として鍵を用いる対象の名称と、秘密鍵と、公開鍵と、共通鍵とが設定されている。この秘密鍵と公開鍵とはペア鍵となる鍵である。鍵を用いる対象の名称の「認証用サーバ」に対応付けられた秘密鍵、公開鍵及び共通鍵は、第2ユーザの用いる第2端末4Bと認証用サーバ1との間で用いる鍵である。この秘密鍵と公開鍵とは、第2端末4Bで生成された鍵である。また、共通鍵は、認証用サーバ1で生成された鍵である。
鍵を用いる対象の名称の「第1端末」に対応付けられた秘密鍵、公開鍵及び共通鍵は、第1ユーザの用いる第1端末4Aと第2ユーザの用いる第2端末4Bとの間で用いる鍵である。この秘密鍵と公開鍵とは、第2端末4Bで生成された鍵である。また、共通鍵は、第1端末4Aで生成された鍵である。
例えば、図24Bにおいて、鍵を用いる対象の名称である「認証用サーバ」には、秘密鍵にKg1、公開鍵にKg2、共通鍵にKDが記憶されている。また、鍵を用いる対象の名称である「第1端末」には、秘密鍵にKh1、公開鍵にKh2、共通鍵にKEが記憶されている。
次に、暗号鍵情報データベース120Aに書き込まれている暗号鍵について説明する。図25に示すのは、暗号鍵情報データベース120Aのテーブルの一例を示す。このテーブルには、項目として鍵を用いる対象の名称と、公開鍵と、共通鍵とが設定されている。この公開鍵は、秘密鍵とペアになる鍵である。鍵を用いる対象の名称の「第1端末」に対応付けられた公開鍵及び共通鍵は、第1ユーザの用いる第1端末4Aと認証用サーバ1との間で用いる鍵である。この公開鍵は、第1端末4Aで生成された鍵である。また、共通鍵は、認証用サーバ1で生成された鍵である。
鍵を用いる対象の名称の「第2端末」に対応付けられた公開鍵及び共通鍵は、第2ユーザの用いる第2端末4Bと認証用サーバ1との間で用いる鍵である。この公開鍵は、第2端末4Bで生成された鍵である。また、共通鍵は、認証用サーバ1で生成された鍵である。
例えば、図25において、鍵を用いる対象の名称である「第1端末」には、公開鍵にKp2、共通鍵にKCが記憶されている。また、鍵を用いる対象の名称である「第2端末」には、公開鍵にKg2、共通鍵にKDが記憶されている。
次に、本実施の形態4に係る情報処理システム100において実行される処理の流れを、図26から図35に示すフローチャートを参照しつつ、以下に説明する。図26に示すフローチャートは、情報処理システム100において実行される処理の全体構成を示すものである。図26に示す各処理は、図2に示した認証用サーバ1のユーザ認証処理プログラム110と、図4Bに示した第1端末4Aのファイル預託処理プログラム478と、図4Bに示した第2端末4Bのファイル取得処理プログラム480とを、認証用サーバ1と、第1端末4Aと、第2端末4Bとがそれぞれ実行することにより実現される処理である。
まず、第1ユーザは、ファイル預託・更新処理を実行し、自らの作成したユーザの預託ファイルを、図1に示したクラウド3に記憶させる(ステップS83)。ファイル預託・更新処理の詳細については、図27を参照しつつ説明する。
第1端末4Aを使用する第1ユーザを、図6に示した認証処理を実行することにより、第1ユーザ本人と認証する(ステップS321)。第1端末4Aを使用する第1ユーザが第1ユーザ本人と認証されると、第1ユーザは、図4Bに示した第1端末4Aの表示部49の画面上に表示されたファイル預託処理プログラム478に関連付けられているアイコンを、操作入力部44からを選択する。第1ユーザは、表示部49の画面上に表示されたログイン画面で、ユーザ名、パスワード等を入力することにより、クラウド3にログインする(ステップS322)。ログインに成功すると、クラウド3から第1端末4Aへ、ログインが成功した旨が送信される(ステップS323)。
第1ユーザは、表示部49の画面上に表示された操作メニューから、第1ユーザの作成したユーザの預託ファイルの格納または更新を選択する。第1ユーザが、操作メニューからユーザの預託ファイルの格納を選択した場合(ステップS324;YES)、図13に示したファイル格納処理を実行し、クラウド3にユーザの預託ファイルを分散させる(ステップS325)。第1ユーザが、操作メニューからユーザの預託ファイルの格納を選択せず(ステップS324;NO)、預託ファイルの更新を選択した場合(ステップS326;YES)、図21に示したファイル更新処理を実行し、クラウド3に預けられているユーザの預託ファイルの内容を更新する(ステップS327)。預託ファイルの更新を選択されなかった場合(ステップS326;NO)、または、ステップS327のファイル更新処理が終了した場合、第1ユーザは、第1端末4Aの表示部49の画面上に表示された操作メニューから、ログアウトを選択し、第1端末4Aをクラウド3からログアウトさせる(ステップS328)。
図26に戻る。第1端末4Aにおいて図6に示した認証処理が実行され、第1端末4Aを使用しているのが第1ユーザ本人と認証されると(ステップS84)、第1端末4Aの端末制御部48は、第1ユーザの登録処理を行う(ステップS85)。第1ユーザの登録処理については、図28に示すフローチャートを参照して説明する。第1端末4Aの端末制御部48は、認証用サーバ1にアクセスする(ステップS330)。認証用サーバ1のサーバ制御部11は、第1端末4Aの端末制御部48に自身の表示部49の画面上にログイン画面を表示させる(ステップS331)。第1ユーザは、表示部49の画面上に表示されたログイン画面から、第1ユーザのID、パスワードを入力する。第1端末4Aの端末制御部48は、第1ユーザから入力されたID、パスワードを認証用サーバ1に送信する(ステップS332)。
認証用サーバ1のサーバ制御部11は、第1端末4Aから受信したID、パスワードが、自身に予め登録されている第1ユーザのものと一致するか否か判定する(ステップS333)。第1端末4Aから受信したID、パスワードが、第1ユーザのものである場合(ステップS333;YES)、認証用サーバ1のサーバ制御部11は、チャレンジデータ、認証用プロキシ、アプリケーションID等、第1ユーザを登録するために必要なユーザ登録用情報を生成し、第1端末4Aへ送信する(ステップS334)。また、第1端末4Aから受信したID、パスワードが、第1ユーザのものでない場合(ステップS333;NO)、認証用サーバ1のサーバ制御部11は、登録失敗の旨を第1端末4Aに送信する(ステップS344)。
第1端末4Aにおいて図6に示した認証処理が実行され、第1端末4Aを使用しているのが第1ユーザ本人と認証されると(ステップS335)、第1端末4Aの端末制御部48は、認証用サーバ1との間で用いる秘密鍵と公開鍵とのペア鍵を生成する。ここで、第1端末4Aの端末制御部48の生成する鍵は、例えば、秘密鍵をKp1とし、公開鍵をKp2とする。第1端末4Aの端末制御部48は、生成したペア鍵を、図24Aに示した第1暗号鍵データベース476Aのテーブルに、「認証用サーバ」の名称と対応付けて書き込む。続いて、第1端末4Aの端末制御部48は、生成したペア鍵の公開鍵を認証用サーバ1へ送信する(ステップS336)。
第1端末4Aの端末制御部48は、ステップS334で認証用サーバ1から送信されたユーザ登録用情報を秘密鍵で署名し、認証用サーバ1へ送信する(ステップS337)。認証用サーバ1のサーバ制御部11は、第1端末4Aから送信されたユーザ登録用情報と秘密鍵による署名とが正しいか検証する(ステップS338)。具体的には、認証用サーバ1のサーバ制御部11は、自身が第1端末4Aへ送信したユーザ登録用情報と第1端末4Aから受信したユーザ登録用情報とを比較し、一致するか否かを判定する。また、認証用サーバ1のサーバ制御部11は、秘密鍵による署名を、ステップS336で第1端末4Aから送信された公開鍵により検証する。
第1端末4Aから送信されたユーザ登録用情報と秘密鍵による署名とが正しい場合(ステップS339;YES)、認証用サーバ1のサーバ制御部11は、図25に示した暗号鍵情報データベース120Aのテーブルに、「第1端末」の名称に対応付けて、第1端末4Aから送信された公開鍵を書き込み保存する(ステップS340)。また、第1端末4Aから送信されたユーザ登録用情報と秘密鍵による署名と正しいものではない場合(ステップS339;NO)、認証用サーバ1のサーバ制御部11は、登録失敗の旨を第1端末4Aに送信する(ステップS344)。
認証用サーバ1のサーバ制御部11は、第1ユーザとの間で用いる共通鍵を生成する(ステップS341)。ここで、サーバ制御部11の生成する共通鍵は、例えば、KCとする。サーバ制御部11は、生成した共通鍵を、図25に示した暗号鍵情報データベース120Aのテーブルに、「第1端末」の名称と対応付けて書き込み保存する。続いて、サーバ制御部11は、生成した共通鍵を第1端末4Aから送信された公開鍵により暗号化し、第1端末4Aに送信する(ステップS342)。第1端末4Aの端末制御部48は、認証用サーバ1から送信された共通鍵を、自身の生成した秘密鍵で復号化し、図24Aに示した第1暗号鍵データベース476Aに、「認証用サーバ」の名称と対応付けて書き込み保存する(ステップS343)。
図26に戻る。第1端末4Aの端末制御部48は、第1ユーザの認証処理を実行する(ステップS86)。第1ユーザの認証処理については、図29に示すフローチャートを参照しつつ説明する。第1端末4Aの端末制御部48は、認証用サーバ1にログインを要求する(ステップS350)。認証用サーバ1のサーバ制御部11は、チャレンジデータ、認証用プロキシ、アプリケーションID等、第1ユーザを認証するために必要な認証用情報を生成し、第1端末4Aへ送信する(ステップS351)。
第1端末4Aにおいて図6に示した認証処理が実行され、第1端末4Aを使用しているのが第1ユーザ本人と認証されると(ステップS352)、第1端末4Aの端末制御部48は、チャレンジデータのハッシュ値、認証用プロキシのサーバアドレス、アプリケーションID等の認証応答情報を生成する。第1端末4Aの端末制御部48は、生成した認証応答情報を秘密鍵で署名する(ステップS353)。ここで署名に使う秘密鍵は、図24Aに示した第1暗号鍵データベース476Aのテーブルに書き込まれた「認証用サーバ」の名称に対応付けられた秘密鍵Kp1である。第1端末4Aの端末制御部48は、秘密鍵で署名した認証応答情報を認証用サーバ1へ送信する(ステップS354)。
認証用サーバ1のサーバ制御部11は、第1端末4Aから送信された認証応答情報と秘密鍵による署名とが正しいか検証する(ステップS355)。具体的には、認証用サーバ1のサーバ制御部11は、自身が第1端末4Aへ送信した認証用情報と第1端末4Aから受信した認証応答情報とを比較し、正しいか否かを判定する(ステップS356)。また、認証用サーバ1のサーバ制御部11は、秘密鍵による署名を、図28のフローチャートに示したステップS336で第1端末4Aから送信された公開鍵により検証する。
第1端末4Aから送信された認証応答情報と秘密鍵による署名とが正しい場合(ステップS356;YES)、サーバ制御部11は、第1端末4Aのログインを許可する(ステップS357)。続いて、サーバ制御部11は、第1端末4Aにログイン成功の旨を送信する(ステップS358)。また、第1端末4Aから送信された認証応答情報と秘密鍵による署名とが正しいものではなかった場合(ステップS356;NO)、サーバ制御部11は、第1端末4Aにログイン失敗の旨を送信する(ステップS359)。第1端末4Aの端末制御部48は、認証用サーバ1から送信された情報に基づいて、表示部49の画面上にログイン成功またはログイン失敗の旨を表示させる(ステップS360)。
図26に戻る。第2端末4Bにおいて図6に示した認証処理が実行され、第2端末4Bを使用しているのが第2ユーザ本人と認証されると(ステップS87)、第2端末4Bの端末制御部48は、第2ユーザの登録処理を行う(ステップS88)。第2ユーザの登録処理については、図30に示すフローチャートを参照して説明する。第2端末4Bの端末制御部48は、認証用サーバ1にアクセスする(ステップS361)。認証用サーバ1のサーバ制御部11は、第2端末4Bの端末制御部48に自身の表示部49の画面上にログイン画面を表示させる(ステップS362)。第2ユーザは、表示部49の画面上に表示されたログイン画面から、第2ユーザのID、パスワードを入力する。第2端末4Bの端末制御部48は、第2ユーザから入力されたID、パスワードを認証用サーバ1に送信する(ステップS363)。
認証用サーバ1のサーバ制御部11は、第2端末4Bから受信したID、パスワードが、自身に予め登録されている第2ユーザのものと一致するか否か判定する(ステップS364)。第2端末4Bから受信したID、パスワードが、第2ユーザのものである場合(ステップS364;YES)、認証用サーバ1のサーバ制御部11は、チャレンジデータ、認証用プロキシ、アプリケーションID等、第2ユーザを登録するために必要なユーザ登録用情報を生成し、第2端末4Bへ送信する(ステップS365)。また、第2端末4Bから受信したID、パスワードが、第2ユーザのものでない場合(ステップS364;NO)、認証用サーバ1のサーバ制御部11は、登録失敗の旨を第2端末4Bに送信する(ステップS375)。
第2端末4Bにおいて図6に示した認証処理が実行され、第2端末4Bを使用しているのが第2ユーザ本人と認証されると(ステップS366)、第2端末4Bの端末制御部48は、認証用サーバ1との間で用いる秘密鍵と公開鍵とのペア鍵を生成する。ここで、第2端末4Bの端末制御部48の生成する鍵は、例えば、秘密鍵をKg1とし、公開鍵をKg2とする。第1端末4Aの端末制御部48は、生成したペア鍵を、図24Bに示した第2暗号鍵データベース479Aのテーブルに、「認証用サーバ」の名称と対応付けて書き込む。続いて、第2端末4Bの端末制御部48は、生成したペア鍵の公開鍵を認証用サーバ1へ送信する(ステップS367)。
第2端末4Bの端末制御部48は、ステップS365で認証用サーバ1から送信されたユーザ登録用情報を秘密鍵で署名し、認証用サーバ1へ送信する(ステップS368)。認証用サーバ1のサーバ制御部11は、第2端末4Bから送信されたユーザ登録用情報と秘密鍵による署名とが正しいか検証する(ステップS369)。具体的には、認証用サーバ1のサーバ制御部11は、自身が第2端末4Bへ送信したユーザ登録用情報と第2端末4Bから受信したユーザ登録用情報とを比較し、一致するか否かを判定する。また、認証用サーバ1のサーバ制御部11は、秘密鍵による署名を、図30のフローチャートに示したステップS367で第2端末4Bから送信された公開鍵により検証する。
第2端末4Bから送信されたユーザ登録用情報と秘密鍵による署名とが正しい場合(ステップS370;YES)、認証用サーバ1のサーバ制御部11は、図25に示した暗号鍵情報データベース120Aのテーブルに、「第2端末」の名称に対応付けて、第2端末4Bから送信された公開鍵を書き込み保存する(ステップS371)。また、第2端末4Bから送信されたユーザ登録用情報と秘密鍵による署名と正しいものではない場合(ステップS370;NO)、認証用サーバ1のサーバ制御部11は、登録失敗の旨を第2端末4Bに送信する(ステップS375)。
認証用サーバ1のサーバ制御部11は、第2ユーザとの間で用いる共通鍵を生成する(ステップS372)。ここで、サーバ制御部11の生成する共通鍵は、例えば、KDとする。サーバ制御部11は、生成した共通鍵を、図25に示した暗号鍵情報データベース120Aのテーブルに、「第2端末」の名称と対応付けて書き込み保存する。続いて、サーバ制御部11は、生成した共通鍵を第2端末4Bから送信された公開鍵により暗号化し、第2端末4Bに送信する(ステップS373)。第2端末4Bの端末制御部48は、認証用サーバ1から送信された共通鍵を、自身の生成した秘密鍵で復号化し、図24Bに示した第2暗号鍵データベース479Aに、「認証用サーバ」の名称と対応付けて書き込み保存する(ステップS374)。
図26に戻る。図6に示した認証処理により第1端末4Aを使用しているのが第1ユーザ本人と認証される(ステップS89)と共に、図6に示した認証処理により第2端末4Bを使用しているのが第2ユーザ本人と認証されると(ステップS90)、第1端末4A及び第2端末4Bの端末制御部48は、生体情報取得処理を行う(ステップS91)。この生体情報取得処理については、図31に示すフローチャートを参照しつつ、以下に説明する。
第1端末4Aの端末制御部48は、第2端末4Bに公開鍵を要求する(ステップS380)。第2端末4Bの端末制御部48は、秘密鍵と公開鍵とのペア鍵を生成する。ここで、第2端末4Bの端末制御部48の生成するペア鍵は、例えば、秘密鍵をKh1とし、公開鍵をKh2とする。第2端末4Bの端末制御部48は、図24Bに示した第2暗号鍵データベース479Aのテーブルに、鍵を用いる対象の名称とペア鍵とを対応付けて書き込む。例えば、鍵を用いる対象の名称に「第1端末」、秘密鍵の項目に「Kh1」、公開鍵の項目に「Kh2」と書き込む。第2端末4Bの端末制御部48は、書き込んだ第2暗号鍵データベース479を図4Bに示した第2端末4Bの端末記憶部47に保存する。続いて、第2端末4Bの端末制御部48は、公開鍵Kh2を第1端末4Aに送信する(ステップS381)。
第1端末4Aの端末制御部48は、第2端末4Bから公開鍵Kh2を受信すると、図24Aに示した第1暗号鍵データベース476Aのテーブルに保存する(ステップS382)。例えば、図24Aに示した第1暗号鍵データベース476のテーブルに、鍵を用いる対象の名称と公開鍵Kh2とを対応付けて書き込む。例えば、鍵を用いる対象の名称に「第2端末」を、公開鍵の項目に「Kh2」を書き込む。
第1端末4Aの端末制御部48は、第2端末4Bとの間で用いる共通鍵を生成する(ステップS383)。第1端末4Aの端末制御部48は、生成した共通鍵と第1ユーザのユーザ名とを、ステップS381で第2端末4Bから送信された公開鍵により暗号化する(ステップS384)。ここで、第1端末4Aの端末制御部48の生成する共通鍵を、例えば、KEとする。第1端末4Aの端末制御部48は、生成した共通鍵を図24Aに示した第1暗号鍵データベース476のテーブルに、鍵を用いる対象の名称と共通鍵KEとを対応付けて書き込む。例えば、鍵を用いる対象の名称に「第2端末」を、公開鍵の項目に「KE」を書き込む。
第1端末4Aの端末制御部48は、第2ユーザを認証するためのチャレンジデータを生成する(ステップS385)。第1端末4Aの端末制御部48は、生成したチャレンジデータと、共通鍵と、端末名とを、第2端末4Bへ送信する(ステップS386)。第2端末4Bの端末制御部48は、第1端末4Aから受信した共通鍵と、端末名とを対応付けて保存する(ステップS387)。具体的には、図24Bに示した第2暗号鍵データベース479Aのテーブルに、鍵を用いる対象の名称として端末名を、共通鍵の項目に第1端末4Aから受信した共通鍵KEとを対応付けて書き込む。例えば、鍵を用いる対象の名称に「第1端末」を、公開鍵の項目に「KE」を書き込む。
第1端末4Aの端末制御部48は、第2端末4Bに対して、第2ユーザの生体情報を要求する(ステップS388)。第2端末4Bの端末制御部48は、第2ユーザの生体情報取得する(ステップS389)。ここで、第2端末4Bの端末制御部48の取得した第2ユーザの生体情報は、第2端末4Bに登録されている第2ユーザの生体情報でも、新しく取得した第2ユーザの生体情報でも、どちらでもよい。ここでは、第2ユーザの生体情報を、図4Aに示した第2端末4Bのインカメラ41Aで撮影した第2ユーザの顔画像とする。
第2端末4Bの端末制御部48は、取得した第2ユーザの生体情報を第1端末4Aから受信した共通鍵KEで暗号化する。続いて、ステップS386で第1端末4Aから取得したチャレンジデータのハッシュ値を、秘密鍵で署名する(ステップS390)。この秘密鍵は、図24Bの第2暗号鍵データベース479Aに、「第1端末」の名称と対応付けられて書き込まれている秘密鍵Kh1である。
第2端末4Bの端末制御部48は、共通鍵KEで暗号化した第2ユーザの生体情報と、秘密鍵Kh1で署名したチャレンジデータのハッシュ値とを、第1端末4Aへ送信する(ステップS391)。第1端末4Aの端末制御部48は、第2端末4Bから受信した、暗号化された第2ユーザの生体情報を共通鍵KEで復号化する。続いて、第1端末4Aの端末制御部48は、秘密鍵Kh1で署名したチャレンジデータのハッシュ値を検証する(ステップS392)。具体的には、第1端末4Aの端末制御部48は、図24Aに示した第1暗号鍵データベース476Aのテーブルに書き込まれた「第2端末」の名称に対応付けられた公開鍵Kh2で、秘密鍵Kh1による署名を検証する。続いて、第1端末4Aの端末制御部48は、自身が生成したチャレンジデータのハッシュ値と、第2端末4Bから受信したチャレンジデータのハッシュ値とが一致するか否か検証する。第1端末4Aの端末制御部48は、受信した第2ユーザの生体情報を、図4Bに示した端末記憶部47に保存する(ステップS393)。
ここで、図26に戻る。第1端末4Aにおいて図6に示した認証処理が実行され、第1端末4Aを使用しているのが第1ユーザ本人と認証されると(ステップS92)、第1端末4Aの端末制御部48は、開示設定情報の登録処理を行う(ステップS93)。開示設定情報の登録処理については、図32に示すフローチャートを参照して説明する。
第1端末4Aの端末制御部48は、ユーザの預託ファイルを分散させた第1クラウド3A及び第2クラウド3Bへアクセスするための情報と、図4Bに示したファイル管理テーブル475のデータと、ファイル分割用暗号鍵とをもとに、開示設定情報を生成する(ステップS393)。このファイル分割用暗号鍵は、第1クラウド3A及び第2クラウド3Bに分散して保存したユーザの預託ファイルを暗号化した鍵であり、図4Bに示した第1端末4Aの端末記憶部47のファイル分割用暗号鍵テーブル477に保存されている。例えば、図7Cに示したファイル分割用暗号鍵テーブル477のテーブルに書き込まれたKr1、Kr2である。
第1端末4Aの端末制御部48は、生成した開示設定情報のデータを、第2端末4Bとの共通鍵KEで暗号化する(ステップS394)。第1端末4Aの端末制御部48は、暗号化した開示設定情報のデータに、第2ユーザの生体情報、及び、ユーザの預託ファイルの利用開始日時を追加する(ステップS395)。この第2ユーザの生体情報は、図31に示したステップS391で第2端末4Bから送信されたものである。また、ユーザの預託ファイルの利用開始日時は、第2端末4Bによりクラウド3から預託ファイルを取得できるようになる日時である。
また、第1端末4Aの端末制御部48は、生成した開示設定情報のデータを、図24Aに示した第1暗号鍵データベース476Aに記憶された認証用サーバ1との共通鍵KCで暗号化する(ステップS396)。第1端末4Aの端末制御部48は、暗号化した開示設定情報のデータを、認証用サーバ1に送信する(ステップS397)。認証用サーバ1は、第1端末4Aの端末制御部48から受信した、暗号化したアクセス情報と、ユーザの預託ファイルの利用開始日時及び第2ユーザの生体情報とを受信する。認証用サーバ1は、受信した暗号化された開示設定情報のデータを、第1ユーザ及び第2ユーザに紐付け、図2に示した認証用サーバ1のサーバ記憶部12に保存する(ステップS398)。
第1端末4Aの端末制御部48は、ファイル分割用暗号鍵を新たに生成する。ここで生成される鍵を、例えば、Kr3、Kr4とする。第1端末4Aの端末制御部48は、端末記憶部47のファイル分割用暗号鍵テーブル477に保存されているファイル分割用暗号鍵Kr1、Kr2の次の行に、新たに生成したファイル分割用暗号鍵Kr3、Kr4を書き込み、保存する(ステップS399)。これにより、ユーザの預託ファイルを、第1クラウド3A及び第2クラウド3Bに分散させた分散時期毎に、ファイル分割用暗号鍵を異ならせることができる。このため、第1ユーザは、ユーザの預託ファイルを復元し使用する許可を、分散時期毎に異なるユーザに与えることができる。したがって、第1ユーザは、ユーザ毎に必要な情報を共有することができる。
図26に戻る。第1ユーザは、第2ユーザによるユーザの預託ファイルの利用開始日時前に、開示設定情報のデータを変更したい場合、ステップS95の開示設定情報の変更処理を実行する。第1端末4Aにおいて図6に示した認証処理が実行され、第1端末4Aを使用しているのが第1ユーザ本人と認証されると(ステップS94)、第1端末4Aの端末制御部48は、開示設定情報の変更処理を行う(ステップS95)。開示設定情報の変更処理については、図33に示すフローチャートを参照して説明する。第1端末4Aの端末制御部48は、認証用サーバ1に開示設定情報を要求する(ステップS401)。
認証用サーバ1のサーバ制御部11は、チャレンジデータ、認証用プロキシ、アプリケーションID等、第1ユーザを正しいユーザとして認証するために必要なユーザの認証用情報を生成し、第1端末4Aへ送信する(ステップS402)。第1端末4Aにおいて図6に示した認証処理が実行され、第1端末4Aを使用しているのが第1ユーザ本人と認証されると(ステップS403)、第1端末4Aの端末制御部48は、チャレンジデータのハッシュ値、認証用プロキシのサーバアドレス、アプリケーションID、図24Aに示した秘密鍵Kp1での署名情報等の認証応答情報を生成する。第1端末4Aの端末制御部48は、生成した認証応答情報を認証用サーバ1へ送信する(ステップS404)。
認証用サーバ1のサーバ制御部11は、第1端末4Aから受信した認証応答情報を検証する(ステップS405)。具体的には、認証用サーバ1のサーバ制御部11は、自身が生成したチャレンジデータのハッシュ値と、第1端末4Aから受信したチャレンジデータのハッシュ値とが一致するか否かを判定する。また、認証用サーバ1のサーバ制御部11は、第1端末4Aから受信した認証用プロキシのサーバアドレス、アプリケーションID等が、自身に登録されているデータと一致するか否かを判定する。さらに、認証用サーバ1のサーバ制御部11は、第1端末4Aから受信した図24Aに示した秘密鍵Kp1での署名情報の署名を検証し、正しいか否か判定する。
認証用サーバ1のサーバ制御部11が、第1端末4Aから受信した認証応答情報を検証した結果、第1ユーザが第1ユーザ本人と認証できた場合(ステップS406;YES)、認証用サーバ1のサーバ制御部11は、第1端末4Aから要求されている開示設定情報、第2ユーザの生体情報及びそれらの情報の利用開始日時を、第1端末4Aとの共通鍵KCで暗号化する。認証用サーバ1のサーバ制御部11は、暗号化した情報を第1端末4Aに送信する(ステップS407)。また、認証用サーバ1のサーバ制御部11が、第1端末4Aから受信した認証応答情報を検証した結果、第1ユーザが第1ユーザ本人と認証できなかった場合(ステップS406;NO)、その後の処理をスキップし、図26へ戻る。
第1端末4Aの端末制御部48は、認証用サーバ1から受信した、暗号化された情報を認証用サーバ1との共通鍵KCで復号化する。第1端末4Aの端末制御部48は第1ユーザからの指示に基づいて、復号化した開示設定情報、第2ユーザの生体情報及びそれらの情報の利用開始日時を変更する(ステップS408)。第1端末4Aの端末制御部48は、変更した開示設定情報、第2ユーザの生体情報及びそれらの情報の利用開始日時を、認証用サーバ1との共通鍵KCで暗号化する。第1端末4Aの端末制御部48は、暗号化した情報を認証用サーバ1に送信する(ステップS409)。
認証用サーバ1のサーバ制御部11は、暗号化された情報を第1端末4Aから受信する。認証用サーバ1のサーバ制御部11は、暗号化された情報を第1端末4Aとの共通鍵KCで復号化し、変更された開示設定情報、第2ユーザの生体情報及びそれらの情報の利用開始日時にもとづいて、図2に示したサーバ記憶部12に保存されている情報を変更する(ステップS410)。認証用サーバ1のサーバ制御部11は、サーバ記憶部12に保存されている情報を変更した旨を、第1端末4Aに送信する(ステップS411)。
ここで、図26に戻る。第2ユーザは、第1ユーザから共有してもらったユーザの預託ファイルをクラウド3から取得したい場合、クラウド3に分散して保存されたファイルを取得し、復元する。第2端末4Bにおいて図6に示した認証処理が実行され、第2端末を使用しているのが第2ユーザ本人と認証されると(ステップS96)、第2端末4Bの端末制御部48は、認証用サーバへのログイン処理を実行する(ステップS97)。認証用サーバへのログイン処理については、図34に示すフローチャートを参照しつつ、以下で説明する。
第2端末4Bの端末制御部48は、認証用サーバ1にログインを要求する(ステップS421)。認証用サーバ1のサーバ制御部11は、チャレンジデータ、認証用プロキシ、アプリケーションID等、第2ユーザを認証するために必要な認証用情報を生成し、第2端末4Bへ送信する(ステップS422)。
第2端末4Bにおいて図6に示した認証処理が実行され、第2端末4Bを使用しているのが第2ユーザ本人と認証されると(ステップS423)、第2端末4Bの端末制御部48は、チャレンジデータのハッシュ値、認証用プロキシのサーバアドレス、アプリケーションID等の認証応答情報を生成する。第2端末4Bの端末制御部48は、生成した認証応答情報を秘密鍵で署名する(ステップS424)。ここで署名に使う秘密鍵は、図24Bに示した第2暗号鍵データベース479Aのテーブルに書き込まれた「認証用サーバ」の名称に対応付けられた秘密鍵Kg1である。第2端末4Bの端末制御部48は、秘密鍵で署名した認証応答情報を認証用サーバ1へ送信する(ステップS425)。
認証用サーバ1のサーバ制御部11は、第2端末4Bから送信された認証応答情報と秘密鍵による署名とが正しいか検証する(ステップS426)。具体的には、認証用サーバ1のサーバ制御部11は、自身が第2端末4Bへ送信した認証用情報と第2端末4Bから受信した認証応答情報とを比較し、一致するか否かを判定する。また、認証用サーバ1のサーバ制御部11は、秘密鍵による署名を、図30のフローチャートに示したステップS367で第2端末4Bから送信された公開鍵により検証する。
第2端末4Bから送信された認証応答情報と秘密鍵による署名とが正しい場合(ステップS427;YES)、サーバ制御部11は、第2端末4Bのログインを許可する(ステップS428)。続いて、サーバ制御部11は、第2端末4Bにログイン成功の旨を送信する(ステップS429)。また、第2端末4Bから送信された認証応答情報と秘密鍵による署名とが正しいものではなかった場合(ステップS427;NO)、サーバ制御部11は、第2端末4Bにログイン失敗の旨を送信する(ステップS430)。第2端末4Bの端末制御部48は、認証用サーバ1から送信された情報に基づいて、表示部49の画面上にログイン成功またはログイン失敗の旨を表示させる(ステップS431)。
図26に戻る。第2ユーザは、第2端末4Bによるサーバ制御部11へのログインが成功すると、第1ユーザから共有してもらったユーザの預託ファイルをクラウド3から取得し、復元する。第2端末4Bの端末制御部48は、ファイル取得処理を実行する(ステップS98)。ファイル取得処理については、図35に示すフローチャートを参照しつつ、以下に説明する。
第2端末4Bは、認証用サーバ1に第1ユーザから預かった情報を要求する(ステップS431)。認証用サーバ1に第1ユーザから預かった情報は、図32に示したフローチャートのステップS397で第1端末4Aの端末制御部48から認証用サーバ1に送信された開示設定情報である。この開示設定情報は、ユーザの預託ファイルを分散させた第1クラウド3A及び第2クラウド3Bへアクセスするための情報と、図4Bに示したファイル管理テーブル475のデータと、ファイル分割用暗号鍵とをもとに生成された情報である。
図2に示した認証用サーバ1のサーバ制御部11は、第2端末4Bに第2ユーザの生体情報を要求する(ステップS432)。ここで、認証用サーバ1のサーバ記憶部12に記憶されている第2ユーザの生体情報は、図32に示したフローチャートのステップS397で第1端末4Aから送信されたものである。そして、第1端末4Aから認証用サーバ1に送信した第2ユーザの生体情報は、図31に示したフローチャートのステップS391で第2端末4Bから第1端末4Aに送信した第2ユーザの顔画像である。このため、具体的には、ステップS432では、認証用サーバ1のサーバ制御部11は、第2端末4Bに第2ユーザの顔画像を要求する。
第2端末4Bの端末制御部48は、第2ユーザの生体情報を取得する(ステップS433)。ここで第2端末4Bの端末制御部48の取得する第2ユーザの生体情報は、図4Aに示した第2端末4Bのインカメラ41Aで撮影した第2ユーザの顔画像である。第2端末4Bの端末制御部48は、取得した第2ユーザの生体情報と、図31に示したフローチャートのステップS391で第2端末4Bから第1端末4Aに送信した生体情報とが同じか否か判定する(ステップS434)。取得した第2ユーザの生体情報と、第2端末4Bから第1端末4Aに送信した生体情報とが同じ場合(ステップS434;YES)、第2端末4Bの端末制御部48は、取得した生体情報を共通鍵で暗号化し、認証用サーバ1へ送信する(ステップS435)。第2端末4Bの端末制御部48が、取得した生体情報を暗号化するために用いる共通鍵は、図24Bに示した第2暗号鍵データベース479Aに示された、「認証用サーバ」の名称に対応付けられている共通鍵KDである。また、取得した第2ユーザの生体情報と、第2端末4Bから第1端末4Aに送信した生体情報とが同じではない場合(ステップS434;NO)、その後の処理をスキップし図26へ戻る。
認証用サーバ1のサーバ制御部11は、第2端末4Bから受信した第2ユーザの生体情報を、共通鍵で復号化する。認証用サーバ1のサーバ制御部11が、第2端末4Bから取得した生体情報を復号化するために用いる共通鍵は、図25に示した暗号鍵情報データベース120Aに示された、「第2端末」の名称に対応付けられている共通鍵KDである。続いて、認証用サーバ1のサーバ制御部11は、サーバ記憶部12に保存した第1端末4Aから受信した生体情報である第2ユーザの顔画像と、第2端末4Bから受信した生体情報である第2ユーザの顔画像とを比較する(ステップS436)。認証用サーバ1のサーバ制御部11は、ステップS436で比較した生体情報が一致するか否か判定する(ステップS437)。一致する場合(ステップS437;YES)、サーバ制御部11は、第2ユーザが本人と認証できたものとして、ユーザの預託ファイルの利用開始日時になっているか否かを判定する(ステップS438)。また、一致しなかった場合(ステップS437;NO)、それ以降の処理をスキップし、図26へ戻る。これにより、第1ユーザが第1端末4Aを用いてクラウド3に預けたユーザの預託ファイルを、第三者である第2ユーザに開示しないようにすることができる。
ユーザの預託ファイルの利用開始日時になっている場合(ステップS438;YES)、認証用サーバ1のサーバ制御部11は、図32に示したフローチャートのステップS397で第1端末4Aの端末制御部48から送信された開示設定情報を、第2端末4Bとの共通鍵KDで暗号化する。認証用サーバ1のサーバ制御部11は、暗号化した開示設定情報を第2端末4Bへ送信する(ステップS439)。また、ユーザの預託ファイルの利用開始日時になっていない場合(ステップS438;NO)、認証用サーバ1のサーバ制御部11は、これ以降の処理をスキップし、図26へ戻る。
第2端末4Bの端末制御部48は、認証用サーバ1から受信した開示設定情報を、まず、認証用サーバ1との共通鍵KDで復号化する。続いて、第2端末4Bの端末制御部48は、認証用サーバ1との共通鍵KDで復号化した開示設定情報を、第1端末4Aとの秘密鍵で複合化する。ここで復号化するための秘密鍵は、図24Bに示した第2暗号鍵データベース479Aの「第1端末」の名称に対応付けられた秘密鍵Kh1である。第2端末4Bの端末制御部48は、複合した開示設定情報を、図4Bに示した自身の端末記憶部47に保存する(ステップS440)。
第2端末4Bの端末制御部48は、復号化した開示設定情報を用いて、ファイルの復元処理を実行する(ステップS441)。ファイルの復元処理については、図14に示したステップS21からステップS25を実行する。第2端末4Bの端末制御部48は、復元したユーザの預託ファイルを、図4Bに示した第2端末4Bの端末記憶部47に保存する(ステップS442)。
ここで、図26に戻る。第2端末4Bの端末制御部48は、認証用サーバ1からログアウトする(ステップS99)。第1端末4Aの端末制御部は、図4Bに示した端末記憶部47のファイル預託処理プログラム478を終了する。認証用サーバ1のサーバ制御部11は、図2に示したユーザ認証処理プログラム110を終了する。第2端末4Bの端末制御部は、図4Bに示した端末記憶部47のファイル取得処理プログラム480を終了する。
以上のとおり、実施の形態4に係る情報処理システム100では、端末4におけるユーザの認証処理と端末4と認証用サーバ1との間で行われる公開鍵認証とを連携することにより、ユーザの認証を行う。これにより、ユーザの生体情報を認証用サーバ1に送信しなくともユーザを特定することができるので、ユーザの生体情報の漏洩を防止しつつユーザの認証をすることができる。
(実施の形態5)
実施の形態5に係る情報処理システム100の端末4では、上記実施の形態1から4に係る情報処理システム100の端末4で実行される認証処理とは異なり、端末4を使用するユーザの生体情報による認証の結果がユーザ本人か否か明確に判断できないグレーな場合に、ユーザの癖のデータを用いて認証する。これにより、生体情報による認証で端末4を使用するユーザがユーザ本人か否か明確に判断できないグレーな場合にも、ユーザの癖のデータを用いてユーザ本人を認証することができる。
実施の形態5に係る端末4の構成を示すブロック図を、図36に示す。この端末4は、端末記憶部47Aに、実施の形態5に係るユーザの認証処理を行うための認証処理プログラム470Aと、端末4で取得したユーザの生体情報をまとめた認証用生体情報データベース471Aと、端末4で取得したユーザの癖のデータをまとめた認証用ユーザの癖データベース472Aと、端末4の傾き状態を記憶するための傾き情報テーブル481とを備える。
認証処理プログラム470Aは、端末4で取得したユーザの生体情報及びユーザの癖のデータに基づいてユーザを認証する処理を行うプログラムである。認証用生体情報データベース471Aは、ユーザの生体情報に関する情報と認証に用いる認証値とを保存するためのデータベースである。認証用ユーザの癖データベース472Aは、端末4を操作する際のユーザ特有の癖に関する情報、認証の合格条件等を保存するためのデータベースである。ここで、ユーザ特有の癖とは、ユーザが端末4を操作する際の挙動、表示部49の画面とユーザの顔の距離、キーストローク、持ち方、端末4が使用される位置、特定の通信網への接続回数、特定のアプリケーションの起動、操作等、ユーザ固有のものをいう。
傾き情報テーブル481は、傾き検出部43により検出された端末4の傾き角度と、取得日時、取得のための待機時間を記憶するためのテーブルである。なお、認証用生体情報データベース471Aと、認証用ユーザの癖データベース472Aと、傾き情報テーブル481とについて、詳細は後述する。
図4Cに示した端末4のプロセッサ51により、図36示した端末4の端末記憶部47Aに記憶された認証処理プログラム470Aを実行することにより、端末制御部48に図37に示す情報処理ブロックが実現される。これにより、端末4は、ユーザ本人の顔の画像、指紋、声紋等の生体情報と、ユーザが端末4を操作する際の特有の挙動、操作状態等によるユーザの癖のデータとに基づいて、ユーザ本人を認証し、端末4における各種機能を実行することができる。
情報処理ブロックは、通信部40、撮影部41等から認証用の生体情報及びユーザの癖のデータを取得する認証用情報取得部485と、ユーザを本人か否か認証する認証判定部486と、表示部49に認証結果を表示させる認証結果表示部487と、認証判定部486からの指示により端末記憶部47Aに記憶された各種データベース及びテーブルの情報を更新する認証用情報更新部488とを備える。
認証用情報取得部485は、通信部40、撮影部41等から認証用の生体情報及びユーザの癖を取得する。認証判定部486は、認証用情報取得部485から取得した認証用の生体情報及びユーザの癖と、端末記憶部47Aの各種データベースに記憶された認証値、合格条件等に基づいて、ユーザの認証を行う。認証結果表示部487は、認証判定部486からユーザの認証結果を受信し、表示部49に認証結果に応じてメッセージ、画像等を表示させる。認証用情報更新部488は、認証判定部486からの指示に基づいて、端末記憶部47Aに記憶された各種データベース、テーブルに記憶されたデータを更新する。なお、認証用情報取得部485で取得される各生体情報は、請求の範囲における第1認証用データ及び第3認証用データの一例である。認証用情報取得部485で取得される各ユーザの癖のデータは、請求の範囲における第2認証用データの一例である。
次に、端末記憶部47Aに記憶される認証用生体情報データベース471Aと、認証用ユーザの癖データベース472Aと、傾き情報テーブル481との各テーブルの構成について、図38Aから図38Cを参照しつつ以下に説明する。まず、認証用生体情報データベース471Aのテーブルには、図38Aに示すように、顔、音声等の生体情報の種類と、ユーザ本人の生体情報である登録情報と、登録情報と図37に示した認証用情報取得部485で取得した生体情報とから求められる認証値の平均値が記憶されている。認証用生体情報データベース471Aのテーブルに記憶されている登録情報は、ユーザ本人の生体情報である。登録情報には、端末4で認証処理を行う前に予め登録された情報であり、ユーザ本人を認証できた場合に更新される。登録情報には、例えば、生体情報の種類が顔であれば顔画像から求めた特徴量が、生体情報の種類が音声であれば音声データまたは音声データから求めた特徴量または音声データとその特徴量の両方が、生体情報の種類が虹彩であれば虹彩データが、生体情報の種類が指紋であれば指紋の画像から求めた特徴量が、それぞれ記憶されている。
本実施の形態において、生体情報の類似の判定は、認証値により行われる。認証値は、登録情報と、図37に示した認証用情報取得部485で取得した生体情報とを比較した結果を基に求められる値である。認証値は、登録情報と認証用情報取得部485で取得した生体情報とが類似する場合に0に近づき、類似しない場合に1に近づく。認証用生体情報データベース471Aには、認証値の平均値と、認証値を判定するための閾値である認証閾値と、認証閾値にユーザがグレーな場合を示す認証許容範囲値を含めた認証許容値とが含まれる。
まず、認証値の平均値は、登録情報と、認証用情報取得部485で取得した生体情報から求められた認証値との平均の値である。認証閾値は、登録情報と、認証用情報取得部485で取得した生体情報とを比較し、比較した結果を基に求められた認証値が、この値以下の場合、ユーザをユーザ本人と判定するための基準となる値である。認証閾値は、ユーザの認証の状況に合わせて変動する値であり、予め上限値が定めされている。上限値は、その値以上となった場合、ユーザをユーザ本人と生体情報のみで認証すべきではないとされる値である。例えば、認証閾値のデフォルト値を、登録情報と認証用情報取得部485で取得した生体情報とが類似する場合に近づく0と類似しない場合に近づく1との間の0.4であれば、認証閾値の上限値は0.45といった具合である。また、認証許容値は、登録情報と認証用情報取得部485で取得した生体情報とを比較し、比較した結果を基に求められた認証値が、この値以上の場合、ユーザをユーザ本人ではないと判定するための基準となる値である。認証許容値は、上述のとおり認証閾値にユーザがグレーな場合を示す認証許容範囲値を含めた値であるため、認証閾値と認証許容範囲値との変動に応じて、変動する値である。認証許容値には、予め上限値が定められており、これを最大認証許容値と呼ぶ。最大認証許容値は、この値以上の場合、ユーザを他人と判断すべきとされる値である。例えば、登録情報と認証用情報取得部485で取得した生体情報とが類似する場合に近づく0と類似しない場合に近づく1との中間の0.5である。
認証閾値と認証許容値との間の値を認証許容範囲値といい、ユーザがユーザ本人か否かグレーな場合を示す値である。認証値が認証許容範囲値内である場合、ユーザがユーザ本人か否かを生体情報だけで判断せず、ユーザ特有のユーザの癖が合格条件に合致している場合に、ユーザ本人と認証し、合致してない場合、ユーザ本人と認証しないものとする。ユーザの癖によるユーザの認証を、以下では、補助認証と称する。認証許容範囲値は、この範囲に収まる認証値であればユーザ本人として概ね考えれば良いと思われる値を、予め定めたものである。例えば、類似する場合に近づく0と、類似しない場合に近づく1との一割以下の0.08である。なお、認証閾値が上限値になった場合、最大認証許容値から認証閾値が上限値を引いた値になる。例えば、認証閾値の上限値が0.45、最大認証値が0.5であれば、認証許容範囲値は0.05といった具合である。したがって、認証閾値が上限値になっている場合、認証閾値が上限値になっていない場合よりも認証許容範囲値の値は小さな値をとる。
次に、認証用ユーザの癖データベース472Aのテーブルについて、図38Bを参照しつつ、以下に説明する。認証用ユーザの癖データベース472Aのテーブルには、通信接続、イベント実行等のユーザの癖の種類と、図37に示した認証用情報取得部485で取得した取得情報と、各ユーザの癖における最新状況と、各ユーザの癖の合格条件とが記憶されている。取得情報には、例えば、ユーザの癖の種類が通信接続であれば接続先のアドレス、SSID(Service Set Identifier)、BSSID(Basic Service Set Identifier)等が、ユーザの癖の種類がイベント実行であれば予めスケジュール帳に保存されたイベントの行われる場所の名称、住所等の場所情報が、ユーザの癖の種類が顔と端末装置との距離であれば距離が、デバイス接続であれば接続先のデバイスを示す名称、ID(Identifier)等が、それぞれ記憶されている。
各ユーザの癖における最新状況には、例えば、ユーザの癖の種類が通信接続であれば、取得情報に示された通信接続先にこれまで接続等された合計回数である。通信接続先への接続等の合計回数は、初期値が0であり、通信接続先への接続等により回数が加算されていく。また、ユーザの癖の種類がイベント実行であれば、取得情報に記憶されている場所とユーザの現在地との間の距離が記憶される。ユーザの癖の種類が顔と端末4との距離であれば、それまでユーザがユーザ本人と認証された際に算出された顔と端末4との距離の平均距離が記憶される。顔と端末4との平均距離は、ユーザがユーザ本人と認証される度に更新される。なお、顔と端末4との平均距離の初期値は、図38Aに示した生体情報を、端末4でユーザ本人の認証を行う前に予め登録する際に求められた距離とする。
また、ユーザの癖の種類がデバイス接続であれば、取得情報に記憶された名称、ID等が示すデバイスに接続されているか否かが記憶されている。デバイス接続は、例えば、Bluetooth(登録商標)によりペア設定されたデバイスと端末4との接続である。各ユーザの癖の合格条件は、各ユーザの癖の信頼性を担保できる条件を予め定めた条件である。
次に、傾き情報テーブル481のテーブルを、図38Cに示す。傾き情報テーブル481は、図37に示した傾き検出部43から取得された端末4の傾きを示す角度と、その角度を取得した取得日時、傾きを検出するめのインターバルとなる待機時間とを記憶している。端末4の傾きを示す角度は、待機時間が経過する毎に図37に示した認証用情報取得部485により傾き検出部43から取得され、更新される。また、その角度を更新する際、角度を取得した取得日時も更新される。
本実施の形態に係る端末4は、電源投入後処理のイニシャライズ処理の実行が完了すると、もしくは、スリープ状態から復帰すると、認証が成功するまで各機能の操作を許さないロック状態に入る。このロック状態に入る、若しくは、各機能の操作を行う際に認証が要求されると、図36に示した端末4の端末制御部48は、端末記憶部47Aに記憶された認証処理プログラム470Aを実行し、ユーザがユーザ本人か否かを判別する。認証処理プログラム470Aによるユーザの認証処理は、予め定められた認証間隔によりバックグラウンドで行われる。
このため、認証処理プログラム470Aによるユーザの認証処理を、実施の形態1から4における認証処理として用いる場合、第1端末4A及び第2端末4Bが起動している間、随時バックグランドで第1ユーザ及び第2ユーザを認証するようにしておき、その認証結果を図15、図20、図22、図26に示したフローチャートの各ステップで用いるようすればよい。端末制御部48により実行される認証処理プログラム470Aの処理について、図39A及び図39Bに示す認証処理のフローチャートを参照しつつ、以下に説明する。なお、この認証処理は、請求の範囲におけるユーザ認証手段の一例である。
まず、図39Aを参照する。本実施の形態においては、生体情報としてユーザの顔画像を用いるものとする。図37に示した認証用情報取得部485は、撮影部41に端末4を操作しているユーザの顔写真を撮影させる。具体的には、認証用情報取得部485は、端末4の正面に向き合っているユーザの顔写真を、インカメラ41Aで撮影させる。認証用情報取得部485は、撮影部41から撮影したユーザの顔写真を取得する(ステップS501)。認証用情報取得部485は、取得したユーザの顔写真がブレていないか判定する(ステップS502)。ユーザの顔写真がブレていた場合(ステップS502;NO)、認証用情報取得部485は、撮影部41にユーザの顔写真の撮影をリトライさせる(ステップS503)。また、ユーザの顔写真がブレていなかった場合(ステップS502;YES)、認証用情報取得部485は、撮影部41に撮影させたユーザの顔写真からユーザの顔が検出できるか判定する(ステップS504)。
ユーザの顔写真からユーザの顔が検出できない場合(ステップS504;NO)、認証用情報取得部485は、撮影部41にユーザの顔写真の撮影をリトライさせる(ステップS503)。なお、ユーザの顔写真からユーザの顔が検出できない場合、今操作しているユーザにこれ以上操作をさせないようにロックをかける、他の認証方法を利用する旨のメッセージを表示する等をしてもよい。また、ユーザの顔写真からユーザの顔が検出できた場合(ステップS504;YES)、認証用情報取得部485は、検出したユーザの顔の画像の特徴量を求める。認証用情報取得部485は、求めたユーザの顔の画像の特徴量を認証判定部486に送信する。
認証判定部486は、図36に示した端末記憶部47Aに記憶されている認証用生体情報データベース471Aを取得する。認証判定部486は、図38Aに示した認証用生体情報データベース471Aのテーブルから、生体情報の種類のうち「顔」に対応付けられた登録情報に記憶された顔画像の特徴量と、認証値の認証許容値及び認証閾値を取得する。認証判定部486は、認証用生体情報データベース471Aから取得した登録情報の顔画像の特徴量と、認証用情報取得部485から受信した顔画像の特徴量とを比較し、比較の結果を基に顔の認証値を求める。認証判定部486は、求めた顔の認証値が認証用生体情報データベース471Aから取得した認証閾値以上か判定する(ステップS505)。
求めた顔の認証値が認証閾値以上の場合(ステップS505;YES)、認証判定部486は、求めた顔の認証値が認証用生体情報データベース471Aから取得した認証許容値以下か判定する(ステップS506)。求めた顔の認証値が認証許容値以下の場合(ステップS506;YES)、端末4を使用しているユーザがユーザ本人か否かグレーであるため、認証判定部486はユーザの癖による認証である補助認証を実行する。まず、認証判定部486は、認証用情報取得部485に通信部40から現在接続している通信接続先を取得させる。認証判定部486は、認証用情報取得部485から、取得させた通信部40の現在の通信接続先を受信する。
続いて、認証判定部486は、図36に示した端末記憶部47Aから認証用ユーザの癖データベース472Aを取得する。認証判定部486は、図38Bに示した認証用ユーザの癖データベース472Aのテーブルに記憶されているユーザの癖の種類のうち「通信接続」に対応つけられた取得情報、回数、合格条件を取得する。例えば、図38Bに示すように、「通信接続」の取得情報にはSSIDであるABC_WLANと123WLANとが記憶されている。このABC_WLANでは、接続した回数に31回、合格条件として接続回数が100回以上と記憶されている。また、123WLANでは、接続した回数に157回、合格条件として接続回数が100回以上と記憶されている。なお、以下では合格条件を満たす場合を信頼するものと呼び、合格条件を満たさない場合を信頼しないものと呼ぶ。
認証判定部486は、認証用情報取得部485から受信した通信部40の現在の通信接続先と、認証用ユーザの癖データベース472Aから取得した取得情報とを比較し、現在の通信接続先が信頼する接続先か否か判定する(ステップS507)。ここで、例えば、通信部40の現在の通信接続先としてSSIDのABC_WLANが取得されているものとする。認証用ユーザの癖データベース472Aに記憶されたユーザの癖の種類「通信接続」の取得情報におけるABC_WLANは、接続した回数が31回であり、合格条件の接続回数が100回以上である。このため、現在の通信接続先は信頼する通信接続先ではないため(ステップS507;YES)、信頼するイベントを実行しているか否かを判定する(ステップS508)。
認証判定部486は、認証用情報取得部485に操作入力部44から直前に実行したイベントの内容を取得させる。認証判定部486は、端末4に備えられたカレンダーから現在の日時に予定があるか否かと、その予定が行われる場所の情報とを取得する。認証判定部486は、その日に予定が無かった場合、信頼するイベントの実行ではないものとし(ステップS508;YES)、顔と端末4との距離を算出する(ステップS509)。また、その日に予定があった場合、認証判定部486は、認証用情報取得部485に位置検出部46から、現在の位置情報を取得させる。続いて、認証判定部486は、図36に示した端末記憶部47Aから認証用ユーザの癖データベース472Aを取得する。
認証判定部486は、図38Bに示した認証用ユーザの癖データベース472Aのテーブルに記憶されているユーザの癖の種類のうち、「イベント実行」に対応つけられた取得情報と合格条件とを取得する。例えば、図38Bに示すように、「イベント実行」の取得情報にはイベントが行われる場所として「○×公園」及び「△●映画館」が記憶され、その両方の合格条件として「距離が100m以内」と記憶されているものとする。
ここで、例えば、端末4に備えられたカレンダーに、現在の日時に行われるイベントの場所として「○×公園」が記憶されているものとする。認証判定部486は、認証用情報取得部485に位置検出部46から取得させた現在の位置情報と、現在の日時に行われるイベントの場所である「○×公園」の位置情報とを比較する。例えば、現在の位置情報と、イベントの場所である「○×公園」の位置情報との間の距離が113mとする。この場合、信頼するイベントの実行ではないものとし(ステップS508;YES)、顔と端末4との距離を算出する(ステップS509)。ユーザの顔と端末4との距離は、図1に示したインカメラ41Aで撮影した端末4の正面に向き合うユーザの顔写真における、ユーザの顔の占める割合を基づいて算出する。
続いて、認証判定部486は、図36に示した端末記憶部47Aから認証用ユーザの癖データベース472Aを取得する。認証判定部486は、図38Bに示した認証用ユーザの癖データベース472Aのテーブルに記憶されているユーザの癖の種類のうち「顔と端末装置との距離」に対応つけられた平均距離、合格条件を取得する。例えば、図38Bに示すように、「顔と端末装置との距離」の平均距離には262mm、合格条件に平均距離のプラスマイナス20mmと記憶されている。
認証判定部486は、ステップS509で算出したユーザの顔と端末4との距離が、認証用ユーザの癖データベース472Aから取得した合格条件に設定された設定範囲内か否か判定する(ステップS510)。具体的には、認証用ユーザの癖データベース472Aから取得した平均距離は262mm、合格条件は、平均距離のプラスマイナス20mmであるので、242mmから282mmの範囲か否かを判定する。
ステップS509で算出したユーザの顔と端末4との距離が、242mmから282mmの範囲である場合(ステップS510;YES)、認証判定部486は、端末4を使用しているユーザをユーザ本人と認証する。認証用情報更新部488に、図36に示した認証用生体情報データベース471A及び認証用ユーザの癖データベース472Aに記憶された各種データを更新させる(ステップS511)。
具体的には、認証用情報更新部488は、図38Aに示した認証用生体情報データベース471Aのテーブルの生体情報の種類「顔」に対応つけられた登録情報を、登録情報に記憶されていた顔画像の特徴量に認証判定部486が認証用情報取得部485から受信した顔画像の特徴量を加え、更新する。続いて、認証用情報更新部488は、図38Bに示した認証用ユーザの癖データベース472Aのテーブルのユーザの癖の種類「通信接続」に対応つけられた最新状況に記憶されている回数に1を加え、更新する。また、図38Bに示した認証用ユーザの癖データベース472Aのテーブルに記憶されているユーザの癖の種類「顔と端末装置との距離」に対応つけられた最新状況を、記憶されている平均距離とステップS509で算出された「顔と端末装置との距離」から求められた平均距離で更新する。
このように、認証用生体情報データベース471Aに記憶された生体情報、及び、認証用ユーザの癖データベース472Aに記憶されたユーザの癖を更新することにより、ユーザの生体情報及びユーザの癖の精度が向上する。このため、ユーザの認証の精度を向上させることができる。
また、認証判定部486により求められた顔の認証値が、認証値の認証閾値以上でない場合(ステップS505;NO)、認証判定部486は、認証用情報取得部485に通信部10から現在接続している通信接続先を取得させる。認証判定部486は、認証用情報取得部485から、取得させた通信部40の現在の通信接続先を受信する。続いて、認証判定部486は、図36に示した端末記憶部47Aから認証用ユーザの癖データベース472Aを取得する。認証判定部486は、図38Bに示した認証用ユーザの癖データベース472Aのテーブルに記憶されているユーザの癖の種類のうち「通信接続」に対応つけられた取得情報、回数、合格条件を取得する。認証判定部486は、認証用情報取得部485から受信した通信部40の現在の通信接続先と、認証用ユーザの癖データベース472Aから取得した取得情報とを比較し、現在の通信接続先が信頼する接続先か否か判定する(ステップS512)。
ここで、例えば、通信部40の現在の通信接続先としてSSIDの123WLANが取得されているものとする。認証用ユーザの癖データベース472Aに記憶されたユーザの癖の種類「通信接続」の取得情報における123WLANは、接続した回数が156回であり、合格条件の接続回数が100回以上である。このため、現在の通信接続先は信頼する通信接続先であるため(ステップS512;YES)、認証判定部486は、端末4を使用しているユーザをユーザ本人と認証する。その後、認証判定部486は、認証間隔を現在の認証間隔よりも長くする(ステップS513)。これは、現在の通信接続先が信頼する通信接続先であれば、ユーザ本人は自宅、職場等の信頼する環境に居るものと考えられるためである。この場合、認証間隔を現在の認証間隔よりも長くし、認証の頻度を下げ必要最低限の回数認証を行うようにすれば良い。
ここで、例えば、通信部40の現在の通信接続先としてSSIDのABC_WLANが取得されているものとする。認証用ユーザの癖データベース472Aに記憶されたユーザの癖の種類「通信接続」の取得情報におけるABC_WLANは、接続した回数が31回であり、合格条件の接続回数が100回以上である。このため、現在の通信接続先は信頼する通信接続先ではないため(ステップS512;NO)、認証判定部486は、端末4を使用しているユーザをユーザ本人と認証せず、認証間隔を現在の認証間隔よりも長くしない。
ここで、ステップS507において、例えば、通信部40の現在の通信接続先としてSSIDの123WLANが取得されているものとする。認証用ユーザの癖データベース472Aに記憶されたユーザの癖の種類「通信接続」の取得情報における123WLANは、接続した回数が156回であり、合格条件の接続回数が100回以上である。このため、現在の通信接続先は信頼する通信接続先であるため(ステップS507;NO)、認証判定部486は、端末4を使用しているユーザをユーザ本人と認証する。
また、ここで、ステップS508において、例えば、端末4に備えられたカレンダーに、現在の日時に行われるイベントの場所として「△●映画館」が記憶されているものとする。認証判定部486は、認証用情報取得部485に位置検出部46から取得させた現在の位置情報と、現在の日時に行われるイベントの場所である「△●映画館」の位置情報とを比較する。例えば、現在の位置情報と、イベントの場所である「△●映画館」の位置情報との間の距離が72mとする。この場合、信頼するイベントの実行であるもとのし(ステップS508;NO)、認証判定部486は、端末4を使用しているユーザをユーザ本人と認証する。その後、認証判定部486は、認証間隔を現在の認証間隔よりも長くする(ステップS513)。
認証判定部486は、ユーザの顔と端末4との距離を算出する(ステップS514)。続いて、認証判定部486は、図36に示した端末記憶部47Aから認証用ユーザの癖データベース472Aを取得する。認証判定部486は、ステップS514で算出したユーザの顔と端末4との距離が、認証用ユーザの癖データベース472Aから取得した合格条件に設定された設定範囲内か否か判定する(ステップS515)。ステップS509で算出したユーザの顔と端末4との距離が、設定範囲内である場合(ステップS515;YES)、認証判定部486は、端末4を使用しているユーザをユーザ本人と認証する。認証判定部486は、認証用情報更新部488に、図36に示した認証用生体情報データベース471A及び認証用ユーザの癖データベース472Aに記憶された各種データを更新させる(ステップS511)。
具体的には、認証用情報更新部488は、図38Aに示した認証用生体情報データベース471Aのテーブルの生体情報の種類「顔」に対応つけられた登録情報を、登録情報に記憶されていた顔画像の特徴量にステップS505で認証判定部486が認証用情報取得部485から受信した顔画像の特徴量を加え、更新する。
続いて、認証用情報更新部488は、図38Bに示した認証用ユーザの癖データベース472Aのテーブルのユーザの癖の種類「通信接続」に対応つけられた、最新状況に記憶されている回数に1を加え、更新する。続いて、認証用情報更新部488は、認証用ユーザの癖データベース472Aのテーブルのユーザの癖の種類「イベント実行」に対応つけられた最新状況を、ステップS508;NOで求めたイベントの場所と端末4との間の距離を書き込み、更新する。また、図38Bに示した認証用ユーザの癖データベース472Aのテーブルに記憶されているユーザの癖の種類「顔と端末装置との距離」に対応つけられた最新状況を、最新状況に記憶されている平均距離とステップS514で算出された「顔と端末装置との距離」から求められた平均距離で更新する。
ステップS514で算出したユーザの顔と端末4との距離が、設定範囲内でない場合(ステップS515;NO)、認証判定部486は、認証用情報更新部488に、図36に示した認証用生体情報データベース471A及び認証用ユーザの癖データベース472Aに記憶された各種データを更新させない。
また、認証判定部486により求められた顔の認証値が、認証値の認証許容値以下でない場合(ステップS506;NO)、及び、ステップS110で顔と端末装置との距離が設定範囲内でなかった場合(ステップS510;NO)、認証判定部486は、端末4を使用しているユーザをユーザ本人ではないと判断する。認証判定部486は、図37に示した認証結果表示部487に、表示部49へ認証できなかった旨を表示させる。続いて、認証判定部486は、端末4に備えられている既存の生体認証手段を呼び出す。ここでは、既存の生体認証手段として指紋認証を呼び出すものとする。認証判定部486は、指紋認証を実行する(ステップS516)。
指紋認証ができた場合(ステップS517;YES)、認証判定部486からの指示により、認証用情報取得部485は、撮影部41に端末4を操作しているユーザの顔写真を撮影させる。認証用情報取得部485は、撮影部41から撮影したユーザの顔写真の画像を取得し、ユーザの顔の画像の特徴量を求める。認証用情報取得部485は、認証判定部486に求めたユーザの顔の画像の特徴量を送信する。認証判定部486は、受信したユーザの顔の画像の特徴量を図37に示した認証用情報更新部488に送信する。認証用情報更新部488は、受信したユーザの顔の画像の特徴量を、図38Aに示した認証用生体情報データベース471Aのテーブルの生体情報の種類「顔」に対応つけられた登録情報に記憶されていた顔画像の特徴量に加え、更新する(ステップS518)。認証判定部486は、ステップS501へ戻り、ステップS501以降のステップを実行する。
また、指紋認証ができなかった場合(ステップS517;NO)、認証判定部486は、図37に示した認証結果表示部487に、表示部49へ認証できなかった旨を表示させる。続いて、認証判定部486は、図37に示した認証結果表示部487にログイン画面を表示部49に表示させる(ステップS519)。
ここで、図39Bに移動する。認証判定部486は、生体認証及び補助認証が予め定めされた設定回数成功したか否かを判定する(ステップS520)。この設定回数は、例えば、連続で10回、端末4が起動してから合計で20回等、任意の回数である。生体認証及び補助認証が予め定めされた設定回数成功した場合(ステップS520;YES)、認証判定部486は、設定回数分の認証で求められた顔の認証値の平均値を求める(ステップS521)。具体的には、認証判定部486は、図36に示した認証用生体情報データベース471Aを、端末記憶部47Aから取得する。認証判定部486は、図38Aに示した認証用生体情報データベース471Aのテーブルから、生体情報の種類のうち「顔」に対応付けられた認証値の平均値を取得する。認証判定部486は、ステップS505で求めた顔の認証値と、認証用生体情報データベース471Aから取得した認証値の平均値とを足して2で割り、顔の認証値の平均値を算出する。また、生体認証及び補助認証が予め定めされた設定回数成功しなかった場合(ステップS520;NO)、ステップS521からステップS523の処理をスキップし、ステップS524へ進む。
認証判定部486は、ステップS521で求めた顔の認証値の平均値を、認証用情報更新部488に送信する。認証用情報更新部488は、受信した顔の認証値の平均値と、予め設定された認証閾値の上限値とを比較する。顔の認証値の平均値が予め設定された認証閾値の上限値以上である場合、認証用情報更新部488は、図38Aに示した認証用生体情報データベース471Aのテーブルの、生体情報の種類のうち「顔」に対応付けられた認証閾値に、認証閾値の上限値を書き込み、更新する。また、顔の認証値の平均値が予め設定された認証閾値の上限値以下である場合、認証用情報更新部488は、図38Aに示した認証用生体情報データベース471Aのテーブルの、生体情報の種類のうち「顔」に対応付けられた認証閾値に、ステップS521で求めた顔の認証値の平均値を書き込み、更新する(ステップS522)。
続いて、認証用情報更新部488は、認証許容値を更新する(ステップS523)。具体的には、ステップS521で求めた顔の認証値の平均値が、予め設定された認証閾値の上限値以上である場合、認証用情報更新部488は、予め設定された最大認証許容値を認証許容値とする。また、ステップS521で求めた顔の認証値の平均値が、予め設定された認証閾値の上限値以下である場合、ステップS521で求めた顔の認証値の平均値とデフォルトの認証許容範囲値とを足した値が最大認証許容値以下であれば、その足した値を認証許容値とする。ステップS521で求めた顔の認証値の平均値とデフォルトの認証許容範囲値とを足した値が最大認証許容値以上であれば、最大認証許容値を認証許容値とする。認証用情報更新部488は、図36に示した認証用生体情報データベース471Aを、端末記憶部47Aから取得する。認証用情報更新部488は、図38Aに示した認証用生体情報データベース471Aのテーブルの、生体情報の種類のうち「顔」に対応付けられた認証許容値に、求めた認証許容値を書き込み、更新する。
図37に示した認証用情報取得部485は、傾き検出部43から端末4の傾きの角度を取得する。続いて、認証用情報取得部485は、図示しないタイマから現在の日時情報を取得する(ステップS524)。認証用情報取得部485は、取得した端末4の傾きの角度と現在の日時情報とを認証判定部486に送信する。認証判定部486は、受信した端末4の傾きの角度と現在の日時情報とを、認証用情報更新部488に送信する。認証用情報更新部488は、図36に示した端末記憶部47Aに記憶された傾き情報テーブル481に、受信した端末4の傾きの角度と現在の日時情報とを書き込み、保存する(ステップS525)。
認証判定部486は、図38Cに示した傾き情報テーブル481のテーブルに記憶されている待機時間を取得する。認証判定部486は、認証用情報取得部485に取得した待機時間を送信する。認証用情報取得部485は、受信した待機時間の間、通信部40、撮影部41等からのデータの取得を待機する(ステップS526)。待機時間が終了すると、認証用情報取得部485は、傾き検出部43から端末4の傾きの角度を取得する。続いて、認証用情報取得部485は、図示しないタイマから現在の日時情報を取得する(ステップS527)。認証用情報取得部485は、取得した端末4の傾きの角度と現在の日時情報とを認証判定部486に送信する。
認証判定部486は、図38Cに示した傾き情報テーブル481のテーブルに記憶されている端末4の角度を取得する。認証判定部486は、認証用情報取得部485から受信した端末4の傾きの角度と、傾き情報テーブル481から取得した端末4の角度とを比較し、角度が変化してないか否かを判定する(ステップS528)。端末4の角度の変化が、予め定められた設定値の角度、例えば、30度以上の場合(ステップS528;NO)、認証判定部486は、ユーザにより端末4が動かされ何某かの操作が行われたものと判断し、図39Aに示したステップS501に戻る。その後、認証判定部486は、ステップS501以降の処理を実行する。
また、端末4の角度の変化が、予め定められた設定値の角度以下の場合(ステップS528;YES)、認証判定部486は、ユーザにより端末4が動かされていないものと判断する。続いて、認証判定部486は、ユーザを認証するタイミングになったか否かを判定する(ステップS529)。ユーザを認証するタイミングは、予め設定された認証間隔の時間が経過したタイミングである。ユーザを認証するタイミングになっている場合(ステップS529;YES)、認証判定部486は、図39Aに示したステップS501に戻る。その後、認証判定部486は、ステップS501以降の処理を実行する。ユーザを認証するタイミングになっていない場合(ステップS529;NO)、認証判定部486はステップS525に戻る。認証判定部486は、ステップS525からステップS529までの処理を実行する。
なお、上記の実施の形態において、生体情報から求められた認証値と認証閾値とが同じ値となった場合には、生体情報から求められた認証値が認証閾値以下、または、生体情報から求められた認証値が認証閾値以上の、どちらの場合として、認証が成功したか否かを判定してもよい。また、生体情報から求められた認証値と認証許容値とが同じ値となった場合には、生体情報から求められた認証値が認証許容値以下、または、生体情報から求められた認証値が認証許容値以上の、どちらの場合として、認証が成功したか否かを判定してもよい。
以上の通り、上記実施の形態5に係る情報処理システム100の端末4で実行される認証処理は、端末4を使用するユーザの生体情報による認証の結果がユーザ本人か否か明確に判断できないグレーな場合に、ユーザの癖のデータを用いて認証する。これにより、生体情報による認証で端末4を使用するユーザがユーザ本人か否か明確に判断できないグレーな場合にも、ユーザの癖のデータを用いてユーザ本人を認証することができる。また、端末4において行われるユーザの認証処理は、端末4の稼働中、バックグラウンドで実行されるとともに、ユーザの生体情報とユーザの癖とを更新していくことにより、認証の制度を向上させることができる。これにより、使用者の操作負担を軽減しつつ、セキュリティを確保することができる。
(変形例1)
上記の実施の形態1から4において、スコア値を求めるための端末4に登録された生体情報及びユーザの癖のデータは、ユーザを認証するごとに更新され、精度を高めるようにしてもよい。また、図5Dに示したスコア値テーブル473のスコア値の項目に設定されている値は、ユーザが適宜設定するようにしてもよい。
(変形例2)
上記の実施の形態1から5において、スマートフォンを用いて第1端末4A及び第2端末4Bを構成するものとした。しかしながら、スマートフォンに限らず、PC(Personal Computer)、タブレット、PDA(Personal Digital Assistant)等、どのような機器を用いて第1端末4A及び第2端末4Bを構成してもよい。
(変形例3)
上記の実施の形態1から4において、認証用サーバ1では第2ユーザの生体情報に基づいて本人認証を行った。しかしながら、生体情報に限らず、第2端末4Bで取得できるユーザの癖を用いて本人認証をしてもよい。
(変形例4)
実施の形態1から4では、第1ユーザの使用する第1端末4Aにより、ユーザの預託ファイルを、第1クラウド3A及び第2クラウド3Bに分散して保存し、第2ユーザの使用する第2端末4Bにより第1クラウド3A及び第2クラウド3Bから取得して復元するものとした。しかしながら、第1ユーザの使用する第1端末4Aと第2ユーザの使用する第2端末4Bの動作は逆であってもよい。
(変形例5)
実施の形態1から4では、第2ユーザは、第1クラウド3A及び第2クラウド3Bに分散して保存されたユーザの預託ファイルを、第1ユーザの設定した利用開始日時の経過後に取得し、復元できるものとした。これに限らず、第1ユーザの設定するユーザの預託ファイルの使用可能期間を、第1ユーザ本人の死亡時以降、怪我又は疾病により動けなくなった時等としてもよい。
(変形例6)
上記の実施の形態1から4では、第1端末4A及び第2端末4Bにより実行される第1ユーザ及び第2ユーザをユーザ本人と認証する認証処理を、図15、図20、図22、図26に示したフローチャートの予め定められたステップで行うものとしている。しかしながら、これに限らず、第1端末4A及び第2端末4Bが起動している間、随時バックグランドで第1ユーザ及び第2ユーザを認証するようにしておき、その認証結果を図15、図20、図22、図26に示したフローチャートの各ステップで用いるようにしてもよい。
(変形例7)
上記の実施の形態1から3では、図15に示したフローチャートのステップS38のファイル預け処理において、クラウド3へ第1ユーザの作成したユーザの預託ファイルを分散させるものとした。これに限らず、クラウド3へ第1ユーザの作成したユーザの預託ファイルを分散させるタイミングは、何時であってもよい。
(変形例8)
上記の実施の形態1から5では、ユーザの認証処理を図4Bに示した認証処理プログラム470、または、図36に示した認証処理プログラム470Aを実行することにより実現するものとした。この認証処理プログラム470、470Aで行われる各ステップの全部または一部を、ASIC(Application Specific Integrated Circuit)、システムLSI(Large-scale Integration)等の半導体チップ、各種回路素子により構成される回路等により実現するようにしてもよい。
(変形例9)
上記実施の形態1では、図17に示したステップS127において、第1端末4Aの端末制御部48が、第2端末4Bに対して第2ユーザの生体情報を要求し、要求した第2ユーザの生体情報をその後の処理に用いるものとした。これに限らず、第1端末4Aの端末制御部48は、第2端末4Bに対して、第2ユーザの生体情報に加えて、図16に示したステップS106で認証用サーバ1に送信した第2ユーザの名称及び認証用サーバ1への登録に必要な情報を要求し、要求した第2ユーザの生体情報、名称等をその後の処理に用いるようにしてもよい。
(変形例10)
実施の形態4では、図31に示したステップS388において、第1端末4Aの端末制御部48が、第2端末4Bに対して第2ユーザの生体情報を要求し、要求した第2ユーザの生体情報をその後の処理に用いるものとした。これに限らず、第1端末4Aの端末制御部48は、第2端末4Bに対して、第2ユーザの生体情報に加えて、図30に示したステップS364で第2ユーザのIDであると判定された(ステップS364;YES)第2ユーザのIDを要求し、要求した第2ユーザの生体情報及びIDをその後の処理に用いるようにしてもよい。
(変形例11)
実施の形態4では、図32に示したステップS395において第1端末4Aの端末制御部48は、暗号化した開示設定情報のデータに、第2ユーザの生体情報、及び、ユーザの預託ファイルの利用開始日時を追加するものとした。これに限らず、第1端末4Aの端末制御部48は、図30に示したステップS364で第2ユーザのIDであると判定された(ステップS364;YES)第2ユーザのIDを第2端末4Bから取得し、第2ユーザの生体情報及びユーザの預託ファイルの利用開始日時とともに、暗号化した開示設定情報のデータに追加するようにしてもよい。
(変形例12)
上記の実施の形態5において、ユーザの生体情報による認証として、ユーザの顔画像による認証と指紋認証とを使用した。これに限らず、ユーザの生体情報による認証は、声紋認証、虹彩認証等、いずれの方法であってもよい。また、上記の実施の形態においては、補助認証を使用する判定の条件としてユーザの顔画像による認証だけを使用したが、複数の生体情報により判定してもよい。
(変形例13)
上記の実施の形態5において、ユーザの癖による補助認証の判定条件として信頼する接続先への接続、信頼するイベントの実行、ユーザの顔と端末4との顔の距離を用いた。これに限らず、他の方法を用いる又は含めても良い。例えば、ユーザ本人が所有するデバイスと端末4とをBluetooth(登録商標)で接続しているか否かを判定し、接続している場合にユーザ本人と認証する。Bluetooth(登録商標)により接続される機器を使用するためには、機器同士を「ペアリング」する必要がある。このため、Bluetooth(登録商標)による機器の接続は、個人の特定性が強く、補助認証として利用することでユーザ本人を認証することが可能である。また、さらに、図37に示した位置検出部46により取得したユーザの行動ルートのパターン、規則性等により、ユーザ本人か否かを判定し、行動ルートのパターン、規則性等が一致する場合にユーザ本人と認証としてもよい。
(変形例14)
上記の実施の形態5においては、補助認証のうち、一つの認証が成功した場合に、ユーザ本人と認証した。これに限らず、複数の補助認証がすべて成功した場合にのみユーザ本人と認証するようにしてもよい。これにより、さらに認証の精度を高めることができる。
(変形例15)
上記の実施の形態5において、生体認証及び補助認証が成功した場合、図39Aに示したフローチャートのステップS513において認証判定部486は、認証間隔を現在の認証間隔よりも長くし、認証の頻度を下げている。しかしながら、これに限らず、生体認証及び補助認証が成功した場合、認証間隔を現在の認証間隔よりも長くせずにおき、認証の頻度を下げなくてもよい。具体的には、図39Aに示したフローチャートのステップS513を行わなくてもよい。
(変形例16)
上記の実施の形態5において、ユーザの認証が成功し、ユーザが継続的に端末4を操作し続ける状態、且つ端末4の傾きの変更がない場合、ユーザ本人が端末4を操作し続けているものと判断することができる。この場合、生体認証の認証閾値及び認証許容値を緩めに設定する、認証間隔を長くする等してもよい。こうすることにより、ユーザ本人に対する必要最低限の認証をバックグラウンドで行いつつ、端末4のリソースの利用を節約する事ができる。
(変形例17)
上記の実施の形態5において、予め定められた認証間隔によりバックグラウンドでの認証を行うようにした。これに限らず、認証のタイミング及び間隔を定めず、ランダムにバックグラウンドで認証を行うようにしてもよい。例えば、端末4に搭載されている各種センサの何れかにより、端末4の位置の変更、傾きの変更などの空間的な変化があった場合に、随時認証を行うようにしてもよい。また、ユーザが端末4に対し特別な処理を行うための操作、イレギュラーな操作等を行った場合に、認証を行うようにしてもよい。
また、本発明の実施の形態1から5では、認証用サーバ1及び第1端末4A及び第2端末4Bは、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、認証用サーバ1及び第1端末4A及び第2端末4Bにおける各機能を実現するためのプログラムを、コンピュータが読み取り可能なCD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)などの記録媒体に格納して配布し、このプログラムをコンピュータにインストールすることにより、上述の各機能を実現することができるコンピュータを構成してもよい。そして、各機能をOS(Operating System)とアプリケーションとの分担、またはOSとアプリケーションとの協同により実現する場合には、アプリケーションのみを記録媒体に格納してもよい。
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、この開示を説明するためのものであり、本発明の範囲を限定するものではない。すなわち、本発明の範囲は、実施の形態ではなく、請求の範囲によって示される。そして請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、この開示の範囲内とみなされる。
本出願は、2019年4月24日に出願された日本国特許出願特願2019-082505号と、2019年11月28日に出願された日本国特許出願特願2019-215159号とに基づく。本明細書中に日本国特許出願特願2019-082505号と日本国特許出願特願2019-215159号との明細書、特許請求の範囲、図面全体を参照として取り込むものとする。