以下、実施形態について、図面を参照しながら詳細に説明する。具体的には、まず、図1〜2を参照して第1実施形態について説明する。その後、環境同士が一致するか否かの判定結果を、利用者の個人認証に利用する第2実施形態について、図3〜28を参照して説明する。さらに、環境同士が一致するか否かの判定結果を、第2実施形態とは異なる方法で個人認証に利用する第3実施形態について、図29〜34を参照して説明する。最後に、各種変形例についても説明する。
図1は、情報処理装置の構成と情報処理装置が置かれる環境の例を説明する図である。図1に示すように、第1実施形態の情報処理装置100は、アドレス認識部101と、マッピング部102と、分布認識部103と、判定部104を有する。情報処理装置100内のこれら各部の動作については後述する。
なお、情報処理装置100の具体例は、PC(Personal Computer)等の汎用コンピュータ、携帯電話機、スマートフォン、タブレット型あるいはその他の各種携帯情報端末などである。情報処理装置100は、CPUと、RAM(Random Access Memory)と、ハードディスク装置等の不揮発性記憶装置と、有線、無線または双方の通信インタフェイスなどの、種々のハードウェアを備える。
また、説明の便宜上、第1の時点において情報処理装置100が存在する環境を「第1の環境」といい、第2の時点において情報処理装置100が存在する環境を「第2の環境」という。図1の例では、第1の環境110内には、情報処理装置100に加えて、他の装置131〜134が存在する。また、第2の環境120内には、情報処理装置100に加えて、他の装置132〜135が存在する。
第1の環境110と第2の環境120を比較すると、3つの装置132〜134は双方の環境に存在し、装置131は第1の環境110にのみ存在し、装置135は第2の環境120にのみ存在する。なお、以下の説明においては、ある装置がある環境に「存在する」とは、単に当該装置が物理的な物体として存在しているだけでなく、当該装置が情報処理装置100と通信可能であることをいう。
例えば、装置131〜134は、第1の時点において、有線LAN(Local Area Network)を介して、または無線通信により、情報処理装置100と通信可能な装置である。同様に、装置132〜135は、第2の時点において、有線LANを介して、または無線通信により、情報処理装置100と通信可能な装置である。
例えば、装置131は、物理的には第2の時点においても情報処理装置100の近傍に存在するものの、電源が切断されているのかもしれない。あるいは、装置131は、第2の時点の前に、物理的に情報処理装置100から離れた場所に持ち去られてしまったのかもしれない。しかし、どちらの場合でも、装置131は、情報処理装置100と第2の時点において通信することができない。したがって、装置131は、第2の環境120の環境には存在しない。
図1に例示した装置131〜135は、例えば、情報処理装置100と同様に、汎用コンピュータ、携帯電話機、スマートフォン、タブレット型あるいはその他の各種携帯情報端末などであってもよい。あるいは、装置131〜135は、ルータや無線LANアクセスポイントなどの、ネットワーク中継装置であってもよい。または、装置131〜135は、ネットワークに接続されたプリンタなどの装置であってもよい。あるいは、装置131〜135は、Bluetooth(登録商標)などの標準的な無線通信技術によって通信可能な、その他の装置(例えば、キーボード、マウス、音楽プレーヤ、ヘッドセットなど)であってもよい。
さて、情報処理装置100は、「第1の環境110と第2の環境120が許容範囲内で同じ環境と見なせるか否か」を判定する。
具体的には、アドレス認識部101は、情報処理装置100が存在する環境内に存在する他の装置のアドレスを認識する。例えば、アドレス認識部101は、第1の時点では、第1の環境110内に存在する装置131〜134のアドレスを認識し、第2の時点では、第2の環境120内に存在する装置132〜135のアドレスを認識する。
そして、マッピング部102は、アドレス認識部101が認識した各アドレスを、座標空間上の点にマッピングする。座標空間は、例えば2次元空間が好適だが、マッピング部102は、3次元以上の座標空間上の点にアドレスをマッピングしてもよい。
また、分布認識部103は、第1の時点においてアドレス認識部101が認識したアドレス(すなわち、図1の例では、装置131〜134のアドレス)をそれぞれマッピング部102がマッピングした点の座標を用いて、第1の分布を認識する。同様に、分布認識部103は、第2の時点においてアドレス認識部101が認識したアドレス(すなわち、図1の例では、装置132〜135のアドレス)をそれぞれマッピング部102がマッピングした点の座標を用いて、第2の分布を認識する。
そして、判定部104は、2つの分布が一致するか否かを規定する分布一致基準に照らして、第1の分布と第2の分布が一致するか否かを判定する。なお、分布一致基準は許容範囲に応じて定められる。分布一致基準は、具体的には、例えば、許容範囲を規定する閾値の形で、判定部104に予め設定されてもよい。
判定部104は、「第1の分布と第2の分布が一致する」と判定した場合は、「第1の環境110と第2の環境120が同じである」という第1の結果を出力する。逆に、判定部104は、「第1の分布と第2の分布が一致しない」と判定した場合は、「第1の環境110と第2の環境120が異なる」という第2の結果を出力する。
なお、以上説明したアドレス認識部101は、例えば、CPUと通信インタフェイスにより実現されてもよい。また、マッピング部102、分布認識部103および判定部104は、所定のプログラムを実行するCPUにより実現されてもよい。
続いて、図2を参照して、情報処理装置100の動作についてさらに詳しく説明する。図2は、第1実施形態の判定処理のフローチャートである。
ステップS101でアドレス認識部101は、第1の時点において情報処理装置100が存在する第1の環境110内に存在する、1つ以上の他の装置(図1の例では装置131〜134)のアドレスを認識する。なお、アドレス認識部101が認識するアドレスは、下記の理由から、時間に応じて変化し得るアドレスではなく、時間によらず不変の装置固有のアドレスである。
仮に、時間に応じて動的に変化し得るアドレスが使われると、例えば同じ装置132のアドレスが、第1の時点と第2の時点で異なる可能性がある。マッピング部102が用いるマッピングアルゴリズムにもよるが、一般に、異なるアドレスは、異なる点にマッピングされる。逆に言えば、異なるアドレスが偶然同じ点にマッピングされる確率が、無視しても構わない程度に低いようなマッピングアルゴリズムを、マッピング部102は採用する。
すると、第1の時点と第2の時点で同じ装置132に異なるアドレスが割り当てられることが原因で、第1と第2の分布の一致度が低下することになる。その結果、第1の環境110と第2の環境120の一致度が適切に判定されなくなってしまう。以上の理由から、アドレス認識部101は、時間によらず不変の装置固有のアドレスを認識する。
例えば、IP(Internet Protocol)アドレスは、固定的に割り当てられていることもあるが、DHCP(Dynamic Host Configuration Protocol)により動的に割り当てられることもある。よって、IPアドレスは変化する可能性がある。
それに対して、MAC(Media Access Control)アドレスは装置に固有のアドレスである。よって、アドレス認識部101は、例えばMACアドレスを認識することが好ましい。
また、製造シリアル番号は、装置に固有の情報なので、「装置に固有のアドレス」と見なすことも可能である。しかし、アドレス認識部101は、他の装置131〜135のベンダに依存しないプロトコルによってアドレスを認識することが望ましい。なぜなら、特定のベンダの少数の装置のみから環境を認識するよりは、多様なベンダのより多くの装置から環境を認識する方が、判定部104による判定の精度が良いと期待されるからである。
また、製造シリアル番号の取得には、ベンダ依存の特殊なプロトコルが必要な場合が多いが、MACアドレスは、広く一般に使われているプロトコルによって認識可能である。よって、MACアドレスは、「装置に固有であり変化しない」という観点からだけでなく、「一般的なプロトコルで認識可能」という観点からも、アドレス認識部101が認識するアドレスの種類として好適である。
さて、上記のようにステップS101でアドレス認識部101がアドレスを認識した後、ステップS102でマッピング部102は、アドレス認識部101が第1の時点において認識した第1の個々のアドレスを、それぞれ座標空間上の点にマッピングする。例えば、マッピング部102は、以下のようにして、1つのアドレスを、対応する1つの点へとマッピングしてもよい。
すなわち、マッピング部102は、上記「1つのアドレス」を示すビット列から、複数の所定のビット位置のビットを抽出する。そして、マッピング部102は、複数の所定のビット位置のビットを連結した部分ビット列が示す整数を定数で割った剰余を算出する。こうして算出された剰余が、上記「1つのアドレス」に対応する上記「1つの点」の座標空間における各座標軸の座標として使われてもよい。
例えば、座標空間として、2次元座標空間が使われてもよい。また、アドレスが上記のようにMACアドレスの場合、アドレスを示すビット列の長さは6オクテット(すなわち48ビット)である。よって、マッピング部102は、6オクテットの一部のビット(例えば「奇数オクテットに属するビットのみ」や「奇数ビットのみ」など)を、X座標の算出用に抽出し、抽出したビットを連結した部分ビット列を得ることができる。
すると、マッピング部102は、得られた部分ビット列が示す整数を所定の定数で割ることで、剰余をX座標として得ることができる。マッピング部102は、同様にしてY座標も得ることができる。例えば上記のようにしてX座標とY座標を算出することで、マッピング部102は、アドレスをXY座標空間上の点にマッピングすることができる。
なお、剰余を用いることには、複数のアドレスをそれぞれマッピングした複数の点が座標空間において適度に散らばる効果がある。その理由は以下のとおりである。
例えば、マッピング部102が、6オクテットのMACアドレスのうち3オクテットを使ってX座標を算出し、残りの3オクテットを使ってY座標を算出するとする。もしマッピング部102が剰余を算出せず、3オクテットの長さの部分ビット列が表す整数自体を座標として使うとすると、3オクテットは24ビットなので、X座標とY座標の範囲は式(1)と(2)のとおりである。
0≦X≦224−1 (1)
0≦Y≦224−1 (2)
ここで、(224−1)は1600万を超える値である。つまり、例えば図1の第1の環境110の場合、1600万×1600万よりも多くの格子点を含む非常に広い空間上に、4つの装置131〜134に対応する4つの点が配置される。したがって、座標空間が非常にスパース(sparse)に使われることは明らかであり、座標空間の使用効率が悪い。また、分布が非常にスパースな場合、座標空間全体を使っての分布同士の比較では、正確な判定結果を得るのが難しいことがある。
そして、座標空間の使用効率を上げる(換言すれば、スパースネスを避ける)には、単純なスケール変換によって座標空間を縮小することも可能だが、単純なスケール変換はあまり好ましくない。なぜなら、偶然近くの点にマッピングされた2つのアドレスが、スケール変換により同じ1点に縮退してしまう可能性があるからである。
例えば、装置131〜133のアドレスがそれぞれマッピングされた3つの点が、座標空間上で互いに近傍にあり、装置134のアドレスがマッピングされた点だけが離れているかもしれない。その場合、装置131〜133のアドレスがマッピングされた点が1点に縮退してしまうと、第1の環境110が適切に表現されなくなってしまう。
他方、マッピング部102が上記のように剰余を用いたマッピングアルゴリズムを採用する場合、座標空間の使用効率を上げることが可能である。また、剰余を用いたマッピングアルゴリズムによれば、マッピング部102が複数のアドレスをそれぞれマッピングした複数の点が、座標空間において適度に散らばると期待される。
さて、上記のようにステップS102でマッピングが行われた後、ステップS103で分布認識部103は、第1の個々のアドレスがマッピングされた第1の個々の点の座標を用いて、第1の分布を認識する。第1の分布は第1の環境110を表す。
なお、後に判定部104が分布同士を比較するのに用いるアルゴリズムとしては、例えば、指紋や静脈パターンを用いた生体認証で利用される特徴点分布同士の比較アルゴリズムが利用可能である。ここで、指紋や静脈パターンの特徴点は、座標と角度により表されることから、分布認識部103は、第1の分布を認識するのに、マッピング部102がマッピングした第1の個々の点の座標だけでなく、何らかの角度を用いてもよい。
例えば、指紋認証で使われる特徴点の一例は端点である。そして、端点の位置は座標により表され、当該端点における隆線の方向が角度により表される。このように座標と角度で表される特徴点の分布同士を比較し、分布間の一致度を算出するためのアルゴリズムは、生体認証の分野で広く使われている。
そこで、分布認識部103は、生体認証の分野で使われる特徴点分布同士の比較アルゴリズムを判定部104が利用できるようにするために、マッピング部102がマッピングした点の座標だけでなく、何らかの角度を用いて、第1の分布を認識してもよい。例えば、分布認識部103は、ある1つの点に関する角度として、何らかの基準点に対する、当該1つの点の角度を算出してもよい。基準点の例は、マッピング部102によりマッピングされた1つまたは複数の第1の個々の点の重心である。
そして、ステップS104では、アドレス認識部101が、第2の時点において情報処理装置100が存在する第2の環境120内に存在する、1つ以上の他の装置(図1の例では装置132〜135)のアドレスを認識する。ステップS104の処理はステップS101と類似である。
また、ステップS105では、マッピング部102が、アドレス認識部101が第2の時点において認識した第2の個々のアドレスを、それぞれ座標空間上の点にマッピングする。ステップS105におけるマッピングアルゴリズムは、ステップS102と同様である。
さらに、ステップS106では、分布認識部103が、第2の個々のアドレスがマッピングされた第2の個々の点の座標を用いて、第2の分布を認識する。分布認識部103は、ステップS106での第2の分布の認識においても、判定部104の判定アルゴリズムに応じて、適宜、角度を用いてもよい。
なお、図2におけるステップS101〜S106の実行順序は、適宜入れ替えられてもよい。つまり、ステップS102〜S103はステップS101の後かつステップS107の前ならば、いつ実行されてもよい。また、ステップS105〜S106は、ステップS104の後かつステップS107の前ならば、いつ実行されてもよい。したがって、例えば、ステップS101、S104、S102、S105、S103、S106という順序で処理が進んでもよい。
いずれにしろ、ステップS101〜S106のすべてが終了した後、ステップS107で判定部104は、第1の環境110と第2の環境120が許容範囲内で一致するか否かを判断する。つまり、判定部104は、ステップS103で分布認識部103が認識した第1の分布とステップS106で分布認識部103が認識した第2の分布が分布一致基準に照らして一致するか否かを判断する。
なお、分布一致基準は、2つの分布が一致するか否かを規定する任意の基準である。分布一致基準は、予め決められていてもよい。分布一致基準は、典型的には、1つ以上の閾値により規定される。
そして、判定部104は、ステップS107で「第1の分布と第2の分布が一致する」と判定した場合、続いてステップS108で「第1の環境110と第2の環境120が同じである」という第1の結果を出力する。また、判定部104は、ステップS107で逆に「第1の分布と第2の分布が一致しない」と判定した場合は、ステップS109で「第1の環境110と第2の環境120が異なる」という第2の結果を出力する。以上のようにして第1または第2の結果が出力されると、図2の判定処理も終了する。
なお、出力された第1または第2の結果の用途は任意である。例えば、環境に応じた個人認証を実現するために、情報処理装置100は、第1と第2のどちらの結果が出力されたかに応じて、個人認証のスキームまたはパラメタを切り換えてもよい。
個人認証のスキームの例は、例えば、生体認証、ID(identification)とパスワードによる認証、予め登録された特定の装置が情報処理装置100の近傍に存在するか否かによる認証などである。また、個人認証のパラメタの例は、例えば、生体認証における照合閾値である。
あるいは、情報処理装置100は、第1と第2のどちらの結果が出力されたかに応じて、ネットワークやアプリケーションの設定に関する設定ファイルを切り換えてもよい。
そして、例えば、第1の環境110は、予め決められた特定の環境でもよい。つまり、特定の環境に情報処理装置100があるときに、ステップS101の処理が実行されてもよい。
すると、情報処理装置100は、現在情報処理装置100が置かれた環境を第2の環境120として図2の判定処理を行うことにより、現在の環境が上記特定の環境であるか否かを判定することができる。つまり、情報処理装置100は、「現在情報処理装置100が置かれた環境が上記特定の環境と一致するか否か」の判定が求められる時点において、ステップS104の処理を実行すればよい。
なお、現在の環境が上記特定の環境であるか否かの判定を可能とするために、アドレス認識部101が、第1の環境110で認識した各アドレスを記憶し続けてもよい。または、第1の環境110の各アドレスをマッピングした点の座標を、マッピング部102が記憶し続けてもよい。あるいは、分布認識部103が第1の分布を記憶し続けてもよい。アドレス、座標、または第1の分布を記憶し続けるため、アドレス認識部101、マッピング部102、または分布認識部103が、ハードディスク装置などの不揮発性記憶装置を含んでもよい。
また、「情報処理装置100が現在置かれた環境が、予め決められた特定の環境ならば、利用者が認証されやすいようにし、情報処理装置100が現在置かれた環境が、上記特定の環境でなければ、利用者の個人認証をより厳格に行う」という運用も可能である。
例えば、照合スコアが照合閾値以上の場合に利用者が認証され、照合スコアが照合閾値未満の場合に利用者が認証されない生体認証システムでは、照合閾値の値が小さいほど利用者は認証されやすく、照合閾値の値が大きいほど認証は厳格である。換言すれば、照合閾値の値が小さければ、本人拒否率(False Reject Rate;FRR)が下がるので利便性(user-friendliness)が上がるが、他人受入率(False Accept Rate;FAR)が上がるのでセキュリティは下がる。逆に、照合閾値の値が大きければ、他人受入率が下がるのでセキュリティは上がるが、本人拒否率が上がるので利便性は下がる。
例えば、上記特定の環境としての第1の環境110は、情報処理装置100自体による個人認証以外のセキュリティ機構によってセキュリティが確保される安全な環境であることが望ましい。
例えば、情報処理装置100が、ある会社の職員の業務用のノートPCであるとする。この場合、当該職員が会社内の自席で業務を行うときの環境は、ある程度安全である。なぜなら、例えば、会社の建物の入り口で守衛によりIDカードがチェックされたり、建物または部屋の入り口でIDカードリーダによってIDカードがチェックされたりするからである。また、会社内には他の多くの職員もいる。
よって、悪意を持った第3者が、他の職員に気付かれずに、IDカードのチェックをも潜り抜けて、会社内で情報処理装置100を使うことは困難である。したがって、情報処理装置100の正規の利用者である職員の会社内の席がある環境は、比較的安全な環境である。
他方、情報処理装置100の正規の利用者である職員は、情報処理装置100を携帯して外出し、社外で業務を行うこともあるかもしれない。しかし、社外の環境は様々である。また、職員が情報処理装置100をどこかに置き忘れたり、悪意を持った第3者が情報処理装置100を盗んだりするかもしれない。よって、情報処理装置100が社外で使われる場合には、情報処理装置100が社内で使われる場合と比較して、生体認証の照合閾値を下げることの危険性が大きい。
そこで、第1実施形態は、「情報処理装置100が現在置かれている環境は、情報処理装置100自体による個人認証以外のセキュリティ機構によってセキュリティが確保される安全な環境であるか否か」の判定のために利用されてもよい。第1実施形態によれば、情報処理装置100は、第1の環境110と第2の環境120が許容範囲内で同じ環境であるか否かを自動的に判定することができる。よって、第1の環境110が上記の安全な環境であれば、判定部104による判定結果に応じて生体認証の照合閾値の切り換えを行うことによって、セキュリティと利便性の両立が可能となる。
また、アドレス認識部101が自動的にアドレスを認識するので、利用者が手作業で第1の環境110内の装置131〜134のアドレスを登録する必要もない。利用者の手作業が不要なことは、単に利用者の手間を減らせるという利点だけでなく、セキュリティの利用者依存性をなくせるという利点ももたらす。以下に、第1実施形態の利点の理解を助けるため、第1比較例と第2比較例について説明する。
第1比較例の情報処理装置は、予め決められた特定の環境(例えば、上記のような安全な環境)において情報処理装置の周辺に存在する他の装置のアドレスを認識する。あるいは、第1比較例の情報処理装置は、上記の特定の環境において情報処理装置の周辺に存在する他の装置のアドレスを指定する入力を利用者から受け付ける。第1比較例の情報処理装置は、情報処理装置自身が認識したアドレス、または利用者から入力されたアドレスを第1のアドレスリストにまとめ、第1のアドレスリストを記憶する。また、第1比較例の情報処理装置は、現在情報処理装置が置かれた環境において情報処理装置の周辺に存在する他の装置のアドレスを認識し、第2のアドレスリストを作成する。
そして、第1比較例の情報処理装置は、第1と第2のアドレスリストを比較し、2つのアドレスリストが完全に一致すれば、「情報処理装置が現在置かれた環境は、予め決められた特定の環境である」と判定する。逆に、2つのアドレスリストが一致しなければ、第1比較例の情報処理装置は、「情報処理装置が現在置かれた環境は、予め決められた特定の環境ではない」と判定する。
以上のような第1比較例の欠点は明らかである。すなわち、第1比較例では、情報処理装置が第1のアドレスリストを作成するときに、特定の環境に存在する他の各装置には電源が入っていなくてはならない。なぜなら、電源が入っていない装置のアドレスを情報処理装置が認識することはできないからである。また、情報処理装置が特定の環境で使われる場合に、正しい判定結果を得るには、やはり他の各装置には電源が入っていなくてはならない。結局、第1比較例では、他の各装置に電源が入っているか否かに利用者自身が注意を払う必要がある。
そこで、以上のような第1比較例の欠点を克服するため、以下の第2比較例も考えられる。第2比較例の情報処理装置は、第1比較例と同様にして第1と第2のアドレスリストを作成する。ただし、第2比較例の情報処理装置は、2つのアドレスリストの比較において重み付けを行う点で、第1比較例の情報処理装置とは異なる。
特定の環境に存在する複数の装置の中で、例えばルータやサーバコンピュータなどの一部の装置は、常時電源が入っているかもしれないが、他の装置は、電源が切断されている期間が比較的長いかもしれない。また、デスクトップ型PCなど固定的に設置される一部の装置は、電源さえ入っていれば、環境内に固定的に存在する。しかし、環境外に持ち出されることのある携帯型の装置は、たとえ常に電源が入っていたとしても、環境内に固定的に存在するとは限らない。
そこで、第2比較例では、情報処理装置が適切な重み付けによって第1と第2のアドレスリストを比較できるようにするため、特定の環境に存在する各装置についての重みが予め決められる。重みは、例えば、電源の入れられている時間の長さや装置の種類などに応じて決められてもよく、適切な重み付けがなされていれば、第2比較例の情報処理装置の判定精度も高まるであろう。
しかしながら、適切な重みは、個々の装置の具体的な運用や種類などに依存する。そして、装置の運用にはヒューマンファクタも関わることから、適切な重みを機械的に決めることは難しい。
また、情報処理装置の利用者が、利用者自身の裁量で重みを決めて情報処理装置に重みを設定することも可能だが、適切な重みが得られるまで利用者は分析や試行錯誤をしなくてはならない。そのため、利用者の負担が大きい。さらに、利用者が重みを設定する場合は、環境の判定精度が、利用者の知識やスキルに依存してしまう。
以上のとおり、第2比較例にも利用者依存性という欠点がある。それに対し、図1〜2に示した第1実施形態では、利用者定義の重みが使われる訳ではないので、判定精度の利用者依存性がない。また、第1実施形態では、利用者が個々のアドレスを登録する手作業も不要である。
そして、第1実施形態の判定部104は、第1比較例の情報処理装置のように、2つの環境に現れるアドレス集合同士が完全に一致するか否かを判定するのではない。つまり、判定部104は、分布一致基準により規定される許容範囲内で第1と第2の分布が一致するか否かを判定する。したがって、第1実施形態には第1比較例のような欠点もない。
以上のように、第1実施形態は、例えば第1比較例や第2比較例と比較すると、「利用者に依存せずに柔軟な判定を行うことができる」という点において優れている。
さらに、第1実施形態の情報処理装置100は、「管理サーバなど情報処理装置100以外の外部の特定の装置を必要とせずに、自律的に判定を行える」という点でも優れている。
以下に、第1実施形態の利点に関してさらに説明するために、第3〜第5比較例についても説明する。第3〜第5比較例によれば、限定された条件下では、端末が環境に応じて動作することも可能だが、端末自身が自律的に環境を判断することはできない。
第3比較例は、携帯端末サービスの多様な認証要件に応じた認証を行うことを目的とした、ある種のユーザ認証システムである。第3比較例のユーザ認証システムは、携帯端末とポータル端末とサービスプロバイダと信頼性保証サーバを含む。
また、第3比較例のユーザ認証システムでは、サービスに応じた認証要件が予め定義されていることと、ポータル端末ごとの統計情報を信頼性保証サーバが分析することが前提とされる。よって、第3比較例では、予め定義されていない新規の環境における携帯端末の振る舞いが定義不能である。また、第3比較例では、携帯端末以外にも、ポータル端末やサービスプロバイダや信頼性保証サーバが必要である。
それに対し、第1実施形態では、例えば「ステップS109で第2の結果が出力された場合に、生体認証の照合閾値を大きくする」というように、新規の環境における情報処理装置100の振る舞いが定義可能である。また、第1実施形態では、情報処理装置100は、ポータル端末やサービスプロバイダや信頼性保証サーバなどの外部の装置を必要とせずに、自律的に環境の判定を行うことができる。
また、第3比較例のユーザ認証システムにおいて、認証精度を保証するための信頼性保証サーバによる分析は、総当たり式に照合値分布を作成することを含む。すると、仮に認証データが携帯端末の耐タンパデバイスに安全に格納されているとしても、分析のためには複数のユーザについてのデータを混在した状態で保存する必要が生じ、データの安全性に問題がある。しかし、第1実施形態では、情報処理装置100以外のポータル端末や信頼性保証サーバが不要なので、そのような問題は生じない。
また、第4比較例は、ディスプレイステーションと1つ以上の情報処理端末を含むシステムである。そして、ディスプレイステーションの記憶装置は、情報処理端末がディスプレイステーションと通信するための設定情報と、情報処理端末内で実行されるアプリケーションとを記憶する。また、ディスプレイステーションが起動または電源投入した場合に、ディスプレイステーションの処理装置が、設定情報とアプリケーションを記憶デバイスに格納する。
ディスプレイステーションが記憶デバイスを管理することにより、情報処理端末へのアプリケーションのインストールや記憶デバイスの設定が容易になる。また、簡易な接続によって機器間の連携動作環境を構築することができる。
しかし、第4比較例では、予め用意された記憶デバイスが必要である。よって、同時に環境の判定ができる情報処理端末の数は、予め用意された記憶デバイスの数によって制限されてしまう。それに対して第1実施形態では、情報処理装置100が、情報処理装置100単独で環境の判定を行うことができ、ディスプレイステーションにより管理される記憶デバイスなどの他の装置を必要としない。つまり、第1実施形態では、図1の情報処理装置100がいくつ存在しようとも、各情報処理装置100が自律的に同時に環境の判定を行うことができる。
また、第4比較例では、記憶デバイスに設定されていない環境に関して、情報処理端末が自律的な判定を行うことはできない。それに対し、第1実施形態の情報処理装置100は、予め決められた環境(例えば第1の環境110)と異なる新たな環境(例えば第2の環境120)に置かれた場合に、新たな環境に置かれたことを認識し、新たな環境に合わせて動作することができる。例えば、新たな環境に合わせて、情報処理装置100は、生体認証の照合閾値を大きくすることができる。
第5比較例は、アドホックネットワークの無線端末であり、匿名通信路上の情報を保持するとともに、匿名通信路上の隣接する端末の特定情報を近傍者リストとして保持する。そして、第5比較例の無線端末は、近傍者リストを検索して近傍に存在する端末との情報交換処理を行う。
第5比較例によれば、動的に構成要素が変わるアドホックネットワークにおいて、コンテキスト情報を匿名で利用することが可能となる。しかしながら、第5比較例では、無線端末が環境自体を判定することはできない。それに対して、第1実施形態の情報処理装置100は環境の判定を行うことができる。
また、第5比較例では、アドホックネットワーク内の一部の少数の無線端末にだけ情報交換機能が実装された場合、得られる効果は限定的である。それに対して、第1実施形態によれば、ある1台の情報処理装置100が図1のように構成されさえすれば、その1台の情報処理装置100は、第1実施形態に関して上記で説明した動作により、上記の効果を発揮することができる。
ところで、上記の第2比較例の重みに関する考察からも理解されるように、ある特定の環境内において、安定的にほとんど常に存在する装置と、時間によって存在したり存在しなかったりする不安定な装置が混在していることがある。そこで、第1実施形態の情報処理装置100は、他の装置の安定度を考慮に入れて第1と第2の分布が一致するか否かを判定するために、以下のように動作してもよい。
すなわち、アドレス認識部101は、第1の時点とも第2の時点とも異なる1つ以上の第3の時点のそれぞれにおいて情報処理装置100が存在する環境内に存在する、1つ以上の他の装置のアドレスをさらに認識してもよい。そして、マッピング部102は、各第3の時点においてアドレス認識部101が認識した第3の個々のアドレスを、それぞれ座標空間上の点にマッピングしてもよい。
例えば、第1の時点では、情報処理装置100が予め決められた安全な第1の環境110に置かれるとする。第1の環境110は、時間の経過とともに多少変動するかもしれないが、情報処理装置100は、1つ以上の第3の時点を含む期間の間、第1の環境110の中に置かれたままであるとする。
また、分布認識部103は、第3の個々のアドレスがマッピングされた第3の個々の点の座標をさらに用いて、図2のステップS103において第1の分布を認識してもよい。具体的には、例えば、分布認識部103は、第1の時点と1つ以上の第3の時点のうち少なくとも1つ以上の時点において認識されたアドレスがマッピングされたすべての点の座標を用いて、第1の分布を認識してもよい。
ところで、第2の時点においては、情報処理装置100は、第1の環境110とは物理的に離れた場所にある、まったく異なる環境に移動されているかもしれない。逆に、情報処理装置100は、第2の時点においても、引き続き、第1の時点や1つ以上の第3の時点と同じ位置に置かれたままであるかもしれない。また、情報処理装置100が物理的には移動しなくても、第1の環境110に多数の新たな装置が追加されたり、第1の環境110から多数の装置が消えたりすることで、第1の環境110は、第2の時点では実質的にまったく異なる環境に変化していることもある。
そこで、分布認識部103は、他の装置の不安定さを考慮するため、図2のステップS106において、以下のようにして第2の分布を認識してもよい。
まず、分布認識部103は、第1の時点と第2の時点と1つ以上の第3の時点を含む複数の時点の間での、アドレス認識部101が認識したアドレスの集合の変動に応じて、各アドレスに対応するオフセットを算出する。そして、分布認識部103は、第2の個々の点それぞれの座標に、対応するオフセットを足す。分布認識部103は、以上のようにしてオフセットを足した座標を使って、第2の分布を認識する。
例えば、図1の例では、第1の時点でアドレス認識部101が認識したアドレスの集合は、装置131〜134の4つのアドレスからなり、第2の時点でアドレス認識部101が認識したアドレスの集合は、装置132〜135の4つのアドレスからなる。また、ある第3の時点でアドレス認識部101が認識したアドレスの集合は、装置131〜135の5つのアドレスからなるかもしれない。あるいは、途中で装置133の電源が切られた場合、別のある第3の時点でアドレス認識部101が認識したアドレスの集合は、装置131、132、134の3つのアドレスからなるかもしれない。
このように、アドレス認識部101が認識したアドレスの集合は、変動し得る。そこで、分布認識部103は、上記のように変動に応じたオフセットを用いて第2の分布を認識してもよい。
より具体的には、分布認識部103は、例えば、第1の時点と第2の時点と1つ以上の第3の時点を含む複数の時点のうち少なくとも1つの時点においてアドレス認識部101が認識した個々の各アドレスについて、以下のようにしてオフセットを算出してもよい。すなわち、分布認識部103は、アドレスの集合の変動のうち、オフセットを算出する対象の当該アドレスに関する変動を示す、1つ以上のアドレス変動指標を算出してもよい。そして、分布認識部103は、1つ以上のアドレス変動指標から、当該アドレスに対応するオフセットを算出してもよい。
具体的には、オフセットはベクトルとして算出されてもよい。例えば、分布認識部103は、1つ以上のアドレス変動指標がそれぞれ示す各変動の大きさに対して単調増加する関数を使って、オフセットの大きさを算出し、乱数を使ってオフセットの方向を算出してもよい。
ここで、1つ以上のアドレス変動指標のうちの少なくとも1つは、「第1の時点と第2の時点と1つ以上の第3の時点を含む複数の時点のうち、いくつの時点において、当該アドレスが認識されたか」に応じた値である。例えば、装置131についてのアドレス変動指標は、「複数の時点のうちのいくつの時点で装置131のアドレスが認識されたか」に応じた値である。
より具体的には、例えば、「上記の複数の時点に占める、装置131のアドレスが認識されなかった時点の割合」などの値が、アドレス変動指標として使われてもよい。例えば、後述の第2実施形態において、「出現回数」に応じた値をとる「不在率」が、このようなアドレス変動指標の具体例である。
また、「オフセットを算出する対象の当該アドレスが認識された最新の時点は、どの時点なのか」に応じた値が、アドレス変動指標の1つとしてさらに使われてもよい。例えば、装置131に関するアドレス変動指標として、「装置131のアドレスが認識された最新の時点から、第2の時点までの範囲で、アドレス認識部101によるアドレスの認識が行われた時点がいくつ存在するか」に応じた値が使われてもよい。例えば、後述の第2実施形態において、「前回計測回」に応じた値をとる「時間経過率」が、このようなアドレス変動指標の具体例である。
ところで、図2のステップS103とS106に関して説明したとおり、分布認識部103は、特徴点分布同士の比較アルゴリズムを判定部104が利用できるようにするために、点の座標だけでなく角度を用いて第1と第2の分布を認識してもよい。
具体的には、分布認識部103は、第1の個々の点についてそれぞれ、当該第1の個々の点の第1の基準点に対する第1の角度を算出する。その結果、第1の個々の点それぞれの座標と角度が得られる。すなわち、第1の時点でアドレス認識部101が認識した各アドレスから、座標と角度を持った特徴点が得られる。すなわち、第1の分布は特徴点分布として表される。なお、第1の基準点は、例えば、第1の時点と1つ以上の第3の時点のうち少なくとも1つ以上の時点で認識されたアドレスがマッピングされた点すべての重心でもよい。
また、分布認識部103は、オフセットにより移動された第2の個々の点についてそれぞれ、当該移動された第2の個々の点の第2の基準点に対する第2の角度を算出する。その結果、第2の個々の点それぞれの座標と角度が得られる。すなわち、第2の時点でアドレス認識部101が認識した各アドレスから、座標と角度を持った特徴点が得られる。すなわち、第2の分布も特徴点分布として表される。なお、第2の基準点は、例えば、第1の時点と第2の時点と1つ以上の第3の時点を含む複数の時点のうち少なくとも1つの時点において認識されたアドレスがマッピングされた点をオフセットによって移動した点すべての重心でもよい。
したがって、図2のステップS107で判定部104は、特徴点分布同士を比較するための任意のアルゴリズムを利用することができる。例えば、判定部104は、第2の個々のアドレスのうち、第1の個々のアドレスのいずれかと同じである各アドレスについて、(A1)かつ(A2)という条件が成立するか否かを判定してもよい。
(A1)当該アドレスがマッピングされた点の第1の基準点に対する第1の相対位置と、当該アドレスがマッピングされた点がオフセットにより移動された点の第2の基準点に対する第2の相対位置との差が、第1の範囲内である。換言すれば、「アドレスがマッピングされた元の点と、オフセットによって移動された点との間の距離を、第1と第2の基準点が重なるように位置合わせを行ってから計測する」という仮定のもとで、計測される距離が第1の範囲内である。
(A2)第1の角度と第2の角度の差が第2の範囲内である。
上記の第1の範囲と第2の範囲は、分布一致基準によって規定される。例えば、第1の範囲は「第1の相対位置と第2の相対位置の間の距離が30以内の範囲」などでもよいし、第2の範囲は「−15°以上かつ+15°以下の範囲」などでもよい。
また、分布一致基準は、(A1)かつ(A2)という条件が成立するアドレスの割合に関する下限値を規定する。この下限値は、「第1の分布と第2の分布が一致する」と判定部104が判定するための下限値である。
例えば、下限値が70%のとき、判定部104は「(A1)かつ(A2)という条件が成立するアドレスの、第2の時点で認識された全アドレスに対する割合が70%以上なら、第1の分布と第2の分布は一致する」と判定してもよい。あるいは、「第2の時点で認識された全アドレスに対する割合」の代わりに、「第1の時点と第2の時点と1つ以上の第3の時点を含む複数の時点のうち少なくとも1つの時点で認識された全アドレスに対する割合」が使われてもよい。分布一致基準により規定される下限値の具体例は、後述の第2実施形態の「基準合致率」である。
例えば上記のようなオフセットを使った移動により、利用者定義の重みを使うことなく、判定部104による判定に、他の装置の「不安定さ」を反映することが可能となる。つまり、オフセットを使った移動により、日常的に生じ得る小さな環境変動に起因する誤判定が減り、ステップS107の判定の精度が向上する。
さて、続いて、環境同士が一致するか否かの判定結果を、生体認証における照合閾値の切り換えに利用する第2実施形態について、図3〜28を参照して説明する。
図3は第2実施形態の利用者端末の構成の概要を示す図である。
図3の利用者端末200は、認証情報入力部210を内蔵するか、または外付けの認証情報入力部210と接続される。また、利用者端末200は、認証情報DB(データベース)220と個人認証部230を有する。
また、利用者端末200は、他の装置(例えば装置300aおよび300b)との通信を行う通信制御部240を有する。なお、装置300aも、他の装置(例えば利用者端末200)との通信を行う通信制御部310aを有する。同様に、装置300bも、他の装置(例えば利用者端末200)との通信を行う通信制御部310bを有する。
さらに、利用者端末200は、アドレス計測部250とアドレス管理部260と登録環境DB270と特徴点分布生成部280と環境判定部290を有する。なお、図3では登録環境DB270がアドレス管理部260の外側に描かれているが、アドレス管理部260が登録環境DB270を含んでいてもよい。
利用者端末200の上記各部の詳細は、以下のとおりである。
認証情報入力部210は、個人認証用に利用者から情報の入力を受け付ける。認証情報DB220には、利用者を認証するために用いる情報が予め格納されている。個人認証部230は、認証情報入力部210が受け付けた入力と認証情報DB220に格納されている情報を使って個人認証処理を行う。なお、図3では認証情報DB220が個人認証部230の外側に描かれているが、個人認証部230が認証情報DB220を含んでいてもよい。
詳しくは後述するが、個人認証部230は、少なくとも、利用者の生体情報(biometric information)を用いた生体認証を行う。個人認証部230はさらに、IDとパスワードの組み合わせを用いたテキストベースの個人認証機能を提供してもよい。
なお、生体認証の種類は任意である。例えば、指紋、静脈パターン、声紋、虹彩などによる生体認証が利用可能である。
また、個人認証部230が生体認証に用いる照合閾値は、切り換え可能である。個人認証部230は、生体認証を行う前に、どの照合閾値を使うかを決めるために、アドレス管理部260に問い合わせを行う。問い合わせへの応答は、アドレス管理部260から返されるか、または、アドレス管理部260を介して環境判定部290から返される。そして、個人認証部230は、問い合わせに対する応答に応じて照合閾値を切り換える。
通信制御部240と通信制御部310aとの間の通信は、無線通信でもよいし有線通信でもよい。同様に、通信制御部240と通信制御部310bとの間の通信は、無線通信でもよいし、有線通信でもよい。無線通信の例は、IEEE(Institute of Electrical and Electronics Engineers) 802.11シリーズの無線LAN規格による通信や、Bluetooth(登録商標)による通信であり、有線通信の例は、有線イーサネット(登録商標)による通信である。
アドレス計測部250は、通信制御部240に通信を行わせることにより、通信制御部240を介して、利用者端末200と同じ環境内に存在する装置300aや300bのアドレスを収集する。なお、アドレスの「収集」とは、認識、計測、観測、検出、走査あるいは探査などと換言することもできる。
また、アドレス管理部260は、後述の環境登録処理と計測処理において、適宜のタイミングでアドレス計測部250にアドレスの収集を依頼する。すなわち、アドレス管理部260、アドレス計測部250および通信制御部240は、協働して、第1実施形態のアドレス認識部101と同様の機能を実現する。
なお、環境登録処理において、アドレス管理部260は、アドレス計測部250が収集したアドレスを登録環境DB270に格納し、アドレスの収集結果に基づいて統計情報を生成し、生成した統計情報も登録環境DB270に格納する。また、計測処理においてアドレス計測部250が収集したアドレスは、環境判定部290による判定結果に応じて、最終的に登録環境DB270に格納されることもあるし、破棄されることもある。
環境登録処理は、利用者からの指示にしたがって、ある特定の環境を「セキュリティよりも利便性を優先させてよい環境」として登録環境DB270に登録するための処理である。例えば、利用者端末200が、会社職員の業務用の端末である場合、当該職員が会社内の自席で業務を行うときの環境が登録環境DB270に登録されてもよい。
また、アドレス管理部260は、登録環境DB270にまだ何も環境が登録されていないときに個人認証部230から問い合わせを受けた場合、何も環境が登録されていないことを個人認証部230に回答する。
アドレス管理部260は、計測処理を制御するだけでなく、さらに後述の判定処理を開始するよう特徴点分布生成部280に依頼する。すると、特徴点分布生成部280は、アドレス計測部250により計測されて記憶されたアドレスから、特徴点分布を生成する。すなわち、特徴点分布生成部280は、各アドレスを座標と角度を持った特徴点に変換することにより、アドレス集合から特徴点分布を生成する。換言すれば、特徴点分布生成部280は、第1実施形態のマッピング部102と分布認識部103に相当するコンポーネントを含む。
また、環境判定部290は、第1実施形態の判定部104の具体例でもある。環境判定部290は、特徴点分布生成部280が生成した2つの特徴点分布を比較することにより、「利用者端末200が置かれた環境が、予め登録環境DB270に登録された特定の環境であるか否か」を判定する。そして、環境判定部290は、アドレス管理部260を介して(あるいは直接的に)、判定結果を個人認証部230に出力する。すると、個人認証部230は、個人認証処理で用いる照合閾値を、判定結果に応じて切り換える。
続いて、図4を参照して、図3の利用者端末200を実現するハードウェアの例を説明する。利用者端末200は、専用のハードウェア回路、プログラムを実行する汎用のコンピュータ、あるいはその組み合わせにより実現可能であるが、図4には一般的なコンピュータによって利用者端末200が実現される場合の例を示した。
図4はコンピュータ400の構成図である。なお、第1実施形態の図1の情報処理装置100も、図4のようなコンピュータ400により実現することができる。また、コンピュータ400は、より具体的には、例えば、デスクトップ型のPC、ノート型のPC、PDA(Personal Digital Assistant)、スマートフォン、タブレット型またはその他の携帯情報端末、携帯電話などである。
さて、図4のコンピュータ400は、CPU401とROM(Read Only Memory)402とRAM403と通信インタフェイス404と入力装置405と出力装置406と記憶装置407を有する。また、コンピュータ400は、可搬型記憶媒体450の駆動装置408も有する。なお、CPU401とROM402とRAM403と通信インタフェイス404と入力装置405と出力装置406と記憶装置407と駆動装置408は、互いにバス409で接続されている。
CPU401は、プログラムをRAM403にロードして、RAM403をワークエリアとして利用しながら、プログラムを実行する。なお、プログラムは、ROM402または記憶装置407に予め格納されていてもよいし、ネットワークから通信インタフェイス404を介してダウンロードされ、記憶装置407に格納されてもよい。
あるいは、プログラムは、コンピュータ読み取り可能な可搬型記憶媒体450に格納されて提供され、駆動装置408により読み取られてもよい。駆動装置408により可搬型記憶媒体450から読み取られたプログラムは、直接RAM403にロードされてもよいし、一旦記憶装置407にコピーされ、記憶装置407からRAM403にロードされてもよい。
可搬型記憶媒体450としては、CD(Compact Disc)やDVD(Digital Versatile Disk)などの光ディスク、光磁気ディスク、磁気ディスク、不揮発性の半導体メモリカードなどが利用可能である。また、ROM402、RAM403、記憶装置407、および可搬型記憶媒体450は、いずれもコンピュータ読み取り可能な記憶媒体の例である。これらのコンピュータ読み取り可能な記憶媒体は、有形の(tangible)媒体であり、信号搬送波のような一時的な(transitory)媒体ではない。
通信インタフェイス404は、有線、無線、または双方の通信のためのインタフェイスである。例えば、通信インタフェイス404は、有線LAN、無線LAN、Bluetooth(登録商標)などの通信にそれぞれ対応する各種ハードウェアを含む。
また、入力装置405は、例えば、ボタン410、テンキー411、キーボード412、マイク413、カメラ414、およびセンサ415を含んでいてもよい。入力装置405は、さらにマウスなどのポインティングデバイスを含んでもよい。なお、もちろん入力装置405は、図4において入力装置405の矩形の中に示したコンポーネントのうち一部のみを含んでいてもよい。
また、タッチスクリーン416のように、入力装置405と出力装置406を兼ねるデバイスが使われてもよい。出力装置406は、タッチスクリーン416あるいは不図示のディスプレイに加えて、例えばスピーカ417をさらに含んでもよい。
また、記憶装置407は、ハードディスク装置やフラッシュメモリなどの、不揮発性の記憶装置である。
以下に、図3と図4の関係を説明する。
認証情報入力部210は入力装置405により実現され、認証情報DB220は記憶装置407上に保持される。また、個人認証部230は、CPU401がプログラムを実行することにより実現される。なお、認証情報DB220を保持するために耐タンパ性の記憶装置407が使われてもよい。
個人認証部230がIDとパスワードの組み合わせに基づく個人認証処理を行う場合、認証情報入力部210は、キーボード412により実現される。また、個人認証部230が声紋による生体認証を行う場合、認証情報入力部210は、マイク413により実現される。あるいは、個人認証部230が指紋、静脈パターン、虹彩などによる生体認証を行う場合、認証情報入力部210は、カメラ414により実現されてもよいし、指紋センサなどの専用のセンサ415により実現されてもよい。
通信制御部240は、プログラムを実行するCPU401と、通信インタフェイス404によって、実現される。また、アドレス計測部250とアドレス管理部260は、CPU401がプログラムを実行することによって、実現される。
登録環境DB270は記憶装置407上に保持されるが、登録環境DB270内の情報が一時的にRAM403に格納されてもよいことは無論である。また、特徴点分布生成部280と環境判定部290も、CPU401がプログラムを実行することにより実現される。
続いて、図3に示した利用者端末200の詳細を説明する。図5は、第2実施形態の利用者端末200の構成の詳細を示す図である。図5において、図3と同様のコンポーネントには、図3と同じ参照符号が付与されている。
図5に示すとおり、個人認証部230は、認証処理部231、スキーム変更部232、閾値変更部233、生体情報登録部234、および生体情報照合部235を含む。また、図3では認証情報DB220が個人認証部230の外に描かれているが、図5のように個人認証部230が認証情報DB220を含んでもよい。
そして、図5に示すとおり、アドレス管理部260は、状況判断部261、アドレス抽出部262、および統計処理部263を含む。また、図3では登録環境DB270がアドレス管理部260の外に描かれているが、図5のようにアドレス管理部260が登録環境DB270を含んでもよい。
そして、特徴点分布生成部280は、アドレス分解部281、距離決定部282、アドレス配置部283、および重心決定部284を含む。また、環境判定部290は、位置合わせ部291および合致判断部292を含む。
さらに、利用者端末200は、現在環境情報295を内部データとして一時的に保持する。現在環境情報295は、例えばRAM403上に保持され、アドレス管理部260、特徴点分布生成部280、および環境判定部290からアクセス可能である。
以下に、図3には現れない、図5中の各部の動作について説明する。
個人認証部230内の認証処理部231は、認証情報入力部210から入力された情報と認証情報DB220に格納されている情報を用いて認証処理を行う。なお、認証情報DB220は、利用者のIDとパスワードを対応づける情報を格納するとともに、利用者の生体情報を格納する。
また、スキーム変更部232は、認証処理のスキームを適宜切り換える。具体的には、スキーム変更部232は、IDとパスワードを用いたテキストベースの認証処理と生体情報を用いた認証処理のどちらによる認証を認証処理部231が行うのかを切り換える。
認証処理部231が生体認証を行う場合、認証情報入力部210から入力された情報と認証情報DB220に格納されている情報との照合は、生体情報照合部235が行う。生体情報照合部235は、認証情報入力部210から入力された情報と認証情報DB220に格納されている情報との一致の度合を示すスコア(照合スコアともいう)を算出し、算出したスコアを認証処理部231に出力する。
認証処理部231は、生体情報照合部235から出力されたスコアを照合閾値と比較する。そして、認証処理部231は、スコアが照合閾値を超えていれば利用者を認証成功とし、スコアが照合閾値以下ならば利用者を認証失敗とする。
ここで、上記のとおり照合閾値は切り換え可能である。具体的には、個人認証部230からの問い合わせに対するアドレス管理部260または環境判定部290からの回答に応じて、閾値変更部233が照合閾値を切り換える。
なお、生体情報登録部234は、利用者の生体情報を認証情報DB220に登録する処理を行う。
また、アドレス管理部260内の状況判断部261は、アドレス管理部260が行う処理の状況を判断する。具体的には、状況判断部261は、特定の環境を登録環境DB270に登録するための環境登録処理と、利用者端末200が現在置かれた環境を認識するための計測処理のいずれが実行中なのかを判断する。また、第2実施形態では、環境登録処理において、アドレス計測部250によるアドレスの計測が複数回繰り返される。よって、状況判断部261は、環境登録処理の進捗状況についても判断する。
アドレス抽出部262は、判定処理を開始するようアドレス管理部260が特徴点分布生成部280に依頼するときに、登録環境DB270からアドレスのデータを抽出し、抽出したデータを特徴点分布生成部280に出力する。
また、統計処理部263は、状況判断部261が判断した状況に基づいて統計情報を生成する。統計処理部263は、登録環境DB270または現在環境情報295に統計情報を格納する。
そして、特徴点分布生成部280において、アドレス分解部281は、アドレスを2つの部分に分解し、2つの部分からX座標とY座標をそれぞれ算出する。つまり、アドレス分解部281は、アドレスをXY座標空間(すなわちXY平面)内の点にマッピングする。アドレス分解部281は、図1のマッピング部102の例の一つでもある。
また、距離決定部282とアドレス配置部283は、協働して、図1の分布認識部103と類似の処理(具体的にはオフセットの算出)を行う。
具体的には、距離決定部282は、現在環境情報295に含まれる統計情報を用いてオフセットの大きさを決定する。第2実施形態では、アドレスの不安定さを反映する「距離」が後述のように定義され、距離の1/2が、オフセットの大きさとして使われる。そして、アドレス配置部283は、オフセットの方向としてランダムな角度を生成し、オフセットの加算によって点を移動する。
すると、重心決定部284は、それぞれ移動された点の重心の位置を算出する。また、重心決定部284は、移動された点の重心に対する角度を、特徴点が持つ角度として算出する。以上のようにして、特徴点分布生成部280は、利用者端末200が現在置かれた環境に関して、オフセットを利用した特徴点分布の生成を行うことができる。
なお、特徴点分布生成部280は、オフセットを利用しないで特徴点分布を生成することもできる。すなわち、重心決定部284は、アドレス分解部281によりXY平面上にそれぞれマッピングされた点の重心を算出し、各点の重心に対する角度を、各特徴点が持つ角度として算出することもできる。特徴点分布生成部280は、登録環境DB270に登録された環境に関しては、オフセットを利用せずに特徴点分布を生成する。
また、特徴点分布生成部280によって生成された2つの特徴点分布は、環境判定部290により比較される。具体的には、位置合わせ部291が重心を基準とした位置合わせを行う。そして、合致判断部292が、位置合わせされた特徴点分布間で、対応する特徴点同士を比較し、2つの特徴点が許容範囲内で合致するか否かを判断する。環境判定部290は、2つの特徴点が合致すると判断された回数に基づいて、特徴点分布同士の合致の度合を算出する。
結果として、環境判定部290は、「2つの特徴点分布がそれぞれ表す2つの環境を同じ環境と見なしてよいか否か」についての判定結果を得る。環境判定部290は、判定結果をアドレス管理部260に出力する。また、判定結果は、アドレス管理部260から個人認証部230に出力される。
ところで、図5には、利用者端末200が使う情報の例として、認証情報DB220と登録環境DB270と現在環境情報295が示されているが、利用者端末200内ではその他の情報も使われる。図6は、利用者端末200で使われる情報の一部を例示する図である。
個人認証部230は、内部データとして、図6に示す閾値情報236を保持する。閾値情報236は、2つの照合閾値をそれぞれ環境に対応づける情報である。図6の例では、閾値情報236は、登録済みの環境用の4500という値の照合閾値と、登録されていない新規の環境用の7000という値の照合閾値を含む。
なお、第2実施形態では、照合閾値が大きいほど、より厳格な生体認証が行われる。例えば、照合スコアが5000の場合、照合閾値として4500が使われれば利用者は認証されるが、照合閾値として7000が使われれば利用者は認証されない。
つまり、照合閾値が大きいほど、他人受入率が下がり、セキュリティが上がる。逆の観点から述べれば、照合閾値が小さいほど、本人拒否率が下がり、利便性が増す。
したがって、登録済みの環境には、利便性を優先するために、相対的に小さな値(図6の例では4500)の照合閾値が対応づけられている。それに対して、登録されていない新規の環境(換言すれば、未知の環境)には、セキュリティを優先するために、相対的に大きな値(図6の例では7000)の照合閾値が対応づけられている。
また、アドレス管理部260は、内部データとして、図6に示す計測回数264と基準回数265と計測間隔266を保持する。
図6の例では、計測回数264の値は16だが、計測回数264は、アドレスの収集のたびにインクリメントされる。なお、計測回数264は、利用者端末200の電源が切られる前に、不揮発性の記憶装置(例えば記憶装置407)に書き出される。状況判断部261は、計測回数264の値に基づいて状況を判断する。
基準回数265は、環境登録処理におけるアドレスの計測の繰り返し回数を規定する所定の定数である。図6の例では、基準回数265の値は16だが、基準回数265の値は、もちろん実施形態に応じて任意である。
計測間隔266は、環境登録処理におけるアドレスの計測の間隔を規定する所定の定数である。図6の例では、計測間隔266の値は30分だが、計測間隔266の値は、もちろん実施形態に応じて任意である。基準回数265と計測間隔266の値により、環境登録処理にかかる時間が規定される。
続いて、利用者端末200の動作について、より詳しく説明する。
図7は、電源が入れられたときに第2実施形態の利用者端末200が開始する処理のフローチャートである。
利用者端末200に電源が入れられると、まず、ステップS201で個人認証部230が、どのようにして個人認証をするかについてアドレス管理部260に問い合わせる。すると、アドレス管理部260は、登録環境DB270に環境が登録済みであるか否かを判断する。
そして、登録環境DB270にはまだ何の環境も登録されていないならば(すなわち、登録環境DB270がエントリを持たない初期状態ならば)、アドレス管理部260は、環境が未登録であることを個人認証部230に通知する。そして、処理はステップS202に移行する。逆に、登録環境DB270に環境が登録済みならば(すなわち、登録環境DB270が1つ以上のエントリを有するならば)、処理はステップS213に移行する。
ステップS202では、環境が未登録であることをアドレス管理部260から通知された個人認証部230において、スキーム変更部232が、認証スキームを選択する。そして、スキーム変更部232が認証スキームとしてIDとパスワードによる認証を選択した場合、処理はステップS203に移行する。逆に、スキーム変更部232が認証スキームとして生体認証を選択した場合、処理はステップS206に移行する。
例えば、利用者端末200は、IDとパスワードによる認証にも対応し、かつ生体認証にも対応している装置であってもよい。また、利用者端末200は、生体情報が認証情報DB220に登録済みの場合は、IDとパスワードによる認証よりも生体認証を優先するように構成されていてもよい。すると、ステップS202でスキーム変更部232は、認証情報DB220に生体情報が登録済みであれば認証スキームとして生体認証を選択し、認証情報DB220に生体情報が未登録であれば認証スキームとしてIDとパスワードによる認証を選択する。
あるいは、実施形態によっては、利用者端末200は、生体認証による認証にのみ対応する装置であってもよい。この場合、認証情報DB220に生体情報が登録済みであるという前提のもとで、ステップS202でスキーム変更部232は認証スキームとして必ず生体認証を選択する。よって、ステップS202〜S205は省略されてもよい。つまり、環境が未登録の場合、処理はステップS201から直接ステップS206に進んでもよい。
さて、ステップS203では、認証情報入力部210(例えばキーボード412)がIDとパスワードの入力を受け付け、受け付けたIDとパスワードを認証処理部231に出力する。
すると、次のステップS204で認証処理部231は、認証情報入力部210から得たIDおよびパスワード、ならびに認証情報DB220に記憶されている情報を用いて、IDとパスワードに基づく認証処理を行う。
そして、ステップS205で認証処理部231は、認証が成功したか否かを判断する。ステップS203でIDとパスワードの正しい組み合わせが入力された場合は、認証が成功するので、処理はステップS205からステップS209に移行する。
逆に、IDとパスワードの組み合わせが正しくない場合、認証が失敗するので、図7の処理は終了する。なお、実施形態によっては、認証が失敗した場合、認証処理部231はエラーメッセージを画面に表示してもよく、処理が再度ステップS203に戻ってもよい。
さて、認証スキームとして生体認証が選ばれた場合、ステップS206で認証情報入力部210(例えばセンサ415)が生体情報の入力を受け付ける。そして、認証情報入力部210は、受け付けた生体情報を認証処理部231に出力する。
すると、次のステップS207では、登録されていない新規環境用の照合閾値を用いた厳格な生体認証が行われる。具体的には以下のような処理が行われる。
認証処理部231は、認証情報入力部210から入力された生体情報と、認証情報DB220に登録済みの生体情報との照合を、生体情報照合部235に依頼する。すると、生体情報照合部235は、依頼にしたがって生体情報の照合を行い、スコアを算出して認証処理部231に出力する。
また、閾値変更部233は、閾値情報236の中から、登録されていない新規環境用の照合閾値を選択する。つまり、閾値変更部233は、「環境が未登録である」という、アドレス管理部260からのステップS201での通知にしたがい、新規環境用の照合閾値を選択する。そして、認証処理部231は、生体情報照合部235から得られたスコアを、閾値変更部233によって選択された照合閾値と比較する。
すると、次のステップS208で認証処理部231は、認証が成功したか否かを判断する。スコアが照合閾値を超えている場合は、認証が成功するので、処理はステップS209に移行する。
逆に、スコアが照合閾値以下の場合、認証が失敗するので、図7の処理は終了する。なお、実施形態によっては、認証が失敗した場合、認証処理部231はエラーメッセージを画面に表示してもよく、処理が再度ステップS206に戻ってもよい。
さて、ステップS209は、環境が未登録であり、かつ認証が成功した場合に実行される。ステップS209において、アドレス管理部260は、利用者端末200が現在置かれた環境を登録するか否かを判断する。例えば、アドレス管理部260は、図5には不図示の入力部(例えば図4の入力装置405)を介して、利用者から「利用者端末200が現在置かれた環境を登録するか否か」に関する指示を受け付け、指示にしたがってステップS209の判断を下してもよい。
アドレス管理部260が「現在の環境を登録する」と判断すると、続いて、ステップS210とS211の処理が並行して行われる。逆に、アドレス管理部260が「現在の環境を登録しない」と判断すると、処理はステップS212に移行する。
ステップS210では、利用者端末200(具体的には、例えばCPU401)が、他の処理を適宜行う。ステップS210で行われる処理は、認証された利用者に対して実行権限が与えられている任意の処理でよい。
また、ステップS211では、アドレス管理部260とアドレス計測部250と通信制御部240が協働して、図8に示す環境登録処理を行う。その結果、利用者端末200が置かれている環境が登録環境DB270に登録される。
なお、ステップS210とS211が完了すると、図7の処理も終了する。図7の処理の終了後、利用者端末200の電源が切断されてもよい。
さて、「現在の環境を登録しない」と判断された場合、ステップS212では、ステップS210と同様に、利用者端末200が、他の処理を適宜行う。他の処理の終了後、図7の処理も終了する。図7の処理の終了後、利用者端末200の電源が切断されてもよい。
以上のステップS202〜S212とは逆に、既に何らかの環境が登録環境DB270に登録されている場合、ステップS213で図11〜12の計測処理が行われる。計測処理では、利用者端末200が現在置かれている環境に存在する他の装置のアドレスが収集される。
そして、次のステップS214では、アドレス管理部260は、図14〜15の判定処理(図20の照合処理を含む)を開始するよう特徴点分布生成部280に依頼する。すると特徴点分布生成部280は、登録環境DB270に登録された環境に対応する特徴点分布を生成し、さらに、利用者端末200が現在置かれた環境に対応する特徴点分布を生成する。
そして、環境判定部290が、2つの特徴点分布の合致度から「登録された環境と現在の環境が同じか否か」を判定する。また、判定結果に応じて閾値変更部233が照合閾値を選び、選ばれた照合閾値を用いて認証処理部231が生体認証を行う。
すると、次のステップS215で認証処理部231は、判定処理において行った生体認証が成功したか否かを判断する。生体情報照合部235から出力されるスコアが照合閾値を超えている場合は、認証が成功するので、処理はステップS216に移行する。
逆に、スコアが照合閾値以下の場合、認証が失敗するので、図7の処理は終了する。なお、実施形態によっては、認証が失敗した場合、認証処理部231はエラーメッセージを画面に表示してもよく、判定処理における生体情報の入力の受け付けから処理が繰り返されてもよい。
さて、ステップS214内で行われる認証が成功した場合、ステップS216では、ステップS210と同様に、利用者端末200が、他の処理を適宜行う。他の処理の終了後、図7の処理も終了する。図7の処理の終了後、利用者端末200の電源が切断されてもよい。
さて、続いて、図7のステップS211の環境登録処理の詳細について、図8〜10を参照して説明する。図8は、環境登録処理のフローチャートであり、図9は、環境変化の第1の例を説明する図であり、図10は、第1の例において登録された環境に関する情報を示す図である。以下では、図8を参照して環境登録処理の流れをまず説明し、その後、図9の例において登録環境DB270にどのような情報が登録されるのかを具体的に説明する。
図8のステップS301で状況判断部261は、計測回数264の値を0に初期化する。計測回数264は、環境登録処理または計測処理によってアドレスの計測が行われるたびにインクリメントされる変数である。
そして、次のステップS302で状況判断部261は、計測回数264が予め決められた基準回数265未満であるか否かを判断する。計測回数264が基準回数265未満のとき、処理はステップS303に移行する。逆に、計測回数264が基準回数265に達しているとき、環境登録処理は終了する。
さて、ステップS303で状況判断部261は、計測回数264を1だけインクリメントする。
そして、次のステップS304でアドレス管理部260は、アドレス計測部250にアドレスの収集を依頼する。すると、アドレス計測部250は通信制御部240を介して通信を行い、利用者端末200の周辺にある他の装置(例えば装置300aや300b)のアドレスを収集する。第1実施形態に関して説明したのと同じ理由から、第2実施形態においても、収集対象のアドレスは、MACアドレスである。
つまり、MACアドレスは、時間の経過によって変化しない装置固有のアドレスであり、かつ、ベンダに依存しない一般的なプロトコルで収集可能なアドレスである。したがって、MACアドレスは、異なる2つの時点の環境をそれぞれ表す2つの特徴点分布を比較するために収集するアドレスとして、好適である。
ところで、利用者端末200の周辺に存在する(換言すれば、利用者端末200と同じ環境内に存在する)装置(例えば装置300aや300b)の種類に応じて、MACアドレスを収集するための具体的方法は異なる。そして、当然ながら利用者端末200は、「利用者端末200装置が現在置かれている環境内にどのような種類の装置があるのか」ということを事前には認識していない。
そこで、ステップS304でアドレス計測部250は、複数の方法によってアドレスを収集する。具体的には、アドレス計測部250は、以下の(B1)〜(B4)の4つの方法のうち2つ以上の方法によってアドレスを収集することが望ましい。
(B1)Bluetooth(登録商標)対応の装置から、Bluetooth(登録商標)規格にしたがったパケット送受信によりMACアドレスを収集する方法。
(B2)利用者端末200と同一のサブネットに属する装置から、ARP(Address Resolution Protocol)パケットの送受信によりMACアドレスを収集する方法。
(B3)無線LANアクセスポイントからのビーコンフレームの受信によりMACアドレスを収集する方法。
(B4)アドホックモードの無線LAN端末からのビーコンフレームの受信によりMACアドレスを収集する方法。
以下に、上記(B1)〜(B4)の方法の詳細を説明する。
(B1)の方法でアドレス計測部250が収集することができるMACアドレスは、以下の条件(C1)〜(C3)をすべて満たすBluetooth(登録商標)対応の装置のMACアドレスである。
(C1)電源が入っている。
(C2)利用者端末200と物理的に通信可能な位置に置かれている。
(C3)デバイス検出に応答する設定になっている(つまり、「Scan Enable」パラメタが有効になっている)。
そして、(B1)の方法では、アドレス計測部250は、HCI(Host Controller Interface)コマンドパケットに、装置探索用のLink Control CommandsとInquiry Commandを設定して、問い合わせ(Inquiry)パケット(IQパケットともいう)を生成する。そして、アドレス計測部250は、通信制御部240を介してIQパケットをブロードキャストする。
以下、説明の便宜上、例えば装置300aが(C1)〜(C3)の条件を満たすものとする。この場合、装置300aは、定期的に行うIQパケットのスキャンにより、ブロードキャストされたIQパケットを検知する。
そして、IQパケットを検知した装置300aは、IQパケットに対する応答パケットとして、FHS(Frequency Hop Synchronization)パケットを生成する。具体的には、装置300aは、FHSパケットの中に、装置300a自身のMACアドレスを設定し、IQパケットの送信元の利用者端末200へFHSパケットを送信する。
すると、利用者端末200の通信制御部240がFHSパケットを受信する。そして、アドレス計測部250は、受信されたFHSパケットのペイロードから、装置300aのMACアドレスを抽出する。以上のようにして、アドレス計測部250は、(B1)の方法により、(C1)〜(C3)の条件を満たす装置(例えば装置300a)のMACアドレスを取得する。
また、アドレス計測部250は、(B2)の方法によるMACアドレスの収集を行ってもよい。
なお、(B2)の方法では、「アドレス計測部250は、利用者端末200に設定されたIPアドレス、MACアドレス、IPアドレスのネットワークアドレス部を認識することができる」ということが前提である。しかし、この前提は、実質的な制約ではない。
なぜなら、ネットワーク機能を持つコンピュータ400ではこの前提が一般的に成り立つからである。例えば、アドレス計測部250は、「ipconfig」コマンドの実行により、利用者端末200に設定されたIPアドレス、MACアドレス、IPアドレスのネットワークアドレス部(換言すればサブネットマスク)を認識することができる。
さて、(B2)の方法でアドレス計測部250が収集することができるアドレスは、以下の条件(D1)〜(D3)をすべて満たす装置のMACアドレスである。
(D1)電源が入っている。
(D2)有線LANまたは無線LANに接続されている。
(D3)利用者端末200と同一のサブネット(換言すれば同一のブロードキャストドメイン)に属する。
そして、(B2)の方法では、アドレス計測部250は、まず、利用者端末200に設定されたIPアドレス、MACアドレス、サブネットマスクを認識する。そして、アドレス計測部250は、利用者端末200に設定されたサブネットマスクとIPアドレスから、利用者端末200と同一のサブネット内で論理的に可能なすべてのIPアドレスを生成する。
説明の便宜上、例えば、利用者端末200のIPアドレスが192.168.20.5であり、サブネットマスクが255.255.255.0であるとする。つまり、IPアドレスのネットワークアドレス部は上位24ビットであり、下位8ビットがホストアドレス部である。この場合、利用者端末200と同一のサブネット内で論理的に可能なIPアドレスは、192.168.20.0から192.168.20.255までの256個である。
なお、利用者端末200のIPアドレスのホストアドレス部の長さがHビットのとき、アドレス計測部250は、長さHビットの可能なすべての(すなわち2H通りの)パターンのビット列を生成する。そして、アドレス計測部250は、生成した各ビット列の前に利用者端末200のIPアドレスのネットワークアドレス部を付加することにより、論理的に可能なすべてのIPアドレスを生成する。
さて、上記の例において、論理的に可能な256個のIPアドレスのうち192.168.20.5は利用者端末200自身のIPアドレスである。よって、アドレス計測部250は、残りの255個のIPアドレスについて、それぞれARP要求パケットを生成し、生成したARP要求パケットを、通信制御部240を介してブロードキャストする。
なお、アドレス計測部250は、ARP要求パケットの送信元IPアドレスフィールドには、利用者端末200自身のIPアドレスを設定する。また、アドレス計測部250は、ARP要求パケットの送信元MACアドレスフィールドには、利用者端末200自身のMACアドレスを設定する。
そして、アドレス計測部250は、ARP要求パケットの宛先IPアドレスフィールドに、生成したIPアドレスを設定する。例えば、生成したIPアドレスのうち、アドレス計測部250が処理対象として現在注目しているIPアドレスが192.168.20.35であるとする。この場合、アドレス計測部250は、ARP要求パケットの宛先IPアドレスフィールドに192.168.20.35を設定する。
なお、ARP要求パケットでは、宛先MACアドレスフィールドは無視される。よって、アドレス計測部250は、例えば、宛先MACアドレスフィールドの全ビットを1に設定してもよい。
もし、利用者端末200と同一のサブネット内に、上記ARP要求パケットに宛先IPアドレスとして指定されたIPアドレスを持つ装置が存在すれば、上記ARP要求パケットを受信した当該装置は、利用者端末200にARP応答パケットを送信する。したがって、例えば上記の例のようにアドレス計測部250が255個のIPアドレスそれぞれについてARP要求パケットを送信した場合、最大で255個のARP応答パケットが利用者端末200において受信されることもあり得る。
説明の便宜上、例えば、アドレス計測部250の生成した192.168.20.35というIPアドレスが装置300bに割り当てられているとする。この場合、装置300bは、受信したARP要求パケットの送信元IPアドレスフィールドの値(つまり利用者端末200のIPアドレス。上記の例では192.168.20.5)を、ARP応答パケットの宛先IPアドレスフィールドに設定する。また、装置300bは、装置300b自身のIPアドレス(つまり192.168.20.35)を、ARP応答パケットの送信元IPアドレスフィールドに設定する。
そして、装置300bは、受信したARP要求パケットの送信元MACアドレスフィールドの値(つまり利用者端末200のMACアドレス)を、ARP応答パケットの宛先MACアドレスフィールドに設定する。また、装置300bは、装置300b自身のMACアドレスを、ARP応答パケットの送信元MACアドレスフィールドに設定する。
すると、利用者端末200の通信制御部240がARP応答パケットを受信する。そして、アドレス計測部250がARP応答パケットの送信元MACアドレスフィールドからMACアドレスを抽出する。以上のようにして、アドレス計測部250は、(B2)の方法により、(D1)〜(D3)の条件を満たす装置(例えば装置300b)のMACアドレスを取得する。
また、アドレス計測部250は、(B3)の方法によるMACアドレスの収集を行ってもよい。
なお、(B3)の方法は、利用者端末200の無線LAN機能がインフラストラクチャモードに設定されている場合に有効である。(B3)の方法でアドレス計測部250が収集することができるアドレスは、以下の条件(E1)〜(E3)をすべて満たす無線LANアクセスポイントのMACアドレスである。
(E1)電源が入っている。
(E2)利用者端末200と物理的に通信可能な位置に置かれている。
(E3)ビーコンフレームをブロードキャストする設定がなされている。
アドレス計測部250は、無線LANアクセスポイントが定期的にブロードキャストしているビーコンフレームを通信制御部240が受信するまで待つ。例えば、アドレス計測部250は、IEEE 802.11規格においてビーコン間隔として設定可能な最長の時間だけ待って、その間にビーコンフレームが受信されるか否かを監視してもよい。そして、通信制御部240がビーコンフレームを受信すると、アドレス計測部250は、ビーコンフレームのMACヘッダからMACアドレスを抽出し、取得する。
また、アドレス計測部250は、(B4)の方法によるMACアドレスの収集を行ってもよい。
なお、(B4)の方法は、利用者端末200の無線LAN機能がアドホックモードに設定されている場合に有効である。(B4)の方法でアドレス計測部250が収集することができるアドレスは、以下の条件(F1)〜(F4)をすべて満たす無線LAN端末のMACアドレスである。
(F1)電源が入っている。
(F2)利用者端末200と物理的に通信可能な位置に置かれている。
(F3)無線LAN機能がアドホックモードに設定されている。
(F4)ビーコンフレームをブロードキャストする設定がなされている。
アドレス計測部250は、他の無線LAN端末が定期的にブロードキャストしているビーコンフレームを通信制御部240が受信するまで待つ。そして、通信制御部240がビーコンフレームを受信すると、アドレス計測部250は、ビーコンフレームのMACヘッダからMACアドレスを抽出し、取得する。
なお、上記(B3)と(B4)の方法の変形例として、次のような方法も可能である。すなわち、アドレス計測部250は、ビーコンフレームの受信を待つ代わりに、通信制御部240を介してプローブ要求フレームを送信してもよい。そして、送信したプローブ要求フレームに対するプローブ応答フレームを通信制御部240が受信したら、アドレス計測部250は、プローブ応答フレームからMACアドレスを抽出してもよい。
以上説明したようにして、アドレス計測部250はステップS304において、複数の方法により、周囲の各種装置のMACアドレスを収集する。そして、アドレス計測部250は、計測した各MACアドレスをアドレス管理部260に出力する。
すると、ステップS305でアドレス管理部260は、「今回アドレス計測部250が収集したアドレスの中に、ステップS307以降の処理の対象として注目していない未処理のアドレスがまだ残っているか否か」を判断する。
そして、未処理のアドレスがもう残っていなければ、処理はステップS306に移行する。逆に、未処理のアドレスがまだ残っていれば、処理はステップS307に移行する。
ステップS306でアドレス管理部260は、計測間隔266(例えば、図6の例では30分)だけ待機する。そして、計測間隔266が経過すると、処理はステップS302に戻る。
他方、ステップS307でアドレス管理部260は、今回アドレス計測部250がステップS304で収集したアドレスの中でまだ注目していない未処理のアドレスに注目する。以下では説明の便宜上、ステップS307でアドレス管理部260が注目したアドレスを「注目アドレス」という。
そして、次のステップS308でアドレス管理部260は、注目アドレスが登録環境DB270に登録済みであるか否かを判断する。詳しくは図10とともに後述するが、登録環境DB270の各エントリは、「MACアドレス」、「出現回数」、「前回計測回」の各フィールドを含む。よって、アドレス管理部260は、MACアドレスの値が注目アドレスと等しいエントリを、登録環境DB270において検索する。
検索の結果としてエントリが見つかれば、注目アドレスは登録環境DB270に登録済みである。よって、処理はステップS309に移行する。なお、以下では説明の便宜上、ステップS308の検索で見つかったエントリを「注目エントリ」という。
逆に、検索の結果としてエントリが見つからなければ、注目アドレスは、今回初めて収集されたアドレスであり、登録環境DB270にまだ登録されていない。よって、処理はステップS311に移行する。
そして、ステップS309でアドレス管理部260内の統計処理部263は、登録環境DB270の注目エントリにおける出現回数フィールドの値を1だけインクリメントする。出現回数フィールドは、MACアドレスフィールドに登録されたアドレスがアドレス計測部250によって計測された回数を示す。
また、次のステップS310で統計処理部263は、登録環境DB270の注目エントリにおける前回計測回フィールドの値に、現在の計測回数264の値を設定する。前回計測回フィールドは、MACアドレスフィールドに登録されたアドレスがアドレス計測部250によって計測された最新の計測がいつなのかを示す。
なお、ステップS309とS310の実行順序は逆でもよい。ステップS309〜S310の実行後、処理はステップS305に戻る。
さて、ステップS311でアドレス管理部260は、登録環境DB270に新規エントリを追加する。
そして、次のステップS312でアドレス管理部260は、新規エントリのMACアドレスフィールドに、注目アドレスを設定する。
さらに、次のステップS313で統計処理部263は、新規エントリの出現回数フィールドの値を1に初期化する。
また、次のステップS314で統計処理部263は、新規エントリの前回計測回フィールドの値に、現在の計測回数264の値を設定する。
なお、ステップS312〜S314の実行順序は任意に入れ替え可能である。ステップS312〜S314の実行後、処理はステップS305に戻る。
続いて、以上説明した環境登録処理によって登録環境DB270にどのような情報が登録されるのかを、具体的に説明する。
図9には、環境変化の第1の例が表501aの形で示されている。表501aは、以下の(G1)〜(G3)の状況を表す。
(G1)2010年8月25日の朝に利用者端末200に電源が入れられ、図7の処理が実行され、ステップS211で、夕方までかけて図8の環境登録処理が行われた。環境登録処理の実行後、利用者端末200の電源が切断された。
(G2)2010年8月26日の朝に再び利用者端末200の電源が入れられ、図7の処理が実行され、今度はステップS213以下の処理が行われた。その後、利用者端末200の電源は再び切断された。
(G3)2010年8月27日の朝に再び利用者端末200の電源が入れられ、図7の処理が実行され、再びステップS213以下の処理が行われた。その後、利用者端末200の電源は再び切断された。
表501aにおいて、(G1)の状況を示すのは、最左列に「登録」と書かれた16行である。そして、(G2)と(G3)の状況を示すのは、最左列に「計測」と書かれた2行である。なお、(G2)と(G3)の状況についての詳細は、図11〜22とともに後述する。
また、説明の便宜上、図9ではアドレスの省略表記として「A」〜「E」という符号を用いている。そして、図9では、収集されたアドレスを丸印で示し、収集されなかったアドレスをダッシュで示している。
さて、表501aが示す(G1)の状況をより詳細に説明すると、以下のとおりである。
まず、2010年8月25日の9時25分に、計測回数264の値がステップS303で1に設定され、ステップS304で1回目のアドレス収集が行われる。その結果得られたアドレスは、アドレスA、B、C、およびEの4つである。よって、ステップS311〜S314の一連の処理が4回繰り返され、何もエントリを持たない初期状態の登録環境DB270に4つのエントリが追加される。
その後、ステップS306での待機(つまり、計測間隔266が規定する30分間の待機)を経て、処理はステップS302に戻る。そして、9時55分に、計測回数264の値がステップS303で2に設定され、ステップS304で2回目のアドレス収集が行われる。その結果得られたアドレスは、アドレスA、B、C、D、およびEの5つである。
ここで、アドレスA、B、C、およびEに対応するエントリは既に登録環境DB270にあるので、これらの4つのアドレスに関しては、ステップS309〜S310の処理がそれぞれ行われる。他方、アドレスDは2回目の収集で初めて収集されたので、アドレスDに関してはステップS311〜S314の処理が行われる。
以下同様にして、30分間隔でアドレスの収集が行われる。そして、16時55分における16回目の収集が終わった時点において、計測回数264の値は16であり、基準回数265に達している。したがって、環境登録処理におけるアドレスの収集は16回目で最後である。
なお、利用者端末200は、9時25分から16時55分まで、ある特定の環境内に置かれているものとする。しかし、当該特定の環境はまったく不変という訳ではなく、多少変動する。そして、一般に、利用者端末200が使われる環境は、日常的に多少変動することが多い。
例えば、アドレスAは16回の収集のすべてにおいて収集されている。また、アドレスBは16回目の収集では収集されていなが、他の15回の収集では収集されている。よって、アドレスAとBをそれぞれ持つ装置は、非常に安定的に環境内に存在する装置である。
アドレスC〜Eも、多くの場合に収集されている。よって、アドレスC〜Eをそれぞれ持つ装置も、比較的安定的に環境内に存在する装置である。しかし、環境登録処理において、アドレスCが収集されなかったことが2回あり、アドレスDが収集されなかったことが4回あり、アドレスEが収集されなかったことが3回ある。よって、アドレスAとBを持つ装置に比べれば、アドレスC〜Eを持つ装置はやや不安定である。
以上例示したような環境の小さな変動は、例えば、次の(H1)〜(H3)などの事象が原因で、起こり得る。
(H1)携帯型のある装置が、別の場所に移動された。
(H2)電波状況が変動した。
(H3)ある装置の電源が一時的に切断された。
よって、「利用者端末200が第1の時点で置かれた第1の環境と、利用者端末200が第2の時点で置かれた第2の環境が同じか否か」は、小さな変動を許容したうえで「第1と第2の環境が許容範囲内で一致するか否か」によって判定されることが望ましい。なぜなら、許容範囲を設けない判定では、「第1と第2の環境が完全に一致するか否か」が判定されるので、かえって判定結果が不正確になるおそれがあるからである。
第2実施形態では、図8〜9に示すように、環境登録処理において複数回のアドレス収集が行われる。よって、ある程度のスパンの時間(例えば9時25分から16時55分までの7時間30分)での変動を考慮に入れた形で、環境が登録環境DB270に登録される。
また、第2実施形態では、図11〜28とともに後述するように、「許容範囲内で2つの環境同士が一致するか否か」が判定される。よって、第2実施形態によれば、日常的な小さな変動に対してロバストな(robust)、適切な判定結果が得られる。
なお、図9の例において、例えば2010年8月25日の9時25分が、第1実施形態における「第1の時点」の例である。また、2010年8月25日の9時55分から16時55分までの15個の時点が、第1実施形態における「1つ以上の第3の時点」の例である。
もちろん、視点によっては、例えば2010年8月25日の12時25分を「第1の時点」と見なし、2010年8月25日の残りの15個の時点を「1つ以上の第3の時点」と見なすこともできる。いずれにしろ、図9の例では、「第1の時点」と15個の「第3の時点」を含む合計16個の時点から、総合的に、「第1の環境」が利用者端末200に認識される。
さてここで、図9の表501aが示す第1の例において登録された環境に関する情報を、図10を参照して具体的に説明する。後述の判定処理についての理解を助けるため、図10には、登録環境DB270に含まれるフィールドだけでなく、登録環境DB270の各エントリに対応する、後述の各種情報も図示されている。なお、以下では、図9の第1の例に示した環境が登録された状態の登録環境DB270を、特に「270a」という参照符号で表す。
図8に関して述べたとおり、登録環境DB270の各エントリは、MACアドレス、出現回数、前回計測回というフィールドを有する。また、図10には、説明の便宜上、さらに「アドレス省略表記」という列を示してある。
アドレス省略表記の列には、具体的には、図9で用いた「A」〜「E」という符号が示されている。つまり、図9の第1の例によれば、環境登録処理において1回以上収集されるアドレスの集合は{A,B,C,D,E}であるから、登録環境DB270aは、これら5つのアドレスに対応する5つのエントリを有する。
また、図10に示すように、具体的には、アドレスAは、00c0e6f62ecfというMACアドレスであり、アドレスBは、0054ef8a2c54というMACアドレスである。また、具体的には、アドレスCは、0015af5a84b6というMACアドレスであり、アドレスDは、00c3a54af566というMACアドレスであり、アドレスEは、00645a16b1b8というMACアドレスである。
そして、図9に示すように、「アドレスA〜Eが16回の収集のうち何回収集されたか」というと、それぞれ、16回、15回、14回、12回、13回である。そして、アドレスA〜Eが収集された回数は、図8のステップS309とS313に示すとおり、登録環境DB270aの出現回数フィールドに記録される。
また、図9に示すように、「アドレスA〜Eが直近に収集されたのはいつか」というと、それぞれ、16回目、15回目、14回目、16回目、13回目である。そして、アドレスA〜Eが直近に収集されたときの計測回数264の値は、図8のステップS310とS314に示すとおり、登録環境DB270aの前回計測回のフィールドに記録される。
続いて、図7のステップS213の計測処理の詳細について、図11〜13を参照して説明する。図11〜12は、計測処理のフローチャートであり、図13は、図9に示す第1の例において計測処理が行われた現在の環境に関する情報を示す図である。
図11のステップS401で状況判断部261は、計測回数264を1だけインクリメントする。
例えば、図9の第1の例では、上記(G2)のとおり、2010年8月26日の朝に利用者端末200に再び電源が入れられる。一方、前日に利用者端末200がシャットダウンされたときの計測回数264の値は16であり、電源切断前に計測回数264は不揮発性の記憶装置に書き出される。よって、2010年8月26日の朝に利用者端末200に再び電源が入れられて図11〜12の計測処理が行われる場合、ステップS401で状況判断部261は、計測回数264の値を16から17にインクリメントする。
同様に、図9の第1の例において、2010年8月27日の朝に利用者端末200に再び電源が入れられて図11〜12の計測処理が行われる場合、ステップS401で状況判断部261は、計測回数264の値を17から18にインクリメントする。
そして、次のステップS402でアドレス管理部260は、登録環境DB270の内容をコピーすることにより、現在環境情報295を初期化する。具体的には、アドレス管理部260は、登録環境DB270の各エントリについて、次の(I1)と(I2)の処理を行う。
(I1)現在環境情報295に新規エントリを作成する処理。
(I2)登録環境DB270のエントリから、MACアドレス、出現回数、前回計測回の値を読み出し、現在環境情報295の新規エントリのMACアドレス、出現回数、前回計測回の各フィールドに、読み出した値をそれぞれコピーする処理。
なお、詳しくは図13とともに後述するとおり、現在環境情報295の各エントリは、他にも様々なフィールドを含む。しかし、MACアドレス、出現回数、前回計測回以外のフィールドの値は後で設定される。
そして、次のステップS403でアドレス管理部260は、アドレス計測部250にアドレスの収集を依頼する。すると、アドレス計測部250は、環境登録処理のステップS304と同様にして、利用者端末200の周辺にある他の装置のアドレスを収集する。そして、アドレス計測部250は、収集したMACアドレスをアドレス管理部260に出力する。
すると、ステップS404でアドレス管理部260は、「アドレス計測部250が収集したアドレスの中に、ステップS405以降の処理の対象として注目していない未処理のアドレスがまだ残っているか否か」を判断する。
そして、未処理のアドレスがもう残っていなければ、処理は図12のステップS413に移行する。逆に、未処理のアドレスがまだ残っていれば、処理は図11のステップS405に移行する。
ステップS405でアドレス管理部260は、アドレス計測部250がステップS403で収集したアドレスの中でまだ注目していない未処理のアドレスに注目する。以下、説明の便宜上、ステップS405でアドレス管理部260が注目したアドレスを「注目アドレス」という。
そして、ステップS406でアドレス管理部260は、注目アドレスが現在環境情報295に記憶済みであるか否かを判断する。上記のとおり現在環境情報295の各エントリはMACアドレスのフィールドを持つので、アドレス管理部260は、MACアドレスの値が注目アドレスと等しいエントリを、現在環境情報295において検索する。
検索の結果としてエントリが見つかれば、注目アドレスは現在環境情報295に記憶済みである。よって、処理はステップS407に移行する。なお、以下では説明の便宜上、ステップS406の検索で見つかったエントリを「注目エントリ」という。
逆に、検索の結果としてエントリが見つからなければ、注目アドレスは現在環境情報295にはまだ記憶されていない。よって、処理はステップS409に移行する。
なお、ステップS406において検索の結果としてエントリが見つからない場合とは、登録環境DB270には登録されていないが計測処理では収集されたアドレスが、ステップS405で注目された場合である。この場合、注目アドレスに対応するエントリは、ステップS402の初期化では現在環境情報295に追加されないので、ステップS406の検索ではエントリが見つからない。
そして、ステップS407でアドレス管理部260内の統計処理部263は、現在環境情報295の注目エントリにおける出現回数フィールドの値を1だけインクリメントする。
また、次のステップS408で統計処理部263は、現在環境情報295の注目エントリにおける前回計測回フィールドの値に、現在の計測回数264の値を設定する。
なお、ステップS407とS408の実行順序は逆でもよい。ステップS407〜S408の実行後、処理はステップS404に戻る。
さて、ステップS409でアドレス管理部260は、現在環境情報295に新規エントリを追加する。
そして、次のステップS410でアドレス管理部260は、新規エントリのMACアドレスフィールドに、注目アドレスの値を設定する。
さらに、次のステップS411で統計処理部263は、新規エントリの出現回数フィールドの値を1に初期化する。
また、次のステップS412で統計処理部263は、新規エントリの前回計測回フィールドの値に、現在の計測回数264の値を設定する。
なお、ステップS410〜S412の実行順序は任意に入れ替え可能である。ステップS410〜S412の実行後、処理はステップS404に戻る。
さて、アドレス管理部260は、アドレス計測部250がステップS403で収集したすべてのアドレスについて注目し終わると、図12のステップS413〜S417の処理を行う。
すなわち、ステップS413でアドレス管理部260の統計処理部263は、「現在環境情報295のエントリの中で、ステップS415〜S417の処理の対象として注目していない未処理のエントリがまだ残っているか否か」を判断する。
そして、未処理のエントリがもう残っていなければ、図11〜12の計測処理は終了する。逆に、未処理のエントリがまだ残っていれば、処理はステップS414に移行する。
ステップS414で統計処理部263は、現在環境情報295のエントリの中で、ステップS415〜S417の処理の対象としてまだ注目していない未処理のエントリに注目する。以下、説明の便宜上、ステップS414で統計処理部263が注目したエントリを「注目エントリ」という。
なお、詳しくは図13および14とともに後述するが、現在環境情報295の各エントリは、「経過回数」、「不在率」、「時間経過率」というフィールドを有する。続くステップS415〜S417では、これら3つのフィールドに値が設定される。
すなわち、ステップS415で統計処理部263は、計測回数264の現在の値から、注目エントリの前回計測回の値を引く。そして、統計処理部263は、得られた差を、現在環境情報295の注目エントリの経過回数フィールドに設定する。
つまり、注目エントリのアドレスが今回の計測処理で収集された場合には、経過回数フィールドには、必ず0が設定される。他方、注目エントリのアドレスが今回の計測処理で収集されなかった場合、経過回数フィールドは、「環境登録処理と今回を含む今までの計測処理を通して注目エントリのアドレスが最後に収集されてから、今回の計測処理も含めて何回の収集が行われたか」を示す。
例えば、環境登録処理で16回のアドレス収集が行われ、今回が2回目の計測処理だとすると、合計で18回のアドレス収集が行われたことになる。仮に、あるアドレスが最後に収集されたのが15回目のアドレス収集だったとすると、当該アドレスが最後に収集されてから、今回の計測処理も含めて3回のアドレス収集が行われている。つまり、16〜18回目の連続する3回のアドレス収集において、当該アドレスは収集されていない。よって、経過回数として3が設定される。
また、ステップS416で統計処理部263は、計測回数264の現在の値から、注目エントリの出現回数の値を引き、得られた差を計測回数264の現在の値で割る。そして、統計処理部263は、得られた商に100を掛け、得られた積を現在環境情報295の注目エントリの不在率フィールドに設定する。
つまり、不在率フィールドは、環境登録処理と今回を含む今までの計測処理を通して行われたアドレス収集の総回数に対する、注目エントリのアドレスが収集されなかった回数のパーセンテージを示す。例えば合計で18回のアドレス収集のうち、15回では収集され、3回で収集されなかったアドレスの不在率は、約16.7%(=(18−15)/18×100)である。
また、ステップS417で統計処理部263は、注目エントリの経過回数の値を計測回数264の現在の値で割り、得られた商に100を掛ける。そして、統計処理部263は、得られた積を現在環境情報295の注目エントリの時間経過率フィールドに設定する。時間経過率フィールドは、環境登録処理と今回を含む今までの計測処理を通して行われたアドレス収集の総回数に対する、経過回数のパーセンテージを示す。
なお、ステップS417はステップS415の後に行われるが、ステップS416はステップS415およびS417とは独立した処理なので、適宜実行順序が入れ替えられてもよい。ステップS415〜S417の実行後、処理はステップS413に戻る。
続いて、以上説明した計測処理によって、図9の第1の例では現在環境情報295にどのような値が設定されるのかを、具体的に説明する。
図13は、第1の例において2010年8月26日に計測処理が行われた時点(以下、図13の説明においては便宜上この時点を「現在」ともいう)の環境に関する情報を示す図である。なお、図13には、計測処理によって得られる値だけでなく、図14〜15の判定処理によって得られる値も示してある。判定処理によって得られる値については後述する。
現在環境情報295は、それぞれMACアドレスと対応づけられたエントリを1つ以上含む。以下では、図9の第1の例において2010年8月26日の計測処理と判定処理で得られる現在環境情報295を、特に「295a」という参照符号で表す。
図9の第1の例によれば、2010年8月25日の環境登録処理で登録された環境には、図10のとおり、アドレスA〜Eの装置が存在する。また、図9の第1の例によれば、2010年8月26日の計測処理のステップS403では、5つのアドレスA〜Eが検出される。
したがって、現在環境情報295aは、アドレスA〜Eにそれぞれ対応する5つのエントリを有する。また、計測処理によって値が設定されるフィールドは、図11〜12を参照して説明したとおり、MACアドレス、出現回数、前回計測回、経過回数、不在率、および時間経過率である。
説明の便宜上、図9や10と同様に図13でも「A」〜「E」という符号を使っているが、アドレスA〜Eの具体的なMACアドレスは図13に示すとおりである(つまり、図10と同様である)。
また、図9の第1の例において、2010年8月26日の計測処理は、環境登録処理の後の初めての計測処理である。よって、図13の現在環境情報295aにおいて、アドレスAの出現回数の値は、図10のアドレスAの出現回数の値である16よりも1だけ大きい、17である。他のアドレスB〜Eについても同様である。
また、図9の第1の例において、2010年8月26日の計測処理のときの計測回数264の値は17であり、5つのアドレスA〜Eはすべて2010年8月26日の計測処理で検出されている。よって、図13の現在環境情報295aにおいて、5つのアドレスA〜Eの前回計測回の値はいずれも17である。
そして、計測回数264の値が17であり、出現回数と前回計測回の値は図13に示したとおりであるので、各アドレスの不在率、経過回数、および時間経過率は、図12のステップS415〜S417において、図13に示すごとく設定される。例えば、アドレスCに関しては、出現回数が15なので、不在率は約11.8%(=(17−15)/17×100)である。また、図13の例では、どのアドレスも、前回計測回が17なので、経過回数が0(=17−17)であり、時間経過率が0.0%(=0/17×100)である。
さて、以上図11〜13を参照して説明した計測処理が、図7のステップS213で実行されると、その後、ステップS214で判定処理が実行される。以下では判定処理について、図14〜28と、前述の図9、10、13を参照して説明する。
図14〜15は、第2実施形態の判定処理のフローチャートである。判定処理は、アドレス管理部260から特徴点分布生成部280への依頼を契機として開始される。また、依頼に際して、アドレス管理部260内のアドレス抽出部262は、登録環境DB270から各エントリのMACアドレスを抽出し、特徴点分布生成部280内のアドレス分解部281に出力する。
すると、ステップS501で特徴点分布生成部280のアドレス分解部281は、登録環境DB270の各アドレスについて、アドレスからXY座標を算出することで、アドレスをXY平面上の点にマッピングする。つまり、ステップS501は図2のステップS102に対応する。
以下では説明の便宜上、登録環境DB270内のj番目(1≦j)のエントリのMACアドレスを「Addrj」という記号で表し、アドレスAddrjがXY平面上の点Pj=(Xj,Yj)にマッピングされるものとする。ステップS501でのマッピングは、式(3)〜(4)のように表すことができる。
Xj=getX(Addrj) (3)
Yj=getY(Addrj) (4)
式(3)の写像getXは、MACアドレスからX座標への任意の写像でよい。また、式(4)の写像getYは、MACアドレスからY座標への任意の写像でよい。第2実施形態では、複数のMACアドレスが適度にXY平面上に散らばるようにするため、具体的には、写像getXとgetYとして、以下のような写像が使われる。
すなわち、写像getXは、MACアドレスの奇数オクテットを連結して24ビットのビット列を得て、当該ビット列が表す整数を定数で割って、剰余を算出する関数である。第2実施形態では、定数として具体的には100が使われるが、もちろん、実施形態に応じて他の定数が使われてもよい。また、以下ではMACアドレスの最上位オクテットを1オクテット目といい、最下位オクテットを6オクテット目という。
そして、写像getYは、MACアドレスの偶数オクテットを連結して24ビットのビット列を得て、当該ビット列が表す整数を定数で割って、剰余を算出する関数である。なお、写像getYで使われる定数は、写像getXで使われる定数と同じ値でもよいし、別の値でもよい。第2実施形態では、定数として具体的には100が使われるが、もちろん、実施形態に応じて他の定数が使われてもよい。
例えば、図10によれば、登録環境DB270aの1番目のアドレスAは、具体的には00c0e6f62ecfというMACアドレスである。つまり、1オクテット目は00、2オクテット目はc0、3オクテット目はe6、4オクテット目はf6、5オクテット目は2e、6オクテット目はcfである。
よって、奇数オクテットを連結すると、16進表現で00e62eと表される、長さ24ビットのビット列が得られる。そして、このビット列を10進数として表すと58926であるから、100で割って得られる剰余は26である。すなわち、アドレスAに対して、X座標として26が得られる。
また、アドレスAの偶数オクテットを連結すると、16進数表現でc0f6cfと表される、長さ24ビットのビット列が得られる。そして、このビット列を10進数として表すと、12646095であるから、100で割って得られる剰余は95である。すなわち、アドレスAに対して、Y座標として95が得られる。
以上により、アドレスAは、アドレス分解部281によってXY平面上の点(26,95)にマッピングされる。同様にして、アドレスBは点(28,36)にマッピングされ、アドレスCは点(32,78)にマッピングされ、アドレスDは点(85,66)にマッピングされ、アドレスEは点(17,16)にマッピングされる。
図10には、以上説明した図14のステップS501におけるマッピングについての理解を助けるため、「奇数オクテット連結」と「偶数オクテット連結」と「X座標」と「Y座標」の列が示されている。
なお、上記の写像getXとgetYの例では、MACアドレスのすべてのビットがXY座標の算出に用いられる。しかし、実施形態によっては、MACアドレス中の一部のビットのみが、XY座標の算出に使われてもよい。また、実施形態によっては、XY座標の算出において、ビット位置の入れ替え、またはビット値の反転などがさらに行われてもよい。
また、上記の写像getXとgetYによれば、複数のMACアドレスをそれぞれマッピングした点が、XY平面上に適度に散らばることが期待される。その理由は、第1実施形態に関して説明したとおり、写像getXとgetYが剰余演算を含む関数だからである。
また、MACアドレスにおいては、上位3オクテットがベンダ識別子であり、下位3オクテットがベンダ内での識別子である。上記の写像getXとgetYは、MACアドレスのこの性質を考慮に入れたうえで、マッピングされた点がXY平面上に適度に散らばるように定義されている。
仮に、X座標が上位3オクテットから算出され、Y座標が下位3オクテットから算出されるとすると、例えば同じベンダの装置が5個使われている環境においては、マッピングされた5個の点のX座標がすべて等しくなってしまう。そこで、同じベンダの装置が複数使われていても、マッピングされた点がXY平面上で適度に散らばるようにするため、第2実施形態では、上記のように写像getXとgetYが定義される。
すなわち、X座標の算出には、上位3オクテットの一部(つまり1オクテット目と3オクテット目)だけでなく、下位3オクテットの一部(つまり5オクテット目)も使われる。同様に、Y座標の算出には、上位3オクテットの一部(つまり2オクテット目)だけでなく、下位3オクテットの一部(つまり4オクテット目と6オクテット目)も使われる。その結果、たとえ同じベンダの装置が複数使われていても、マッピングされた点がXY平面上で適度に散らばると期待される。
なお、MACアドレスからXY座標へのマッピングでは、必ずしも上記のようにオクテット単位でデータが処理されなくてもよいことは無論である。実施形態によっては、例えば、X座標の算出に奇数ビットが使われ、Y座標の算出に偶数ビットが使われてもよい。
つまり、写像getXは、アドレスを示すビット列から、複数の所定位置のビットを抽出し、抽出したビットを連結した部分ビット列が示す整数を定数で割った剰余を得る任意の写像でよい。写像getYについても同様である。
図10の例では、写像getXにおける「複数の所定位置のビット」が、具体的には奇数オクテットに属するビットである。しかし、上記のとおり、「複数の所定位置のビット」は、実施形態に応じて、例えば奇数ビットでもよい。
また、MACアドレスの長さは48ビットだが、このうちの一部のみがXY座標の算出に使われてもよい。例えば、「所定位置の12ビットからX座標が算出され、別の所定位置の12ビットからY座標が算出され、残りの24ビットはXY座標の算出には使われない」などの実施形態も可能である。
さて、上記のようにしてステップS501でアドレス分解部281がMACアドレスをXY平面上の点にマッピングすると、アドレス分解部281は、マッピング結果を特徴点分布生成部280の内部データとして例えばRAM403上に記憶する。そして、処理はステップS502に移行する。
すると、ステップS502で重心決定部284は、登録環境DB270に登録された各アドレスがマッピングされた各点のXY座標から、登録された環境における重心のXY座標を算出する。
ここで、説明の便宜上、登録環境DB270が有するエントリの数をR個(1≦R)とする。また、重心のXY座標を(Xα,Yα)と表記する。重心決定部284は、アドレス分解部281がステップS501で算出したXY座標の値を用いて、下記の式(5)と(6)にしたがって重心のXY座標(Xα,Yα)を算出する。また、重心のXY座標(Xα,Yα)も、特徴点分布生成部280の内部データとして、例えばRAM403上に記憶される。
例えば、図10の登録環境DB270aに関してステップS502で算出される重心の座標は、具体的には式(7)〜(8)のとおりである。
Xα=(26+28+32+85+17)/5=37.6 (7)
Yα=(95+36+78+66+16)/5=58.2 (8)
以上のようにしてアドレスA〜Eからそれぞれマッピングされた5つの点と重心とをXY平面上に表現すると、図16のグラフ502aのとおりである。グラフ502aにおいて、5つのバツ(×)印は、アドレスA〜Eからそれぞれマッピングされた5つの点を示す。各バツ印の近傍には、対応するアドレスを示す符号とXY座標の値が書いてある。また、黒い丸印は、重心を示す。図16では、図示の便宜上、重心の座標の小数点以下は丸められて表記されている。
さて、次のステップS503で重心決定部284は、登録環境DB270の各アドレスについて、ステップS501で得られたXY座標から、重心に対する角度を算出する。つまり、重心決定部284は、1≦j≦Rなる各jについて、点(Xj,Yj)の重心(Xα,Yα)に対する角度θjを算出する。また、各角度θjも、特徴点分布生成部280の内部データとして、例えばRAM403上に記憶される。
具体的には、重心決定部284は、等式(9)〜(11)をすべて満たす値を角度θjとして求める。逆三角関数は多価関数だが、等式(9)〜(11)をすべて満たす値は一意に定まる。よって、重心決定部284は、角度θjを一意に算出することができる。
−180°<θj≦180° (11)
図10には、登録環境DB270aに登録された5つのアドレスA〜Eそれぞれの、重心に対する角度も示されている。なお、図示の便宜上、重心に対する角度は、小数点以下2桁までが表示されているが、図10は有効桁数を限定することを意図したものではない。他の図においても、数値は図示の便宜上丸められているが、どの図も有効桁数を限定することを意図したものではない。
ところで、以上のステップS501〜S503により、各アドレスは、X座標とY座標と重心(Xα,Yα)に対する角度の3つ組(3-tuple)〈Xj,Yj,θj〉に対応づけられる。そして、座標と角度を持つ点は、特徴点として扱うことができる。つまり、ステップS501〜S503により、各アドレスから特徴点が得られる。
そして、登録環境DB270に登録されたR個のアドレスにそれぞれ対応するR個の特徴点の分布が、全体として、登録された環境を表す。つまり、以上のステップS501〜S503により、特徴点分布生成部280は、登録された環境を表す特徴点分布を生成する。別の観点から述べれば、ステップS502〜S503は、図2のステップS103の具体例である。
なお、以上のようにして生成された特徴点分布を図形的に表現すると、図17のとおりである。図17に示すように、登録された環境の特徴点分布503aは、図16のグラフ502aに各点から重心へ向かう矢印を追加した図として表現される。
図10に示すように、例えばアドレスAがマッピングされた点(26,95)の重心に対する角度は−72.50°である。よって、図17においては、点(26,95)を表すバツ印を始点として、−72.50°の方向の矢印が描かれている。他のアドレスB〜Eに関しても同様である。
なお、登録された環境の特徴点分布503aは、データとしては、上記のとおり、X座標とY座標と重心に対する角度の3つ組〈Xj,Yj,θj〉で表される特徴点の集合として表される。そのため、図10の「X座標」と「Y座標」と「重心に対する角度」という3つの列には、図17と同様に「503a」という参照符号が付与されている。
さて、続いて、ステップS504でアドレス分解部281は、現在環境情報295の各エントリについて、アドレスからXY座標を算出することで、アドレスをXY平面上の点にマッピングする。ステップS504は、マッピング対象のアドレスが登録環境DB270中のアドレスではなく現在環境情報295中のアドレスであるという点以外は、ステップS501と同様である。また、ステップS504は図2のステップS105に対応する。
ここで説明の便宜上、現在環境情報295が有するエントリの数をMとする。図11のステップS402より、R≦Mである。例えば、図10と13の例では、R=M=5である。また、特に混乱のおそれはないので、現在環境情報295内のj番目(1≦j≦M)のエントリのMACアドレスも、「Addrj」という記号で表すことにする。
以上導入した表記を用いてステップS504の処理を説明すれば、次のとおりである。すなわち、アドレス分解部281はステップS504で、1≦j≦Mなる各jについて、ステップS501と同じ式(3)と(4)にしたがって、XY座標を算出する。
図13の現在環境情報295aには、ステップS504で算出されたXY座標の値が、「移動前」というラベルの付けられた「X座標」列と「Y座標」列に記載されている。なお、図13には、オフセットによる点の移動の前に得られる基本的な情報が「296a」という参照符号で示されている。すなわち、情報296aは、計測処理で得られるMACアドレスと出現回数と前回計測回を含むとともに、判定処理のステップS504で得られるX座標とY座標を含む。
また、図13には、オフセットの算出のために使われる情報297aとして、「不在率」、「経過回数」、「時間経過率」、「距離」、および「ランダム角度」が示されている。これらの情報297aのうち、不在率と経過回数と時間経過率は、図12の計測処理で算出済みである。そこで、以下のステップS505で距離が算出され、ステップS506でランダム角度が決定される。
すなわち、図14のステップS505において、距離決定部282は、現在環境情報295の各エントリについて、不在率と時間経過率から距離を算出する。具体的には、距離決定部282は、不在率の2乗と時間経過率の2乗の和の2乗根を、距離として算出する。
ここで説明の便宜上、現在環境情報295のj番目(1≦j≦M)のエントリに関して、以下の(J1)〜(J7)のような記号を導入する。また、計測回数264の現在の値を「CurrentRound」という記号で表記することにする。
(J1)出現回数……Occurrencej
(J2)前回計測回……PrevRoundj
(J3)不在率……AbsenceRatej
(J4)経過回数……ElapsedRoundsj
(J5)時間経過率……ElapseRatej
(J6)距離……rj
(J7)ランダム角度……wj
以上の表記にしたがえば、図12のステップS416で算出された不在率は、式(12)のとおりである。
また、図12のステップS415で算出された経過回数は、式(13)のとおりである。
そして、図12のステップS417で算出された時間経過率は、式(14)のとおりである。
したがって、図14のステップS505で距離決定部282が算出する距離は、ステップS505に関して説明した上記の定義によれば、式(15)のとおりである。算出された距離は、現在環境情報295の一部として、例えばRAM403上に記憶される。
例えば、図13には、ステップS505でアドレスA〜Eについて算出されたそれぞれの距離0.0、5.9、11.8、23.5、17.6が示されている。図13から明らかなように、距離は、出現回数が多いほど小さい。換言すれば、距離は、不在率が高いほど大きい。
また、図13の例では、偶然にもすべてのアドレスA〜Eの前回計測回の値が等しいので、前回計測回の違いによる距離の違いは図示されていない。しかし、上記の式(13)〜(15)から明らかなように、距離は、前回計測回の値が大きいほど小さい。換言すれば、距離は、経過回数が多いほど大きく、時間経過率が高いほど大きい。
ここで、「あるアドレスについての不在率が高い」ということは、「当該アドレスを持つ装置が、登録された環境内に安定的に存在しておらず、不安定度が高い」ということである。また、「あるアドレスについての時間経過率が高い」ということは、「当該アドレスを持つ装置が、登録された環境内に以前は環境に存在していたものの、登録された環境内に存在しなくなって久しい」ということである。
したがって、式(15)の距離は、不安定度の高い装置ほど大きく、登録された環境に存在しなくなってからの時間が長い装置ほど大きい。逆に言えば、式(15)の距離は、登録された環境により安定的に存在している装置ほど小さく、登録された環境でより最近に存在が確認された装置ほど小さい。
なお、距離の定義は実施形態に応じて様々に変更可能である。出現回数に対して単調減少する(換言すれば、不在率に対して単調増加する)任意の関数を、距離として利用することができる。また、距離は、上記の式(15)のように、経過回数に対して単調増加する(換言すれば、時間経過率に対して単調増加する)ことが、より好ましい。
続いて、ステップS506でアドレス配置部283は、現在環境情報295の各エントリについて、0°以上360°未満のランダムな角度を決定する。なお、ステップS506で決定される角度がランダムであることが望ましい理由については、後述する。
例えば、図13には、ステップS506でアドレスA〜Eについて決定されたそれぞれのランダムな角度45°、45°、40°、260°、110°が示されている。
そして、ステップS507でアドレス配置部283は、現在環境情報295の各エントリについて、元の点をオフセットの加算により移動した点のXY座標を算出する。ここで、オフセットはベクトルである。
そして、オフセットの大きさは、ステップS505で算出された距離の1/2である。また、オフセットの方向は、ステップS506で得られたランダムな角度である。つまり、アドレス配置部283は、元の点を中心とし、算出された距離の1/2を半径とする円上の、ランダムな角度の方向に、元の点を移動する。
以下では、点(Xj,Yj)が移動された点のX座標およびY座標を、それぞれ「X´j」および「Y´j」と表記する。移動後の点のX座標X´jとY座標Y´jは、式(16)〜(17)のとおりである。算出されたX座標X´jとY座標Y´jは、現在環境情報295の一部として、例えばRAM403上に記憶される。
例えば、図13には、ステップS507でアドレスA〜Eの各々について、移動された点のX座標X´jとY座標Y´jが示されている(なお、図示の便宜上、小数点以下は丸められている)。例えば、距離が0.0のアドレスAについては、移動前の点(26,95)と移動後の点(26,95)は同じ位置にある。しかし、距離が23.5と比較的大きいアドレスDについては、移動前の点(85,66)と移動後の点(83,54)は離れた位置にある。
なお、ステップS507における点の移動を図形的に表現すると、図18のとおりである。図18のグラフ504aは、以下の(K1)〜(K4)を含む。
(K1)各アドレスがマッピングされた点を示すバツ印と、各点のXY座標と、各アドレスを示す参照符号(図16のグラフ502aと同様)。
(K2)ステップS502で算出された重心を示す黒い丸印(図16のグラフ502aと同様)。
(K3)各アドレスについての、破線で描かれた円。各円は、ステップS505で算出された距離の1/2を半径とし、(K1)のバツ印を中心とする。
(K4)各アドレスについての、移動後の点を示す白い丸印。白い丸印は、(K3)の円上にある。また、バツ印に対する白い丸印の(K1)の角度は、ステップS506で決定されたランダム角度である。
さて、以上説明したようにステップS507で点の移動が行われると、処理はステップS508に移行する。そして、ステップS508で重心決定部284は、現在環境情報295の一部として記憶されている、移動後の各点のXY座標(X´j,Y´j)から、現在の環境の重心のXY座標を算出する。また、算出された重心の座標は、特徴点分布生成部280の内部データとして、例えばRAM403上に記憶される。
ここで、上記の表記によれば、現在環境情報295が有するエントリの数はMである。また、ステップS508で算出される重心のXY座標を以下では(Xβ,Yβ)と表記する。すると、ステップS508で重心決定部284が行う計算は、具体的には、下記の式(18)〜(19)のとおりである。
例えば図13の現在環境情報295aによれば、ステップS508で算出される重心のX座標Xβは約38であり、Y座標Yβは約59である。すなわち、登録された環境に関してステップS502で算出された重心(Xα,Yα)と、現在の環境に関してステップS508で算出された重心(Xβ,Yβ)は、各点の移動の影響により、必ずしも一致するとは限らない。
さて、以上のようにして重心(Xβ,Yβ)が得られると、処理は図15に示すステップS509に移行する。すると、ステップS509で重心決定部284は、現在環境情報295の各エントリについて、ステップS507で移動した後の点のXY座標(X´j,Y´j)から、移動後の点の重心(Xβ,Yβ)に対する角度θ´jを算出する。また、各角度θ´jも、現在環境情報295の一部として例えばRAM403上に記憶される。
具体的には、重心決定部284は、等式(20)〜(22)をすべて満たす値を角度θ´jとして求める。逆三角関数は多価関数だが、等式(20)〜(22)をすべて満たす値は一意に定まる。よって、重心決定部284は、角度θ´jを一意に算出することができる。
−180°<θ´j≦180° (22)
図13には、現在環境情報295aに含まれる5つのアドレスA〜Eそれぞれの、重心(Xβ,Yβ)に対する角度θ´jも示されている。
そして、以上のステップS504〜S509により、各アドレスは、X座標X´jとY座標Y´jと重心(Xβ,Yβ)に対する角度θ´jの3つ組〈X´j,Y´j,θ´j〉に対応づけられる。そして、座標と角度を持つ点は、特徴点として扱うことができる。つまり、ステップS504〜S509により、現在環境情報295中の各アドレスから特徴点が得られる。
そして、現在環境情報295に含まれるM個のアドレスにそれぞれ対応するM個の特徴点の分布が、全体として、現在の環境を表す。つまり、以上のステップS504〜S509により、特徴点分布生成部280は、現在の環境を表す特徴点分布を生成する。別の観点から述べれば、ステップS504〜S509は、図2のステップS106の具体例である。
なお、図11のステップS402に示すように、現在環境情報295は、登録環境DB270の内容を用いて初期化される。したがって、利用者端末200が現在置かれた環境には実際には存在しない装置に対応するエントリが現在環境情報295に含まれることもある。このような初期化を行う理由は、次のステップS510の照合処理が特徴点分布同士の位置合わせを含むためである。理由の詳細は後述する。
ここではひとまず、ステップS402の初期化の理由の詳細には立ち入らないことにする。そして、「利用者端末200が現在置かれた環境には存在しない装置に対応するエントリが現在環境情報295に含まれることもあり得るが、たとえそうでも、ステップS504〜S509で得られた特徴点分布は、現在の環境を表す」と認めて説明を続ける。
以上のようにしてステップS504〜S509により得られた特徴点分布は、図形的に表現すると、図19のとおりである。図19に示すように、現在の環境の特徴点分布505aは、図形的には、下記(L1)〜(L3)により表される。
(L1)図18において移動後の点を示す5個の白い丸印と同じ、白い丸印。なお、移動後の点のXY座標、および対応するアドレスの参照符号も、白い丸印の近傍に書かれている。
(L2)ステップS508で得られた重心(Xβ,Yβ)を示す黒い丸印とそのXY座標。なお、図18の黒い丸印はステップS502で得られた(Xα,Yα)を表すので、図19の黒い丸印とは異なる。
(L3)上記(L1)の白い丸印のそれぞれから、(L2)の重心(Xβ,Yβ)へ向かう矢印。
例えば、図13に示すように、アドレスCに対応する移動後の点(37,82)の重心(Xβ,Yβ)=(38,59)に対する角度は−86.53°である。よって、図19においては、点(37,82)を表す白い丸印を始点として、−86.53°の方向の矢印が描かれている。他のアドレスA、B、D、Eに関しても同様である。
なお、現在の環境の特徴点分布505aは、データとしては、3つ組〈X´j,Y´j,θ´j〉で表される特徴点の集合として表される。そのため、図13において「移動後」というラベルの付いた「X座標」と「Y座標」と「重心に対する角度」という3つの列には、図19と同様に「505a」という参照符号が付されている。
さて、以上のようにして現在の環境の特徴点分布505aが得られると、続いて、ステップS510で照合処理が行われる。照合処理の詳細は、図20〜22とともに後述するが、概要を述べれば次のとおりである。すなわち、照合処理においては、環境判定部290が、登録された環境の特徴点分布503aと現在の環境の特徴点分布505aを照合する。そして、環境判定部290は、照合の結果として、2つの特徴点分布が合致する度合を示す「合致率」というスコアを算出する。
すると、次のステップS511で環境判定部290は、合致率が予め決められた基準合致率(例えば0.7)を超えているか否かを判定する。
もし、合致率が基準合致率を超えていれば、環境判定部290は、「現在の環境は登録された環境と同じである」という判定結果をアドレス管理部260に出力する。そして、処理はステップS512に移行する。
逆に、合致率が基準合致率以下であれば、環境判定部290は、「現在の環境は登録された環境とは異なる」という判定結果をアドレス管理部260に出力する。そして、処理はステップS515に移行する。
そして、ステップS512でアドレス管理部260内の統計処理部263は、現在環境情報295の内容を登録環境DB270にコピーする。
具体的には、統計処理部263は、まず登録環境DB270の全エントリを削除する。そして、統計処理部263は、現在環境情報295の各エントリに順に注目し、注目しているエントリに関して次の(M1)と(M2)の処理を行う。
(M1)登録環境DB270に新規エントリを追加する。
(M2)登録環境DB270の新規エントリのMACアドレスと出現回数と前回計測回のフィールドに、現在環境情報295で注目しているエントリのMACアドレスと出現回数と前回計測回の値をそれぞれコピーする。
なお、統計処理部263は、現在環境情報295のすべてのエントリに注目し終えたら、現在環境情報295を破棄する。
そして、次のステップS513でアドレス管理部260は、「現在の環境は登録された環境と同じである」という、環境判定部290から通知された判定結果を個人認証部230に出力する。すると、ステップS513で個人認証部230内の閾値変更部233は、図6の閾値情報236から、登録済みの環境用の低い照合閾値を読み出し、読み出した値を、生体認証に用いる照合閾値として設定する。そして、処理はステップS514に移行する。
また、ステップS514では、閾値変更部233によって設定された照合閾値にしたがって、認証処理部231が個人認証を行う。すなわち、認証処理部231は、認証情報入力部210を介して利用者から生体情報の入力を受け付ける。そして、認証処理部231は、受け付けた生体情報と、認証情報DB220に予め登録されている生体情報とを照合し、照合スコアを算出するよう、生体情報照合部235に依頼する。
さらに、認証処理部231は、生体情報照合部235により算出された照合スコアを照合閾値と比較する。そして、照合スコアが照合閾値を超えていれば、認証は成功し、認証処理部231は利用者を認証する。逆に、照合スコアが照合閾値以下であれば、認証は失敗し、認証処理部231は利用者を認証しない。
ステップS514の上記の一連の処理が終了すると、図14〜15の判定処理も終了する。そして、図7のステップS214に相当する判定処理が終了すると、ステップS215以降の処理が行われる。
また、上記のステップS511で合致率が基準合致率以下だった場合は、ステップS515でアドレス管理部260内の統計処理部263が現在環境情報295を破棄する。
そして、次のステップS516でアドレス管理部260は、「現在の環境は登録された環境と異なる」という、環境判定部290から通知された判定結果を個人認証部230に出力する。すると、ステップS516で個人認証部230内の閾値変更部233は、図6の閾値情報236から、登録されていない新規環境用の高い照合閾値を読み出し、読み出した値を、生体認証に用いる照合閾値として設定する。そして、処理はステップS514に移行する。ステップS514の詳細は上述のとおりである。
さて、続いてステップS510で行われる照合処理の詳細について、図20〜22を参照して説明する。図20は、照合処理のフローチャートである。
ステップS601で環境判定部290は、登録された環境と現在の環境の特徴点分布(例えば図17と19の特徴点分布503aと505a)の間で、許容範囲内で合致する特徴点の数を数えるための変数を0に初期化する。なお、以下では便宜上、この変数を「合致数」ともいう。
また、次のステップS602で環境判定部290は、登録された環境と現在の環境の特徴点分布(例えば図17と19の特徴点分布503aと505a)の間で、許容範囲内で合致しない特徴点の数を数えるための変数を0に初期化する。なお、以下では便宜上、この変数を「非合致数」ともいう。
そして、次のステップS603で環境判定部290は、現在環境情報295内に、ステップS605〜S611の処理の対象としてまだ注目していないエントリが残っているか否かを判断する。もし、まだ注目していないエントリがまだ残っていれば、処理はステップS604に移行する。逆に、すべてのエントリに既に注目していれば、処理はステップS612に移行する。
ステップS604で環境判定部290は、ステップS605〜S611の処理の対象としてまだ注目していない現在環境情報295内のエントリに注目する。以下では説明の便宜上、ステップS604で環境判定部290が注目したエントリを「注目エントリ」という。
そして、次のステップS605で合致判断部292は、登録環境DB270を検索することにより、注目エントリのMACアドレスが登録環境DB270に登録されているか否かを判断する。
もし、注目エントリのMACアドレスが登録環境DB270に登録されていなければ、注目エントリは、登録された環境には存在しなかった装置に対応する。よって、注目エントリのMACアドレスに対応する特徴点(すなわち、計測処理が行われた現在の環境の特徴点分布中の特徴点)と比較する対象の特徴点は、登録された環境の特徴点分布中にそもそも存在しない。つまり、「注目エントリに対応する特徴点に合致する特徴点は、登録された環境の特徴点分布中に存在しない」ということが明らかである。したがって、処理はステップS606に移行する。
逆に、注目エントリのMACアドレスが登録環境DB270に登録されていなければ、注目エントリは、登録された環境に存在した装置に対応する。よって、注目エントリのMACアドレスに対応する特徴点(すなわち計測処理が行われた現在の環境の特徴点分布中の特徴点)と比較する対象の特徴点は、登録された環境の特徴点分布中に存在する。よって、処理はステップS607に移行する。
ステップS606で環境判定部290は、非合致数を1だけインクリメントする。そして、処理はステップS603に戻る。
また、ステップS607で位置合わせ部291は、現在環境情報295の注目エントリのXY座標(正確には、移動後の点のXY座標)と、登録環境DB270における対応エントリのXY座標から、特徴点間の距離を算出する。なおここで「対応エントリ」とは、ステップS605の検索で見つかったエントリのことである。つまり、現在環境情報295の注目エントリと登録環境DB270における対応エントリは、MACアドレスが等しい。
具体的には、ステップS607で位置合わせ部291は、登録された環境の特徴点分布と計測処理が行われた現在の環境の特徴点分布に対して、互いの重心同士を重ね合わせる位置合わせを行った場合の、特徴点間の距離を算出する。
ここで、説明の便宜上、登録環境DB270のj番目(1≦j≦R)のエントリの内容が図11のステップS402で現在環境情報295のj番目のエントリにコピーされたとする。また、注目エントリがj番目のエントリであるとする。
すると、現在環境情報295の注目エントリに対応する特徴点は、上記の記号を用いて〈Xj,Yj,θj〉の3つ組で表すことができる。また、登録環境DB270の対応エントリに対応する特徴点は、上記の記号を用いて〈X´j,Y´j,θ´j〉の3つ組で表すことができる。
したがって、重心同士を重ね合わせる位置合わせを行った場合の、特徴点間の距離を「dj」と表記することにすると、距離djは、式(23)のとおりである。
なお、登録された環境のアドレスがマッピングされた点(Xj,Yj)の、重心(Xα,Yα)に対する相対位置は、(Xj−Xα,Yj−Yα)である。また、現在の環境において移動された点(X´j,Y´j)の、重心(Xβ,Yβ)に対する相対位置は、(X´j−Xβ,Y´j−Yβ)である。
よって、重心(Xα,Yα)と(Xβ,Yβ)を重ね合わせる位置合わせを行った場合の特徴点間の距離djは、上記の相対位置間の距離として表すことができる。式(23)の右辺の1行目は、相対位置間の距離を示す。
また、式(23)の右辺は、2行目のように変形することもできる。2行目は以下のような観点を示す。
仮に、重心同士を重ね合わせる位置合わせを行わないとすると、現在の環境において移動された点(X´j,Y´j)の、登録された環境のアドレスがマッピングされた点(Xj,Yj)に対する相対位置は(X´j−Xj,Y´j−Yj)である。この相対位置を位置合わせによって補正することによっても、距離djは算出可能である。そして、位置合わせによる補正量のX成分とY成分は、それぞれ(Xβ−Xα)と(Yβ−Yα)であるから、結局、特徴点間の距離djは、式(23)の右辺の2行目のように表すこともできる。
また、式(23)の右辺は、3行目のように変形することもできる。3行目は以下のような観点を示す。
重心同士を重ね合わせる位置合わせによる補正量のX成分とY成分は、それぞれ(Xβ−Xα)と(Yβ−Yα)である。よって、現在の環境において移動された点(X´j,Y´j)を、位置合わせによって補正した点のXY座標は、(X´j−(Xβ−Xα),Y´j−(Yβ−Yα))である。特徴点間の距離djは、位置合わせされたこの点と、登録された環境のアドレスがマッピングされた点(Xj,Yj)との間の距離としても算出可能であり、具体的には式(23)の3行目のように表すこともできる。
以上のようにして特徴点間の距離djが算出されると、処理はステップS608に移行する。そして、ステップS608で合致判断部292は、算出された特徴点間の距離djが許容範囲内であるか否かを判断する。
許容範囲は、予め定められた閾値によって規定される。例えば、15という閾値により「距離djが15以下ならば許容範囲内、距離djが15を超えていれば許容範囲外」のように許容範囲が規定されていてもよい。もちろん、許容範囲を規定する閾値は、実施形態に応じて任意に決められていてよい。
特徴点間の距離djが許容範囲内であれば、処理はステップS609に移行する。逆に、特徴点間の距離djが許容範囲外であれば、処理は前述のステップS606に移行する。
そして、ステップS609で合致判断部292は、現在環境情報295の注目エントリの、重心(Xβ,Yβ)に対する角度θ´jと、登録環境DB270における対応エントリに関して算出された、重心(Xα,Yα)に対する角度θjから、角度差を算出する。なお、ステップS609で算出される角度差は、正確には、角度差の大きさのことである。
以下、角度差を「Δθj」という記号で表すことにし、角度差Δθjは、式(24)の範囲で定義されるものとする。
0≦Δθj≦180° (24)
すると、角度差Δθjは、式(25)のように表すことができる。
式(25)によれば、例えば、θj=−150°かつθ´j=160°の場合、|θ´j−θj|=310°なので、Δθj=50°である。
そして、次のステップS610で合致判断部292は、角度差Δθjが許容範囲内であるか否かを判断する。許容範囲は、予め定められた閾値によって規定される。例えば、30という閾値により、「角度差Δθjが30°以下ならば許容範囲内、角度差Δθjが30°を超えていれば許容範囲外」のように許容範囲が規定されていてもよい。もちろん、許容範囲を規定する閾値の値は、実施形態に応じて任意に決められていてよい。
そして、角度差Δθjが許容範囲内であれば、処理はステップS611に移行する、逆に、角度差Δθjが許容範囲外であれば、処理は前述のステップS606に移行する。
また、ステップS611で環境判定部290は、合致数を1だけインクリメントする。そして、処理はステップS603に戻る。
ところで、上記のとおり、環境判定部290が現在環境情報295内のすべてのエントリに注目し終わると、処理はステップS612に移行する。ステップS612で環境判定部290は、合致数を、合致数と非合致数の和で割ることにより、合致率を算出する。そして、環境判定部290は、算出した合致率をアドレス管理部260に通知し、照合処理を終える。
ところで、以上説明した照合処理を図形的に表現すると、図21のとおりである。すなわち、図21のグラフ506aは、図17に示した登録された環境の特徴点分布503aと、図19に示した現在の環境の特徴点分布505aとを、互いの重心が重なるように位置合わせして、表現したものである。
例えば、アドレスAに対応してステップS505で算出された距離rjは、図13に示すとおり0.0である。よって、図17の特徴点分布503aにおいてアドレスAに対応する特徴点のXY座標と、図19の特徴点分布505aにおいてアドレスAに対応する特徴点のXY座標は、完全に一致する。
しかしながら、図17での重心(Xα,Yα)と図19での重心(Xβ,Yβ)のXY座標はわずかに異なる。したがって、位置合わせの結果として、図21のグラフ506aにおいては、アドレスAに対応する2つの特徴点は、わずかにずれている。
また、アドレスB〜Eに関しては、ステップS505で算出された距離rjが0ではないこともあり、同じ1つのアドレスに対応する2つの特徴点間の距離djは0ではない。しかし、図21に示すように、アドレスA〜Eのいずれに関しても、距離djはさほど大きくなく、許容範囲内である。
そして、図21に示した矢印の向きから理解されるように、アドレスA〜Eのいずれに関しても、角度差Δθjはさほど大きくなく、許容範囲内である。よって、図21の例では、合致率として1(=5/5)が得られる。
なお、図21に示した矢印の向きに相当する角度差Δθjの具体的な値は、図22に示すとおりである。図22には、理解の助けとするために、図10から引用した、登録された環境における重心(Xα,Yα)に対する角度θjの列と、図13から引用した、現在の環境における重心(Xβ,Yβ)に対する角度θ´jの列が示されている。
そして、これら2つの列に示された角度θjとθ´jから式(25)により算出された角度差Δθjの具体的数値が、角度差507aの列として図22には示されている。角度差Δθjの範囲に式(24)のような制約を設けることの妥当性は、アドレスDの例からも明らかである。
図22に示すとおり、登録された環境に関して、アドレスDがマッピングされた点の重心に対する角度は約−170.66°である。また、現在の環境に関して、アドレスDがマッピングされた点が移動された点の、重心に対する角度は、約174.55°である。よって、もし単に2つの角度の差の絶対値を角度差として得ることにすると、アドレスDに関して非常に大きな角度差(約345.20°)が得られることになる。
しかしながら、図21のとおり、−170.66°の方向も、174.55°の方向も、ともに時計の9時の方向に非常に近い方向である。図21によれば、この2つの方向の角度差Δθjが小さいことは一目瞭然である。
そこで、許容範囲と比較される角度差Δθjには、式(24)の制約が設けられている。また、式(24)が満たされるようにするために、合致判断部292は、式(25)にしたがって角度差Δθjを算出する。
ところで、上記の図10、13、16〜19、21、22は、図9の表501aが示す第1の例における具体的データを示している。そして上述のごとく、第1の例によれば、2010年8月26日の計測処理の後に行われる判定処理では、「登録された環境と現在の環境は同じである」という結果が得られる。
以下では逆に、「登録された環境と現在の環境は異なる」という判定結果が得られる第2の場合について説明する。図23は、環境変化の第2の例を説明する図である。図23の形式は図9と同じである。図23の表501bは、以下の(N1)〜(N3)の状況を表す。
(N1)2010年8月25日の朝に利用者端末200に電源が入れられ、図7の処理が実行され、ステップS211で図8の環境登録処理が行われた。環境登録処理の実行後、利用者端末200の電源が切断された。
(N2)2010年8月26日の朝に再び利用者端末200の電源が入れられ、図7の処理が実行され、今度はステップS213以下の処理が行われた。その後、利用者端末200の電源は再び切断された。
(N3)2010年8月27日の朝に再び利用者端末200の電源が入れられ、図7の処理が実行され、再びステップS213以下の処理が行われた。その後、利用者端末200の電源は再び切断された。
さて、図23の表501bが示す(N1)の状況は、図9の表501aが示す上記(G1)の状況と比べると、16回のアドレス収集の結果として、登録環境DB270にアドレスA〜Eに対応する5つのエントリが作られる点で共通している。しかし、状況(N1)と(G1)の細部は異なる。具体的には、図9と図23を比較すると分かるとおり、アドレスCとDの出現パターンが、状況(N1)と(G1)では異なる。
すなわち、図23の第2の例での環境登録処理では、アドレスAとCは1〜16回目のすべてのアドレス収集において収集され、アドレスBは16回目以外のすべてのアドレス収集において収集される。また、アドレスDは、2〜3、5〜8、10〜14、16回目のアドレス収集において収集され、アドレスEは1〜13回目のアドレス収集において収集される。
したがって、図23の第2の例において環境登録処理が完了した時点での登録環境DB270の内容は、図10に示した登録環境DB270aの内容とは異なる。図示は省略したが、図23の第2の例において環境登録処理が完了した時点での登録環境DB270には、アドレスA〜Eそれぞれの出現回数として、16、15、16、12、13が登録されている。また、アドレスA〜Eそれぞれの前回計測回として、16、15、16、16、13が登録されている。
その後、上記(N2)のとおり、図23の第2の例では、2010年8月26日の朝に計測処理が行われる。この計測処理において収集されるアドレスは、アドレスA、C、F〜Iである。また、この計測処理の時点で計測回数264の値は17である。
その後さらに、上記(N3)のとおり、図23の第2の例では、2010年8月27日の朝に再び計測処理が行われる。この計測処理において収集されるアドレスは、アドレスA〜C、Eである。また、この計測処理の時点で計測回数264の値は18である。
なお、図23の表501bに示す環境変化は、例えば、以下のような場合に生じ得る。
例えば、利用者は、通常は会社の自席で利用者端末200を利用する。利用者は、会社内ではセキュリティよりも利便性を優先したいと考えるかもしれない。すると、図23に示すように、2010年8月25日に利用者は、図7のステップS209で環境登録処理を開始するための指示を入力し、利用者端末200は環境登録処理を実行する。
その結果、2010年8月25日に図23のように利用者の会社内の自席の環境が登録される。例えば、アドレスA〜Eの装置は、同僚が使うPCかもしれないし、利用者の自席付近の無線LANアクセスポイントかもしれないし、Bluetooth(登録商標)による通信が可能なキーボード等の周辺機器かもしれない。
しかし、利用者は、2010年8月26日には、会社のいつもの自席ではなく、異なる場所で仕事をするかもしれない。例えば、アドレスAの装置とアドレスCの装置は、持ち運び可能な装置であってもよい。そして、利用者は同僚とともに、利用者端末200と、アドレスAの装置と、アドレスCの装置とを社外に持ち出し、2010年8月26日は社外で仕事をするかもしれない。また、その社外の環境には、アドレスF〜Iの装置が存在するかもしれない。
そして、2010年8月27日には、利用者と同僚は、利用者端末200と、アドレスAの装置と、アドレスCの装置とを持って会社に出勤し、会社内のいつもの自席で仕事をするかもしれない。その際、図23の例のように、アドレスDの装置は、「たまたま電源が切断されている」などの理由により、環境内に存在しないかもしれない。その結果、計測処理によって収集されるアドレスは、アドレスA〜C、Eの4つかもしれない。
例えば、以上例示したような場合に、図23の表501bに示すような環境変化が生じ得る。以下では、図23の第2の例において2010年8月26日に行われる計測処理と判定処理について、具体例を説明する。
図24は、図23の第2の例での2010年8月26日の計測処理と判定処理で得られる現在環境情報295の詳細を、図13と同じ形式で示す図である。なお、図24では、図23の第2の例での2010年8月26日の計測処理と判定処理で得られる特定の現在環境情報295を、特に「295b」という参照符号で表す。
図23の第2の例によれば、環境登録処理によって、アドレスA〜Eが登録環境DB270に登録済みである。よって、2010年8月26日に図11〜12の計測処理が行われると、ステップS402で、アドレスA〜Eに対応する5つのエントリが現在環境情報295bに作られる。
また、図23の2010年8月26日の行に示すように、ステップS403で収集されるアドレスは、A、C、F〜Iである。よって、アドレスF〜Iにそれぞれ対応するエントリが、ステップS409で現在環境情報295bに追加される。その結果、現在環境情報295bは、図24に示すように、アドレスA〜Iに対応する9つのエントリを持つようになる。
なお、「A」〜「I」は、説明の便宜上の参照符号である。アドレスA〜Iの実際のMACアドレスは、図24に示すとおりであるとする。
計測処理が終わった時点では、現在環境情報295bのうち、MACアドレスと出現回数と前回計測回と不在率と経過回数と時間経過率のフィールドのみが値を持つ。
そして、図23に示すように、アドレスAとCは、いずれも、環境登録処理において既に16回収集されており、かつ計測処理でも収集される。よって、アドレスAとCの出現回数はいずれも17であり、アドレスAとCの前回計測回はいずれも17である。
また、アドレスB、D、Eは、それぞれ環境登録処理において既に15回、12回、13回収集されているが、計測処理では収集されない。よって、アドレスB、D、Eの出現回数はそれぞれ15、12、13である。また、アドレスB、D、Eが環境登録処理において最後に収集されたのは、それぞれ、15回目、16回目、13回目のアドレス収集においてである。よって、アドレスB、D、Eの前回計測回はそれぞれ15、16、13である。
また、アドレスF〜Iは、環境登録処理において1回も収集されたことのないアドレスである。つまり、アドレスF〜Iは、2010年8月26日の計測処理において初めて収集されたアドレスであり、この計測処理において計測回数264の値は17である。したがって、アドレスF〜Iの出現回数はいずれも1であり、アドレスF〜Iの前回計測回はいずれも17である。
そして、各アドレスの不在率は、図12のステップS416で式(12)により算出される。また、各アドレスの経過回数は、ステップS415で式(13)により算出される。さらに、各アドレスの時間経過率は、ステップS417で式(14)により算出される。
そして、計測処理の実行後、判定処理の進行につれて、現在環境情報295bの残りのフィールドの値も算出されてゆく。各フィールドの値は図24に示したとおりである。
具体的には、図24において「移動前」のラベルが付けられたX座標とY座標は、図14のステップS504で式(3)と(4)により算出される。また、距離は、ステップS505で式(15)により算出される。さらに、ランダム角度がステップS506で決定される。
そして、「移動後」のラベルが付けられたX座標とY座標が図14のステップS507で式(16)と(17)により算出される。また、重心に対する角度が図15のステップS509で式(20)〜(22)により算出される。
なお、図23の第2の例に関して、2010年8月26日に以上のようにして行われる判定処理を図形的に表現すると、図25〜27のとおりである。また、判定処理に含まれる照合処理で算出される角度差は図28のとおりである。
図25のグラフ504bは、図18のグラフ504aと類似の形式にて点の移動を示す。すなわち、図25において、移動前の点はバツ印で示されており、移動後の点が白い丸印で示されている。また、図25では、移動前の点から移動後の点に向かう矢印も示されている。
図24に示すように、アドレスAとCに対応する距離はいずれも0.0なので、アドレスAとCに対応する点は、結果的には移動されない。また、アドレスB、D、Eに対応する距離は、図24によれば16.6、30.0、33.3である。よって、距離とランダム角度に応じて、アドレスB、D、Eに対応する点は、それぞれ、破線で示した円上の、白い丸印の位置に移動される。
そして、登録環境DB270には登録されていないアドレスF〜Iに対応する距離は、図24によれば、いずれも94.1と非常に大きい。よって、アドレスF〜Iに対応する点は、それぞれ、距離とランダム角度に応じて、実線で示した円上の、白い丸印の位置に移動され、元の位置からは大幅にずれる。
以上のようにして点の移動が行われた結果として得られる、現在の環境についての特徴点分布を図形的に表すと、図26のとおりである。図26には、図19と同様の形式にて、現在の環境の特徴点分布505bが示されている。
すなわち、図26の現在の環境の特徴点分布505bは、アドレスA〜Iにそれぞれ対応する特徴点を含み、各特徴点は、白い丸印と重心への角度を示す矢印によって表現されている。なお、重心は黒い丸印で示されており、重心の座標は、図26に示すとおり、(Xβ,Yβ)=(49,46)である。
ところで、図9の第1の例と図23の第2の例では、環境登録処理におけるアドレスの出現パターンが異なる。しかし、図14のステップS501〜S503から理解されるように、登録された環境の特徴点分布503aは、環境登録処理で収集されたアドレスの集合にのみ依存し、収集された個々のアドレスの出現回数や前回計測回には依存しない。
そして、図9の第1の例と図23の第2の例のいずれにおいても、環境登録処理で収集されるアドレスの集合は、{A,B,C,D,E}である。よって、図23の第2の例の判定処理のステップS501〜S503により得られる特徴点分布は、図形的に表現すると、図17の特徴点分布503aと同じである。
したがって、図23の第2の例の2010年8月26日の判定処理に含まれる照合処理での位置合わせは、図形的に表現すると、重心同士が重なるように図17と26の特徴点分布同士を重ね合わせた図となり、具体的には図27のグラフ506bのようになる。また、図27のグラフ506bには、位置合わせされた特徴点間の距離djに関する許容範囲が「15以下」である場合の、許容範囲を示す破線の円も示されている。
なお、図27について、図24の現在環境情報295aを参照しながら、図20の照合処理のフローチャートに沿って説明すれば、以下のとおりである。
ステップS604でアドレスAのエントリが注目された場合、アドレスAは登録環境DB270に登録されているので処理はステップS605からステップS607へ移行する。ところが、図27において、アドレスAに対応するバツ印は、アドレスAに対応する白い丸印を中心とする破線の円の外に位置する。
つまり、アドレスAに関しては、位置合わせされた特徴点間の距離djが、許容範囲外である。したがって、処理はステップS608からステップS606に移行し、アドレスAに関しては非合致数がインクリメントされる。
また、ステップS604でアドレスBのエントリが注目された場合、アドレスBは登録環境DB270に登録されているので処理はステップS605からステップS607へ移行する。また、図27において、アドレスBに対応するバツ印は、アドレスBに対応する白い丸印を中心とする破線の円の中に位置する。
つまり、アドレスBに関しては、位置合わせされた特徴点間の距離djが、許容範囲内である。よって、処理はステップS608からステップS609へ移行する。
ここで、各アドレスについての角度差Δθjは、図28のとおりである。図28の形式は図22と同様である。
図9の第1の例と図23の第2の例において、環境登録処理で登録環境DB270に登録されるアドレスの集合は同じなので、登録された環境における重心(Xα,Yα)に対する角度θjは、第1の例と第2の例でも同じである。よって、図28において、登録された環境における重心(Xα,Yα)に対する角度θjは、図10から引用したものである。また、図28において、現在の環境における(Xβ,Yβ)に対する角度θ´jは、図24から引用したものである。
なお、図23に示すように、環境登録処理において収集されたアドレスは、アドレスA〜Eのみである。よって、アドレスF〜Iに関しては、登録された環境における重心(Xα,Yα)に対する角度θjは未定義である。
図28の最右列の角度差507bは、式(25)によって定義される角度差Δθjである。上記のとおりアドレスF〜Iに関しては、角度θjが未定義なので、当然角度差Δθjも未定義である。
そして、図28に示すように、アドレスBに関する角度差は31.54°である。また、ここで、図20のステップS610における許容範囲が「30°以内」と予め定められているものとする。
すると、アドレスBに関して、処理はステップS610からステップS606へと移行する。したがって、アドレスBに関しても、非合致数がインクリメントされる。
また、ステップS604で現在環境情報295bのアドレスCのエントリが注目された場合は、アドレスAが注目された場合と同様にして、やはり非合致数がインクリメントされる。
他方、ステップS604でアドレスDのエントリが注目された場合は、合致数がインクリメントされる。なぜなら以下のように処理が進むからである。
アドレスDは登録環境DB270に登録されているので処理はステップS605からステップS607へ移行する。また、図27において、アドレスDに対応するバツ印は、アドレスDに対応する白い丸印を中心とする破線の円の中に位置する。
つまり、アドレスDに関しては、位置合わせされた特徴点間の距離djが、許容範囲内である。よって、処理はステップS608からステップS609へ移行する。
そして、角度差Δθjを示す図28を参照すると、アドレスDに関する角度差Δθjは3.58°であり、これは30°以内なので、許容範囲内である。したがって、処理はステップS610からステップS611へと移行し、合致数がインクリメントされる。
さて、ステップS604でアドレスEのエントリが注目された場合は、アドレスAが注目された場合と同様にして、やはり非合致数がインクリメントされる。
さらに、ステップS604でアドレスFのエントリが注目された場合、アドレスFは登録環境DB270に登録されていないので、処理はステップS605からステップS606に移行する。そして、アドレスFに関しては非合致数がインクリメントされる。そして、アドレスG〜IのエントリがそれぞれステップS604で注目された場合も、同様にして、非合致数がインクリメントされる。
以上のとおり、照合処理では、図24の現在環境情報295bの9個のエントリのうち1個のエントリ(つまりアドレスDのエントリ)に関してのみ、合致数がインクリメントされる。残りの8個のエントリに関しては、非合致数がインクリメントされる。したがって、ステップS612で算出される合致率は1/9(すなわち約11%)である。
ここで、図15に示す判定処理のステップS511における基準合致率が、例えば上記のように0.7(すなわち70%)であるとする。すると、1/9≦0.7なので、図23〜28の例では、2010年8月26日の判定処理において、環境判定部290が「現在の環境は登録された環境ではない」という判定結果を出力する。
したがって、認証処理部231は、登録されていない新規環境用の高い照合閾値による厳格な生体認証を行う。つまり、本人拒否率(FRR)を下げることによる利便性の向上よりも、他人受入率(FAR)を下げることによるセキュリティ向上が優先される。
以上説明したように、第2実施形態によれば、「利用者端末200が現在置かれた環境が、許容範囲内で特定の環境(すなわち登録された環境)と一致するか否か」という判定が可能である。そして、利用者端末200は、判定結果に応じて、生体認証における照合閾値を切り換えることにより、特定の環境では利便性を優先し、他の環境ではセキュリティを優先する。したがって、第2実施形態によれば、利便性とセキュリティをバランスよく考慮した認証が実現される。
また、第2実施形態によれば、利用者の負担が軽い。そして、セキュリティ強度が利用者に依存することもない。
例えば、第2実施形態を上述の第1〜第2比較例と比べると、第2実施形態では、登録したい環境内に存在する他の装置のアドレスまたは重みを利用者が入力する必要がない。第2実施形態において環境の登録に関して利用者が行う操作は、単なる開始の指示だけである。
したがって、第2実施形態では利用者の負荷が軽い。また、第2実施形態では、第2比較例とは異なり、利用者のスキルや知識に依存する重みに応じて環境が判定される訳ではない。換言すれば、第2実施形態の利用者端末200は、自動的かつ自律的に、利用者によって入力される情報を必要とせずに、判定処理を遂行する。したがって、第2実施形態での判定結果は、利用者のスキルや知識に依存しない。
また、図7のステップS202に関して説明したように、利用者端末200は、生体認証による認証にのみ対応する装置であってもよい。あるいは、利用者端末200は、IDとパスワードによる認証にも対応し、生体認証にも対応し、かつ、生体情報が認証情報DB220に登録済みの場合はIDとパスワードによる認証よりも生体認証を優先するように構成されていてもよい。つまり、第2実施形態では、利用者の負担が軽い認証スキームが採用されている。
一般に、IDとパスワード(あるいはIDと暗証番号)のように、利用者が記憶している情報を用いた認証では、セキュリティ強度を保つための利用者の負担が大きい。例えば、利用者は、推測されにくいランダムなパスワードを設定することや、定期的にパスワードを変更することを求められるので、利用者の負担が高い。
また、セキュリティ意識の低い利用者は、推測されやすいパスワードを長期にわたって使い続けるかもしれない。その結果、利用者が記憶している情報を用いた認証では、セキュリティ強度が利用者に依存してしまう。
それに対し、生体認証は、セキュリティ強度を保つための利用者の負担がなく、セキュリティ強度が利用者に依存することもない。第2実施形態では、このように好ましい特徴を有する生体認証が採用されるため、利用者の負担が軽く、セキュリティの利用者依存性もない。
さらに、上記第3〜第5比較例と比べると、第2実施形態には、「利用者端末200が環境を判定するためには、利用者端末200以外の他の特定の装置(例えば第3比較例の信頼性保証サーバのような、外部サーバなど)は不要である」という利点もある。つまり、第2実施形態によれば、外部サーバの存在などの特定の前提を必要とせずに、どのような環境に置かれた場合でも、利用者端末200が自己完結的に環境の判定を行うことができる。
また、携帯情報端末における生体認証には、一般に以下のような課題がある。しかし、第2実施形態によれば、以下の課題も解決される。
すなわち、携帯情報端末に実装することが可能な生体認証方式は、現実的には、生体認証用のデバイスの大きさやコストの面から、限定されてしまう。また、携帯情報端末は、携帯可能なので、どこで使われるかが事前には分からない。例えば、携帯情報端末は、直射日光の当たる屋外で使われるかもしれないし、暗い所で使われるかもしれないし、暑い所で使われるかもしれないし、寒い所で使われるかもしれない。
そして、一般に、虹彩などによる認証では画像が使われる。そして、認証を受けようとする利用者の生体情報を得るための撮像が、上記のように直射日光の当たる屋外で行われたり暗い所で行われたりすると、安定した品質の画像を得ることができない。そのため、生体認証の本人拒否率が、携帯情報端末が使われる場所に依存して上がってしてしまうことがある。
また、指紋による認証では、本人拒否率が汗にも影響される。そのため、携帯情報端末が暑い所で使われると、本人拒否率が上がってしてしまうことがある。
つまり、例えば銀行のATM(Automated Teller Machine)のように、空調や光量が制御された場所において生体認証が行われる場合と比較すると、携帯情報端末には、「場所によって本人拒否率が上昇し、結果として利便性が低下する」という課題がある。そして、上記のように、現実的に携帯情報端末に実装可能な生体認証用デバイスが限られているという状況下では、生体認証用デバイスの高機能化によってこの課題を完全に解決することは、困難である。
携帯情報端末における生体認証に関する上記のような一般的課題に対して、第2実施形態は、解決策を提示するものである。
すなわち、第2実施形態によれば、ことさら高価で高性能のデバイスを認証情報入力部210として使わなくてもよく、また、認証処理部611における認証アルゴリズムを複雑化しなくてもよい。にもかかわらず、第2実施形態によれば、登録された特定の環境下では、相対的に低い照合閾値が選択されるので、本人拒否率を下げる(つまり、利便性を上げる)ことができる。つまり、第2実施形態によれば、たとえ場所に依存して本人拒否率が上がることがあっても、登録された特定の環境下では、相対的に低い照合閾値を選択することによって、本人拒否率の上昇を相殺することができる。
また、第2実施形態では、「携帯情報端末では場所に依存して本人拒否率が上がる」という課題を解決するために「常に低い照合閾値を使う」といったセキュリティ低下のリスクの大きい対策をとる訳ではない。よって、第2実施形態では、利便性とセキュリティ強度のバランスが良い。
なお、第2実施形態における利便性とセキュリティ強度のバランスの良さは、次のような観点からも説明可能である。すなわち、第2実施形態によれば、IDカードリーダや守衛や同僚の人目など、利用者端末200の外部に存在する理由から、セキュリティが保たれる確度がある程度高い、特定の登録された環境においては、照合閾値が下げられ、利便性が優先される。他方で、他の環境では、照合閾値が上げられ、セキュリティが優先される。したがって、第2実施形態では、利便性とセキュリティ強度のバランスが良い。
また、第2実施形態では、図20のステップS608での距離に関する許容範囲と、ステップS610での角度に関する許容範囲と、図15のステップS511の基準合致率とを規定する、3つの閾値が使われる。3つの閾値は、「特徴点分布同士が許容範囲内で一致するか否か」に関する許容範囲を規定する分布一致基準を与える。
したがって、3つの閾値が適切に定義されていれば、第2実施形態によれば、「適切に定められた許容範囲内で特徴点分布同士が一致するか否か」すなわち「適切に定められた許容範囲内で環境同士が一致するか否か」の判定が可能となる。このように許容範囲を設けた判定には、上記第1比較例のような硬直した判定と比較すると、「正確かつ柔軟な判定結果が得られる」という利点がある。つまり、第2実施形態には、日常的にしばしば起こり得る一時的で小さな変動に起因する誤判定を、少なく抑える効果もある。
続いて、以上説明した第2実施形態に関して、いくつか補足説明を行う。
まず、図11のステップS402において、なぜ登録環境DB270の内容で現在環境情報295が初期化されるのか(換言すれば、なぜ現在環境情報295の初期状態は空に設定されないのか)について説明する。
簡単のため、例えば3つの特徴点のみを含む特徴点分布を例に説明する。第1の特徴点分布において、3つの特徴点のXY座標が(20,10)と(15,40)と(30,25)であるとする。また、第2の特徴点分布において、3つの特徴点のXY座標が(50,20)と(45,50)と(60,35)であるとする。つまり、第2の特徴点分布は、第1の特徴点分布をX方向に+30、Y方向に+10、それぞれ平行移動をしたものである。
したがって、第1と第2の特徴点分布は、重心同士を重ね合わせて位置合わせをすると、完全に一致してしまう。つまり、元のXY座標がまったく異なるにもかかわらず、第1と第2の特徴点分布は、位置合わせによって完全に一致してしまう。
このような偶然の一致を排除して、環境が変化した場合には変化が重心の違いに反映されるようにするために、第2実施形態では、登録環境DB270の内容で現在環境情報295が初期化される。登録環境DB270の内容で現在環境情報295を初期化すると、登録環境DB270に登録されていない新規アドレスが計測処理で収集された場合に、現在環境情報295が空に初期化される場合と比べて、各特徴点の重心に対する相対位置がより確実に変化する。
なお、計測処理の対象である現在の環境に関しては、図14のステップS507で点の移動が行われ、移動後の点に関してステップS508で重心が算出される。よって、登録された環境についての重心の位置(Xα,Yα)と、現在の環境についての重心の位置(Xβ,Yβ)との差は、点の移動による違いの影響も、もちろん含んでいる。
しかしながら、2つの重心の位置の差は、単に点の移動の影響を受けているだけではなく、登録環境DB270に含まれるアドレスの集合と、現在環境情報295に含まれるアドレスの集合の違いも反映している。したがって、登録環境DB270の内容で現在環境情報295を初期化することにより、登録環境DB270に登録されていない新たなアドレスが計測処理で収集された場合には、新たなアドレスの存在を、各特徴点の重心に対する相対位置に反映することができる。
このように、環境の変化は、重心の位置の違いに反映される。環境の変化の原因は、例えば「登録された環境に存在する装置のうちの一部が、計測処理の時点では偶然電源が切断されていた」、「新たな装置が環境内に導入された」、「登録された環境とはまったく異なる環境に利用者端末200が移動された」など様々である。しかし、原因によらず、とにかく環境が変化すれば、登録環境DB270の内容で現在環境情報295が初期化されることにより、環境の変化が確実に重心の位置の違いにも反映される。
そして、環境の変化が大きいほど、重心の位置の違いも大きくなり、また、ステップS507で大きく移動される点も多い。その結果、環境の変化が大きいほど、同じ座標にマッピングされた同じアドレスに対応する特徴点同士が照合処理において「合致しない」と判定される確率も上がる。したがって、環境の変化が大きいほど、「登録された環境と現在の環境は異なる」という判定結果が得られる確率も上がる。
このように、第2実施形態では、重心の位置を介して間接的に特徴点分布の全体像が捉えられる。つまり、重心同士を重ねる位置合わせにより、特徴点分布同士の合致の度合を総合的に捉えることが可能である。
続いて、図15のステップS512の効果について補足する。ステップS512によれば、「現在の環境は登録された環境と同じである」という判定結果が得られた場合に、登録環境DB270に含まれるいずれのアドレスとも等しくないアドレス(便宜上「新規出現アドレス」という)を登録環境DB270に追加される。また、登録環境DB270は、登録された環境を表す環境情報を記憶するデータベースである。
よって、ステップS512は、いわば「登録された環境に小さな変動が生じた場合には、小さな変動の結果を、登録された環境に新たに取り込むように、環境情報を更新するための処理」である。ステップS512により、登録環境DB270は、日常的に生じ得る小さな変動に追従して変化する。
さて続いて、第3実施形態について図29〜34を参照して説明する。なお、第2実施形態との共通点については適宜説明を省略する。
図29は、第3実施形態の利用者端末の構成の詳細を示す図である。図29の利用者端末600も、例えば図4のコンピュータ400により実現されてもよい。
図29の利用者端末600は、図5の利用者端末200と同様に、認証情報入力部210を内蔵するか、または外付けの認証情報入力部210と接続される。また、利用者端末600は、利用者端末200と同様の、通信制御部240、アドレス計測部250、特徴点分布生成部280、および環境判定部290を有する。さらに、利用者端末600は、利用者端末200と同様に、内部データとして現在環境情報295を保持する。
他方、利用者端末600は、個人認証部230の代わりに個人認証部610を有し、アドレス管理部260の代わりにアドレス管理部620を有する。また、利用者端末600は、無線通信部630を内蔵するか、あるいは外付けの無線通信部630と接続される。
なお、利用者端末600の通信制御部240の機能は、利用者端末200の通信制御部240の機能と同様でよい。図29においては、利用者端末600は、装置300c、装置300d、および管理サーバ700と有線または無線のネットワークを介して接続されている。したがって、利用者端末600は、通信制御部240を介して装置300c、装置300d、および管理サーバ700と通信することができる。
なお、装置300cは通信制御部310cを有し、装置300dは通信制御部310dを有し、管理サーバ700は通信制御部710を有する。また、詳しくは後述するが、管理サーバ700は、利用者端末600から送信される履歴情報を蓄積する履歴DB720を有する。
また、利用者端末600の個人認証部610は、認証処理部611、スキーム変更部612、装置登録部613、装置識別部614、履歴管理部615、履歴送信部616、無線装置DB617、履歴DB618、および認証情報DB619を有する。
そして、アドレス管理部620は、利用者端末200と同様の状況判断部261、アドレス抽出部262、統計処理部263、および登録環境DB270を有する。アドレス管理部620はさらに、新規アドレス統計処理部621、初期化部622、および新規アドレス情報623を有する。
以下、利用者端末200との違いについて説明する。
認証処理部611は、認証情報入力部210から入力されたIDおよびパスワードと、認証情報DB619内に格納されている情報とを用いて、認証処理を行う。すなわち、認証情報DB619は、利用者のIDとパスワードを対応づける情報を格納する。
あるいは、認証処理部611は、環境判定部290による判定結果によっては、無線通信部630が所定の無線装置750と通信可能か否かに応じて利用者を認証する。
例えば、無線装置750は、非接触型IC(Integrated Circuit)カードでもよい。この場合、無線通信部630は、利用者端末600に組み込まれた(あるいは利用者端末600に接続された)ICカードリーダである。
また、無線装置750は、非接触型ICカード用に開発された無線通信チップ(例えば、FeliCa(登録商標)チップ)を搭載した携帯電話でもよい。この場合、無線通信部630は、無線装置750に搭載された無線通信チップと無線通信を行うリーダである。
なお、無線装置750と無線通信部630の間の通信は、電波による通信に限らず、実施形態によっては、例えば赤外線通信などであってもよい。あるいは、実施形態によっては、無線装置750と無線通信部630の組み合わせの代わりに、接触型ICカードとそのリーダの組み合わせが使われてもよい。あるいは、ケーブルまたはコネクタにより接続可能な装置(例えばUSB(Universal Serial Bus)メモリなど)が無線装置750の代わりに使われ、接続用の端子を備えたインタフェイス(例えばUSBポート)が無線通信部630の代わりに使われてもよい。
また、詳しくは後述するが、認証処理部611は、環境判定部290による判定結果によっては、無線通信部630が所定の無線装置750と通信可能であれば、IDとパスワードの入力を求めることなく、利用者を認証する。なお、もし無線通信部630が所定の無線装置750と通信不能であれば、認証処理部611は、IDとパスワードによる認証処理を行う。
なお、「特定の装置(例えば無線装置750)を利用者端末が認識することが可能か否か」に応じた認証は、例えば、ICカード(またはICチップを内蔵したハードウェアトークン)を用いた認証として実用化されている。ところが、利用者が利用者端末とICカード(またはハードウェアトークン)を同時に紛失した場合には、第3者によるなりすましの危険性がある。
しかし、後述のとおり第3実施形態によれば、登録されていない未知の環境で利用者端末600が使われる場合には、たとえ無線装置750が利用者端末600の近傍にあってもIDとパスワードの入力が求められる。したがって、第3実施形態によれば、上記のようななりすましを防ぐことができる。
さて、スキーム変更部612は、認証処理のスキームを適宜切り換える。つまり、スキーム変更部612は、IDとパスワードを用いた認証処理と、所定の無線装置750との通信可否による認証処理のどちらによる認証を認証処理部611が行うのかを決定する。
また、所定の無線装置750との通信可否による認証処理を実現するため、具体的には、装置登録部613が、特定の無線装置750を予め無線装置DB617に登録する。例えば、無線装置750にはIDが割り当てられているので、装置登録部613は、利用者端末600の利用者と無線装置750のIDとを対応づけて無線装置DB617に登録する。
そして、装置識別部614は、無線通信部630を介して無線装置750から無線装置750のIDを読み取ることにより、無線装置750を識別する。すると、認証処理部611は、装置識別部614が読み取ったIDを、無線装置DB617に予め登録されたIDと比較することにより、登録された所定の無線装置750と通信可能か否かを判断することができる。
また、履歴管理部615は、環境判定部290による判定の結果と、認証処理部611による認証処理の結果についての履歴情報を履歴DB618に蓄積する。そして、履歴送信部616が、履歴DB618に蓄積された履歴情報を、適宜のタイミングで、通信制御部240を介して管理サーバ700に送信する。すると、管理サーバ700は、利用者端末600から通信制御部710を介して受信した履歴情報を履歴DB720に蓄積する。
また、利用者端末600は、利用者端末200と同様の環境登録処理と計測処理を行う。しかし、利用者端末600が行う判定処理は、利用者端末200が行う判定処理と一部異なる。
具体的には、環境判定部290が「現在の環境は登録された環境である」と判定した場合に、アドレス管理部620は「計測処理によって収集されたアドレスの中に、登録環境DB270に登録されていないアドレスが存在するか否か」を判定する。そして、そのようなアドレスが見つかった場合、もし見つかったアドレスに再現性があれば、アドレス管理部620は、環境登録処理をやり直す。以上のようにして状況に応じて環境登録処理をアドレス管理部620がやり直すことにより、登録された環境の変化への登録環境DB270の追従性が向上する。
例えば、登録環境DB270にはアドレスA〜Eが登録されているとする。すると、計測処理によってアドレスA〜E、Jが収集された場合、判定処理によって「現在の環境は登録された環境である」と判定されることがあり得る。
この場合、第2実施形態の判定処理では、図15のステップS512で現在環境情報295の内容が登録環境DB270にコピーされる。つまり、アドレスJは、出現回数が1の状態で登録環境DB270に登録されることになる。
他方、もとから登録環境DB270に登録されていたアドレスA〜Eの出現回数は、例えば17かもしれないし、35など、さらに大きな値かもしれない。また、もしかするとアドレスJの装置は、登録された環境内に今後は恒常的に存在し続けるかもしれない。しかし、第2実施形態によれば、アドレスA〜EとアドレスJの間での出現回数の差は、しばらくの間は(すなわち、今後行われる計測処理の回数がある程度の数に達するまでは)、アドレスA〜EとアドレスJの間での不在率の大きな差となって現れる。
つまり、しばらくの間は、アドレスJに関しては距離rjが大きく、移動の量も大きいままである。そこで、もし「アドレスJには、ある程度の再現性がある」と確認されたら、計測処理の回数を重ねるまで待たずに、「アドレスJの装置が安定的に環境内に存在する」という状況を登録環境DB270に反映することが好ましい。なぜなら、環境変化への登録環境DB270の追従が、短期間で達成されるからである。
第3実施形態の利用者端末600では、以上例示したような環境変化への追従性の向上を目指して、アドレス管理部620が状況に応じて環境登録処理を適宜やり直す。
具体的には、登録環境DB270には登録されていないアドレスであり、かつ、判定処理において「登録された環境と同じ」と判定された環境に対して行われた計測処理で収集されたアドレスが、新規アドレス情報623に追加される。つまり、登録された環境に環境登録処理の後に新たに追加され、その後は登録された環境内に恒常的に存在し続ける蓋然性の高そうな装置の候補が見つかると、見つかった候補装置のアドレスが、新規アドレス情報623として一時的に記憶される。
新規アドレス統計処理部621は、以上のような新規アドレス情報623へのアドレスの追加を管理する。そして、新規アドレス統計処理部621は、判定処理において、新規アドレス情報623に基づいて、アドレスの再現性を判定し、再現性がないと確認したアドレスを新規アドレス情報623から削除する。
また、再現性のあるアドレスが見つかった場合、初期化部622は登録環境DB270を初期化し、新たに環境登録処理を呼び出す。初期化部622は、利用者から環境登録処理のやり直しを明示的に指示された場合も、登録環境DB270を初期化し、新たに環境登録処理を呼び出す。
続いて、利用者端末600の動作について、図30、32〜34のフローチャートと、図31のデータ例を参照しながら詳しく説明する。図30は、電源が入れられたときに第3実施形態の利用者端末が開始する処理のフローチャートである。
利用者端末600に電源が入れられると、まず、ステップS701で履歴送信部616が、前回の履歴情報の送信から所定の時間が経過したか否かを判断する。ステップS701の判断では、図31の履歴送信設定616aが使われる。
図31に示す履歴送信設定616aは、履歴送信部616の内部データとして不揮発性の記憶装置(例えば記憶装置407)上に記憶される情報である。
履歴送信設定616aは、履歴送信部616が管理サーバ700に履歴情報を送信する間隔の下限を示す「履歴送信間隔」を含む。図31の例では、履歴送信間隔は7日である。
また、履歴送信設定616aは、管理サーバ700のIPアドレスを含む。図31の例では、管理サーバ700のIPアドレスは、192.168.0.1である。
さらに、履歴送信設定616aは、履歴送信部616が前回管理サーバ700に履歴情報を送信した日時を示す「前回送信日時」を含む。図31の例では、前回送信日時は2010年9月30日の17時30分10秒である。
ここで、図30の説明に戻る。ステップS701で履歴送信部616は、現在時刻から履歴送信設定616aの前回送信日時を引き、前回送信日時からの経過時間を算出する。そして、履歴送信部616は、算出した経過時間が履歴送信設定616aの履歴送信間隔以上であるか否かを判断する。
もし、算出した経過時間が履歴送信間隔以上ならば、処理はステップS702に移行する。逆に、算出した経過時間が履歴送信間隔未満ならば、処理はステップS703に移行する。
そして、ステップS702で履歴送信部616は、通信制御部240を介して、履歴DB618に含まれる履歴情報(すなわち履歴DB618の全エントリの内容)を管理サーバ700に送信する。なお、上記のとおり履歴送信設定616aが管理サーバ700のIPアドレスを含むので、履歴送信部616は送信先の管理サーバ700を認識することができる。送信後、履歴送信部616は履歴DB618をクリアし、履歴送信設定616aの前回送信日時に現在時刻を設定する。
ここで、図31を参照して履歴DB618の例について説明する。履歴DB618の各エントリは、「ユーザ名」、「環境判定結果」、「個人認証結果」、および「判定日時」というフィールドを持つ。
ユーザ名は、利用者端末600の利用者を識別するIDである。
環境判定結果は、環境判定部290による判定結果を示す。図31では理解の助けとするために、「登録された環境」または「新規環境」という言葉で環境判定結果を示してある。しかし、もちろん、実施形態に応じて、環境判定結果は数値やコードで表されていてもよい。
個人認証結果は、認証処理部611による認証が成功したか否かの結果を示す。図31では理解の助けとするために、個人認証が成功したことを示す「OK」または個人認証が失敗したことを示す「NG」という言葉が使われている。しかし、もちろん、実施形態に応じて、個人認証結果は数値やコードで表されていてもよい。
判定日時は、エントリが履歴DB618に追加された日時を示す。処理にかかるわずかな時間を無視すれば、判定日時は、近似的には、環境判定部290が判定を行った日時でもあり、認証処理部611が認証処理を行った日時でもある。
環境判定結果が「登録された環境」であり、かつ個人認証結果が「OK」の場合は、所定の環境において正当な利用者が利用者端末600に電源を入れ、認証も成功した場合だと推測される。
また、環境判定結果が「登録された環境」であり、かつ個人認証結果が「NG」の場合は、所定の環境において利用者端末600に電源が入れられたが、認証が失敗した場合である。認証が失敗する原因としては、「第三者が不正に(あるいは間違えて)利用者端末600の使用を試みた」、「利用者が、無線装置750をどこかに置き忘れ、しかもパスワードを打ち間違えた」などがあり得る。
また、環境判定結果が「新規環境」であり、かつ個人認証結果が「OK」の場合は、所定の環境とは異なる環境において利用者端末600に電源が入れられたが、認証が成功した場合である。認証が成功しているので、利用者端末600を使用している者は正当な利用者であると推測される。ただし、利用者端末600が、例えば会社で使われる業務用端末であり、社外への持ち出しが規則により禁止されている場合などもあり得る。その場合、「新規環境」という環境判定結果は、利用者が規則違反を犯したことを示す証拠となり得る。
また、環境判定結果が「新規環境」であり、かつ個人認証結果が「NG」の場合は、所定の環境とは異なる環境において利用者端末600に電源が入れられ、しかも認証が失敗した場合である。この場合、可能性としては、もちろん「正当な利用者がパスワードを打ち間違えた」といったこともあり得るが、「不正な第三者により利用者端末600が持ち出され、不正使用が試みられた」という疑いも濃厚である。
よって、以上のようなフィールドを有する履歴DB618の内容を履歴送信部616が図30のステップS702で送信し、管理サーバ700が受信したデータを履歴DB720に格納することで、利用者端末600の不正使用の監視が可能となる。
例えば、管理サーバ700は、環境判定結果が「新規環境」のエントリを、履歴DB720において探すことにより、規則違反の疑いがないかを調べることもできる。また、管理サーバ700は、環境判定結果が「新規環境」であり、かつ個人認証結果が「NG」のエントリを、履歴DB720において探すことにより、不正な第三者による使用の疑いがないかを調べることもできる。なお、もし規則違反または不正な第三者による使用の疑いが見つかれば、管理サーバ700は、上記のようにして調べた結果を管理者などの特定の人物あてに電子メールで送信するなど、適宜の処理を行ってもよい。
ここで、図30の説明に戻る。ステップS703では、個人認証部610が、どのようにして個人認証をするかについてアドレス管理部620に問い合わせる。すると、アドレス管理部620は、登録環境DB270に環境が登録済みであるか否かを判断する。
そして、登録環境DB270にはまだ何の環境も登録されていないならば(すなわち、登録環境DB270がエントリを持たないならば)、アドレス管理部620は、環境が未登録であることを個人認証部610に通知する、そして、処理はステップS704に移行する。逆に、登録環境DB270に環境が登録済みならば(すなわち、登録環境DB270が1つ以上のエントリを有するならば)、処理はステップS712に移行する。
ステップS704では、環境が未登録であることをアドレス管理部620から通知された個人認証部610において、スキーム変更部612が、認証スキームとして、IDとパスワードによる認証を選択する。さらに、認証情報入力部210(例えばキーボード412)がIDとパスワードの入力を受け付け、受け付けたIDとパスワードを認証処理部611に出力する。
すると、次のステップS705で認証処理部611は、認証情報入力部210から得たIDおよびパスワード、ならびに認証情報DB619に記憶されている情報を用いて、IDとパスワードに基づく認証処理を行う。
そして、ステップS706で認証処理部611は、認証が成功したか否かを判断する。ステップS704でIDとパスワードの正しい組み合わせが入力された場合は、認証が成功するので、処理はステップS706からステップS707へ移行する。
逆に、IDとパスワードの組み合わせが正しくない場合、認証が失敗するので、図30の処理は終了する。なお、実施形態によっては、認証が失敗した場合、認証処理部611はエラーメッセージを画面に表示してもよく、処理が再度ステップS704に戻ってもよい。
そして、環境が未登録であり、かつ認証が成功した場合、ステップS707でアドレス管理部620は、利用者端末600が現在置かれた環境を登録するか否かを判断する。例えば、アドレス管理部620は、図29には不図示の入力部(例えば図4の入力装置405)を介して、利用者から指示を受け付け、指示にしたがってステップS707の判断を下してもよい。
アドレス管理部620が「現在の環境を登録する」と判断すると、続いて、ステップS708〜S709の一連の処理と、ステップS710の処理が、並行して行われる。逆に、アドレス管理部620が「現在の環境を登録しない」と判断すると、処理はステップS711に移行する。
ステップS708では、装置登録部613が無線装置750を無線装置DB617に登録する。例えば、装置登録部613は、無線装置の登録を利用者に促すメッセージを画面に表示し、無線通信部630を介して何らかの無線装置からIDを読み取れるようになるまで待ってもよい。
利用者が登録したい無線装置750を利用者端末600に近づけると、無線通信部630は、無線装置750と通信を行うことができるようになる。よって、無線通信部630は、無線装置750からIDを読み取り、読み取ったIDを装置登録部613に出力する。
すると、装置登録部613は、利用者のユーザ名と対応づけて、無線装置750のIDを無線装置DB617に登録する。図31には、「User−A」というユーザ名と無線装置750の「22645132564981955436246125466231587」というIDを対応づける無線装置DB617が例示されている。
以上のようにして無線装置750が無線装置DB617に登録されると、続いて、ステップS709において、アドレス管理部620とアドレス計測部250と通信制御部240が協働して、前述の図8の環境登録処理を行う。その結果、利用者端末600が置かれている環境が登録環境DB270に登録される。
また、ステップS710では、利用者端末600(具体的には、例えばCPU401)が、他の処理を適宜行う。ステップS710で行われる処理は、認証された利用者に対して実行権限が与えられている任意の処理でよい。
なお、ステップS709とS710の処理が両方とも完了すると、図30の処理も終了する。図30の処理の終了後、利用者端末600の電源が切断されてもよい。
また、ステップS711では、ステップS710と同様に、利用者端末600が、他の処理を適宜行う。他の処理の終了後、図30の処理も終了する。図30の処理の終了後、利用者端末600の電源が切断されてもよい。
以上とは逆に、既に何らかの環境が登録環境DB270に登録されている場合、ステップS712で、上述の図11〜12の計測処理が行われる。
そして、次のステップS713では、アドレス管理部620が、図32〜34の判定処理を開始するよう特徴点分布生成部280に依頼する。そして、図32〜34の判定処理が行われ、判定処理の終了後、図30の処理も終了する。なお、ここでは説明の便宜上「判定処理」という名前を用いているが、図32〜34の判定処理は、環境を判定する処理だけでなく、認証処理や他の処理も含む。
さて、続いて、判定処理の詳細について図32〜34のフローチャートと図31のデータ例を参照して説明する。
図32のステップS801に示すように、第3実施形態においても、図14〜15の判定処理のステップS501〜S510と同様の処理がまず行われる。
そして、その後、ステップS802において環境判定部290は、ステップS510の照合処理で得られた合致率が予め決められた基準合致率(例えば0.7)を超えているか否かを判定する。
もし、合致率が基準合致率以下であれば、環境判定部290は、「現在の環境は登録された環境とは異なる」という判定結果をアドレス管理部620に通知する。すると、アドレス管理部620は、環境判定部290から通知された判定結果を個人認証部610に通知する。そして、処理はステップS803に移行する。
逆に、合致率が基準合致率を超えていれば、環境判定部290は、「現在の環境は登録された環境と同じである」という判定結果をアドレス管理部620に通知する。すると、アドレス管理部620は、環境判定部290から通知された判定結果を個人認証部610に通知する。そして、処理はステップS809に移行する。
さて、ステップS803では、認証情報入力部210(例えばキーボード412)がIDとパスワードの入力を受け付け、受け付けたIDとパスワードを認証処理部611に出力する。
すると、次のステップS804で認証処理部611は、認証情報入力部210から得たIDおよびパスワード、ならびに認証情報DB619に記憶されている情報を用いて、IDとパスワードに基づく認証処理を行う。
さらに、次のステップS805で認証処理部611は、認証結果を履歴管理部615に通知する。また、個人認証部610内の履歴管理部615は、ステップS802において環境判定部290からアドレス管理部620を介して個人認証部610に通知された判定結果を認識することができる。
したがって、ステップS805で履歴管理部615は、ユーザ名と、環境判定部290による判定結果と、認証処理部611から通知された認証結果と、現在時刻とを含む新たなエントリを履歴DB618に追加する。そして、処理はステップS806に移行する。
すると、ステップS806で認証処理部611は、ステップS804での認証が成功したか否かを判断する。ステップS803でIDとパスワードの正しい組み合わせが入力された場合は、認証が成功するので、処理はステップS807に移行する。
逆に、IDとパスワードの組み合わせが正しくない場合、認証が失敗するので、判定処理は終了する。なお、実施形態によっては、認証が失敗した場合、認証処理部611はエラーメッセージを画面に表示してもよく、処理が再度ステップS803に戻ってもよい。
ステップS807は、登録されたのとは異なる環境に利用者端末600が置かれており、かつ認証が成功した場合である。そこで、ステップS807では、アドレス管理部620が、図29には不図示の入力部(例えば図4の入力装置405)を介して、「登録環境DB270を強制的に初期化するか否か」についての利用者からの入力を受け付ける。
例えば、利用者は、何らかの事情により、あるとき、「今後は、利用者端末600を通常使用する環境を変えたい」と思うかもしれない。その場合、利用者が、変更後の新たな環境に利用者端末600を持っていって電源を入れ、正しいIDとパスワードを入力すると、ステップS807が実行される。
もちろん、利用者は、一時的に通常とは異なる環境(すなわち登録したのとは異なる環境)で利用者端末600に電源を入れた可能性もある。そこで、ステップS807では、アドレス管理部620が、利用者からの指示を受け付け、受け付けた指示にしたがって、登録環境DB270を強制的に初期化するか否かを判断する。
例えば、上記のように利用者が「今後は、利用者端末600を通常使用する環境を変えたい」と思っている場合は、利用者は、登録環境DB270を強制的に初期化するよう指示すればよい。逆に、一時的に、登録したのとは異なる環境で利用者端末600を使うだけの場合には、利用者は、登録環境DB270を初期化しないよう指示すればよい。
そして、アドレス管理部620が利用者から受け付けた入力が、登録環境DB270の初期化を指示する入力であれば、処理は図34のステップS833に移行する。逆に、アドレス管理部620が利用者から受け付けた入力が、登録環境DB270の初期化を行わないよう指示する入力であれば、処理はステップS808に移行する。
ステップS808では、利用者端末600(具体的には、例えばCPU401)が、他の処理を適宜行う。ステップS808で行われる処理は、認証された利用者に対して実行権限が与えられている任意の処理でよい。ステップS808が終了すると、判定処理も終了する。
以上説明したステップS803〜S808とは逆に、ステップS802で「現在の環境は登録された環境と同じである」という判定結果が通知された場合、ステップS809以降の処理が行われる。
まず、ステップS809でアドレス管理部620内の統計処理部263は、図15のステップS512と同様にして、現在環境情報295の内容を登録環境DB270にコピーする。また、統計処理部263は、コピー後、現在環境情報295を破棄する。
そして、次のステップS810で個人認証部610内のスキーム変更部612は、認証スキームとして、登録された所定の無線装置750との通信の可否による認証を選択する。なお、上記のとおり、「現在の環境は登録された環境と同じである」という、環境判定部290による判定結果は、ステップS802で既にアドレス管理部620から個人認証部610に通知されている。よって、スキーム変更部612は、環境判定部290による判定結果にしたがって、ステップS810で認証スキームを選択することができる。
その結果、認証処理部611は、登録された所定の無線装置750との通信の可否による認証処理を行う。具体的には、認証処理部611は、まず、装置識別部614にIDの読み取りを依頼する。
もし、無線装置750が利用者端末600の近傍にあれば、装置識別部614は無線通信部630を介して無線装置750のIDを読み取り、読み取ったIDを認証処理部611に出力する。また、無線装置750ではない未登録の無線装置が利用者端末600の近傍にあれば、装置識別部614は未登録の無線装置のIDを認証処理部611に出力する。あるいは、無線通信部630が通信可能な範囲(つまり利用者端末600の近傍)には、いかなる無線装置も置かれていない場合もあり得る。
認証処理部611は、例えば、所定の時間以内に装置識別部614からIDが出力されなければ「登録された無線装置750と通信不能である」と判断してもよい。
また、所定の時間以内に装置識別部614から何らかのIDが出力された場合、認証処理部611は、無線装置DB617に登録されているIDと装置識別部614から出力されたIDを比較する。そして、2つのIDが等しければ、認証処理部611は「登録された無線装置750と通信可能である」と判断し、2つのIDが異なれば、認証処理部611は「登録された無線装置750と通信不能である」と判断する。
認証処理部611が「登録された無線装置750と通信可能である」と判断した場合、この時点で認証が成功する。そこで、処理はステップS811に移行する。
逆に、認証処理部611が「登録された無線装置750と通信不能である」と判断した場合、スキーム変更部612が認証スキームをIDとパスワードによる認証に切り換える。そして、処理はステップS812に移行する。
ステップS811で認証処理部611は、認証が成功したことを示す認証結果を履歴管理部615に通知する。また、個人認証部610内の履歴管理部615は、ステップS802において環境判定部290からアドレス管理部620を介して個人認証部610に通知された判定結果を認識することができる。
したがって、ステップS811で履歴管理部615は、ユーザ名と、環境判定部290による判定結果と、認証処理部611から通知された認証結果と、現在時刻とを含む新たなエントリを履歴DB618に追加する。そして、処理はステップS816に移行する。
さて、登録された無線装置750と通信不能な場合、ステップS812では、認証情報入力部210(例えばキーボード412)がIDとパスワードの入力を受け付け、受け付けたIDとパスワードを認証処理部611に出力する。
すると、次のステップS813で認証処理部611は、認証情報入力部210から得たIDおよびパスワード、ならびに認証情報DB619に記憶されている情報を用いて、IDとパスワードに基づく認証処理を行う。
そして、次のステップS814で認証処理部611は、認証結果を履歴管理部615に通知する。また、個人認証部610内の履歴管理部615は、ステップS802において環境判定部290からアドレス管理部620を介して個人認証部610に通知された判定結果を認識することができる。
したがって、ステップS814で履歴管理部615は、ユーザ名と、環境判定部290による判定結果と、認証処理部611から通知された認証結果と、現在時刻とを含む新たなエントリを履歴DB618に追加する。
そして、次のステップS815で認証処理部611は、ステップS813での認証が成功したか否かを判断する。ステップS812でIDとパスワードの正しい組み合わせが入力された場合は、認証が成功するので、処理はステップS816に移行する。
逆に、IDとパスワードの組み合わせが正しくない場合、認証が失敗するので、判定処理は終了する。なお、実施形態によっては、認証が失敗した場合、認証処理部611はエラーメッセージを画面に表示してもよく、処理が再度ステップS812に戻ってもよい。
さて、ステップS816以降では、「登録された環境の経時的な変化に追従するために環境登録処理をやり直すか否か」が判断され、状況に応じて、環境登録処理が呼び出される。また、「登録環境処理をやり直すか否か」の判断のためには、再現性のある新規アドレスの有無が確認される。そして、再現性のある新規アドレスの有無を検出するために使われる新規アドレス情報623が適宜更新される。
なお、「再現性のある新規アドレス」とは、広い意味では、下記(O1)と(O2)にともに該当するアドレスのことである。また、第3実施形態では、再現性のある新規アドレスの有無を、アドレス管理部620が自動的に判断することができるようにするために、「再現性のある新規アドレス」は、より具体的に定義される。すなわち、第3実施形態における「再現性のある新規アドレス」とは、下記(O1)〜(O4)にすべて該当するアドレスのことである。
(O1)登録環境DB270には登録されていないアドレス。
(O2)「登録された環境と同じ」と以前に判定された環境において、収集されたことのあるアドレス。
(O3)上記(O2)で当該アドレスが収集された日時から現在までに経過した時間が、所定の長さ以上であるようなアドレス。
(O4)直近の環境登録処理が行われた後の、連続する複数回の判定処理において、「登録された環境と同じ」と判定された場合には必ず収集されているようなアドレス。
なお、(O1)は、登録された環境では収集されなかった新規アドレスを意味する。また、(O2)は、少なくとも広い意味における再現性を意味する。しかし、再現性のレベルも様々である。
そこで、第3実施形態では、(O3)と(O4)を満たすレベルの再現性が、有意な再現性と見なされ、検出の対象である。具体的には、上記(O3)は、ある時点で偶然に環境内に存在しただけのアドレスを排除するための条件である。また、上記(O4)は、恒常的に安定して環境内に存在している訳ではないアドレスを排除するための条件である。
もちろん、実施形態によっては、有意と見なす再現性のレベルが、(O3)と(O4)以外の条件によって定義されてもよく、その定義にしたがって適宜処理が変形されてもよい。
また、上記(O3)における「所定の長さ」は、図31に示す再現判定時間624により規定される。図31の例では、再現判定時間624は24時間である。再現判定時間624は、新規アドレス統計処理部621が参照可能な定数として、予め決められている。
さてここで、図32の説明に戻る。ステップS816が実行されるのは、認証が成功した場合である。そこで、ステップS816で認証処理部611は、認証が成功したことをアドレス管理部260に通知する。すると、「現在の環境は登録された環境である」ということを既に認識しているアドレス管理部260内の新規アドレス統計処理部621では、現在時刻を記憶する。ステップS816で記憶された現在時刻は、後述のステップS822とS823とS830で利用される。
そして、ステップS816に続いて、図33に示すステップS817において、新規アドレス統計処理部621は、再現性のある新規アドレスが検出されたか否かを示す「再現性フラグ」をFalseに初期化する。
また、次のステップS818で新規アドレス統計処理部621は、ステップS819〜S824の処理の対象として、今回の計測処理においてアドレス計測部250により検出されたすべてのアドレスに既に注目し終えたか否かを判断する。なお、ここで「今回の計測処理」とは、このステップS818を含む判定処理に相当する図30のステップS713の直前の、ステップS712の計測処理のことである。
そして、今回の計測処理においてアドレス計測部250により検出されたアドレスのうち、まだ注目していないアドレスが残っていれば、処理はステップS819に移行する。逆に、今回の計測処理においてアドレス計測部250により検出されたすべてのアドレスに注目済みであれば、処理は図34のステップS826に移行する。
また、ステップS819で新規アドレス統計処理部621は、今回の計測処理においてアドレス計測部250により検出されたアドレスのうち、まだ注目していないアドレスに注目する。以下では説明の便宜上、ステップS819で注目されたアドレスを「注目アドレス」という。
そして、次のステップS820で新規アドレス統計処理部621は、注目アドレスが登録環境DB270に登録されているか否かを判断する。注目アドレスが登録環境DB270に登録されていれば、注目アドレスは上記(O1)の条件を満たさないので、処理はステップS818に戻る。逆に、注目アドレスが登録環境DB270に登録されていなければ、処理はステップS821に移行する。
ステップS821で新規アドレス統計処理部621は、注目アドレスが新規アドレス情報623に含まれるか否かを判断する。新規アドレス情報623は、再現性のある新規アドレスの候補を記憶するための情報である。
新規アドレス情報623の一例は、図31に示すとおりである。図31に示すとおり、新規アドレス情報623は1つ以上のエントリを含むことができ、各エントリは、アドレスと検出日時を含む。
例えば、利用者は、2010年8月30日の朝に利用者端末600に電源を入れて仕事を開始し、昼休みになったら利用者端末600の電源を切断し、午後に再び利用者端末600の電源を入れるかもしれない。さらに、利用者は、2010年8月31日の朝に再び利用者端末600の電源を入れるかもしれない。すると、2010年8月30日の朝、2010年8月30日の午後、および2010年8月31日の朝にそれぞれ判定処理が行われる。
また、登録環境DB270には、予め、例えばアドレスA〜Eが登録されているとする。そして、2010年8月30日の朝の計測処理ではアドレスA〜E、Jが収集され、2010年8月30日の午後の計測処理ではアドレスA〜E、Jが収集されたとする。さらに、2010年8月31日の朝の計測処理ではアドレスA〜E、J、Kが収集されたとし、直後の判定処理でアドレスJには有意な再現性があると判断されたとする。
図31には、例えば上記のような状況下での新規アドレス情報623の例が示されている。
すなわち、図31の1つ目のエントリは、アドレスJと2010年8月30日9時25分10秒という検出日時を対応づけるエントリである。また、2つ目のエントリは、アドレスJと2010年8月30日13時3分27秒という検出日時を対応づけるエントリである。そして、3つ目のエントリは、アドレスKと2010年8月31日9時32分15秒という検出日時を対応づけるエントリである。
なお、上記で仮定した状況によれば、2010年8月31日の朝の計測処理でアドレスJも収集される。しかし、図31の新規アドレス情報623には、2010年8月31日の朝とアドレスJを対応づけるエントリは存在しない。その理由については後述する。また、図31には、時刻を含む履歴送信設定616aと履歴DB618と新規アドレス情報623が例示されているが、これらは、同じ時点における状態を示すものではない。
さて、上記のような状況においては、2010年8月30日の朝の時点では、「アドレスJが条件(O1)を満たす」とは判明する。しかし、「アドレスJが条件(O2)〜(O4)を満たすか否か」はまだ判明しない。
そして、2010年8月30日の午後の時点では、「アドレスJは条件(O2)も満たす」と判明し、「今までのところアドレスJは条件(O4)も満たしている」と判明する。しかし、アドレスJは、2010年8月30日の午後の時点ではまだ条件(O3)を満たしておらず、「アドレスJが将来条件(O3)を満たすようになるか否か」は不明である。また、「アドレスJが今後も条件(O4)を満たし続けるか否か」も不明である。
その後、2010年8月31日の朝の時点では、「アドレスJは条件(O3)も満たす」と判明し、「今までのところアドレスJは条件(O4)も満たしている」と判明する。そこで、アドレスJには有意な再現性があると判断される。なお、図31に示すとおり、2010年8月31日の朝の時点では、「アドレスKが条件(O1)を満たす」ということも判明する。
さて、ここで図33の説明に戻る。上記のとおり、ステップS821で新規アドレス統計処理部621は、注目アドレスが新規アドレス情報623に含まれるか否かを判断する。
そして、注目アドレスが新規アドレス情報623に含まれない場合(すなわち、注目アドレスが条件(O1)を満たすが条件(O2)を満たさない場合)、処理はステップS822に移行する。逆に、注目アドレスが新規アドレス情報623に含まれる場合(すなわち、注目アドレスが条件(O1)〜(O2)を満たす場合)、処理はステップS823に移行する。
ステップS822で新規アドレス統計処理部621は、注目アドレスとステップS816で記憶した時刻とを対応づけるエントリを、新規アドレス情報623に追加する。そして、処理はステップS818に戻る。
また、ステップS823で新規アドレス統計処理部621は、ステップS816で記憶した時刻から、新規アドレス情報623において注目アドレスと対応づけられた最古の時刻を引くことで、時間差を算出する。
例えば、図31の例で2010年8月30日の午後に利用者端末600に電源が入れられて判定処理が行われる場合において、注目アドレスがアドレスJであるとする。この場合、新規アドレス情報623には、アドレスJと2010年8月30日9時25分10秒という検出日時を対応づけるエントリが既に存在する。よって、ステップS823で参照される上記「最古の時刻」は、2010年8月30日9時25分10秒である。
また、図31の例で2010年8月31日の朝に利用者端末600に電源が入れられて判定処理が行われる場合において、注目アドレスがアドレスJであるとする。この場合、新規アドレス情報623には、アドレスJと2010年8月30日9時25分10秒という検出日時を対応づけるエントリと、アドレスJと2010年8月30日13時3分27秒という検出日時を対応づけるエントリが既に存在する。よって、ステップS823で参照される上記「最古の時刻」は、やはり2010年8月30日9時25分10秒である。
そして、次のステップS824で新規アドレス統計処理部621は、ステップS823で算出した時間差と再現判定時間624を比較する。
時間差が再現判定時間624以上ならば、注目アドレスは条件(O3)を満たす。また、新規アドレス統計処理部621は、後述のステップS827〜S831の処理により、条件(O4)を満たさないアドレスが新規アドレス情報623に残らないように、新規アドレス情報623を管理する。そして、ステップS824は、注目アドレスが条件(O1)と(O2)を満たす場合でないと実行されない。
したがって、時間差が再現判定時間624以上ならば、注目アドレスは条件(O1)〜(O4)を満たす。そこで、処理はステップS825に移行する。
例えば、図31の例では、2010年8月31日の朝の判定処理において、処理がステップS824からステップS825に移行する。なぜなら、2010年8月31日9時32分15秒から2010年8月30日9時25分10秒を引いた時間差は、24時間7分5秒であり、再現判定時間624として定められた24時間以上だからである。
なお、図31に例示の新規アドレス情報623は、より詳細に説明すれば、以下のような流れにしたがって作成されたものである。2010年8月31日の朝の判定処理においては、アドレスKがアドレスJよりも先に注目アドレスとして選ばれて、ステップS822でアドレスKについてのエントリが追加される。その結果、新規アドレス情報623は図31のような状態となる。その後、アドレスJが注目アドレスとして選ばれると、処理はステップS824からステップS825へと移行する。
ここで再び図33の説明に戻る。上記とは逆に、ステップS823で算出された時間差が再現判定時間624未満の場合は、処理はステップS824からステップS822に移行する。例えば、図31の例では、2010年8月30日の午後の判定処理において、処理がステップS824からステップS822に移行する。
さて、ステップS825で新規アドレス統計処理部621は、再現性フラグにTrueを設定する。そして、処理は図34のステップS826に移行する。
ステップS826で新規アドレス統計処理部621は、再現性フラグの値がTrueとFalseのいずれであるかを判定する。
再現性フラグの値がFalseの場合は、有意な再現性のある新規アドレスが見つからなかった場合である。この場合、新規アドレス統計処理部621は「環境登録処理のやり直しは不要である」と判断する。そして、条件(O4)を満たさないアドレスが新規アドレス情報623に残らないようにするために、処理はステップS827に移行する。
逆に、再現性フラグの値がTrueの場合は、少なくとも1つは有意な再現性のある新規アドレスが見つかった場合である。よって、環境登録処理をやり直すために処理はステップS833に移行する。
さて、ステップS827で新規アドレス統計処理部621は、新規アドレス情報623の中に、ステップS828〜S831の処理の対象としてまだ注目していないアドレスが残っているか否かを判断する。
なお、新規アドレス情報623の中には、同じ1つのアドレスに対応する複数のエントリが存在する場合がある。その場合も、ステップS827で新規アドレス統計処理部621は、「まだ注目していないエントリ」の有無を判断するのではなく、「まだ注目していないアドレス」の有無を判断する。
そして、まだ注目していないアドレスが新規アドレス情報623にあるとき、処理はステップS828に移行する。逆に、新規アドレス情報623に記憶されているすべてのアドレスに新規アドレス統計処理部621が既に注目し終わった場合、処理はステップS832に移行する。
また、ステップS828で新規アドレス統計処理部621は、新規アドレス情報623の中でまだ注目していないアドレスに注目する。以下では説明の便宜上、ステップS828で注目されるアドレスを「注目アドレス」という。
そして、次のステップS829で新規アドレス統計処理部621は、新規アドレス情報623において注目アドレスの最新の検出日時を検索する。上記のとおり、新規アドレス情報623には、注目アドレスに対応するエントリが複数含まれる場合がある。そこで、ステップS829で新規アドレス統計処理部621は、新規アドレス情報623に含まれる、注目アドレスに対応する1つまたは複数のエントリの中から、最新の検出日時を検索する。
そして、ステップS830で新規アドレス統計処理部621は、ステップS829での検索結果として得られた最新時刻がステップS816で記憶した時刻と等しいか否かを判断する。
2つの時刻が等しい場合とは、注目アドレスが今回の計測処理で収集されて、ステップS822で注目アドレスに対応するエントリが新規アドレス情報623に追加された場合である。つまり、2つの時刻が等しい場合、今のところ注目アドレスに関して条件(O4)は成立している。
よって、注目アドレスは、依然として、有意な再現性を有するアドレスの候補たり得る。つまり、注目アドレスを新規アドレス情報623から削除する理由はない。そこで、処理はステップS827に戻る。
逆に、2つの時刻が異なる場合とは、注目アドレスが今回の計測処理で収集されなかった場合である。つまり、「注目アドレスは以前の計測処理において収集され、注目アドレスに対応するエントリは以前の判定処理において新規アドレス情報623に追加されたが、今回、注目アドレスの収集が途絶えた」という場合に、2つの時刻が異なる。換言すれば、2つの時刻が異なることは、注目アドレスが条件(O4)を満たさないことを意味する。そこで、処理はステップS831に移行する。
ステップS831で新規アドレス統計処理部621は、新規アドレス情報623において注目アドレスと対応するすべてのエントリを削除する。そして、処理はステップS827に戻る。
また、ステップS832では、利用者端末600(具体的には、例えばCPU401)が、他の処理を適宜行う。ステップS832で行われる処理は、認証された利用者に対して実行権限が与えられている任意の処理でよい。
なお、ステップS832が終了すると、判定処理も終了する。判定処理の終了後、利用者端末600の電源が切断されてもよい。
さて、図32のステップS807で強制的な環境登録処理が指示された場合、または再現性フラグがTrueの場合、ステップS833以降の処理が行われる。具体的には、ステップS833で初期化部622は、登録環境DB270と新規アドレス情報623をクリアする。続いて、ステップS834とS835の処理が並行して行われる。
ステップS834では、アドレス管理部620とアドレス計測部250と通信制御部240が協働して、前述の図8の環境登録処理を行う。その結果、利用者端末600が現在置かれている環境が、新たに登録環境DB270に登録される。
また、ステップS835では、利用者端末600(具体的には、例えばCPU401)が、他の処理を適宜行う。ステップS835で行われる処理は、認証された利用者に対して実行権限が与えられている任意の処理でよい。
なお、ステップS834とS835の処理が両方とも完了すると、判定処理も終了する。判定処理の終了後、利用者端末600の電源が切断されてもよい。
以上説明した第3実施形態は、認証スキームの選択肢が第2実施形態とは異なる。しかし、「登録された環境では利便性を優先し、登録されていない環境ではセキュリティを優先することができる」という点では、第3実施形態も、第2実施形態と同様である。
すなわち、第3実施形態によれば、登録された環境では、利用者は、単に無線装置750を利用者端末600に近づけるだけで認証されるので、利便性が高い。他方、登録されていない環境では、利用者は、正しいIDとパスワードを入力しないと認証されない。つまり、登録されていない環境では、登録された環境よりも厳格な認証処理が行われる。
また、第3実施形態も、第2実施形態と同様に、環境を登録するための負担を利用者にかけることがなく、環境の判定結果が利用者に依存することもない。
なお、第3実施形態は、例えば以下のような観点から変形されてもよい。
図30では、ステップS708で無線装置750が登録され、続いてステップS709で環境登録処理が行われる。しかし、無線装置750の登録は、利用者が認証された後、環境登録処理とは独立した任意のタイミングで行われてもよい。その場合、図32のステップS810では、もし無線装置DB617に無線装置750が未登録であれば、当然、処理はステップS812へと移行する。
また、図29の管理サーバ700は、複数の利用者端末600をまとめて管理するのに好適であるが、実施形態によっては管理サーバ700がなくてもよい。管理サーバ700がない場合は、履歴送信部616も不要である。
また、管理サーバ700がない場合、利用者端末600自身が履歴情報を管理するために、個人認証部610が履歴管理部615と履歴DB618を含んでいてもよい。あるいは逆に、管理サーバ700がない場合、履歴管理部615と履歴DB618がさらに省略されてもよい。
なお、第2実施形態の利用者端末200が、履歴管理部615、履歴送信部616、および履歴DB618をさらに有し、第2実施形態においてさらに管理サーバ700が使われてもよい。
ところで、本発明は上記実施形態に限られるものではない。上記の説明においてもいくつかの変形について説明したが、上記実施形態は、さらに例えば下記の観点から様々に変形することもでき、これらの変形は、相互に矛盾しない限り、任意に組み合わせることが可能である。
上記実施形態におけるいくつかの処理は、閾値との比較を含む。閾値との比較は、実施形態により「比較対象の数値が、閾値を超えるか否か」を判定する処理でもよいし、「比較対象の数値が、閾値以上か否か」を判定する処理でもよい。また、上記の説明では様々な用途の閾値を例示したが、各閾値の具体的な値は、実施形態に応じて適宜任意に決められてよい。
また、図1の情報処理装置100、図3および5の利用者端末200、ならびに図29の利用者端末600は、例えば図4のコンピュータ400によって実現されてもよい。しかし、実施形態によっては、情報処理装置100、利用者端末200、または利用者端末600の機能の一部が、コンピュータ400の代わりに、例えばASIC(Application Specific Integrated Circuit)などのハードウェア回路により実現されてもよい。
また、登録された環境に関する特徴点分布は、判定処理において生成されるのではなく、環境登録処理において予め生成され、登録環境DB270に記憶されてもよい。つまり、図14のステップS501〜S503は、図8のステップS302で計測回数264が基準回数265に達したと判定された後に行われてもよい。あるいは、ステップS501は、ステップS312の直後などに行われてもよい。
そして、登録環境DB270は、登録された環境の特徴点分布を示す、「X座標」と「Y座標」と「重心に対する角度」のフィールドをさらに有していてもよい。
実施形態によっては、登録環境DB270は、「MACアドレス」のフィールドを持たず、代わりに、「X座標」と「Y座標」のフィールドを持っていてもよい。その場合、図20のステップS605では、「注目エントリの移動前のX座標とY座標と同じX座標とY座標を持つエントリが、登録環境DB270にあるか否か」が判断される。また、図15のステップS512では、現在環境情報295における移動前のX座標とY座標が、登録環境DB270にコピーされる。
さらに、以上いくつか例示した他にも、矛盾が生じない限り、処理の実行順序は適宜入れ替えられてよい。例えば、図14〜15の判定処理において、ステップS501〜S503の前にステップS504〜S509が行われてもよい。
また、本明細書と図面に例示した数値等は説明の便宜上の例である。実施形態に応じて適宜異なる値が使われてもよいことは無論である。
また、上記実施形態では、ある1つの特定の環境だけが登録されるが、複数の環境が登録されてもよい。そして、判定部104または環境判定部290は、「現在の環境は、登録された複数の環境のうちいずれと許容範囲内で一致するのか、あるいは、登録された複数の環境のいずれとも許容範囲内では一致しないのか」を判定してもよい。複数の環境が登録される場合、判定結果は、例えば環境に応じた設定ファイルの切り換えなどに利用されてもよい。
なお、第2〜3実施形態によれば、環境は特徴点分布として表現され、特徴点分布同士の照合によって環境同士が許容範囲内で一致するか否かが判定される。しかし、例えば図2において、第1と第2の分布は、座標と角度を持つ特徴点の分布でなく、座標を持つ単なる点の分布であってもよい。そして、ステップS107では、座標を持つ点の分布同士が、適宜のパターンマッチングアルゴリズムによって比較されてもよい。
また、図3、5、29に例示した装置300a〜300dの種類は様々であってよい。このように装置300a〜300dの種類に特段の前提条件がないことは、上記の各種実施形態における判定処理が、利用者端末200または600の用途によらず有効に動作し得る、という効果をもたらす。
例えば、利用者端末200または600が会社内で使用される業務用の端末の場合は、登録したい環境にはLANが構築されていることが多い。また、利用者端末200または600と同一のサブネット内にも一定程度以上の数の他の装置が属していることが多い。
したがって、たとえアドレスの収集が上記(B2)のARPパケットによる方法によってのみ行われるとしても、「登録したい環境において、収集可能なアドレスが非常に少ない」ということは起こりにくい。つまり、利用者端末200または600が業務用の端末の場合、「登録した環境を示す特徴点分布に含まれる特徴点の数が非常に少ない(例えば1〜2個しかない)ために、特徴点分布は環境の全体像をうまく表現することができない」といった事態に陥りにくい。
他方、利用者端末200または600は、利用者の自宅(例えばホームオフィスなど)で使うための端末かもしれない。しかし、利用者の自宅に大規模なLANが構築されていることは稀である。すると、仮に利用者端末200または600が上記(B2)の方法によってのみアドレスの収集を行うとすると、「登録したい環境において、収集可能なアドレスが非常に少ない」ということが生じ得る。
しかしながら、上記実施形態によれば、利用者端末200または600は、上記(B1)〜(B4)のような様々な方法によってアドレスを収集することができる。このように様々な方法によってアドレスを収集することで、アドレスを収集する対象の装置の種類を実質的には限定する必要がなくなり、収集可能なアドレスが増える。したがって、利用者が自宅の環境を登録したい場合でも、「登録した環境を示す特徴点分布に含まれる特徴点の数が非常に少ないために、特徴点分布は環境の全体像をうまく表現することができない」といった事態を回避することができる。
例えば、上記(B3)の方法では、無線LANアクセスポイントからのビーコンフレームを使って、無線LANアクセスポイントのMACアドレスが収集される。そして、近年では、家庭内に無線LANアクセスポイントを設けて、小規模なLANを構築している人々も多い。
したがって、利用者端末200または600の利用者が自宅の環境を登録したい場合に、利用者端末200または600は、例えば隣家に設置された無線LANアクセスポイントのMACアドレスなども利用して、利用者の自宅の環境を認識することができる。その結果、利用者端末200または600は、環境の全体像を表現するのに十分な数のアドレスを収集することができると期待される。
つまり、利用者端末200または600が(B1)〜(B4)に例示したような様々な方法によってアドレスを収集することにより、様々に異なる環境(例えば会社内LAN環境や自宅の環境)のいずれをも、うまく全体像を捉えて認識することが可能となる。そして、利用者端末200または600の用途によって登録対象の環境は様々だが、利用者端末200または600が様々な方法によってアドレスを収集することにより、用途によらず、判定処理の精度を一定レベル以上に保てると期待される。