以下、図面を参照して、各実施形態について説明する。
(第1実施形態)
まず、第1実施形態について説明する。図1は、本実施形態に係る情報管理システムの機能構成の一例を示すブロック図である。
図1に示すように、情報管理システムは、クライアント端末10及びサーバ装置20を備える。
クライアント端末10は、ユーザによって使用される端末装置(電子機器)であり、例えばスマートフォン、タブレットコンピュータ及びパーソナルコンピュータ等を含む。
サーバ装置20は、クライアント端末10と通信可能に接続されており、当該クライアント端末10を使用するユーザに対して様々なサービスを提供する。
ここで、本実施形態において、サーバ装置20によって提供されるサービスを利用するためには、ユーザはサーバ装置20(情報管理システム)にログインする必要があるものとする。なお、ユーザがサーバ装置20にログインする際には、クライアント端末10と接続される認証器30が用いられるものとする。
認証器30は、クライアント端末10を使用するユーザの特徴(生体的な特徴)を表す特徴情報を得ることができる電子機器(デバイス)であり、例えばカメラ、マイク及び指紋認証器等のうちの少なくとも1つを含む。なお、認証器30がカメラである場合、当該認証器30を用いて得られる特徴情報は、ユーザの顔を含む画像(情報)である。また、認証器30がマイクである場合、当該認証器30を用いて得られる特徴情報は、ユーザの音声(情報)である。更に、認証器30が指紋認証器である場合、当該認証器30から得られる特徴情報は、当該指紋認証器を介して得られるユーザの指紋の特徴点(情報)である。なお、以下に説明する特徴情報は、認証器30を用いて得られる画像、音声または指紋の特徴点等の一部であってもよいし、これらを変換または加工して得られる値(特徴値)等を含んでいてもよい。
クライアント端末10は、ユーザ認識部11、ログイン制御部12、アルゴリズム情報管理部13及び格納部(第1格納部)14を含む。
ユーザ認識部11は、上記した認証器30から特徴情報を取得する。ユーザ認識部11は、取得された特徴情報に基づいて、クライアント端末10を使用するユーザを認識する機能を有する。
ログイン制御部12は、ユーザ認識部11によって認識されたユーザが正当なユーザであるか否かを判定する。なお、正当なユーザとは、情報管理システムに予め登録されたユーザ(つまり、サーバ装置20によって提供されるサービスを利用可能なユーザ)をいう。ログイン制御部12は、ユーザが正当なユーザであると判定された場合に、当該ユーザのサーバ装置20へのログインを当該サーバ装置20に要求する。
ここで、詳細については後述するが、ユーザ認識部11がユーザを認識する場合、当該ユーザの特徴を表す特徴情報を所定のアルゴリズムに適用する。この場合のアルゴリズム情報は、クライアント端末10を使用するユーザを正当なユーザとして事前に登録する際に、当該ユーザの特徴を表す特徴情報に基づいてユーザ認識部11によって生成される。
アルゴリズム情報管理部13は、ユーザ認識部11によって生成されたアルゴリズム情報に基づいて、当該アルゴリズム情報を復元することが可能な少なくとも2つの復元情報を生成する。
アルゴリズム情報管理部13は、生成された2つの復元情報のうちの一方(以下、第1復元情報と表記)を格納部14に格納(保存)するとともに、他方(以下、第2復元情報と表記)をサーバ装置20に送信する。
なお、上記したようにユーザ認識部11によってユーザが認識される際には、第1及び第2復元情報に基づいて復元されるアルゴリズム情報が用いられる。
サーバ装置20は、ログイン処理部21及び格納部(第2格納部)22を含む。ログイン処理部21は、上記したようにクライアント端末10(ログイン制御部12)からログインが要求された場合に、ユーザをサーバ装置20にログインさせる。
格納部22には、上記したようにクライアント端末10(アルゴリズム情報管理部13)から送信された第2復元情報が格納される。
なお、図1においては便宜的に1つのクライアント端末10のみが示されているが、情報管理システムは、複数のユーザによって使用される複数のクライアント端末10を備えるように構成されていてもよい。
図2は、図1に示すクライアント端末10のハードウェア構成の一例を示す。ここでは、クライアント端末10が例えばスマートフォンである場合について説明する。
図2に示すように、クライアント端末10は、CPU101、不揮発性メモリ102、主メモリ(RAM)103、通信デバイス104及びタッチスクリーンディスプレイ105等を備える。
CPU101は、クライアント端末10内の各コンポーネントの動作を制御するハードウェアプロセッサである。CPU101は、単一のプロセッサであってもよいし、複数のプロセッサで構成されていてもよい。CPU101は、ストレージデバイスである不揮発性メモリ102から主メモリ103にロードされる様々なプログラムを実行する。CPU101によって実行されるプログラムには、オペレーティングシステム(OS)及びクライアント端末10を使用するユーザがサーバ装置20にログインし、当該サーバ装置20によって提供されるサービスを利用するためのアプリケーションプログラム103a等が含まれる。
なお、本実施形態において、図1に示すユーザ認識部11、ログイン制御部12及びアルゴリズム情報管理部13の一部または全ては、CPU101(つまり、クライアント端末10のコンピュータ)にアプリケーションプログラム103aを実行させること、すなわち、ソフトウェアによって実現されるものとする。このアプリケーションプログラム103aは、コンピュータ読み取り可能な記憶媒体に格納して頒布されてもよいし、ネットワークを通じてクライアント端末10にダウンロードされてもよい。また、図1に示す格納部14は、例えば不揮発性メモリ102またはその他の記憶装置等によって実現される。
通信デバイス104は、サーバ装置20等の外部装置との通信を実行するように構成されたデバイスである。
タッチスクリーンディスプレイ105は、クライアント端末10の本体の上面に重ね合わせるように取り付けられる。タッチスクリーンディスプレイ105には、フラットパネルディスプレイと、当該フラットパネルディスプレイの画面上の例えば指等の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば液晶ディスプレイ(LCD)等を含む。センサとしては、例えば静電容量方式のタッチパネル等を使用することができる。
このようなタッチスクリーンディスプレイ105によれば、クライアント端末10(フラットパネルディスプレイ)に表示された画面に対するユーザの操作(例えば、画面をタッチする操作等)を検出することができる。
なお、上記した図1においてはクライアント端末10と認証器30とが別個の機器(装置)であるものとして説明したが、認証器30(例えば、カメラ等)は、クライアント端末10に組み込まれていても構わない。
また、図2においてはクライアント端末10がスマートフォンであるものとして説明したが、例えばクライアント端末10がパーソナルコンピュータである場合には、タッチスクリーンディスプレイ105に代えて、マウス及びキーボードのような入力デバイスと液晶ディスプレイのような表示デバイスとを備える構成であってもよい。
ここではクライアント端末10のハードウェア構成について説明したが、サーバ装置20は、例えばCPU、不揮発性メモリ、主メモリ及び通信デバイス等を備える構成であればよい。
次に、本実施形態における情報管理システムの動作について説明する。本実施形態において、情報管理システムは、主として、サーバ装置20によって提供されるサービスを利用可能とするために事前にユーザを登録する処理(以下、登録処理と表記)及び当該登録処理によって登録されたユーザをアルゴリズム情報を用いてサーバ装置20にログインさせる処理(以下、ログイン処理と表記)を実行する。以下、登録処理及びログイン処理について説明する。
まず、図3のシーケンスチャートを参照して、情報管理システムにおいて実行される登録処理の処理手順の一例について説明する。
ユーザがサーバ装置20によって提供されるサービスを利用するためにはサーバ装置20にログインする必要があるが、ユーザが当該サーバ装置20にログインするためには当該ユーザを事前に情報管理システムに登録しておく必要がある。なお、本実施形態において、ユーザを登録するとは、ユーザがサーバ装置20にログイン可能な状態にすることをいう。以下、図3に示す登録処理によって情報管理システムに登録されるユーザを、便宜的に、対象ユーザと称する。
この場合、対象ユーザは、クライアント端末10を操作することによって当該クライアント端末10(タッチスクリーンディスプレイ105)にユーザ登録画面を表示し、当該ユーザ登録画面において対象ユーザを示すユーザ情報を入力する。なお、ユーザ情報としては対象ユーザを識別するためのユーザID等が用いられるが、当該ユーザ情報はユーザ名等の他の情報であっても構わない。
このように対象ユーザによって入力されたユーザ情報は、ユーザ登録要求として、ログイン制御部12に送信される(ステップS1)。
ステップS1の処理が実行されると、ログイン制御部12は、当該ステップS1において送信されたユーザ登録要求(ユーザ情報)を受信し、当該ユーザ情報をアルゴリズム情報生成要求としてユーザ認識部11に送信する(ステップS2)。このステップS2の処理が実行されることにより、アルゴリズム情報の生成がユーザ認識部11に対して要求される。
次に、ユーザ認識部11は、ステップS2において送信されたアルゴリズム情報生成要求(ユーザ情報)を受信し、認証器30に対して対象ユーザの特徴を表す特徴情報(以下、対象ユーザの特徴情報と表記)を要求する(ステップS3)。
認証器30は、ユーザ認識部11からの要求に応じて対象ユーザの特徴情報を取得し、当該対象ユーザの特徴情報をユーザ認識部11に返却する(ステップS4)。
なお、認証器30は、対象ユーザの特徴情報を取得するために必要な通知を対象ユーザに対して行うように動作してもよい。具体的には、認証器30がカメラである場合には、対象ユーザの顔を含む画像を撮影することを対象ユーザに促すようなメッセージを表示してもよい。認証器30がマイクまたは指紋認証器である場合についても同様である。
ステップS4の処理が実行されると、ユーザ認識部11は、当該ステップS4において認証器30から送信された対象ユーザの特徴情報を受信(取得)し、当該対象ユーザの特徴情報に基づいてユーザを認識するためのアルゴリズムに関するアルゴリズム情報を生成する(ステップS5)。
なお、ステップS5において生成されるアルゴリズム情報によって示されるアルゴリズムは、対象ユーザの特徴情報を入力とした際にユーザ情報を得ることができる(つまり、特徴情報から1のユーザ情報を特定することができる)ものであればよく、例えばユーザを認識するための複数の条件等から構成されるものであってもよい。また、アルゴリズム情報は、例えば対象ユーザの特徴情報及びユーザ情報等を含んでいてもよい。
このようなアルゴリズム情報が生成されることにより、情報管理システム(クライアント端末10)において、当該アルゴリズム情報によって示されるアルゴリズムに基づいて対象ユーザを認識することができるようになる。
ステップS5において生成されたアルゴリズム情報は、復元情報生成要求としてアルゴリズム情報管理部13に送信される(ステップS6)。
次に、アルゴリズム情報管理部13は、ステップS6において復元情報生成要求として送信されたアルゴリズム情報を受信し、当該アルゴリズム情報を復元することが可能な第1及び第2復元情報を当該アルゴリズム情報に基づいて生成する(ステップS7)。
ステップS7において生成された第1及び第2復元情報のうちの第1復元情報は、クライアント端末10に含まれる格納部14に格納(登録)される(ステップS8)。
一方、ステップS7において生成された第1及び第2復元情報のうちの第2復元情報は、ステップS6においてユーザ認識部11からアルゴリズム情報管理部13に送信された復元情報生成要求に対する応答として、アルゴリズム情報管理部13からユーザ認識部11に返却される(ステップS9)。
ステップS9において復元生成要求に対する応答としてユーザ認識部11に返却された第2復元情報は、ステップS2においてログイン制御部12からユーザ認識部11に送信されたアルゴリズム情報生成要求に対応する応答として、ユーザ認識部11からログイン制御部12に返却される(ステップS10)。
ステップS10の処理が実行されると、ログイン制御部12は、当該ステップS10においてユーザ認識部11から返却された第2復元情報をサーバ装置20(ログイン処理部21)に送信する(ステップS11)。このステップS11においては、第2復元情報とともに、上記した対象ユーザを示すユーザ情報がログイン制御部12からサーバ装置20に送信される。
サーバ装置20に含まれるログイン処理部21は、ステップS11においてログイン制御部12(クライアント端末10)から送信された第2復元情報及びユーザ情報を受信し、当該第2復元情報及びユーザ情報を対応づけて格納部22に格納(保存)する(ステップS12)。
後述するように対象ユーザは第1及び第2復元情報から復元されるアルゴリズム情報に基づいて認識されるため、上記したステップS8及びS12の処理が実行されることによって、当該対象ユーザがサーバ装置20にログイン可能な状態となる。
ステップS12の処理が実行されると、サーバ装置20は、第2復元情報が格納部22に格納されたこと(格納完了通知)をクライアント端末10(ログイン制御部12)に通知する(ステップS13)。
ステップS13におけるサーバ装置20からの通知を受けたログイン制御部12は、対象ユーザが情報管理システムに登録されたこと(登録完了通知)を当該対象ユーザに通知する(ステップS14)。なお、ステップS14が実行された場合、対象ユーザが情報管理システムに登録されたことを示すメッセージ等が例えばタッチスクリーンディスプレイ105に表示される。
上記した図3に示す処理が実行されることによって、対象ユーザは、情報管理システムに登録され、サーバ装置20にログインすることができる状態となる。
ここでは1つのクライアント端末10を使用する対象ユーザが情報管理システムに登録される場合について説明したが、当該情報管理システムが複数のクライアント端末10を備える場合には、当該クライアント端末10(を使用するユーザ)毎に図3に示す処理が実行される。この場合、サーバ装置20に含まれる格納部22には、クライアント端末10(を使用するユーザ)毎の第2復元情報が格納されることになる。
次に、図4のシーケンスチャートを参照して、情報管理システムにおいて実行されるログイン処理の処理手順の一例について説明する。
まず、上記した図3の処理が実行されることによって情報管理システムに事前に登録された対象ユーザがサーバ装置20にログインする場合、当該対象ユーザは、クライアント端末10を操作することによって当該クライアント端末10(タッチスクリーンディスプレイ105)にログイン画面を表示し、当該ログイン画面において対象ユーザを示すユーザ情報(第1ユーザ情報)を入力する。なお、ここで対象ユーザによって入力されるユーザ情報は、上記した図3において対象ユーザによって入力されたユーザ情報と同一である。
このように対象ユーザによって入力されたユーザ情報は、ログイン要求として、ログイン制御部12に送信される(ステップS21)。
ステップS21の処理が実行されると、ログイン制御部12は、当該ステップS21において送信されたログイン要求(ユーザ情報)を受信し、当該ユーザ情報をユーザ認識(識別)要求としてユーザ認識部11に送信する(ステップS22)。このステップS22の処理が実行されることにより、対象ユーザを認識するための処理がユーザ認識部11に対して要求される。
次に、ステップS22において送信されたユーザ認識要求を受信したユーザ認識部11は、対象ユーザを認識するために用いられるアルゴリズム情報をアルゴリズム情報管理部13に対して要求する(ステップS23)。このステップS23においては、上記した対象ユーザを示すユーザ情報がユーザ認識部11からアルゴリズム情報管理部13に対して送信される。
アルゴリズム情報管理部13は、ステップS23におけるユーザ認識部11からの要求に応じて、第2復元情報をサーバ装置20に対して要求する(ステップS24)。このステップS24においては、上記した対象ユーザを示すユーザ情報がアルゴリズム情報管理部13からサーバ装置20に対して送信される。
この場合、サーバ装置20(ログイン処理部21)は、ステップS24におけるアルゴリズム情報管理部13からの要求に応じて、当該サーバ装置20に含まれる格納部22から第2復元情報を取得する。
ここで、上記したように格納部22には第2復元情報及びユーザ情報が対応づけて格納されているため、サーバ装置20は、ステップS24においてアルゴリズム情報管理部13(クライアント端末10)から送信されたユーザ情報に対応づけて格納部22に格納されている第2復元情報を取得する。なお、ここで取得される第2復元情報は、上記した図3に示すステップS5において対象ユーザの特徴情報に基づいて生成されたアルゴリズム情報(つまり、対象ユーザを認識するために用いられるアルゴリズム情報)を復元するための情報である。
サーバ装置20は、取得された第2復元情報を、ステップS24におけるアルゴリズム情報管理部13からの要求に対する応答として、当該アルゴリズム情報管理部13(クライアント端末10)に返却する(ステップS25)。
次に、アルゴリズム情報管理部13は、クライアント端末10に含まれる格納部14に格納されている第1復元情報を取得する(ステップS26)。
アルゴリズム情報管理部13は、ステップS26において取得された第1復元情報及びステップS25においてサーバ装置20から返却された第2復元情報に基づいてアルゴリズム情報を復元する(ステップS27)。
ステップS27において復元されたアルゴリズム情報は、ステップS23におけるユーザ認識部11からの要求に対する応答として、アルゴリズム情報管理部13から当該ユーザ認識部11に返却される(ステップS28)。
ステップS28の処理が実行されると、ユーザ認識部11は、認証器30に対して対象ユーザの特徴を表す特徴情報(対象ユーザの特徴情報)を要求する(ステップS29)。
認証器30は、ユーザ認識部11からの要求に応じて対象ユーザの特徴情報を取得し、当該対象ユーザの特徴情報をユーザ認識部11に返却する(ステップS30)。
なお、このステップS29及びS30の処理は、上記した図3に示すステップS3及びS4の処理と同様である。
次に、ユーザ認識部11は、ステップS28においてアルゴリズム情報管理部13から返却されたアルゴリズム情報及びステップS30において認証器30から返却された対象ユーザの特徴情報に基づいて、対象ユーザを認識(識別)する(ステップS31)。
この場合、ユーザ認識部11は、対象ユーザの特徴情報をアルゴリズム情報によって示されるアルゴリズムに適用することによってユーザ情報(第2ユーザ情報)を取得する。
ステップS31の処理が実行されると、ユーザ認識部11は、当該ステップS31における対象ユーザの認識結果(第2ユーザ情報)を、ステップS22においてログイン制御部12からユーザ認識部11に対して送信されたユーザ認識要求に対する応答として、ログイン制御部12に返却する(ステップS32)。
次に、ログイン制御部12は、ステップS32においてユーザ認識部11から返却されたユーザ情報と対象ユーザによって入力されたユーザ情報(第1ユーザ情報)とを比較することによって、対象ユーザが正当なユーザであるか否かを判定する。
ここで、対象ユーザが正当なユーザでない(つまり、ユーザ情報が一致しない)と判定された場合、図4に示す処理は終了される。この場合、例えばログイン制御部12からユーザに対して、対象ユーザが正当なユーザでないためログインすることができないこと等が通知されてもよい。
一方、対象ユーザが正当なユーザである(つまり、ユーザ情報が一致する)と判定された場合、ログイン制御部12は、例えば対象ユーザを示すユーザ情報を、ログイン要求としてサーバ装置20(ログイン処理部21)に送信する(ステップS33)。
ログイン要求を受信したサーバ装置20は、対象ユーザをサーバ装置20にログインさせ、当該ログイン結果をクライアント端末10(ログイン制御部12)に送信する(ステップS34)。
ログイン結果を受信したログイン制御部12は、対象ユーザのサーバ装置20へのログインが完了した(ログイン完了通知)ことを当該対象ユーザに通知する(ステップS35)。なお、ステップS35が実行された場合、対象ユーザのサーバ装置20へのログインが完了したことを示すメッセージ等が例えばタッチスクリーンディスプレイ105に表示される。
上記した図4に示す処理が実行されることによって、対象ユーザは、サーバ装置20にログインし、クライアント端末10を介してサーバ装置20が提供するサービスの利用を開始することができる。
上記したように本実施形態においては、事前に対象ユーザを情報管理システムに登録する登録処理として、認証器30を介してクライアント端末10を使用する対象ユーザの特徴情報(対象ユーザの特徴を表す特徴情報)を取得し、当該対象ユーザの特徴情報に基づいてアルゴリズム情報を生成し、当該アルゴリズム情報を復元することが可能な第1及び第2復元情報を当該アルゴリズム情報から生成する。この場合、第1復元情報はクライアント端末10に含まれる格納部14(第1格納部)に格納され、第2復元情報はサーバ装置20に含まれる格納部22(第2格納部)に格納される。
また、本実施形態においては、対象ユーザをサーバ装置20にログインさせるログイン処理として、認証器30を介してクライアント端末10を使用する対象ユーザの特徴情報を取得し、当該クライアント端末10に含まれる格納部14に格納されている第1復元情報を取得し、サーバ装置20に含まれる格納部22に格納されている第2復元情報を取得し、第1及び第2復元情報に基づいてアルゴリズム情報を復元し、対象ユーザの特徴情報及びアルゴリズム情報に基づいて当該対象ユーザを認識する。
このように認識された対象ユーザは、例えばサーバ装置20に対してログインすることができ、当該サーバ装置20によって提供される各種サービスを利用することが可能となる。
上記した本実施形態の構成によれば、サーバ装置20によって提供されるサービスを利用するユーザを認識する(つまり、ユーザをサーバ装置20にログインさせる)ためのアルゴリズムに関するアルゴリズム情報ではなく、当該アルゴリズム情報を復元するための第1及び第2復元情報をクライアント端末10及びサーバ装置20において分離して管理することにより、仮にクライアント端末10及びサーバ装置20の一方から情報が流出したとしても、アルゴリズム情報が復元されることがないため、サーバ装置20への不正ログインまたは情報漏えい等のリスクを低減することができる。
なお、本実施形態においては認識された対象ユーザをサーバ装置20にログインさせるものとして説明したが、本実施形態は、アルゴリズム情報を復元することが可能な第1及び第2復元情報をクライアント端末とサーバ装置20とで別々に管理する構成であればよく、当該対象ユーザが認識された後の処理は他の処理であっても構わない。
また、本実施形態においては、認証器30がカメラ、マイク及び指紋認証器のうちの少なくとも1つであるものとして説明したが、認証器30は、ユーザを認識することが可能な特徴情報(生体情報)を得ることができるものであれば他のデバイスであっても構わない。
また、本実施形態においてはアルゴリズム情報から2つの復元情報(第1及び第2復元情報)が生成されるものとして説明したが、3つ以上の復元情報が生成されてもよい。更に、本実施形態においては、複数の復元情報を分離して管理すればよく、当該複数の復元情報の一部がクライアント端末10及びサーバ装置20以外の外部装置で管理されてもよい。
(第2実施形態)
次に、第2実施形態について説明する。本実施形態においては、前述した第1実施形態の具体的態様について説明するものとし、主としてWebアプリケーション(プログラム)を介してサーバ装置20からユーザに各種サービスを提供する情報管理システムについて説明する。
図5は、本実施形態に係る情報管理システムの機能構成の一例を示すブロック図である。なお、図5においては前述した図1と同様の部分には同一参照符号が付されており、ここではその詳しい説明を省略する。
本実施形態において、クライアント端末10は、アルゴリズム情報管理部15、localStorage16及び署名生成部17を含む。また、アルゴリズム情報管理部15は、分割部15a及び復元部15bを含む。
なお、本実施形態において、クライアント端末10に含まれるユーザ認識部11、ログイン制御部12、アルゴリズム情報管理部15、localStorage16及び署名生成部17は、上記したクライアント端末10(ブラウザ)上で動作するWebアプリケーションに関する機能部である。
分割部15aは、ユーザ認識部11によって生成されたアルゴリズム情報を分割することによって第1及び第2復元情報を生成する。第1復元情報は、localStorage16に格納(保存)される。一方、第2復元情報は、サーバ装置20に送信され、当該サーバ装置20に含まれる格納部22に格納(保存)される。
復元部15bは、localStorage16に格納された第1復元情報及びサーバ装置20に含まれる格納部22に格納された第2復元情報に基づいて、アルゴリズム情報を復元する。
なお、上記したWebアプリケーションはクライアント端末10において起動(実行)されるブラウザ(Webブラウザ)上で動作するが、localStorage16は、当該ブラウザが固有で持つ記憶領域(すなわち、Webアプリケーション上で利用可能な保存領域)に相当する。
また、本実施形態においては、生体認証でログインを行うWebアプリケーションのための規格であるWeb Authentication APIが適用されるものとする。署名生成部17は、このWeb Authentication APIに基づく署名を生成する機能部である。
ここで、図6は、Web Authentication APIによる認証手順の概要を示している。
図6によれば、まず、サーバ装置20は、Challengeと称されるパラメータ(サーバから送信されるランダムな値)をクライアント端末10に対して送信する(ステップS41)。
次に、クライアント端末10においてブラウザが内部的にパラメータを検証し、AuthenticatorResponse.clientDataJSONを作成する。このパラメータは、clientDataJSONのハッシュとともに認証器30に渡される(ステップS42)。
ステップS2の処理が実行されると、認証器30を用いたユーザ認識が行われ、Assertionが作成される(ステップS43)。なお、Assersionは、予め用意されている秘密鍵による署名が行われたclientDataJSONのハッシュ等を含むステートメントである。
ステップS43において作成されたAssertionは、ブラウザに返される(ステップS44)。
次に、ブラウザが最終的なデータを生成し、アプリケーション(JavaScript(登録商標) Application)がサーバ装置20にレスポンスを送信する(ステップS45)。
ステップS45の処理が実行されると、サーバ装置20は、上記した秘密鍵と対となる公開鍵を用いて、ステップS45におけるレスポンスの検証を行う(ステップS46)。
すなわち、Web Authentication APIに基づく認証手順(ログイン処理)によれば、パラメータ(Challenge)に対してクライアント端末10側で秘密鍵による署名を生成し、サーバ側で公開鍵による検証を実施することにより、データが改ざんされていないことの証明を行うことができる。
次に、本実施形態における情報管理システムの動作について説明する。本実施形態において、情報管理システムは、前述した第1実施形態と同様に、登録処理及びログイン処理を実行する。以下、本実施形態における登録処理及びログイン処理について説明する。
まず、図7のシーケンスチャートを参照して、情報管理システムにおいて実行される登録処理の処理手順の一例について説明する。以下、図7に示す登録処理によって情報管理システムに登録されるユーザを、便宜的に、対象ユーザと称する。
本実施形態における登録処理においては、前述した図3に示すステップS1~S5の処理に相当するステップS51~S55の処理が実行される。
なお、本実施形態において、認証器30はカメラであるものとし、当該認証器30を用いて得られる特徴情報は対象ユーザの顔を含む画像(以下、対象ユーザの画像と表記)であるものとする。この場合、ステップS55においては、対象ユーザの画像(入力画像)からユーザ情報(ラベル)を出力することが可能な機械学習モデルが生成されるものとする。この機械学習モデルは、対象ユーザの画像(特徴情報)を入力した場合に当該対象ユーザを示すユーザ情報を出力するようにパラメータ(例えば、重み係数)を更新することによって生成される。すなわち、本実施形態において、「アルゴリズム情報(機械学習モデル)を生成する」とは、当該機械学習モデルを学習させ、当該機械学習モデルを更新することをいう。機械学習モデルは、例えばニューラルネットワークまたはランダムフォレスト等の既知の様々な機械学習のアルゴリズムを用いて生成されればよい。
ステップS55において生成された機械学習モデルは、アルゴリズム情報分割要求としてユーザ認識部11からアルゴリズム情報管理部15に送信される(ステップS56)。
また、アルゴリズム情報管理部15は、ステップS56においてユーザ認識部11から送信されたアルゴリズム情報分割要求(機械学習モデル)を分割部15aに渡す(ステップS57)。
分割部15aは、アルゴリズム情報分割要求としてアルゴリズム情報管理部15から渡された機械学習モデルを第1及び第2復元情報に分割する(ステップS58)。
ここで、機械学習モデル(アルゴリズム情報)は、複数のファイルから構成されていてもよいし、単一のファイルから構成されていてもよい。
機械学習モデルが複数のファイルから構成されている場合、分割部15aは、例えばファイル単位で当該機械学習モデルを第1及び第2復元情報に分割する。
一方、機械学習モデルが単一のファイルから構成されている場合、分割部15aは、例えば当該ファイルに所定のデータフォーマット(形式)で記述されている機械学習モデルのデータ構造に基づいて当該機械学習モデルを分割することができる。具体的には、機械学習モデルのデータフォーマットがJSON(JavaScript Object Notation)形式である場合、当該JSON形式はツリー構造(階層構造)を表現することができるため、当該ツリー構造(機械学習モデル)を分割するものとする。
図8は、機械学習モデルのデータ構造(JSON形式)の一例を示す。図8に示す機械学習モデルのデータ構造は、ツリー構造を有し、複数のブロックA~Eから構成されている。この場合、分割部15aは、機械学習モデルを、例えば図9に示す第1復元情報及び図10に示す第2復元情報に分割することができる。図9に示す第1復元情報は、複数のブロックA~EのうちのブロックA~Cを含む。一方、図10に示す第2復元情報は、複数のブロックA~EのうちのブロックD及びEを含む。
なお、詳細な説明については省略するが、例えば図11に示す機械学習モデルのデータ構造の場合、当該機械学習モデルは、図12に示す第1復元情報及び図13に示す第2復元情報に分割することができる。
また、機械学習モデルを分割することによって得られる第1復元情報はlocalStorage16に格納されるが、当該localStorage16には、ストレージ性能(例えば、格納可能な情報の容量及びデータフォーマット等)に関する制約がある場合がある。具体的には、例えば主要なブラウザの場合、localStorage16に格納可能な情報の容量(の上限)は10MBである場合が多い。
このため、分割部15aは、上記したlocalStorage16の制約に基づいて機械学習モデルを分割するものとする。具体的には、上記したようにlocalStorage16に格納可能な情報の容量が10MBである場合には、分割部15aは、少なくとも第1復元情報のサイズが例えば10MB未満となるように機械学習モデルを分割する。なお、機械学習モデルがJSON形式以外のデータフォーマット(機械学習モデルを分割することができないデータフォーマット)で記述されている場合には、当該機械学習モデルをJSON形式に変換して機械学習モデルを分割する。
すなわち、本実施形態においては、少なくともlocalStorage16の制約を満たす第1復元情報が得られるようにアルゴリズム情報が分割されればよい。
なお、機械学習モデルがJSON形式以外のデータフォーマット(機械学習モデルを分割することができないデータフォーマット)で記述されている場合には、当該機械学習モデルをJSON形式に変換して機械学習モデルを分割することも可能である。
また、本実施形態においてはアルゴリズム情報が機械学習モデルであるものとして説明したが、当該アルゴリズム情報が特徴情報から一意のユーザを認識(識別)可能な複数の条件から構成されるような場合には、当該アルゴリズム情報を条件単位で第1及び第2復元情報に分割することも可能である。
ステップS58の処理が実行されると、前述した図3に示すステップS8~S14の処理に相当するステップS59~S65の処理が実行される。
なお、ステップS59においては第1復元情報が格納部14に格納されるが、localStorage16に格納可能な情報のデータフォーマットとしては、例えば文字列形式が設定されている場合がある。上記したように第1復元情報(のデータフォーマット)はJSON形式であるため、当該第1復元情報は、JSON形式から文字列形式に変換されて格納部14に格納される。ステップS63の処理についても同様である。
上記した図7に示す処理が実行されることによって、対象ユーザは、情報管理システムに登録されサーバ装置20にログインすることができる状態となる。
次に、図14のシーケンスチャートを参照して、情報管理システムにおいて実行されるログイン処理の処理手順の一例について説明する。
本実施形態におけるログイン処理においては、前述した図4に示すステップS21~S23の処理に相当するステップS71~S73の処理が実行される。なお、図14においては省略されているが、上記した図6に示すステップS41の処理は、例えばステップS71及びS72の処理の間に実行される。また、ステップS72の処理は、図6に示すステップS42の処理に相当する。
次に、アルゴリズム情報管理部15は、ステップS73におけるユーザ認識部11からの要求に応じて、アルゴリズム情報を復元部15bに対して要求する(ステップS74)。このステップS74においては、対象ユーザを示すユーザ情報がアルゴリズム情報管理部15から復元部15bに渡される。
復元部15bは、ステップS74におけるアルゴリズム情報管理部15からの要求に応じて、第2復元情報をサーバ装置20に対して要求する(ステップS75)。このステップS75においては、上記した対象ユーザを示すユーザ情報が復元部15bからサーバ装置20に対して送信される。
この場合、サーバ装置20(ログイン処理部21)は、ステップS75における復元部15bからの要求に応じて、格納部22に格納されている第2復元情報を取得する。なお、格納部22に格納されている第2復元情報は文字列形式であるため、当該第2復元情報は文字列形式からJSON形式に変換される。
サーバ装置20は、取得された第2復元情報を、ステップS75における復元部15bからの要求に対する応答として、当該復元部15b(クライアント端末10)に返却する(ステップS76)。
次に、復元部15bは、クライアント端末10に含まれる格納部14に格納されている第1復元情報を取得する(ステップS77)。なお、格納部14に格納されている第1復元情報は文字列形式であるため、当該第1復元情報は文字列形式からJSON形式に変換される。
復元部15bは、ステップS77において取得された第1復元情報及びステップS76においてサーバ装置20から返却された第2復元情報に基づいて機械学習モデル(アルゴリズム情報)を復元する(ステップS78)。なお、本実施形態において、第1及び第2復元情報は上記したように機械学習モデルを分割したものであるため、ステップS78においては当該第1及び第2復元情報を統合する(組み合わせる)ことによって機械学習モデルを復元することができる。具体的には、上記した図9に示す第1復元情報及び図10に示す第2復元情報であれば、当該第1及び第2復元情報を統合することによって図8に示す機械学習モデルを復元することが可能である。また、図12に示す第1復元情報及び図13に示す第2復元情報であれば、当該第1及び第2復元情報を統合することによって図11に示す機械学習モデルを復元することが可能である。
ステップS78において復元された機械学習モデルは、ステップS74におけるアルゴリズム情報管理部15からの要求に対する応答として、復元部15bから当該アルゴリズム情報管理部15に返却される(ステップS79)。
ステップS79の処理が実行されると、アルゴリズム情報管理部15は、ステップS73におけるユーザ認識部11からの要求に対する応答として、当該ステップS79において復元部15bから返却された機械学習モデルを当該ユーザ認識部11に返却する(ステップS80)。
次に、ユーザ認識部11は、認証器30に対して対象ユーザの特徴情報を要求する(ステップS81)。
ここで、本実施形態において認証器30はカメラであるため、当該認証器30(カメラ)は、ユーザ認識部11からの要求に応じて当該対象ユーザの画像を取得し、当該画像をユーザ認識部11に返却する(ステップS82)。
次に、ユーザ認識部11は、ステップS80においてアルゴリズム情報管理部13から返却された機械学習モデル及びステップS82において認証器30から返却された対象ユーザの画像に基づいて、対象ユーザを認識(識別)する(ステップS83)。
この場合、ユーザ認識部11は、対象ユーザの画像を機械学習モデルに入力することによって当該機械学習モデルから出力されるユーザ情報(ラベル)を取得する。
ステップS83の処理が実行されると、ユーザ認識部11は、当該ステップS83における対象ユーザの認識結果(つまり、対象ユーザが正当なユーザであるか否か)をステップS72においてログイン制御部12からユーザ認識部11に対して送信されたユーザ認識要求に対する応答として、ログイン制御部12に返却する(ステップS84)。
なお、例えばステップS73~S84の処理は、上記した図6に示すステップS43の処理に相当する。
次に、ログイン制御部12は、ステップS84においてユーザ認識部11から返却されたユーザ情報と対象ユーザによって入力されたユーザ情報(対象ユーザを示すユーザ情報)とを比較することによって、対象ユーザが正当なユーザであるか否かを判定する。具体的には、機械学習モデルから出力されたユーザ情報が対象ユーザによって入力されたユーザ情報と一致する場合に、対象ユーザが正当なユーザであると判定される。
ここで、ステップS84において対象ユーザが正当なユーザでない(つまり、ユーザ情報が一致しない)と判定された場合、図14に示す処理は終了される。
一方、ステップS84において対象ユーザが正当なユーザである(つまり、ユーザ情報が一致する)と判定された場合、ログイン制御部12は、署名生成部17に対して署名(の生成)を要求する(ステップS85)。このステップS85においては、例えばサーバ装置20において生成された値(Challenge)を含むパラメータがログイン制御部12から署名生成部17に送信される。
署名生成部17は、ステップS85におけるログイン制御部12からの要求に応じて、当該ログイン制御部12から送信されたパラメータに対する署名を生成する(ステップS86)。なお、ステップS86における署名は、クライアント端末10内に予め用意されている秘密鍵を用いて生成される。
ステップS86において生成された署名は、ステップS85におけるログイン制御部12からの要求に対する応答として、当該ログイン制御部12に返却される(ステップS87)。
なお、ステップS85~S87の処理は、上記した図6に示すステップS44の処理に相当する。
ステップS87の処理が実行されると、ログイン制御部12は、対象ユーザを示すユーザ情報及びステップS87において署名生成部17から返却された署名を、ログイン要求としてサーバ装置20(ログイン処理部21)に送信する(ステップS88)。
サーバ装置20は、ログイン制御部12から送信された署名に対する検証を上記した秘密鍵と対となる公開鍵を用いて実施する(ステップS89)。ステップS89においては、署名を公開鍵を用いて検証することによって得られるパラメータを当該サーバ装置20において生成されたパラメータと比較することによって行われる。
このような検証においてパラメータが一致した場合(つまり、当該検証が成功した場合)、サーバ装置20は、ログイン制御部12から送信されたユーザ情報によって示される対象ユーザをサーバ装置20にログインさせ、当該ログイン結果をクライアント端末10(ログイン制御部12)に送信する(ステップS90)。
ステップS90の処理が実行されると、前述した図4に示すステップS35の処理に相当するステップS91の処理が実行される。
上記した図14に示す処理が実行されることによって、対象ユーザは、サーバ装置20にログインし、クライアント端末10を介してサーバ装置20が提供するサービスの利用を開始することができる。
上記したように本実施形態においては、Webアプリケーションを介してサーバ装置20からサービスが提供される場合であっても、前述した第1実施形態と同様に、情報の流出に対するリスクを低減することができる。
なお、本実施形態においてはアルゴリズム情報が画像(特徴情報)を学習することによって生成される機械学習モデルであるものとして説明したが、当該機械学習モデルが複数のファイルから構成されている場合には、ファイル単位で当該機械学習モデルを第1及び第2復元情報に分割するものとする。また、機械学習モデルが単一のファイルから構成されている場合には、当該ファイルに記述されている機械学習モデルのデータ構造(例えば、ツリー構造)に基づいて当該機械学習モデルを第1及び第2復元情報に分割するものとする。
また、上記したようにlocalStorage16(クライアント端末10上で動作するブラウザが有する記憶領域)に対して例えば容量またはデータフォーマット等を含む制約が設定されている場合には、機械学習モデル(アルゴリズム情報)を当該クライアント端末10側で管理することができない場合があるが、本実施形態においては、当該制約に合わせて機械学習モデルから第1復元情報を分割することにより、当該第1復元情報を適切にクライアント端末10において管理することが可能となる。
具体的には、localStorage16の容量が10MBである場合には、第1復元情報が10MB未満となるように機械学習モデルが分割されればよい。
また、localStorage16が文字列形式を要求している場合には、機械学習モデル(JSON形式)を文字列形式(つまり、制約に含まれるデータフォーマット)に変換するものとする。なお、JSON形式は文字列形式に容易に変換可能なデータフォーマットであるため、例えば機械学習モデルがJSON形式以外のデータフォーマットである場合には、当該機械学習モデルをJSON形式に変換する処理を実行しても構わない。
これによれば、例えばlocalStorage16の容量が10MBであり、かつ、当該localStorage16のデータフォーマットとして文字列形式が要求されるWebアプリケーション技術が適用される場合であっても、本実施形態に係る構成を実現することが可能である。
なお、本実施形態においてはクライアント端末10に含まれるlocalStorage16に制約が設定されている場合について主に説明したが、例えばサーバ装置20に含まれる格納部22に容量またはデータフォーマット等に関する制約が設定されていても構わない。このような場合であっても同様に、機械学習モデルから当該制約に応じた第2復元情報を分割するようにすればよい。
また、本実施形態においては、対象ユーザによって入力(指定)されたユーザ情報(第1ユーザ情報)と、機械学習モデル(アルゴリズム情報)に対象ユーザの特徴情報を入力することによって当該機械学習モデルから出力されるユーザ情報(第2ユーザ情報)とを比較する。これによれば、対象ユーザが正当なユーザであるか否かを判定し、対象ユーザが正当なユーザである(つまり、ユーザ情報が一致する)場合に当該対象ユーザをサーバ装置20にログインさせることができる。
更に、本実施形態においては、Web Authentication APIを適用し、サーバ装置20において生成された値を含むパラメータに対する署名を秘密鍵を用いて生成し、当該生成された署名に基づく検証を当該秘密鍵と対となる公開鍵を用いて実施し、当該検証が成功した場合に対象ユーザをサーバ装置20にログインさせる構成とすることにより、セキュリティ性を向上させることができる。
ここで、本実施形態において説明したように第1復元情報をクライアント端末10(localStorage16)において管理し、第2復元情報をサーバ装置20(格納部22)において管理する構成の場合、対象ユーザがサーバ装置20にログインする際にサーバ装置20から第2復元情報を取得する必要があるため、例えば機械学習モデル(アルゴリズム情報)全体をクライアント端末10において管理する構成と比較して、ネットワークレイテンシが大きくなる。
一方で、本実施形態に係る構成によれば、上記したように情報の流出に対するリスクを低減することが可能である。
このため、本実施形態に係る情報管理システムは、対象ユーザがサーバ装置20にログインする際のレイテンシが大きくなったとしても、セキュリティを優先させたい場合に有用である。具体的には、本実施形態は、例えば金融システムまたは電子決済システム等に適用することが有用である。
ここで、図15は、対象ユーザが本実施形態に係る情報管理システム(例えば、金融システムまたは電子決済システム等)において提供されるサービスを利用する(サーバ装置20にログインする)場合の具体的な流れを表している。
クライアント端末10がスマートフォンであり、認証器30が当該スマートフォンに搭載されたカメラであるものとすると、対象ユーザは、図15に示すように、例えば当該スマートフォンに搭載されているカメラを用いて当該対象ユーザの顔を撮影する。
この場合、登録処理においては、カメラによって撮影された対象ユーザの顔を含む画像401に基づいて機械学習モデル402が生成され、当該機械学習モデル402が分割された第1及び第2復元情報がそれぞれクライアント端末10及びサーバ装置20に格納(保存)される。
一方、ログイン処理においては、カメラによって撮影された対象ユーザの顔を含む画像401が上記した第1及び第2復元情報から復元された機械学習モデル402に入力され、当該機械学習モデル402から出力されるユーザ情報に基づいて対象ユーザが認識される。これにより、対象ユーザは、情報管理システム(サーバ装置20)にログインすることができ、当該システムにおいて提供されるサービスを利用可能となる。
なお、本実施形態においてはクライアント端末10(ブラウザ)上でWebアプリケーションが動作する場合について説明したが、本実施形態はクライアント端末10上で例えばネイティブアプリケーション(プログラム)が動作するような場合に適用されてもよく、このような構成の場合であっても、情報の流出に対するリスクを低減することは可能である。
以上述べた少なくとも1つの実施形態によれば、情報の流出に対するリスクを低減することが可能な情報管理方法、情報管理システム、端末装置及びプログラムを提供することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。