(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023142437
(43)【公開日】2023-10-05
(54)【発明の名称】認証システムおよび認証方法
(51)【国際特許分類】
G06F 21/32 20130101AFI20230928BHJP
【FI】
G06F21/32
【審査請求】有
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022049354
(22)【出願日】2022-03-25
(11)【特許番号】
(45)【特許公報発行日】2023-06-08
(71)【出願人】
【識別番号】511044663
【氏名又は名称】株式会社NTTデータSBC
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】鵜川 裕文
(72)【発明者】
【氏名】西脇 玲央
(57)【要約】
【課題】特定のサーバに依存せずに生体特徴量を使用した認証を即座に完了する。
【解決手段】認証システム10は、ユーザーを認証するための複数の装置100と、ユーザーの生体特徴量を取得するための複数のセンサー110とを備える。複数の装置100の各々と、複数のセンサー110の各々とは通信可能に対応付けられている。複数の装置100の各々は、ユーザーごとの生体特徴量およびID(Identifier)を関連付けた認証情報と、他の装置100と通信するためのルーティング情報とを格納する記憶部と、認証情報と、自装置100に対応付けられたセンサー110から取得した生体特徴量とを比較してユーザーを認証する認証部と、記憶部に新しいユーザーの認証情報が登録されたことに基づいて、ルーティング情報を参照して、新しいユーザーの認証情報を1つ以上の他の装置100に出力する出力部とを含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ユーザーを認証するための複数の装置と、
前記ユーザーの生体特徴量を取得するための複数のセンサーとを備え、
前記複数の装置の各々と、前記複数のセンサーの各々とは通信可能に対応付けられており、
前記複数の装置の各々は、
ユーザーごとの前記生体特徴量およびID(Identifier)を関連付けた認証情報と、他の装置と通信するためのルーティング情報とを格納する記憶部と、
前記認証情報と、自装置に対応付けられた前記センサーから取得した生体特徴量とを比較して前記ユーザーを認証する認証部と、
前記記憶部に新しいユーザーの前記認証情報が登録されたことに基づいて、前記ルーティング情報を参照して、前記新しいユーザーの認証情報を1つ以上の他の装置に出力する出力部とを含む、認証システム。
【請求項2】
前記複数の装置の各々は、前記ルーティング情報を生成および参照するためのルーティング部をさらに含み、
前記ルーティング情報は、1つ以上の親装置のアドレスと、1つ以上の子装置のアドレスとを含み、
前記ルーティング部は、
乱数または自装置の位置情報に基づいて、装置情報を生成し、
マルチキャストにより、前記1つ以上の他の装置の各々と前記装置情報を交換し、
自装置の前記装置情報と前記1つ以上の他の装置の各々の前記装置情報との比較結果に基づいて、前記1つ以上の他の装置の各々のアドレスを、前記1つ以上の親装置のアドレスまたは前記1つ以上の子装置のアドレスのいずれかとして前記ルーティング情報に登録し、
前記新しいユーザーの認証情報を前記1つ以上の他の装置に出力することは、
前記1つ以上の子装置の中で自装置のドレスに最も近い前記装置情報を有する1台に前記新しいユーザーの認証情報を出力すること、または、
前記1つ以上の親装置の中で自装置の前記装置情報に最も近い前記装置情報を有する1台に前記新しいユーザーの認証情報を出力すること、および、前記1つ以上の子装置の中で自装置の前記装置情報に最も近い前記装置情報を有する1台に前記新しいユーザーの認証情報を出力することを含む、請求項1に記載の認証システム。
【請求項3】
前記ルーティング部は、
定期的に、前記1つ以上の親装置の各々および前記1つ以上の子装置の各々と生存確認の通信を行い、
前記生存確認の通信に失敗した装置のアドレスを前記ルーティング情報から削除する、請求項2に記載の認証システム。
【請求項4】
前記複数の装置の各々は、自装置に対応付けられた前記センサーから得られた前記生体特徴量に基づいて、ログを生成して前記記憶部に格納するためのログ生成部をさらに備え、
前記出力部は、前記ログ生成部により、または、前記他の装置のいずれかからログを受信したことにより、自装置の前記ログが更新されたことに基づいて、前記1つ以上の親装置の中で自装置の前記装置情報に最も近い前記装置情報を有する1台、および、前記1つ以上の子装置の中で自装置の前記装置情報に最も近い前記装置情報を有する1台に、更新された自装置の前記ログを送信する、請求項2に記載の認証システム。
【請求項5】
前記認証部が前記記憶部に登録されていない生体特徴量を検出したことに基づいて、前記記憶部に登録されていない生体特徴量を未登録者の情報として前記記憶部に登録する未登録者情報登録部をさらに備え、
前記ログ生成部は、前記未登録者の行動のログを前記記憶部に格納し、
更新された自装置の前記ログを送信することは、前記未登録者の行動のログを送信することを含む、請求項4に記載の認証システム。
【請求項6】
前記認証情報は、前記ユーザーの各々ごとの許可行為情報を含み、
前記認証システムは、他の機器と連携して前記ユーザーの各々にサービスを提供するためのサービス提供部をさらに備え、
前記サービス提供部は、前記他の機器から得られた前記ユーザーの行動を示す情報と、前記認証情報に含まれる前記許可行為情報とを比較し、認証済みの前記ユーザーにサービスを提供するか否かを判定する、請求項1~5のいずれか1項に記載の認証システム。
【請求項7】
認証システムによって実行されるユーザーの認証方法であって、
前記認証システムは、
ユーザーを認証するための複数の装置と、
前記ユーザーの生体特徴量を取得するための複数のセンサーとを備え、
前記複数の装置の各々と、前記複数のセンサーの各々とは通信可能に対応付けられており、
前記認証方法は、前記複数の装置の少なくとも1台において、
ユーザーごとの前記生体特徴量およびIDを関連付けた認証情報と、他の装置と通信するためのルーティング情報とを記憶するステップと、
前記認証情報と、自装置に対応付けられた前記センサーから取得した生体特徴量とを比較して前記ユーザーを認証するステップと、
新しいユーザーの前記認証情報の登録処理が実行されたことに基づいて、前記ルーティング情報を参照して、前記新しいユーザーの認証情報を1つ以上の他の装置に出力するステップとを含む、認証方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、認証システムに関し、より特定的には、認証情報を管理する中央サーバを有しない認証システムに関する。
【背景技術】
【0002】
近年、顔認証、指紋認証等の生体特徴量を使用した認証技術が広く利用されている。これらの認証技術は、例えば、入退室管理、デバイスへのログイン、決済等様々な分野で使用されている。従来の認証技術では、ユーザーを認証する認証端末は、生体特徴量を認証サーバに送信し、認証結果を受け取る必要があった。そのため、従来の認証技術は、認証端末および認証サーバ間の通信距離または通信量等の影響でユーザーの認証に時間がかかることがあり、また、認証サーバがダウンするとシステム全体が機能不全に陥る可能性があった。そのため、より高速に認証を行うこと、および、冗長性が高い認証技術が必要とされている。
【0003】
生体特徴量を利用した認証技術に関し、例えば、国際公開第2020/053953号(特許文献1)には、クラウドサーバの負荷を低減すると共に、クラウドサーバとエッジサーバの通信量を低減することが可能な照合システムが開示されている。当該システムは、「本システムで取り扱う全ての登録データを記憶する主データベースをクラウドサーバが保持し、一部の登録データを記憶する副データベースをセンサーの近くに配置されたエッジサーバが保持する。各エッジサーバの副データベースには、そのエッジサーバで照合される可能性が高い登録データのみが記憶される。エッジサーバは、センサーにより取得された検出データを副データベース内の登録データと照合し、該検出データと適合する登録データが副データベース内に存在しないと判定された場合に、該検出データをクラウドサーバへ送信して主データベース内の登録データとの照合を依頼する」というものである([要約]参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に開示された技術によると、クラウドサーバがデータを管理するため、各エッジサーバにないデータがある場合、各エッジサーバはクラウドサーバに問い合せる必要があり、遅延が発生する可能性がある。したがって、特定のサーバに依存せずに生体特徴量を使用した認証を即座に完了するための技術が必要とされている。
【0006】
本開示は、上記のような背景に鑑みてなされたものであって、ある局面における目的は、特定のサーバに依存せずに生体特徴量を使用した認証を即座に完了するための技術を提供することにある。
【課題を解決するための手段】
【0007】
ある実施の形態に従うと、認証システムが提供される。認証システムは、ユーザーを認証するための複数の装置と、ユーザーの生体特徴量を取得するための複数のセンサーとを備える。複数の装置の各々と、複数のセンサーの各々とは通信可能に対応付けられている。複数の装置の各々は、ユーザーごとの生体特徴量およびID(Identifier)を関連付けた認証情報と、他の装置と通信するためのルーティング情報とを格納する記憶部と、認証情報と、自装置に対応付けられたセンサーから取得した生体特徴量とを比較してユーザーを認証する認証部と、記憶部に新しいユーザーの認証情報が登録されたことに基づいて、ルーティング情報を参照して、新しいユーザーの認証情報を1つ以上の他の装置に出力する出力部とを含む。
【0008】
ある局面において、複数の装置の各々は、ルーティング情報を生成および参照するためのルーティング部をさらに含む。ルーティング情報は、1つ以上の親装置のアドレスと、1つ以上の子装置のアドレスとを含む。ルーティング部は、乱数または自装置の位置情報に基づいて、装置情報を生成し、マルチキャストにより、1つ以上の他の装置の各々と装置情報を交換し、自装置の装置情報と1つ以上の他の装置の各々の装置情報との比較結果に基づいて、1つ以上の他の装置の各々のアドレスを、1つ以上の親装置のアドレスまたは1つ以上の子装置のアドレスのいずれかとしてルーティング情報に登録する。新しいユーザーの認証情報を1つ以上の他の装置に出力することは、1つ以上の子装置の中で自装置のドレスに最も近い装置情報を有する1台に新しいユーザーの認証情報を出力すること、または、1つ以上の親装置の中で自装置の装置情報に最も近い装置情報を有する1台に新しいユーザーの認証情報を出力すること、および、1つ以上の子装置の中で自装置の装置情報に最も近い装置情報を有する1台に新しいユーザーの認証情報を出力することを含む。
【0009】
ある局面において、ルーティング部は、定期的に、1つ以上の親装置の各々および1つ以上の子装置の各々と生存確認の通信を行い、生存確認の通信に失敗した装置のアドレスをルーティング情報から削除する。
【0010】
ある局面において、複数の装置の各々は、自装置に対応付けられたセンサーから得られた生体特徴量に基づいて、ログを生成して記憶部に格納するためのログ生成部をさらに備える。出力部は、ログ生成部により、または、他の装置のいずれかからログを受信したことにより、自装置のログが更新されたことに基づいて、1つ以上の親装置の中で自装置の装置情報に最も近い装置情報を有する1台、および、1つ以上の子装置の中で自装置の装置情報に最も近い装置情報を有する1台に、更新された自装置のログを送信する。
【0011】
ある局面において、認証システムは、認証部が記憶部に登録されていない生体特徴量を検出したことに基づいて、記憶部に登録されていない生体特徴量を未登録者の情報として記憶部に登録する未登録者情報登録部をさらに備える。ログ生成部は、未登録者の行動のログを記憶部に格納する。更新された自装置のログを送信することは、未登録者の行動のログを送信することを含む。
【0012】
ある局面において、認証情報は、ユーザーの各々ごとの許可行為情報を含む。認証システムは、他の機器と連携してユーザーの各々にサービスを提供するためのサービス提供部をさらに備える。サービス提供部は、他の機器から得られたユーザーの行動を示す情報と、認証情報に含まれる許可行為情報とを比較し、認証済みのユーザーにサービスを提供するか否かを判定する。
【0013】
他の実施の形態に従うと、認証システムによって実行されるユーザーの認証方法が提供される。認証システムは、ユーザーを認証するための複数の装置と、ユーザーの生体特徴量を取得するための複数のセンサーとを備える。複数の装置の各々と、複数のセンサーの各々とは、通信可能に対応付けられている。認証方法は、複数の装置の少なくとも1台において、ユーザーごとの生体特徴量およびIDを関連付けた認証情報と、他の装置と通信するためのルーティング情報とを記憶するステップと、認証情報と、自装置に対応付けられたセンサーから取得した生体特徴量とを比較してユーザーを認証するステップと、新しいユーザーの認証情報の登録処理が実行されたことに基づいて、ルーティング情報を参照して、新しいユーザーの認証情報を1つ以上の他の装置に出力するステップとを含む。
【発明の効果】
【0014】
ある実施の形態に従うと、特定のサーバに依存せずに生体特徴量を使用した認証を即座に完了することが可能である。
【0015】
この開示内容の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本開示に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【0016】
【
図1】本実施の形態に従うシステム10の一例を示す図である。
【
図2】装置100および生体センサー110のハードウェア構成の一例を示す図である。
【
図3】装置100の機能ブロックの一例を示す図である。
【
図4】ユーザーの登録処理の第1の例を示すフローチャートである。
【
図5】ユーザーの登録処理の第2の例を示すフローチャートである。
【
図6】ユーザーの登録処理の第3の例を示すフローチャートである。
【
図7】ユーザーの登録処理の第4の例を示すフローチャートである。
【
図8】ユーザー認証からサービス提供までの処理全体の一例を示すフローチャートである。
【
図9】装置100における未登録者情報登録処理の一例を示すフローチャートである。
【
図10】装置100におけるサービス提供処理の一例を示すフローチャートである。
【
図11】ルーティングテーブルの生成手順の第1の例を示すフローチャートである。
【
図12】ルーティングテーブルの生成手順の第2の例を示すフローチャートである。
【
図13】更新された認証情報の共有手順の一例を示すフローチャートである。
【
図14】更新された未登録者情報の共有手順の一例を示すフローチャートである。
【
図15】更新された各種ログの共有手順の一例を示すフローチャートである。
【
図16】ユーザーの行為の許可・不許可の判定の全体処理の一例を示すフローチャートである。
【
図17】ユーザーの行為の許可判定処理の一例を示すフローチャートである。
【
図18】更新された許可判定のログの共有手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、図面を参照しつつ、本開示に係る技術思想の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0018】
<A.システムの概要>
図1は、本実施の形態に従うシステム10の一例を示す図である。
図1を参照して、本実施の形態に従うシステム10の構成と、動作概要について説明する。なお、本明細書において「システム」との用語は、1または複数の装置からなる構成、1または複数のセンサー機器、およびこれらの組合せを含み得る。
【0019】
(a.システムの構成例)
システム10は、生体認証システムであり、主な構成として、装置100A,100B,100C,100Dと、生体センサー110A,110B,110C,110Dとを備える。
図1の例では、装置および生体センサーはそれぞれ4台であるが、これは一例であり、システム10の構成はこれに限定されない。ある局面において、システム10は、任意の数の装置および任意の数の生体センサーを備えていてもよい。これ以降、装置100A,100B,100C,100Dを総称する場合は、装置100と呼ぶ。また、生体センサー110A,110B,110C,110Dを総称する場合は、生体センサー110と呼ぶ。他の局面において、装置100は、2つ以上の生体センサー110に接続されていてもよい。この場合、装置100は、2つ以上の生体センサー110から取得した複数の生体特徴量を用いて、ユーザー認証処理を実行し得る。
【0020】
装置100は、生体センサー110から取得した生体特徴量に基づいて、ユーザーの認証処理を実行する。システム10に含まれる複数の装置100は、各々が認証情報DB(Database)311(
図3参照)を備えており、単独で生体特徴量を使用したユーザー認証を行うことができる。複数の装置100は、互いにネットワークを介して接続されており、認証情報、各種ログ、未登録者情報等を共有する。本明細書における「未登録者」との用語は、認証情報DB311に登録されていない人物を意味する。例えば、システム10が、ある会社の社内システムとして使用された場合、当該ある会社に訪問したゲスト等は、未登録者となる。
【0021】
また、装置100は、他の機器と連携して、認証に成功したユーザーに各種サービスを提供し得る。一例として、装置100は、ドアの開閉サービス、入退室管理サービス、売店または食堂等の決済サービス等を提供し得る。その際、装置100は、一例として、ドアの開閉装置、入退出管理サーバ、決済サーバ等と連携し得る。ある局面において、装置100は、パーソナルコンピュータ、ワークステーション、サーバ装置、組込型コンピューター、小型コンピューター、タブレット、スマートフォン等の情報処理装置、または、これらの組合せであってもよい。
【0022】
ある局面において、複数の装置100の各々は、互いに有線LAN(Local Area Network)、Wi-Fi(登録商標)(Wireless Fidelity)、またはその他の任意の有線ネットワーク、無線ネットワークによって相互に通信可能に接続され得る。複数の装置100の各々は、TCP/IP(Transmission Control Protocol/Internet Protocol)、UDP(User Datagram Protocol)等の通信プロトコルを用いてデータを送受信してもよい。
【0023】
生体センサー110は、ユーザーの生体特徴量を取得する。生体センサー110は、システム10に含まれる複数の装置100のいずれかに通信可能に対応付けられており、対応付けられた装置100にユーザーの生体特徴量を出力する。例えば、生体センサー110Aは、装置100Aにユーザーの生体特徴量を出力する。ある局面において、生体センサー110は、指紋センサー、指静脈センサー、虹彩センサー、カメラ(光学センサー)、顔認識カメラ、マイク等であってもよい。
【0024】
ある局面において、生体センサー110は、画像、音声、各種センシングデータ等のいわゆる生データ(生体情報)を装置100に出力してもよい。この場合、装置100は、取得した生データ(生体情報)を解析して生体特徴量を抽出し得る。
【0025】
(b.システムの動作概要)
システム10の典型的な動作例について説明する。システム10は、主に、ユーザーの登録機能、ユーザーの認証機能、ルーティング経路の生成機能、システムの再構成機能、各種情報の共有機能の5つの機能を備える。
【0026】
まず、第1の機能であるユーザーの登録機能について説明する。システム10に含まれる複数の装置100の少なくとも1台は、ユーザーの登録用装置として使用される。
図1の例では、装置100Dがユーザーの登録用装置として使用される。なお、ユーザーの登録用装置は、2台以上あってもよい。例えば、装置100A,100Dがユーザーの登録用装置として使用されてもよい。また、各装置100は、ユーザーの登録用装置として使用されるか否かを適宜切り替え可能に構成される。
【0027】
装置100D(ユーザーの登録用装置として選択された装置100)は、自装置に対応付けられた生体センサー110Dから取得した生体特徴量が、自装置内の認証情報DBに存在するか否かを判定する。装置100Dは、取得した生体特徴量が、自装置内の認証情報DBに存在しないと判定した場合、当該生体特徴量を新規ユーザーの生体特徴量として認証情報DB311に登録する。登録処理の際、例えば、装置100Dは、自装置に接続または内蔵されたキーボード、カードリーダー、タッチパネル等の任意の入力機器を介して、ユーザーID(Identifier)を取得し得る。装置100Dは、生体センサー110Dから取得した生体特徴量と、入力機器から取得したユーザーIDとを関連付けて認証情報DB311に登録する。
【0028】
なお、本明細書における「ID」との用語は、一意に識別可能な任意の情報を意味し、例えば、社員番号、学生番号等の他に、あるIDから生成されたハッシュキー等も包含する。ある局面において、装置100Dは、入力機器から取得したユーザーIDをハッシュキーに変換してもよい。この場合、装置100Dは、生体センサー110Dから取得した生体特徴量と、ハッシュキーとを関連付けて認証情報DB311に登録する。すなわち、装置100Dは、当該ハッシュキーを認証処理時のユーザーのIDとして使用する。
【0029】
ある局面において、各ユーザーの認証情報は、ユーザー権限を含んでいてもよい。ユーザー権限は、ユーザーがアクセスできるサービスの種類を決定する。一例として、第1のユーザーは、装置100Aが設置された売店での決済サービスを使用できる権限を有しているが、装置100Cが設置された会議室の使用権限(入室権限)を有さないとする。この場合、装置100Aは、第1のユーザーの認証に成功すると、売店の決済サービスを提供する。一方で、装置100Cは、第1のユーザーの認証に成功したとしても、会議室のドアロックを解除しない。一例として、装置100Dは、ユーザーIDと同様に、自装置に接続または内蔵された任意の入力機器を介して、ユーザー権限を取得し得る。
【0030】
システム10に含まれる各装置100は、認証情報の更新があった場合、ルーティングDB314(
図3参照)を参照して、認証情報を共有する。各装置100間のデータの共有およびルーティングの仕組みについては後述する。
【0031】
ある局面において、ユーザーの登録用装置として選択された装置100D、または、全ての装置100は、ユーザーの認証情報の更新機能を提供してもよい。例えば、装置100は、生体センサー110から取得した生体特徴量を用いてユーザーの認証に成功した場合(認証処理の対象の人物が登録されたユーザーであることが確認できた場合)、当該ユーザーから認証情報の更新入力(ユーザーIDの変更、生体特徴量の更新等)を受け付けてもよい。
【0032】
次に、第2の機能であるユーザーの認証機能について説明する。システム10に含まれる複数の装置100の各々は、各種機能の共有機能により、認証情報も最新状態で共有される。そのため、各装置100は、自装置に接続された生体センサー110から取得した生体特徴量が、自装置内の認証情報DB311に登録されているか否かを確認することで、ユーザー認証を完了し得る。各装置100は、認証処理の際に、外部の認証サーバ等との通信を必要としないため認証処理を高速に完了させることができ、また、高速通信を要求されないため比較的安価な小型PCでも実現可能である。
【0033】
各装置100は、認証処理が成功した後、他の機器と連携して、ユーザーに各種サービスを提供する。ある局面において、各装置100は、各種サービスを提供するための外部機器を駆動させるためのIO(Input Output)ポートを備えていてもよい。他の局面において、各装置100は、ネットワークを介して、各種サービスを提供するための外部機器に制御パケットを送信してもよい。
【0034】
また、各装置100は、認証処理が失敗した場合(取得した生体特徴量が認証情報DB311に登録されていない場合)、取得した特徴量を未登録者情報として未登録者情報DB313(
図3参照)に登録する。当該未登録者情報も更新されるごとに、各装置100間で共有される。該未登録者情報は、ログを生成する場合等に使用される。
【0035】
次に、第3の機能であるルーティング経路の生成機能について説明する。システム10は、システム全体を管理する中央サーバを備えない。そのため、各装置100は、協業して、システム10内のルーティング経路およびそのテーブルを生成する。ルーティングテーブルは、ルーティングDB314に格納される。
【0036】
各装置100は、自装置の位置情報または生成した乱数を装置情報として使用する。「装置情報」とは、ルーティング経路内での各装置100の順番を示す情報であり、互いに大小または順番比較が可能な情報である。装置情報は、数値であってもよいし、バイナリであってもよいし、英数字の組み合わせであってもよいし、その他の任意の形式で表現されてもよい。当該装置情報は、ルーティングテーブルを生成するために使用される。ある局面において、各装置100は、自装置の位置情報または生成した乱数に基づいて、装置情報を生成してもよい。一例として、各装置100は、位置情報または乱数に基づいて、ハッシュキーを生成してもよい。また、他の局面において、各装置100は、位置情報および乱数以外にも装置ID、現在時刻等の任意の要素またはこれらの組み合せから装置情報を生成してもよい。
【0037】
各装置100は、マルチキャストの機能を備えている。各装置100は、自装置で生成した装置情報をマルチキャストでお互いに交換する。各装置100は、自装置の装置情報と、他の装置100から受信した装置情報とを比較して、他の装置100が自装置に対して上流にあるか、下流にあるかを判定し得る。
【0038】
一例として、装置各100は、他の装置から受信した装置情報の値が自装置の装置情報の値よりも大きいと判定した場合、自装置の装置情報の値よりも大きい装置情報の値を有する他の装置100を子装置として(すなわちルーティング経路において、自装置よりも下流にある装置として)自装置内のルーティングテーブルに登録してもよい。逆に、装置各100は、他の装置から受信した装置情報の値が自装置の装置情報の値より小さいと判定した場合、自装置の装置情報の値よりも小さい装置情報の値を有する他の装置100を親装置として(すなわちルーティング経路において、自装置よりも上流にある装置として)、自装置内のルーティングテーブルに登録してもよい。ルーティングテーブルには、他の装置の各々の装置情報およびIP(Internet Protocol)アドレスの組み合せが格納される。
【0039】
別の例として、装置各100は、他の装置から受信した装置情報の値が自装置の装置情報の値よりも小さいと判定した場合、自装置の装置情報の値よりも小さい装置情報の値を有する他の装置100を子装置として(すなわちルーティング経路において、自装置よりも下流にある装置として)自装置内のルーティングテーブルに登録してもよい。逆に、装置各100は、他の装置から受信した装置情報の値が自装置の装置情報の値より大きいと判定した場合、自装置の装置情報の値よりも大きい装置情報の値を有する他の装置100を親装置として(すなわちルーティング経路において、自装置よりも上流にある装置として)、自装置内のルーティングテーブルに登録してもよい。なお、これ以降の説明では、一例として、各装置100は装置情報の値が小さいほどルーティング経路のより上流に位置するとして説明するが、各装置100は装置情報の値が大きいほど、ルーティング経路のより上流に位置すると読み替えてもよい。
【0040】
ルーティングテーブルに登録される情報は、各装置100の装置情報によってソートされる。例えば、装置100Dの装置情報が「001」であり、装置100Aの装置情報が「101」であり、装置100Bの装置情報が「102」であり、装置100Cの装置情報が「103」であるとする。この場合、装置100Aのルーティングテーブルは以下のようになる。なお、装置100Aのルーティングテーブルには、装置100Aの情報は含まれていなくてもよい。他の装置100B,100C、100Dも同様のルーティングテーブルを生成するが、同様に、ルーティングテーブルには自装置の情報は含まれていなくてもよい。
【0041】
(装置100Aのルーティングテーブルの一例)
種類:親,装置100D:装置情報:001,IPアドレス:*.*.*.*
種類:自,装置100A:装置情報:101,IPアドレス:*.*.*.*
種類:子,装置100B:装置情報:102,IPアドレス:*.*.*.*
種類:子,装置100C:装置情報:103,IPアドレス:*.*.*.*
上記の装置100Aのルーティングテーブルによると、装置100Aから見たルーティング経路の上流には、装置100Dが存在し、装置100Aから見たルーティング経路の下流には、装置100B,100Cが存在している。また、装置100Dは、装置100Aから見て最も近い(隣接する)親装置である。装置100Bは、装置100Aから見て最も近い(隣接する)子装置である。装置100Cは、装置100Aから見て、2番目に近い(装置100Bの次の位置にいる)子装置である。
【0042】
ある局面において、ユーザーの登録用装置として選択された装置100は必ずルーティングテーブルの最上流(先頭)になるように固定値の装置情報を生成してもよい。他の局面において、ルーティングテーブルを生成した結果、最上流に位置することになった装置100が、自動的にユーザーの登録用装置として選択されてもよい。
【0043】
各装置100は上記のルーティングテーブルに従い、各種情報を交換する。より具体的には、各装置100は、交換する情報に応じて、隣接する親装置および子装置の両方に、または、隣接する親装置および子装置のいずれか片方に、各装置100間で共有すべき情報を送信する。
【0044】
例えば、認証情報は、最上流の装置100Dで登録されるので、更新された認証情報は、ルーティング経路の下流に向けて(各装置100に隣接する子装置に向けて)送信される。
図1の例では、装置100Dは、新規ユーザーの登録処理を行った場合、隣接する子装置である装置100Aに新しい認証情報を送信する。次に、装置100Aは、認証情報の更新通知を受信すると、隣接する子装置である装置100Bに更新された認証情報を送信する。同様に、装置100Bは、認証情報の更新通知を受信すると、隣接する子装置である装置100Cに更新された認証情報を送信する。装置100Cは、最下流の装置であるため、認証情報の転送は行わない。
【0045】
他の例として、各種ログ情報は、全ての装置100で記録され得る。そのため、各種ログ情報は、ルーティング経路の上流および下流に向けて(各装置100に隣接する親装置および子装置に向けて)送信される。例えば、装置100Aは、新しくログを記録した場合、隣接する親装置である装置100Dおよび隣接する子装置である装置100Bに、新しいログを通知する。装置100Bは、上流(親装置である装置100A)からログを受信したので、下流(子装置である装置100C)にログを転送する。また、別の例として、各種ログ情報は、最上流の装置100で記録されてもよい。この場合、各種ログ情報は、ルーティング経路の上流に向けて(各装置100に隣接する親装置に向けて)送信される。例えば、装置100Aは、新しくログを記録した場合、隣接する親装置である装置100Dおよび隣接する子装置である装置100Bに、新しいログを通知する。装置100Bは、上流(親装置である装置100A)からログを受信したので、下流(子装置である装置100C)にログを転送する。
【0046】
次に、第4の機能であるシステムの再構成機能について説明する。システム10は、1つ以上の装置100が故障した場合、1つ以上の装置100がシステム10から取り除かれた場合、システム10に1つ以上の新たな装置100が追加された場合にも、システム10の機能を維持することができるように、ルーティングテーブルを更新する機能を備える。
【0047】
より具体的には、各装置100は、互いにマルチキャストで生存確認通知を送付する。各装置100は、一定期間返事がないまたは通知を送ってこない装置100は機能を停止したと見なす。各装置100は、機能を停止した装置100のIPアドレスをルーティングテーブルから削除する。逆に、各装置100は、マルチキャストにて、ルーティングテーブルにない新しい装置100を検出した場合、新しい装置100から装置情報を受信し、当該新しい装置100の装置情報およびIPアドレスをルーティングテーブルに追加する。その際、各装置100は、ルーティングテーブルの項目(各装置100のIPアドレス等)を装置情報に基づいてソートし直す。
【0048】
ある局面において、各装置100は、自装置のルーティングテーブルを更新して、自装置よりも上流の装置100がいなくなったことを検出した場合(自装置がルーティング経路の最上流に位置することを検出した場合)、ユーザーの登録用装置として動作してもよい。こうすることで、最上流の装置100が故障した場合も、システム10は機能を維持することができる。他の局面において、各装置100は、自装置のルーティングテーブルを更新して、自装置よりも上流の装置100がいなくなったことを検出した場合(自装置がルーティング経路の最上流に位置することを検出した場合)、管理者の端末にエラー通知を送信してもよい。この場合、管理者は、稼働している各装置100の中から、任意の一台をユーザーの登録用装置として選択し得る。
【0049】
第4の機能について、装置100Aを例に説明する。装置100Dが故障し、装置100E(装置情報:104)がシステム10に新たに追加されたとする。この場合、装置100Aのルーティングテーブルは以下のように更新される。
【0050】
(更新後の装置100Aのルーティングテーブルの一例)
種類:自,装置100A:装置情報:101,IPアドレス:*.*.*.*
種類:子,装置100B:装置情報:102,IPアドレス:*.*.*.*
種類:子,装置100C:装置情報:103,IPアドレス:*.*.*.*
種類:子,装置100E:装置情報:104,IPアドレス:*.*.*.*
更新後の装置100Aのルーティングテーブルによると、装置100Aは最上流に位置するため、ユーザーの登録用装置として動作してもよいし、管理者の端末にエラー通知を送信してもよい。
【0051】
次に、第5の機能である各種情報の共有機能について説明する。各装置100は、上記のルーティングテーブルを参照して、各種情報を共有する。認証情報は、上流から下流に転送され、それ以外の各種ログ等は、下流から上流に、または、上流および下流の両方に転送される。システム10全体で共有されるログは、認証ログ、サービス提供ログ、未登録者情報、未登録者の行動ログ、および、その他の任意の情報を含み得る。
【0052】
認証ログは、ユーザー認証の記録である。認証ログは、認証を行った装置100の装置IDと、認証されたユーザーのユーザーIDと、タイムスタンプとを含む。また、認証ログは、さらに、他の任意のデータを含んでいてもよい。
【0053】
サービス提供ログは、認証後のユーザーに対して提供されたサービスの記録である。サービス提供ログは、認証を行った装置100の装置IDと、認証されたユーザーのユーザーIDと、サービスごとの情報と、タイムスタンプとを含む。また、サービス提供ログは、さらに、他の任意のデータを含んでいてもよい。サービスごとの情報は、提供されたサービスのサービスID、部屋への入退室記録、および、購買記録等のサービスに関連する任意の記録を含み得る。
【0054】
未登録者情報は、未登録者IDと、未登録者の生体特徴量とを含む。各装置100は、認証情報DB311に登録されていない生体特徴量を検出すると、未登録者IDを生成し、当該未登録者IDおよび生体特徴量を関連付けて未登録者情報として、自装置の未登録者情報DB313に登録する。また、各装置100は、新たに生成した未登録者情報をルーティング経路の上流および下流に送信する。他の装置100は、受信した未登録者情報を自装置の未登録者情報DB313に登録する。これにより、検出された未登録者情報は、全ての装置100で共有されるため、各装置100は、生体センサー110により同一人物を検出した場合、同一の未登録者IDを付して未登録者の行動ログを生成することができる。すなわち、システム10全体が、未登録者の行動を記録し得る。
【0055】
未登録者の行動ログは、認証情報DB311に登録されていない人物(未登録者)の行動履歴である。未登録者の行動ログは、未登録者IDと、未登録者の生体特徴量と、行動記録とを含む。行動記録は、未登録者が居た場所、未登録者のアクション(ドアの前に来た、商品を購入しようとした等の任意の行動)の記録等を含み得る。各装置100は、生体センサー110から取得した画像または映像等の生データを解析して、未登録者の行動を推定してもよい。各装置100は、新たに生成した未登録者の行動ログをルーティング経路の上流および下流に送信する。
【0056】
ある局面において、各装置100は、未登録者の行動ログを解析して、あやしい行動をしている人物を検出した場合、ログ情報と共に管理者の端末に通知を送信してもよい。例えば、行動ごとに点数が設けられ、各装置100は、未登録者の行動ログを解析して、ある人物の過去の行動の累積点数が予め定められた閾値を超えた場合に、管理者の端末に通知を送信してもよい。ある局面において、各装置100は、システム10に登録されているユーザーの行動ログを解析して、あるユーザーの過去の行動(当該有るユーザーが権限を有さない行為を繰り返す等)の累積点数が予め定められた閾値を超えた場合に、管理者の端末に通知を送信してもよい。
【0057】
上述のように、本実施の形態に従うシステム10は、ルーティングテーブルに基づいて、各種情報を共有する。そのため、管理者は、中央サーバを用意する必要が無く、認証システム導入のイニシャルコストを下げることができる。
【0058】
また、一部の装置100が故障した場合、新たに装置100がシステム10に追加された場合でも、各装置100は、協業して、ルーティングテーブルを最新に保つことで、システム10全体の機能を維持し得る。
【0059】
また、各装置100は、常に最新のルーティングテーブルを保有しているため、ユーザー登録用の装置100が故障した場合でも、生存している任意の装置100がユーザー登録用の装置100として動作し得る。
【0060】
また、各種ログが、ログを生成した装置100からルーティング経路の上流および下流の両方に送信される場合、一部の装置100が故障しても、システム10全体としてログは失われない。
【0061】
さらに、ハッシュキーをユーザーIDとして認証情報に含めることにより、装置100が盗まれた場合でも、ユーザー個人を特定する情報が流出することはない。そのため、システム10は、中央サーバを用いない分散環境においても、ユーザーの個人情報を容易に保護し得る。
【0062】
<B.ハードウェアおよびソフトウェア構成>
次に、
図2および
図3を参照して、装置100および生体センサー110の構成の一例について説明する。
【0063】
図2は、装置100および生体センサー110のハードウェア構成の一例を示す図である。装置100は、CPU(Central Processing Unit)1と、1次記憶装置2と、2次記憶装置3と、外部機器インターフェイス4と、入力インターフェイス5と、出力インターフェイス6と、通信インターフェイス7とを含む。
【0064】
CPU1は、装置100の各種機能を実現するためのプログラムを実行し得る。CPU1は、例えば、少なくとも1つの集積回路によって構成される。集積回路は、例えば、少なくとも1つのCPU(Central Processing Unit)、少なくとも1つのGPU(Graphics Processing Unit)、少なくとも1つのFPGA(Field Programmable Gate Array)、少なくとも1つのASIC(Application Specific Integrated Circuit)またはこれらの組み合わせ等によって構成されてもよい。
【0065】
1次記憶装置2は、CPU1によって実行されるプログラムと、CPU1によって参照されるデータとを格納する。ある局面において、1次記憶装置2は、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)等によって実現されてもよい。
【0066】
2次記憶装置3は、不揮発性メモリーであり、CPU1によって実行されるプログラムおよびCPU1によって参照されるデータを格納してもよい。その場合、CPU1は、2次記憶装置3から1次記憶装置2に読み出されたプログラムを実行し、2次記憶装置3から1次記憶装置2に読み出されたデータを参照する。ある局面において、2次記憶装置3は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)またはフラッシュメモリー等によって実現されてもよい。
【0067】
外部機器インターフェイス4は、生体センサー110、プリンター、スキャナーおよび外付けHDD等の任意の外部機器に接続され得る。ある局面において、外部機器インターフェイス4は、USB(Universal Serial Bus)端子等によって実現されてもよい。
【0068】
入力インターフェイス5は、キーボード、マウス、タッチパッドまたはゲームパッド等の任意の入力装置に接続され得る。ある局面において、入力インターフェイス5は、USB端子、PS/2端子およびBluetooth(登録商標)モジュール等によって実現されてもよい。ある局面において、生体センサー110は、入力インターフェイス5を介して、装置100に接続されてもよい。
【0069】
出力インターフェイス6は、ブラウン管ディスプレイ、液晶ディスプレイまたは有機EL(Electro-Luminescence)ディスプレイ等の任意の出力装置に接続され得る。ある局面において、出力インターフェイス6は、USB端子、D-sub端子、DVI(Digital Visual Interface)端子およびHDMI(登録商標)(High-Definition Multimedia Interface)端子等によって実現されてもよい。
【0070】
通信インターフェイス7は、有線または無線のネットワーク機器と接続される。ある局面において、通信インターフェイス7は、有線LAN(Local Area Network)ポートおよびWi-Fi(登録商標)(Wireless Fidelity)モジュール等によって実現されてもよい。他の局面において、通信インターフェイス7は、TCP/IP(Transmission Control Protocol/Internet Protocol)、UDP(User Datagram Protocol)等の通信プロトコルを用いてデータを送受信してもよい。
【0071】
生体センサー110は、生体情報取得部111と、生体特徴量抽出部112と、通信部113と、生体特徴量比較部114とを備える。ある局面において、
図2に示される生体センサー110のハードウェア構成の一部はプログラムとして実現されてもよい。この場合、生体センサー110は、CPU、メモリーおよびストレージを備える。また、生体センサー110は、ストレージからメモリーに読み込まれたプログラムをCPUで実行することにより、各種機能を実現し得る。
【0072】
生体情報取得部111は、センサー素子およびその周辺回路である。一例として、生体センサー110は、カメラ(顔認証、虹彩認証用等)、指紋センサー、指静脈センサー、マイク(声認証用)、および、その周辺回路を含み得る。
【0073】
生体特徴量抽出部112は、生体情報取得部111の出力データ(生体情報)から、生体特徴量を抽出する。例えば、生体特徴量抽出部112は、顔画像から、顔の特徴量を示すテキストデータ等を抽出し得る。
【0074】
通信部113は、装置100の通信インターフェイス7とデータを送受信する。一例として、通信部113は、生体特徴量を通信インターフェイス7に送信し得る。ある局面において、通信部113は、生体特徴量の代わりに、生体情報(生データ)を通信インターフェイス7に送信してもよい。この場合、装置100(CPU1)は、受信した生体情報(生データ)から、生体特徴量を抽出する。他の例として、通信部113は、生体特徴量比較部114に入力するデータ(生体特徴量)を通信インターフェイス7から受信し、生体特徴量比較部114が出力するデータ(2つの生体特徴量の一致度等)を通信インターフェイス7に送信してもよい。ある局面において、通信部113は、外部機器インターフェイス4と通信し、各種情報を送受信してもよい。この場合、装置100および生体センサー110は、USBケーブル等で接続され得る。
【0075】
生体特徴量比較部114は、2つの生体特徴量を比較して、当該2つの生体特徴量の一致度等を出力する。装置100は、ユーザー登録処理、認証処理、未登録者の追跡処理等において、生体センサー110が有する生体特徴量比較部114の機能を利用してもよい。または、装置100(CPU1)は、プログラムを実行することで、2つの生体特徴量を比較して、当該2つの生体特徴量の一致度等を求めてもよい。この場合、生体センサー110は、生体特徴量比較部114を備えていなくてもよい。
【0076】
図3は、装置100の機能ブロックの一例を示す図である。
図3に示される各構成は、プログラムまたはデータとして実現される。装置100は、
図3に示される各構成を
図2に示されるハードウェア上で実行することで、
図1および
図4~
図18を参照して説明される各種機能を実現し得る。ある局面において、
図3に示される各構成の一部は、ハードウェアとして実現されてもよい。装置100は、生体特徴量取得部301と、認証情報登録部302と、認証部303と、サービス提供部304と、未登録者情報登録部305と、データ取得部306と、データ出力部307と、ルーティング部308と、ログ生成部309と、記憶部310とを備える。記憶部310は、認証情報DB311と、ログDB312と、未登録者情報DB313と、ルーティングDB314とを含む。
【0077】
生体特徴量取得部301は、生体センサー110から、生体特徴量を取得して、当該生体特徴量を認証情報登録部302または認証部303に出力する。ある局面において、生体特徴量取得部301は、生体センサー110から、生体情報(画像、音声等の生データ)を取得してもよい。この場合、生体特徴量取得部301は、生体情報から生体特徴量を抽出し、当該生体特徴量を認証情報登録部302または認証部303に出力する。なお、装置100は、生体特徴量取得部301とは別に、生体特徴量抽出部(図示せず)を備えていてもよい。この場合、生体特徴量取得部301は、生体情報を生体特徴量抽出部に出力する。生体特徴量抽出部は、生体情報から生体特徴量を抽出し、当該生体特徴量を認証情報登録部302または認証部303に出力する。
【0078】
認証情報登録部302は、新規ユーザーを認証情報DB311に登録する。認証情報登録部302は、生体特徴量取得部301または生体特徴量抽出部から生体特徴量を取得する。また、認証情報登録部302は、キーボード、タッチパネル、カードリーダー等を介して、ユーザーIDを取得してもよい。認証情報登録部302は、取得した生体特徴量およびユーザーIDを関連付けて新規ユーザーの認証情報として、認証情報DB311に登録する。ある局面において、認証情報登録部302は、取得したユーザーIDをハッシュキーに変換してもよい。この場合、認証情報登録部302は、当該ハッシュキーをユーザーIDとして生体特徴量と関連付けて認証情報を生成し、当該認証情報を認証情報DB311に登録する。他の局面において、認証情報登録部302は、認証情報にユーザー権限を含めてもよい。ユーザー権限は、ユーザーが受けられるサービスの種類、または、システム10が設置されている場所においてユーザーに許可されている行為・許可されていない行為等を判別するための情報である。認証情報登録部302は、キーボード、タッチパネル、カードリーダー等を介して、ユーザー権限を取得してもよい。
【0079】
認証部303は、認証処理を実行する。すなわち、認証部303は、装置100により検出されたユーザーが、認証情報DB311に登録されたユーザーか否かを判定する。認証部303は、生体特徴量取得部301または生体特徴量抽出部から生体特徴量を取得する。次に、認証部303は、認証情報DB311に、取得した生体特徴量と一致する(または一定以上類似する)生体特徴量があるか否かを判定する。認証部303は、認証情報DB311に、取得した生体特徴量と一致する(または一定以上類似する)生体特徴量があると判定した場合(認証に成功した場合)、サービス提供部304に認証結果を出力する。認証部303は、認証情報DB311に、取得した生体特徴量と一致する(または一定以上類似する)生体特徴量がないと判定した場合(認証に失敗した場合)、未登録者情報登録部305に認証結果を出力する。
【0080】
ある局面において、認証部303は、認証に失敗した場合、未登録者情報DB313に、取得した生体特徴量と一致する(または一定以上類似する)生体特徴量があるか否かを判定してもよい。認証部303は、未登録者情報DB313に、取得した生体特徴量と一致する(または一定以上類似する)生体特徴量があると判定した場合、装置100が検出した人物は以前に登録された未登録者であると判定し、当該未登録者のログ(未登録者が、装置100がある場所に何時に居た、装置100がある場所で何をしようとした等のログ)をログDB312に記録する。認証部303は、未登録者情報DB313に、取得した生体特徴量と一致する(または一定以上類似する)生体特徴量がないと判定した場合、装置100が検出した人物は新しい未登録者であると判定し、未登録者情報登録部305に認証結果を出力する。
【0081】
サービス提供部304は、認証に成功したユーザーに、各種サービスを提供する。より具体的には、サービス提供部304は、装置100と連携する外部の機器に、ユーザーにサービスを提供するように指令を出力する。例えば、サービス提供部304は、ドアの開閉装置、入退出管理サーバ、決済サーバ等に指令を出力し得る。1つの装置100が複数の機器と連携している場合、サービス提供部304は、複数の機器に指令を出力してもよい。また、サービス提供部304は、装置100と連携する外部の機器が正常に動作しないことを検出すると(エラー信号を受信または指令に対する応答がない場合等)、エラーを出力してもよい。例えば、サービス提供部304は、装置100に内蔵または接続されたディスプレイまたはスピーカー等を介して、エラーを出力し得る。
【0082】
未登録者情報登録部305は、システム10全体で過去に検出されたことがない新しい未登録者の生体特徴量を未登録者情報DB313に登録する。未登録者情報登録部305は、乱数を用いる等の任意の方法で作成した未登録者IDと、未登録者の生体特徴量とを関連付けて、未登録者情報として未登録者情報DB313に登録する。
【0083】
データ取得部306は、他の装置100から各種データを受信する。一例として、データ取得部306は、新しいユーザーの認証情報、新しい未登録者情報、認証ログ、未登録者の行動ログ、サービス提供ログ、ルーティングテーブルの生成に必要となる装置情報、および、他の装置100の生存確認の通知等の任意のデータを受信する。データ取得部306は、取得したデータに基づいて、認証情報DB311、ログDB312、未登録者情報DB313、または、ルーティングDB314を更新する。ある局面において、データ取得部306は、認証情報登録部302、認証部303、サービス提供部304、未登録者情報登録部305、または、ルーティング部308に、更新対象のDBの更新依頼および受信データを出力してもよい。この場合、更新依頼を受信した機能部が、更新対象のDBを更新する。
【0084】
データ出力部307は、他の装置100に各種データを送信する。データ出力部307は、認証情報DB311、ログDB312、未登録者情報DB313、または、ルーティングDB314に更新があるか否かを定期的に確認する。データ出力部307は、認証情報DB311、ログDB312、未登録者情報DB313、または、ルーティングDB314に更新があった場合、更新されたデータを他の装置100に送信する。その際、データ出力部307は、隣接する親装置および子装置の両方に、または、隣接する親装置および子装置のいずれか片方に、更新されたデータを送信する。
【0085】
ある局面において、データ出力部307は、認証情報登録部302、認証部303、サービス提供部304、未登録者情報登録部305、または、ルーティング部308から更新通知を取得したことに基づいて、更新されたデータを他の装置100に送信してもよい。他の局面において、データ出力部307は、更新されたDBにおける更新データの差分だけを他の装置100に送信してもよい。また、他の局面において、データ出力部307は、更新されたDBに格納される全てのデータを他の装置100に送信してもよい。
【0086】
ルーティング部308は、ルーティングDB314を管理する。ルーティングDB314には、
図1を参照して説明されたルーティングテーブルが格納される。一例として、ルーティング部308は、データ取得部306からルーティングテーブルの更新情報を受信すると、ルーティングDB314に更新を反映する。また、データ出力部307は、他の装置100にデータを送信する際に、ルーティング部308に、データの送信先のIPアドレスまたはルーティングテーブルそのものを要求する。ルーティング部308は、要求を受けて、ルーティングDB314を参照し、データの送信先のIPアドレスまたはルーティングテーブルそのものをデータ出力部307に出力する。ある局面において、データ取得部306およびデータ出力部307の両方または片方がルーティング部308の機能を備えていてもよい。
【0087】
ログ生成部309は、各種ログをログDB312に記録する。ログ生成部309は、例えば、他の機能ブロックから通知を受けたことに基づいて、ログを生成し、当該ログをログDB312に記録し得る。ログ生成部309は、他の機能ブロックからの通知に含まれる情報に、タイムスタンプ、自装置のID、自装置の位置情報等を関連付けてログを生成し得る。ログ生成部309は、例えば、自装置のIDおよび自装置の位置情報を2次記憶装置3から取得してもよい。
【0088】
記憶部310は、各DBを管理するプログラムまたはデータ領域である。ある局面において、記憶部310は、DBMS(Data Base Management System)としての機能を有していてもよい。この場合、各DBはリレーショナルデータベースとして実現され得る。他の局面において、記憶部310は、単なるデータ格納領域またはNoSQL形式のデータベースシステムであってもよい。この場合、各DBはリレーショナルデータベース以外の任意のデータ形式で実現され得る。
【0089】
認証情報DB311は、少なくも、ユーザーIDと、生体特徴量とを関連付けて記憶する。ある局面において、ユーザーIDは、社員番号等(生のID)であってもよいし、元々のユーザーIDを非可逆的に変換して生成されたハッシュキー等のIDであってもよい。また、他の局面において、認証情報DB311は、ユーザーIDと、生体特徴量と、ユーザー権限とを関連付けて記憶してもよい。
【0090】
ログDB312は、各種ログを記憶する。ログDB312は、認証ログ、サービス提供ログ、未登録者の行動ログ、および、その他の任意の情報を記憶し得る。各ログは、例えば、ユーザーIDまたは未登録者IDと、タイムスタンプと、その他の任意のデータ(認証の成功または失敗、サービスの提供結果、ユーザーまたは未登録者の行動ログ等)とを含む。
【0091】
未登録者情報DB313は、未登録者のIDと、未登録者の生体特徴量とを関連付けて記憶する。未登録者のIDは、乱数の生成またはその他の任意の手段を用いて生成された一意に識別可能なIDである。
【0092】
ルーティングDB314は、ルーティングテーブルを格納する。各装置100は、ルーティングDB314を備える。各装置100のルーティングDB314は、自装置から見たルーティングテーブルを格納する。当該ルーティングテーブルは、一例として、システム10に参加する各装置100のIPアドレスを装置情報に基づいてソートしたテーブルになる。
【0093】
<C.ユーザーの登録>
次に、
図4~
図7を参照して、ユーザーの登録処理の一例について説明する。装置100は、
図4~
図7に示されるユーザー登録機能の一部を備えていてもよいし、全てを備えていてもよい。装置100は、複数の登録機能を備える場合、システム10の管理者が各装置100に入力した設定に基づいて、使用する登録機能を変更可能に構成されてもよい。
図4~
図7に示される処理は、ユーザーの登録用装置として選択された装置100により実行される。
【0094】
なお、これ以降の全てのフローチャート(
図4~
図18)において、CPU1は、各フローチャートの処理を行うためのプログラムを2次記憶装置3から1次記憶装置2に読み込んで、当該プログラムを実行してもよい。他の局面において、当該処理の一部または全部は、当該処理を実行するように構成された回路素子の組み合わせとしても実現され得る。また、ある局面において、これ以降の一部または全てのフローチャート(
図4~
図18)は、別スレッドまたは別プロセスで、同時並行的に実行されてもよい。
【0095】
図4は、ユーザーの登録処理の第1の例を示すフローチャートである。
ステップS410において、装置100は、生体特徴量を取得する。より具体的には、装置100は、生体センサー110からユーザーの生体特徴量を取得する。ある局面において、装置100は、生体センサー110から、生体情報(生データ)を取得して、当該生体情報から生体特徴量を抽出してもよい。
【0096】
ステップS420において、装置100は、ユーザーIDを取得する。一例として、装置100は、装置100に内蔵または接続された任意の入力機器(キーボード、タッチパネルまたはカードリーダー等)から、ユーザーIDの入力を受け付けてもよい。
【0097】
ステップS430において、装置100は、生体特徴量およびユーザーIDを関連付けて認証情報として認証情報DB311に登録する。
【0098】
図5は、ユーザーの登録処理の第2の例を示すフローチャートである。
図5のフローチャートは、ユーザーID(生データ)から、ハッシュキーを生成する点で、
図4のフローチャートと異なる。ステップS510およびステップS520の各々は、ステップS410およびステップS420の各々と同じであるため、当該処理の説明は繰り返さない。
【0099】
ステップS530において、装置100は、ユーザーIDのハッシュキーを生成する。装置100は、MD5、SHA-256、SHA-512またはRIPEMD-160等の任意のハッシュ関数を用いて、ユーザーIDのハッシュキーを生成する。
【0100】
ステップS540において、装置100は、生体特徴量およびハッシュキーを関連付けて認証情報として認証情報DB311に登録する。この場合、システム10においては、ハッシュキーがユーザーIDとして使用される。
【0101】
装置100は、ユーザーID(生データ)を認証情報DB311に直接保存せずに、ハッシュキーを使用することで、装置100が盗まれた場合にユーザーの個人情報が流出することを抑制し得る。
【0102】
図6は、ユーザーの登録処理の第3の例を示すフローチャートである。
図6のフローチャートは、認証情報にユーザー権限を含める点で、
図4のフローチャートと異なる。ステップS610およびステップS620の各々は、ステップS410およびステップS420の各々と同じであるため、当該処理の説明は繰り返さない。
【0103】
ステップS630において、装置100は、ユーザーの許可行為(ユーザー権限)を取得する。一例として、装置100は、装置100に内蔵または接続された任意の入力機器から、ユーザーの許可行為(ユーザー権限)の入力を受け付けてもよい。ある局面において、システム10の管理者が、ユーザーの許可行為(ユーザー権限)を装置100に入力してもよい。他の局面において、認証情報の登録後に、システム10の管理者が、ユーザーの許可行為(ユーザー権限)を装置100に入力してもよい。この場合、装置100は、予め登録されたユーザーの認証情報に、受け付けたユーザーの許可行為(ユーザー権限)を反映する。
【0104】
ステップS640において、装置100は、生体特徴量、ユーザーIDおよび許可行為(ユーザー権限)を関連付けて認証情報として認証情報DB311に登録する。装置100は、認証情報にユーザーの許可行為(ユーザー権限)を含めることで、ユーザーの権限に応じて柔軟にサービスを提供し得る。
【0105】
図7は、ユーザーの登録処理の第4の例を示すフローチャートである。
図7のフローチャートは、ハッシュキーを生成し、さらに認証情報にユーザー権限を含める点で、
図4のフローチャートと異なる。ステップS710、ステップS720、ステップS730,ステップS740の各々は、ステップS410、ステップS420、ステップS630、ステップS530の各々と同じであるため、当該処理の説明は繰り返さない。
【0106】
ステップS750において、装置100は、生体特徴量、ハッシュキーおよび許可行為(ユーザー権限)を関連付けて認証情報として認証情報DB311に登録する。装置100は、認証情報にハッシュキーおよびユーザーの許可行為(ユーザー権限)を含めることで、装置100が盗まれた場合にユーザーの個人情報が流出することを抑制し、さらに、ユーザーの権限に応じて柔軟にサービスを提供し得る。
【0107】
<D.ユーザーの認証>
次に、
図8~
図10を参照して、ユーザーの認証からサービスの提供までの処理の一例について説明する。
図8~
図10に示される処理は、システム10に含まれる全ての装置100により実行されてもよいし、ユーザーの登録用装置として選択された装置100以外の装置100により実行されてもよい。
【0108】
図8は、ユーザー認証からサービス提供までの処理全体の一例を示すフローチャートである。
【0109】
ステップS810において、装置100は、生体センサー110から、生体特徴量を取得する。ある局面において、装置100は、生体センサー110から生体情報(生データ)を取得してもよい。この場合は、装置100は、取得した生体情報から生体特徴量を抽出する。
【0110】
ステップS820において、装置100は、認証情報DB311に登録された生体特徴量を取得する。
【0111】
ステップS830において、装置100は、生体センサー110から取得した生体特徴量と、認証情報DB311に登録された生体特徴量とを比較する。
【0112】
ステップS840において、装置100は、認証情報DB311に登録された生体特徴量の中に、生体センサー110から取得した生体特徴量と一致する(または一定以上類似する)生体特徴量が存在するか否かを判定する。本ステップの判定処理は、比較される2つの生体特徴量が完全に一致している必要はない。装置100は、比較される2つの生体特徴量が予め定められた閾値以上の一致率である場合、認証情報DB311に登録された生体特徴量の中に、生体センサー110から取得した生体特徴量と一致する(または一定以上類似する)生体特徴量が存在すると判定し得る。他のフローチャートにおける生体特徴量の比較処理に関しても同様である。
【0113】
装置100は、認証情報DB311に登録された生体特徴量の中に、生体センサー110から取得した生体特徴量と一致する(または一定以上類似する)生体特徴量が存在すると判定した場合(ステップS840にてYES)、制御をステップS850に移す。そうでない場合(ステップS840にてNO)、装置100は、制御をステップS870に移す。
【0114】
ステップS850において、装置100は、認証記録をログDB312に追加する。ある局面において、装置100は、認証失敗時にも、認証失敗の記録をログDB312に追加してもよい。
【0115】
ステップS860において、装置100は、認証に成功したユーザーに対して各種サービスを提供する。本ステップの詳細については、
図10を参照して後述する。
【0116】
ステップS870において、装置100は、未登録者情報登録処理を実行する。本ステップの詳細については、
図9を参照して後述する。
【0117】
ステップS880において、装置100は、各種ログをログDB312に保存する。装置100は、例えば、未登録者の登録記録、未登録者の行動記録、認証済みのユーザーの行動記録、サービスの提供記録、別スレッドで実行中の他の装置100との通信記録等の任意のログをログDB312に格納する。ある局面において、装置100は、ステップS880の処理を任意のタイミングで実行してもよい。また、いくつかの種類のログは、本ステップとは別のタイミング(ステップS850、ステップS960、ステップS1040等)で適宜記録されてもよい。
【0118】
図9は、装置100における未登録者情報登録処理の一例を示すフローチャートである。未登録者情報登録処理は、ステップS870のサブルーチンとして実行される。
【0119】
ステップS910において、装置100は、未登録者情報DB313に登録された生体特徴量を取得する。
【0120】
ステップS920において、装置100は、(ステップS810にて)生体センサー110から取得した生体特徴量と、未登録者情報DB313に登録された生体特徴量とを比較する。
【0121】
ステップS930において、装置100は、未登録者情報DB313に登録された生体特徴量の中に、生体センサー110から取得した生体特徴量と一致する(または一定以上類似する)生体特徴量が存在するか否かを判定する。
【0122】
装置100は、未登録者情報DB313に登録された生体特徴量の中に、生体センサー110から取得した生体特徴量と一致する(または一定以上類似する)生体特徴量が存在すると判定した場合(ステップS930にてYES)、制御をステップS940に移す。そうでない場合(ステップS930にてNO)、装置100は、制御をステップS950に移す。
【0123】
ステップS940において、装置100は、新しい未登録者情報を未登録者情報DB313に登録する。一例として、装置100は、乱数等から生成された未登録者のIDと、未登録者の生体特徴量とを関連付けて未登録者情報DB313に登録する。
【0124】
ステップS950において、装置100は、未登録者の行動をログDB312に記録する。未登録者の行動ログは、一例として、未登録者のIDと、装置100のIDと、未登録者の行動の種類と、タイムスタンプとを含む。なお、装置100は、生体センサー110から取得した画像および/または音声等を解析して、未登録者の行動の種類を特定してもよい。ある局面において、本ステップは、ステップS880に含まれていてもよい。
【0125】
図10は、装置100におけるサービス提供処理の一例を示すフローチャートである。サービス提供処理は、ステップS860のサブルーチンとして実行される。
【0126】
ステップS1010において、装置100は、認証されたユーザーに提供可能なサービスを判定する。装置100は、認証情報に含まれるユーザー権限に基づいて、認証されたユーザーに提供可能なサービスを判定し得る。
【0127】
ステップS1020において、装置100は、自装置の位置情報を取得する。自装置の位置情報は、例えば、装置100が設置された場所(建物のフロアおよび部屋等)を識別するための情報であり、2次記憶装置3に格納されていてもよい。自装置の位置情報は、ユーザーにサービスを提供するか否かの判定およびログの生成に使用され得る。装置100は、位置情報を用いることで、認証されたユーザーに、第1の位置にある部屋への入室を許可するが、第2の位置にある部屋への入室を許可しない等の判定を行い得る。また、装置100が各種ログに自装置の位置情報を含めることで、管理者は、ログに含まれる位置情報から、問題が発生した場所等を容易に突き止められるようになる。なお、サービスを提供するか否かの判定およびサービスの提供処理において、装置100の位置情報が不要な場合は、本ステップの処理は実行されなくてもよい。
【0128】
ステップS1030において、装置100は、認証情報(ユーザー権限)および自装置の位置情報に基づいてサービスを提供する。ある局面において、装置100は、自装置の位置情報を用いずに、認証情報(ユーザー権限)に基づいてサービスを提供してもよい。装置100は、他の機器と連携することで、ドアの開閉、決済等の各種サービスをユーザーに提供し得る。
【0129】
ステップS1040において、装置100は、サービスの提供記録をログDB312に保存する。ある局面において、本ステップは、ステップS880に含まれていてもよい。
【0130】
<E.ルーティング情報の作成および情報の共有>
次に、
図11~
図15を参照して、ルーティングテーブルの生成およびルーティングテーブルを用いたデータの共有処理の一例について説明する。ルーティングテーブルの生成およびデータの共有処理は、システム10に含まれる全ての装置100により実行され得る。
【0131】
図11は、ルーティングテーブルの生成手順の第1の例を示すフローチャートである。
図11に示されるルーティングテーブルの生成手順は、乱数を装置情報として使用する手順である。
【0132】
ステップS1105において、装置100は、自装置の乱数ファイルがあるか否かを判定する。例えば、装置100は、2次記憶装置3に自装置の乱数ファイルがあるか否かを判定し得る。ここでの乱数ファイルとは、
図1を参照して説明した装置情報として使用される乱数を含むファイルである。ある局面において、乱数ファイルは、乱数自体の代わりに、乱数を元に生成された装置情報を含んでいてもよい。装置100は、自装置の乱数ファイルがあると判定した場合(ステップS1105にてYES)、制御をステップS1115に移す。そうでない場合(ステップS1105にてNO)、装置100は制御をステップS1110に移す。
【0133】
ステップS1110において、装置100は、乱数を生成する。装置100は、生成した乱数を含む乱数ファイルを2次記憶装置3に保存する。
【0134】
ステップS1115において、装置100は、乱数ファイルから乱数(装置情報)を読み込む。
【0135】
ステップS1120において、装置100は、マルチキャストで、システム10に含まれる1つ以上の他の装置100に乱数(装置情報)を送信する。
【0136】
ステップS1125において、装置100は、一定時間スリープし、再度ステップS1120の処理を実行する。装置100は、予め定められた回数または全ての他の装置100から返信を受信するまで、ステップS1120およびステップS1125を繰り返してもよい。
【0137】
ステップS1130において、装置100は、新たにスレッドを起動する。ステップS1135以降の処理は、ステップS1120およびステップS1125と並行して実行される。ある局面において、装置100は、ステップS1135以降の処理を実行するためのスレッドを予め起動しておいてもよい。
【0138】
ステップS1135において、装置100は、他の装置100の乱数(装置情報)をマルチキャストのデータを受信する。
【0139】
ステップS1140において、装置100は、受信した乱数(装置情報の値)が自装置の乱数(装置情報の値)より小さいか否かを判定する。装置100は、受信した乱数(装置情報の値)が自装置の乱数(装置情報の値)より小さいと判定した場合(ステップS1140にてYES)、制御をステップS1145に移す。そうでない場合(ステップS1140にてNO)、装置100は、制御をステップS1150に移す。
【0140】
ステップS1145において、装置100は、親装置をルーティングDB314(ルーティングテーブル)に登録する。すなわち、装置100は、自装置の乱数(装置情報の値)より小さい乱数(装置情報の値)を有する装置100を、親装置としてルーティングDB314に登録する。ある局面において、装置100は、自装置の乱数(装置情報の値)より大きい乱数(装置情報の値)を有する装置100を、親装置としてルーティングDB314に登録してもよい。
【0141】
ステップS1150において、装置100は、受信した乱数(装置情報の値)が自装置の乱数(装置情報の値)より大きいか否かを判定する。装置100は、受信した乱数(装置情報の値)が自装置の乱数(装置情報の値)より大きいと判定した場合(ステップS1150にてYES)、制御をステップS1155に移す。そうでない場合(ステップS1150にてNO)、装置100は、制御をステップS1160に移す。
【0142】
ステップS1155において、装置100は、子装置をルーティングDB314(ルーティングテーブル)に登録する。すなわち、装置100は、自装置の乱数(装置情報の値)より大きい乱数(装置情報の値)を有する装置100を、子装置としてルーティングDB314に登録する。ある局面において、装置100は、自装置の乱数(装置情報の値)より小さい乱数(装置情報の値)を有する装置100を、子装置としてルーティングDB314に登録してもよい。
【0143】
ステップS1160において、装置100は、自装置の乱数(装置情報)を消去する。装置100は、他の装置100の乱数と自装置の乱数とが同じ値である場合に本ステップの処理を実行する。なぜならば、ルーティングDB314(ルーティングテーブル)に登録する際に、自装置および他の装置100の順番を決定できないためである。
【0144】
ステップS1165において、装置100は、自装置を再起動する。装置100は、自装置の再起動後、ステップS1105の処理を実行する。すなわち、装置100は、自装置の再起動後、新しい乱数(装置情報)を生成する。
【0145】
図12は、ルーティングテーブルの生成手順の第2の例を示すフローチャートである。
図12に示されるフローチャートは、乱数の代わりに自装置の位置情報を装置情報として用いる点で
図11に示されるフローチャートと異なる。
【0146】
ステップS1205において、装置100は、自装置の位置情報(装置情報)を取得する。ある局面において、自装置の位置情報は2次記憶装置3に保存されていてもよい。他の局面において、装置100は、自装置の位置情報を元に生成された装置情報を使用してもよい。なお、位置情報は、数値等の大小比較ができるフォーマットで表現される。
【0147】
ステップS1210において、装置100は、マルチキャストで、システム10に含まれる1つ以上の他の装置100に自装置の位置情報(装置情報)を送信する。
【0148】
ステップS1215において、装置100は、一定時間スリープし、再度ステップS1210の処理を実行する。装置100は、予め定められた回数または全ての他の装置100から返信を受信するまで、ステップS1210およびステップS1215を繰り返してもよい。
【0149】
ステップS1220において、装置100は、新たにスレッドを起動する。ステップS1125以降の処理は、ステップS1210およびステップS1215と並行して実行される。ある局面において、装置100は、ステップS1225以降の処理を実行するためのスレッドを予め起動しておいてもよい。
【0150】
ステップS1225において、装置100は、他の装置100の位置情報(装置情報)をマルチキャストのデータを受信する。
【0151】
ステップS1230において、装置100は、受信した他の装置100の位置情報の値(装置情報の値)が自装置の位置情報の値(装置情報の値)より小さいか否かを判定する。装置100は、受信した他の装置100の位置情報の値(装置情報の値)が自装置の位置情報の値(装置情報の値)より小さいと判定した場合(ステップS1230にてYES)、制御をステップS11235に移す。そうでない場合(ステップS1230にてNO)、装置100は、制御をステップS1240に移す。
【0152】
ステップS1235において、装置100は、親装置をルーティングDB314(ルーティングテーブル)に登録する。すなわち、装置100は、自装置の位置情報の値(装置情報の値)より小さい位置情報の値(装置情報の値)を有する装置100を、親装置としてルーティングDB314に登録する。ある局面において、装置100は、自装置の位置情報の値(装置情報の値)より大きい位置情報の値(装置情報の値)を有する装置100を、親装置としてルーティングDB314に登録してもよい。
【0153】
ステップS1240において、装置100は、受信した他の装置100の位置情報の値(装置情報の値)が自装置の位置情報の値(装置情報の値)より大きいか否かを判定する。装置100は、受信した他の装置100の位置情報の値(装置情報の値)が自装置の位置情報の値(装置情報の値)より大きいと判定した場合(ステップS1240にてYES)、制御をステップS1245に移す。そうでない場合(ステップS1240にてNO)、装置100は、制御をステップS1250に移す。
【0154】
ステップS1245において、装置100は、子装置をルーティングDB314(ルーティングテーブル)に登録する。すなわち、装置100は、自装置の位置情報の値(装置情報の値)より大きい位置情報の値(装置情報の値)を有する装置100を、子装置としてルーティングDB314に登録する。ある局面において、装置100は、自装置の位置情報の値(装置情報の値)より小さい位置情報の値(装置情報の値)を有する装置100を、子装置としてルーティングDB314に登録してもよい。
【0155】
ステップS1250において、装置100は、エラーを表示する。一例として、装置100は、自装置に内蔵または接続されたディスプレイにエラーを表示してもよい。他の局面において、装置100は、管理者の端末にエラー通知を送信してもよい。装置100は、他の装置100の位置情報と自装置の位置情報とが同じである場合(自装置または他の装置100に設定された位置情報に誤りがある場合)に本ステップの処理を実行する。なぜならば、装置100は、ルーティングDB314(ルーティングテーブル)に登録する際に、自装置および他の装置100の順番を決定できないためである。
【0156】
ステップS1255において、装置100は、自装置を再起動する。ある局面において、装置100は、自装置の再起動後、管理者の端末に自装置の位置情報の設定要求を送信し、自装置の位置情報の入力を受け付けた後に、ステップS1205の処理を実行してもよい。他の局面において、装置100は、自装置の再起動後、位置情報を自動で修正して、ステップS1205の処理を実行してもよい。
【0157】
図13は、更新された認証情報の共有手順の一例を示すフローチャートである。ある局面において、装置100は、定期的に
図13に示される処理を実行してもよい。他の局面において、装置100は、自装置において新しいユーザーが登録された、または、他の装置100から新しいユーザーの認証情報を受信した場合に、
図13に示される処理を実行してもよい。
【0158】
ステップS1310において、装置100は、認証情報の更新を確認する。ある局面において、装置100は、自装置において新しいユーザーが登録された、または、他の装置100から新しいユーザーの認証情報を受信した場合に、プログラムで使用するためのフラグを立てていてもよい。この場合、装置100は、フラグを確認することで、認証情報の更新を確認し得る。
【0159】
ステップS1320において、装置100は、自装置または他の装置100において、更新された認証情報か否かを判定する。装置100は、自装置または他の装置100において、更新された認証情報があると判定した場合(ステップS1320にてYES)、制御をステップS1330に移す。そうでない場合(ステップS1320にてNO)、装置100は制御をステップS1310に移す。なお、装置100は、一定時間の経過後に、ステップS1310の処理を再度実行してもよい。
【0160】
ステップS1330において、装置100は、ルーティングDB314から、自装置に隣接する子装置のIPアドレスを取得する。自装置に隣接する子装置とは、自装置に最も近い装置情報を有する子装置である。
図1を参照して説明された装置100Aのテーブルを例に説明すると、自装置に隣接する子装置は装置100Bである。
【0161】
ステップS1340において、装置100は、自装置に隣接する子装置に更新された認証情報を送信する。ある局面において、装置100は、更新された認証情報だけを自装置に隣接する子装置に送信してもよい。また、他の局面において、装置100は、認証情報DB311に格納される全てのデータを自装置に隣接する子装置に送信してもよい。また、他の局面において、装置100は、自装置に隣接する親装置および子装置の両方に更新された認証情報を送信してもよい。
【0162】
ステップS1310~ステップS1340の処理により、全ての装置100は、認証情報を共有することができる。これにより、各装置100は、ローカルに認証情報を有するため、単独で迅速にユーザーの認証処理を実行し得る。
【0163】
図14は、更新された未登録者情報の共有手順の一例を示すフローチャートである。ある局面において、装置100は、定期的に
図14に示される処理を実行してもよい。他の局面において、装置100は、自装置において未登録者情報を新たに登録した、または、他の装置100から新しい未登録者情報を受信した場合に、
図14に示される処理を実行してもよい。
【0164】
ステップS1410において、装置100は、未登録者情報の更新を確認する。ある局面において、装置100は、自装置において新しい未登録者情報が登録された、または、他の装置100から新しい未登録者情報を受信した場合に、プログラムで使用するためのフラグを立てていてもよい。この場合、装置100は、フラグを確認することで、未登録者情報の更新を確認し得る。
【0165】
ステップS1420において、装置100は、自装置または他の装置100において、未登録者情報の更新があるか否かを判定する。装置100は、自装置または他の装置100において、未登録者情報の更新があると判定した場合(ステップS1420にてYES)、制御をステップS1430に移す。そうでない場合(ステップS1420にてNO)、装置100は制御をステップS1410に移す。なお、装置100は、一定時間の経過後に、ステップS1410の処理を再度実行してもよい。
【0166】
ステップS1430において、装置100は、ルーティングDB314から、自装置に隣接する親装置および子装置のIPアドレスを取得する。自装置に隣接する親装置とは、自装置に最も近い装置情報を有する親装置である。自装置に隣接する子装置とは、自装置に最も近い装置情報を有する子装置である。
図1を参照して説明された装置100Aのテーブルを例に説明すると、自装置に隣接する親装置は装置100Dであり、自装置に隣接する子装置は装置100Bである。
【0167】
ステップS1440において、装置100は、自装置に隣接する子装置に更新された未登録者情報を送信する。ある局面において、装置100は、更新された未登録者情報だけを自装置に隣接する親装置および子装置に送信してもよい。また、他の局面において、装置100は、未登録者情報DB313に格納される全てのデータを自装置に隣接する親装置および子装置に送信してもよい。
【0168】
ステップS1410~ステップS1440の処理により、全ての装置100は、未登録者情報を共有することができる。これにより、各装置100は、連携して、未登録者の足取りを追跡し得る。
【0169】
図15は、更新された各種ログの共有手順の一例を示すフローチャートである。ある局面において、装置100は、定期的に
図15に示される処理を実行してもよい。他の局面において、装置100は、自装置においてログを新たに登録した、または、他の装置100から新しいログを受信した場合に、
図15に示される処理を実行してもよい。
【0170】
ステップS1510において、装置100は、ログ(自装置のログまたは子装置のログ)の更新を確認する。ある局面において、装置100は、自装置において新しいログが登録された、または、他の装置100から新しいログを受信した場合に、プログラムで使用するためのフラグを立てていてもよい。この場合、装置100は、フラグを確認することで、ログの更新を確認し得る。
【0171】
ステップS1520において、装置100は、自装置または他の装置100において、ログの更新があるか否かを判定する。装置100は、自装置または他の装置100において、ログの更新があると判定した場合(ステップS1520にてYES)、制御をステップS1530に移す。そうでない場合(ステップS1520にてNO)、装置100は制御をステップS1510に移す。なお、装置100は、一定時間の経過後に、ステップS1510の処理を再度実行してもよい。
【0172】
ステップS1530において、装置100は、ルーティングDB314から、自装置に隣接する親装置のIPアドレスを取得する。
【0173】
ステップS1540において、装置100は、自装置に隣接する親装置に更新されたログを送信する。
【0174】
ステップS1550において、装置100は、送信済みのログを削除する。
ステップS1510~ステップS1550の処理により、システム10は、ルーティング経路の最上流に存在する装置100に全てのログを集約することができる。これにより、ルーティング経路の最上流に存在する装置100以外の他の装置100のストレージの使用量を抑制し得る。
【0175】
ある局面において、全ての装置100がログを保存してもよい。この場合、各装置100は、自装置に隣接する親装置および子装置の両方にログを送信し得る。例えば、各装置100は、親装置から受信したログを子装置に送信し、子装置から受信したログを親装置に送信し得る。こうすることで、最上流の装置100が故障した場合でも、他の装置100にログが残っているため、システム10全体としてログを保持することができる。
【0176】
<F.ユーザーの行為の許可・不許可の判定および追跡>
次に
図16~
図18を参照して、ユーザーの行為の許可・不許可の判定およびユーザーの行為の記録処理について説明する。
図16~
図18に示される処理は、システム10に含まれる全ての装置100により実行されてもよいし、ユーザーの登録用装置として選択された装置100以外の装置100により実行されてもよい。
【0177】
図16は、ユーザーの行為の許可・不許可の判定の全体処理の一例を示すフローチャートである。
図16に示される処理は、生体センサー110または装置100が付近に人を検知するごとに実行されてもよい。
【0178】
ステップS1610において、装置100は、ユーザーの動作記録を取得する。より具体的には、生体センサー110または装置100に接続されたカメラ等から、ユーザーの画像、映像、音声、それ以外の任意の情報、または、これらの情報の組合せを動作記録として取得する。
【0179】
ステップS1620において、装置100は、動作記録を解析して、ユーザーの行動を抽出する。動作記録の解析には、機械学習モデル、パターンマッチング等の任意の既存技術が使用されてもよい。一例として、装置100は、ユーザーが映った映像または画像を解析して、ユーザーが会議室のドアを開けようとしている動作等を検出し得る。
【0180】
ステップS1630において、装置100は、生体センサー110から生体特徴量を取得する。本ステップの処理は、ステップS1610およびステップS1620と同時並行的に実行されてもよい。取得された生体特徴量は、ユーザーの認証に使用される。
【0181】
ステップS1640において、装置100は、装置100の検出範囲にいる人物により、特定の行為が実行されたか否かを判定する。特定の行為は、装置100が紐付けられているサービスに関連する動作等である。ある局面において、装置100は、2次記憶装置3に格納された特定の行為のリスト情報と、動作記録から抽出したユーザーの行動とを比較することによって、特定の行為が実行されたか否かを判定してもよい。装置100は、装置100の検出範囲にいる人物により、特定の行為が実行されたと判定した場合(ステップS1640にてYES)、制御をステップS1650に移す。そうでない場合(ステップS1640にてNO)、装置100は処理を終了する。
【0182】
ステップS1650において、装置100は、ユーザーの行為の許可判定処理を実行する。ユーザーの行為の許可判定処理の詳細は、
図17を参照して説明する。
【0183】
図17は、ユーザーの行為の許可判定処理の一例を示すフローチャートである。
図17に示される処理は、ステップS1650のサブルーチンとして実行される。
【0184】
ステップS1710において、装置100は、認証情報DB311に登録された生体特徴量を取得する。
【0185】
ステップS1720において、装置100は、認証情報DB311に登録された生体特徴量の中に、生体センサー110から取得した生体特徴量と一致する(または一定以上類似する)生体特徴量が存在するか否かを判定する。装置100は、認証情報DB311に登録された生体特徴量の中に、生体センサー110から取得した生体特徴量と一致する(または一定以上類似する)生体特徴量が存在すると判定した場合(ステップS1720にてYES)、制御をステップS1730に移す。そうでない場合(ステップS1720にてNO)、装置100は、制御をステップS1760に移す。
【0186】
ステップS1730において、装置100は、抽出された行為が、認証されたユーザーに許可されている行為か否かを判定する。装置100は、認証情報に含まれるユーザー権限を参照することで、ユーザーに許可されている行為を確認し得る。装置100は、抽出された行為が、認証されたユーザーに許可されている行為であると判定した場合(ステップS1730にてYES)、制御をステップS1740に移す。そうでない場合(ステップS1730にてNO)、装置100は、制御をステップS1770に移す。
【0187】
ステップS1740において、装置100は、ユーザーの行為を許可する。すなわち、装置100は、当該装置100に紐付けられているサービスをユーザーに提供する。
【0188】
ステップS1750において、装置100は、ユーザーまたは未登録者の行為のログを記録する。当該ログは、例えば、行為を実行しようとした人物のユーザーIDまたは未登録者IDと、行為の内容を示す情報と、行為を許可したか否かを示す情報と、装置100のIDと、タイムスタンプとを含んでいてもよい。
【0189】
ステップS1760において、装置100は、抽出された行為が、未登録者による行為であると判定する。または、装置100は、認証処理が失敗したため、エラーをログとして記録してもよい。
【0190】
ステップS1770において、装置100は、ユーザーまたは未登録者の行為を許可しない(禁止する)。すなわち、装置100は、当該装置100に紐付けられているサービスをユーザーまたは未登録者に提供しない。ある局面において、装置100は、装置100に内蔵または接続されたディスプレイまたはスピーカーから、行為が許可されていないことを示すメッセージを出力してもよい。
【0191】
図18は、更新された許可判定のログの共有手順の一例を示すフローチャートである。ある局面において、装置100は、定期的に
図18に示される処理を実行してもよい。他の局面において、装置100は、自装置において許可判定のログを新たに登録した、または、他の装置100から新しい許可判定のログを受信した場合に、
図18に示される処理を実行してもよい。他の局面において、許可判定のログは、サービス提供ログに含まれていてもよい。この場合、装置100は、
図16に示される処理を実行するだけで、許可判定のログを各装置100間で共有し得る。
【0192】
ステップS1810において、装置100は、許可判定のログ(自装置のログまたは他の装置100のログ)の更新を確認する。ある局面において、装置100は、自装置において新しい許可判定のログが登録された、または、他の装置100から新しい許可判定のログを受信した場合に、プログラムで使用するためのフラグを立てていてもよい。この場合、装置100は、フラグを確認することで、許可判定のログの更新を確認し得る。
【0193】
ステップS1820において、装置100は、自装置または他の装置100において、許可判定のログの更新があるか否かを判定する。装置100は、自装置または他の装置100において、許可判定のログの更新があると判定した場合(ステップS1820にてYES)、制御をステップS1830に移す。そうでない場合(ステップS1820にてNO)、装置100は制御をステップS1810に移す。なお、装置100は、一定時間の経過後に、ステップS1810の処理を再度実行してもよい。
【0194】
ステップS1830において、装置100は、ルーティングDB314から、自装置に隣接する親装置のIPアドレスを取得する。
【0195】
ステップS1840において、装置100は、自装置に隣接する親装置に更新された許可判定のログを送信する。
【0196】
ステップS1850において、装置100は、送信済みの許可判定のログを削除する。システム10は、許可判定のログも記録することで、ユーザーが各サービスに不正にアクセスしようとしていないか否かを監視することができる。ある局面において、全ての装置100が許可判定のログを保存してもよい。この場合、許可判定のログは、ルーティング経路の上流だけでなく、下流にも送信される。
【0197】
以上説明した通り、本実施の形態に従うシステム10は、生体認証用の認証情報を集中管理する中央サーバを備えない認証システムである。システム10に含まれる各装置100は、ルーティング経路を自律的に生成することで、認証情報、ログ等を共有することができる。これにより、各装置100は、認証処理時にローカルの認証情報を使用することで、高速に生体認証を完了することができる。
【0198】
また、システム10は、一部の装置100が故障した場合でも、各装置100間でルーティングテーブルを再構築することができるため、冗長性に優れる。
【0199】
また、各装置100は、ユーザーIDからハッシュキーに変換し、当該ハッシュキーをユーザーIDとして認証情報に含めることができる。これにより、一部の装置100が盗まれてもユーザー個人を特定する情報の流出を抑制し得る。
【0200】
また、各装置100は、ルーティングテーブルを用いて、任意のログ(認証ログ、サービス提供ログ、未登録者のログ、許可判定のログ等)をルーティング経路の最上流の装置100に集約、または、各装置100で共有し得る。これにより、システム10の管理者は、各装置100で記録されたログを一元的に管理し得る。
【0201】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内で全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された開示内容は、可能な限り、単独でも、組合わせても、実施することが意図される。
【符号の説明】
【0202】
1 CPU、2 1次記憶装置、3 2次記憶装置、4 外部機器インターフェイス、5 入力インターフェイス、6 出力インターフェイス、7 通信インターフェイス、10 システム、100 装置、110 生体センサー、111 生体情報取得部、112 生体特徴量抽出部、113 通信部、114 生体特徴量比較部、301 生体特徴量取得部、302 認証情報登録部、303 認証部、304 サービス提供部、305 未登録者情報登録部、306 データ取得部、307 データ出力部、308 ルーティング部、309 ログ生成部、310 記憶部、311 認証情報DB、312 ログDB、313 未登録者情報DB、314 ルーティングDB。