JP6812274B2 - 生成装置、生成方法及び生成プログラム - Google Patents

生成装置、生成方法及び生成プログラム Download PDF

Info

Publication number
JP6812274B2
JP6812274B2 JP2017043241A JP2017043241A JP6812274B2 JP 6812274 B2 JP6812274 B2 JP 6812274B2 JP 2017043241 A JP2017043241 A JP 2017043241A JP 2017043241 A JP2017043241 A JP 2017043241A JP 6812274 B2 JP6812274 B2 JP 6812274B2
Authority
JP
Japan
Prior art keywords
user
model
value
predetermined
generation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017043241A
Other languages
English (en)
Other versions
JP2018147326A (ja
Inventor
孝太 坪内
孝太 坪内
秀仁 五味
秀仁 五味
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2017043241A priority Critical patent/JP6812274B2/ja
Publication of JP2018147326A publication Critical patent/JP2018147326A/ja
Application granted granted Critical
Publication of JP6812274B2 publication Critical patent/JP6812274B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、生成装置、生成方法及び生成プログラムに関する。
近年、各ユーザが所有する端末装置においてユーザの行動情報を取得し、各種行動情報に基づいてユーザの認証を行う技術が提案されている。このような技術によれば、ユーザは、認証に要するパスワード等を記憶せずとも、自身の日常の行動に応じて認証を受けることが可能になる。
ユーザの行動情報を利用した認証に関する技術として、ユーザの様々な行動履歴情報を認証に用いることにより、行動履歴情報の偏りを防止し、他者による行動履歴情報の推測を困難にすることで、認証システムのセキュリティ強度の低下を防ぐ技術が提案されている。
特開2011−59837号公報
しかしながら、上記の従来技術では、認証の利便性を確保しつつ、認証の安全性を高めることができない可能性がある。例えば、従来技術では、ユーザの様々な行動履歴を認証に用いて安全性を高めているものの、認証のためにはユーザが情報を回答する必要があるため、利便性が高いとはいえない。
一方、認証の利便性を高めるために、ユーザの行動情報に基づいて自動的に認証を行う手法を採用すると、様々な行動履歴を認証に用いたとしても安全性を確保できない場合がある。例えば、ユーザの様々な行動のうち、認証に有効な行動(例えば、様々な行動のうち、当該ユーザの本人性の判定において重み値が高い行動)が第三者に知られた場合、悪意をもってユーザに似せた行動をとる第三者に、簡単に認証が破られてしまう可能性がある。すなわち、第三者は、認証に有効な行動のみを真似するだけで、当該ユーザと同じ効果を有する行動情報を取得することが可能になる。これにより、ユーザの認証が、ユーザ本人に成りすました第三者によって行われる危険性が高くなる。
本願は、上記に鑑みてなされたものであって、認証の利便性を確保しつつ安全性を高めることができる生成装置、生成方法及び生成プログラムを提供することを目的とする。
本願に係る生成装置は、ユーザのコンテキストに関する各種情報を取得する取得部と、前記取得部によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出部と、前記算出部によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成部と、を備えたことを特徴とする。
実施形態の一態様によれば、認証の利便性を確保しつつ安全性を高めることができるという効果を奏する。
図1は、実施形態に係る生成処理の一例を示す図である。 図2は、実施形態に係る生成処理システムの構成例を示す図である。 図3は、実施形態に係る生成装置の構成例を示す図である。 図4は、実施形態に係る生データ記憶部の一例を示す図である。 図5は、実施形態に係る個人情報記憶部の一例を示す図である。 図6は、実施形態に係る学習情報記憶部の一例を示す図である。 図7は、実施形態に係る仕様情報記憶部の一例を示す図である。 図8は、実施形態に係るモデルテーブルの一例を示す図である。 図9は、実施形態に係る条件テーブルの一例を示す図である。 図10は、実施形態に係るユーザ端末の構成例を示す図である。 図11は、実施形態に係る処理手順を示すフローチャート(1)である。 図12は、実施形態に係る処理手順を示すフローチャート(2)である。 図13は、変形例に係る生成処理の一例を示す図である。 図14は、生成装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
以下に、本願に係る生成装置、生成方法及び生成プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法及び生成プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
〔1.生成処理の一例〕
まず、図1を用いて、実施形態に係る生成処理の一例について説明する。図1は、実施形態に係る生成処理の一例を示す図である。図1では、本願に係る生成装置100によって、ユーザ端末10から送信される情報に基づいてユーザの本人性に関する生成処理が行われる例を示す。
図1に示す生成装置100は、ユーザ端末10の認証に関する判定を行うサーバ装置である。また、ユーザ端末10は、ユーザによって利用される情報処理端末である。図1では、ユーザ端末10は、例えばスマートフォン(Smartphone)である。図1の例では、ユーザ端末10は、ユーザの一例であるユーザU01によって利用されるものとする。
実施形態において、生成装置100は、ユーザ端末10から送信される情報に基づいて、ユーザU01の本人性の判定を行う。言い換えれば、生成装置100は、ユーザU01が真にユーザU01本人であると認証する処理を行う。
実施形態では、生成装置100は、ユーザ端末10から送信される、ユーザU01のコンテキスト(context)に関する各種情報に基づいて生成処理を行うものとする。実施形態においてコンテキストとは、ユーザ端末10が利用されている状況や、ユーザ端末10を利用するユーザU01の状況のことをいう。すなわち、実施形態では、生成装置100は、パスワードのような入力を要するクレデンシャル情報(Credential Information)による認証を必ずしも要さず、ユーザ端末10から取得されたコンテキストに関する情報に基づいて自動的にユーザU01を認証する。
コンテキストに関する各種情報とは、例えば、異なる手段によって取得される情報や、異なる状況を示す情報を意味する。例えば、コンテキストに関する情報には、ユーザU01によってユーザ端末10が使用されている環境情報や、ユーザ端末10を所持するユーザU01が置かれている状態を示す情報や、ユーザU01およびユーザU01と関わりのある他のユーザに関する情報等が含まれる。また、コンテキスト情報には、ユーザU01を識別する識別情報や、ユーザ端末10を識別する識別情報(デバイスを一意に特定するデバイスIDなど)や、ユーザ端末10のネットワーク情報も含まれる。ユーザ端末10のネットワーク情報は、例えば、ユーザU01のネットワーク上の行動履歴や、ネットワーク上においてユーザ端末10を識別する情報(例えばクッキー(cookie)情報など)や、ユーザ端末10と他の端末との接続状況等を含む。このように、コンテキストに関する各種情報には、ユーザやユーザ端末10の状況を示すための要素となりうる情報であれば、いずれの情報が含まれてもよい。
そして、生成装置100は、各種情報に基づいてユーザU01を判定する、いわゆる多要素認証を行う。すなわち、生成装置100は、ユーザU01の位置情報の推移と、ユーザ端末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は、以下で説明する生成処理を実行してモデルを生成する。具体的には、生成装置100は、コンテキストに関する各種情報を素性として学習処理を実行したうえで、各素性に対して算出した重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、モデルを生成する。具体的には、生成装置100は、各素性のうち、所定の条件に該当する素性の重み値がダミーとなるようにモデルを生成する。これにより、生成装置100は、不正ユーザがモデルと仕様書を参照したとしても、当該ユーザの認証において有効となる素性について、一見わからないようなモデルを生成することができる。かかる処理により、生成装置100は、認証の利便性を確保しつつ、認証の安全性を高めることができる。以下、図1を用いて、生成装置100による生成処理の一例について、流れに沿って説明する。なお、以下の説明では、コンテキストに関する情報を「コンテキスト情報」と表記する場合がある。
まず、図1に示す例において、生成装置100は、ユーザ端末10から、ユーザU01のコンテキストに関する各種情報を取得する(ステップS01)。例えば、生成装置100は、所定時間ごとに、ユーザ端末10の操作状況や、ユーザ端末10の位置や、ユーザ端末10の加速度状況等を示すコンテキスト情報をユーザ端末10から取得する。
そして、生成装置100は、取得した情報に基づいて学習を行う(ステップS02)。具体的には、生成装置100は、取得した情報が示すコンテキストの傾向から、ユーザU01の本人性を示すことになるコンテキスト情報を学習する。このとき、生成装置100は、ユーザ端末10から取得した各種コンテキスト情報を、所定の定義のもと、モデルにおける各素性に分類する。例えば、生成装置100は、情報の種別に従い、コンテキスト情報を、ユーザ端末10の操作状況や、他の端末との通信状況や、位置情報や、ユーザ端末10を利用したユーザU01が行う行動(例えば、検索サービスの利用など)を示す素性に分類する。
そして、生成装置100は、学習処理によって、各素性について認証に使用する重み値を算出する(ステップS03)。生成装置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がユーザを認証する際に、どのようなコンテキスト情報を用いているかを把握することができる。
図1では、ユーザU01に対して算出された重み値のみを示している。図1で示す例において、(0,0,0,0,2.3,3.9,0,・・・)と示されているものは、ステップS03における学習において算出された数値を示す。図1の例では、生成装置100は、「ω1」を「0」と算出し、「ω2」を「0」と算出し、「ω3」を「0」と算出し、「ω4」を「0」と算出し、「ω5」を「2.3」と算出し、「ω6」を「3.9」と算出し、「ω7」を「0」と算出したことを示している。
ここで、生成装置100が保持する仕様書によれば、「x1」が「ユーザ端末10操作(午前)」であり、「x2」が「ユーザ端末10操作(午後)」であり、「x3」が「通信状況(午前)」であり、「x4」が「通信状況(午後)」であり、「x5」が「位置情報(午前)」であり、「x6」が「位置情報(午後)」であり、「x7」が「検索状況(午前)」であるものとする。
すなわち、図1で示した例では、生成装置100は、ユーザU01の本人性を判定する処理において、「x5」の「位置情報(午前)」と、「x6」の「位置情報(午後)」との2つの素性が有用であると学習したことを示している。言い換えれば、生成装置100は、重み値が「0」である素性を利用せずとも、重み値が「2.3」と「3.9」である素性(位置情報)のみを利用することで、ユーザU01の本人性を判定することができるといえる。
ここで、不正ユーザが、かかる情報を参照した場合、「x5」や「x6」が「位置情報」であり、また、「ω5」や「ω6」が他の素性よりも重み値が高いことを知得できる。このため、不正ユーザは、ユーザU01の「位置情報」のみを真似すれば、ユーザU01に成りすませるということになる。
上記のような事態を防止するために、生成装置100は、算出した重み値が所定の条件に該当する場合に、実際にユーザU01を判定するモデルを生成する際に、重み値を置き換える処理を行う。具体的には、生成装置100は、算出した重み値をダミー値(実施形態では、「ニセ重み」と称する)に置き換える(ステップS04)。
例えば、生成装置100は、学習によって算出された重み値のうち、所定の閾値より低い重み値をニセ重みに置き換えてモデルを生成する。図1の例では、生成装置100は、重み値が0である素性に対応する重み値を、ニセ重みとしてランダムな値に置き換える。そして、生成装置100は、算出した重み値と置き換えたニセ重みとを用いて、ユーザU01に対応するモデルを生成する。
図1には、生成装置100がユーザU01に対応するモデルを生成するにあたり、ニセ重みを設定した場合の例を示す。例えば、生成装置100は、ω5とω6以外の重み値について、「ω1」を「2」と置き換え、「ω2」を「1.9」と置き換え、「ω3」を「6.9」と置き換え、「ω4」を「−1.2」と置き換え、「ω7」を「0.1」と置き換える。このように、生成装置100は、モデルにおいて、所定の条件に合致する重み値については、学習によって算出された値ではなく、ランダムに置き換えた重み値を採用する。生成装置100は、このようにして生成したモデルを、ユーザU01と対応付けて記憶する(ステップS05)。
続いて、生成装置100が、ユーザU01を認証する処理について説明する。生成装置100は、所定のタイミングで、ユーザ端末10からコンテキストに関する各種情報を受信する(ステップS11)。生成装置100は、定期的にユーザ端末10から情報を受信していてもよいし、例えば、認証を要するタイミング(ユーザU01が利用したサービスから本人認証を求められた場合など)で情報を受信してもよい。
生成装置100は、受信した情報をユーザU01に対応するモデルに入力する(ステップS12)。このとき、生成装置100は、モデルのうち、認証に使用する素性を抽出する(ステップS13)。かかる処理が行われる理由は、モデルに含まれる素性には、ランダムな重み値が設定されている素性があるため、そのままの重み値を利用してユーザU01の本人らしさを算出しようとしても、正確な値が出力されないためである。
例えば、生成装置100は、学習処理に用いられた情報量が所定量を超える素性を抽出する。これは、一般に、学習処理においてサンプルとなった情報量が少ない素性は、ユーザの本人性を判定するために貢献する程度が低いと想定されるという理由による。一方で、学習処理においてサンプルとなった情報量が多い素性は、ユーザの本人性の判定に貢献する程度が高いと想定される。このため、生成装置100は、学習処理に用いられた情報量に所定の閾値を設けて、当該閾値を超える情報量に対応する素性のみを用いて、ユーザの本人性の判定を行う(ステップS14)。
図1の例では、生成装置100は、「x5」及び「x6」の素性を抽出したものとする。この場合、生成装置100は、受信したコンテキスト情報をモデルに入力するものの、実際に生成処理に有効な数値は、x5とx6に対応する素性(図1の例では位置情報)から得る。これにより、生成装置100は、ランダムな値に置き換えられたモデルであっても、正確にユーザU01の本人性を判定することができる。その後、生成装置100は、受信した情報によってユーザU01の本人性を判定することができたか否かを示す認証結果をユーザ端末10に送信する(ステップS15)。
このように、実施形態に係る生成装置100は、ユーザのコンテキストに関する各種情報を取得する。そして、生成装置100は、取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける素性の各々に対する重み値を算出する。さらに、生成装置100は、算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、ユーザに対応するモデルを生成する。
すなわち、生成装置100は、暗号化のような複雑な処理を行わずとも、「ユーザの認証において何の要素が認証に効いているのか」といった情報を曖昧化することで、ユーザの認証において有効な素性を秘匿することができる。また、生成装置100によれば、生成したモデルや、モデルの仕様を記載した情報については、アプリ開発者等がアクセスしやすい環境に置いたまま、モデルに設定される重み値を曖昧化することができる。これにより、生成装置100は、認証の利便性を確保しつつ安全性を高めることができる。
〔2.生成処理システムの構成〕
次に、図2を用いて、実施形態に係る生成装置100が含まれる生成処理システム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を用いて、実施形態に係る生成装置100の構成について説明する。図3は、実施形態に係る生成装置100の構成例を示す図である。図3に示すように、生成装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、生成装置100は、生成装置100を利用する管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
(通信部110について)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。かかる通信部110は、ネットワークNと有線又は無線で接続され、ネットワークNを介して、ユーザ端末10との間で情報の送受信を行う。
(記憶部120について)
記憶部120は、例えば、RAM、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、第三者が比較的アクセスしにくい環境の記憶領域(実施形態では、「セキュア(secure)環境1201」と称する)と、第三者が比較的アクセスしやすい環境の記憶領域(実施形態では、「プロダクション(production)環境1202」と称する)とを有する。
例えば、プロダクション環境1202には、ユーザごとに生成されたモデルや、モデルの仕様に関する情報が置かれ、第三者が利用することが可能である。また、コンテキスト認証では、ユーザ端末10との情報のやり取りが頻繁に行われることから、比較的アクセスを素早く行うことができるプロダクション環境1202が利用される。一方、セキュア環境1201には、モデル生成に用いられるコンテキスト情報の生データや、ユーザの個人情報等が置かれ、第三者がアクセスすることが困難なように所定の設定がなされる。なお、プロダクション環境1202とセキュア環境1201とは、双方が必ずしも生成装置100内部に備えられることを要しない。例えば、セキュア環境1201は、生成装置100とは異なる装置(例えば、外部のストレージサーバ)に隔離するような態様で存在してもよい。
図3に示すように、記憶部120のうち、セキュア環境1201には、生データ記憶部121と、個人情報記憶部122と、学習情報記憶部123とが含まれる。また、プロダクション環境1202には、仕様情報記憶部124と、モデル記憶部125とが含まれる。以下、記憶部120に含まれる各記憶部について順に説明する。なお、重複する項目に関する説明は、適宜省略する。
(生データ記憶部121について)
生データ記憶部121は、ユーザ端末10から取得されたコンテキストに関する各種情報の生データ(ログ)を記憶する。ここで、図4に、実施形態に係る生データ記憶部121の一例を示す。図4は、実施形態に係る生データ記憶部121の一例を示す図である。図4に示した例では、生データ記憶部121は、「ユーザID」、「生データID」、「取得日時」、「データ内容」といった項目を有する。
「ユーザID」は、ユーザを識別する識別情報である。なお、実施形態では、図4に示すような識別情報を参照符号として用いる場合がある。例えば、ユーザID「U01」によって識別されるユーザを「ユーザU01」と表記する場合がある。
「生データID」は、生データを識別する識別情報である。「取得日時」は、生データが取得された日時を示す。なお、実施形態では、生成装置100は、1分ごとにユーザ端末10から情報を取得している例を示しているが、生成装置100が情報を取得するタイミングはこの例に限られない。また、実施形態では、生データは、ユーザ端末10から送信された様々なコンテキスト情報を含む単位で管理されるものとする。すなわち、生成装置100は、所定時間ごとにユーザ端末10から送信された情報を一つの集合として生データを管理する。しかし、この例に限られず、生成装置100は、生データを個別に管理してもよい。
「データ内容」は、生データが含む内容を示す。なお、図4の例において、「データ内容」には、「A01」といった概念的な情報が格納される例を示しているが、実際には、データ内容には、ユーザ端末10から送信される各種情報が含まれる。例えば、データ内容には、生成装置100に情報を送信してから、次に生成装置100に送信するまでにユーザ端末10内で蓄積されたコンテキスト情報が含まれる。
具体的には、データ内容には、ユーザ端末10における操作履歴や、ユーザ端末10の物理的な動作や加速度の状況や、ユーザ端末10の位置情報の推移や、ユーザ端末10においてユーザU01がアクセスしたサービスページ(例えばウェブページ)の情報等が含まれる。なお、ユーザ端末10から送信される情報量は、所定時間の間にユーザ端末10内に蓄積される情報量となるため、例えば、コンテキスト情報によって情報量に偏りが生じる。例えば、ユーザU01がユーザ端末10を所持したまま頻繁に移動し、ユーザ端末10自体を操作していない場合、データ内容には、位置情報が比較的多く含まれ、ユーザ端末10の操作情報が比較的少なく含まれる。
すなわち、図4に示したデータの一例は、ユーザID「U01」で識別されるユーザU01が、生データID「R01」で識別される生データR01を生成装置100に送信しており、生成装置100がその情報を取得した日時は「2017年3月1日 12:00」であり、そのデータ内容は「A01」であることを示している。
(個人情報記憶部122について)
個人情報記憶部122は、ユーザの個人情報が記憶する。ここで、図5に、実施形態に係る個人情報記憶部122の一例を示す。図5は、実施形態に係る個人情報記憶部122の一例を示す図である。図5に示した例では、個人情報記憶部122は、「ユーザID」、「個人情報」といった項目を有する。また、「個人情報」の項目は、「名前」、「性別」、「年齢」といった小項目を有する。
「個人情報」は、ユーザの個人情報を示す。「名前」、「性別」、「年齢」は、それぞれ、ユーザの名前、性別、年齢を示す。
すなわち、図5に示したデータの一例では、ユーザU01の個人情報として、名前が「XXX」であり、性別が「男性」であり、年齢が「30」歳という情報が記憶されていることを示している。例えば、個人情報は、ユーザ認証が成功した場合に、サービス提供に際してユーザ認証を要求したサービス側に提供されるために利用される。
(学習情報記憶部123について)
学習情報記憶部123は、学習処理に関する情報を記憶する。ここで、図6に、実施形態に係る学習情報記憶部123の一例を示す。図6は、実施形態に係る学習情報記憶部123の一例を示す図である。図6に示した例では、学習情報記憶部123は、「ユーザID」、「学習データID」、「仕様ID」、「算出データ」といった項目を有する。また、「算出データ」の項目は、「素性番号」、「素性」、「重み値」、「学習データ量」といった小項目を有する。
「学習データID」は、学習データを識別する識別情報を示す。「仕様ID」は、モデルの仕様(ひいては、学習の仕様)を識別するための識別情報を示す。なお、モデルの仕様とは、モデルにおいて用いられる素性の種別や、モデルにおける素性の番号等に関する仕様を示す。「素性番号」は、モデルにおける素性の番号を示す。例えば、素性番号が「1」である素性は、上記式(1)における「x1」に対応する。「素性」は、モデルにおける説明変数であり、モデルにおいてユーザの本人性を判定するために用いられるコンテキスト情報の種別を示す。
素性には、種々のコンテキスト情報が対応する。図6に示す例において、「通信状況(午前)」とは、例えば、午前中の時間帯において、日常的にユーザU01が行う通信の状況を示す。かかる情報は、ユーザ端末10の情報とは限らず、ユーザU01が日常的に取り扱う端末装置や、据置きの機器から取得される情報であってもよい。また、「位置情報(午前)」とは、例えば、午前中の時間帯において、日常的にユーザU01が所在する位置に関する情報を示す。具体的には、位置情報は、例えば、GPS(Global Positioning System)等を利用して取得される緯度や経度である。また、位置情報は、例えば、ユーザ端末10を提示して入退場した駅改札の入退場記録や、会社への入場記録等であってもよい。また、「検索状況(午前)」とは、例えば、午前中の時間帯において、日常的にユーザU01が検索サービスを利用した利用状況をいう。検索状況についても、必ずしもユーザ端末10から取得される情報に限られず、例えば、ユーザU01の所持するアカウントで検索サービスにログインされた際の検索状況であれば、ユーザ端末10以外の端末から取得された情報であってもよい。
「算出データ」は、学習において算出されたデータを示す。「重み値」は、学習において各素性に対して算出された重み値を示す。「学習データ量」は、学習に用いられたデータ量を示す。なお、図6の例において、「学習データ量」には、「C01」といった概念的な情報が格納される例を示しているが、実際には、学習データ量の項目には、学習に用いられた具体的なデータ量(情報量)が記憶される。例えば、ユーザ端末10から取得する情報のうち、位置情報が多く含まれる場合、位置情報に対応する素性に関する学習データ量は、他の素性の学習データ量よりも多くなる。
すなわち、図6に示したデータの一例では、ユーザU01に関する学習データは、学習データID「B01」で識別される学習データB01であることを示している。また、学習データB01には、仕様ID「P01」で識別される仕様P01が適用されることを示している。また、学習データB01における算出データの一例として、素性番号「1」の素性は「ユーザ端末10操作(午前)」であり、その重み値は「0」であり、その学習データ量は「C01」であることを示している。
(仕様情報記憶部124について)
仕様情報記憶部124は、モデルの仕様を記憶する。ここで、図7に、実施形態に係る仕様情報記憶部124の一例を示す。図7は、実施形態に係る仕様情報記憶部124の一例を示す図である。図7に示した例では、仕様情報記憶部124は、「仕様ID」、「仕様」といった項目を有する。また、「仕様」の項目は、「素性番号」、「素性」といった小項目を有する。
「仕様ID」は、仕様を識別するための識別情報を示す。「仕様」は、生成装置100が生成するモデルの仕様を示す。仕様は、例えば、学習処理を行う際に参照され、かかる仕様に基づいて学習された結果が、当該仕様に従う学習モデルとして生成される。
すなわち、図7に示したデータの一例では、仕様P01を採用するモデルは、素性番号が「1」の素性として「ユーザ端末10操作(午前)」を利用することが示されている。仕様情報記憶部124に記憶されている情報は、学習処理の際に生成装置100に参照されるのみならず、例えば、生成装置100が生成したモデルを利用する第三者に参照されるため、プロダクション環境1202に置かれる。
(モデル記憶部125について)
モデル記憶部125は、生成されたモデルに関する情報を記憶する。モデル記憶部125は、データテーブルとして、モデルテーブル126と、条件テーブル127とを有する。
(モデルテーブル126について)
モデルテーブル126は、モデルに関する情報を記憶する。ここで、図8に、実施形態に係るモデルテーブル126の一例を示す。図8は、実施形態に係るモデルテーブル126の一例を示す図である。図8に示した例では、モデルテーブル126は、「ユーザID」、「モデルID」、「仕様ID」、「モデル情報」といった項目を有する。また、「モデル情報」の項目は、「素性番号」、「素性」、「重み値」「学習データ量」といった小項目を有する。
「モデルID」は、モデルを識別する識別情報を示す。「モデル情報」は、生成されたモデルに関する情報を示す。なお、モデル情報における重み値は、学習により算出された値そのものではなく、算出された値から置き換えられた重み値が設定される場合もある。図8に示した例では、素性番号「1」、「2」、「3」、「4」、「7」について、重み値が置き換えられている。
すなわち、図8に示したデータの一例では、ユーザU01に対応付けられたモデルは、モデルID「M01」で識別されるモデルM01であることを示している。また、モデルM01には、仕様P01が適用されることを示している。また、モデルM01におけるモデル情報の一例として、素性番号「1」の素性は「ユーザ端末10操作(午前)」であり、その重み値は「2」であり、その学習データ量は「C01」であることを示している。
(条件テーブル127について)
条件テーブル127は、実際にユーザの本人性を判定する際に、モデルに含まれる素性のうち、いずれの素性を用いて判定を行うかを判断するために用いられる条件を記憶する。ここで、図9に、実施形態に係る条件テーブル127の一例を示す。図9は、実施形態に係る条件テーブル127の一例を示す図である。図9に示した例では、条件テーブル127は、「ユーザID」、「条件ID」、「条件」といった項目を有する。
「条件ID」は、条件を識別する識別情報を示す。「条件」は、モデルに含まれる素性のうち、いずれの素性を用いて判定を行うかを判断するために用いられる具体的な条件を示す。なお、条件は、例えば生成装置100の管理者によって、任意に設定されてもよい。例えば、条件は、所定量を超える学習データを有する素性であってもよいし、あるいは、判定に用いる素性を指定(位置情報に対応する素性を用いる、など)するものであってもよい。
すなわち、図9に示したデータの一例では、ユーザU01の本人性を判定するための素性を抽出するための条件として、条件ID「RE01」で識別される条件RE01には、「所定量を超える学習データを有する素性」が設定されていることを示している。なお、生成装置100は、ユーザU01に設定された全ての条件を満たす素性を抽出して判定を行ってもよいし、いずれか少なくとも一つの条件を満たす素性を抽出して判定を行ってもよい。
(制御部130について)
図3に戻って説明を続ける。制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、生成装置100内部の記憶装置に記憶されている各種プログラム(例えば、生成プログラム)がRAM(Random Access Memory)を作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
図3に示すように、制御部130は、取得部131と、算出部132と、生成部133と、受信部134と、判定部135と、送信部136とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部130が有する各処理部の接続関係は、図3に示した接続関係に限られず、他の接続関係であってもよい。
(取得部131について)
取得部131は、各種情報を取得する。例えば、取得部131は、ユーザのコンテキストに関する各種情報を取得する。
具体的には、取得部131は、ユーザのコンテキストに関する各種情報として、ユーザが所有する端末装置(例えば、ユーザ端末10)に対する操作に関する情報を取得する。また、取得部131は、ユーザ端末10の通信状況に関する情報を取得する。
また、取得部131は、ユーザ端末10が備えるセンサによって取得される各種情報を取得してもよい。例えば、取得部131は、ユーザ端末10によって検知される環境情報を取得する。また、取得部131は、ユーザ端末10自体のデバイス情報や、ユーザ端末10と通信する外部装置に関する情報等を取得してもよい。
具体的には、取得部131は、ユーザ端末10によって検知されるコンテキスト情報として、ユーザ端末10(あるいは、ユーザ端末10を利用するユーザ)が所在する位置を示す位置情報、ユーザ端末10の周囲の温度、湿度情報、環境光の強さを示す光情報、ユーザ端末10の周囲の騒音レベルを示す音情報等を取得する。また、取得部131は、ユーザ端末10が備えるカメラで撮影された写真や映像に基づいて、ユーザ端末10の周囲の環境情報を取得してもよい。例えば、取得部131は、カメラで撮影された画像情報や、画像情報に含まれる位置情報、撮影された日時等に基づいて、ユーザ端末10の周囲の環境情報を取得する。
また、取得部131は、ユーザ端末10自体のデバイス情報として、ユーザ端末10のCPUや、OS(Operating System)、メモリ等に関する情報、アンテナ等のネットワーク機能、インストールされたソフトウェア、使用されるブラウザソフトウェア、ユーザ端末10が備える認証手段(例えば、指紋データを取得する指紋リーダ機能や、虹彩を取得する機能を備えているか否か)等の情報を取得する。
また、取得部131は、ユーザ端末10の動作状況を取得してもよい。例えば、取得部131は、ユーザ端末10が起動状態にあるか否か、また、起動状態であれば、画面のON/OFFの状態や、ユーザ端末10が移動/静止している状態か等の情報を取得する。かかる情報は、例えば、ユーザ端末10にインストールされた所定のセンシング(sensing)機能を有するアプリによって取得され、ユーザ端末10内部に保持される。また、取得部131は、ユーザ端末10の動作状況として、ユーザ端末10が観測する加速度を取得してもよい。
また、取得部131は、ユーザ端末10と通信する外部装置に関する情報として、ユーザ端末10と相互の通信状態にある外部装置を識別する情報や、確立している通信の種類や周波数帯域等を取得する。
また、取得部131は、コンテキスト情報として、ユーザの行動に関する情報を取得してもよい。例えば、取得部131は、ユーザがユーザ端末10を利用して閲覧したサービスページの情報や、検索サービスに送信したクエリの情報等を取得してもよい。
取得部131は、ユーザ端末10から定期的にコンテキスト情報を受け付けることにより、上述した情報を取得する。なお、取得部131は、ユーザ端末10からの送信によらず、所定時間ごとにユーザ端末10等と所定の通信を行い、ユーザ端末10内部に保持されたコンテキスト情報をクロール(crawl)して、コンテキスト情報を取得してもよい。
また、取得部131は、ユーザの個人情報を取得してもよい。例えば、取得部131は、所定のサービスを利用するための登録情報として、ユーザの個人情報を受け付ける。なお、取得部131は、ユーザの個人情報をウェブサーバ等のサービス側から取得してもよい。
また、取得部131は、生成するモデルの仕様や、判定処理に用いる条件等を取得してもよい。例えば、取得部131は、生成装置100の管理者等から入力を受け付けることで、かかる情報を取得する。
取得部131は、取得した情報を記憶部120内の各記憶部に格納する。また、取得部131は、記憶部120内に格納されている情報を適宜取得してもよい。
(算出部132について)
算出部132は、取得部131によって取得された各種情報を素性として学習処理を実行することにより、ユーザを認証するためのモデルにおける、素性の各々に対する重み値を算出する。具体的には、算出部132は、生成部133が生成しようとするモデルの仕様に規定される、各素性の重み値を算出する。
例えば、算出部132は、取得部131によって取得された各種情報と、その情報がユーザの本人性を判定するための正解データとなりうるかを示した正解データとの関係性を機械学習する。そして、算出部132は、取得部131によって取得された各種情報を素性とした場合に、それらの素性が正解を導き出すために貢献する度合いに基づいて、各素性の重み値を算出する。
以下に、算出部132が重み値を算出する際の算出手法を例示する。なお、以下で示す手法はあくまで一例であり、算出部132は、以下で示す手法に限らず、既知の種々の手法を用いて重み値を算出してもよい。
例えば、算出部132は、取得したコンテキスト情報と、当該コンテキスト情報がユーザの本人性を示すか否かという関係を示す式を生成する。そして、算出部132は、取得した個々のコンテキスト情報(素性)が、ユーザ本人であると判定する処理に対して、どのような重みを有するかを算出する。例えば、算出部132は、下記式(2)を作成する。
Y = ω1・x1 + ω2・x2 + ω3・x3 +・・・+ ωN・xN ・・・(2)(Nは任意の数)
上記式(2)は、学習処理において、例えばコンテキスト情報が取得される度に作成される。上記式(2)において、「Y」は、ユーザ本人であるか否かという事象を2値で示す。例えば、ユーザ本人を示す場合、Yには「1」が入力され、ユーザ本人を示さない場合、Yには「0」が入力される。
また、上記式(2)において、「x」及び「ω」は、式(1)と同様、素性と重み値に対応する。ここで、図6を参照し、具体例を挙げて説明する。すなわち、上記式(2)において、「x1」が「ユーザ端末10操作(午前)」に対応し、「x2」が「ユーザ端末10操作(午後)」に対応し、「x3」が「通信状況(午前)」に対応する。この場合、ユーザU01に対応する上記式(2)は、以下の式(3)のように表すことができる。なお、学習において取得するコンテキスト情報を、ユーザU01から取得された情報(すなわち、ユーザU01の本人を示す情報)であると仮定した場合には、Yには「1」が代入される。
Y(ユーザU01)(= 1) = ω1・(ユーザ端末10操作(午前)) + ω2・(ユーザ端末10操作(午後)) + ω3・(通信状況(午前))+・・・+ ωN・xN ・・・(3)
算出部132は、コンテキスト情報が取得される度に上記式(3)を作成する。そして、算出部132は、作成した複数の式(3)を機械学習のサンプルとする。そして、算出部132は、サンプルとなる複数の式(3)の演算処理を行うことにより、所定の重み値「ω」に対応する値を導出する。これにより、算出部132は、上記式(3)を満たすような所定の重み値「ω」を決定する。言い換えれば、算出部132は、所定の説明変数(上記式(3)では、各素性が対応する)が目的変数「Y」に与える影響を示す重み値「ω」を決定する。
素性xに代入される値は、例えば2値化データであり、所定の式(3)において、素性に対応する情報が存在するのであれば「1」を代入し、素性に対応する情報が存在しないのであれば「0」を代入する。一例を挙げると、「x1」は、「ユーザ端末10操作(午前)」の情報を用いたか否かを示す。この場合、例えば、ユーザの本人性の判定に「ユーザ端末10操作(午前)」の情報を用いた場合には、「x1」=「1」となり、用いていない場合には、「x1」=「0」となる。なお、素性xに代入される値は、取得される情報量や、情報の種別によって調整が行われてもよい。例えば、算出部132は、ある式(3)が作成される場合に利用されるコンテキスト情報の内訳に応じて、xの値を適宜調整してもよい。すなわち、算出部132は、情報量の多い素性ほどユーザの本人性の判定における貢献が高くなると想定し、xの値を高めにするなどの調整を行ってもよい。
上記のようにして、算出部132は、複数の式(3)を作成し、回帰的に重み値ωを求める。すなわち、算出部132は、ユーザが本人であるという事象を、ユーザ端末10から取得するコンテキスト情報によって判定するための学習モデルにおける重み値を算出する。なお、上記式(2)及び(3)を用いた算出処理では、左辺を「1」や「0」そのものとするのではなく、所定の誤差を想定し、かかる誤差との差異を2乗した値が最小値となるよう近似する最小二乗法などの手法を用いて、「ω」の最適解を算出してもよい。また、算出部132は、既知の手法に従い、素性xに代入する値を算出において扱い易いよう正規化するなど、種々の処理を行ってもよい。
算出部132は、算出した重み値や、算出に用いた学習データに関する情報を学習情報記憶部123に格納する。
(生成部133について)
生成部133は、算出部132によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、ユーザに対応するモデルを生成する。この場合、所定値とは、図1で例示したニセ重みに対応する。すなわち、所定値とは、算出部132が機械学習を行って求めた重み値ではなく、ダミーとなる値を意味する。
例えば、生成部133は、ランダムな値を所定値としてモデルを生成する。すなわち、生成部133は、所定の条件に該当する重み値については、算出部132によって算出された値によらず、ランダムな値に置き換える。これにより、生成部133によって生成されたモデルを不正ユーザが参照したとしても、不正ユーザは、いずれの素性の重みが本当に有効なのかを知得することができなくなる。
生成部133は、例えば、算出部132によって算出された重み値のうち、所定の閾値より低い重み値を所定値に置き換えてモデルを生成する。例えば、生成部133は、算出された重み値のうち、全体の平均以下の重み値に該当する重み値を置き換えたり、他の重み値と比較して顕著に低い重み値を置き換えたりする。
あるいは、生成部133は、学習処理に用いられた情報量が所定量に達していない素性に対して算出された重み値を所定値に置き換えて、モデルを生成してもよい。例えば、他の素性に比べて情報量が低い素性は、ユーザの本人性の判定に貢献しない可能性が高い。このため、生成部133は、学習処理において使用された情報量に所定の基準を設け、かかる基準に達しない素性については、算出部132によって算出された値ではなく、所定値に置き換えるようにしてもよい。
なお、生成部133は、算出部132によって算出された重み値のうち、最大となる値から所定範囲に属する値をとる重み値を所定値に置き換えてモデルを生成するようにしてもよい。すなわち、生成部133は、ユーザの判定において有効である素性(重みのある素性)を選択して所定値に置き換える。このように、生成部133は、不正ユーザがユーザに成りすます際に利用すると想定される素性の重み値について、優先的にダミーの値に置き換えることで、本来、認証に有効であった素性が判明されないように対処することができる。なお、生成部133は、所定範囲として、任意の範囲を設定してもよい。また、生成部133は、必ずしも最大値となる重み値を置き換えることを要さない。すなわち、生成部133は、最大値となる重み値から、所定の数値だけ小さい値となる重み値を置き換えるようにしてもよい。このように、生成部133は、置き換える重み値を最大値とは限定しないことで、一見しただけでは、いずれの重み値を置き換えたかを不正ユーザ等に悟られないようにすることができる。
生成部133は、上記の置き換え処理を経て、ユーザごとにモデルを生成する。生成部133は、生成したモデルをモデル記憶部125に記憶する。
(受信部134について)
受信部134は、各種情報を受信する。例えば、受信部134は、判定処理の対象となるユーザから、当該ユーザのコンテキストに関する各種情報を受信する。判定処理の対象となるユーザとは、例えば、アクセスに際して認証を必要とするサービスページ(例えば、所定の制限付きサイト)にアクセスしたユーザ等のことをいう。
上記の処理において、受信部134は、ユーザから送信される所定の制限付きサイトへのアクセス要求等を、ウェブサーバを経由して受信してもよい。すなわち、ユーザ端末10がウェブサーバの管理するサイトへアクセスした場合、ウェブサーバは、アクセス要求があった旨、また、アクセスを承認するためにユーザ端末10を認証することを要する旨を生成装置100に送信する。受信部134は、ウェブサーバから送信された要求を受信するとともに、当該ユーザのコンテキストに関する各種情報を受信する。
なお、受信部134は、上記のような判定処理が発生するタイミングに限らず、所定のタイミングで、判定処理の対象となるユーザからコンテキストに関する各種情報を受信してもよい。例えば、受信部134は、ユーザの行動において認証を要する明示がなくとも、定期的にコンテキストに関する各種情報を受信していてもよい。これにより、ユーザは、実際に認証を必要とする処理が発生した場合であっても、そのタイミングにおいて既に自動的に認証が済んでいるといった、利便性の高い認証を行うことができる。
(判定部135について)
判定部135は、受信部134によってユーザのコンテキストに関する各種情報が受信された場合に、当該ユーザに対応するモデルを用いて、当該ユーザの本人性を判定する。
図1で説明したように、生成部133が生成したモデルには、機械学習により求められた真の重み値と、ニセ重みとが混在する。このため、判定部135は、受信したコンテキスト情報のうち、実際にモデルに入力する素性(あるいは、モデルに入力された場合に有効なものとみなす素性)を抽出する。例えば、判定部135は、素性を抽出するための条件を条件テーブル127から参照する。
例えば、判定部135は、学習処理に用いられた情報量が所定量を超える素性のみを用いて、処理対象ユーザの本人性を判定する。これは、一般に、学習処理においてサンプルとなった情報量が多い素性は、ユーザの本人性の判定に貢献する程度が高いと想定されることによる。具体的には、判定部135は、学習処理に用いられた情報量に所定の閾値を設けて、当該閾値を超える情報量に対応する素性のみを用いて、ユーザの本人性の判定を行う。なお、情報量とは、コンテキスト情報の実際の情報量(容量)でもよいし、コンテキスト情報が取得される頻度等であってもよい。
あるいは、判定部135は、ユーザごとに予め設定された素性のみを用いて、ユーザの本人性を判定してもよい。すなわち、判定部135は、予め、ユーザごとに判定に用いる素性を設定する。例えば、判定部135は、ユーザU01の判定を行う際には、「位置情報」を用いる、という設定を行う。かかる設定を行った場合、生成部133は、「位置情報」の素性に対応する重み値はニセ重みに置き換えないようにして、ユーザU01に対応するモデルを生成する。このような設定を行うことにより、判定部135は、他の素性がどのような重み値に置き換えられたとしても、ユーザU01に対して、常に正確な判定処理を行うことができる。なお、この場合、条件テーブル127は、セキュア環境1201に置かれることが望ましい。
判定部135は、モデルにおいて有効となる素性を抽出したのち、受信部134によって受信されたコンテキスト情報と、モデルが生成される際に取得されたコンテキスト情報との変化に基づいて、ユーザの本人性を判定する。
例えば、モデルが生成される際に観測されていた位置情報と、受信部134によって受信された位置情報とが、所定の閾値の範囲を超えて変化したと判定したとする。すなわち、学習の過程において観測された位置情報や位置情報の推移と、受信部134によって受信された位置情報とに、有意な変化が観測されたとする。具体的には、ユーザが日常的に利用する駅とは異なる駅の利用履歴が観測されたり、ユーザが通常所在する位置から異なる国や地方に移動していたりする状況が観測されたとする。この場合、受信したコンテキスト情報が入力されたモデルからは、ユーザの本人性を示すスコアとして、比較的低いスコアが出力される。そして、判定部135は、当該ユーザが、ユーザ本人ではないと判定する。このように、判定部135は、コンテキスト情報の変化率又は変化量に基づいて、ユーザの本人性を判定する。例えば、判定部135は、モデルから出力されたスコアが規定値(例えば、生成装置100の管理者によって任意に設定される所定値)を超えた場合には、ユーザを本人と判定する。また、判定部135は、モデルから出力されたスコアが規定値を超えない場合には、ユーザを本人ではないと判定する。
判定部135は、ユーザの本人性を判定し、ユーザが本人であると判定した場合には、当該ユーザが本人であると認証する。また、判定部135は、ユーザが本人であると確定できない場合には、当該ユーザを認証しない。判定部135は、ユーザを認証したか否かを示す認証結果を、後述する送信部136に送る。
(送信部136について)
送信部136は、各種情報を送信する。例えば、送信部136は、認証の要求を行ったユーザ(あるいは、ユーザ端末10)に対して、判定部135が行った認証処理の結果を送信する。判定部135がユーザを認証した場合、送信部136は、ユーザに認証が成功した旨を送信する。あるいは、送信部136は、認証が成功したことにより、例えば、所定のサイトへの接続が許可されたこと等を示す情報をユーザに通知する。一方、判定部135がユーザ端末10を認証しない場合、送信部136は、認証が失敗した旨を送信する。
〔4.ユーザ端末の構成〕
次に、図10を用いて、実施形態に係るユーザ端末10の構成について説明する。図10は、実施形態に係るユーザ端末10の構成例を示す図である。図10に示すように、ユーザ端末10は、通信部11と、入力部12と、表示部13と、検知部14と、記憶部15と、制御部16とを有する。
(通信部11について)
通信部11は、ネットワークNと有線又は無線で接続され、生成装置100との間で情報の送受信を行う。例えば、通信部11は、NIC等によって実現される。
(入力部12及び表示部13について)
入力部12は、ユーザから各種操作を受け付ける入力装置である。例えば、入力部12は、ユーザ端末10に備えられた操作キー等によって実現される。表示部13は、各種情報を表示するための表示装置である。例えば、表示部13は、液晶ディスプレイ等によって実現される。なお、ユーザ端末10にタッチパネルが採用される場合には、入力部12の一部と表示部13とは一体化される。
(検知部14について)
検知部14は、ユーザ端末10に関する各種情報を検知する。具体的には、検知部14は、ユーザ端末10に対するユーザの操作や、ユーザ端末10の所在する位置情報や、ユーザ端末10と接続されている機器に関する情報や、ユーザ端末10における環境等を検知する。図10に示す例では、検知部14は、操作検知部141と、位置検知部142と、外部装置検知部143と、環境検知部144とを有する。
(操作検知部141について)
操作検知部141は、ユーザ端末10に対するユーザの操作を検知する。例えば、操作検知部141は、入力部12に入力された情報に基づいて、ユーザの操作を検知する。すなわち、操作検知部141は、入力部12に画面をタッチする操作の入力があったことや、音声の入力があったこと等を検知する。また、操作検知部141は、ユーザによって所定のアプリが起動されたことを検知してもよい。かかるアプリがユーザ端末10内の撮像装置を動作させるアプリである場合、操作検知部141は、ユーザによって撮像機能が利用されていることを検知する。また、操作検知部141は、ユーザ端末10内に備えられた加速度センサやジャイロセンサ等で検知されたデータに基づき、ユーザ端末10自体が動かされているといった操作を検知してもよい。
(位置検知部142について)
位置検知部142は、ユーザ端末10の現在位置を検知する。具体的には、位置検知部142は、GPS衛星から送出される電波を受信し、受信した電波に基づいてユーザ端末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、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。例えば、記憶部15は、検知部14によって検知された各種情報を、検知された日時と対応付けて記憶する。
(制御部16について)
制御部16は、コントローラであり、例えば、CPUやMPU等によって、ユーザ端末10内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部16は、コントローラであり、例えば、ASICやFPGA等の集積回路により実現される。
図10に示すように、制御部16は、取得部161と、受信部162と、認証制御部163と、送信部164とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部16の内部構成は、図10に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
(取得部161について)
取得部161は、各種情報を取得する。例えば、取得部161は、検知部14を制御することにより、検知部14によって検知される各種情報を、ユーザ及びユーザ端末10のコンテキストを示すコンテキスト情報として取得する。具体的には、取得部161は、位置検知部142を制御することにより、ユーザ端末10の位置情報と、位置情報が検知された時間に対応する時間情報を取得する。
取得部161は、所定の時間毎にコンテキスト情報を取得するようにしてもよい。例えば、取得部161は、定期的(1分毎や、3分毎や、5分毎等)に、上述した検知部14を制御すること等により、コンテキスト情報を取得する。なお、取得部161がコンテキスト情報を取得するタイミングは、生成装置100によって設定されてもよい。
(受信部162について)
受信部162は、各種情報を受信する。例えば、受信部162は、生成装置100から送信されるコンテキスト情報の要求を受信する。受信部162は、受信した情報を、制御部16の各処理部へ送る。
(認証制御部163について)
認証制御部163は、生成装置100に対する認証処理を制御する。例えば、認証制御部163は、生成装置100や、ウェブサーバから、ユーザ端末10を利用するユーザの認証を求められた場合に、認証手続きに関する処理を行う。例えば、認証制御部163は、生成装置100にユーザのコンテキストに関する各種情報を送信するための処理を行う。例えば、認証制御部163は、取得部161によって取得されたコンテキスト情報を、送信に適するようパケット化する。
(送信部164について)
送信部164は、各種情報を送信する。例えば、送信部164は、認証制御部163による制御に従って、取得部161によって取得されたコンテキスト情報を生成装置100に送信する。
〔5.処理手順〕
次に、図11及び図12を用いて、実施形態に係る生成装置100による処理の手順について説明する。まず、図11を用いて、実施形態に係る生成装置100によるモデルの生成処理の手順について説明する。図11は、実施形態に係る処理手順を示すフローチャート(1)である。
図11に示すように、生成装置100は、ユーザ端末10からコンテキストに関する各種情報を取得する(ステップS101)。そして、生成装置100は、各種情報を学習における素性として抽出する(ステップS102)。生成装置100は、抽出した素性とユーザの本人性との関係性を学習することにより、各素性の重み値を算出する(ステップS103)。
続いて、生成装置100は、ある素性について、重み値が所定値より低いか否かを判定する(ステップS104)。重み値が所定値より低い場合(ステップS104;Yes)、生成装置100は、算出された重み値をランダムな値に置き換える(ステップS105)。一方、重み値が所定値より低くない場合には(ステップS104;No)、生成装置100は、算出された重み値を維持する(ステップS106)。
生成装置100は、各素性に対して算出した全ての重み値について判定したか否かを判定する(ステップS107)。全ての重み値を判定していない場合(ステップS107;No)、生成装置100は、次の素性に処理を進めて(ステップS108)、ステップS104の処理を繰り返す。
一方、全ての重み値を判定した場合(ステップS107;Yes)、生成装置100は、算出した重み値と、ランダムな値に置き換えた重み値とを用いて、モデルを生成する(ステップS109)。生成装置100は、ユーザと対応付けてモデルを記憶部120に格納する(ステップS110)。
次に、図12を用いて、実施形態に係る生成装置100による判定処理の手順について説明する。図12は、実施形態に係る処理手順を示すフローチャート(2)である。
図12に示すように、生成装置100は、ユーザ端末10からコンテキストに関する各種情報を受信したか否かを判定する(ステップS201)。コンテキストに関する各種情報を受信していない場合(ステップS201;No)、生成装置100は、受信するまで待機する。
一方、コンテキストに関する各種情報を受信した場合(ステップS201;Yes)、生成装置100は、判定処理に先立って、モデルに関する条件を参照する(ステップS202)。
そして、生成装置100は、条件に合致する素性を判定する(ステップS203)。続いて、生成装置100は、受信した情報をモデルに入力する(ステップS204)。このとき、生成装置100は、判定処理において有効な重み値(条件に合致した素性に対応する重み値)に基づいてスコアを出力させる(ステップS205)。
そして、生成装置100は、スコアが所定値を超えたか否かを判定する(ステップS206)。スコアが所定値を超えている場合(ステップS206;Yes)、生成装置100は、情報の送信元をユーザ本人と判定する(ステップS207)。この場合、生成装置100は、認証が成功した旨をユーザ端末10に送信する(ステップS208)。
一方、スコアが所定値を超えていない場合(ステップS206;No)、生成装置100は、情報の送信元がユーザ本人ではないと判定する(ステップS209)。この場合、生成装置100は、認証が失敗した旨をユーザ端末10に送信する(ステップS210)。
〔6.変形例〕
上述した実施形態に係る処理は、上記実施形態以外にも種々の異なる形態にて実施されてよい。以下では、生成装置100又は生成処理システム1の他の実施形態(変形例)について説明する。
〔6−1.重み値〕
上記実施形態では、生成装置100が、ランダムな値であるニセ重みを設定して、モデルを生成する例を示した。ここで、生成装置100は、ランダムな値に置き換えるのではなく、算出した重み値同士を掛けあわせてモデルを生成してもよい。この点について、図13を用いて説明する。
図13は、変形例に係る生成処理の一例を示す図である。図13は、変形例に係るモデル生成処理の概念を示している。例えば、生成装置100は、ユーザU01に対応するモデルとして、素性番号1の素性が「加速度情報」であり、素性番号2の素性が「位置情報」であり、素性番号3の素性が「端末操作ログ」であり、素性番号4の素性が「端末操作時間」であるモデルを生成しようとしているとする。そして、生成装置100は、学習処理を経て、素性番号1の素性に「a」という重み値を算出し、素性番号2の素性に「b」という重み値を算出し、素性番号3の素性に「c」という重み値を算出し、素性番号4の素性に「d」という重み値を算出したものとする。
このとき、生成装置100は、算出した重み値の2つを互いに掛けあわせて、新たな重み値(「複合重み」と称する)を生成する(ステップS21)。例えば、生成装置100は、複合重みとして「a*b」や、「a*c」といった重み値を生成する。
そして、生成装置100は、複合重みによって表されるモデルを生成する。すなわち、生成装置100は、学習により算出された各素性の重み値をそのまま用いるのではなく、少なくとも2つの素性の重み値を掛けあわせて求められた複合重みを用いて、モデルを生成する。
この場合、不正ユーザは、生成されたモデルを参照したとしても、ユーザを判定するためにどのような要素が有効であるかを特定することが困難となる。例えば、不正ユーザは、「a*b」という重み値が比較的高く、かかる素性が判定に重要であることを知得したとしても、「a」と「b」のどちらに対応する素性が重要なのかを判別することが難しい。具体的には、不正ユーザは、このモデルのユーザに成りすまそうとすると、少なくとも「加速度情報」と「位置情報」とのコンテキストを真似する必要が生じる。
すなわち、不正ユーザは、モデルや、モデルの仕様を閲覧することで、モデルにおいて重要な素性を把握したとしても、その素性が複合的であるため、ユーザの行動を真似することによってユーザに成りすますことが難しくなる。なお、上記では、複合重みとして2つの素性を掛けあわせる例を示したが、生成装置100は、3つ以上の素性を掛けあわせてもよい。これにより、生成装置100は、素性の複雑性をより高めることができる。
なお、図1等では説明を簡単にするため、重み値に「0」が算出される例を示したが、コンテキスト情報が取得される限り、重み値が「0」になる事態は多くないと想定される。このため、上記のような掛けあわせることで生じる複合的な素性において、発火しない素性は生じないと想定される。
上記のように、生成装置100は、算出された重み値の少なくとも2つを掛けあわせた値を所定値として、モデルを生成してもよい。
かかる処理によって、生成装置100は、認証に有効な情報を曖昧化することができるため、暗号化等の複雑な処理を行うことなく、不正ユーザによる成りすまし等を防止することができる。
〔6−2.ユーザ端末の数〕
上記実施形態では、ユーザ端末10が1台の装置である例を示したが、ユーザ端末10は1台に限られない。例えば、ユーザは、通信可能な端末装置を複数台所有することも想定される。この場合、生成装置100は、ユーザが利用する複数のユーザ端末10から、ユーザのコンテキストを示す各種情報を取得してもよい。
なお、生成装置100は、複数のユーザ端末10の識別において、必ずしも他の機器にも共通するようなグローバルな識別子を取得することを要さない。すなわち、生成装置100は、実施形態において実行する処理において、ユーザ端末10を一意に識別することが可能な識別子を取得しさえすればよく、必ずしも永続的に定まる識別子を取得しなくてもよい。
〔6−3.ユーザ端末の構成〕
上記実施形態では、ユーザ端末10の構成例について図10を用いて説明した。しかし、ユーザ端末10は、図10で例示した全ての処理部を備えることを必ずしも要しない。例えば、ユーザ端末10は、表示部13や検知部14を必ずしも備えていなくてもよい。また、ユーザ端末10は、2以上の機器に分離されて図10を示す構成が実現されてもよい。例えば、ユーザ端末10は、少なくとも検知部14を有する検知装置と、少なくとも通信部11を有する通信装置とに分離された構成を有する、2台以上の機器により実現されてもよい。
〔6−4.サービスを提供する装置〕
上記実施形態では、ユーザの認証が必要となる状況として、例えば、ユーザ端末10が認証制限付きサイトにアクセスするような状況を例示した。すなわち、ユーザの認証が必要となる状況を生じさせるサービスの提供者として、ウェブサーバを例示した。しかし、このようなサービスを提供する装置は、ウェブサーバに限られない。例えば、サービスを提供する装置は、ウェブサービスに限らず、HTTP(Hypertext Transfer Protocol)ではない種類のプロトコルを扱うネットワークサービスや、IoT(Internet of Things)を扱う通信やアプリケーションを提供する装置であってもよい。すなわち、サービスを提供する装置は、生成装置100やユーザ端末10等と通信可能であり、生成装置100による生成処理や判定処理を利用する機能を有する装置であれば、ウェブサーバに限られず、どのような装置によって実現されてもよい。
〔7.ハードウェア構成〕
上述してきた実施形態に係る生成装置100やユーザ端末10は、例えば図14に示すような構成のコンピュータ1000によって実現される。以下、生成装置100を例に挙げて説明する。図14は、生成装置100の機能を実現するコンピュータ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が実施形態に係る生成装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラム(例えば、実施形態に係る生成プログラム)を実行することにより、制御部130の機能を実現する。また、HDD1400には、記憶部120内のデータが記憶される。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から通信網500を介してこれらのプログラムを取得してもよい。
〔8.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図3に示した取得部131と、受信部134とは統合されてもよい。また、例えば、記憶部120に記憶される情報は、ネットワークNを介して、外部に備えられた記憶装置に記憶されてもよい。
また、例えば、上記実施形態では、生成装置100が、ユーザからコンテキスト情報を取得する取得処理と、モデルを生成する生成処理と、ユーザの本人性を判定する判定処理とを行う例を示した。しかし、上述した生成装置100は、取得処理を行う取得装置と、生成処理を行う生成装置と、判定処理を行う判定装置に分離されてもよい。この場合、例えば、実施形態に係る生成装置100による処理は、取得装置と、生成装置と、判定装置といった各装置を有する生成処理システム1によって実現される。
また、上述してきた各実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔9.効果〕
上述してきたように、実施形態に係る生成装置100は、取得部131と、算出部132と、生成部133とを有する。取得部131は、ユーザのコンテキストに関する各種情報を取得する。算出部132は、取得部131によって取得された各種情報を素性として学習処理を実行することにより、ユーザを認証するためのモデルにおける、素性の各々に対する重み値を算出する。生成部133は、算出部132によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、ユーザに対応するモデルを生成する。
このように、実施形態に係る生成装置100は、生成するモデルにおいて、「ユーザの認証において何の要素が認証に効いているのか」といった情報を曖昧化することで、認証において有効な素性を秘匿することができる。これにより、生成装置100は、認証の利便性を確保しつつ安全性を高めることができる。
また、生成部133は、ランダムな値を所定値としてモデルを生成する。すなわち、実施形態に係る生成装置100は、モデルに設定される重み値として意味のない無作為の値を設定する。これにより、生成装置100は、不正ユーザにモデルを閲覧されたとしても、認証に有効な素性等を推定されにくくすることができる。
また、生成部133は、算出部132によって算出された重み値の少なくとも2つを掛けあわせた値を所定値として、モデルを生成する。
このように、実施形態に係る生成装置100は、重み値を掛けあわせた複合重みを用いてモデルを生成してもよい。この場合、不正ユーザによってモデルにおいて重要な素性を把握されたとしても、その素性が複合的であるため、コンテキスト情報を真似することでユーザに成りすますことが難しくなる。これにより、生成装置100は、認証の安全性を高めることができる。
また、生成部133は、算出部132によって算出された重み値のうち、所定の閾値より低い重み値を所定値に置き換えて、モデルを生成する。
このように、実施形態に係る生成装置100は、本人性の判定において重要でないと想定される素性の重み値を置き換えて、モデルを生成する。このため、生成装置100は、どのような素性が認証において重要かを効率良く秘匿することができる。これにより、生成装置100は、認証の安全性を高めることができる。
また、生成部133は、学習処理に用いられた情報量が所定量に達していない素性に対して算出された重み値を所定値に置き換えて、モデルを生成する。
このように、実施形態に係る生成装置100は、学習における情報量に基づいて、置き換える重み値を選択してもよい。これにより、生成装置100は、どのような素性に対応する情報に基づいて学習が行われているかといった情報がわかりにくいモデルを生成することができるため、不正ユーザから認証に有効な素性を察知されることを防止することができる。
また、生成部133は、算出部132によって算出された重み値のうち、最大となる値から所定範囲に属する値をとる重み値を、所定値に置き換えてモデルを生成する。
このように、実施形態に係る生成装置100は、認証において有効と想定される素性の重み値を置き換える。このため、不正ユーザは、モデルを参照したとしても、どのような素性が真に有効であるかを把握することが難しくなる。これにより、生成装置100は、認証の安全性を高めることができる。
また、実施形態に係る生成装置100は、判定処理の対象となるユーザから、ユーザのコンテキストに関する各種情報を受信する受信部134をさらに備える。また、実施形態に係る生成装置100は、受信部134によってユーザのコンテキストに関する各種情報が受信された場合に、ユーザに対応するモデルを用いて、ユーザの本人性を判定する判定部135をさらに備える。
このように、実施形態に係る生成装置100は、モデルを生成したのちに、当該モデルを用いてユーザの本人性を判定する。これにより、生成装置100は、不正ユーザからの成りすましを防止しつつ、真のユーザに対する認証処理を実行することができる。
また、判定部135は、学習処理に用いられた情報量が所定量を超える素性のみを用いて、ユーザの本人性を判定する。
このように、実施形態に係る生成装置100は、所定量を超えた情報を得た素性については、その素性を活かして、ユーザの本人性を判定する。これにより、生成装置100は、ダミーの値が設定された重み値に対応する素性を処理に用いずに、本来の重み値が維持された素性のみを利用して判定を行うことができる。このため、生成装置100は、判定処理の精度を向上させることができる。
また、判定部135は、ユーザごとに予め設定された素性のみを用いて、ユーザの本人性を判定する。
このように、実施形態に係る生成装置100は、ユーザごとに設定を行い、判定に用いる素性を決めてしまってもよい。これにより、生成装置100は、どのような素性が判定に使用されているか一見わからないモデルであっても、ユーザ本人を判定するために用いる素性については真の重み値を維持しておくこと等によって、支障なく判定を行うことができる。これにより、生成装置100は、不正ユーザの成りすまし等を防止しつつ、本来のユーザには問題なく認証を行うことができる。
以上、本願の実施形態を図面に基づいて詳細に説明したが、これは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
1 生成処理システム
10 ユーザ端末
100 生成装置
110 通信部
120 記憶部
1201 セキュア環境
1202 プロダクション環境
121 生データ記憶部
122 個人情報記憶部
123 学習情報記憶部
124 仕様情報記憶部
125 モデル記憶部
126 モデルテーブル
127 条件テーブル
130 制御部
131 取得部
132 算出部
133 生成部
134 受信部
135 判定部
136 送信部

Claims (18)

  1. ユーザのコンテキストに関する各種情報を取得する取得部と、
    前記取得部によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出部と、
    前記算出部によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成部と、
    を備
    前記生成部は、
    ランダムな値を前記所定値として、前記モデルを生成する、
    ことを特徴とする生成装置。
  2. ユーザのコンテキストに関する各種情報を取得する取得部と、
    前記取得部によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出部と、
    前記算出部によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成部と、
    を備
    前記生成部は、
    前記算出部によって算出された重み値の少なくとも2つを掛けあわせた値を前記所定値として、前記モデルを生成する、
    ことを特徴とする生成装置。
  3. ユーザのコンテキストに関する各種情報を取得する取得部と、
    前記取得部によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出部と、
    前記算出部によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成部と、
    を備
    前記生成部は、
    前記算出部によって算出された重み値のうち、所定の閾値より低い重み値を前記所定値に置き換えて、前記モデルを生成する、
    ことを特徴とする生成装置。
  4. ユーザのコンテキストに関する各種情報を取得する取得部と、
    前記取得部によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出部と、
    前記算出部によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成部と、
    を備
    前記生成部は、
    前記学習処理に用いられた情報量が所定量に達していない素性に対して算出された重み値を前記所定値に置き換えて、前記モデルを生成する、
    ことを特徴とする生成装置。
  5. ユーザのコンテキストに関する各種情報を取得する取得部と、
    前記取得部によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出部と、
    前記算出部によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成部と、
    を備
    前記生成部は、
    前記算出部によって算出された重み値のうち、最大となる値から所定範囲に属する値をとる重み値を前記所定値に置き換えて、前記モデルを生成する、
    ことを特徴とする生成装置。
  6. 判定処理の対象となるユーザから、当該ユーザのコンテキストに関する各種情報を受信する受信部と、
    ユーザのコンテキストに関する各種情報を素性として実行された学習処理より生成された当該ユーザを認証するためのモデルであって、当該素性の各々に対する重み値のうち、所定の条件に該当する重み値が所定値に置き換えられたモデルに対し、前記受信部によって受信された各種情報のうち前記判定処理の対象となるユーザと対応するモデルが作成された際に対応する重み値が所定値に置き換えられた素性として用いられた情報とは異なる種別の情報を入力することで、当該ユーザの本人性を判定する判定部と、
    を備えることを特徴とする請求項1または4に記載の生成装置。
  7. 前記判定部は、
    前記モデルとして、学習処理に用いられた情報量が所定量を超えない素性に対する重み値が所定値に置き換えられたモデルに対し、前記学習処理に用いられた情報量が所定量を超える素性を入力することで、前記ユーザの本人性を判定する、
    ことを特徴とする請求項に記載の生成装置。
  8. 前記判定部は、
    前記ユーザごとに予め設定された素性を用いて、前記ユーザの本人性を判定する、
    ことを特徴とする請求項6または7に記載の生成装置。
  9. コンピュータが実行する生成方法であって、
    ユーザのコンテキストに関する各種情報を取得する取得工程と、
    前記取得工程によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出工程と、
    前記算出工程によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成工程と、
    を含
    前記生成工程は、
    ランダムな値を前記所定値として、前記モデルを生成する、
    ことを特徴とする生成方法。
  10. ユーザのコンテキストに関する各種情報を取得する取得手順と、
    前記取得手順によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出手順と、
    前記算出手順によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成手順と、
    をコンピュータに実行させるための生成プログラムであって、
    前記生成手順は、
    ランダムな値を前記所定値として、前記モデルを生成する、
    ことを特徴とする生成プログラム。
  11. コンピュータが実行する生成方法であって、
    ユーザのコンテキストに関する各種情報を取得する取得工程と、
    前記取得工程によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出工程と、
    前記算出工程によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成工程と、
    を含み
    前記生成工程は、
    前記算出工程によって算出された重み値の少なくとも2つを掛けあわせた値を前記所定値として、前記モデルを生成する、
    ことを特徴とする生成方法。
  12. ユーザのコンテキストに関する各種情報を取得する取得手順と、
    前記取得手順によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出手順と、
    前記算出手順によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成手順と、
    をコンピュータに実行させるための生成プログラムであって、
    前記生成手順は、
    前記算出手順によって算出された重み値の少なくとも2つを掛けあわせた値を前記所定値として、前記モデルを生成する、
    ことを特徴とする生成プログラム。
  13. コンピュータが実行する生成方法であって、
    ユーザのコンテキストに関する各種情報を取得する取得工程と、
    前記取得工程によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出工程と、
    前記算出工程によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成工程と、
    を含み
    前記生成工程は、
    前記算出工程によって算出された重み値のうち、所定の閾値より低い重み値を前記所定値に置き換えて、前記モデルを生成する、
    ことを特徴とする生成方法。
  14. ユーザのコンテキストに関する各種情報を取得する取得手順と、
    前記取得手順によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出手順と、
    前記算出手順によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成手順と、
    をコンピュータに実行させるための生成プログラムであって、
    前記生成手順は、
    前記算出手順によって算出された重み値のうち、所定の閾値より低い重み値を前記所定値に置き換えて、前記モデルを生成する、
    ことを特徴とする生成プログラム。
  15. コンピュータが実行する生成方法であって、
    ユーザのコンテキストに関する各種情報を取得する取得工程と、
    前記取得工程によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出工程と、
    前記算出工程によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成工程と、
    を含み
    前記生成工程は、
    前記学習処理に用いられた情報量が所定量に達していない素性に対して算出された重み値を前記所定値に置き換えて、前記モデルを生成する、
    ことを特徴とする生成方法。
  16. ユーザのコンテキストに関する各種情報を取得する取得手順と、
    前記取得手順によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出手順と、
    前記算出手順によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成手順と、
    をコンピュータに実行させるための生成プログラムであって、
    前記生成手順は、
    前記学習処理に用いられた情報量が所定量に達していない素性に対して算出された重み値を前記所定値に置き換えて、前記モデルを生成する、
    ことを特徴とする生成プログラム。
  17. コンピュータが実行する生成方法であって、
    ユーザのコンテキストに関する各種情報を取得する取得工程と、
    前記取得工程によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出工程と、
    前記算出工程によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成工程と、
    を含み
    前記生成工程は、
    前記算出工程によって算出された重み値のうち、最大となる値から所定範囲に属する値をとる重み値を前記所定値に置き換えて、前記モデルを生成する、
    ことを特徴とする生成方法。
  18. ユーザのコンテキストに関する各種情報を取得する取得手順と、
    前記取得手順によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出手順と、
    前記算出手順によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成手順と、
    をコンピュータに実行させるための生成プログラムであって、
    前記生成手順は、
    前記算出手順によって算出された重み値のうち、最大となる値から所定範囲に属する値をとる重み値を前記所定値に置き換えて、前記モデルを生成する、
    ことを特徴とする生成プログラム。
JP2017043241A 2017-03-07 2017-03-07 生成装置、生成方法及び生成プログラム Active JP6812274B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017043241A JP6812274B2 (ja) 2017-03-07 2017-03-07 生成装置、生成方法及び生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017043241A JP6812274B2 (ja) 2017-03-07 2017-03-07 生成装置、生成方法及び生成プログラム

Publications (2)

Publication Number Publication Date
JP2018147326A JP2018147326A (ja) 2018-09-20
JP6812274B2 true JP6812274B2 (ja) 2021-01-13

Family

ID=63591307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017043241A Active JP6812274B2 (ja) 2017-03-07 2017-03-07 生成装置、生成方法及び生成プログラム

Country Status (1)

Country Link
JP (1) JP6812274B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020091510A (ja) * 2018-12-03 2020-06-11 ルネサスエレクトロニクス株式会社 家電機器および居住空間
KR102654983B1 (ko) * 2023-12-29 2024-04-05 한국과학기술정보연구원 다요소 인증 방법 및 시스템

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132514A (ja) * 1998-10-21 2000-05-12 Hitachi Ltd 個人認証方法
JP2005352710A (ja) * 2004-06-10 2005-12-22 Hitachi Ltd 個人認証装置
JP2010165323A (ja) * 2009-01-19 2010-07-29 Fujitsu Ltd 生体認証方法及びシステム
JP2011198170A (ja) * 2010-03-23 2011-10-06 Oki Software Co Ltd ユーザ同定システム、ユーザ同定サーバ、携帯機器、ユーザ同定プログラム及び携帯機器のプログラム
US20160098710A1 (en) * 2014-10-01 2016-04-07 Wells Fargo Bank, N.A. Intelligent authentication

Also Published As

Publication number Publication date
JP2018147326A (ja) 2018-09-20

Similar Documents

Publication Publication Date Title
JP6170982B2 (ja) 判定装置、判定方法及び判定プログラム
US10375119B2 (en) Dynamic multi-factor authentication challenge generation
EP3108397B1 (en) Trust broker authentication method for mobile devices
US11805118B2 (en) User authentication using tokens
US9473494B2 (en) Access credentials using biometrically generated public/private key pairs
JP6039029B1 (ja) 選択装置、選択方法、選択プログラム及び認証処理システム
JP6181716B2 (ja) 認証装置、端末装置、認証方法及び認証プログラム
US20150058941A1 (en) Systems and methods for location-based device security
WO2015035936A1 (zh) 身份验证方法、身份验证装置和身份验证系统
JP6134841B1 (ja) 登録装置、端末装置、登録方法、登録プログラム及び登録システム
US11329823B2 (en) User authentication using tokens
CN108886469A (zh) 用于提供临时账户信息的方法、装置和系统
JP6122924B2 (ja) 提供装置、端末装置、提供方法、提供プログラム及び認証処理システム
JP7240104B2 (ja) 認証装置、認証方法、認証プログラム及び認証システム
JP6342035B1 (ja) リカバリ装置、リカバリ方法及びリカバリプログラム
JP2018147327A (ja) 生成装置、生成方法及び生成プログラム
JP6812274B2 (ja) 生成装置、生成方法及び生成プログラム
JP6947529B2 (ja) 判定装置、判定方法及び判定プログラム
JP7037899B2 (ja) 判定装置、判定方法及び判定プログラム
JP6077077B1 (ja) 認証装置、認証方法及び認証プログラム
JP2017055384A (ja) 生成装置、端末装置、生成方法、生成プログラム及び認証処理システム
JP6756656B2 (ja) 端末装置、登録方法および登録プログラム
JP6662561B2 (ja) 情報処理方法、情報処理装置、認証サーバ装置及び確認サーバ装置
JP6778988B2 (ja) 認証情報生成プログラム、認証情報生成装置、及び認証情報生成方法
JP7280156B2 (ja) 再認証装置、再認証方法および再認証プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190325

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20191101

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20191108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200311

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200324

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200722

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201216

R150 Certificate of patent or registration of utility model

Ref document number: 6812274

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250