[1.認証システムの全体構成]
本開示に係る認証システムの実施形態の例を説明する。図1は、認証システムの全体構成の一例を示す図である。図1に示すように、認証システムSは、サーバ10、ユーザ端末20、及び認証端末30を含み、これらは、インターネットなどのネットワークNに接続可能である。なお、図1では、サーバ10、ユーザ端末20、及び認証端末30の各々を1台ずつ示しているが、これらは複数台あってもよい。
サーバ10は、サーバコンピュータである。サーバ10は、制御部11、記憶部12、及び通信部13を含む。制御部11は、少なくとも1つのプロセッサを含む。制御部11は、記憶部12に記憶されたプログラム及びデータに従って処理を実行する。記憶部12は、主記憶部及び補助記憶部を含む。例えば、主記憶部は、RAMなどの揮発性メモリである。また例えば、補助記憶部は、ROM、EEPROM、フラッシュメモリ、又はハードディスクなどの不揮発性メモリである。通信部13は、有線通信又は無線通信用の通信インタフェースである。
ユーザ端末20は、ユーザが操作するコンピュータである。例えば、ユーザ端末20は、携帯電話機(スマートフォンを含む)、携帯情報端末(タブレット型コンピュータ及びウェアラブル端末を含む)、又は、パーソナルコンピュータ等である。本実施形態では、ユーザ端末20は、制御部21、記憶部22、通信部23、操作部24、表示部25、及び撮影部26を含む。制御部21、記憶部22、及び通信部23の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。
操作部24は、入力デバイスである。例えば、操作部24は、タッチパネル、マウス、キーボード、又はボタンを含む。例えば、表示部25は、液晶ディスプレイ又は有機ELディスプレイである。撮影部26は、少なくとも1台のカメラを含む。例えば、撮影部26は、CCDイメージセンサ又はCMOSイメージセンサなどの撮像素子を含む。撮影部26は、当該撮像素子が撮影した画像をデジタルデータとして記録する。画像は、静止画であってもよいし、所定のフレームレートで撮影された動画であってもよい。
認証端末30は、認証に使用されるコンピュータである。例えば、認証端末30は、携帯電話機、携帯情報端末、又は、パーソナルコンピュータ等である。本実施形態では、認証端末30は、制御部31、記憶部32、通信部33、操作部34、表示部35、及び撮影部36を含む。制御部31、記憶部32、通信部33、操作部34、表示部35、及び撮影部36の物理的構成は、それぞれ制御部11、記憶部12、通信部13、操作部24、表示部25、及び撮影部26と同様であってよい。
なお、記憶部12,22,32に記憶されるものとして説明するプログラム及びデータは、ネットワークNを介して供給されるようにしてもよい。また、サーバ10、ユーザ端末20、及び認証端末30の各々のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)と、外部機器とデータの入出力をするための入出力部(例えば、USBポート)と、の少なくとも一方が含まれてもよい。例えば、情報記憶媒体に記憶されたプログラム及びデータの少なくとも一方が読取部及び入出力部の少なくとも一方を介して供給されてもよい。
[2.認証システムの概要]
認証システムSは、任意の場面におけるユーザの正当性を確認するために、認証を実行する。本実施形態では、生体認証を例に挙げるが、認証システムSは、種々のタイプの認証を実行可能である。例えば、認証システムSは、2次元コード認証、パスコード認証、パスワード認証、電子スタンプ認証、暗証番号認証、又は合言葉認証を実行してもよい。また例えば、認証システムSは、複数のタイプの認証を組み合わせて、多段階認証を実行してもよい。
生体認証は、人間の身体的特徴又は行動的特徴を利用する認証方法である。例えば、身体的特徴を利用する生体認証には、顔認証、指紋認証、DNA認証、掌形認証、網膜認証、虹彩認証、静脈認証、又は音声認証がある。また例えば、行動的特徴を利用する生体認証には、筆跡認証、キーストローク認証、リップムーブメント認証、まばたき認証、又は歩行認証がある。
本実施形態では、ユーザがセキュリティゲートを通過する場面を例に挙げて、認証システムSの処理を説明する。また、生体認証の一例として、顔認証を説明する。なお、認証システムSは、後述する変形例のように、種々の場面に適用可能である。認証システムSが適用される場面は、本実施形態の例に限られない。
図2は、認証システムSが利用される場面の一例を示す図である。図2に示すように、セキュリティゲートSGは、認証端末30が接続されている。セキュリティゲートSGのドアは、ロック機構によりロックされている。ユーザの認証が成功すると、ロックが解除される。セキュリティゲートSGは、勤務先の会社又は公共施設等の任意の施設に配置される。施設に入場する資格を有する者だけがセキュリティゲートSGを通過できる。
ユーザは、認証システムSが提供する認証サービスを利用するために、ユーザ端末20を操作して所定の利用登録を行う。ユーザが利用登録を完了させると、ユーザを一意に識別するユーザIDが発行される。ユーザが入力した氏名などの情報は、サーバ10に登録される。ユーザは、利用登録時又はその後の任意のタイミングで、サーバ10に対し、自身の顔写真をアップロードする。
顔写真は、予め記憶部22に記憶されていてもよいし、その場で撮影部26により撮影された顔写真がアップロードされてもよい。また、複数の顔写真がアップロードされてもよい。サーバ10は、アップロードされた顔写真に基づいて、ユーザの顔の特徴量を計算する。顔の特徴量は、サーバ10に登録されて認証で利用される。
本実施形態では、顔の特徴量だけではなく、ユーザに割り当てられたIDも認証で利用される。このIDは、ユーザがセキュリティゲートSGに近づいた場合に、無線通信を利用して、ユーザ端末20から認証端末30に送信される。このIDは、ユーザIDであってもよいが、本実施形態では、ユーザIDとは異なる情報とする。以降、このIDを、無線通信IDと記載する。
無線通信IDは、更新されずに半永久的に同じものが使用されてもよいが、本実施形態では、無線通信IDは、ユーザ端末20にインストールされたアプリケーションが起動するたびに更新される。また、本実施形態では、ユーザIDが、ユーザ同士の重複が許可されないのに対し、無線通信IDは、ユーザ同士の重複が許可されるものとする。顔写真のアップロードと、無線通信IDの割り当てと、が完了すると、ユーザは、セキュリティゲートSGを通過できるようになる。
図3は、認証システムSにおける認証の流れの一例を示す図である。図3に示すように、認証端末30の周囲には、通信可能領域A1及び認証可能領域A2が設定される。図3では、通信可能領域A1及び認証可能領域A2の各々を円形で示すが、これらは、任意の形状及びサイズであってよく、例えば、半円、楕円、又は多角形などであってもよい。
通信可能領域A1は、認証端末30の通信部33の通信範囲を示す領域である。通信可能領域A1は、利用される通信規格や通信環境に応じて異なる。本実施形態では、BLE(Bluetooth Low Energy)が利用される場合を説明するが、他の任意の通信規格を利用可能である。例えば、Wi-Fi(登録商標)又はBLEではないBluetooth(登録商標)が利用されてもよい。
例えば、通信可能領域A1は、3メートル~5メートル程度である。ユーザ端末20が通信可能領域A1内に移動すると、ユーザ端末20と認証端末30との間で直接的な通信が可能となる。ユーザ端末20と認証端末30との間でペアリングが実行されてもよいが、本実施形態では、ペアリングは実行されないものとする。
認証可能領域A2は、認証の実行が許可される領域である。認証可能領域A2は、通信可能領域A1よりも小さい。別の言い方をすれば、認証可能領域A2は、通信可能領域A1に含まれており、認証可能領域A2の端部は、通信可能領域A1の端部よりも認証端末30に近い。例えば、認証可能領域A2は、1メートル~2メートル程度である。ユーザが通信可能領域A1に入ると、ユーザ端末20と認証端末30とは通信可能になるが、ユーザが認証可能領域A2に入るまでは、認証は実行されない。
例えば、ユーザが、ポケット又は鞄にユーザ端末20を入れたまま、認証端末30に近づいたとする。ユーザが通信可能領域A1の中に入ると、ユーザ端末20と認証端末30との間で、直接的な通信が可能になる。本実施形態では、ユーザ端末20は、アドバタイジングパケットを利用して、認証端末30に対し、記憶部22に記憶された無線通信IDを送信する。なお、ユーザIDが記憶部22に記憶されていたとしても、ユーザIDは、認証端末30に対して送信されない。
認証端末30は、ユーザ端末20から受信した無線通信IDを記憶部32に記録する。本実施形態では、認証端末30は、ユーザの位置を特定するために、無線通信信号の強度(RSSI:Received Signal Strength Indication)をスキャンしてユーザ端末20との距離を計測する。認証端末30は、この距離により、ユーザが通信可能領域A1又は認証可能領域A2の何れにいるかを特定できる。認証端末30は、所定距離以内にいるユーザ端末20から受信した無線通信IDだけをフィルタリングする。
ユーザが、認証端末30に更に近づいて、認証可能領域A2の中に入ると、認証の実行が許可される。認証端末30は、撮影部36を利用してユーザの顔を撮影する。認証端末30は、サーバ10に対し、自身の認証端末ID、認証可能領域A2の中にいるユーザ端末20から受信した無線通信ID、及び撮影部36により撮影された画像を送信する。
サーバ10は、認証端末30から認証端末ID、無線通信ID、及び画像を受信すると、この画像に撮影された顔の特徴量を計算する。サーバ10は、予め登録された顔の特徴量の中から、認証端末30から受信した無線通信IDが関連付けられた顔の特徴量を取得する。サーバ10は、当該取得された顔の特徴量と、上記計算された顔の特徴量と、が類似するか否かを判定することによって、認証を実行する。
認証が成功すると、サーバ10から認証端末30に対し、認証が成功したことを示す通知が送信され、セキュリティゲートSGのロックが解除される。以上のように、本実施形態の認証は、サーバ10に登録された顔の特徴量及び無線通信ID、ユーザ端末20に記録された無線通信ID、及び認証端末30で撮影された画像に基づいて実行される。
先述したように、無線通信IDは、ユーザ同士の重複が許可されるので、互いに顔が似たユーザ同士で無線通信IDが重複すると、ユーザを区別できない可能性がある。このため、サーバ10は、互いに顔が似たユーザ同士で無線通信IDが重複しないようにする必要がある。しかしながら、従来技術で説明したように、従来の手法を採用すると、サーバ10の処理負荷が高くなる可能性がある。
そこで、サーバ10は、あるユーザに無線通信IDを割り当てる場合に、他のユーザが使用している無線通信IDの全部ではなく、その一部を候補として選択する。更に、サーバ10は、1つずつ候補を選択するのではなく、一度に複数の候補を選択して、顔が似た他のユーザが使用していない候補が存在するか否かを判定する。これにより、サーバ10の処理負荷を軽減するようにしている。以降、この技術の詳細を説明する。
[3.認証システムにおいて実現される機能]
図4は、認証システムSで実現される機能の一例を示す機能ブロック図である。ここでは、サーバ10、ユーザ端末20、及び認証端末30の各々で実現される機能を説明する。
[3-1.サーバにおいて実現される機能]
図4に示すように、サーバ10では、データ記憶部100、認証部101、受信部102、取得部103、選択部104、割当部105、及び送信部106が実現される。
[データ記憶部]
データ記憶部100は、記憶部12を主として実現される。データ記憶部100は、認証に必要なデータを記憶する。ここでは、データ記憶部100が記憶するデータの一例として、ユーザデータベースDB1と、IDデータベースDB2と、について説明する。
図5は、ユーザデータベースDB1のデータ格納例を示す図である。図5に示すように、ユーザデータベースDB1は、複数のユーザの各々に関する各種情報が格納されたデータベースである。例えば、ユーザデータベースDB1には、ユーザID、ユーザの氏名、パスワード、アップロードされた顔写真のデータ、顔写真から計算された顔の特徴量、及び無線通信IDが格納される。
本実施形態では、パスワードは、認証端末30を利用した認証では使用されず、ユーザデータベースDB1に登録された情報を変更する場合などの他の目的で使用される。ユーザは、ユーザIDとパスワードをユーザ端末20に入力してサーバ10にログインすると、自身の情報を変更できる。
顔の特徴量は、顔の特徴を数値化した情報である。例えば、顔の特徴量は、顔のパーツの相対位置、大きさ、又は形状などの特徴が示される。ユーザデータベースDB1に顔写真だけを登録しておき、認証時にその場で顔の特徴量が計算されてもよい。複数の顔写真が登録される場合には、顔写真ごとに、顔の特徴量が計算される。
なお、顔認証自体は、種々の手法を適用可能である。例えば、顔認証として、主成分分析、線形判別分析、弾性マッチング、又は隠れマルコフモデルといった手法を利用可能である。特徴量は、これらの手法に応じた計算式で計算されるようにすればよい。本実施形態では、顔の特徴量は、多次元のベクトルで表現される場合を説明するが、顔の特徴量は、配列又は単一の数値といった他の形式で表現されてもよい。
ユーザデータベースDB1に格納される無線通信IDは、ユーザに割り当てられた無線通信IDである。別の言い方をすれば、ユーザが使用中の無線通信IDがユーザデータベースDB1に格納される。この無線通信IDは、後述するデータ記憶部200に記憶された無線通信IDと同じである。図5の例では、無線通信IDが4桁の数値で表現される場合を説明するが、無線通信IDは、任意の形式で表現可能である。例えば、無線通信IDは、1桁~3桁の何れかの数値、5桁以上の数値、文字、文字と数値の組み合わせ、又はベクトルで表現されてもよい。
例えば、ユーザが利用登録をすると、ユーザデータベースDB1に新たなレコードが作成される。新たなレコードには、ユーザIDに関連付けて、氏名、顔写真のデータ、及び顔写真から計算された顔の特徴量が格納される。このレコードには、利用登録時又は顔写真のアップロード時に割り当てられた無線通信IDも格納される。本実施形態では、ユーザ端末20のアプリケーションが起動するたびに、ユーザデータベースDB1に格納された無線通信IDが更新される。
図6は、IDデータベースDB2のデータ格納例を示す図である。図6に示すように、IDデータベースDB2は、複数の無線通信IDの各々を管理するためのデータベースである。例えば、IDデータベースDB2には、複数の無線通信IDの各々を使用しているユーザ数が格納される。
IDデータベースDB2には、少なくとも1人のユーザが使用している無線通信IDのユーザ数が格納される。IDデータベースDB2には、誰も使用していない無線通信IDのユーザ数(即ち、0人)が格納されてもよい。ユーザ数は、顔の特徴量が関連付けられている数、ユーザデータベースDB1に無線通信IDが格納されているレコードの数、又は無線通信IDが記録されたユーザ端末20の台数ということもできる。
例えば、新たな無線通信IDが発行されたり、ユーザに割り当てられた無線通信IDが更新されたりすると、IDデータベースDB2の内容も更新される。ある無線通信IDがユーザに割り当てられると、その無線通信IDのユーザ数が増加する。あるユーザの無線通信IDが更新されて、その無線通信IDがそのユーザに割り当てられなくなると、その無線通信IDのユーザ数が減少する。サーバ10は、ユーザデータベースDB1に格納された無線通信IDごとにレコード数をカウントすることによって、当該無線通信IDのユーザ数を取得し、IDデータベースDB2を更新する。
[認証部]
認証部101は、制御部11を主として実現される。認証部101は、予め登録された顔の特徴量と、当該顔の特徴量に関連付けられた無線通信IDと、に基づいて、認証を実行する。登録とは、データ記憶部100にデータが記録されることである。本実施形態では、ユーザデータベースDB1に、顔の特徴量と、無線通信IDと、が関連付けられて登録されている。なお、関連付けられるとは、ある情報から他の情報を検索可能な状態である。データベースの同じレコードに複数の情報が格納されていることは、これら複数の情報が互いに関連付けられていることに相当する。
本実施形態では、顔の特徴量は、第1情報の一例であり、無線通信IDは、第2情報の一例である。また、顔の特徴量は、生体情報の一例であり、無線通信IDは、生体情報に関連付けられる識別情報の一例である。このため、本実施形態において、顔の特徴量と記載した箇所は第1情報又は生体情報と読み替えることができ、無線通信IDと記載した箇所は第2情報又は識別情報と読み替えることができる。なお、ユーザがアップロードした顔写真から計算された顔の特徴量ではなく、顔写真そのものが第1情報又は生体情報に相当してもよい。
第1情報及び第2情報の各々は、認証情報である。認証情報とは、認証で用いられる情報である。第1情報及び第2情報の各々は、認証時の正解又はインデックスとなる情報ということもできる。第1情報及び第2情報の各々は、利用する認証方法に応じた情報であればよい。例えば、第1情報は、顔の特徴量以外の生体情報、ユーザID、パスワード、パスコード、二次元コード、電子スタンプのマルチタッチパターン、合言葉、生年月日、電話番号、又はメールアドレスであってもよい。第2情報は、第1情報とは異なる認証情報であればよく、上記例示した認証情報のうち、第1情報ではない種類の認証情報であってもよい。
本実施形態では、ユーザに割り当てられた無線通信IDは、ユーザのユーザ端末20に記録されている。図3を参照して説明したように、認証部101は、ユーザ端末20と無線通信可能な認証端末30を利用して取得されたユーザの顔の特徴量、ユーザ端末20から認証端末30に対して無線通信で送信された無線通信ID、予め登録されたユーザの顔の特徴量、及び当該顔の特徴量に関連付けられた無線通信IDに基づいて、認証を実行する。
認証端末30を利用して取得されたユーザの顔の特徴量は、認証時のクエリとなる顔の特徴量である。この顔の特徴量は、認証端末30を何らかの形で利用すればよく、本実施形態では、顔の特徴量の計算がサーバ10で実行される場合を説明するが、この計算が認証端末30で実行されてもよい。顔の特徴量以外の認証情報を第1情報として利用する場合、ユーザに第1情報を入力させる必要があれば、認証端末30の操作部34を利用して第1情報が取得されてもよい。
他にも例えば、第1情報を含む二次元コードを利用した認証とするのであれば、認証端末30の撮影部36又はコードリーダを利用して、第1情報が取得されてもよい。また例えば、ユーザ端末20に第1情報を記録しておき、第2情報だけではなく第1情報も無線通信を利用して送信されるのであれば、認証端末30の通信部33を利用して第1情報が取得されてもよい。本実施形態では、第1情報は、認証端末30の何らかのハードウェアを利用して取得されるようにすればよい。この点は、第2情報も同様である。
本実施形態では、ユーザ端末20は、所定の無線通信規格におけるアドバタイジングパケットを利用して、認証端末30に対し、無線通信IDを送信する。アドバタイジングパケット自体は、公知の通信規格で定められたフォーマットのものを使用すればよい。認証部101は、アドバタイジングパケットを利用して送信された無線通信IDに基づいて、認証を実行する。即ち、認証部101は、ユーザ端末20から認証端末30に対して送信されたアドバタイジングパケットに含まれる無線通信IDに基づいて、認証を実行する。この無線通信IDは、認証時のクエリとなる無線通信IDである。
[受信部]
受信部102は、制御部11を主として実現される。受信部102は、ユーザ端末20又は認証端末30から任意のデータを受信する。例えば、受信部102は、ユーザのユーザ端末20に記録された所定のアプリケーションが起動するたびに、ユーザ端末20から、新たな無線通信IDの割当要求を受信する。このアプリケーションは、認証に利用されるアプリケーションである。アプリケーションは、予めユーザ端末20にインストールされている。ユーザに割り当てられた無線通信IDは、アプリケーションの一部としてユーザ端末20に記録されていてもよい。
割当要求は、新たな無線通信IDの割り当てを要求するための通知である。割当要求は、所定形式のデータが送信されることによって行われる。割当要求は、アプリケーションが起動したことを示す通知、又は、無線通信IDの更新を要求するための通知ということもできる。受信部102は、ユーザ端末20から、アプリケーションが起動した場合に送信された割当要求を受信する。
[取得部]
取得部103は、制御部11を主として実現される。取得部103は、登録済みの複数の無線通信IDの各々に関連付けられた顔の特徴量の数を取得する。この数は、無線通信IDの割り当て数ということができる。
登録済みの無線通信IDとは、少なくとも1つの顔の特徴量が関連付けられたことがある無線通信IDである。別の言い方をすれば、登録済みの無線通信IDは、少なくとも1人のユーザに割り当てられたことがある無線通信ID、少なくとも1人のユーザが使用したことがある無線通信ID、又は少なくとも1台のユーザ端末20に記録されたことがある無線通信IDである。例えば、登録済みの無線通信IDは、ユーザデータベースDB1及びIDデータベースDB2の少なくとも一方に登録されたことがある無線通信IDである。
なお、何れかのユーザに割り当てられた無線通信IDであったとしても、アプリケーションを起動した場合の更新によって、どのユーザにも割り当てられなくなった無線通信IDも存在する。このような無線通信IDについてもIDデータベースDB2にレコードが残ることがあるので、登録済みの無線通信IDに相当してもよい。本実施形態では、ユーザデータベースDB1及びIDデータベースDB2の少なくとも一方に格納された無線通信IDが登録済みの無線通信IDに相当する。
本実施形態のように、ユーザ1人当たり1つの無線通信IDが割り当てられる場合、取得部103が取得する数は、無線通信IDを使用しているユーザ数である。なお、ユーザ1人当たり複数の無線通信IDが割り当てられてもよい。本実施形態では、無線通信IDとユーザ数との関係がIDデータベースDB2に格納されているので、取得部103は、IDデータベースDB2を参照することによって、ユーザ数を取得する。
[選択部]
選択部104は、制御部11を主として実現される。選択部104は、ユーザに無線通信IDを割り当てる場合に、登録済みの複数の無線通信IDのうちの一部である複数の候補を選択する。
ユーザに無線通信IDを割り当てる場合とは、候補を選択する処理を実行するための条件が満たされることである。本実施形態では、受信部102が割当要求を受信することが、ユーザに無線通信IDを割り当てる場合に相当する。このため、選択部104は、割当要求を受信した場合に、複数の候補を選択する。なお、上記条件は、任意の条件であってよく、例えば、所定の日時が訪れることであってもよいし、ユーザ端末20がサーバ10にアクセスすることであってもよい。他にも例えば、同じ無線通信IDを利用して所定回数の認証が実行されることが条件に相当してもよい。
候補とは、ユーザに割り当てられる可能性がある無線通信IDである。別の言い方をすれば、候補は、ユーザに割り当てられる無線通信IDの母集団である。本実施形態では、候補が登録済みの無線通信IDである場合を説明するが、新規の無線通信IDが候補として含まれていてもよい。即ち、少なくとも1人のユーザに割り当てられたことのある無線通信IDだけではなく、誰にも割り当てられたことのない無線通信IDが候補として含まれていてもよい。
選択部104は、登録済みの全ての無線通信IDのうちの一部であり、かつ、複数の無線通信IDを、複数の候補として選択する。例えば、登録済みの無線通信IDをn個(nは2以上の整数)とすると、選択部104は、k個(kは2以上n未満の整数)無線通信IDを、複数の候補として選択する。本実施形態では、kの数値が10であり、選択部104が10個の候補を選択する場合を説明するが、選択される候補の数は、10個に限られない。選択部104は、任意の数の候補を選択可能であり、例えば、2個~9個の何れかの個数の候補を選択してもよいし、11個以上の候補を選択してもよい。選択部104が選択する候補の数(kの数値)は、固定値であってもよいし、可変値であってもよい。例えば、この数は、IDデータベースDB2に格納されたユーザ数に応じて変化してもよい。
例えば、選択部104は、登録済みの複数の無線通信IDの中から、ユーザ数が少ない順に複数の無線通信IDを選択することによって、複数の候補を選択する。本実施形態では、選択部104が、IDデータベースDB2に格納されたユーザ数の昇順にk個の無線通信IDを選択する場合を説明するが、後述する変形例のように、選択部104は、ユーザ数の合計が所定数に達するまで、可能な限りの候補を選択してもよい。また、選択部104は、ユーザ数を考慮せずに、登録済みの複数の無線通信IDの中から、ランダムにk個の無線通信IDを選択してもよい。
本実施形態では、選択部104は、ユーザ数が少ない順に選択された複数の候補のうちの一部である複数の候補を、ランダムに選択する。例えば、選択部104は、上記のように選択されたk個の候補のうち、m個(mは2以上k未満の整数)の候補を、ランダムに選択する。即ち、ひとまず選択されたk個の候補の中から、後述する割当部105の判定対象になる候補がm個に絞られる。ランダムに選択する方法自体は、公知の種々の手法を利用可能である。例えば、選択部104は、乱数を利用して、k個の候補の中からm個の候補を選択してもよい。
なお、選択部104は、数が少ない順に選択された複数の候補の中に、ユーザの顔の特徴量と同じ又は類似する顔の特徴量が関連付けられていない候補が存在しない場合には、次に数が少ない順に、少なくとも1つの無線通信IDを選択することによって、少なくとも1つの次の候補を選択する。即ち、選択部104は、最初に選択したk個の候補の中に、ユーザに割り当てるべき候補が存在しなかった場合に、次の候補を選択する。次の候補は、1つ以上であればよく、複数個選択されなければならないわけではない。選択部104は、まだ選択されていない無線通信IDの中から、昇順に少なくとも1つの無線通信IDを、次の候補として選択すればよい。
[割当部]
割当部105は、制御部11を主として実現される。割当部105は、選択部104により選択された複数の候補のうち、ユーザの顔の特徴量と同じ又は類似する顔の特徴量が関連付けられていない候補を、ユーザの無線通信IDとして割り当てる。即ち、割当部105は、複数の候補のうち、ユーザと顔が似ている他のユーザが使用していない候補を、ユーザの無線通信IDとして割り当てる。割当部105は、互いに顔が似たユーザ同士で無線通信IDが重複しないように、複数の候補のうちの何れかを、ユーザの無線通信IDとして割り当てる。
ユーザに無線通信IDを割り当てるとは、ユーザが使用する無線通信IDとして決定することである。即ち、ユーザデータベースDB1のユーザのレコードに無線通信IDを格納することは、そのユーザにその無線通信IDを割り当てることに相当する。本実施形態では、ユーザ端末20に無線通信IDが記録されるので、ユーザ端末20に記録する無線通信IDとして決定することが、ユーザに無線通信IDを割り当てることに相当する。
本実施形態では、認証は、顔の特徴量の類似性に基づいて実行されるので、割当部105は、ユーザの顔の特徴量と類似する顔の特徴量が関連付けられていない候補が複数存在する場合に、当該複数の候補の各々に関連付けられた顔の特徴量と、ユーザの顔の特徴量と、に基づいて、当該複数の候補のうちの何れかを、ユーザの無線通信IDとして割り当てる。なお、顔の特徴量が偶然同じになる可能性もあるので、ユーザの顔の特徴量と同じ顔の特徴量が関連付けられている候補が存在した場合には、その候補はユーザに割り当てられない。
割当部105は、ユーザデータベースDB1を参照し、選択部104により選択された候補ごとに、当該候補に関連付けられた顔の特徴量を取得する。割当部105は、ユーザの顔の特徴量と、各候補に関連付けられた顔の特徴量と、が類似するか否かを判定する。割当部105は、ユーザの顔の特徴量と類似する顔の特徴量が1つでも関連付けられている候補については、ユーザに割り当てる無線通信IDとして決定しない。割当部105は、ユーザの顔の特徴量と類似する顔の特徴量が1つも関連付けられていない候補を、ユーザに割り当てる無線通信IDとして決定する。
ユーザに割り当てる無線通信IDとして決定されうる候補が複数存在した場合には、割当部105は、何れかの候補をランダムに選択してもよいが、本実施形態では、割当部105は、ユーザの顔の特徴量と類似する顔の特徴量が関連付けられていない候補ごとに、当該候補に関連付けられた顔の特徴量のうち、ユーザの顔の特徴量と最も類似する顔の特徴量を特定する。割当部105は、当該特定された顔の特徴量のうち、ユーザの顔の特徴量と最も類似しない顔の特徴量が関連付けられた候補を、ユーザの無線通信IDとして取得する。
図7は、ユーザに割り当てる無線通信IDとして決定されうる候補が複数存在した場合の一例を示す図である。なお、図7に示す座標軸は、顔の特徴量が示すベクトル空間の座標軸である。図7の例では、アプリケーションを起動したユーザAに割り当てる無線通信IDとして決定されうる候補として、3つの候補「3145」、「1751」、「7534」が存在した場合が示されている。
例えば、割当部105は、候補「3145」が割り当てられたユーザのうち、ユーザAと最も顔が似ているユーザXとの距離D1を取得する。この距離は、顔の特徴量同士の距離である。また例えば、割当部105は、候補「1751」が割り当てられたユーザのうち、ユーザAと最も顔が似ているユーザYとの距離D2を取得する。また例えば、割当部105は、候補「7534」が割り当てられたユーザのうち、ユーザAと最も顔が似ているユーザZとの距離D3を取得する。
割当部105は、3つの候補のうち、距離D1~D3が最も長い候補「7534」を、ユーザに割り当てる無線通信IDとして決定する。3つの候補は、何れもユーザAに割り当てる無線通信IDとして適した候補であるが、候補「7534」がユーザAに割り当てられることによって、ユーザAが他のユーザとして認証されることをより確実に防止できる。
本実施形態では、割当部105は、選択部104によりランダムに選択された複数の候補(m個の候補)に、ユーザの顔の特徴量と同じ又は類似する顔の特徴量が関連付けられているか否かを判定する。ユーザの顔の特徴量と同じ又は類似する顔の特徴量が関連付けられていない候補が見つかるまで、選択部104によるランダムな選択と、割当部105による判定と、が繰り返される。
例えば、割当部105は、選択部104により選択された複数の候補を含む1のクエリに基づいて、複数の他のユーザの各々の顔の特徴量と無線通信IDが格納されたユーザデータベースDB1を検索し、ユーザデータベースDB1の検索結果に基づいて、ユーザに無線通信IDを割り当てる。割当部105は、選択部104により選択された複数の候補にそれぞれ対応する複数のクエリに基づいてユーザデータベースDB1を検索するのではなく、複数の候補をOR条件として1のクエリに基づいて、ユーザデータベースDB1を検索する。本実施形態では、k個の候補の中のm個がランダムに選択されるので、1のクエリは、m個の候補がOR条件で並べられたものとなる。
本実施形態では、ユーザがアプリケーションを起動した場合に、新たな無線通信IDの割当要求が送信されるので、割当部105は、複数の候補の中から、ユーザに新たな無線通信IDを割り当てる。また、選択部104により選択されたk個の候補の中に適した候補が存在しなければ、割当部105は、新たに選択された候補の中に、適した候補が存在するか否かを判定すればよい。割当部105は、登録済みの全ての無線通信IDを判定しても適した候補が見つからなかった場合には、新たに作成した無線通信IDをユーザに割り当てればよい。
なお、パスワード認証のように、認証情報の類似性ではなく、認証情報の一致によって成否が判定される認証情報であれば、割当部105は、ユーザの第1情報(パスワードなど)と同じ第1情報が関連付けられていない候補(本実施形態では、無線通信ID)を、ユーザに割り当てればよい。この場合、ユーザの第1情報(パスワードなど)と類似する第1情報が関連付けられていたとしても一致していなければ、その候補はユーザに割り当てられることがある。
[送信部]
送信部106は、制御部11を主として実現される。送信部106は、ユーザ端末20又は認証端末30に対し、任意のデータを送信する。例えば、送信部106は、ユーザ端末20に対し、割当部105により割り当てられた無線通信IDを送信する。また例えば、送信部106は、認証端末30に対し、認証部101の認証結果を送信する。
[3-2.ユーザ端末において実現される機能]
図4に示すように、ユーザ端末20では、データ記憶部200、送信部201、及び受信部202が実現される。
[データ記憶部]
データ記憶部200は、記憶部22を主として実現される。データ記憶部200は、登録申請及び認証に必要なデータを記憶する。例えば、データ記憶部200は、ユーザの顔写真のデータを記憶する。また例えば、データ記憶部200は、ユーザの無線通信IDを記憶する。
[送信部]
送信部201は、制御部21を主として実現される。送信部201は、サーバ10又は認証端末30に対し、任意のデータを送信する。例えば、送信部201は、サーバ10に対し、割当要求を送信する。また例えば、送信部201は、認証端末30に対し、無線通信を利用して、データ記憶部200に記憶された無線通信IDを送信する。本実施形態では、送信部201は、無線通信IDが格納されたアドバタイジングパケットを送信する。
[受信部]
受信部202は、制御部21を主として実現される。受信部202は、サーバ10又は認証端末30から、任意のデータを受信する。例えば、受信部202は、サーバ10から、ユーザに割り当てられた無線通信IDを受信する。この無線通信IDは、データ記憶部200に記録される。
[3-3.認証端末において実現される機能]
図4に示すように、認証端末30では、データ記憶部300、送信部301、受信部302、及び処理実行部303が実現される。なお、本実施形態では、認証端末30が認証システムSに含まれる場合を説明するが、認証端末30は、認証システムSと通信可能な外部装置であってもよい。
[データ記憶部]
データ記憶部300は、記憶部32を主として実現される。データ記憶部300は、認証に必要なデータを記憶する。例えば、データ記憶部300は、サーバ10のIPアドレス等の情報を記憶する。また例えば、データ記憶部300は、ユーザ端末20から受信した無線通信IDを記憶する。また例えば、データ記憶部300は、ユーザ端末20から無線通信IDごとに、そのユーザ端末20との距離を記憶してもよい。また例えば、データ記憶部300は、認証端末30を一意に識別する認証端末IDを記憶する。
[送信部]
送信部301は、制御部31を主として実現される。送信部301は、サーバ10又はユーザ端末20に対し、任意のデータを送信する。例えば、送信部301は、サーバ10に対し、認証端末IDと、ユーザ端末20から受信した無線通信IDと、を送信する。
[受信部]
受信部302は、制御部31を主として実現される。受信部302は、サーバ10又はユーザ端末20から、任意のデータを受信する。例えば、受信部302は、ユーザ端末20から、無線通信を利用して、無線通信IDを受信する。本実施形態では、受信部302は、無線通信IDが格納されたアドバタイジングパケットを受信する。また例えば、受信部302は、サーバ10から認証結果を受信する。
[処理実行部]
処理実行部303は、制御部31を主として実現される。処理実行部303は、認証が成功した場合に、所定の処理を実行する。所定の処理は、先述した通りであり、認証が成功した場合に実行が許可される処理である。本実施形態では、認証が成功した場合に、セキュリティゲートSGのロックが解除されるので、処理実行部303は、認証が成功したことを示す通知を受信した場合には、ロック機構のモータを回転等させることによってロックを解除し、認証が成功したことを示す通知を受信しなかった場合には、ロックを解除しない。なお、所定の処理は、本実施形態の例に限られず、任意の処理であってよい。
[4.本実施形態において実行される処理]
次に、認証システムSにおいて実行される処理について説明する。ここでは、ユーザに無線通信IDを割り当てるための割当処理と、ユーザの認証を実行するための認証処理と、について説明する。下記に説明する処理は、図4に示す機能ブロックにより実行される処理の一例である。
[4-1.割当処理]
図8及び図9は、割当処理の一例を示すフロー図である。図8及び図9に示す割当処理は、制御部11,21が、それぞれ記憶部12,22に記憶されたプログラムに従って動作することによって実行される。なお、割当処理が実行されるにあたり、ユーザは利用登録を済ませているものとする。
図8に示すように、ユーザ端末20は、ユーザの操作に基づいて、記憶部22に記憶されたアプリケーションを起動し(S100)、サーバ10に対し、新たな無線通信IDを割り当てるための割当要求を送信する(S101)。なお、本実施形態では、ユーザIDが記憶部22に記憶されており、割当要求には、ユーザIDが含まれるものとする。
サーバ10は、ユーザ端末20から割当要求を受信すると(S102)、IDデータベースDB2に基づいて、登録済みの全ての無線通信IDのうち、ユーザ数が少ない順に10個の候補を選択する(S103)。なお、登録済みの無線通信IDは、10個よりも多いものとする。例えば、数十個~数千個又はそれ以上の無線通信IDが登録済みであるものとする。
サーバ10は、選択済みの全ての候補をチェックしたか否かを判定する(S104)。S104においては、サーバ10は、S103又は後述するS111において選択された全ての候補に対し、S105以降の処理が実行されたか否かを判定する。
選択済みの全ての候補をチェックしたと判定されない場合(S104;N)、即ち、まだチェックしていない候補が1つでも残っている場合、サーバ10は、まだチェックしていない候補の中から、ランダムに3個の候補を選択する(S105)。S105においては、サーバ10は、まだチェックしていない候補の中から、S106以降の処理の対象となる候補を絞り込む。なお、まだチェックしていない候補が3個以下の場合には、サーバ10は、まだチェックしていない候補を全て選択すればよい。
サーバ10は、S105で選択した3個の候補に基づいて、ユーザデータベースDB1を検索する(S106)。S106においては、サーバ10は、S105で選択した全ての候補を含む1つのクエリを作成する。サーバ10は、ユーザデータベースDB1に対し、当該作成されたクエリを送って検索を実行する。即ち、サーバ10は、S105で選択した3個の候補にそれぞれ対応する3個のクエリで検索するのではなく、3個の候補を1つにまとめたクエリで検索する。このクエリは、3個の候補がOR条件で結合されたものとなる。サーバ10は、S105で選択した候補の各々に関連付けられた顔の特徴量を、検索結果として取得する。
サーバ10は、S106で検索した顔の特徴量の中に、顔が似た他のユーザが存在するか否か(即ち、ユーザの顔の特徴量と同じ又は類似する顔の特徴量が存在するか否か)を判定する(S107)。S107においては、サーバ10は、S106で検索したレコードの中に、顔が似た他のユーザのレコードが存在するか否かを判定する。サーバ10は、S106で検索した顔の特徴量ごとに、当該顔の特徴量と、アプリケーションを起動させたユーザの顔の特徴量(ユーザデータベースDB1において、割当要求に含まれるユーザIDに関連付けられた顔の特徴量)と、の距離を計算する。サーバ10は、閾値未満の距離が少なくとも1つ存在するか否かを判定する。閾値未満の距離が1つも存在しないことは、顔が似た他のユーザが存在しないことに相当する。
S107において、顔が似た他のユーザが存在しない候補が1つ存在すると判定された場合(S107;1つ)、サーバ10は、その候補を、ユーザの無線通信IDとして割り当てる(S108)。S108においては、サーバ10は、ユーザデータベースDB1のうち、ユーザのレコードに無線通信IDを格納し、IDデータベースDB2を更新する。
S107において、顔が似た他のユーザが存在しない候補が複数存在すると判定された場合(S107;複数)、サーバ10は、複数の候補のうちの何れかを、ユーザの無線通信IDとして割り当てる(S109)。S109においては、サーバ10は、ユーザデータベースDB1のうち、ユーザのレコードに無線通信IDを格納し、IDデータベースDB2を更新する。例えば、図7を参照して説明したように、サーバ10は、顔が似た他のユーザが存在しない複数の候補のうち、ユーザの顔の特徴量との距離が最も遠い候補を割り当ててもよい。
S107において、顔が似たユーザが存在しない候補が存在しないと判定された場合(S107;N)、S104の処理に戻る。まだチェックしていない候補が存在する場合には、S104の判定が否定され、まだチェックしていない候補について、S105以降の処理が実行される。
S104において、全ての候補をチェックしたと判定された場合(S104;Y)、図9に移り、サーバ10は、まだ選択可能な無線通信IDが存在するか否かを判定する(S110)。選択可能な無線通信IDが存在すると判定された場合(S110;Y)、サーバ10は、IDデータベースDB2に基づいて、次にユーザ数が少ない10個の候補を選択し(S111)、S104の処理に移行する。この場合、次にユーザ数が少ない10個の候補がチェックの対象となる。
S110において、選択可能な無線通信IDが存在すると判定されない場合(S110;N)、サーバ10は、新たに無線通信IDを発行し、ユーザの無線通信IDとして割り当てる(S112)。S112においては、サーバ10は、無線通信IDを新規作成することになる。サーバ10は、ユーザデータベースDB1のうち、ユーザのレコードに無線通信IDを格納し、IDデータベースDB2を更新する。
サーバ10は、ユーザ端末20に対し、S108、S109、又はS112でユーザに割り当てられた無線通信IDを送信する(S113)。ユーザ端末20は、新たな無線通信IDを受信すると(S114)、記憶部22に記憶された無線通信IDを上書きし(S115)、本処理は終了する。古い無線通信IDは、ユーザ端末20から削除される。
[4-2.認証処理]
図10は、認証処理の一例を示すフロー図である。図10に示す認証処理は、制御部11,21,31が、それぞれ記憶部12,22,32に記憶されたプログラムに従って動作することによって実行される。なお、認証処理が実行されるにあたり、ユーザは利用登録を済ませているものとする。割当処理が完了している場合、ユーザ端末20に最新の無線通信IDが記録されているものとする。
図10に示すように、ユーザ端末20は、無線通信を利用して、記憶部22に記憶された無線通信IDを送信する(S200)。S200においては、ユーザ端末20は、アドバタイジングパケットに無線通信IDを格納し、周囲に対して送信する。通信部23の電源は予めオンになっているものとする。通信部23の電源がオフの場合、ユーザの操作に応じて電源がオンになってもよいし、GPSの位置情報等を利用して認証端末30への接近が検知されて電源が自動的にオンになってもよい。
認証端末30は、無線通信を利用して、ユーザ端末20から送信された無線通信IDを受信する(S201)。S201においては、認証端末30は、受信した無線通信IDを記憶部32に記録する。無線通信IDは、任意のタイミングで記憶部32から消去される。このタイミングは、認証が成功した場合、一定時間が経過した場合、又は無線通信で無線通信IDを受信しなくなった場合などである。
認証端末30は、撮影部36の検出信号に基づいて、画像を取得する(S202)。S202においては、認証端末30は、ユーザ端末20との距離が閾値未満になり、ユーザが認証可能領域A2に入ったことを検出すると、画像を取得する。認証端末30は、サーバ10に対し、無線通信IDを含む認証要求を送信する(S203)。認証要求は、所定形式のデータが送信されることによって行われ、例えば、認証端末ID、無線通信ID、及び画像が含まれる。
サーバ10は、認証端末30から認証要求を受信すると(S204)、認証要求に含まれる画像に基づいて、顔の特徴量を計算する(S205)。サーバ10は、ユーザデータベースDB1に基づいて、認証要求に含まれる無線通信IDが関連付けられた顔の特徴量を取得する(S206)。
サーバ10は、S205で計算した特徴量と、S206で取得した特徴量と、に基づいて、認証を行う(S207)。S207においては、サーバ10は、S205で計算した特徴量と、S206で取得した特徴量と、の距離を計算する。S206で取得した特徴量の中に、この距離が閾値未満のものが存在すれば、認証は成功となる。この距離が閾値未満のものが存在しなければ、認証は失敗となる。
認証が失敗した場合(S207;失敗)、サーバ10は、認証端末30に対し、エラーメッセージを送信し(S208)、本処理は終了する。この場合、認証端末30の表示部35に、エラーメッセージが表示され、認証が成功しなかったことがユーザに通知される。
一方、認証が成功した場合(S207;成功)、サーバ10は、認証端末30に対し、認証が成功したことを示す成功通知を送信する(S209)。成功通知は、所定形式のデータが送信されることにより行われる。認証端末30においては、成功通知を受信すると、セキュリティゲートSGのロックを解除し(S210)、本処理は終了する。
本実施形態の認証システムSによれば、ユーザに無線通信IDを割り当てる場合に、登録済みの複数の無線通信IDのうちの一部を、複数の候補として選択し、ユーザの顔の特徴量と同じ又は類似する顔の特徴量が関連付けられていない候補を、ユーザの無線通信IDとして割り当てることによって、サーバ10の処理負荷を軽減できる。例えば、ユーザデータベースDB1の全ての無線通信IDに関連付けられた他のユーザの顔の特徴量と、ユーザの顔の特徴量と、を比較しなくて済むので、比較対象の顔の特徴量を減らすことによって、サーバ10の処理負荷を軽減できる。また例えば、候補を1つずつ選択してユーザデータベースDB1にクエリを1つずつ送る必要がなくなるので、データベース検索のためのサーバ10の処理負荷を軽減できる。また、顔が似たユーザ同士を確実に区別し、誤認証又はなりすましを防止して認証システムSのセキュリティを高めることができる。
また、認証システムSは、ユーザの顔の特徴量と類似する顔の特徴量が関連付けられていない候補が複数存在する場合に、当該複数の候補の各々に関連付けられた顔の特徴量と、ユーザの顔の特徴量と、に基づいて、当該複数の候補のうちの何れかを、ユーザの無線通信IDとして割り当てることによって、無線通信IDの枯渇を防止できる。例えば、複数の無線通信IDがユーザに割り当てられたとすると、認証システムS全体として使用可能な無線通信IDが少なくなる可能性があるが、1人のユーザに対し、適切な無線通信IDを1つ割り当てることで、無線通信IDの枯渇を防止できる。
また、認証システムSは、ユーザの顔の特徴量と類似する顔の特徴量が関連付けられていない候補ごとに、当該候補に関連付けられた顔の特徴量のうち、ユーザの顔の特徴量と最も類似する顔の特徴量を特定し、当該特定された顔の特徴量のうち、ユーザの顔の特徴量と最も類似しない顔の特徴量が関連付けられた候補を、ユーザの無線通信IDとして取得することによって、顔が似たユーザ同士をより確実に区別し、誤認証又はなりすましをより確実に防止して、認証システムSのセキュリティを効果的に高めることができる。
また、認証システムSは、登録済みの複数の無線通信IDの各々に関連付けられた顔の特徴量の数を取得し、登録済みの複数の無線通信IDの中から、数が少ない順に複数の無線通信IDを選択することによって、複数の候補を選択することによって、ユーザの顔の特徴量と比較する比較対象の数を減らし、より効果的にサーバ10の処理負荷を軽減できる。
また、認証システムSは、選択部104は、数が少ない順に選択された複数の候補のうちの一部を、ランダムに選択し、ユーザの顔の特徴量と同じ又は類似する顔の特徴量が関連付けられていない候補が見つかるまで、選択部104によるランダムな選択と、割当部105による判定と、が繰り返されることによって、サーバ10の処理負荷を軽減しつつ、ユーザに適した無線通信IDを割り当てることができる。また、ランダムな選択とすることで、k個の候補の中からm個を選択する処理を簡易化し、サーバ10の処理負荷を効果的に軽減できる。
また、認証システムSは、数が少ない順に選択された複数の候補の中に、ユーザの顔の特徴量と同じ又は類似する顔の特徴量が関連付けられていない候補が存在しない場合には、次に数が少ない順に、少なくとも1つの無線通信IDを選択することによって、少なくとも1つの次の候補を選択することによって、サーバ10の処理負荷を軽減しつつ、ユーザに適した無線通信IDを割り当てることができる。
また、認証システムSは、複数の候補を含む1のクエリに基づいて、複数の他のユーザの各々の顔の特徴量と無線通信IDが格納されたユーザデータベースDB1を検索し、ユーザデータベースDB1の検索結果に基づいて、ユーザに無線通信IDを割り当てることによって、データベース検索のためのサーバ10の処理負荷を軽減できる。
また、認証システムSは、ユーザのユーザ端末20に記録された所定のアプリケーションが起動するたびに、ユーザ端末から、新たな無線通信IDの割当要求を受信し、割当要求を受信した場合に、複数の候補を選択し、複数の候補の中から、ユーザに新たな無線通信IDを割り当てることによって、無線通信IDの更新頻度を高めることができる。その結果、ユーザが古い無線通信IDをいつまでも使用することを防止し、認証システムSのセキュリティを高めることができる。
また、認証システムSは、ユーザに割り当てられた無線通信IDは、ユーザのユーザ端末20に記録され、認証に必要な情報を、認証端末30を利用して取得することによって、ユーザの利便性を高めることができる。例えば、図3のように、ユーザがユーザ端末20を取り出したり、認証端末30に何らかの情報を入力したりしなくても、認証を実行することができる。更に、図3のように、ユーザ端末20から認証端末30に対してユーザIDが送信されなくても認証を実行可能なので、ユーザIDが漏洩するリスクを低減できる。
また、認証システムSは、ユーザ端末20は、所定の無線通信規格におけるアドバタイジングパケットを利用して、認証端末30に対し、無線通信IDを送信することによって、ペアリングをせずに認証が可能になる。その結果、ユーザの利便性を効果的に高めることができる。
また、認証システムSは、第1情報は、生体情報であり、第2情報は、生体情報に関連付けられる識別情報であることによって、生体認証が実行される場合のサーバ10の処理負荷を軽減できる。
[5.変形例]
なお、本開示は、以上に説明した実施の形態に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
(1)例えば、実施形態では、ユーザ数が少ない順にk個の候補が選択された後に、ランダムにm個の候補が選択される場合を説明したが、候補の選択方法は、実施形態の例に限られない。選択部104は、ユーザ数の合計が所定数に達するまで、候補をランダムに選択してもよい。この所定数は、任意の数であってよく、固定値であってもよいし、可変値であってもよい。例えば、選択部104は、ユーザ数が少ない順にk個の候補を選択した後に、IDデータベースDB2に格納されたユーザ数の合計が所定数に達するまで、可能な限りの候補をランダムに選択してもよい。本変形例では、mの値は可変となる。
選択部104は、k個の候補の中の少なくとも1つをランダムに選択するたびに、選択された候補のユーザ数を加算して、選択済みの候補のユーザ数の合計を取得する。選択部104は、ユーザ数の合計が所定数に達したか否かを判定する。選択部104は、ユーザ数の合計が所定数に達したと判定されない場合、まだ選択されていない候補の中から、少なくとも1つの候補をランダムに選択する。以降、ユーザ数の合計が所定数に達するまで、候補の選択が繰り返される。選択部104は、ユーザ数の合計が所定数に達したと判定された場合に、候補の選択を終了する。候補が選択された後の処理は、実施形態で説明した通りである。
変形例(1)によれば、ユーザ数の合計が所定数に達するまで、候補をランダムに選択することによって、サーバ10の処理負荷を増やさない程度に多くの候補を選択し、ユーザに最適な無線通信IDが見つかりやすくなる。例えば、図7を参照して説明したように、ユーザの顔の特徴量との距離がより長い無線通信IDが見つかりやすくなる。その結果、誤認証又はなりすましをより確実に防止して、認証システムSのセキュリティを効果的に高めることができる。
(2)また例えば、実施形態では、ユーザ数が少ない順にk個の無線通信IDが候補として選択される場合を説明したが、選択部104は、ユーザ数の合計が所定数に達するまで、ユーザ数が少ない順に複数の無線通信IDを選択することによって、複数の候補を選択してもよい。この所定数は、任意の数であってよく、固定値であってもよいし、可変値であってもよい。即ち、選択部104による最初の候補の選択においても、変形例(1)と同様にしてユーザ数が少ない順に可能な限りの候補を選択してもよい。本変形例では、kの値は可変となる。mの値は、変形例(1)と同様に可変であってもよいし、実施形態と同様に固定であってもよい。
選択部104は、IDデータベースDB2を参照し、ユーザ数が少ない順に少なくとも1つの候補を選択する。選択部104は、候補を選択するたびに、選択された候補のユーザ数を加算して、選択済みの候補のユーザ数の合計を取得する。選択部104は、ユーザ数の合計が所定数に達したか否かを判定する。選択部104は、ユーザ数の合計が所定数に達したと判定されない場合、まだ選択されていない候補の中から、ユーザ数が少ない順に少なくとも1つの候補を選択する。以降、ユーザ数の合計が所定数に達するまで、候補の選択が繰り返される。選択部104は、ユーザ数の合計が所定数に達したと判定された場合に、候補の選択を終了する。候補が選択された後の処理は、実施形態で説明した通りである。
変形例(2)によれば、ユーザ数の合計が所定数に達するまで、数が少ない順に複数の無線通信IDを、複数の候補として選択することによって、サーバ10の処理負荷を増やさない程度に多くの候補を選択し、ユーザに最適な無線通信IDが見つかりやすくなる。例えば、図7を参照して説明したように、ユーザの顔の特徴量との距離がより長い無線通信IDが見つかりやすくなる。その結果、誤認証又はなりすましをより確実に防止して、認証システムSのセキュリティを効果的に高めることができる。
(3)また例えば、実施形態では、アプリケーションが起動するたびに無線通信IDを更新してセキュリティを高める場合を説明したが、ユーザによっては、アプリケーションをなかなか起動しない可能性がある。そこで、無線通信IDに有効期限を設けておき、有効期限が切れた場合又は有効期限が切れそうな場合に、ユーザに通知をしてもよい。
図11は、変形例(3)の機能ブロック図である。図11に示すように、変形例(3)では、実施形態で説明した機能に加えて、設定部107が実現される。設定部107は、制御部11を主として実現される。設定部107は、ユーザ端末20に記録された無線通信IDに有効期限を設定する。有効期限は、ユーザデータベースDB1に格納されるものとする。有効期限は、任意の長さであってよく、例えば、数時間~数週間であってもよい。有効期限は、ユーザごとに長さが異なってもよい。設定部107は、割当部105により無線通信IDが割り当てられると、その時点から所定時間後の時点を有効期限として設定する。
送信部106は、有効期限が経過した場合又は有効期限が近づいた場合に、ユーザに対し、アプリケーションの起動要求を送信する。有効期限が経過した場合とは、現在の日時が有効期限よりも後になった場合である。有効期限が近づいた場合とは、現在の日時から有効期限までの長さが閾値(例えば、数時間~数日程度)未満になった場合である。現在の日時は、リアルタイムクロック又はGPS信号などを利用して取得されるようにすればよい。
起動要求は、アプリケーションの起動を要求するための通知である。起動要求は、所定形式のデータが送信されることによって行われる。ユーザ端末20は、起動要求を受信すると、所定の通知を表示部25に表示させる。通知は、任意の方法を利用可能であり、例えば、プッシュ通知、バナー通知、バッジ通知、又は音声通知であってもよい。起動要求には、アプリケーションの起動を促す旨のメッセージが含まれる。なお、起動要求は、電子メール、SNS、又はメッセージアプリなどの他の媒体が利用されてもよい。
変形例(3)によれば、ユーザ端末20に記録された無線通信IDに有効期限を設定し、有効期限が経過した場合又は有効期限が近づいた場合に、ユーザに対し、アプリケーションの起動要求を送信することによって、無線通信IDの更新頻度を高めることができる。その結果、認証システムSのセキュリティを高めることができる。
(4)また例えば、上記説明した変形例を組み合わせてもよい。
また例えば、第1情報の一例として顔の特徴量を説明し、第2情報として無線通信IDを説明したが、第1情報と第2情報の組み合わせは、実施形態の例に限られない。第1情報と第2情報は、任意の認証情報の組み合わせを適用可能である。例えば、第1情報が顔の特徴量であり、第2情報がパスコードであり、これらの2つを利用した認証が実行されてもよい。また例えば、第1情報が指紋パターンであり、第2情報が無線通信IDであり、これらの2つを利用した認証が実行されてもよい。また例えば、第1情報が二次元コードであり、第2情報が暗証番号であり、これらの2つを利用した認証が実行されてもよい。
また例えば、実施形態では、ユーザがセキュリティゲートSGを通過する場面を例に挙げたが、認証システムSは、ユーザが商品を購入したりサービスを利用したりする場面にも適用可能である。この場合、例えば、認証端末30は、自動販売機、券売機、POS端末、又は店舗における支払端末である。ユーザは、認証が成功すると、決済処理が実行され、商品を購入したり、サービスを利用したりすることができる。この場合、ユーザ端末20にインストールされているアプリケーションは、電子決済用のアプリケーションであってもよい。このアプリケーションは、二次元コード決済などの種々の電子決済が可能である。
本変形例では、ユーザデータベースDB1に決済情報を登録しておき、処理実行部は、あるユーザの認証が成功した場合に、そのユーザの決済情報に基づいて決済処理を実行してもよい。決済処理の際に参照される決済情報は、認証が成功したユーザに関連付けられた決済情報である。
決済情報は、決済をするために必要な情報であり、例えば、クレジットカード情報、電子バリュー(例えば、電子マネー又はポイント)のアカウント情報、仮想通貨のアカウント情報、銀行口座情報、又はデビットカード情報などである。決済情報は、ユーザ登録時などに登録され、例えば、ユーザデータベースDB1に、ユーザIDに関連付けて決済情報が格納されているものとする。なお、決済情報は、ユーザデータベースDB1とは異なるデータベースに格納されていてもよい。
サーバ10は、決済情報に応じた決済処理を実行すればよく、例えば、クレジットカード情報に基づく与信処理、電子バリューの残高を減少させる処理、仮想通貨の残高を減少させる処理、銀行口座から引き落としや振り込みをする処理、又はデビットカード情報が示す口座の残高を減少させる処理などを実行する。サーバ10は、認証が失敗した場合には決済処理を実行せず、認証が成功した場合に決済処理を実行する。
決済処理が実行された場合、認証端末30の表示部35又は店舗の端末などに、その旨が表示され、ユーザは商品を受け取ったり、サービスを利用したりする。例えば、認証端末30が店舗などに設置されたデジタルサイネージ装置である場合、サーバ10から認証成功通知を受信すると、認証が成功したことを示すメッセージが表示部35に表示される。店舗のスタッフは、当該メッセージを確認すると、ユーザに商品を渡したりサービスを提供したりする。なお、メッセージは、認証端末30ではなく、店舗のスタッフが操作する端末などの他のコンピュータに転送されて表示されてもよい。また例えば、認証端末30が自動販売機であれば、サーバ10から認証成功通知を受信すると、認証端末30は、ユーザが指定した商品を排出したり、コーヒーやインスタント食品などの商品を調理したりする。
以上説明した変形例によれば、電子決済などのサービスにおけるサーバ10の処理負荷を軽減できる。また、顔が互いに似たユーザ同士で誤認証又はなりすましが発生することを防止し、セキュリティを十分に高めることができる。
また例えば、認証端末30が存在せず、ユーザ端末20からサーバ10に対し、無線通信IDが直接的に送信されてもよい。この場合、ユーザ端末20は、認証が行われる場合に、撮影部26を利用してユーザの顔を撮影する。ユーザ端末20は、サーバ10に対し、自身に登録された無線通信IDと、撮影部26により撮影された画像と、を送信する。サーバ10がこれらを受信した後の処理の流れは、実施形態で説明した通りである。認証が成功すると、サーバ10は、ユーザ端末20に対し、成功通知を送信する。ユーザ端末20は、成功通知を受信すると、所定の処理を実行する。この処理は、任意の処理であってよく、例えば、ユーザ端末20へのログイン処理や決済処理などである。
また例えば、主な機能がサーバ10で実現される場合を説明したが、各機能は、複数のコンピュータで分担されてもよい。例えば、サーバ10、ユーザ端末20、及び認証端末30の各々で機能が分担されてもよい。例えば、認証処理がサーバ10で実行されるのではなく、ユーザ端末20又は認証端末30で実行されてもよい。また例えば、認証システムSが複数のサーバコンピュータを含む場合には、これら複数のサーバコンピュータで機能が分担されてもよい。また例えば、データ記憶部100で記憶されるものとして説明したデータは、サーバ10以外のコンピュータによって記憶されてもよい。