以下に、本発明を実施するための形態に係る認証システム、認証装置、情報処理方法、及びプログラムについて、図面を参照して詳細に説明する。なお、図中同一または相当する部分には同一符号を付す。図1は、認証システム100の構成を示す図である。認証システム100は、図1に示すように、認証装置1と情報処理装置7と、を備えており、認証装置1がユーザの認証を行い、当該認証に成功した場合に、当該ユーザが正当であることを特定するための特定情報を生成する。この実施の形態では、図示するように、認証装置1と情報処理装置7とが、それぞれネットワーク2を介して、金融機関99(より具体的には金融機関99の端末であり、)に接続可能である。そして、情報処理装置7が特定情報を用いて対象のユーザの正当性を判定し、当該ユーザを対象としたサービスを提供する。なお、この実施の形態では、正当性が認められたユーザに対して金融サービスが提供される場合を例に、以下説明する。
なお、この実施の形態では、認証装置1がいわゆるスマートフォンやタブレット端末であり、情報処理装置7がパーソナルコンピュータやスマートフォンやタブレット端末である。また、理解を容易にするため、以下では、所謂ネットバンクにおける振込の金融サービスが行われる場合を例に説明する。なお、認証装置1と情報処理装置7とは、例えば無線LAN(Local Area Network)やWi-fi(登録商標)、Bluetooth(登録商標)などにより互いに通信可能に接続される。
図2は、認証装置1の正面図である。図示する認証装置1は、いわゆるスマートフォンである。認証装置1は、正面にユーザの顔を撮影するインカメラ11Aと、スピーカ12Aと、通話用のマイクであるマイクロフォン12Bと、認証装置1の傾きを検出する傾き検出部13と、操作入力部14及び表示部19を兼ねるタッチパネルと、ユーザの指紋を検出する左指紋センサ15A及び右指紋センサ15Bと、認証装置1の現在位置を検出する位置検出部16とを備える。また、認証装置1は、背面に、ユーザから見た人間、風景、物体等を撮影することができるメインカメラ11Bを備える。
ここで、以下では、インカメラ11Aとメインカメラ11Bとを総称して、撮影部11と称する。以下では、スピーカ12Aと、通話用のマイクであるマイクロフォン12Bとを総称して、音声入出力部12と称する。また、以下では、左指紋センサ15A及び右指紋センサ15Bを総称して、指紋検出部15と称する。
図3は、認証装置1の構成を示すブロック図である。認証装置1は、通信部10と、撮影部11と、音声入出力部12と、傾き検出部13と、操作入力部14と、指紋検出部15と、位置検出部16と、認証装置記憶部17と、認証装置制御部18と、表示部19とを備える。
通信部10は、図示せぬ通信網を介して外部のサーバ、クラウド、情報処理装置7等と通信し、各種データの送受信をするデータ通信部と、図示せぬ基地局との間で、電話通信用の無線信号を送受信する音声通信部とを含む。データ通信部は、無線LAN(Local Area Network)、Wi-fi(登録商標)、Bluetooth(登録商標)等を用いて構成することができる。また、音声通信部は、基地局との間で、電話通信用の無線信号を送受信する通信機器を用いて構成することができる。
撮影部11は、図2に示したインカメラ11Aとメインカメラ11Bとを含む。撮影部11には、CCD(Charge Coupled Device)、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等の撮像素子を用いたカメラ、ビデオカメラ等、静止画または動画を撮影し、撮影した静止画または動画を取得することが可能な各種カメラを用いることができる。
音声入出力部12は、図2に示したスピーカ12Aと、マイクロフォン12Bとを含む。スピーカ12Aは、音声通話で受信した音声、通信網を介して外部から取得した音楽データ等を出力する。マイクロフォン12Bは、ユーザの音声をピックアップする装置である。
傾き検出部13は、認証装置1の傾き、揺れ等を検出することができる装置である。傾き検出部13は、加速度センサ、角度センサ、地磁気を検出する磁気センサ等の認証装置1の傾きを検出できる各種センサを用いて構成することができる。なお、傾き検出部13を構成するセンサの個数及び種類は、単数又は複数のどちらでもよい。
操作入力部14は、図2に示したユーザからの操作を入力することができる装置である。指紋検出部15は、ユーザの指紋を検出するセンサである。指紋検出部15は、図2に示した左指紋センサ15A及び右指紋センサ15Bを含む。なお、指紋検出部15には、指紋センサに限らず、ユーザの指紋を検出することができるセンサ、機器等であれば、いずれのものを用いてもよい。
位置検出部16は、認証装置1の現在位置を検出することができる装置である。位置検出部16は、GPS(Global Positioning System)等の、認証装置1の現在位置を検出することができる機器を用いて構成することができる。
認証装置記憶部17は、ユーザの認証処理を行うための認証処理プログラム170と、認証装置1で取得したユーザの生体情報をまとめた認証用生体情報データベース171と、認証装置1で取得したユーザの振舞情報をまとめた認証用振舞情報データベース172と、認証装置1の傾き状態を記憶するための傾き情報テーブル173と、サービスを提供する対象ユーザが正当であることを特定するための特定情報を生成する特定情報生成プログラム176と、を備える。また、認証装置記憶部17には、認証装置1で実行される各種アプリケーションのプログラムが記憶されている。
認証処理プログラム170は、認証装置1で取得したユーザの生体情報及び振舞情報に基づいてユーザを認証する処理を行うプログラムである。認証用生体情報データベース171は、ユーザの生体情報に関する情報と認証に用いる認証値とを保存するためのデータベースである。
認証用振舞情報データベース172は、認証装置1を操作する際のユーザ特有の振舞に関する情報、認証の合格条件等を保存するためのデータベースである。ここで、ユーザ特有の振舞とは、ユーザが認証装置1を操作する際の挙動、表示部19の画面とユーザの顔の距離、キーストローク、持ち方、認証装置1が使用される位置、特定の通信網への接続回数、特定のアプリケーションの起動、操作等、ユーザ固有のものをいう。
傾き情報テーブル173は、傾き検出部13により検出された認証装置1の傾き角度と、取得日時、取得のための待機時間を記憶するためのテーブルである。特定情報生成プログラム176は、サービスを提供する対象ユーザが正当であることを特定するための特定情報を生成するプログラムである。
なお、認証処理プログラム170と、認証用生体情報データベース171と、認証用振舞情報データベース172と、傾き情報テーブル173と、特定情報生成プログラム176とについては、その詳細を後述する。
認証装置制御部18は、認証装置記憶部17に記憶された各種プログラムを実行する。また、認証装置制御部18は、通信部10と、撮影部11と、音声入出力部12と、傾き検出部13と、操作入力部14と、指紋検出部15と、位置検出部16とから各種データを取得して処理し、認証装置記憶部17の各種データベース、テーブルに記憶する。また、認証装置制御部18は、撮影部11に撮影する指示を送信することで、任意のタイミングで撮影部11に撮影をさせることができる。
表示部19は、認証装置制御部18で実行される各種プログラムの処理内容を表示する。また、表示部19は、撮影部11で撮影された静止画、動画等の画像、操作入力部14から入力されたデータ等を表示することもできる。表示部19は、操作入力部14上に積層されており、図2に示したタッチパネルを構成する。
次に、認証装置1のハードウエア構成の一例を、図4を参照しつつ説明する。認証装置1は、各種プログラムを実行するプロセッサ21と、各種プログラムを展開するためのメモリ22と、各種表示用データを出力する表示コントローラ23と、各種表示用データを表示する表示機器24と、撮影部11、音声入出力部12等を接続するためのI/Oポート25と、各種プログラム及び各種データを記憶する記憶機器26と、外部と通信し各種データを送受信する通信機器27とを備える。このプロセッサ21と、メモリ22と、表示コントローラ23と、表示機器24と、I/Oポート25と、記憶機器26と、通信機器27とは、データバス28を介して相互に接続されている。
プロセッサ21は、記憶機器26に記憶された各種プログラムを読み出してメモリ22に展開し、実行する。プロセッサ21は、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)等の処理装置を用いて構成することができる。また、メモリ22は、RAM(Random Access Memory)、フラッシュメモリ等の揮発性または不揮発性の半導体メモリといった記憶素子および記憶媒体を用いて構成することができる。
表示コントローラ23は、表示機器24に各種表示用データを出力するコントローラである。表示コントローラ23は、ビデオカード、GPU(Graphics Processing Unit)、グラフィックボード等の映像信号出力装置を用いて構成することができる。また、表示機器24は、LCD(Liquid Crystal Display)、有機EL(Electroluminescence)モニタ等の表示装置を用いて構成することができる。
I/Oポート25は、撮影部11と、音声入出力部12と、傾き検出部13と、操作入力部14と、指紋検出部15と、位置検出部16とを接続することができる接続用ポートである。I/Oポート25には、USB(Universal Serial Bus)ポート、IEEE1394ポート等、機器を接続可能な各種ポートを用いて構成することができる。
記憶機器26は、プロセッサ21で実行する各種プログラム、各種プログラムで使用するための各種データを記憶する機器である。記憶機器26は、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の記憶装置を用いて構成することができる。
通信機器27は、図1に示す情報処理装置7と通信し、各種データの送受信をするデータ通信部と、図示せぬ基地局との間で、電話通信用の無線信号を送受信する音声通信部とを含む。データ通信部は、無線LAN、Wi-fi(登録商標)、Bluetooth(登録商標)等を用いて構成することができる。また、音声通信部は、基地局との間で、電話通信用の無線信号を送受信する通信機器を用いて構成することができる。
上述のプロセッサ21により、図3に示した認証装置1の認証装置記憶部17に記憶された認証処理プログラム170および特定情報生成プログラム176を実行することにより、認証装置制御部18に図5に示す情報処理ブロック(各機能部)が実現される。これにより、認証装置1は、ユーザ本人の顔の画像、指紋、声紋等の生体情報と、ユーザが認証装置1を操作する際の特有の挙動、操作状態等による振舞情報とに基づいてユーザ本人を認証するとともに、認証装置1における各種処理を実行することができる。
プロセッサ21により実現される情報処理ブロックは、通信部10や撮影部11等から認証用の生体情報及び振舞情報を取得する認証用情報取得部181と、ユーザを本人か否か認証する認証部182と、表示部19に認証結果を表示させる表示処理部183と、認証部182からの指示により認証装置記憶部17に記憶された各種データベース及びテーブルの情報を更新する認証用情報更新部184と、図1に示した情報処理装置7と通信部10を介してデータを送受信するためのデータ送受信部185と、特定用情報のデータを生成する特定情報生成部186と、その他の各種処理を実行する処理部187である。
認証用情報取得部181は、通信部10、撮影部11等から認証用の生体情報及び振舞情報を取得する。認証部182は、認証用情報取得部181から取得した認証用の生体情報及び振舞情報と、認証装置記憶部17の各種データベースに記憶された認証値、合格条件等に基づいて、ユーザの認証を行う。
表示処理部183は、認証部182からユーザの認証結果を受信し、認証結果に応じたメッセージ、画像等を表示部19に表示させる。認証用情報更新部184は、認証部182からの指示に基づいて、認証装置記憶部17に記憶された各種データベース、テーブルに記憶されたデータを更新する。
データ送受信部185は、図1に示す情報処理装置7と通信部10を介してデータを送受信する。特定情報生成部186は、サービスを提供する対象ユーザが正当であることを特定するための特定情報、すなわち振込処理を行うユーザが正当であることを特定するための特定情報を生成する。また、特定情報生成部186は、生成した特定情報を更新する機能を有している。処理部187は、認証部182において、認証装置1を使用するユーザが本人と認証された場合に、必要な各種処理を実行する。
次に、認証装置記憶部17に記憶される認証用生体情報データベース171と、認証用振舞情報データベース172と、傾き情報テーブル173の各テーブルおよびデータの構成について、図6Aから図6Cを参照しつつ以下に説明する。まず、認証用生体情報データベース171のテーブルには、図6Aに示すように、顔、音声等の生体情報の種類と、ユーザ本人の生体情報である登録情報と、図5に示した認証用情報取得部181で取得した生体情報とを比較して求める認証値が記憶されている。
認証用生体情報データベース171のテーブルに記憶されている登録情報は、ユーザ本人の生体情報である。登録情報には、認証装置1で認証処理を行う前に予め登録された情報であり、ユーザ本人を認証できた場合に更新される。登録情報には、例えば、生体情報の種類が顔であれば顔画像から求めた特徴量が、生体情報の種類が音声であれば音声データまたは音声データから求めた特徴量または音声データとその特徴量の両方が、生体情報の種類が虹彩であれば虹彩データが、生体情報の種類が指紋であれば指紋の画像から求めた特徴量が、それぞれ記憶されている。
本実施の形態において、生体情報の類似の判定は、認証値により行われる。認証値は、登録情報と、図5に示した認証用情報取得部181で取得した生体情報とを比較した結果を基に求められる値である。認証値は、登録情報と認証用情報取得部181で取得した生体情報とが類似する場合に0に近づき、類似しない場合に1に近づく。認証用生体情報データベース171には、認証値の平均値と、認証値を判定するための閾値である認証閾値と、認証閾値にユーザがグレーな場合を示す認証許容範囲値を含めた認証許容値とが含まれる。
まず、認証値の平均値は、登録情報と、認証用情報取得部181で取得した生体情報とを比較し求められた認証値の平均の値である。認証閾値は、登録情報と、認証用情報取得部181で取得した生体情報とを比較し、比較した結果を基に求められた認証値が、この値未満の場合、ユーザをユーザ本人と判定するための基準となる値である。
認証閾値は、ユーザの認証の状況に合わせて変動する値であり、予め上限値が定めされている。上限値は、その値以上となった場合、ユーザをユーザ本人と生体情報のみで認証すべきではないとされる値である。例えば、認証閾値のデフォルト値を、登録情報と認証用情報取得部181で取得した生体情報とが類似する場合に近づく認証値0と類似しない場合に近づく認証値1との間の0.4とする。この場合、認証閾値の上限値は、認証閾値のデフォルト値に、類似する場合に近づく認証値0と、類似しない場合に近づく認証値1との一割の半分である0.05を加えた値、すなわち、0.45とする。なお、認証閾値のデフォルト値や加算する値については、ユーザの年齢層や性別などのグループや個人毎に異なるようにしてもよい。
また、認証許容値は、登録情報と認証用情報取得部181で取得した生体情報とを比較し、比較した結果を基に求められた認証値が、この値以上の場合、ユーザをユーザ本人ではないと判定するための基準となる値である。認証許容値は、上述のとおり認証閾値にユーザがグレーな場合を示す認証許容範囲値を含めた値である。このため、認証許容値は、認証閾値と認証許容範囲値との変動に応じて、変動する値である。
認証許容値には、予め上限値が定められており、これを最大認証許容値と呼ぶ。最大認証許容値は、この値以上の場合、ユーザを他人と判断すべきとされる値である。例えば、最大認証許容値は、登録情報と認証用情報取得部181で取得した生体情報とが類似する場合に近づく認証値0と、類似しない場合に近づく認証値1との中間の0.5とする。
認証閾値と認証許容値との間の値を認証許容範囲値という。認証許容範囲値は、ユーザがユーザ本人か否かグレーな場合を示す値である。認証値が認証許容範囲値内である場合、ユーザがユーザ本人か否かを生体情報だけで判断せず、ユーザ特有の振舞情報を含めて判断する。具体的には、認証値が認証許容範囲値内である場合、ユーザ特有の振舞情報が合格条件に合致している場合に、ユーザ本人と認証する。
また、認証値が認証許容範囲値内である場合、ユーザ特有の振舞情報が合格条件に合致してない場合に、ユーザ本人と認証しないものとする。振舞情報によるユーザの認証を、以下では、補助認証と称する。認証許容範囲値は、この範囲に収まる認証値であればユーザ本人として概ね考えても良いと思われる値を、予め定めたものである。認証許容範囲値は、例えば、登録情報と認証用情報取得部181で取得した生体情報とが類似する場合に近づく認証値0と、類似しない場合に近づく認証値1との一割以下の0.08とする。
なお、認証閾値が上限値になった場合、認証許容範囲値は、最大認証許容値から認証閾値の上限値を引いた値とする。例えば、認証閾値の上限値を0.45とし、最大認証許容値を0.5とした場合、認証許容範囲値は0.05となる。したがって、認証閾値が上限値になっている場合、認証許容範囲値の値は、認証閾値が上限値になっていない場合よりも小さな値をとる。
次に、認証用振舞情報データベース172のテーブルについて、図6Bを参照しつつ、以下に説明する。認証用振舞情報データベース172のテーブルには、通信接続、イベント実行等のユーザの振舞の種類と、図5に示した認証用情報取得部181で取得した取得情報と、各振舞における最新状況と、各振舞の合格条件とが記憶されている。
取得情報には、例えば、振舞の種類が通信接続であれば接続先のアドレス、SSID(Service Set Identifier)、BSSID(Basic Service Set Identifier)等が、振舞の種類がイベント実行であれば予めスケジュール帳に保存されたイベントの行われる場所の名称、住所等の場所情報が、振舞の種類が顔と端末装置との距離であれば距離が、デバイス接続であれば接続先のデバイスを示す名称、ID(Identifier)等が、それぞれ記憶されている。
各振舞における最新状況は、例えば、振舞の種類が通信接続であれば、取得情報に示された通信接続先にこれまで接続等された合計回数である。通信接続先への接続等の合計回数は、初期値が0であり、通信接続先への接続等により回数が加算されていく。また、振舞の種類がイベント実行であれば、取得情報に記憶されている場所とユーザの現在地との間の距離が記憶される。
振舞の種類が、顔と認証装置1との距離であれば、それまでユーザがユーザ本人と認証された際に算出された顔と認証装置1との距離の平均距離が記憶される。顔と認証装置1との平均距離は、ユーザがユーザ本人と認証される度に更新される。なお、顔と認証装置1との平均距離の初期値は、図6Aに示した生体情報を、認証装置1でユーザ本人の認証を行う前に予め登録する際に求められた距離とする。
また、振舞の種類がデバイス接続であれば、取得情報に記憶された名称、ID等が示すデバイスに接続されているか否かが記憶されている。デバイス接続は、例えば、Bluetooth(登録商標)によりペア設定されたデバイスと認証装置1との接続である。各振舞の合格条件は、各振舞の信頼性を担保できる条件を予め定めた条件である。
次に、図6Cに示すのは、傾き情報テーブル173のテーブルである。傾き情報テーブル173は、図5に示した傾き検出部13から取得された認証装置1の傾きを示す角度と、その角度を取得した取得日時、傾きを検出するめのインターバルとなる待機時間とを記憶している。認証装置1の傾きを示す角度は、待機時間が経過する毎に図5に示した認証用情報取得部181により傾き検出部13から取得され、更新される。また、その角度を更新する際、角度を取得した取得日時も更新される。
続いて情報処理装置7の構成について説明する。情報処理装置7は、認証装置1で生成された特定情報に基づいて、サービスの提供対象のユーザを特定し、特定したユーザに対しサービスを提供する端末である。上述したように、この実施の形態における情報処理装置7は、特定情報に基づいて対象のユーザの正当性を判定し、正当性が認められたユーザに対して金融サービスを提供する(振込の実行を金融機関99に指示する)。図7は、情報処理装置7の構成を示すブロック図である。情報処理装置7は、上述したように、パーソナルコンピュータやスマートフォンやタブレット端末であり、通信部70と、音声入出力部72と、操作入力部73と、情報処理装置記憶部77と、情報処理装置制御部78と、表示部79とを備える。なお、認証装置1と同様に、傾き検出部13、指紋検出部15、および位置検出部16をさらに備えていてもよい。
情報処理装置7における通信部70、音声入出力部72、操作入力部73については認証装置100における通信部10、音声入出力部12、操作入力部14と同様であるため、説明を省略する。
情報処理装置記憶部77は、対象のユーザの正当性を判定するためのプログラム770と、特定情報と認証装置の公開鍵とを紐付けた対応情報一覧771と、を備える。また、情報処理装置記憶部77には、情報処理装置7で実行される各種アプリケーションのプログラムが記憶されている。
情報処理装置制御部78は、情報処理装置記憶部77に記憶された各種プログラム(プログラム770を含む)を実行する。また、情報処理装置制御部78は、通信部70と、音声入出力部72と、操作入力部73とから各種データを取得して処理し、情報処理装置記憶部77の各種データベース、テーブル等に記憶する。
表示部79は、情報処理装置制御部78で実行される各種プログラムの処理内容を表示する。また、表示部79は、操作入力部73から入力されたデータ等を表示することもできる。なお、情報処理装置7がスマートフォンやタブレット端末である場合、当該表示部79は、操作入力部73上に積層され、タッチパネルを構成すればよい。
次に、情報処理装置7のハードウエア構成の一例を、図8を参照しつつ説明する。情報処理装置7は、認証装置1と同様に、各種プログラムを実行するプロセッサ81と、各種プログラムを展開するためのメモリ82と、各種表示用データを出力する表示コントローラ83と、各種表示用データを表示する表示機器84と、音声入出力部72等を接続するためのI/Oポート85と、各種プログラム及び各種データを記憶する記憶機器86と、外部との通信し各種データを送受信する通信機器87とを備える。このプロセッサ81と、メモリ82と、表示コントローラ83と、表示機器84と、I/Oポート85と、記憶機器86と、通信機器87とは、データバス88を介して相互に接続されている。なお、プロセッサ81、メモリ82、表示コントローラ83、表示機器84、I/Oポート85、記憶機器86、通信機器87、およびデータバス88については、認証装置1におけるプロセッサ21、メモリ22、表示コントローラ23、表示機器24、I/Oポート25、記憶機器26、通信機器27、およびデータバス28と同様であるため、説明を省略する。
プロセッサ81により、図7に示した情報処理装置7の情報処理装置記憶部77に記憶されたプログラム770を実行することにより、情報処理装置制御部78に図9に示す情報処理ブロック(各機能部)が実現される。これにより、情報処理装置7は、対象のユーザの正当性を判定し、正当性が認められたユーザに対する金融サービスの提供を、金融機関99に指示することができる。
プロセッサ21により実現される情報処理ブロックは、通信部10等から判定用の情報を取得する判定用情報取得部781と、ユーザの正当性を判定する判定部782と、表示部79に判定結果を表示させる表示処理部783と、図1に示した金融機関99や認証装置1と通信部70を介してデータを送受信するためのデータ送受信部785と、その他の各種処理を実行する処理部787である。
判定用情報取得部781は、通信部10等から判定用の判定用情報を取得する。判定部782は、判定用情報取得部781から取得した判定用情報に基づいて、ユーザの正当性を判定する。
具体的に、判定用情報取得部781は、通信部10を介して認証装置1から特定情報と認証装置の公開鍵を取得する。なお、認証装置の公開鍵は、操作入力部73に対する操作により入力されてもよい。この他にも、音声入出力部72から入力されてもよい。判定部782は、判定用情報取得部781で取得した特定情報および認証装置の公開鍵に基づいて、情報処理装置記憶部77の対応情報一覧771から対象のユーザを特定するとともに、当該ユーザの正当性を判定する。また、判定部782は、処理部787と協働して、更新された特定情報を更新する。具体的に、情報処理装置記憶部77の対応情報一覧771に記憶された特定情報を新たな特定情報に更新する。
表示処理部783は、判定部782の判定結果や処理部787の処理結果に応じたメッセージ、画像等を表示部79に表示させる。なお、この他にも、例えばユーザの正当性が認められない場合については、合わせて音声入出力部72から音声を出力するようにしてもよい。
データ送受信部785は、図1に示した金融機関99や認証装置1に対し通信部70を介してデータを送受信する。処理部787は、判定部782における判定結果に基づいて金融機関99へのサービス提供指示を作成する処理や、その他の各種処理を実行する。
次に、情報処理装置記憶部77に記憶される対応情報一覧771のデータの構成について、図10を参照しつつ説明する。図10に示す対応情報一覧771は、後述するステップS218の処理(図13A参照)にて情報処理装置記憶部77に記憶される。図示するように、対応情報一覧771は、特定情報と認証装置の公開鍵とが紐付いている。そのため、対応情報一覧771は、情報処理装置7の側において、いずれの特定情報のユーザがサービス提供の対象者であるかが特定可能な情報となっている。なお、この実施の形態では、提供されるサービス毎に、後述する特定情報生成処理(図13A参照)が実行されるため、特定情報および認証装置の公開鍵は、サービス毎に生成されることとなる。そのため、同一ユーザであっても、サービス毎に異なる特定情報および認証装置の公開鍵が、対応情報一覧771に登録される。したがって、複数のサービスを利用するユーザについて、共通した情報が登録されることがなく、同一ユーザであることを情報処理装置7の側において認識されてしまうことを防止できる。また、これとは異なり、例えば、特定情報については、サービス毎に異なるものとする一方で、認証装置の公開鍵は、複数のサービスに共通して利用可能としてもよい。具体的には、後述する更新処理(図14参照)により、サービス毎に異なる特定情報とすればよい(図14に示すステップS413の処理にて新たに登録すればよい)。これによれば、サービス毎に共通した認証装置の公開鍵を使用できる一方で、特定情報についてはサービス毎に異なるため、処理負担を軽減しつつセキュリティを確保することができる。また、図示する対応情報一覧771は、特定情報と認証装置の公開鍵とが紐付いている例を示したが、これに加え、後述するステップS208Aの処理(図13A参照)で生成した共通鍵SKが合わせて紐付いていてもよい。また、これとは異なり、対応情報一覧771には認証装置の公開鍵のみ登録されていてもよい。
以上が、認証システム100における認証装置1と情報処理装置7の構成である。続いて認証装置1と情報処理装置7の動作について、図11A~図14を参照して説明する。なお、この実施の形態では、上述したように、所謂ネットバンクにおける振込の金融サービスが行われる場合を例に説明する。
まず、認証装置1における認証処理においてユーザの認証が行われる。そして判定指示処理が実行されることで、特定情報が生成され、生成された特定情報を情報処理装置7に送信することで、情報処理装置7の側においてユーザの正当性の判定がさらに判定される。なお、情報処理装置7の側においてユーザの正当性が認められると、当該情報処理装置7から金融機関99に対し振込の指示が送信され、振込処理が行われる。当該認証装置1における認証処理は、バックグラウンドで行われる処理である。また、認証装置1から情報処理装置7には、金融機関99から発行されたログインIDやパスワードといったログイン情報も送信され、情報処理装置7から金融機関99へも、振込の指示と合わせてログイン情報が送信されることとなる。そのため、この実施の形態では、情報処理装置7から振込の指示を受信したこと、および、情報処理装置7から受信したログイン情報が正当であることをもって振込の処理が行われることとなる。なお、当該情報処理装置7においてログイン情報の正当性も判定するようにしてもよい。また、この実施の形態ではバックグラウンドでユーザの認証が行われる例を示しているが、ユーザの認証については、バックグラウンドで行われるものに限られない。なお、ユーザの認証に成功することにより、第1の条件が成立することとなる。
まず、認証処理について、図11Aおよび図11Bを参照して説明する。認証装置1は、電源投入後処理のイニシャライズ処理の実行が完了すると、もしくは、スリープ状態から復帰すると、認証が成功するまで各機能の操作を許さないロック状態に入る。このロック状態に入る、若しくは、各機能の操作を行う際に認証が要求されると、図3に示した認証装置制御部18が、認証装置記憶部17に記憶された認証処理プログラム170を実行し、ユーザがユーザ本人か否かを判別する認証処理を開始する。なお、この例では、生体情報としてユーザの顔画像を用いるものとするが、生体情報は、顔画像に限られず、指紋、声紋、虹彩等であってもよく、また、これらの組み合わせであってもよい。また、例えば、金融サービスのアプリケーションが実行された場合に認証処理が開始されてもよく、当該アプリケーションの起動中は認証処理が継続して行われるようにしてもよい。この実施の形態では、理解を容易にするため、金融サービスを所望するユーザが金融サービスのアプリケーション(所謂ネットバンクのアプリケーション)の起動とともに認証処理が開始され、当該アプリケーションが起動されている間(起動されてから終了させるまでの期間)は、認証処理がバックグラウンドで繰り返し実行されるものとして以下説明する。
認証処理を開始すると、図5に示した認証用情報取得部181は、撮影部11に認証装置1を操作しているユーザの顔写真を撮影させる。具体的に、認証用情報取得部181は、認証装置1の正面に向き合っているユーザの顔写真を、インカメラ11Aで撮影させる。これにより、認証用情報取得部181は、撮影部11から撮影したユーザの顔写真を取得する(ステップS101)。
続いて認証用情報取得部181は、取得したユーザの顔写真がブレていないか判定する(ステップS102)。ユーザの顔写真がブレていた場合(ステップS102;NO)、認証用情報取得部181は、撮影部11にユーザの顔写真の撮影をリトライさせる(ステップS103)。また、ユーザの顔写真がブレていなかった場合(ステップS102;YES)、認証用情報取得部181は、撮影部11に撮影させたユーザの顔写真からユーザの顔が検出できるか判定する(ステップS104)。
ユーザの顔写真からユーザの顔が検出できない場合(ステップS104;NO)、認証用情報取得部181は、撮影部11にユーザの顔写真の撮影をリトライさせる(ステップS103)。なお、ユーザの顔写真からユーザの顔が検出できない場合、今操作しているユーザにこれ以上操作をさせないようにロックをかける、他の認証方法を利用する旨のメッセージを表示する等をしてもよい。また、ユーザの顔写真からユーザの顔が検出できた場合(ステップS104;YES)、認証用情報取得部181は、検出したユーザの顔の画像の特徴量を求める。認証用情報取得部181は、求めたユーザの顔の画像の特徴量を認証判定部182に送信する。
認証判定部182は、図3に示した認証装置記憶部17に記憶されている認証用生体情報データベース171を取得する。認証判定部182は、図6Aに示した認証用生体情報データベース171のテーブルから、生体情報の種類のうち「顔」に対応付けられた登録情報に記憶された顔画像の特徴量と、認証値の認証許容値及び認証閾値を取得する。認証判定部182は、認証用生体情報データベース171から取得した登録情報の顔画像の特徴量と、認証用情報取得部181から受信した顔画像の特徴量とを比較し、比較の結果を基に顔の認証値を求める。認証判定部182は、求めた顔の認証値が認証用生体情報データベース171から取得した認証閾値以上か否かを判定する(ステップS105)。
求めた顔の認証値が認証閾値以上の場合(ステップS105;YES)、認証判定部182は、求めた顔の認証値が認証用生体情報データベース171から取得した認証許容値以下か否かを判定する(ステップS106)。求めた顔の認証値が認証許容値以下の場合(ステップS106;YES)、認証装置1を使用しているユーザがユーザ本人か否かグレーであるため、認証判定部182は振舞情報による認証である補助認証を実行する。まず、認証判定部182は、認証用情報取得部181に通信部10から現在接続している通信接続先を取得させる。認証判定部182は、認証用情報取得部181から、取得させた通信部10の現在の通信接続先を受信する。
続いて、認証判定部182は、図3に示した認証装置記憶部17から認証用振舞情報データベース172を取得する。認証判定部182は図6Bに示した認証用振舞情報データベース172のテーブルに記憶されている振舞の種類のうち「通信接続」に対応つけられた取得情報、回数、合格条件を取得する。例えば、図6Bに示すように、「通信接続」の取得情報にはSSIDであるABC_WLANと123WLANとが記憶されている。このABC_WLANでは、接続した回数に31回、合格条件として接続回数が100回以上と記憶されている。また、123WLANでは、接続した回数に157回、合格条件として接続回数が100回以上と記憶されている。なお、以下では合格条件を満たす場合を信頼するものと呼び、合格条件を満たさない場合を信頼しないものと呼ぶ。
認証判定部182は、認証用情報取得部181から受信した通信部10の現在の通信接続先と、認証用振舞情報データベース172から取得した取得情報とを比較し、現在の通信接続先が信頼する接続先か否か判定する(ステップS107)。ここで、例えば、通信部10の現在の通信接続先としてSSIDのABC_WLANが取得されているものとする。認証用振舞情報データベース172に記憶された振舞の種類「通信接続」の取得情報におけるABC_WLANは、接続した回数が31回であり、合格条件の接続回数が100回以上である。このため、現在の通信接続先は信頼する通信接続先ではないため(ステップS107;YES)、信頼するイベントを実行しているか否かを判定する(ステップS108)。
認証判定部182は、認証用情報取得部181に操作入力部14から直前に実行したイベントの内容を取得させる。認証判定部182は、認証装置1に備えられたカレンダーから現在の日時に予定があるか否かと、その予定が行われる場所の情報とを取得する。認証判定部182は、その日に予定が無かった場合、信頼するイベントの実行ではないものとし(ステップS108;YES)、顔と認証装置1との距離を算出する(ステップS109)。また、その日に予定があった場合、認証判定部182は、認証用情報取得部181に位置検出部16から、現在の位置情報を取得させる。続いて、認証判定部182は、図3に示した認証装置記憶部17から認証用振舞情報データベース172を取得する。
認証判定部182は、図6Bに示した認証用振舞情報データベース172のテーブルに記憶されている振舞の種類のうち、「イベント実行」に対応つけられた取得情報と合格条件とを取得する。例えば、図6B示すように、「イベント実行」の取得情報にはイベントが行われる場所として「○×公園」及び「△●映画館」が記憶され、その両方の合格条件として「距離が100m以内」と記憶されているものとする。
ここで、例えば、認証装置1に備えられたカレンダーに、現在の日時に行われるイベントの場所として「○×公園」が記憶されているものとする。認証判定部182は、認証用情報取得部181に位置検出部16から取得させた現在の位置情報と、現在の日時に行われるイベントの場所である「○×公園」の位置情報とを比較する。例えば、現在の位置情報と、イベントの場所である「○×公園」の位置情報との間の距離が113mとする。この場合、信頼するイベントの実行ではないものとし(ステップS108;YES)、顔と認証装置1との距離を算出する(ステップS109)。ユーザの顔と認証装置1との距離は、図2に示したインカメラ11Aで撮影した認証装置1の正面に向き合うユーザの顔写真における、ユーザの顔の占める割合を基づいて算出する。
続いて、認証判定部182は、図3に示した認証装置記憶部17から認証用振舞情報データベース172を取得する。認証判定部182は、図6Bに示した認証用振舞情報データベース172のテーブルに記憶されている振舞の種類のうち「顔と端末装置との距離」に対応つけられた平均距離、合格条件を取得する。例えば、図6Bに示すように、「顔と端末装置との距離」の平均距離には262mm、合格条件に平均距離のプラスマイナス20mm以内と記憶されている。
認証判定部182は、ステップS109で算出したユーザの顔と認証装置1との距離が、認証用振舞情報データベース172から取得した合格条件に設定された設定範囲内か否か判定する(ステップS110)。具体的には、認証用振舞情報データベース172から取得した平均距離は262mm、合格条件は、平均距離のプラスマイナス20mm以内であるので、242mmから282mmの範囲か否かを判定する。
ステップS109で算出したユーザの顔と認証装置1との距離が、242mmから282mmの範囲である場合(ステップS110;YES)、認証判定部182は、認証装置1を使用しているユーザをユーザ本人と認証する。認証判定部182は、認証用情報更新部184に、図2に示した認証用生体情報データベース171及び認証用振舞情報データベース172に記憶された各種データを更新させる(ステップS111)。
具体的には、認証用情報更新部184は、図6Aに示した認証用生体情報データベース171のテーブルの生体情報の種類「顔」に対応つけられた登録情報を、登録情報に記憶されていた顔画像の特徴量に認証判定部182が認証用情報取得部181から受信した顔画像の特徴量を加え、更新する。続いて、認証用情報更新部184は、図6Bに示した認証用振舞情報データベース172のテーブルの振舞の種類「通信接続」に対応つけられた最新状況に記憶されている回数に1を加え、更新する。また、認証用情報更新部184は、図6Bに示した認証用振舞情報データベース172のテーブルに記憶されている振舞の種類「顔と端末装置との距離」に対応つけられた最新状況を、記憶されている平均距離とステップS109で算出された「顔と端末装置との距離」とから求めた平均距離で更新する。
このように、認証用生体情報データベース171に記憶された生体情報、及び、認証用振舞情報データベース172に記憶された振舞情報を更新することにより、ユーザの生体情報及び振舞情報の精度が向上する。このため、ユーザの認証の精度を向上させることができる。
また、認証判定部182により求められた顔の認証値が、認証値の認証閾値以上でない場合(ステップS105;NO)、認証判定部182は、認証用情報取得部181に通信部10から現在接続している通信接続先を取得させる。認証判定部182は、認証用情報取得部181から、取得させた通信部10の現在の通信接続先を受信する。続いて、認証判定部182は、図2に示した認証装置記憶部17から認証用振舞情報データベース172を取得する。認証判定部182は、図6Bに示した認証用振舞情報データベース172のテーブルに記憶されている振舞の種類のうち「通信接続」に対応つけられた取得情報、回数、合格条件を取得する。認証判定部182は、認証用情報取得部181から受信した通信部10の現在の通信接続先と、認証用振舞情報データベース172から取得した取得情報とを比較し、現在の通信接続先が信頼する接続先か否か判定する(ステップS112)。
ここで、例えば、通信部10の現在の通信接続先としてSSIDの123WLANが取得されているものとする。認証用振舞情報データベース172に記憶された振舞の種類「通信接続」の取得情報における123WLANは、接続した回数が156回であり、合格条件の接続回数が100回以上である。このため、現在の通信接続先は信頼する通信接続先であるため(ステップS112;YES)、認証判定部182は、認証装置1を使用しているユーザをユーザ本人と認証する。その後、認証判定部182は、認証間隔を現在の認証間隔よりも長くする(ステップS113)。これは、現在の通信接続先が信頼する通信接続先であれば、ユーザ本人は自宅、職場等の信頼する環境に居るものと考えられるためである。この場合、認証間隔を現在の認証間隔よりも長くし、認証の頻度を下げ必要最低限の回数認証を行うようにすれば良い。
ここで、例えば、通信部10の現在の通信接続先としてSSIDのABC_WLANが取得されているものとする。認証用振舞情報データベース172に記憶された振舞の種類「通信接続」の取得情報におけるABC_WLANは、接続した回数が31回であり、合格条件の接続回数が100回以上である。このため、現在の通信接続先は信頼する通信接続先ではないため(ステップS112;NO)、認証判定部182は、認証装置1を使用しているユーザをユーザ本人と認証せず、認証間隔を現在の認証間隔よりも長くしない。
ここで、ステップS107において、例えば、通信部10の現在の通信接続先としてSSIDの123WLANが取得されているものとする。認証用振舞情報データベース172に記憶された振舞の種類「通信接続」の取得情報における123WLANは、接続した回数が156回であり、合格条件の接続回数が100回以上である。このため、現在の通信接続先は信頼する通信接続先であるため(ステップS107;NO)、認証判定部182は、認証装置1を使用しているユーザをユーザ本人と認証する。
また、ここで、ステップS108において、例えば、認証装置1に備えられたカレンダーに、現在の日時に行われるイベントの場所として「△●映画館」が記憶されているものとする。認証判定部182は、認証用情報取得部181に位置検出部16から取得させた現在の位置情報と、現在の日時に行われるイベントの場所である「△●映画館」の位置情報とを比較する。例えば、現在の位置情報と、イベントの場所である「△●映画館」の位置情報との間の距離が72mとする。この場合、信頼するイベントの実行であるもとのし(ステップS108;NO)、認証判定部182は、認証装置1を使用しているユーザをユーザ本人と認証する。
認証判定部182は、認証間隔を現在の認証間隔よりも長くする(ステップS113)。認証判定部182は、ユーザの顔と認証装置1との距離を算出する(ステップS114)。続いて、認証判定部182は、図3に示した認証装置記憶部17から認証用振舞情報データベース172を取得する。認証判定部182は、ステップS114で算出したユーザの顔と認証装置1との距離が、認証用振舞情報データベース172から取得した合格条件に設定された設定範囲内か否か判定する(ステップS115)。ステップS109で算出したユーザの顔と認証装置1との距離が、設定範囲である場合(ステップS115;YES)、認証判定部182は、認証装置1を使用しているユーザをユーザ本人と認証する。認証判定部182は、認証用情報更新部184に、図3に示した認証用生体情報データベース171及び認証用振舞情報データベース172に記憶された各種データを更新させる(ステップS111)。
具体的には、認証用情報更新部184は、図6Aに示した認証用生体情報データベース171のテーブルの生体情報の種類「顔」に対応つけられた登録情報を、登録情報に記憶されていた顔画像の特徴量にステップS105で認証判定部182が認証用情報取得部181から受信した顔画像の特徴量を加え、更新する。
続いて、認証用情報更新部184は、図6Bに示した認証用振舞情報データベース172のテーブルの振舞の種類「通信接続」に対応つけられた、最新状況に記憶されている回数に1を加え、更新する。続いて、認証用情報更新部184は、認証用振舞情報データベース172のテーブルの振舞の種類「イベント実行」に対応つけられた最新状況を、ステップS108;NOで求めたイベントの場所と認証装置1との間の距離を書き込み、更新する。また、認証用情報更新部184は、図6Bに示した認証用振舞情報データベース172のテーブルに記憶されている振舞の種類「顔と端末装置との距離」に対応つけられた最新状況を、最新状況に記憶されている平均距離とステップS114で算出された「顔と端末装置との距離」とから求められた平均距離で更新する。
ステップS114で算出したユーザの顔と認証装置1との距離が、設定範囲でない場合(ステップS115;NO)、認証判定部182は、認証用情報更新部184に、図3に示した認証用生体情報データベース171及び認証用振舞情報データベース172に記憶された各種データを更新させない。
また、認証判定部182により求められた顔の認証値が、認証値の認証許容値以下でない場合(ステップS106;NO)、及び、ステップS110で顔と端末装置との距離が設定範囲内でなかった場合(ステップS110;NO)、認証判定部182は、認証装置1を使用しているユーザをユーザ本人ではないと判断する。認証判定部182は、図5に示した表示処理部183に、表示部19へ認証できなかった旨を表示させる。続いて、認証判定部182は、認証装置1に備えられている既存の生体認証手段を呼び出す。ここでは、既存の生体認証手段として指紋認証を呼び出すものとする。認証判定部182は、指紋認証を実行する(ステップS116)。
指紋認証ができた場合(ステップS117;YES)、認証判定部182からの指示により、認証用情報取得部181は、撮影部11に認証装置1を操作しているユーザの顔写真を撮影させる。認証用情報取得部181は、撮影部11から撮影したユーザの顔写真の画像を取得し、ユーザの顔の画像の特徴量を求める。認証用情報取得部181は、認証判定部182に求めたユーザの顔の画像の特徴量を送信する。認証判定部182は、受信したユーザの顔の画像の特徴量を図5に示した認証用情報更新部184に送信する。認証用情報更新部184は、受信したユーザの顔の画像の特徴量を、図6Aに示した認証用生体情報データベース171のテーブルの生体情報の種類「顔」に対応つけられた登録情報に記憶されていた顔画像の特徴量に加え、更新する(ステップS118)。認証判定部182は、ステップS101へ戻り、ステップS101以降のステップを実行する。
また、指紋認証ができなかった場合(ステップS117;NO)、認証判定部182は、図5に示した表示処理部183に、表示部19へ認証できなかった旨を表示させる。続いて、認証判定部182は、図5に示した表示処理部183にログイン画面を表示部19に表示させる(ステップS119)。
ここで、図11Bに移動する。認証判定部182は、生体認証及び補助認証が予め定めされた設定回数成功したか否かを判定する(ステップS120)。この設定回数は、例えば、連続で10回、認証装置1が起動してから合計で20回等、任意の回数である。生体認証及び補助認証が予め定めされた設定回数成功した場合(ステップS120;YES)、認証判定部182は、設定回数分の認証で求められた顔の認証値の平均値を求める(ステップS121)。具体的には、認証判定部182は、図3に示した認証用生体情報データベース171を、認証装置記憶部17から取得する。認証判定部182は、図6Aに示した認証用生体情報データベース171のテーブルから、生体情報の種類のうち「顔」に対応付けられた認証値の平均値を取得する。認証判定部182は、ステップS105で求めた顔の認証値と、認証用生体情報データベース171から取得した認証値の平均値とを足して2で割り、顔の認証値の平均値を算出する。また、生体認証及び補助認証が予め定めされた設定回数成功しなかった場合(ステップS120;NO)、ステップS121からステップS123の処理をスキップし、ステップS124へ進む。
認証判定部182は、ステップS121で求めた顔の認証値の平均値を、認証用情報更新部184に送信する。認証用情報更新部184は、受信した顔の認証値の平均値と、予め設定された認証閾値の上限値とを比較する。顔の認証値の平均値が予め設定された認証閾値の上限値以上である場合、認証用情報更新部184は、図6Aに示した認証用生体情報データベース171のテーブルの、生体情報の種類のうち「顔」に対応付けられた認証閾値に、認証閾値の上限値を書き込み、更新する。また、顔の認証値の平均値が予め設定された認証閾値の上限値以下である場合、認証用情報更新部184は、図6Aに示した認証用生体情報データベース171のテーブルの、生体情報の種類のうち「顔」に対応付けられた認証閾値に、ステップS121で求めた顔の認証値の平均値を書き込み、更新する(ステップS122)。
続いて、認証用情報更新部184は、認証許容値を更新する(ステップS123)。具体的には、ステップS121で求めた顔の認証値の平均値が、予め設定された認証閾値の上限値以上である場合、認証用情報更新部184は、予め設定された最大認証許容値を認証許容値とする。また、ステップS121で求めた顔の認証値の平均値が、予め設定された認証閾値の上限値以下である場合、ステップS121で求めた顔の認証値の平均値とデフォルトの認証許容範囲値とを足した値が最大認証許容値以下であれば、その足した値を認証許容値とする。
ステップS121で求めた顔の認証値の平均値とデフォルトの認証許容範囲値とを足した値が最大認証許容値以上であれば、最大認証許容値を認証許容値とする。認証用情報更新部184は、図3に示した認証用生体情報データベース171を、認証装置記憶部17から取得する。認証用情報更新部184は、図6Aに示した認証用生体情報データベース171のテーブルの、生体情報の種類のうち「顔」に対応付けられた認証許容値に、求めた認証許容値を書き込み、更新する。
図5に示した認証用情報取得部181は、傾き検出部13から認証装置1の傾きの角度を取得する。続いて、認証用情報取得部181は、図示しないタイマから現在の日時情報を取得する(ステップS124)。認証用情報取得部181は、取得した認証装置1の傾きの角度と現在の日時情報とを認証判定部182に送信する。認証判定部182は、受信した認証装置1の傾きの角度と現在の日時情報とを、認証用情報更新部184に送信する。認証用情報更新部184は、図3に示した認証装置記憶部17に記憶された傾き情報テーブル173に、受信した認証装置1の傾きの角度と現在の日時情報とを書き込み、保存する(ステップS125)。
認証判定部182は、図6Cに示した傾き情報テーブル173のテーブルに記憶されている待機時間を取得する。認証判定部182は、認証用情報取得部181に取得した待機時間を送信する。認証用情報取得部181は、受信した待機時間の間、通信部10、撮影部11等からのデータの取得を待機する(ステップS126)。待機時間が終了すると、認証用情報取得部181は、傾き検出部13から認証装置1の傾きの角度を取得する。続いて、認証用情報取得部181は、図示しないタイマから現在の日時情報を取得する(ステップS127)。認証用情報取得部181は、取得した認証装置1の傾きの角度と現在の日時情報とを認証判定部182に送信する。
認証判定部182は、図6Cに示した傾き情報テーブル173のテーブルに記憶されている認証装置1の角度を取得する。認証判定部182は、認証用情報取得部181から受信した認証装置1の傾きの角度と、傾き情報テーブル173から取得した認証装置1の角度とを比較し、角度が変化してないか否かを判定する(ステップS128)。認証装置1の角度の変化が、予め定められた設定値の角度、例えば、30度以上の場合(ステップS128;NO)、認証判定部182は、ユーザにより認証装置1が動かされ何某かの操作が行われたものと判断し、図11Aに示したステップS101に戻る。その後、認証判定部182は、ステップS101以降の処理を実行する。
また、認証装置1の角度の変化が、予め定められた設定値の角度以下の場合(ステップS128;YES)、認証判定部182は、ユーザにより認証装置1が動かされていないものと判断する。続いて、認証判定部182は、ユーザを認証するタイミングになったか否かを判定する(ステップS129)。ユーザを認証するタイミングは、予め設定された認証間隔の時間が経過したタイミングである。ユーザを認証するタイミングになっている場合(ステップS129;YES)、認証判定部182は、図11Aに示したステップS101に戻る。その後、認証判定部182は、ステップS101以降の処理を実行する。ユーザを認証するタイミングになっていない場合(ステップS129;NO)、認証判定部182はステップS125に戻る。認証判定部182は、ステップS125からステップS129までの処理を実行する。
なお、上記の実施の形態において、生体情報から求められた認証値と認証閾値とが同じ値となった場合には、生体情報から求められた認証値が認証閾値以下、または、生体情報から求められた認証値が認証閾値以上の、どちらの場合として、認証が成功したか否かを判定してもよい。また、生体情報から求められた認証値と認証許容値とが同じ値となった場合には、生体情報から求められた認証値が認証許容値以下、または、生体情報から求められた認証値が認証許容値以上の、どちらの場合として、認証が成功したか否かを判定してもよい。
次に、判定指示処理について、図12を参照して説明する。図12は判定指示処理の一例を示すフローチャートである。なお、判定指示処理は、認証処理が終了する度に開始されればよく、認証処理が設定期間毎に繰り返される度に当該判定指示処理も繰り返し実行されることとなっている。この実施の形態における認証処理は、金融サービスのアプリケーション(所謂ネットバンクのアプリケーション)が起動されている間(起動されてから終了させるまでの期間)、認証処理が継続して繰り返し実行されることから、当該判定指示処理についても同様の期間、繰り返し実行されることとなる。判定指示処理が開始されると、処理部187は、認証処理における認証に成功したか否かを判定する(ステップS301)。
成功したと判定した場合(ステップS301;YES)、処理部187は、処理が終了したか否かを判定する(ステップS302)。具体的に、ステップS302の処理では、例えば操作入力部14に対するユーザの入力操作により金融サービスのアプリケーション(所謂ネットバンクのアプリケーション)が終了されたか否かを判定したり、金融サービスのアプリケーションが起動されてから予め定められた時間を経過したか否かを、タイマ値を確認して判定することにより、処理が終了したか否かを判定する。
処理が終了していないと判定した場合(ステップS302;NO)、処理部187は、既にステップS305の処理を実行し、判定開始済みであるか否かを判定する(ステップS303)。ステップS303では、後述するステップS305の処理を実行済みであるか否かを判定すればよい。判定開始済みである場合(ステップS303;YES)、処理部187は、そのまま判定指示処理を終了する。一方、判定開始済みではない場合(ステップS303;NO)、処理部187は、特定情報を生成する特定情報生成処理を特定情報生成部186に実行させる(ステップS304)。
図13Aは、図12のステップS304にて実行される特定情報生成処理の一例を示すフローチャートである。図13Aに示す特定情報生成処理において、特定情報生成部186は、まず、図11Aに示すステップS101で取得した顔写真から顔の特徴量を抽出する(ステップS201)。なお、ステップS201の処理では、新たにユーザの顔写真を撮影してもよく、この場合、図11Aに示すステップS102の処理と同様に、ブレているか否かを判定してブレている場合にはリトライするようにしてもよい。また、図13Aに示すステップS201の処理では、図11Aに示すステップS104の処理にてYESと判定した場合に求めた特徴量を使用してもよい。またステップS201では顔の特徴量を抽出しているが、これに限られず、ユーザの生体情報であれば、指紋、声紋、虹彩等であってもよく、また、これらの組み合わせであってもよい。
続いて特定情報生成部186は、抽出した特徴量から生体キーを生成する(ステップS202)。ステップS202では、例えば、BB-KDF(biomeric-based key derivation function)と呼ばれる鍵導出関数を用いて、ステップS201の処理で抽出した顔の特徴量に基づき、生体キーを生成する。鍵導出関数は、予め定められた一方向関数に対応する。なお、この実施の形態におけるステップS202の処理では、ステップS201の処理で抽出した顔の特徴量に基づいて生体キーを生成する例を示したが、例えば、ステップS201において声紋や指紋の特徴量を抽出し、ステップS202において、これらのいずれかにより生体キーを生成してもよい。また、顔、声紋、指紋等の複数の特徴量に基づいて生体キーを生成してもよい。なお、ステップS201で抽出した顔の特徴量、声紋や指紋の特徴量は、ユーザの生体情報に対応する。また、生体キーは生体鍵に対応し、ステップS202の処理を実行する特定情報生成部186およびステップS202の処理は、生体鍵生成手段および生体鍵生成ステップに対応する。
なお、ステップS202の処理では、例えば、ステップS201で抽出した特徴量と補助データとにより生体キーを生成してもよい。同一人物の特徴量に基づいて生成される生体キーは基本的には同一となるものの、同一とはならない事象もあり、このような事象を回避するために設定されたデータが補助データである。すなわち、補助データは、ブレのある生体データの特徴量について、同一人物であれば同一の生体キーが生成されるよう、当該生体データの特徴量を補助するデータである。補助データは、生体データの特徴量のブレ幅に応じて予め生成されればよい。
次に、特定情報生成部186は、ランダムに生成される128ビットのデータであるランダムIDを生成する(ステップS203)。ステップS203の処理では、例えば、UUID(Universal Unique Identifier)によりランダムIDを生成すればよい。ランダムIDは、128ビットのデータであり、80ビットの固定部と48ビットの可変部とから構成される。なお、固定部と可変部のビット数は一例であり、ランダムIDの一部が固定部で、その他が可変部であればよい。また、これとは別に、可変部は、固定部以外のビットデータの一部であってもよい(固定部以外のビットデータが全て可変部でなくてもよい)。またステップS203の処理で生成されるランダムIDは、ランダム情報に対応する。
ステップS203の処理を実行した後、特定情報生成部186は、ステップS202で生成した生体キーとステップS203で生成したランダムIDの固定部とに基づいて、認証装置の秘密鍵と公開鍵を生成する(ステップS204)。ステップS204では、予め記憶されているペア鍵生成プログラムに従い、生体キーおよびランダムIDの固定部に基づいて認証装置の秘密鍵と公開鍵を生成する。なお、ステップS203で生成したランダムIDとステップS204で生成した認証装置の公開鍵は、通信部10を介して情報処理装置7へ送信される。詳しくは後述するが、ステップS204の処理においてランダムIDの固定部を用いて認証装置の秘密鍵と公開鍵を生成するため、可変部が変更されても認証装置の秘密鍵と公開鍵は変更されないこととなる。なお、ランダムIDと認証装置の公開鍵の送信時には、ユーザが入力したニックネームやパスワード、メールアドレスといった情報が合わせて送信される。
情報処理装置7の側では、認証装置1からランダムIDおよび認証装置の公開鍵を受信すると、情報処理装置記憶部77に当該ランダムIDを登録する(ステップS205)。具体的に、ランダムIDについては、例えばユーザのニックネームやパスワード、メールアドレスといった情報と対応付けて情報処理装置記憶部77に記憶される。詳しくは後述する(図15参照)が、ステップS205でユーザのニックネームと対応付けて登録されたランダムIDは、ユーザが認証装置1を紛失してしまった場合など、認証装置1を新しい認証装置1に変更した場合において使用される。
ステップS205の処理を実行した後、情報処理装置7の処理部787は、情報処理装置の秘密鍵と公開鍵を生成する(ステップS206)。ステップS206では、予め記憶されているペア鍵生成プログラムに従い、情報処理装置の秘密鍵と公開鍵を生成する。なお、ステップS206で生成した情報処理装置の公開鍵は、通信部70を介して認証装置1へ送信される。そして、ディフィーヘルマン鍵交換法(Diffie-Helman key exchange method)により、認証装置1と情報処理装置7とで、共通鍵SKが生成されることとなる。なお、ステップS206で生成した情報処理装置の公開鍵を受信する認証装置1の通信部10および公開鍵を受信する処理は、公開鍵取得手段および公開鍵取得ステップに対応する。また、ステップS206の処理を実行する処理部787は、ペア鍵生成手段に対応する。
具体的に、認証装置1の側において、特定情報生成部186は、認証装置の秘密鍵と、受信した情報処理装置の公開鍵に基づいて原始共通鍵を生成する(ステップS207)。一方、情報処理装置7の側では、処理部787が、情報処理装置の秘密鍵と、受信した認証装置の公開鍵に基づいて原始共通鍵を生成する(ステップS207A)。これらの原始共通鍵は、ディフィーヘルマン鍵交換法から、同一の鍵となる。
続いて認証装置1の側では、特定情報生成部186が、当該原始共通鍵にKDF(key derivation function)を適用して共通鍵SKを生成し(ステップS208)、情報処理装置7の側では、処理部787が、同様に、当該原始共通鍵にKDFを適用して共通鍵SKを生成する(ステップS208A)。このようにして、認証装置1と情報処理装置7とで共通の共通鍵SKが生成されることとなる。なお、上述したように、ステップS204の処理においてランダムIDの固定部を用いて認証装置の秘密鍵と公開鍵を生成するため、ランダムIDの可変部が変更されても認証装置の秘密鍵と公開鍵は変更されない。そのため、ランダムIDの可変部が変更された場合、共通鍵SKについても変更されないこととなる。また、ステップS204、ステップS207およびステップS208の処理を実行する特定情報生成部186およびステップS204、ステップS207およびステップS208の処理は、共通鍵生成手段および共通鍵生成ステップに対応する。
認証装置1の側において、ステップS208の処理を実行した後、特定情報生成部186は、ステップS203の処理で生成したランダムID(固定部および可変部を含む)のハッシュ値を算出する(ステップS208H)。ステップS208Hの処理を実行した後、特定情報生成部186は、ステップS208の処理で生成した共通鍵SKと、ステップS208Hで算出したハッシュ値と、に基づいてMAC(Message Authentication Code)値を算出する(ステップS209)。ステップS209では、MACアルゴリズムにより、共通鍵SKとハッシュ値に基づくMAC値を算出する。
ステップS209の処理を実行した後、特定情報生成部186は、算出したMAC値とハッシュ値に基づいて特定情報を生成する(ステップS210)。具体的に、ステップS210では、ハッシュ値に、算出したMAC値を付加し、フッターを含めて320ビットのデータを生成し、これを特定情報とする。ステップS210で生成された特定情報は、通信部10を介して情報処理装置7へ送信される。なお、ステップS210の処理を実行する特定情報生成部186およびステップS210の処理は、特定情報生成手段および特定情報生成ステップに対応する。特定情報は、予め設定された暗号化方式により暗号化されて情報処理装置7へ送信されてもよい。
情報処理装置7の側において特定情報を受信すると、処理部787は、受信した特定情報からハッシュ値を抽出する(ステップS212)。続いてステップS208Aで生成した共通鍵SKと、ステップS212で抽出したハッシュ値に基づいてMAC値を算出する(ステップS213)。
ステップS213の処理を実行した後、処理部787は、ステップS213で算出したMAC値を検証する(ステップS214)。具体的に、ステップS214では、ステップS213で算出したMAC値が、受信した特定情報に含まれるMAC値と一致するか否かを確認することで検証する。ステップS214の処理における検証結果は、通信部70を介して認証装置1へ送信される。
認証装置1の側において、特定情報生成部186は、受信した検証結果が正常でるか否かを判定し(ステップS215)、正常であれば(ステップS215;YES)、そのまま特定情報生成処理を終了する。一方、検証結果が正常でなければ(ステップS215;NO)、エラーを表示してから(ステップS216)特定情報生成処理を終了する。なお、ステップS216では、再度実行すべきことを促す表示を行ってもよく、また、手動で特定情報生成処理を再度実行可能にしてもよい。
一方、情報処理装置7の側においても、処理部787は、ステップS214での検証結果が正常であるか否かを判定する(ステップS217)。検証結果が正常でない場合(ステップS217;NO)、処理部787は、そのまま特定情報生成処理を終了する。なお、この場合、通信部70を介して認証装置1に特定情報の登録に失敗した旨を通知し、認証装置1の側においてエラーを表示してから、再度特定情報生成処理を手動で実行可能にしてもよい。
また、ステップS214での検証結果が正常である場合(ステップS217;YES)、処理部787は、受信した特定情報を認証装置の公開鍵に対応付けて情報処理装置記憶部77に記憶することで当該特定情報等を登録し(ステップS218)、特定情報生成処理を終了する。ステップS218では、受信した特定情報を、認証装置の公開鍵に対応付け、図10に示す対応情報一覧771として情報処理装置記憶部77に記憶する。すなわち、ステップS218の処理は、図10に示す対応情報一覧771を生成して登録する処理であるともいえる。
このように、図13Aに示す特定情報生成処理が実行されることで、サービスを提供するユーザが正当であることを特定するための特定情報が生成される。また、当該特定情報生成処理が実行されることで、特定情報が情報処理装置7側に登録、すなわち、図10に示す基準情報一覧771が情報処理装置7側に登録されるため、以降は、特定情報によってユーザの特定が可能となる。また、特定情報は、ユーザの生体情報に基づいて生成される情報ではあるものの、生体情報そのものではなく、また、当該特定情報から生体情報を生成することが不可能である。そのため、生体情報そのものが不正に取得されることを防止でき、セキュリティを確保することができる。また、ランダムIDはランダムに生成されるため、同一の生体情報(顔の特徴量)から複数の特定情報が生成でき、セキュリティを確保しつつ、ユーザの作業負担を軽減させることができ、ひいては安定してサービスを受けることができる。なお、この実施の形態では、図12に示す判定指示処理において図13Aに示す特定情報生成処理が実行される例を示しており、当該判定指示処理は、認証処理が終了する度に開始されるため、特定情報生成処理も繰り返し実行されることになっているが、当該特定情報生成処理については、対象ユーザに対して、提供されるサービス毎(または情報処理装置7毎)に1回実行されればよい。すなわち、提供される一のサービスにおいて一旦特定情報が生成された後は、当該特定情報生成処理は行われず、他のサービスの提供時において当該サービスに対応して特定情報生成処理が実行されればよい。後述する更新処理が行われればよい。また、詳しくは後述するが、この実施の形態では、更新処理が実行されることで、特生成された特定情報を更新可能となっている。
図12に戻り、ステップS304の処理を実行した後、処理部187は、ユーザが正当であることを判定してサービス開始を指示する判定開始指示処理を実行し(ステップS305)、判定指示処理を終了する。なお、ステップS305の処理にて判定開始が指示されることにより、情報処理装置7の側においてユーザが正当であることが判定され、特定情報により正当であることが特定されると、サービスの開始が金融機関99へ指示される。そして、上述したように、金融機関99においてログイン情報の正当性が確認されると、当該振込の処理が行われることとなる。ステップS305の処理を実行する処理部187およびステップS305の処理は、判定指示手段および判定指示ステップに対応する。
図13Bは、図12のステップS305にて実行される判定開始指示処理の一例を示すフローチャートである。図13Bに示す判定開始指示処理において、認証装置1の処理部187は、特定情報と認証装置の公開鍵を、通信部10を介して情報処理装置7へ送信する(ステップS221)。なお、ステップS221の処理では、図示は省略しているが、金融機関99から発行されたログインIDやパスワードといったログイン情報も合わせて送信される。
情報処理装置7の側において、処理部787は、受信した特定情報を検証する(ステップS222)。なお、認証装置1から特定情報を受信する通信部70は、特定情報取得手段に対応する。ステップS222では、受信した図13Aに示すステップS207A、S208、S202~S214の処理を実行することで、特定情報を検証する。また、ステップS222では、例えば、情報処理装置記憶部77に記憶された対応情報一覧771を参照し、受信した認証装置の公開鍵と特定情報の対応関係を確認することで、特定情報を検証してもよい。なお、ステップS222の処理において、検証が正常でない場合には処理を終了すればよい。ステップS222の処理を実行する処理部787は、判定手段に対応する。ステップS222の処理を実行した後、すなわち検証結果が正常である場合、処理部787は、チャレンジデータを生成する(ステップS223)。生成されたチャレンジデータは、通信部70を介して認証装置1へ送信される。このように、ステップS221の処理において情報処理装置7へ特定情報が送信され、当該特定情報の検証が正常である場合に、チャレンジレスポンス認証が行われる。そのため、ステップS221の処理は、対象のユーザに対応するサービスの提供を行うための認証を指示する処理であるともいえる。
認証装置1の側において、処理部187は、受信したチャレンジデータを認証装置の秘密鍵で電子署名し(ステップS224)、チャレンジデータの電子署名データを、通信部10を介して情報処理装置7へ送信する(ステップS225)。
続いて情報処理装置7の側において、処理部787は、チャレンジデータの電子署名データを、認証装置の公開鍵を用いて検証する(ステップS226)。具体的に、ステップS226では、受信したチャレンジデータの電子署名データが、認証装置の公開鍵とペアをなす秘密鍵によりのみ生成できる、ステップS223で生成したチャレンジデータに関する電子署名かどうかを確認することにより、検証を行う。なお、検証結果は、通信部70を介して認証装置1へ送信される。
認証装置1の側において、処理部187は、受信した検証結果が正常でるか否かを判定し(ステップS227)、正常であれば(ステップS227;YES)、そのまま判定開始指示処理を終了する。一方、検証結果が正常でなければ(ステップS227;NO)、エラーを表示してから(ステップS228)判定開始指示処理を終了する。なお、ステップS228では、再度実行すべきことを促す表示を行ってもよく、また、手動で判定開始指示処理を再度実行可能にしてもよい。
一方、情報処理装置7の側においても、処理部787は、ステップS226での検証結果が正常であるか否かを判定する(ステップS229)。検証結果が正常でない場合(ステップS229;NO)、処理部787は、そのまま判定開始指示処理を終了する。なお、この場合、通信部70を介して認証装置1にサービス開始、すなわち判定開始に失敗した旨を通知し、認証装置1の側においてエラーを表示してから、判定開始指示処理を手動で実行可能にしてもよい。
また、ステップS229での検証結果が正常である場合(ステップS229;YES)、処理部787は、金融機関99に対して処理の実行を指示する指示情報を送信し(ステップS230)、判定開始指示処理を終了する。この例では、ステップS230の処理が実行されることにより、振込の処理の実行が指示されることとなる。なお、ステップS230の処理では、指示情報の他、ログイン情報が送信され、金融機関99にてログイン情報の正当性が判定される。そして、ログイン情報の正当性が確認されると、振込処理が実行される。なお、ステップS230の処理を実行する処理部787は、サービス提供指示手段に対応する。
このように、図13Bに示す判定開始指示処理が実行されることで、特定情報の検証が行われ、サービスの提供が開始される。上述したように、特定情報は、ユーザの生体情報に基づいて生成される情報ではあるものの、生体情報そのものではなく、また、当該特定情報から生体情報を生成することが不可能である。そのため、生体情報そのものが不正に取得されることを防止でき、セキュリティを確保することができる。なお、この実施の形態では、図12に示す判定指示処理において図13Bに示す判定開始指示処理が実行される。当該判定指示処理は、認証処理が終了する度に開始されるため、判定開始指示処理も繰り返し実行されることになっているが、一旦判定処理が実行された後(一旦サービスが開始された後)は、図12に示すステップS303にてYESと判定され、当該判定開始指示処理は再度実行されないようになっている。
図12に戻り、ステップS301にて認証に失敗したと判定した場合(ステップS301;NO)、処理部187は、ステップS303と同様に、既にステップS305の処理を実行し、判定開始を指示したか否かを判定する(ステップS306)。判定開始済みではない場合(ステップS306;NO)、処理部187は、そのまま判定指示処理を終了する。一方、判定開始済みである場合(ステップS306;YES)、または、ステップS302にて処理が終了したと判定した場合(ステップS302;YES)、処理部187は、判定終了情報を情報処理装置7に送信して処理の終了を指示し(ステップS307)、判定指示処理を終了する。判定終了情報を受信した情報処理装置7の側では、例えば、図13Bに示すステップS230の処理の実行前のタイミングで当該判定終了情報を受信した場合は、そのままステップS230の処理を実行することなく、実行中の処理を終了する。一方、ステップS230の処理を実行した後のタイミングで当該判定終了情報を受信した場合は、金融機関99へ振込処理の中止を指示する中止指示情報を送信する。なお、中止指示情報の送信にあたっては、ログイン情報も合わせて送信すればよい。
具体的に、ステップS306にてYESと判定された場合、既に特定情報によりユーザの正当性の判定が開始されているにも関わらず、別人(例えば脅迫者など)に入れ替わったことなどが原因で認証に失敗したことになる。この場合、当該ステップS307の処理にて判定終了を指示するとともに振込処理を強制的に終了させることで、例えば脅迫やなりすましにより振込が行われるなどといった状況を回避することができる。また、終了時間である場合(ステップS302でYESと判定された場合)には、振込処理も終了するため、認証装置1と情報処理装置7とで同期を取りつつ、処理が終了したにも関わらず特定情報の判定を行って金融機関99に指示を行ってしまうといった誤判定を防止することができる。
次に、特定情報生成処理が実行されることで生成された特定情報を更新する更新処理について、図14を参照して説明する。この実施の形態における更新処理は、例えば、半年や1年といった予め定められた期間が経過したことにより実行される。なお、この他にも、例えば振込処理が10回実行されたなど、予め定められた回数の処理が実行されたタイミングで行われてもよい。このような、更新処理を実行するための条件となる時間経過や実行回数などが、第2の条件に対応する。更新処理を実行する特定情報生成部186および図14に示す更新処理は、更新手段および更新ステップに対応する。
また、例えば出金回数が増加したなど、ユーザの行動や習慣、癖などに変化があったタイミングで行われてもよい。なお、ユーザの行動や習慣、癖などは、認証装置1に搭載されている各種センサから取得した情報に基づいて統計情報を作成し、定期的に予め定められた基準と比較することで変化したか否かを判定すればよい。なお、図13AのステップS201の処理では、顔の特徴量を抽出する例を示したが、この他に、例えばユーザの行動や習慣、癖などの情報を含めてステップS202の処理を実行してもよい。この場合、ユーザの行動や習慣、癖が変化することによりステップS202における生体キーも変化することとなるため、このようにユーザの行動や習慣、癖が変化した場合には、更新処理を実行するのではなく、特定情報生成処理を再度実行することで特定情報を更新してもよい。
図14に示す更新処理において、特定情報生成部186は、図13AのステップS203の処理で生成したランダムIDの可変部を変更する(ステップS401)。具体的に、ステップS401の処理では、ランダムIDの可変部を+1することで図13AのステップS203の処理で生成したランダムIDの可変部を変更する。なお、この例ではランダムIDの可変部を+1する例を示したが、これは一例であり、ランダムIDの可変部が図13AのステップS203の処理で生成したランダムIDの可変部と異なるものとなれば変更方法は任意であってよい。
ステップS401の処理を実行した後、特定情報生成部186は、ランダムIDのハッシュ値を算出する(ステップS402)。ステップS402の処理では、ステップS401の処理で変更したランダムIDの可変部と、図13AのステップS203の処理で生成したランダムIDの固定部とを合わせたランダムIDのハッシュ値を算出する。
ステップS402の処理を実行した後、特定情報生成部186は、図13AのステップS208の処理で生成した共通鍵SKと、図14のステップS402で算出したハッシュ値と、に基づいてMAC値を算出する(ステップS403)。ステップS403では、図13Aに示すステップS209の処理と同様、MACアルゴリズムにより、共通鍵SKとハッシュ値に基づくMAC値を算出する。
図14に示すステップS403の処理を実行した後、特定情報生成部186は、算出したMAC値とハッシュ値に基づいて特定情報を生成する(ステップS404)。具体的に、ステップS404では、ハッシュ値に、算出したMAC値を付加し、フッターを含めて320ビットのデータを生成し、これを特定情報とする。ステップS404で生成された特定情報は、図13AのステップS204で生成した認証装置の公開鍵とともに、通信部10を介して情報処理装置7へ送信される。なお、特定情報と認証装置の公開鍵は、予め設定された暗号化方式により暗号化されて情報処理装置7へ送信されてもよい。
特定情報は、固定部と可変部を含むランダムID全体のハッシュ値に基づいて生成される。そのため、ステップS401の処理においてランダムIDの可変部が変更されることで、ステップS404の処理にて生成される特定情報も、図13AのステップS210で生成した特定情報とは異なるものとなる。
情報処理装置7の側において特定情報を受信すると、処理部787は、図13AのステップS206で生成した情報処理装置の秘密鍵と、受信した認証装置の公開鍵と、に基づいて原始共通鍵を生成する(ステップS405)。ステップS405の処理を実行した後、処理部787は、当該原始共通鍵にKDFを適用して共通鍵SKを生成する(ステップS406)。上述したように、認証装置の秘密鍵はランダムIDの固定部に基づいて生成されており、当該更新処理においてもランダムIDの固定部は変化していない。そのため、ステップS406にて生成される共通鍵SKは、図13AのステップS208Aで生成された共通鍵SKと同じものとなる。そのため、例えば、ステップS406の処理において、共通鍵SKを生成したタイミングで、生成した共通鍵SKと情報処理装置記憶部77に記憶されている更新前のランダムIDのハッシュ値とに基づくMAC値と、情報処理装置記憶部77に記憶されている更新前の特定情報のMAC値と、が一致することを検証することにより、更新処理の正当性、すなわち、今回行われた更新リクエストの正当性を検証してもよい。
ステップS406の処理を実行した後、処理部787は、受信した特定情報からハッシュ値を抽出する(ステップS407)。続いてステップS406で生成した共通鍵SKと、ステップS407で抽出したハッシュ値に基づいてMAC値を算出する(ステップS408)。
ステップS408の処理を実行した後、処理部787は、ステップS408で算出したMAC値を検証する(ステップS409)。具体的に、ステップS409では、ステップS408で算出したMAC値が、受信した特定情報に含まれるMAC値と一致するか否かを確認することで検証する。ステップS409の処理における検証結果は、通信部70を介して認証装置1へ送信される。
認証装置1の側において、特定情報生成部186は、受信した検証結果が正常でるか否かを判定し(ステップS410)、正常であれば(ステップS410;YES)、そのまま特定情報生成処理を終了する。一方、検証結果が正常でなければ(ステップS410;NO)、エラーを表示してから(ステップS411)特定情報生成処理を終了する。なお、ステップS411では、再度更新処理を実行すべきことを促す表示を行ってもよく、また、手動で更新処理を再度実行可能にしてもよい。
一方、情報処理装置7の側においても、処理部787は、ステップS409での検証結果が正常であるか否かを判定する(ステップS412)。検証結果が正常でない場合(ステップS412;NO)、処理部787は、そのまま特定情報生成処理を終了する。なお、この場合、通信部70を介して認証装置1に特定情報の更新に失敗した旨を通知し、認証装置1の側においてエラーを表示してから、再度更新処理を手動で実行可能にしてもよい。
また、ステップS409での検証結果が正常である場合(ステップS412;YES)、処理部787は、受信した認証装置の公開鍵に対応付けて情報処理装置記憶部77に記憶されている特定情報を、受信した特定情報とすることで当該特定情報を更新し(ステップS413)、更新処理を終了する。ステップS413では、図10に示す対応情報一覧771に含まれる特定情報のうち、受信した認証装置の公開鍵に対応する特定情報を、受信した特定情報に変更する。すなわち、ステップS413の処理は、図10に示す対応情報一覧771を更新する処理であるともいえる。なお、情報処理装置7の側において特定情報を受信する際、合わせてランダムIDを受信し、ステップS413の処理において特定情報を更新する際に、例えばユーザのニックネームやパスワード、メールアドレスといった情報と対応付けて情報処理装置記憶部77に記憶されているランダムIDも、更新すればよい。なお、受信するランダムIDについては、可変部が変更されたものとなっている。そのため、例えば128ビット全てを受信し、ステップS413の処理において、固定部が共通したランダムIDを特定して更新すればよい。また、例えば受信するランダムIDは、ステップS401で変更した可変部のみであってもよい。この場合、ユーザのニックネームやパスワード、メールアドレスといった情報を、当該可変部の情報と合わせて受信し、当該ユーザのニックネームやパスワード、メールアドレスといった情報と対応付けて情報処理装置記憶部77に記憶されているランダムIDを特定し、そのランダムIDを更新すればよい。
なお、図14に示す更新処理では、ステップS405およびステップS406の処理を実行することで共通鍵SKを生成する例を示しているが、受信した認証装置の公開鍵に対応する共通鍵SKを特定可能とすれば、ステップS405およびステップS406の処理を実行しなくてもよい。例えば、対応情報一覧771において認証装置の公開鍵とステップS208Aの処理で生成した共通鍵SKとを紐付けて記憶しておき、受信した認証装置の公開鍵に基づいて共通鍵SKを特定し、特定した共通鍵SKを用いてステップS408の処理を実行すればよい。
このように、ランダムIDを固定部と可変部とに分け、可変部のみを変更することで、特定情報生成処理を再度実行することなく特定情報の更新が可能であり、処理負担を軽減させることができる。また、認証装置1の側においてランダムIDの可変部のみ変更すればよく、情報処理装置7の側においては、認証装置の公開鍵といった既存の情報に基づいて特定情報を更新することができるため、処理を煩雑化させることなく更新処理を行うことができる。また、特定情報が更新された場合であっても、情報処理装置7の側では、更新前と同様に、図13Bに示すステップS222の処理を実行すれば特定情報の正当性が判定できる。すなわち、更新前と後とで共通の処理により特定情報の正当性を判定することができる。
次に、ユーザが認証装置1を紛失してしまった場合等、ユーザが認証装置1を新しい認証装置1に切り替えた場合に特定情報を再生成する再生成処理について、図15を参照して説明する。なお、新しい認証装置1に切り替える前の認証装置1において、図13Aに示す特定情報生成処理が既に実行され、特定情報が情報処理装置7に登録されているものとする。図15に示す再生成処理を実行する特定情報生成部186は、再生成手段に対応する。
図15に示す再生成処理を開始すると、特定情報生成部186は、まず、ユーザにニックネームの入力を促し、入力されたニックネームを情報処理装置7へ送信することでランダムIDを要求する(ステップS501)。なお、上述したように、ユーザのニックネームの他、例えばパスワード、メールアドレスといった情報の入力を促すなど、他の手法でランダムIDを要求してもよい。情報処理装置7の側では、当該ニックネームを受信すると、図13AのステップS205でニックネームと対応付けて登録されたランダムIDの中から、当該受信したニックネームに対応するランダムIDを特定し(ステップS502)、認証装置1へ送信する。なお、ランダムIDに合わせて、情報処理装置の公開鍵についても認証装置1へ送信される。なお、ステップS502の処理では、少なくとも80ビットの固定部を含んでいれば、128ビットのランダムID全体でなくともよい。固定部のみ受信する場合(128ビット全体でない場合)、ステップS503の処理において、可変部に任意のビットデータを割り当てればよい。
続いて認証装置1の特定情報生成部186は、情報処理装置7から受信したランダムIDの可変部を変更する(ステップS503)。具体的に、ステップS503の処理では、ランダムIDの可変部を+1することで、受信したランダムIDの可変部を変更する。なお、受信したランダムIDの可変部と異なるものとなれば変更方法は任意であってよい。また、この例では、以前生成した特定情報を使用不可能なものとするために当該ステップS503の処理を実行しているが、以前生成した特定情報をそのまま使用する場合には、当該ステップS503の処理を実行しなくてもよい。また、以前生成した特定情報を使用するか、特定情報を更新するか、をユーザに選択させ、特定情報を更新する選択が行われた場合に、当該ステップS503の処理を実行してもよい。
ステップS503の処理を実行した後、特定情報生成部186は、図11Aに示すステップS101で取得した顔写真から顔の特徴量を抽出し、抽出した特徴量から生体キーを生成する(ステップS504)。なお、ステップS504の処理では、新たにユーザの顔写真を撮影してもよく、この場合、図11Aに示すステップS102の処理と同様に、ブレているか否かを判定してブレている場合にはリトライするようにしてもよい。また、ステップS504では顔の特徴量を抽出しているが、これに限られず、ユーザの生体情報であれば、指紋、声紋、虹彩等であってもよく、また、これらの組み合わせであってもよい。また、ステップS504では、例えば、BB-KDFと呼ばれる鍵導出関数を用いて、抽出した顔の特徴量に基づき、生体キーを生成する。鍵導出関数は、予め定められた一方向関数に対応する。なお、この例では顔の特徴量に基づいて生体キーを生成する例を示したが、例えば、声紋や指紋の特徴量を抽出し、これらのいずれかにより生体キーを生成してもよい。また、顔、声紋、指紋等の複数の特徴量に基づいて生体キーを生成してもよい。ステップS504の処理で生成される生体キーは、ユーザが同一人物であれば、以前ステップS202で生成した生体キーと同じものとなる。
ステップS504の処理を実行した後、特定情報生成部186は、ステップS504で生成した生体キーと受信したランダムIDの固定部とに基づいて、認証装置の秘密鍵と公開鍵を生成する(ステップS505)。続いて特定情報生成部186は、認証装置の秘密鍵と、受信した情報処理装置の公開鍵に基づいて原始共通鍵を生成する(ステップS506)。ステップS506の処理を実行した後、特定情報生成部186は、原始共通鍵にKDFを適用して共通鍵SKを生成する(ステップS507)。ステップS507で生成される共通鍵SKは、以前ステップS208で生成した共通鍵SKと同じものとなる。
ステップS507の処理を実行した後、特定情報生成部186は、ランダムIDのハッシュ値を算出する(ステップS508)。ステップS508の処理では、ステップS503の処理で変更したランダムIDの可変部と、受信したランダムIDの固定部とを合わせたランダムIDのハッシュ値を算出する。なお、ステップS503の処理を実行しない場合には、受信したランダムIDそのもののハッシュ値を算出すればよい。
ステップS508の処理を実行した後、特定情報生成部186は、ステップS507の処理で生成した共通鍵SKと、ステップS508の処理で算出したハッシュ値と、に基づいてMAC値を算出する(ステップS509)。ステップS509では、図13Aに示すステップS209の処理と同様、MACアルゴリズムにより、共通鍵SKとハッシュ値に基づくMAC値を算出する。
図15に示すステップS509の処理を実行した後、特定情報生成部186は、算出したMAC値とハッシュ値に基づいて特定情報を生成する(ステップS510)。具体的に、ステップS510では、ハッシュ値に、算出したMAC値を付加し、フッターを含めて320ビットのデータを生成し、これを特定情報とする。ステップS510で生成された特定情報は、ステップS506で生成した認証装置の公開鍵とともに、通信部10を介して情報処理装置7へ送信される。なお、特定情報と認証装置の公開鍵は、予め設定された暗号化方式により暗号化されて情報処理装置7へ送信されてもよい。
特定情報は、固定部と可変部を含むランダムID全体のハッシュ値に基づいて生成される。そのため、ステップS503の処理においてランダムIDの可変部が変更されることで、ステップS510の処理にて生成される特定情報も、図13AのステップS210で生成した特定情報、すなわち以前生成した特定情報とは異なるものとなる。
情報処理装置7の側において特定情報を受信すると、処理部787は、図13AのステップS206で生成した情報処理装置の秘密鍵と、受信した認証装置の公開鍵と、に基づいて原始共通鍵を生成する(ステップS511)。ステップS511の処理を実行した後、処理部787は、当該原始共通鍵にKDFを適用して共通鍵SKを生成する(ステップS512)。上述したように、認証装置の秘密鍵はランダムIDの固定部に基づいて生成されており、当該再生成処理においてもランダムIDの固定部は変化していない。そのため、S512にて生成される共通鍵SKは、図13AのステップS208Aで生成された共通鍵SKと同じものとなる。そのため、例えば、ステップS512の処理において、共通鍵SKを生成したタイミングで、生成した共通鍵SKと情報処理装置記憶部77に記憶されている更新前のランダムIDのハッシュ値とに基づくMAC値と、情報処理装置記憶部77に記憶されている更新前の特定情報のMAC値と、が一致することを検証することにより、更新処理の正当性、すなわち、今回行われた更新リクエストの正当性を検証してもよい。
ステップS512の処理を実行した後、処理部787は、受信した特定情報からハッシュ値を抽出する(ステップS513)。続いてステップS512で生成した共通鍵SKと、ステップS513で抽出したハッシュ値に基づいてMAC値を算出する(ステップS514)。
ステップS514の処理を実行した後、処理部787は、ステップS514で算出したMAC値を検証する(ステップS515)。具体的に、ステップS515では、ステップS514で算出したMAC値が、受信した特定情報に含まれるMAC値と一致するか否かを確認することで検証する。ステップS515の処理における検証結果は、通信部70を介して認証装置1へ送信される。
認証装置1の側において、特定情報生成部186は、受信した検証結果が正常でるか否かを判定し(ステップS516)、正常であれば(ステップS516;YES)、そのまま特定情報生成処理を終了する。一方、検証結果が正常でなければ(ステップS516;NO)、エラーを表示してから(ステップS517)特定情報生成処理を終了する。なお、ステップS517では、再度更新処理を実行すべきことを促す表示を行ってもよく、また、手動で更新処理を再度実行可能にしてもよい。
一方、情報処理装置7の側においても、処理部787は、ステップS515での検証結果が正常であるか否かを判定する(ステップS518)。検証結果が正常でない場合(ステップS518;NO)、処理部787は、そのまま特定情報生成処理を終了する。なお、この場合、通信部70を介して認証装置1に特定情報の更新に失敗した旨を通知し、認証装置1の側においてエラーを表示してから、再度更新処理を手動で実行可能にしてもよい。
また、ステップS515での検証結果が正常である場合(ステップS518;YES)、処理部787は、受信した認証装置の公開鍵に対応付けて情報処理装置記憶部77に記憶されている特定情報を、受信した特定情報とすることで当該特定情報を更新し(ステップS519)、更新処理を終了する。ステップS519では、図10に示す対応情報一覧771に含まれる特定情報のうち、受信した認証装置の公開鍵に対応する特定情報を、受信した特定情報に変更する。すなわち、ステップS519の処理は、図10に示す対応情報一覧771を更新する処理であるともいえる。なお、情報処理装置7の側において特定情報を受信する際、合わせてランダムIDを受信し、ステップS519の処理において特定情報を更新する際に、例えばユーザのニックネームやパスワード、メールアドレスといった情報と対応付けて情報処理装置記憶部77に記憶されているランダムIDも、更新すればよい。なお、受信するランダムIDについては、可変部が変更されたものとなっている。そのため、例えば128ビット全てを受信し、ステップS519の処理において、固定部が共通したランダムIDを特定して更新すればよい。また、例えば受信するランダムIDは、ステップS503で変更した可変部のみであってもよい。この場合、ユーザのニックネームやパスワード、メールアドレスといった情報を、当該可変部の情報と合わせて受信し、当該ユーザのニックネームやパスワード、メールアドレスといった情報と対応付けて情報処理装置記憶部77に記憶されているランダムIDを特定し、そのランダムIDを更新すればよい。
なお、図14に示す更新処理では、ステップS511およびステップS512の処理を実行することで共通鍵SKを生成する例を示しているが、受信した認証装置の公開鍵に対応する共通鍵SKを特定可能とすれば、ステップS511およびステップS512の処理を実行しなくてもよい。例えば、対応情報一覧771において認証装置の公開鍵と図13AのステップS208Aの処理で生成した共通鍵SKとを紐付けて記憶しておき、受信した認証装置の公開鍵に基づいて共通鍵SKを特定し、特定した共通鍵SKを用いてステップS512の処理を実行すればよい。
このように、ランダムIDを情報処理装置7の側に登録しておくことで、ユーザが認証装置1を新たなものに切り替えた場合であっても、煩雑な処理を行うことなく特定情報を再生成することができる。また、ユーザの生体情報そのものを情報処理装置7の側に登録することなく、特定情報の再生成が可能となり、セキュリティを担保することができる。また、認証装置1の側において共通鍵SKを生成すれば、情報処理装置7の側では既存の情報に基づいて処理が可能であるため、再度特定情報生成処理を実行する場合と比較して処理負担を軽減し、好適に特定情報を再生成することができる。
以上説明したように、認証装置1では、バックグラウンドでのユーザの認証が行われ、認証に成功した場合に、ユーザが正当であることを特定するための特定情報を生成し、情報処理装置7に送信する。特定情報は、ユーザの生体情報に基づいて生成される情報ではあるものの、生体情報そのものではなく、また、当該特定情報から生体情報を生成することが不可能である。そのため、生体情報そのものが不正に取得されることを防止でき、セキュリティを確保することができる。また、ランダムIDはランダムに生成されるため、同一の生体情報(顔の特徴量)から複数の特定情報が生成でき、セキュリティを確保しつつ、ユーザの作業負担を軽減させることができ、ひいては安定してサービスを受けることができる。
また、特定情報の検証結果が正常である場合に、情報処理装置7側に特定情報が登録されるため、一旦登録された以降は、特定情報によってユーザの正当性の確認が可能となる。したがって、セキュリティを確保しつつ、ユーザの作業負担を軽減させることができ、ひいては安定してサービスを受けることができる。さらに、一旦生成した特定情報を煩雑な処理を行うことなく更新することができ、また、認証装置1側で生成されたランダムIDの一部を変更することで更新でき、情報処理装置7側において変更する処理を行わなくとも特定情報の更新が可能であるため、更新の処理負担を軽減しつつ安定的にサービスを提供することができる。また、ランダムIDを情報処理装置7の側に登録しておくことで、ユーザが認証装置1を新たなものに切り替えた場合であっても、煩雑な処理を行うことなく特定情報を再生成することができことから、再度特定情報生成処理を実行する場合と比較して処理負担を軽減し、好適に特定情報を再生成することができる。
(変形例)
この発明は、上記実施の形態に限定されず、様々な変形及び応用が可能である。例えば、認証装置1や情報処理装置7は、上記実施の形態で示した全ての技術的特徴を備えるものでなくてもよく、従来技術における少なくとも1つの課題を解決できるように、上記実施の形態で説明した一部の構成を備えたものであってもよい。また、下記の変形例それぞれについて、少なくとも一部を組み合わせてもよい。
上記実施の形態では、情報処置装置7がパーソナルコンピュータやスマートフォンやタブレット端末である例を示したが、これは一例である。情報処理装置7は、これらに限られず、例えば図16に示す認証システム100Aのように、ドアに設置された端末であってもよい。また、この他にも、例えば金庫に設置された端末や、金融機関やコンビニエンスストアに設置されているATM(Automatic Teller Machine)に設置された端末であってもよい。図16に示すように、情報処理装置7がドアに設置されている場合は、認証装置1により認証されたユーザの入室を許可するため、特定情報を用いて対象のユーザの正当性を判定し、正当性が確認できた場合にドアを解錠すればよい。すなわち、図13BのステップS230の処理にてドアを開錠する処理が行われればよい。また、情報処理装置7がATMに設置された場合、特定情報を用いて対象のユーザの正当性を判定し、正当性が確認できた場合に金融手続を可能にすればよい。
具体的に、上記実施の形態では、金融サービスのアプリケーションが実行された場合に認証処理が開始されたが、図16に示すように、情報処理装置7がドアに設置されている場合は、ドアを開錠するためのアプリケーションが実行された場合に認証処理を開始し、当該アプリケーションが起動されている間(起動されてから終了させるまでの期間)、認証処理がバックグラウンドで繰り返し実行されればよい。
また、判定指示処理についても同様の期間、繰り返し実行されればよい。上述したように、特定情報生成処理については、対象ユーザに対して、提供されるサービス毎(または情報処理装置7毎)に1回実行されるため、ドアを開錠するサービスに対応して1つの特定情報(金融サービスとは異なる特定情報)が生成されることとなる。なお、図16に示すドアの開錠には、例えばコンサートなどのイベント会場への入場ゲートの開錠が含まれ、図16に示す例では、1つの情報処理装置7が1つのドアの開錠を行う例を示しているが、1つの情報処理装置が複数のドア(複数の入場ゲートを含む)の開錠を行うようにしてもよい。例えば、特定情報によりユーザの正当性が確認された場合、情報処理装置7から認証装置1に対しドア(入場ゲートを含む)の解錠キーを送信するようにすればよい。
なお、認証処理については、常時バックグラウンドにて繰り返し実行されていてもよい。そして、ユーザが所望するサービスに対応するアプリケーションが起動されたタイミングで判定指示処理が開始されるようにしてもよい。
その他にも、コンサートやイベントなどといったチケット所有者のみ入場可能な施設や、学歴やワクチン接種などの証明書など、ユーザ個人の正当性を確認してサービスを提供するような状況において当該認証システム100を適用可能である。いずれの状況下においても、生体情報それ自体が送受信されることはなく、かつ同一の生体情報(顔の特徴量)から複数の特定情報が生成でき、セキュリティを確保しつつ、ユーザの作業負担を軽減させることができ、ひいては安定してサービスを受けることができる。
また、上記実施の形態における更新処理は、半年や1年といった予め定められた期間が経過したことにより実行される例を示したが、例えば3回更新処理を行って特定情報を3回更新したら、特定情報生成処理を実行して新たに特定情報を生成するといったように、予め設定された回数の更新が行われたら、新規に特定情報を生成するようにしてもよい。これによれば、時間経過とともに生体情報が変化したことで、より現状のユーザに近い情報を用いた特定情報を定期的に生成できる。そのため、例えば認証装置1を紛失したことで再生成処理を実行する場合に、従来と同じ生体キーの生成精度を高めることができる。
また、上記実施の形態では、図13Aに示すステップS218の処理において情報処理装置7に特定情報を登録する例(対応情報一覧771として登録する例)を示したが、これは一例である。対応情報一覧771には、認証装置の公開鍵が登録されていれば、特定情報は登録されていなくてもよい。情報処理装置7の側では、図13Bに示すステップS222の処理において図13Aに示すステップS207A、S208A、S212~S214の処理を実行すれば、受信した特定情報と登録されている特定情報との比較をしなくとも正当性を判定できるためである。また、認証装置の公開鍵を登録することで、サービスの対象者となる認証装置1を特定可能となるためである。なお、対応情報一覧771に登録する情報は、認証装置の公開鍵に限られず、サービスの対象者となる認証装置1を特定可能な情報であれば任意の情報であってよい。
なお、認証装置1や情報処理装置7は、専用の装置によらず、通常のコンピュータを用いて実現可能である。例えば、コンピュータに上述のいずれかを実行するためのプログラムを格納した記録媒体から該プログラムをコンピュータにインストールすることにより、上述の処理を実行する認証装置1や情報処理装置7を構成してもよい。また、複数のコンピュータが協働して動作することによって、1つの認証装置1や情報処理装置7を構成してもよい。
また、上述の機能を、OS(Operating System)とアプリケーションとの分担、またはOSとアプリケーションとの協同により実現する場合等には、OS以外の部分のみを媒体に格納してもよい。
また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板(BBS、Bulletin Board System)に当該プログラムを掲示し、ネットワークを介して当該プログラムを配信してもよい。そして、これらのプログラムを起動し、オペレーティングシステムの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。