以下に、本願に係る生成装置、生成方法及び生成プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法及び生成プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
〔1.生成処理の一例〕
まず、図1を用いて、実施形態に係る生成処理の一例について説明する。図1は、実施形態に係る生成処理の一例を示す図である。図1では、本願に係る生成装置に対応するユーザ端末10によって、ユーザの認証に用いるための情報が生成される生成処理の一例を示す。
図1に示す認証サーバ100は、ユーザ端末10から送信される情報に基づいて、ユーザ端末10を利用するユーザを認証するサーバ装置である。また、ユーザ端末10は、ユーザによって利用される情報処理端末である。図1では、ユーザ端末10は、例えばスマートフォン(Smartphone)である。図1の例では、ユーザ端末10は、ユーザの一例であるユーザU01によって利用されるものとする。
実施形態では、認証サーバ100は、ユーザU01の認証に用いられる認証情報であって、各々が異なる手段によって取得される複数の種別の認証情報に基づいてユーザU01を認証する、いわゆる多要素認証を行う。一例として、認証サーバ100は、パスワードや生体情報などのクレデンシャル情報(Credential Information)を用いて、ユーザU01の認証を行う。また、認証サーバ100は、ユーザ端末10から送信される、ユーザU01のコンテキスト(context)に関する各種情報に基づいて認証を行う。実施形態においてコンテキストとは、ユーザ端末10が利用されている状況や、ユーザ端末10を利用するユーザU01の状況のことをいう。認証サーバ100は、クレデンシャル情報やコンテキストに関する情報(以下、「コンテキスト情報」と表記する)といった複数の情報を用いてユーザU01の認証を行うことで、認証の安全性を向上させる。なお、コンテキスト情報を用いた認証(以下、「コンテキスト認証」と表記する)であれば、ユーザU01は、パスワード等を入力するような作業を行わずとも、日常的にユーザ端末10によって取得される行動情報を用いて認証を行わせることができる。
ここで、コンテキストに関する各種情報とは、例えば、異なる手段(例えばセンサなど)によって取得される情報や、異なる状況を示す情報を意味する。例えば、コンテキスト情報には、ユーザU01によってユーザ端末10が使用されている環境情報や、ユーザ端末10を所持するユーザU01が置かれている状態を示す情報や、ユーザU01およびユーザU01と関わりのある他のユーザに関する情報等が含まれる。
そして、認証サーバ100は、各種コンテキスト情報に基づいてユーザU01を認証する。すなわち、認証サーバ100は、ユーザU01の位置情報の推移と、ユーザ端末10の利用状況と、他の外部端末とユーザ端末10との通信情報など、複数の要素を組み合わせてユーザU01の認証を行う。なお、多要素認証においては、コンテキストに関する情報と、上記したパスワードのようなクレデンシャル情報とを組み合わせて認証が行われてもよい。例えば、多要素認証では、任意のユーザが入力したパスワードのみで認証を行うのではなく、パスワードが入力された際の位置情報が当該ユーザの本人性を示す情報であるか否かを判定することで、当該パスワードが有効か無効かを判定する。このため、多要素認証は、単独の要素を認証情報として用いるよりも安全性が高くなる。
なお、一般に、コンテキスト認証では、処理の対象となるユーザごとに学習モデル(以下、単に「モデル」と表記する)が生成される。例えば、認証サーバ100は、ユーザU01の位置情報をユーザ端末10から継続的に取得する。そして、認証サーバ100は、取得したユーザU01の位置情報を認証に用いる情報として機械学習を行う。言い換えれば、認証サーバ100は、ユーザU01が日常的に所在しうる位置を学習する。その後、認証サーバ100は、ユーザU01を認証するタイミングにおいて、ユーザ端末10から取得された位置情報が、学習した位置情報と所定の閾値内であるか否かを判定する。すなわち、認証サーバ100は、取得された位置情報が、日常的に観測されるユーザの位置情報と一致しているか否かを判定することで、ユーザの本人性を判定する。そして、認証サーバ100は、所定の閾値内であると判定したのであれば、認証のタイミングの時点でユーザ端末10を取り扱っているユーザを、ユーザU01本人であると判定する。
認証サーバ100は、コンテキストに関する各種情報について、上記のような学習処理を行い、ユーザごとにモデルを生成する。この場合、コンテキストに関する各種情報は、モデルにおける素性となる。例えば、素性は、位置情報であったり、ユーザ端末10から観測される加速度(ユーザ端末10の物理的な動作状況)であったり、ユーザ端末10に対する操作の癖(電源のオンオフや、画面のオンオフのタイミング等)であったり、ユーザ端末10と他の端末との通信の状況等を示す通信情報であったりする。
上記のようにモデルが生成される場合、各素性には、重み値が設定される。学習が進むにつれ、ユーザの本人性を判定する要素として貢献する割合が高い素性は、重み値が自ずと重くなる。また、ユーザの本人性を判定する要素として貢献する割合が低い素性は、重み値が自ずと低くなる。例えば、ユーザU01の本人性を判定するうえで、位置情報が貢献する割合が高い場合には、ユーザU01に関するモデルにおいて、位置情報に対応する素性の重み値が重くなると想定される。具体的には、モデルを生成する過程において正解データ(すなわち、ユーザU01本人であると確認された状態でコンテキスト情報が送信された状態)と位置情報との組合せがサンプルとして多く取得された場合に、位置情報に対応する素性の重み値が重くなる。また、ユーザU01の認証において位置情報が多く用いられた場合や、ユーザU01が利用するユーザ端末10から送信される情報のうち位置情報の情報量が多い場合などにも、位置情報に対応する素性の重み値が重くなる。このように、コンテキストを利用する多要素認証に関するモデルでは、各素性によって重み値の偏りが生じ得る。
ところで、このようなモデルは、ユーザの認証を行ったサービスを提供するような事業者に利用される場合がある。具体的には、ユーザ認証を要するアプリを開発する開発者等によって、モデルが利用される。このため、モデルが生成された後であっても頻繁に情報が更新されたり、モデルへの情報の入出力が頻繁に行われたりするといった状況が発生しうる。このような状況に対応するために、モデルは、モデルの仕様(例えば、モデルにおいて各素性がどのような重み値に対応するかといった仕様が記録された仕様書)とともに、比較的外部からアクセスしやすい環境に置かれる。
ここで、悪意のある第三者(以下、「不正ユーザ」と表記する)が、ユーザU01に成りすまして認証を行おうとする事態について想定する。コンテキストによる認証が行われる場合、不正ユーザは、ユーザU01に似せたコンテキストとなりうる行動を頻繁に採用することで、ユーザU01に成りすますことができる。このとき、不正ユーザは、モデルを参照することにより、ユーザU01の認証において重みのある素性を知得できる。さらに、不正ユーザは、モデルの仕様書を確認することで、ユーザごとのモデルにおいて重みの重い素性に対応するコンテキストを知得できる。言い換えれば、不正ユーザは、ユーザU01のコンテキストに関する各種情報のうち、認証に有効な情報(例えば、位置情報)のみを似せた情報を取得することで、ユーザU01に成りすますことのできる可能性を高めることができる。例えば、不正ユーザは、ユーザU01と似た位置情報が取得されるような行動を採ることで、ユーザU01に成りすますことができる。つまり、モデルにおいて、各素性と重み値との関係が不正ユーザに知られることは、不正な認証が行われる可能性が高まることを意味する。
ここで、安全性を向上させるために、モデルやモデルの仕様書について、比較的安全性の高い記憶領域に保持するといった手法も考え得る。しかしながら、上述のように、モデルや仕様書は、アプリ開発者等が利用しやすいように、比較的外部からアクセスしやすい領域に置くことが要求される。また、コンテキスト認証のように利便性を確保した認証を行うためには、モデルに対して頻繁かつ高速にアクセスできる環境が整っていた方が好ましい。このような観点から、モデルは、比較的外部からアクセスしやすい領域に置かれることとなる。
なお、ユーザ端末10と認証サーバ100との間の通信は、通常、暗号化された情報でやり取りが行われるため、一定の安全性が確保される。しかしながら、不正ユーザは、ユーザ端末10と認証サーバ100との間の通信を観測することにより、ユーザ端末10からどのような情報が送信されているかを推定することもできる。具体的には、不正ユーザは、ユーザ端末10から認証サーバ100に送信される情報のうち、位置情報が占める情報量が比較的多いといった情報を知得することができる。ユーザ端末10から認証サーバ100へ送信される情報には暗号化処理が施されるものの、その情報量等から、不正ユーザは、どのような手段によって取得された情報が認証に用いられているかといった大まかな推定を行うことは可能である。同様に、不正ユーザは、ユーザU01の認証については、コンテキスト情報ではなく、パスワードや指紋データ等のクレデンシャル情報が多用されているか否かといった情報を推定することができる。また、暗号化された情報が不正ユーザから取得され、解析された場合には、ユーザU01の認証においてどのような手段で取得された情報の重みが重いか、といった推定は簡単に行われてしまう。
以上を前提として、実施形態に係るユーザ端末10は、本願に係る生成処理によって、認証サーバ100に送信する内容が容易には特定されない情報(以下に説明するように、かかる情報を「抽出情報」と称する)を生成する。具体的には、ユーザ端末10は、多要素認証にあたって種々の手段から認証情報を取得したうえで、その手段や情報量が特定されないような抽象化された情報を生成する。そして、ユーザ端末10は、生成した抽象情報を認証サーバ100に送信して認証を行わせる。これにより、ユーザ端末10は、不正ユーザがモデルと仕様書を参照したとしても、当該ユーザの認証においてどのような素性が認証に用いられているかを、一見わからなくすることができる。また、ユーザ端末10は、不正ユーザがユーザ端末10から送信される情報を参照したとしても、どの素性の重みが高いか、あるいは、どのような手段によって取得された情報なのかを推定することを困難にさせることができる。かかる処理により、ユーザ端末10は、認証の利便性を確保しつつ、認証の安全性を高めることができる。以下、図1を用いて、ユーザ端末10による生成処理の一例について、流れに沿って説明する。
まず、図1に示す例において、ユーザ端末10は、認証に関する各種情報を取得する(ステップS01)。具体的には、ユーザ端末10は、ユーザの認証に用いられる認証情報であって、各々が異なる手段によって取得される複数の種別の認証情報を取得する。
例えば、ユーザ端末10は、ユーザU01から入力を受け付けることにより、ユーザU01が設定したパスワードを取得する。また、ユーザ端末10は、別の手段として、指紋認証機能を起動した場合には、ユーザU01から指紋データを取得する。また、ユーザ端末10は、ユーザU01に関するコンテキスト情報を取得する。
例えば、ユーザ端末10は、所定時間ごとの位置情報を取得する。具体的には、位置情報とは、ユーザ端末10が所在する経度や緯度を示す情報である。なお、ユーザ端末10は、コンテキスト情報として、ユーザ端末10の操作状況や、ユーザ端末10の加速度情報等を取得してもよい。
なお、ユーザ端末10は、上記の認証情報の全てを取得することを要しない。すなわち、ユーザ端末10は、状況によっては、パスワードや指紋データを取得しない場合もある。例えば、ユーザ端末10は、ユーザの意思による認証処理ではなく、認証サーバ100との間に発生する一定時間経過ごとの自動的な認証処理の場合には、パスワードや指紋データを取得しなくてもよい。
また、ユーザ端末10は、コンテキスト情報についても、位置情報を取得する一方で、加速度情報を取得しない場合もありうる。例えば、ユーザ端末10は、所定時間においてユーザ端末10が所在する位置情報は取得可能であるが、その間、ユーザ端末10が一箇所に置かれていた場合には、加速度情報を取得しない場合もありうる。
上記のように、ユーザ端末10が取得する情報は、各々が異なる手段によって取得される複数の種別の認証情報であるものの、認証には、ある手段の認証情報が認証に利用され、また、他の手段の認証情報が認証に利用されない場合もありうる。
ここで、ユーザ端末10は、取得された複数の種別の認証情報から、各々の認証情報の取得元となった手段および各々の認証情報の情報量が特定されない情報である抽象情報を生成する(ステップS02)。
ユーザ端末10は、抽象情報の一例として、所定時間内に取得された複数の種別の認証情報から、取得元の手段及び情報量に関わらず、共通する形式を有する情報を生成する。この場合、所定時間とは、例えば、前回の認証が行われたタイミングから、今回認証で用いる抽象情報が生成されるまでの時間を示す。なお、所定時間は、例示した時間長に限らず、任意の時間長がユーザ端末10や認証サーバ100によって設定されてもよい。
例えば、ユーザ端末10は、手段をインデックスとし、手段によって取得された認証情報が細分化されたデータが当該インデックスに属する形式となるよう、抽象情報を生成する。具体的には、ユーザ端末10は、図1に示すように、パスワードという手段のインデックスを「1」とし、指紋という手段のインデックスを「2」とする。そして、ユーザ端末10は、各々のインデックスに属する形式で、各々の手段によって取得された認証情報を付与する。
ここで、ユーザ端末10は、所定時間内に取得された複数の種別の認証情報のうち、所定の条件に該当する種別の認証情報には、偽装した情報を用いて抽象情報を生成する。例えば、ユーザ端末10は、今回の抽象情報を生成するにあたり、取得されなかった認証情報や、所定の閾値よりも情報量が少なくなった認証情報について、偽装した情報を用いて抽象情報を生成する。
上記のように、ユーザ端末10は、認証のタイミングによっては、全ての手段から認証情報を取得しない場合がある。このような場合であっても、ユーザ端末10は、偽装した情報(ダミー情報)を追加し、常に手段や情報量が共通するようなデータ形式を示す抽象情報を生成する。
また、ユーザ端末10は、手段によって情報量に差がある場合には、その差を埋めて情報量を共通化させるために、偽装した情報を追加するようにしてもよい。一般に、パスワードを示す認証情報よりも、指紋データを示す認証情報の方が情報量は多くなる。この場合、ユーザ端末10は、パスワードを示す認証情報にダミーとなる情報を追加することで、各手段による情報量の差をなくすようにしてもよい。
さらに、ユーザ端末10は、各インデックスに属する情報を細分化する。例えば、ユーザ端末10は、「2−1」や「2−2」のようなインデックスを作成し、各インデックスに属する情報を細分化する。そして、ユーザ端末10は、各インデックスに属するように作成された情報(これは、1つのパケットと読み替えてもよい)の情報量や形式を共通化させる。概念的に説明すると、ユーザ端末10は、指紋データを示す情報として「aaaabbbb・・・」といった情報を取得した場合に、「aaaa」や「bbbb」といった具合に、情報量が共通となるよう細分化する。
また、ユーザ端末10は、他の手段から取得された情報についても、同じ情報量や形式となるよう情報を細分化する。なお、ユーザ端末10は、手段ごとに取得された情報の情報量が異なる場合には、上記のように偽装した情報を追加し、各情報を共通化する。すなわち、ユーザ端末10は、各インデックスに含まれる情報を共通化することで、どのインデックスにどのような認証情報が含まれているかが、一見わからないよう曖昧化する。なお、ユーザ端末10は、情報量のみならず、各手段に対応するインデックスの数自体を共通化させるようにしてもよい。この場合も、ユーザ端末10は、情報量が異なる情報については、偽装した情報(インデックス)を適宜追加する。
このようにして、ユーザ端末10は、各々が異なる手段によって取得された複数の種別の認証情報を、取得した手段や情報量に関わらず共通化されたデータ形式の情報である、抽象情報を生成する。そして、ユーザ端末10は、抽象情報を認証サーバ100に送信する(ステップS03)。すなわち、ユーザ端末10は、認証サーバ100に送信する情報として、取得できなかった認証情報や、取得した情報量が少ない認証情報が混在していたとしても、常に略同一の情報量となる情報を送信する。
そして、認証サーバ100は、取得した抽象情報に基づいて、ユーザU01を認証する(ステップS04)。この場合、認証サーバ100は、ユーザ端末10が抽象情報を生成する手法に関する定義ファイル等を事前に受け取っておいてもよい。例えば、定義ファイルには、抽象情報のうち、どのインデックスがどの手段に対応するかといった情報が記載される。また、定義ファイルには、偽装データの追加に関する仕組みや手法等が記載されてもよい。
そして、認証サーバ100は、定義ファイルに従って抽象情報を解析し、ユーザU01を認証する。具体的には、認証サーバ100は、ユーザ端末10から送信された情報のなかに、認証に用いる正解データ(例えば、ユーザU01の本人性を判定するうえで信頼できるコンテキスト情報や、パスワードや指紋の正解データ)が2つ以上含まれる場合に、ユーザU01が本人であると判定する。
このように、実施形態に係るユーザ端末10は、ユーザU01の認証に用いられる認証情報であって、各々が異なる手段によって取得される複数の種別の認証情報を取得する。そして、ユーザ端末10は、取得された複数の種別の認証情報から、各々の認証情報の取得元となった手段および各々の認証情報の情報量が特定されない情報である抽象情報を生成する。さらに、ユーザ端末10は、生成された抽象情報を用いてユーザU01を認証する認証サーバ100に対して抽象情報を送信する。
すなわち、ユーザ端末10は、認証サーバ100に送信する認証情報について、各手段によって取得された情報をそのまま送信するのではなく、手段や情報量を曖昧化した情報を送信する。一例として、ユーザ端末10は、図1で示したような、認証で利用する情報に関わらず、形式を共通化した抽象情報を送信する。この場合、不正ユーザは、認証サーバ100に送信された情報を閲覧したとしても、どのような手段によって取得された情報が、どのような情報量を伴って送信されているかといった情報を把握できなくなる。このため、不正ユーザにとっては、例えばユーザ端末10から送信される情報に位置情報が多く含まれていることから、ユーザU01の認証に用いられている情報のうち位置情報に重みが置かれているはず、といった推定を行うことが難しくなる。このように、ユーザ端末10は、抽象情報を生成することで、「ユーザの認証において何の要素が認証に効いているのか」といった情報を曖昧化する。これにより、ユーザ端末10は、ユーザの認証において有効な素性を秘匿することができる。このことから、ユーザ端末10によれば、ユーザごとに生成されたモデルや、モデルの仕様を記載した情報については、認証サーバ100内の、アプリ開発者等がアクセスしやすい環境に置いたまま、不正ユーザの傍受に耐えうる認証処理を実行させることができる。結果として、ユーザ端末10は、認証の利便性を確保しつつ安全性を高めることができる。なお、ユーザ端末10は、送信する抽象情報を暗号化するなど、認証の安全性を高めることのできる既存の手法について、適宜併用するようにしてもよい。
〔2.生成処理システムの構成〕
次に、図2を用いて、実施形態に係る生成処理システム1の構成について説明する。図2は、実施形態に係る生成処理システム1の構成例を示す図である。図2に例示するように、実施形態に係る生成処理システム1には、ユーザ端末10と、認証サーバ100とが含まれる。これらの各種装置は、ネットワークNを介して、有線又は無線により通信可能に接続される。また、生成処理システム1には、複数のユーザ端末10が含まれてもよい。すなわち、ユーザは、1台のユーザ端末10のみならず、複数台のユーザ端末10を所有し、利用してもよい。
ユーザ端末10は、デスクトップ型PC(Personal Computer)や、ノート型PCや、タブレット端末や、スマートフォンを含む携帯電話機、PDA(Personal Digital Assistant)等の情報処理端末である。また、ユーザ端末10には、眼鏡型や時計型の情報処理端末であるウェアラブルデバイス(wearable device)も含まれる。さらに、ユーザ端末10には、情報処理機能を有する種々のスマート機器が含まれてもよい。例えば、ユーザ端末10には、TV(Television)や冷蔵庫、掃除機などのスマート家電や、自動車などのスマートビークル(Smart vehicle)や、ドローン(drone)、家庭用ロボットなどが含まれてもよい。
ユーザ端末10は、ユーザによる操作や、ユーザ端末10が有する機能に応じて、ユーザ端末10のコンテキストを示すコンテキスト情報を取得する。例えば、ユーザ端末10は、内蔵された各種センサにより、位置、加速度、温度、重力、回転(角速度)、照度、地磁気、圧力、近接、湿度、回転ベクトルといった、種々の物理量をコンテキスト情報として取得する。また、ユーザ端末10は、内蔵する通信機能を利用して、各種装置との接続状況等のコンテキスト情報を取得する。なお、ユーザ端末10と通信する装置とは、例えば、情報処理機能を有する種々のスマート機器である。
認証サーバ100は、ユーザを認証するためのモデルを保持するサーバ装置である。また、認証サーバ100は、ユーザ端末10から所定のタイミングで抽象情報を取得することにより、ユーザ端末10を利用するユーザの本人性を判定する。
〔3.ユーザ端末の構成〕
次に、図3を用いて、実施形態に係るユーザ端末10の構成について説明する。図3は、実施形態に係るユーザ端末10の構成例を示す図である。図3に示すように、ユーザ端末10は、通信部11と、入力部12と、表示部13と、検知部14と、記憶部15と、制御部16とを有する。
(通信部11について)
通信部11は、例えば、NIC(Network Interface Card)等によって実現される。通信部11は、ネットワークNと有線又は無線で接続され、ネットワークNを介して、認証サーバ100との間で情報の送受信を行う。
(入力部12及び表示部13について)
入力部12は、ユーザから各種操作を受け付ける入力装置である。例えば、入力部12は、ユーザ端末10に備えられた操作キー等によって実現される。表示部13は、各種情報を表示するための表示装置である。例えば、表示部13は、液晶ディスプレイ等によって実現される。なお、ユーザ端末10にタッチパネルが採用される場合には、入力部12の一部と表示部13とは一体化される。
(検知部14について)
検知部14は、ユーザ端末10に関する各種情報を検知する。具体的には、検知部14は、ユーザ端末10に対するユーザの操作や、ユーザ端末10の所在する位置情報や、ユーザ端末10と接続されている機器に関する情報や、ユーザ端末10における環境等を検知する。図3に示す例では、検知部14は、操作検知部141と、位置検知部142と、外部装置検知部143と、環境検知部144とを有する。
(操作検知部141について)
操作検知部141は、ユーザ端末10に対するユーザの操作を検知する。例えば、操作検知部141は、入力部12に入力された情報に基づいて、ユーザの操作を検知する。すなわち、操作検知部141は、入力部12に画面をタッチする操作の入力があったことや、音声の入力があったこと等を検知する。また、操作検知部141は、ユーザによって所定のアプリが起動されたことを検知してもよい。かかるアプリがユーザ端末10内の撮像装置を動作させるアプリである場合、操作検知部141は、ユーザによって撮像機能が利用されていることを検知する。また、操作検知部141は、ユーザ端末10内に備えられた加速度センサやジャイロセンサ等で検知されたデータに基づき、ユーザ端末10自体が動かされているといった操作を検知してもよい。さらに、操作検知部141は、ユーザ端末10に触れたユーザを検知することで、ユーザの心拍数や体温などの生体情報を検知する機能や、指紋を検知したり、電磁誘導方式や静電容量方式を用いてユーザ端末10に触れた位置を感知したりする機能を備えてもよい。
(位置検知部142について)
位置検知部142は、ユーザ端末10の現在位置を検知する。具体的には、位置検知部142は、GPS(Global Positioning System)衛星から送出される電波を受信し、受信した電波に基づいてユーザ端末10の現在位置を示す位置情報(例えば、緯度及び経度)を取得する。
位置検知部142は、種々の手法により位置情報を取得することができる。例えば、ユーザ端末10が駅改札や商店等で使用される非接触型ICカードと同等の機能を備えている場合(もしくは、ユーザ端末10が非接触型ICカードの履歴を読み取る機能を備えている場合)、ユーザ端末10によって駅での乗車料金の決済等が行われた情報とともに、使用された位置が記録される。位置検知部142は、かかる情報を検知し、位置情報として取得する。また、位置検知部142は、ユーザ端末10が特定のアクセスポイントと通信を行う際には、アクセスポイントから取得可能な位置情報を検知してもよい。また、位置情報は、ユーザ端末10が備える光学式センサや、赤外線センサや、磁気センサ等によって取得されてもよい。
(外部装置検知部143について)
外部装置検知部143は、ユーザ端末10に接続される外部装置を検知する。例えば、外部装置検知部143は、外部装置との相互の通信パケットのやり取りなどに基づいて、外部装置を検知する。そして、外部装置検知部143は、検知した外部装置をユーザ端末10と接続される端末として認識する。また、外部装置検知部143は、外部装置との接続の種類を検知してもよい。例えば、外部装置検知部143は、外部装置と有線で接続されているか、無線通信で接続されているかを検知する。また、外部装置検知部143は、無線通信で用いられている通信方式等を検知してもよい。また、外部装置検知部143は、外部装置が発する電波を検知する電波センサや、電磁波を検知する電磁波センサ等によって取得される情報に基づいて、外部装置を検知してもよい。
(環境検知部144について)
環境検知部144は、ユーザ端末10における環境を検知する。環境検知部144は、ユーザ端末10に備えられた各種センサや機能を利用し、環境に関する情報を検知する。例えば、環境検知部144は、ユーザ端末10の周囲の音を収集するマイクロフォンや、ユーザ端末10の周囲の照度を検知する照度センサや、ユーザ端末10の物理的な動きを検知する加速度センサ(又は、ジャイロセンサなど)や、ユーザ端末10の周囲の湿度を検知する湿度センサや、ユーザ端末10の所在位置における磁場を検知する地磁気センサ等を利用する。そして、環境検知部144は、各種センサを用いて、種々の情報を検知する。例えば、環境検知部144は、ユーザ端末10の周囲における騒音レベルや、ユーザ端末10の周囲が撮像に適する照度であるか等を検知する。さらに、環境検知部144は、カメラで撮影された写真や映像に基づいて周囲の環境情報を検知してもよい。
(記憶部15について)
記憶部15は、各種情報を記憶する。記憶部15は、例えば、RAM、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。例えば、記憶部15は、検知部14によって検知された各種情報を、検知された日時と対応付けて記憶する。
(制御部16について)
制御部16は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、ユーザ端末10内部の記憶装置に記憶されている各種プログラム(例えば、生成プログラム)がRAM(Random Access Memory)を作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
図3に示すように、制御部16は、取得部161と、認証制御部162と、受付部163と、生成部164と、送信部165とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部16の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
(取得部161について)
取得部161は、各種情報を取得する。例えば、取得部161は、ユーザの認証に用いられる認証情報であって、各々が異なる手段によって取得される複数の種別の認証情報を取得する。ここで、手段とは、例えば、認証情報が取得される契機となる検知器(センサ)や、ユーザが認証情報を入力する機能(パスワード入力機能や、指紋データ取得機能など)を意味する。
例えば、取得部161は、認証情報として、ユーザのコンテキストに関する情報を取得する。具体的には、取得部161は、検知部14を制御することにより、検知部14によって検知される各種情報を、ユーザ又はユーザ端末10のコンテキストを示すコンテキスト情報として取得する。一例として、取得部161は、位置検知部142を制御することにより、ユーザ端末10の位置情報と、位置情報が検知された時間に対応する時間情報を取得する。
取得部161は、所定の時間毎にコンテキスト情報を取得するようにしてもよい。例えば、取得部161は、定期的(1分毎や、3分毎や、5分毎等)に検知部14を制御すること等により、コンテキスト情報を取得する。なお、取得部161がコンテキスト情報を取得するタイミングは、認証サーバ100によって設定されてもよい。
なお、取得部161は、ユーザ又はユーザ端末10のコンテキストを示す情報として、種々の情報を取得してもよい。一例として、取得部161は、ユーザ端末10の通信情報や、ユーザの属性情報や、ユーザが置かれた物理環境、ユーザが置かれた社会環境、ユーザの運動状態、および、ユーザの感情のうち少なくとも一つを含むコンテキスト情報を取得するようにしてもよい。
例えば、取得部161は、検知部14によって検知された外部装置の情報に基づいて、例えば、ユーザ端末10の他の端末との通信情報を取得する。
また、取得部161は、ユーザから入力を受け付けることにより記憶部15に登録されているユーザ属性情報を取得してもよい。また、取得部161は、環境検知部144によって検知された情報に基づいて、ユーザが置かれた物理環境やユーザが置かれた社会環境を取得してもよい。また、取得部161は、操作検知部141によって検知された情報に基づいて、ユーザの運動状態を取得してもよい。
また、取得部161は、検知部14によって検知されたユーザの顔画像や、検知部14のマイクロフォンで収集したユーザの音声に基づいて、ユーザの感情を判定する。また、取得部161は、検知部14によって検知された心拍数に基づき、ユーザの感情を判定する。そして、取得部161は、判定結果をユーザの感情として取得してもよい。
また、取得部161は、認証情報として、ユーザから入力されるクレデンシャル情報を取得する。具体的には、取得部161は、クレデンシャル情報として、ユーザから入力されるパスワード、指紋データ、虹彩データ、声紋データの少なくともいずれかを取得する。例えば、取得部161は、受付部163が入力部12を介してユーザから入力を受け付けることにより、クレデンシャル情報を取得する。
(認証制御部162について)
認証制御部162は、認証サーバ100に対する認証処理を制御する。例えば、認証制御部162は、認証サーバ100や、所定の制限付けサービスを提供するウェブサーバ等から、ユーザ端末10を利用するユーザの認証を求められたことを契機として、認証手続きに関する処理を行う。あるいは、認証制御部162は、自動的にユーザの認証を行わせるため、所定時間ごとに、認証サーバ100に対する認証手続きに関する処理を行う。認証制御部162は、受付部163と、生成部164とを制御することにより、認証手続きに関する処理を行う。
(受付部163について)
受付部163は、各種情報を受け付ける。例えば、受付部163は、入力部12を介してユーザからクレデンシャル情報を受け付ける。例えば、受付部163は、認証サーバ100に対して認証を要求するタイミングで、受け付けるクレデンシャル情報に対応した機能を起ち上げる。例えば、受付部163は、指紋データによる認証が求められた場合には、指紋データをユーザから受け付けるための機能(例えば、予めユーザ端末10にインストールされている指紋認証アプリなど)を起ち上げる。
(生成部164について)
生成部164は、取得部161によって取得された複数の種別の認証情報から、各々の認証情報の取得元となった手段および各々の認証情報の情報量が特定されない情報である抽象情報を生成する。
例えば、生成部164は、取得部161によって所定時間内に取得された複数の種別の認証情報から、取得元の手段及び情報量に関わらず共通する形式を有する抽象情報を生成する。
具体的には、生成部164は、手段をインデックスとし、手段によって取得された認証情報が細分化されたデータがインデックスに属する形式で抽象情報を生成する。例えば、受付部163によって指紋データが受け付けられた場合には、生成部164は、指紋という手段をインデックスとし、実際の指紋データ(例えば、入力された指紋の状態を示すバイナリデータ)がインデックスに属する形式で、抽象情報を生成する。
また、生成部164は、取得部161によって所定時間内に取得された複数の種別の認証情報のうち、所定の条件に該当する種別の認証情報には、偽装した情報を用いて抽象情報を生成する。具体的には、生成部164は、所定の情報量に満たない種別の認証情報には、偽装した情報を追加して抽象情報を生成する。かかる処理により、生成部164は、どのようなタイミングで、また、どのような手段によって取得された認証情報であるかに関わらず、共通した情報量を有する抽象情報を生成することができる。
(送信部165について)
送信部165は、各種情報を送信する。例えば、送信部165は、生成部164によって生成された抽象情報を用いてユーザを認証する認証サーバ100に対して、抽象情報を送信する。具体的には、送信部165は、認証制御部162による制御に従って、生成部164によって生成された抽象情報を認証サーバ100に送信する。
〔4.認証サーバの構成〕
次に、図4を用いて、実施形態に係る認証サーバ100の構成について説明する。図4は、実施形態に係る認証サーバ100の構成例を示す図である。図4に示すように、認証サーバ100は、通信部110と、記憶部120と、制御部130とを有する。なお、認証サーバ100は、認証サーバ100を利用する管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
(通信部110について)
通信部110は、例えば、NIC等によって実現される。通信部110は、ネットワークNと有線又は無線で接続され、ネットワークNを介して、ユーザ端末10との間で情報の送受信を行う。
(記憶部120について)
記憶部120は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、第三者が比較的アクセスしやすい環境の記憶領域(実施形態では、「プロダクション(production)環境121」と称する)と、第三者が比較的アクセスしにくい環境の記憶領域(実施形態では、「セキュア(secure)環境123」と称する)とを有する。
例えば、プロダクション環境121には、ユーザごとに生成されたモデルや、モデルの仕様に関する情報が置かれ、第三者が利用することが可能である。また、コンテキスト認証では、ユーザ端末10との情報のやり取りが頻繁に行われることから、比較的アクセスを素早く行うことができるプロダクション環境121が利用される。一方、セキュア環境123には、モデル生成に用いられるコンテキスト情報の生データや、ユーザの個人情報等が置かれ、第三者がアクセスすることが困難なように所定の設定がなされる。なお、プロダクション環境121とセキュア環境123とは、双方が必ずしも認証サーバ100内部に備えられることを要しない。例えば、セキュア環境123は、認証サーバ100とは異なる装置(例えば、外部のストレージサーバ)に隔離するような態様で存在してもよい。
図4に示すように、記憶部120のうち、プロダクション環境121には、判定情報記憶部122が含まれる。また、セキュア環境123には、個人情報記憶部124が含まれる。以下、記憶部120に含まれる各記憶部について順に説明する。なお、重複する項目に関する説明は、適宜省略する。
(判定情報記憶部122について)
判定情報記憶部122は、ユーザの本人性の判定処理に関する情報を記憶する。ここで、図5に、実施形態に係る判定情報記憶部122の一例を示す。図5は、実施形態に係る判定情報記憶部122の一例を示す図である。図5に示した例では、判定情報記憶部122は、「ユーザID」、「判定情報」といった項目を有する。
「ユーザID」は、ユーザを識別する識別情報である。なお、実施形態では、図5に示すような識別情報を参照符号として用いる場合がある。例えば、ユーザID「U01」によって識別されるユーザを「ユーザU01」と表記する場合がある。
「判定情報」は、ユーザの本人性を判定するために用いる情報である。具体的には、判定情報は、抽象情報を送信したユーザが真のユーザであるか否かを判定するために用いられる情報である。なお、図5の例において、「判定情報」には、「A01」といった概念的な情報が格納される例を示しているが、実際には、判定情報には、ユーザ端末10から送信される抽象情報の定義や、抽象情報に含まれる認証情報との照合に用いる情報や、ユーザの本人性を判定するためのモデルに関する情報が記憶される。
抽象情報の定義とは、例えば、ユーザ端末10が生成する抽象情報のインデックスが、どのような手段に対応するかを定義した情報である。また、抽象情報に含まれる認証情報との照合に用いる情報とは、例えば、後述する個人情報記憶部124に記憶された各認証情報に対応する正解データが該当する。認証サーバ100は、例えば、ユーザ端末10から受信した抽象情報を解析し、ユーザ端末10から送信された抽象情報のうち、認証に利用する情報を抽出する。そして、認証サーバ100は、判定情報に含まれる正解データとの照合に基づいて、ユーザの本人性を判定する。なお、かかる処理については、種々の既知の技術が利用されてもよい。
なお、上記のように、判定情報には、抽象情報に含まれるコンテキスト情報に基づいて、ユーザU01の本人性を判定するためのモデルに関する情報が含まれてもよい。モデルに関する情報とは、具体的には、モデルにおける説明変数となりうる各素性(手段に対応する)や、各素性の重み値等である。
認証サーバ100が利用するモデルは、例えば以下のような式(1)で表されるものとする。
y(ユーザU01) = ω1・x1 + ω2・x2 + ω3・x3 +・・・+ ωN・xN ・・・(1)(Nは任意の数)
上記式(1)は、各素性の重み値と、各素性に対応するコンテキスト情報と、ユーザU01の本人らしさを示すスコアとの関係を示している。具体的には、上記式(1)における「y(ユーザU01)」は、ユーザU01が本人であるか否かという本人らしさを示すスコアに対応する。また、上記式(1)における「x」は、素性に対応する。また、上記式(1)における「ω」は、素性の重み値に対応する。
素性には、種々のコンテキスト情報が対応する。例えば、上記式(1)における「x1」は、「ユーザ端末10の操作(午前)」という素性に対応するものとする。「ユーザ端末10の操作(午前)」とは、例えば、午前中の時間帯において、日常的にユーザ端末10がどのくらい操作を受け付けるか、ユーザ端末10がどのくらいの時間長で操作されるか、といったユーザ端末10の利用状況に関するコンテキスト情報を示す。この場合、ユーザU01が、午前中のユーザ端末10の操作に関して有意な特徴を有する場合、言い換えれば、午前中のユーザ端末10の操作によってユーザU01本人であるということが特定しやすい情報であるほど、「x1」の係数である重み値「ω1」の値が大きくなると想定される。
なお、「x1」という素性がどのようなコンテキスト情報に対応するかといったモデルの仕様に関しては、認証サーバ100が保持する仕様書に記憶される。モデルを利用する第三者は、仕様書を参照することにより、認証サーバ100がユーザを認証する際に、どのようなコンテキスト情報を用いているかを把握することができる。
その他の素性としては、例えば、ユーザ端末10の通信情報や、位置情報や、ユーザ端末10におけるネットワーク上の行動(例えば、検索行動等のコンテキストを示す情報が該当する。
「通信情報」とは、例えば、ある時間帯において、日常的にユーザU01が行う通信の状況を示す。かかる情報は、ユーザ端末10の情報とは限らず、ユーザU10が日常的に取り扱う端末装置や、据置きの機器から取得される情報であってもよい。また、「位置情報」とは、例えば、ある時間帯において、日常的にユーザU01が所在する位置に関する情報を示す。具体的には、位置情報は、例えば、GPS等を利用して取得される緯度や経度である。また、位置情報は、例えば、ユーザ端末10を提示して入退場した駅改札の入退場記録や、会社への入場記録等であってもよい。また、「検索状況」とは、例えば、ある時間帯において、日常的にユーザU01が検索サービスを利用した利用状況をいう。検索状況については、必ずしもユーザ端末10から取得される情報に限られず、例えば、ユーザU01の所持するアカウントで検索サービスにログインされた際の検索状況であれば、ユーザ端末10以外の端末から取得された情報であってもよい。
なお、上記式(1)は、あくまで例示であり、認証サーバ100は、各素性と重み値の対応によって本人性を判定するためのモデルであれば、どのような形式のモデルを利用してもよい。
すなわち、図5に示したデータの一例では、ユーザIDが「U01」で識別されるユーザU01に対応付けて、判定情報「A01」が記憶されていることを示している。
(個人情報記憶部124について)
個人情報記憶部124は、ユーザの個人情報を記憶する。ここで、図6に、実施形態に係る個人情報記憶部124の一例を示す。図6は、実施形態に係る個人情報記憶部124の一例を示す図である。図6に示した例では、個人情報記憶部124は、「ユーザID」、「個人情報」、「認証情報」といった項目を有する。また、「個人情報」の項目は、「名前」、「性別」、「年齢」といった小項目を有する。また、「認証情報」の項目は、「認証手段」、「正解データ」、「認証条件」といった小項目を有する。
「個人情報」は、ユーザの個人情報を示す。「名前」、「性別」、「年齢」は、それぞれ、ユーザの名前、性別、年齢を示す。
「認証情報」は、ユーザの認証に用いられる情報を示す。「認証手段」は、多要素認証において各認証情報を取得するための手段、あるいは、取得される情報の種別を示す。
「正解データ」は、各認証手段における正解データを示す。なお、図6の例において、「正解データ」には、「B01」といった概念的な情報が格納される例を示しているが、実際には、正解データには、ユーザ端末10から送信される抽象情報に含まれる情報との照合に用いる具体的な正解データが記憶される。例えば、認証手段がパスワードあれば、正解データには、正解となるパスワードが記憶される。
また、位置情報や通信情報等のコンテキストについては、予め当該ユーザから取得されたコンテキストが、正解データとなりうる。例えば、位置情報における正解データは、ユーザが、日常的に、同じ時間帯で同じ場所に所在することや、同じ経路を介して通勤を行っていること等を示す位置情報が継続的に取得され、学習されることにより、生成される。そして、認証サーバ100は、認証のタイミングで受信した抽象情報の中に、正解データと所定の類似性を有する位置情報が含まれている場合に、位置情報という手段において、ユーザ本人である可能性が高いと判定する。なお、かかる判定には、上述したモデルが利用されてもよい。
「認証条件」は、ユーザを真のユーザ(ユーザ本人)であると認証するための条件を示す。認証サーバ100は、多要素認証を利用する場合、例えば、正解データと「2以上の要素が一致」したことを条件として、ユーザを認証してもよい。なお、認証条件は、認証手段ごとに異なる条件が設定されてもよい。例えば、認証サーバ100は、位置情報や通信情報等のコンテキスト情報については、認証条件として、「3以上の要素が一致」したことを条件としてユーザを認証してもよい。あるいは、認証サーバ100は、指紋などの信頼性が高い認証情報については、認証条件として、「1以上の要素が一致」したことを条件としてユーザを認証してもよい。
すなわち、図6に示したデータの一例では、ユーザU01の個人情報として、名前が「XXX」であり、性別が「男性」であり、年齢が「30」歳という情報が記憶されていることを示している。また、ユーザU01の認証情報として、認証手段が「パスワード」である場合には、正解データが「B01」であることを示している。あるいは、ユーザU01の認証情報として、認証手段が「指紋」である場合には、正解データが「B02」であることを示している。そして、認証サーバ100がユーザU10を認証する条件である認証条件は、「2以上の要素の一致」であることを示している。
なお、個人情報記憶部124に記憶された個人情報は、例えば、ユーザ認証が成功した場合に、サービス提供に際してユーザ認証を要求したサービス側に提供されるために利用されてもよい。
(制御部130について)
図4に戻って説明を続ける。制御部130は、コントローラであり、例えば、CPUやMPU等によって、認証サーバ100内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASICやFPGA等の集積回路により実現される。
図4に示すように、制御部130は、受信部131と、解析部132と、判定部133と、送信部134とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図4に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部130が有する各処理部の接続関係は、図4に示した接続関係に限られず、他の接続関係であってもよい。
(受信部131について)
受信部131は、各種情報を受信する。例えば、受信部131は、ユーザ端末10から送信される抽象情報を受信する。
また、受信部131は、ユーザ端末10が、例えばアクセス制限付きの所定のサービス(例えばウェブサイト)にアクセスしようとして認証を求められた際に、ユーザ端末10から、認証要求を受信してもよい。
あるいは、受信部131は、ユーザから送信される所定の制限付きサイトへのアクセス要求等を、ウェブサーバを経由して受信してもよい。すなわち、ユーザ端末10がウェブサーバの管理するサイトへアクセスした場合、ウェブサーバは、アクセス要求があった旨や、アクセスを承認するためにユーザ端末10を認証することを要する旨を認証サーバ100に送信する。受信部131は、ウェブサーバから送信された要求を受信するとともに、ユーザ端末10から送信される抽象情報を受信する。
なお、受信部131は、上記のような判定処理が発生するタイミングに限らず、所定のタイミングで、抽象情報を受信してもよい。例えば、受信部131は、ユーザの行動において認証を要する明示がなくとも、定期的に抽象情報を受信していてもよい。これにより、ユーザは、実際に認証を必要とする処理が発生した場合であっても、そのタイミングにおいては既に自動的に認証が済んでいるような、利便性の高い認証を行うことができる。
(解析部132について)
解析部132は、受信部131によって受信された抽象情報を解析する。例えば、解析部132は、判定情報記憶部122に記憶された判定情報に基づいて、抽象情報を解析する。
具体的には、解析部132は、抽象情報に関する定義情報を参照し、抽象情報に含まれるインデックスや、インデックスに属する情報が、いずれの手段から取得された認証情報であるかを解析する。あるいは、解析部132は、抽象情報に関する定義情報を参照し、ユーザ端末10によって偽装された認証情報を特定する。そして、解析部132は、抽象情報から、ユーザの判定に利用される認証情報を抽出する。
(判定部133について)
判定部133は、解析部132によって解析された抽象情報に基づいて、ユーザの本人性を判定する。例えば、判定部133は、抽象情報に含まれる情報が、認証条件に該当するような認証情報を含む場合、当該抽象情報を送信したユーザ端末10を利用するユーザを、ユーザ本人であると判定する。一方、判定部133は、抽象情報に含まれる情報が、認証条件に該当するような認証情報を含まない場合には、当該抽象情報を送信したユーザ端末10を利用するユーザを、ユーザ本人とは確認できない(ユーザを認証しない)と判定する。
例えば、判定部133は、位置情報等のコンテキスト情報を利用してユーザの本人性を判定する場合には、上記したモデルを利用してもよい。例えば、判定部133は、モデルが生成される際に観測されていた位置情報(学習された位置情報)と、抽象情報に含まれる位置情報とが、所定の閾値の範囲を超えて変化したと判定したとする。すなわち、学習の過程において観測された位置情報や位置情報の推移と、抽象情報に含まれる位置情報とに、有意な変化が観測されたとする。一例として、ユーザが日常的に利用する駅とは異なる駅の利用履歴が観測されたり、ユーザが通常所在する位置から異なる国や地方に移動していたりする状況が観測されたとする。この場合、受信した位置情報が入力されたモデルからは、ユーザの本人性を示すスコアとして、比較的低いスコアが出力されると想定される。
そして、判定部133は、位置情報という手段に関する判定要素については、正解データと一致しないと判定する。このように、判定部133は、コンテキスト情報の変化率又は変化量に基づいて、ユーザの本人性を判定するようにしてもよい。なお、判定部133は、各手段における認証情報を判定するため、例え位置情報が正解データと一致せずとも、他の要素が一致するのであれば、抽象情報を送信したユーザを、ユーザ本人と判定する場合もありうる。
その後、判定部133は、ユーザを認証したか否かを示す認証結果を、後述する送信部134に送る。
(送信部134について)
送信部134は、各種情報を送信する。例えば、送信部134は、抽象情報を送信したユーザ端末10に対して、判定部133が行った認証処理の結果を送信する。判定部133がユーザを認証した場合、送信部134は、ユーザに認証が成功した旨を送信する。あるいは、送信部134は、認証が成功したことにより、例えば、所定のサイトへの接続が許可されたこと等を示す情報をユーザ端末10に通知する。一方、判定部133がユーザ端末10を認証しない場合、送信部134は、認証が失敗した旨をユーザ端末10に送信する。
〔5.処理手順〕
次に、図7を用いて、実施形態に係るユーザ端末10による処理の手順について説明する。図7は、実施形態に係る処理手順を示すフローチャートである。
図7に示すように、ユーザ端末10は、種々の手段を介して、認証情報を取得する(ステップS101)。そして、ユーザ端末10は、どのような認証情報が取得されたかに関わらず、形式を共通化した情報である抽象情報を生成する(ステップS102)。
ユーザ端末10は、生成した抽象情報を認証サーバ100に送信する(ステップS103)。そして、ユーザ端末10は、抽象情報によってユーザの本人性を判定した認証サーバ100から、認証結果を取得する(ステップS104)。
〔6.変形例〕
上述した実施形態に係る処理は、上記実施形態以外にも種々の異なる形態にて実施されてよい。以下では、ユーザ端末10又は生成処理システム1の他の実施形態(変形例)について説明する。
〔6−1.抽象情報のバリエーション〕
上記実施形態では、ユーザ端末10が、所定時間内に取得された複数の種別の認証情報から、取得元の手段及び情報量に関わらず共通する形式を有する抽象情報を生成する例を示した。すなわち、ユーザ端末10は、ユーザの認証において位置情報が重要であるとか、通信情報が重要であるといった情報を不正ユーザに察知されないために、情報の種別や情報量を共通化させることで、認証サーバ100に送信する情報を曖昧化する例を示した。
ここで、ユーザ端末10は、さらに異なる手法によって、認証サーバ100に送信する情報を曖昧化(抽象化)させてもよい。この点について、図8以下を用いて説明する。図8は、変形例に係る生成処理の一例を示す図である。なお、以下では、区別のため、変形例の構成を有するユーザ端末10をユーザ端末10Aと表記するが、特に区別する必要のない場合には、ユーザ端末10と総称する。
図8に示す例において、ユーザ端末10Aは、図1で示した処理と同様、認証に関する各種情報を取得する(ステップS11)。そして、ユーザ端末10Aは、取得した情報に基づいて抽象情報を生成する(ステップS12)。
ここで、変形例に係るユーザ端末10Aは、取得された認証情報の生データ(経度や緯度を示す位置情報や、通信先のデバイスIDやパケット情報等)を認証サーバ100に送信せずに、生データを昇華させて曖昧化させた情報を抽象情報として生成する。
例えば、ユーザ端末10Aは、取得した認証情報に基づいて、ユーザU01の本人性を推定する。そして、ユーザ端末10Aは、ユーザU01の本人性を推定した結果に基づいて、抽象情報を生成する。
例えば、ユーザ端末10Aは、ユーザU01をローカル側(ここでは、認証サーバ100側ではなく、ユーザ端末10A側であることを意味する)で認証した結果情報を認証サーバ100に送信するようにしてもよい。
例えば、変形例に係るユーザ端末10Aは、実施形態に係る判定情報記憶部122に記憶されていた判定情報に対応する情報を、ユーザ端末10A側で保持するものとする。そして、ユーザ端末10Aは、ユーザ端末10A自身でユーザU01の認証を行い、その認証の結果情報を抽象情報として生成する。
例えば、ユーザ端末10Aは、ユーザU01の指紋データの正解データを予め保持する。そして、ユーザ端末10Aは、ユーザU01から指紋データの入力があった場合に、正解データと照合する。ユーザ端末10Aは、入力された情報と正解データとが照合できた場合、ユーザ端末10Aを利用しているユーザがユーザU01本人であると推定する。続けて、ユーザ端末10Aは、「ユーザU01本人であると推定した」旨の結果情報を含む抽象情報を生成する。
また、ユーザ端末10Aは、ユーザU01の位置情報や通信情報等のコンテキスト情報から、ユーザU01の本人性を推定してもよい。この場合、ユーザ端末10Aは、実施形態で例示したモデルを使用して、ユーザU01の本人性を推定する。この場合、ユーザ端末10Aは、認証情報の正解データや、各手段の重み値をユーザ端末10A上で保持する。なお、ユーザ端末10Aは、このような認証情報や、モデルに関する情報(重み値等)については、恒常的に保持することを要しない。例えば、ユーザ端末10Aは、一時的に認証サーバ100からモデルの情報等を取得し、取得した情報を利用してユーザU01の本人性を推定するようにしてもよい。
そして、ユーザ端末10Aは、所定時間内に取得された複数の種別の認証情報そのものを送信するのではなく、生成した抽象情報を認証サーバ100に送信する(ステップS13)。
ユーザ端末10Aは、抽象情報を認証サーバ100に送信することで、認証情報の生データそのものをネットワーク上に送信せずにすむため、認証情報自体を傍受される危険性を回避することができる。
なお、ユーザ端末10Aは、ユーザU01の本人性そのものを推定するのではなく、認証サーバ100がユーザU01の本人性を推定するために用いる情報を推定するようにしてもよい。具体的には、ユーザ端末10Aは、所定時間内に取得された複数の種別の認証情報に基づいて、ユーザU01の本人性を推定するための情報である、ユーザU01の属性情報もしくは行動結果情報を推定する。
上記のうち、まず、属性情報について説明する。例えば、ユーザ端末10Aは、ユーザU01が、BBB会社の所在する場所に毎日同じ時間に通勤し、さらに、その位置に所在する端末とユーザ端末10Aとが通信を行ったり、一日の大半をBBB会社の所在する場所で過ごしていたりすることを示す位置情報や通信情報を取得したとする。かかる情報に基づいて、ユーザ端末10Aは、ユーザU01が「BBB会社の社員である」という属性を有するユーザであると推定する。例えば、ユーザ端末10Aは、取得した認証情報に基づいて、「BBB会社の社員である」という属性情報を導出するための定義ファイルを保持しておく。そして、ユーザ端末10Aは、当該定義ファイルと取得した認証情報とを照合することにより、ユーザU01が「BBB会社の社員である」という属性に該当するユーザであると推定する。
次に、行動結果情報について説明する。例えば、ユーザ端末10Aは、ユーザU01がいずれかの場所を訪れていた等の行動結果情報を推定する。例えば、ユーザ端末10Aは、ユーザU01の行動に伴い、CCC美術館が所在する位置の位置情報を取得し、CCC美術館の最寄り駅への入場ログを取得し、さらに、CCC美術館が所在する位置において何らかの支払い(例えば入場料金など)に関するログを取得したとする。この場合、ユーザ端末10Aは、取得した情報と定義ファイルとを照合して、ユーザU01が「CCC美術館に行っていた」という行動結果情報を有するユーザであると推定する。
変形例に係るユーザ端末10Aは、このようにして推定した情報に基づいて抽象情報を生成する。そして、ユーザ端末10Aは、生成した抽象情報を認証サーバ100に送信する。すなわち、ユーザ端末10Aは、クレデンシャル情報や位置情報などの認証情報となりうる生データや、それらの生データが取得された手段そのものを送信するのではなく、それらの生データから昇華され、曖昧化された抽象情報(図8の例では、推定した属性情報や行動結果情報)を送信する。これにより、不正ユーザは、ユーザ端末10Aと認証サーバ100との間の通信を傍受しても、どのような手段で取得された情報が認証サーバ100に対して送信されているかを把握することができない。言い換えれば、ユーザ端末10Aは、認証のために送信する情報そのものを曖昧化させることにより、認証に関する安全性を向上させる。
そして、認証サーバ100は、ユーザ端末10Aから送信された抽象情報に基づいて、ユーザU01を認証する(ステップS14)。例えば、認証サーバ100は、ユーザ端末10Aから、「ユーザU01本人であると推定した」旨の結果情報を含む抽象情報を受信した場合、その抽象情報が示す信頼性に基づいてユーザU01を認証する。具体的には、認証サーバ100は、ユーザ端末10A側で指紋データに基づいてユーザU01の本人性が推定された場合、生体情報を用いた推定は信頼性が高いことから、ユーザU01を認証する。一方、認証サーバ100は、例えば位置情報のみに基づいてユーザ端末10AがユーザU01を本人と推定していた場合、信頼性が低いものとして、ユーザU01を認証しなくてもよい。
また、認証サーバ100は、ユーザ端末10Aから、ユーザ端末10Aが推定したユーザU01の属性情報や行動結果情報を含む抽象情報を受信した場合、その属性情報や行動結果情報が示す内容に基づいてユーザU01を認証する。この場合、認証サーバ100は、必ずしもユーザU01本人であることを認証しなくてもよい。例えば、認証サーバ100は、ユーザ端末10Aから送信された抽象情報を、「BBB会社の社員である」ことや、「CCC美術館に行っていた」ということが証明できれば足りるような認証に用いてもよい。
仮に、認証サーバ100が、「BBB会社の社員」や、「CCC美術館に行った人」にクーポンを発行するために利用される場合を考える。このとき、認証サーバ100は、ユーザ端末10Aが送信した抽象情報が「ユーザU01本人」を示していなかったとしても、「BBB会社の社員である」ことや、「CCC美術館に行っていた」という情報さえ取得すれば、ユーザ端末10Aに対してクーポンを発行することができる。このように、認証サーバ100は、必ずしもユーザU01の本人性のみを認証するのではなく、ユーザ端末10Aから送信された情報に基づいて、ある条件に合致するユーザか否かを認証するという意味での本人性を認証するものであってもよい。
このように、変形例に係るユーザ端末10Aは、所定時間内に取得された複数の種別の認証情報に基づいて、ユーザU01の本人性を推定する。そして、ユーザ端末10Aは、推定された結果に基づいて抽象情報を生成する。
また、ユーザ端末10Aは、ユーザU01の本人性を推定するための情報として、ユーザU01の属性情報もしくは行動結果情報を推定してもよい。そして、ユーザ端末10Aは、推定されたユーザU01の属性情報もしくは行動結果情報を含む抽象情報を生成してもよい。
すなわち、ユーザ端末10Aは、所定時間内に取得された複数の種別の認証情報を共通化させるという手法に限らず、例えば、ローカル側での本人性の判定結果や、推定した属性情報や行動結果情報を抽象情報に含めるという手法によっても、認証サーバ100に送信する情報を曖昧化させることができる。これにより、ユーザ端末10Aは、認証の利便性を確保しつつ安全性を高めることができる。
(変形例に係るユーザ端末10Aの構成について)
上記の変形例に係るユーザ端末10Aの構成に関して、図9乃至図11を用いて、詳細に説明する。図9は、変形例に係るユーザ端末10Aの構成例を示す図である。図9に示すように、変形例に係るユーザ端末10Aは、ローカル認証情報記憶部151と、推定情報記憶部152と、推定部166とをさらに備える。
(ローカル認証情報記憶部151について)
ローカル認証情報記憶部151は、ユーザ端末10Aにおいて本人性の判定に用いる認証情報等に関する情報を記憶する。図10は、変形例に係るローカル認証情報記憶部151の一例を示す図である。図10に示した例では、ローカル認証情報記憶部151は、「ユーザID」、「認証ID」、「認証情報」、「認証レベル」といった項目を有する。
「認証ID」は、ユーザ端末10Aがユーザの本人性を推定した(認証した)内容を識別する識別情報を示す。「認証情報」は、ユーザ端末10Aがユーザの本人性を推定するために用いた認証情報の内容を示す。
「認証レベル」は、ユーザ端末10Aが推定したユーザの本人性に関する信頼性を段階で示したものである。例えば、認証レベルは、「4」が最も信頼性が高く、「1」が最も信頼性が低いものとする。例えば、認証サーバ100は、いずれの認証情報によってローカルでユーザの本人性が推定されたかを参照し、その認証情報のレベルに従い、サーバ側でユーザを認証するか否かを判定する。一例として、認証サーバ100は、高いセキュリティレベルを必要とするサイト(例えば、金融機関など)のアクセスにおける認証処理では、認証レベルが「4」でローカルにおける認証が実施された場合のみ、当該ユーザを認証するようにしてもよい。
すなわち、図10に示したデータの一例では、ローカルでのユーザU01の認証において、認証ID「CT01」で識別される認証は、認証情報が「生体認証」で行われるものであり、その認証レベルは「4」であることを示している。また、認証ID「CT02」で識別される認証は、認証情報が「位置情報:G01」、(位置情報として「G01」が取得されたことを示す。なお、位置情報G01は、例えば、ユーザU01の自宅の所在地を示すものとする)「自装置2つ以上と近距離通信」(自装置とは、例えば、ユーザ端末10A以外のユーザU01が所有する端末であるものとする)、「アクセスポイントが自宅」であり、その認証レベルは「3」であることを示している。このように、所定の推定処理において、ユーザU01がユーザU01の自宅にいるというコンテキストが多要素によって推定される場合には、その認証レベルは、比較的高いものが割り当てられる。
(推定情報記憶部152について)
推定情報記憶部152は、ユーザ端末10Aにおける推定処理に関する情報を記憶する。例えば、推定情報記憶部152には、ユーザの属性情報や行動結果情報を推定するための定義が記憶される。図11は、変形例に係る推定情報記憶部152の一例を示す図である。図11に示した例では、推定情報記憶部152は、「推定情報ID」、「コンテキスト情報」、「推定情報」といった項目を有する。
「推定情報ID」は、ユーザ端末10Aによって推定されるユーザU01の属性情報や行動結果情報を識別する識別情報を示す。「コンテキスト情報」は、推定に用いられるコンテキスト情報を示す。「推定情報」は、ユーザ端末10Aによって推定される属性情報や行動結果情報の内容を示す。
すなわち、図11に示したデータの一例では、推定情報IDが「E01」である推定情報E01は、コンテキスト情報として、「位置情報:G02」(位置情報G02は、例えば、BBB会社の所在地を示すものとする)、「BBB会社に属するユーザとの通信」、「前日の同じ時間に同じ位置情報」というコンテキストが定義付けられており、これらのコンテキスト情報が揃った場合には、推定情報が「BBB会社の社員」という属性が導出されることを示している。言い換えれば、ユーザ端末10Aによって上記のコンテキスト情報が取得された場合には、そのユーザ端末10Aを利用するユーザは、「BBB会社の社員」という属性を有するユーザである、と推定されることを示している。
(推定部166について)
推定部166は、取得部161によって所定時間内に取得された複数の種別の認証情報に基づいて、ユーザの本人性を推定する。例えば、推定部166は、ローカル認証情報記憶部151に記憶された情報に基づいて、ユーザの本人性を推定する。この場合、生成部164は、推定部166によって推定された結果や、推定における認証レベル等を含めた抽象情報を生成する。
また、推定部166は、ユーザの本人性を推定するための情報として、ユーザの属性情報もしくは行動結果情報を推定する。例えば、推定部166は、推定情報記憶部152において定義された情報に基づいて、ユーザの属性情報もしくは行動結果情報を推定する。この場合、生成部164は、推定部166によって推定されたユーザの属性情報もしくは行動結果情報を含む抽象情報を生成する。
(変形例に係るユーザ端末10Aの処理手順について)
次に、図12を用いて、変形例に係るユーザ端末10Aの処理手順について説明する。図12は、変形例に係る処理手順を示すフローチャートである。
図12に示すように、ユーザ端末10Aは、種々の手段を介して、認証情報を取得する(ステップS201)。そして、ユーザ端末10Aは、取得された情報に基づいて、ユーザの本人性を推定する(ステップS202)。なお、ステップS202において、ユーザ端末10Aは、ユーザの属性情報や行動結果情報を推定してもよい。
ユーザ端末10Aは、推定した情報に基づいて、抽象情報を生成する(ステップS203)。さらに、ユーザ端末10Aは、生成した抽象情報を認証サーバ100に送信する(ステップS204)。そして、ユーザ端末10Aは、抽象情報によってユーザの本人性を判定した認証サーバ100から、認証結果を取得する(ステップS205)。
〔6−2.ユーザ端末の数〕
上記実施形態では、ユーザ端末10が1台の装置である例を示したが、ユーザ端末10は1台に限られない。例えば、ユーザは、通信可能な端末装置を複数台所有することも想定される。この場合、認証サーバ100は、ユーザが利用する複数のユーザ端末10によって取得された各種認証情報を取得するようにしてもよい。
なお、認証サーバ100は、複数のユーザ端末10の識別において、必ずしも他の機器にも共通するようなグローバルな識別子を取得することを要さない。すなわち、認証サーバ100は、実施形態において実行する処理において、ユーザ端末10を一意に識別することが可能な識別子を取得しさえすればよく、必ずしも永続的に定まる識別子を取得しなくてもよい。
〔6−3.ユーザ端末の構成〕
上記実施形態では、ユーザ端末10の構成例について図3を用いて説明した。しかし、ユーザ端末10は、図3で例示した全ての処理部を備えることを必ずしも要しない。例えば、ユーザ端末10は、表示部13や検知部14を必ずしも備えていなくてもよい。また、ユーザ端末10は、2以上の機器に分離されて図3を示す構成が実現されてもよい。例えば、ユーザ端末10は、少なくとも検知部14を有する検知装置と、少なくとも通信部11を有する通信装置とに分離された構成を有する、2台以上の機器により実現されてもよい。
〔6−4.サービスを提供する装置〕
上記実施形態では、ユーザの認証が必要となる状況として、例えば、ユーザ端末10が認証制限付きサイトにアクセスするような状況を例示した。すなわち、ユーザの認証が必要となる状況を生じさせるサービスの提供者として、ウェブサーバを例示した。しかし、このようなサービスを提供する装置は、ウェブサーバに限られない。例えば、サービスを提供する装置は、ウェブサービスに限らず、HTTP(Hypertext Transfer Protocol)ではない種類のプロトコルを扱うネットワークサービスや、IoT(Internet of Things)を扱う通信やアプリケーションを提供する装置であってもよい。すなわち、サービスを提供する装置は、認証サーバ100やユーザ端末10等と通信可能であり、認証サーバ100による生成処理や判定処理を利用する機能を有する装置であれば、ウェブサーバに限られず、どのような装置によって実現されてもよい。
〔6−5.検証処理〕
上記実施形態では、認証サーバ100は、ユーザ端末10側でユーザが認証された旨を示す抽象情報を受信する例を示した。ここで、ユーザ端末10は、認証サーバ100に送信する抽象情報について、種々の既知の技術を用いて、送信する抽象情報の一部、あるいは、全てに署名を付してもよい。そして、認証サーバ100は、署名された情報に基づいて、ユーザ端末10から送信された抽象情報を検証する。かかる処理により、認証サーバ100は、抽象情報が間違いなくユーザ端末10から送信されたことを検証できるので、抽象情報の信頼性、ひいては、認証の信頼性を担保することができる。
また、上記実施形態では、認証サーバ100は、共通化された抽象情報を受信した場合、所定の定義ファイルに基づいて、抽象情報を解析する例を示した。ここで、認証サーバ100は、他の手段を用いて抽象情報を解析してもよい。
例えば、認証サーバ100は、送信される情報の類似性に基づいて、抽象情報を解析してもよい。一般に、ユーザの認証に用いられる指紋データは、取得される状況によって多少の相違はあるものの、データの大部分は取得処理のたびに相違するものではない。このため、認証サーバ100は、受信した抽象情報のうち、指紋データに該当する情報の部分が、過去の認証に用いられた際と所定の閾値を超えて相違している場合、その情報が偽装データ(ダミー)であると推定する。この場合、認証サーバ100は、指紋データを認証に用いない。同様に、例えば、ユーザ端末10の加速度を示す値が極端に相違することや、気温等が極端に相違することは想定しにくい。すなわち、認証サーバ100は、受信する各コンテキスト情報について、ある一定の範囲の閾値を設けておき、その範囲に該当した数値は、現実的に採り得ない数値であるものとして、偽装データと判定するようにしてもよい。また、認証サーバ100は、それらを単独で判定するのではなく、組合せとして判定してもよい。
〔7.ハードウェア構成〕
上述してきた実施形態に係る認証サーバ100やユーザ端末10は、例えば図13に示すような構成のコンピュータ1000によって実現される。以下、ユーザ端末10を例に挙げて説明する。図13は、ユーザ端末10の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
CPU1100は、ROM1300又はHDD1400に記憶されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を記憶する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を記憶する。通信インターフェイス1500は、通信網500(図2に示したネットワークNに対応)を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを、通信網500を介して他の機器へ送信する。
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、入出力インターフェイス1600を介して生成したデータを出力装置へ出力する。
メディアインターフェイス1700は、記録媒体1800に記憶されたプログラム又はデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係るユーザ端末10として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラム(例えば、実施形態に係る生成プログラム)を実行することにより、制御部16の機能を実現する。また、HDD1400には、記憶部15内のデータが記憶される。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から通信網500を介してこれらのプログラムを取得してもよい。
〔8.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図3に示した取得部161と、受付部163とは統合されてもよい。また、例えば、記憶部15に記憶される情報は、ネットワークNを介して、外部に備えられた記憶装置に記憶されてもよい。
また、例えば、上記実施形態では、ユーザ端末10が、コンテキスト情報を取得する取得処理と、抽象情報を生成する生成処理と、抽象情報を送信する送信処理とを行う例を示した。しかし、上述したユーザ端末10は、取得処理を行う取得装置と、生成処理を行う生成装置と、送信処理を行う送信装置に分離されてもよい。この場合、例えば、実施形態に係るユーザ端末10による処理は、取得装置と、生成装置と、送信装置といった各装置を有する生成処理システム1によって実現される。
また、上述してきた各実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔9.効果〕
上述してきたように、実施形態に係るユーザ端末10(本願に係る生成装置に対応)は、取得部161と、生成部164と、送信部165とを有する。取得部161は、ユーザの認証に用いられる認証情報であって、各々が異なる手段によって取得される複数の種別の認証情報を取得する。生成部164は、取得部161によって取得された複数の種別の認証情報から、各々の認証情報の取得元となった手段および各々の認証情報の情報量が特定されない情報である抽象情報を生成する。送信部165は、生成部164によって生成された抽象情報を用いてユーザを認証するサーバに対して、抽象情報を送信する。
このように、実施形態に係るユーザ端末10は、各手段によって取得された認証情報をそのまま送信するのではなく、手段や情報量を曖昧化した情報である抽象情報を認証サーバ100に送信する。この場合、不正ユーザは、認証サーバ100に送信された情報を閲覧したとしても、どのような手段によって取得された情報であるかを把握できなくなる。このため、ユーザ端末10は、送信する情報に基づいてユーザの認証に用いられる手段を特定されるといった危険を回避することができる。これにより、ユーザ端末10は、認証の利便性を確保しつつ安全性を高めることができる。
また、生成部164は、取得部161によって所定時間内に取得された複数の種別の認証情報から、取得元の手段及び情報量に関わらず共通する形式を有する抽象情報を生成する。
このように、実施形態に係るユーザ端末10は、取得した情報に関わらず、形式を共通化した抽象情報を生成する。これにより、ユーザ端末10は、ユーザの認証において何の要素が認証に効いているのかといった情報や、どのような手段によって取得された情報の情報量が多いのかといった情報を曖昧化できる。これにより、ユーザ端末10は、不正ユーザの傍受に耐えうる認証処理を実行させることができる。
また、生成部164は、手段をインデックスとし、手段によって取得された認証情報が細分化されたデータがインデックスに属する形式で抽象情報を生成する。
このように、実施形態に係るユーザ端末10は、各手段によって取得された認証情報を細分化してもよい。これにより、ユーザ端末10は、各手段によって取得された認証情報の情報量が異なっていたとしても、見かけ上、同じ大きさのデータパケットが連なった情報に見せかけることができる。このため、ユーザ端末10は、どのような手段によって取得された認証情報が、主に認証に用いられているかを察知されないようにすることができる。このため、ユーザ端末10は、認証に関する安全性を高めることができる。
また、生成部164は、取得部161によって所定時間内に取得された複数の種別の認証情報のうち、所定の条件に該当する種別の認証情報には、偽装した情報を用いて抽象情報を生成する。
このように、実施形態に係るユーザ端末10は、共通化した情報を生成するにあたり、情報を偽装してもよい。これにより、ユーザ端末10は、どのような情報が取得された場合であっても、形式が共通化された抽象情報を生成することができる。
また、生成部164は、所定の情報量に満たない種別の認証情報には、偽装した情報を追加して抽象情報を生成する。
このように、実施形態に係るユーザ端末10は、特定の手段を介して取得された認証情報の情報量を偽装するようにしてもよい。これにより、ユーザ端末10は、認証サーバ100に送信する情報が傍受されたとしても、どの手段によって取得された情報に重みが置かれているかを推測されることを防止することができる。
また、変形例に係るユーザ端末10Aは、取得部161によって所定時間内に取得された複数の種別の認証情報に基づいて、ユーザの本人性を推定する推定部166をさらに備える。生成部164は、推定部166によって推定された結果に基づいて、抽象情報を生成する。
このように、変形例に係るユーザ端末10Aは、ローカル側でユーザの本人性を推定し、かかる推定の結果情報を認証サーバ100に送信するようにしてもよい。これにより、ユーザ端末10Aは、認証情報そのものを送信せずに、ユーザの認証処理を行わせることができる。かかる構成によれば、ユーザ端末10Aは、ユーザの認証に関する手段や、モデルの重み値についても、不正ユーザから閲覧される可能性を低下させることができるため、ユーザのプライバシーをより厚く保護することができる。また、ユーザ端末10Aは、認証情報そのものを送信しないことで、認証処理の安全性を高めることができる。さらに、ユーザ端末10Aによれば、ユーザ端末10A側でユーザ本人の本人性を推定する(認証する)ため、ユーザは、必ずしも認証サーバ100による認証を要さず、認証を利用するサービスの提供を受けることができる。例えば、ユーザ端末10Aは、オフラインであってもユーザの本人性を推定することができるため、認証サーバ100による通信が行われる前であっても、認証結果の情報を利用するサービス(例えば、ユーザ端末10内に保持された電子チケットを使用した入退場の制御など)をユーザに利用させることができる。
また、推定部166は、ユーザの本人性を推定するための情報として、ユーザの属性情報もしくは行動結果情報を推定する。生成部164は、推定部166によって推定されたユーザの属性情報もしくは行動結果情報を含む抽象情報を生成する。
このように、変形例に係るユーザ端末10Aは、属性情報や行動結果情報等を推定し、推定した情報を送信するようにしてもよい。これにより、認証サーバ100側の管理者は、ユーザ端末10Aから送信される情報に基づいた処理を行なえばよくなるため、認証情報の正解データを管理するリスクや、正解データが漏洩するリスクを避けることができる。
また、取得部161は、認証情報として、ユーザのコンテキストに関する情報を取得する。具体的には、取得部161は、ユーザのコンテキストに関する情報として、通信情報、属性情報、ユーザが置かれた物理環境、ユーザが置かれた社会環境、ユーザの運動状態、および、ユーザの感情のうち少なくとも一つを取得する。
このように、実施形態に係るユーザ端末10は、ユーザのコンテキストに関する情報を認証情報として取得する。コンテキスト情報は、ユーザの行動や状況に伴って取得される情報であるため、かかる情報を用いることにより、ユーザ端末10は、ユーザにあわせたリアルタイムな認証を行わせることができる。また、アプリ開発者等は、認証サーバ100とユーザ端末10間における、コンテキストを用いて行われる認証処理を利用することによって、即時的でパーソナルなサービスをユーザに提供することができる。
また、取得部161は、認証情報として、ユーザから入力されるクレデンシャル情報を取得する。具体的には、取得部161は、クレデンシャル情報として、ユーザから入力されるパスワード、指紋データ、虹彩データ、声紋データのうち少なくとも一つを取得する。
このように、実施形態に係るユーザ端末10は、生体情報等のクレデンシャル情報を用いて認証を行わせてもよい。ユーザ端末10は、クレデンシャル情報を含めた抽象情報を生成し、送信することで、より確実性の高い認証を行わせることができる。
以上、本願の実施形態を図面に基づいて詳細に説明したが、これは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。