以下に図面を参照して、本発明にかかるアクセス制御装置、アクセス制御プログラムおよびアクセス制御システムの実施の形態を詳細に説明する。
(実施の形態1)
図1は、実施の形態1にかかるアクセス制御方法の一実施例を示す説明図である。図1において、アクセス制御装置101は、端末102のネットワークへのアクセスを制御するコンピュータである。ネットワークは、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
アクセス制御装置101は、例えば、無線LANのアクセスポイントである。また、端末102は、ユーザが使用するコンピュータである。端末102は、例えば、タブレットPC(Personal Computer)、ノートPC、スマートフォンなどである。ユーザは、例えば、小中学校等の生徒、児童、先生などである。
ここで、小中学校等の学校環境では、無線LANの認証に、SSID(Service Set Identifier)パスワードとMAC(Media Access Control)アドレスのチェックが行われることが多い。しかし、SSIDパスワードは、各端末で共通のパスワードである。
このため、SSIDパスワードを児童や生徒に漏らさずに管理することは困難である。実際に、SSIDパスワードを生徒が盗み見し、さらにMACアドレスを詐称して、生徒の個人情報や成績情報等の機密情報に不正アクセスするという情報漏洩事件に発展したケースがある。
不正アクセスを防止するための対策としては、例えば、無線LANへの接続時に、アクセスポイント側で、端末固有の証明書(トークン)を用いて、MACアドレスの詐称を検出することが考えられる。これによれば、端末のMACアドレスを変更しても、証明書(トークン)が異なれば、アクセスポイント側でMACアドレスの詐称を検出して、偽装端末を排除することができる。
しかしながら、証明書(トークン)は、端末それぞれに設定することになる。したがって、小中学校等の学校環境において、職員(例えば、各クラスの担任の先生)が、生徒が使用する全ての端末に証明書を設定する作業を行うとなると、事前設定作業にかかる職員の負荷は大きくなる。
なお、最初の導入は、各端末への事前設定作業をSE(Systems Engineer)が肩代わりすることが考えられる。しかし、運用中の端末の追加、削除、証明書の更新等は現場の者、すなわち、職員が行う必要があり、職員の証明書の設定/更新作業にかかる負荷は大きい。
また、証明書の設定作業にかかる負荷を軽減するために、各端末に証明書を取得するためのプログラムを導入することも考えられる。例えば、職員が、CD−ROM等から各端末にプログラムをインストールして実行し、Bluetooth等により各端末とアクセスポイントとをテンポラリ接続して、アクセスポイントから各端末に証明書を取得する。
これによれば、職員が行う作業は単純化されるものの、各端末とアクセスポイントとがテンポラリ接続するための設定や、各端末にプログラムをインストールするための手間が生じるため、依然として、職員に負荷がかかる。CD−ROMは、Compact Disc Read Only Memoryの略称である。Bluetoothは、登録商標である。
そこで、本実施の形態では、不正アクセスを防止するための端末への設定作業にかかる負荷を削減するアクセス制御方法について説明する。以下、アクセス制御装置101および端末102の処理例について説明する。
(1)アクセス制御装置101は、端末102から無線通信による接続依頼を受け付ける。ここで、端末102からの無線通信による接続依頼は、アクセス制御装置101を介して、LAN、WANなどのネットワークに接続するためのものである。
(2)アクセス制御装置101は、端末102から無線通信による接続依頼を受け付けたことに応じて、端末102に応じた読み取り方式に対応するデバイス103から合図を発行し、端末102に対して、制御プログラム104を送信する。
ここで、読み取り方式とは、合図を読み取るための方式である。合図は、端末102の認証を行うために発行される情報である。端末102に応じた読み取り方式は、例えば、端末102と対応付けて予め決められていてもよく、また、端末102から接続依頼を受け付けた際に選択されることにしてもよい。
制御プログラム104は、端末102の鍵情報の生成、および、端末102に応じた読み取り方式により読み取られる合図に応じた認証用データの取得を行うプログラムである。端末102の鍵情報は、例えば、端末102を認証するための公開鍵と秘密鍵とのペアである。
一例として、デバイス103をプロジェクタとし、端末102に応じた読み取り方式を、端末102のユーザの操作入力によって、デバイス103により表示された合図の入力を受け付けることにより、入力された合図を読み取る方式とする。また、合図を、端末102を認証するための認証用データとなる「あいことば」とする。
この場合、端末102のユーザは、デバイス103(プロジェクタ)により黒板等に表示された合図(あいことば)を見て、端末102にあいことばを入力する。図1の例では、デバイス103から、あいことばとなる合図#1が発行された場合を想定する。
(3)端末102は、アクセス制御装置101から制御プログラム104を受信すると、制御プログラム104を実行する。これにより、端末102は、自端末の鍵情報を生成するとともに、自端末に応じた読み取り方式により読み取られる合図に応じた認証用データを取得する。そして、端末102は、生成した鍵情報および取得した認証用データを含む応答を、アクセス制御装置101に送信する。
図1の例では、端末102において制御プログラム104が実行された結果、端末102の鍵情報105(公開鍵と秘密鍵のペア)が生成され、端末102のユーザの操作入力により、合図#1’があいことばとして入力された場合を想定する。この場合、端末102は、入力された合図#1’を認証用データとして取得する。そして、端末102は、鍵情報105(公開鍵のみ)および合図#1’を含む応答を、アクセス制御装置101に送信する。
(4)アクセス制御装置101は、端末102から鍵情報と認証用データとを含む応答を受け付けると、応答に含まれる認証用データに基づいて、端末102の正当性を判定する。端末102が正当であるということは、端末102のユーザが、アクセス制御装置101を介してネットワークを利用可能な正当なユーザであることに相当する。
具体的には、例えば、アクセス制御装置101は、応答に含まれる認証用データと、デバイス103から発行した合図とを比較する。そして、アクセス制御装置101は、認証用データと合図とが一致する場合、端末102が正当であると判定する。一方、認証用データと合図とが不一致の場合、アクセス制御装置101は、端末102が正当ではないと判定する。
図1の例では、端末102からの応答に含まれる合図#1’と、デバイス103から発行された合図#1とが一致する場合を想定する。すなわち、端末102のユーザは、デバイス103(プロジェクタ)により黒板等に表示された合図#1を見て、端末102にあいことば(合図#1’)を正確に入力した者である。この場合、アクセス制御装置101は、端末102が正当であると判定する。
(5)アクセス制御装置101は、端末102が正当であると判定した場合、応答に含まれる鍵情報を端末102の識別情報と対応付けて登録する。また、アクセス制御装置101は、端末102が正当であると判定した場合、端末102との接続処理を行う。接続処理が正常に完了すると、端末102は、アクセス制御装置101を介してネットワークにアクセス可能となる。
図1の例では、アクセス制御装置101は、端末102の鍵情報105(公開鍵のみ)と、端末102の識別情報とを対応付けて記憶部110に記憶する。そして、アクセス制御装置101は、端末102との接続処理を行う。端末102の鍵情報105(公開鍵のみ)は、次回以降の端末102の接続時に、端末102を認証するために用いられる。
このように、アクセス制御装置101によれば、接続依頼してきた端末102に対して制御プログラム104を配信して、端末102において鍵情報の生成、認証用データの生成等を自動実行させることができる。これにより、端末102に証明書等を設定するといった事前設定作業をなくすことができ、不正アクセスを防止するための端末102への設定作業にかかる負荷を削減することができる。
(アクセス制御システム200のシステム構成例)
つぎに、図1に示したアクセス制御装置101を、小中学校等の学校環境における無線LANのアクセスポイントに適用した場合について説明する。
図2は、アクセス制御システム200のシステム構成例を示す説明図である。図2において、アクセス制御システム200は、アクセス制御装置AP1〜APn(n:2以上の自然数)と、端末T1〜Tm(m:2以上の自然数)と、管理者端末201と、サーバ202と、を含む。アクセス制御システム200において、アクセス制御装置AP1〜APnおよびサーバ202は、ネットワーク210を介して接続される。ネットワーク210は、例えば、LAN、WAN、インターネットなどである。
以下の説明では、アクセス制御装置AP1〜APnのうちの任意のアクセス制御装置を「アクセス制御装置APi」と表記する場合がある(i=1,2,…,n)。また、端末T1〜Tmのうちの任意の端末を「端末Tj」と表記する場合がある(j=1,2,…,m)。
アクセス制御装置APiは、自装置を介した端末Tjのネットワーク210へのアクセスを制御するコンピュータである。図1に示したアクセス制御装置101は、例えば、アクセス制御装置APiに相当する。アクセス制御装置AP1〜APnは、例えば、学校内の各部屋(教室、実験室、職員室など)に設置される。
端末Tjは、生徒が使用するコンピュータである。管理者端末201は、先生が使用するコンピュータである。端末Tjおよび管理者端末201は、例えば、タブレットPC、ノートPC、スマートフォンなどである。図1に示した端末102は、例えば、端末Tjに相当する。
サーバ202は、各種サービスを提供するコンピュータである。サーバ202は、例えば、授業に使用する教材情報や、生徒の個人情報や成績情報等の機密情報を記憶するデータベースサーバである。
アクセス制御システム200において、端末T1〜Tnや管理者端末201は、無線LANの無線ネットワークを介して、アクセス制御装置APiと接続される。端末T1〜Tnや管理者端末201は、アクセス制御装置APiとの接続処理が正常に完了すると、アクセス制御装置APiを介して、ネットワーク210にアクセスすることができる。
これにより、例えば、端末T1〜Tnは、ネットワーク210を介して、サーバ202にアクセスして、授業の教材情報を取得したりすることができる。また、管理者端末201は、ネットワーク210を介して、サーバ202にアクセスして、生徒の個人情報や成績情報等の機密情報を閲覧したりすることができる。
(アクセス制御装置APiのハードウェア構成例)
図3は、アクセス制御装置APiのハードウェア構成例を示すブロック図である。図3において、アクセス制御装置APiは、CPU(Central Processing Unit)301と、メモリ302と、ディスクドライブ303と、ディスク304と、公衆網I/F(Interface)305と、WLAN I/F306と、デバイス307と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、アクセス制御装置APiの全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
公衆網I/F305は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他の装置(例えば、図2に示したサーバ202)に接続される。そして、公衆網I/F305は、ネットワーク210と装置内部とのインターフェースを司り、他の装置からのデータの入出力を制御する。
WLAN I/F306は、無線LANの無線ネットワークに接続され、無線ネットワークを介して他の装置(例えば、図2に示した端末T1〜Tm、管理者端末201)に接続される。そして、WLAN I/F306は、無線ネットワークと装置内部とのインターフェースを司り、他の装置からのデータの入出力を制御する。
デバイス307は、合図を発行する装置である。デバイス307は、例えば、プロジェクタ308、リーダライタ装置309、ビーコン発信機310などである。プロジェクタ308は、画像をスクリーン等に投影・表示する装置である。プロジェクタ308に代えてディスプレイを用いることにしてもよい。リーダライタ装置309は、無線LANの無線通信よりも通信範囲が狭い近距離無線通信によりデータの書き込み・読み込みを行う装置である。例えば、リーダライタ装置309は、NFC(Near Field Communication)のリーダライタ装置である。ビーコン発信機310は、無線LANの無線通信よりも通信範囲が狭い近距離無線通信によりビーコン信号を発信する装置である。例えば、ビーコン発信機310は、BLE(Bluetooth Low Energy)のアドバタイズ信号をビーコン信号として利用する発信機である。
なお、アクセス制御装置APiは、上述した構成部のほかに、例えば、SSD(Solid State Drive)、入力装置、ディスプレイ等を有することにしてもよい。また、デバイス307は、アクセス制御装置APiとは別体に設けられていてもよい。また、図2に示したサーバ202についても、アクセス制御装置APiと同様のハードウェア構成により実現することができる。ただし、サーバ202は、WLAN I/F306やデバイス307を有していなくてもよい。
(端末Tjのハードウェア構成例)
図4は、端末Tjのハードウェア構成例を示すブロック図である。図4において、端末Tjは、CPU401と、メモリ402と、WLAN I/F403と、ディスプレイ404と、入力装置405と、カメラ406と、リーダライタ装置407と、ビーコン受信機408と、を有する。また、各構成部は、バス400によってそれぞれ接続される。
ここで、CPU401は、端末Tjの全体の制御を司る。CPU401は、複数のコアを有していてもよい。メモリ402は、例えば、ROM、RAMおよびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU401のワークエリアとして使用される。メモリ402に記憶されるプログラムは、CPU401にロードされることで、コーディングされている処理をCPU401に実行させる。
WLAN I/F403は、無線LANの無線ネットワークに接続され、無線ネットワークを介して他の装置(例えば、図2に示したアクセス制御装置AP1〜APn)に接続される。そして、WLAN I/F403は、無線ネットワークと装置内部とのインターフェースを司り、他の装置からのデータの入出力を制御する。
ディスプレイ404は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ404としては、例えば、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどを採用することができる。
入力装置405は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置405は、例えば、タッチパネル式の入力パッドやテンキーなどであってもよく、また、キーボードやマウスなどであってもよい。
カメラ406は、画像(静止画または動画)を撮像して画像情報を出力する撮像装置である。リーダライタ装置407は、近距離無線通信によりデータの書き込み・読み込みを行う装置であり、例えば、NFCのリーダライタ装置である。ビーコン受信機408は、近距離無線通信によりビーコン信号を受信する装置であり、例えば、BLEのアドバタイズ信号をビーコン信号として利用する受信機である。
なお、端末Tjは、上述した構成部のほかに、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、公衆網I/F等を有することにしてもよい。また、図2に示した管理者端末201についても、端末Tjと同様のハードウェア構成により実現することができる。
(合図管理DB500の記憶内容)
つぎに、アクセス制御装置APiが有する合図管理DB(Database)500の記憶内容について説明する。合図管理DB500は、例えば、図3に示したアクセス制御装置APiのメモリ302、ディスク304などの記憶装置により実現される。
図5は、合図管理DB500の記憶内容の一例を示す説明図である。図5において、合図管理DB500は、アドレス、合図、読み取り方式、firstAuth flag、外部問合せflag、IDおよび鍵情報および属性のフィールドを有する。各フィールドに情報を設定することで、合図管理情報(例えば、合図管理情報500−1,500−2)がレコードとして記憶される。
アドレスは、端末Tjのアドレスである。アドレスは、例えば、端末TjのMACアドレスである。合図は、端末Tjに応じた読み取り方式に対応するデバイス307から発行される合図を示す。読み取り方式は、合図の読み取り方式を示す。読み取り方式としては、例えば、プロジェクタ、NFC、ビーコンなどが挙げられる。
firstAuth flagは、最初の認証であるか否かを示すフラグである。firstAuth flagには、trueまたはfalseが設定される。firstAuth flag「true」は、最初の認証であることを示す。firstAuth flag「false」は、2回目以降の認証であることを示す。
外部問合せflagは、外部の端末に問い合わせるか否かを示すフラグである。外部問合せflagには、trueまたはfalseが設定される。外部問合せflag「true」は、外部の端末に問い合わせることを示す。外部問合せflag「false」は、外部の端末に問い合わせないことを示す。
IDは、鍵情報を特定するための識別子である。例えば、端末Tjに対して1つの鍵情報のみを用いる場合、端末Tjに対応するIDは1つとなる。一方、端末Tjに対して、例えば、時限(時間割の単位)ごとに異なる鍵情報を用いる場合、端末Tjに対応するIDは時限ごとに異なるものとなる。また、同一時限の鍵情報には、全生徒共通のIDが振られることにしてもよい。例えば、1時限目の鍵情報のIDとして、全生徒共通のID「1」が設定される。この場合、アドレスとIDとの組合せによって、端末Tjの鍵情報が一意に特定される。
鍵情報は、端末Tjを認証するための公開鍵である。属性は、顔認証を行うか否かを示す情報である。属性には、noneまたはfaceが設定される。属性「none」は、顔認証を行わないことを示す。属性「face」は、顔認証を行うことを示す。
(プログラムDB600の記憶内容)
つぎに、アクセス制御装置APiが有するプログラムDB600の記憶内容について説明する。プログラムDB600は、例えば、図3に示したアクセス制御装置APiのメモリ302、ディスク304などの記憶装置により実現される。
図6は、プログラムDB600の記憶内容の一例を示す説明図である。図6において、プログラムDB600は、種別、読み取り方式、プログラム、属性およびIDのフィールドを有し、各フィールドに情報を設定することで、プログラム情報(例えば、プログラム情報600−1〜600−6)をレコードとして記憶する。
ここで、種別は、制御プログラムの種別を示す。種別には、firstPrgまたはauthPrgが設定される。種別「firstPrg」は、最初の認証に使用する制御プログラムPrg1を示す。種別「authPrg」は、2回目以降の認証に使用する制御プログラムPrg2を示す。読み取り方式は、合図の読み取り方式を示す。プログラムは、制御プログラム本体を示す。属性は、顔認証を行うか否かを示す情報である。IDは、鍵情報を特定するための識別子である。
(鍵管理DB700の記憶内容)
つぎに、端末Tjが有する鍵管理DB700の記憶内容について説明する。鍵管理DB700は、例えば、図4に示した端末Tjのメモリ402により実現される。
図7は、鍵管理DB700の記憶内容の一例を示す説明図である。図7において、鍵管理DB700は、APアドレス、ID、秘密鍵、公開鍵および合図のフィールドを有し、各フィールドに情報を設定することで、鍵管理情報(例えば、鍵管理情報700−1)をレコードとして記憶する。
ここで、APアドレスは、アクセス制御装置APiのアドレスである。APアドレスは、例えば、アクセス制御装置APiのMACアドレスである。IDは、鍵情報を識別する識別子である。秘密鍵は、IDに対応する秘密鍵である。公開鍵は、IDに対応する公開鍵である。合図は、IDに対応する鍵情報(公開鍵と秘密鍵のペア)の生成時に取得された合図を示す。
(合図入力画面800の画面例)
つぎに、端末Tjのディスプレイ404に表示される合図入力画面800の画面例について説明する。以下の説明においては、操作画面に表示されているボックス、ボタン等をユーザが選択する操作としてタッチ操作を行う場合を例に挙げて説明する。
図8は、合図入力画面800の画面例を示す説明図である。図8において、合図入力画面800は、合図を入力するための操作画面である。ここで入力される合図は、端末Tjを認証するための認証用データとなる「あいことば」である。
合図入力画面800において、例えば、図4に示した入力装置405を用いたユーザの操作入力により、ボックス801をタッチすると、合図を入力することができる。この際、ユーザは、合図入力画面800上に表示されるテンキー802を操作することで、合図を入力することができる。
また、合図入力画面800において、ボタン803をタッチすると、ボックス801への入力を確定することができる。具体的には、ボタン803がタッチされると、ボックス801に入力されたあいことば(合図)が、端末Tjを認証するための認証用データとして取得される。
(読み取り中画面900の画面例)
つぎに、端末Tjのディスプレイ404に表示される読み取り中画面900の画面例について説明する。
図9は、読み取り中画面900の画面例を示す説明図である。図9において、読み取り中画面900は、端末Tjの2回目以降の認証時に表示される画面である。読み取り中画面900では、プログレスバー901により、端末Tjの鍵情報を用いた認証を行うための認証用データを生成する処理の進捗を示す。
(アクセス制御システム200の機能的構成例)
つぎに、図10を用いて、アクセス制御システム200の機能的構成例について説明する。ここでは、まず、アクセス制御装置APiの機能的構成例について説明する。
・アクセス制御装置APiの機能的構成例
図10は、アクセス制御システム200の機能的構成例を示すブロック図である。図10において、アクセス制御装置APiは、接続部1011と、配信部1012と、発行部1013と、認証部1014と、を含む。接続部1011〜認証部1014は制御部となる機能であり、具体的には、例えば、図3に示したメモリ302、ディスク304などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、公衆網I/F305、WLAN I/F306により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。
接続部1011は、端末Tjから無線LANの接続依頼を受け付ける。ここで、無線LANの接続依頼は、アクセス制御装置APiを介してネットワーク210にアクセスするためのものである。端末Tjからの接続依頼には、例えば、端末TjのMACアドレスが含まれる。
なお、接続部1011は、端末Tjから無線LANの接続依頼を受け付けると、例えば、端末TjとTLS(Transport Layer Security)接続を開始する。この場合、端末Tjは、アクセス制御装置APiの公開鍵を取得して、アクセス制御装置APiの秘密鍵の確認を行う。
より詳細に説明すると、まず、アクセス制御装置APiは、自装置の秘密鍵でチャレンジデータを暗号化した暗号データを、自装置の公開鍵とともに端末Tjに送信する。チャレンジデータは、アクセス制御装置APiにおいて生成されるランダムなデータ(乱数)である。端末Tjは、アクセス制御装置APiから取得した公開鍵で、アクセス制御装置APiからの暗号データを復号する。ここで、暗号データを正常に復号できれば、端末Tjは、アクセス制御装置APiが正当であると判定する。一方、暗号データを正常に復号できなければ、端末Tjは、アクセス制御装置APiが正当ではないと判定する。このようにして、端末Tjは、アクセス制御装置APiの正当性を判定することができる。
配信部1012は、接続部1011が端末Tjから無線LANの接続依頼を受け付けたことに応じて、端末Tjの識別情報に対応する鍵情報が登録されているか否かを判断する。ここで、端末Tjの識別情報に対応する鍵情報は、端末Tjを認証するために用いられる情報であり、例えば、端末Tjの公開鍵である。
具体的には、例えば、配信部1012は、図5に示した合図管理DB500を参照して、無線LANの接続依頼を受け付けた端末TjのMACアドレスに対応するfirstAuth flagが「true」となっているか否かを判断する。ここで、firstAuth flagが「true」の場合、端末Tjの最初の認証であり鍵情報が未登録であることを示す。
このため、配信部1012は、firstAuth flagが「true」の場合に、端末Tjの識別情報に対応する鍵情報が登録されていると判断する。一方、firstAuth flagが「false」の場合、配信部1012は、端末Tjの識別情報に対応する鍵情報が登録されていないと判断する。
なお、端末Tjの鍵情報は、日、時限、科目ごとに異なるものを用いることにしてもよい。例えば、時限ごとに異なる鍵情報を用いる場合、授業を開始する際に、アクセス制御装置APiが、鍵情報のIDの指定を受け付ける。鍵情報のIDの指定は、例えば、図2に示した管理者端末201において行われる。この場合、配信部1012は、合図管理DB500を参照して、無線LANの接続依頼を受け付けた端末TjのMACアドレス、および、指定された鍵情報のIDに対応するfirstAuth flagが「true」となっているか否かを判断する。
発行部1013は、接続部1011が端末Tjから無線LANの接続依頼を受け付けたことに応じて、端末Tjに応じた読み取り方式に対応するデバイス307(図3参照)から合図を発行する。具体的には、例えば、発行部1013は、配信部1012によって端末Tjの識別情報に対応する鍵情報が登録されていないと判断された場合に、端末Tjに応じた読み取り方式に対応するデバイス307から合図を発行する。
より詳細に説明すると、例えば、発行部1013は、合図管理DB500を参照して、端末TjのMACアドレスに対応する読み取り方式および合図を特定する。そして、発行部1013は、特定した読み取り方式に対応するデバイス307から、特定した合図を発行する。合図は、例えば、端末Tjを認証するための「あいことば」を示すものである。
例えば、端末TjのMACアドレスに対応する読み取り方式を「プロジェクタ」とし、合図を「1234」とする。この場合、発行部1013は、図3に示したプロジェクタ308により、例えば、教室の黒板等のスクリーンに合図「1234」を表示する。
また、端末TjのMACアドレスに対応する読み取り方式を「NFC」とし、合図を「1234」とする。この場合、発行部1013は、図3に示したリーダライタ装置309により、合図「1234」をタグに書き込む。
また、端末TjのMACアドレスに対応する読み取り方式を「ビーコン」とし、合図を「1234」とする。この場合、発行部1013は、図3に示したビーコン発信機310により、合図「1234」を示すビーコン信号を発信する。
なお、鍵情報のIDが指定された場合は、発行部1013は、合図管理DB500を参照して、端末TjのMACアドレス、および、指定された鍵情報のIDに対応する読み取り方式および合図を特定する。
配信部1012は、端末Tjの識別情報に対応する鍵情報が登録されていない場合、端末Tjに対して、制御プログラムPrg1を送信する。ここで、制御プログラムPrg1は、端末Tjの鍵情報の生成、および、端末Tjに応じた読み取り方式により読み取られる合図に応じた認証用データの取得を行うプログラムである。端末Tjの鍵情報は、例えば、端末Tjを認証するための公開鍵と秘密鍵とのペアである。
より詳細に説明すると、制御プログラムPrg1は、例えば、端末Tjの鍵情報(公開鍵と秘密鍵のペア)を生成し、合図に応じた認証用データを取得し、生成した公開鍵と生成した認証用データとを含む応答をアクセス制御装置APiに送信するプログラムである。合図に応じた認証用データを取得するために、例えば、図8に示したような合図入力画面800が端末Tjに表示される。
具体的には、例えば、配信部1012は、図6に示したプログラムDB600を参照して、種別が「firstPrg」で、かつ、端末Tjに応じた読み取り方式に対応する制御プログラムPrg1を特定する。そして、配信部1012は、端末Tjに対して、特定した制御プログラムPrg1を送信する。
例えば、端末TjのMACアドレスに対応する読み取り方式を「プロジェクタ」とする。この場合、配信部1012は、プログラムDB600を参照して、種別が「firstPrg」で、かつ、読み取り方式「プロジェクタ」に対応する制御プログラムPrg1「inputSign.html」を特定する。そして、配信部1012は、端末Tjに対して、特定した制御プログラムPrg1「inputSign.html」を送信する。
認証部1014は、端末Tjから鍵情報と認証用データとを含む応答を受け付けると、応答に含まれる認証用データに基づいて、端末Tjの正当性を判定する。具体的には、例えば、認証部1014は、配信部1012によって制御プログラムPrg1が送信された端末Tjから、端末Tjの公開鍵と認証用データとを含む応答を受け付ける。
例えば、合図を、端末Tjを認証するための認証用データとなる「あいことば」とする。この場合、認証部1014は、応答に含まれる認証用データと、デバイス103から発行された合図とが一致するか否かを判断する。ここで、認証用データと合図とが一致する場合、認証部1014は、端末Tjが正当であると判定する。一方、認証用データと合図とが不一致の場合、認証部1014は、端末Tjが正当ではないと判定する。
認証部1014は、端末Tjが正当であると判定した場合、応答に含まれる鍵情報を端末Tjの識別情報と対応付けて登録する。具体的には、例えば、認証部1014は、端末Tjが正当であると判定した場合、応答に含まれる端末Tjの公開鍵を、端末TjのMACアドレスと対応付けて、合図管理DB500に登録する。
ここで、図11を用いて、合図管理DB500の更新例について説明する。ここでは、合図管理DB500内の合図管理情報500−1を例に挙げて説明する。
図11は、合図管理DB500の更新例を示す説明図である。図11に示すように、MACアドレス「12.34.56」の端末Tjが正当である場合、認証部1014は、応答に含まれる端末Tjの公開鍵「86esg…」を、端末TjのMACアドレス「12.34.56」と対応付けて、合図管理情報500−1に設定する。また、認証部1014は、合図管理情報500−1のfirstAuth flagに「false」を設定する。
図10の説明に戻り、接続部1011は、端末Tjが正当であると判定された場合、端末Tjとの接続処理を行う。ここで、接続処理は、アクセス制御装置APiを介してネットワーク210にアクセス可能にするための処理である。すなわち、接続処理が正常に完了すると、端末Tjは、アクセス制御装置APiを介してネットワーク210にアクセス可能となる。
また、接続部1011は、端末Tjが正当ではないと判定された場合、端末Tjにエラーを応答して、端末Tjとの切断処理を行う。ここで、切断処理とは、端末Tjとの接続、例えば、TLS接続を切断する処理である。
また、配信部1012は、端末Tjの識別情報に対応する鍵情報が登録されている場合、端末Tjに対して、制御プログラムPrg2を送信する。ここで、制御プログラムPrg2は、端末Tjの鍵情報を用いた認証を行うための認証用データの生成を行うプログラムである。
制御プログラムPrg2は、例えば、鍵情報のIDと、チャレンジデータとを含む。より詳細に説明すると、制御プログラムPrg2は、例えば、IDに対応する端末Tjの秘密鍵を読み出して、その秘密鍵でチャレンジデータを暗号化して認証用データを生成し、その認証用データを含む応答をアクセス制御装置APiに送信するプログラムである。制御プログラムPrg2の実行中は、例えば、図9に示したような読み取り中画面900が端末Tjに表示される。
具体的には、例えば、配信部1012は、合図管理DB500を参照して、端末TjのMACアドレスに対応するIDおよび属性を特定する。つぎに、配信部1012は、プログラムDB600を参照して、種別が「authPrg」で、かつ、特定したIDおよび属性に対応する制御プログラムPrg2を特定する。そして、配信部1012は、端末Tjに対して、特定した制御プログラムPrg2を送信する。
例えば、端末TjのMACアドレスに対応するIDを「1」とし、属性を「none」する。この場合、配信部1012は、プログラムDB600を参照して、種別が「authPrg」で、かつ、ID「1」および属性「none」に対応する制御プログラムPrg2「Index.html.none1」を特定する。そして、配信部1012は、端末Tjに対して、特定した制御プログラムPrg2「Index.html.none1」を送信する。
認証部1014は、端末Tjから認証用データを含む応答を受け付けると、応答に含まれる認証用データに基づいて、端末Tjの正当性を判定する。具体的には、例えば、認証部1014は、配信部1012によって制御プログラムPrg2が送信された端末Tjから、端末Tjの認証用データを含む応答を受け付ける。
ここで、認証用データは、例えば、制御プログラムPrg2に含まれるチャレンジデータを、端末Tjの暗号鍵で暗号化したものである。より詳細に説明すると、例えば、認証部1014は、合図管理DB500を参照して、端末TjのMACアドレスに対応する公開鍵を特定する。なお、鍵情報のIDが指定された場合は、認証部1014は、端末TjのMACアドレスと、指定されたIDとに対応する公開鍵を特定する。
つぎに、認証部1014は、応答に含まれる認証用データを、特定した公開鍵で復号する。ここで、認証用データを正常に復号できれば、認証部1014は、端末Tjが正当であると判定する。一方、認証用データを正常に復号できなければ、認証部1014は、端末Tjが正当ではないと判定する。
そして、接続部1011は、端末Tjが正当であると判定された場合、端末Tjとの接続処理を行う。一方、端末Tjが正当ではないと判定された場合、接続部1011は、端末Tjにエラーを応答して、端末Tjとの切断処理を行う。これにより、端末Tjの2回目以降の認証時は、端末Tjの識別情報(MACアドレス)と対応付けて登録された鍵情報(公開鍵)を用いて端末Tjを認証可能となる。
なお、デバイス307から発行される合図は、さらに、顔画像を要求するものであってもよい。合図が、「あいことば」を示すものだけでなく、顔画像を要求するものであるか否かは、外部問合せflagによって判別することができる。
例えば、端末TjのMACアドレスに対応する読み取り方式を「プロジェクタ」とし、合図(あいことば)を「1234」とし、外部問合せflagを「true」する。この場合、発行部1013は、例えば、プロジェクタ308により、教室の黒板等のスクリーンに合図「1234」を表示するとともに、顔画像の撮影を促すメッセージを表示する。
この場合、制御プログラムPrg1は、端末Tjに応じた読み取り方式により読み取られる合図に応じた認証用データとして、さらに、端末Tjのユーザの顔画像の取得を行う。より詳細に説明すると、例えば、図8に示したような合図入力画面800において、さらに、端末Tjのユーザの顔画像の撮影を行わせることにしてもよい。
また、認証部1014は、端末Tjから鍵情報と認証用データ(あいことば、顔画像)とを含む応答を受け付けると、応答に含まれる認証用データ(顔画像)を、特定の端末に送信する。ここで、特定の端末は、認証用データ(顔画像)の確認を行う端末として予め登録された端末であり、例えば、図2に示した管理者端末201である。
この際、認証部1014は、例えば、端末Tjからの応答に含まれる認証用データ(顔画像)を、端末TjのMACアドレスと対応付けて、特定の端末に送信する。端末Tjからの応答に含まれる認証用データ(顔画像)が管理者端末201に送信されると、例えば、図12に示すような顔画像確認画面1200が管理者端末201に表示される。
図12は、顔画像確認画面1200の画面例を示す説明図である。図12において、顔画像確認画面1200は、端末Tjのユーザの顔画像の確認を行うための操作画面である。図12の例では、複数のユーザの顔画像が一括して表示されている。
具体的には、顔画像確認画面1200には、顔画像1201〜1203が表示されている。顔画像1201〜1203は、それぞれ異なる端末Tjからの応答に含まれる顔画像、すなわち、それぞれ異なる端末Tjにおいて撮影された顔画像である。ここで、顔画像1201を例に挙げて、顔画像の確認方法について説明する。
顔画像確認画面1200において、管理者(先生)の操作入力により、ボタン1211をタッチすると、顔画像1201が正当なユーザのものであることを示す確認結果を含む応答を、アクセス制御装置APiに送信することができる。一方、ボタン1212をタッチすると、顔画像1201が正当なユーザのものではないことを示す確認結果を含む応答を、アクセス制御装置APiに送信することができる。なお、応答には、例えば、顔画像1201に対応するMACアドレスが含まれる。
なお、各顔画像1201〜1203には、各端末TjのMACアドレスに対応するユーザ情報(例えば、氏名)をあわせて表示することにしてもよい。
この場合、認証部1014は、応答に含まれる認証用データ(あいことば)と、特定の端末からの応答内容とに基づいて、端末Tjの正当性を判定する。具体的には、例えば、認証部1014は、認証用データ(あいことば)と合図(あいことば)とが一致し、かつ、顔画像が正当なユーザのものであることを示す確認結果を含む応答を管理者端末201から受け付けた場合に、端末Tjが正当であると判定する。
一方、認証用データ(あいことば)と合図(あいことば)とが一致しない、または、顔画像が正当なユーザのものではないことを示す確認結果を含む応答を管理者端末201から受け付けた場合には、端末Tjが正当ではないと判定する。これにより、合図(あいことば)だけでなく、端末Tjのユーザの顔画像も含めて正当性を判定することが可能となり、正規ユーザではない者による端末Tjの不正使用を防ぐことができる。
また、デバイス307から発行される合図は、顔画像のみを要求するものであってもよい。例えば、端末TjのMACアドレスに対応する読み取り方式を「プロジェクタ」とし、合図を「画像要求」とする。この場合、発行部1013は、プロジェクタ308により、教室の黒板等のスクリーンに、顔画像の撮影を促すメッセージを表示する。
この場合、制御プログラムPrg1は、端末Tjに応じた読み取り方式により読み取られる合図に応じた認証用データとして、端末Tjのユーザの顔画像の取得を行う。より詳細に説明すると、例えば、図8に示したような合図入力画面800の換わりに、端末Tjのユーザの顔画像の撮影を行わせる操作画面を端末Tjに表示することにしてもよい。
また、認証部1014は、端末Tjから鍵情報と認証用データ(顔画像)とを含む応答を受け付けると、応答に含まれる認証用データ(顔画像)を、特定の端末に送信する。この際、認証部1014は、例えば、端末Tjからの応答に含まれる認証用データ(顔画像)を、端末TjのMACアドレスと対応付けて、特定の端末に送信する。
上述したように、特定の端末は、例えば、管理者端末201である。端末Tjからの応答に含まれる認証用データ(顔画像)が管理者端末201に送信されると、例えば、図12に示したような顔画像確認画面1200が管理者端末201に表示される。
この場合、認証部1014は、特定の端末からの応答を受け付けると、特定の端末からの応答内容に基づいて、端末Tjの正当性を判定する。具体的には、例えば、認証部1014は、顔画像が正当なユーザのものであることを示す確認結果を含む応答を管理者端末201から受け付けた場合に、端末Tjが正当であると判定する。一方、顔画像が正当なユーザのものではないことを示す確認結果を含む応答を管理者端末201から受け付けた場合には、端末Tjが正当ではないと判定する。
これにより、合図(あいことば)の換わりに、端末Tjのユーザの顔画像を用いて正当性を判定することができる。例えば、先生は、出席確認として、端末Tjのユーザの顔画像の確認を行うことができる。
また、認証部1014は、端末Tjから鍵情報と認証用データとを含む応答であって、認証用データを複数の合図とする応答を受け付けた場合、複数の合図に基づいて、端末Tjの正当性を判定することにしてもよい。ここで、認証用データとなる複数の合図は、端末Tjにおいてアクセス制御装置APiへの接続時に過去に取得された合図である。
具体的には、例えば、認証部1014は、合図管理DB500を参照して、端末TjのMACアドレスに対応する全ての合図を特定する。ここで特定される合図は、アクセス制御装置APiへの端末Tjの過去の接続時に発行された合図である。そして、認証部1014は、認証データである複数の合図と、特定した合図とが一致する場合に、端末Tjが正当であると判定する。
一方、認証データである複数の合図のいずれかの合図が、特定した合図に含まれない場合、または、特定した合図のいずれかが、認証データである複数の合図に含まれない場合は、認証部1014は、端末Tjが正当ではないと判定する。これにより、端末Tjに対して過去に発行した合図も含めて、端末Tjの正当性を判定することができる。
なお、接続部1011は、端末Tjから無線LANの接続依頼を受け付けた際に、合図管理DB500を参照して、無線LANの接続依頼を受け付けた端末TjのMACアドレスが登録されているか否かを判断することにしてもよい。そして、MACアドレスが未登録の場合、接続部1011は、無線LANの接続依頼を受け付けた端末Tjに対してエラー応答することにしてもよい。
これにより、例えば、生徒が使用する全端末のMACアドレスを予め合図管理DB500に登録しておくことで、学校外の者の端末からの接続依頼を受けた時点で、エラー応答して接続を拒否することができる。なお、アクセス制御装置APiが設置されるクラス単位で、クラスの生徒が使用する全端末のMACアドレスを登録しておくことにしてもよい。この場合、クラス外の者の端末からの接続依頼を受けた時点で、エラー応答して接続を拒否することができる。
・端末Tjの機能的構成例
つぎに、端末Tjの機能的構成例について説明する。
図10において、端末Tjは、接続部1021と、実行部1022と、合図取得部1023と、を含む。接続部1021〜合図取得部1023は制御部となる機能であり、具体的には、例えば、図4に示したメモリ402などの記憶装置に記憶されたプログラムをCPU401に実行させることにより、または、WLAN I/F403により、その機能を実現する。各機能部の処理結果は、例えば、メモリ402に記憶される。
接続部1021は、アクセス制御装置APiに無線LANの接続依頼を送信する。具体的には、例えば、接続部1021は、図4に示した入力装置405を用いたユーザ(生徒)の操作入力により、SSIDの選択を受け付けたことに応じて、選択されたSSIDのアクセス制御装置APiに対して無線LANの接続依頼を送信する。
実行部1022は、無線LANの接続依頼を送信したアクセス制御装置APiから制御プログラムPrg1を受信すると、受信した制御プログラムPrg1を実行する。具体的には、実行部1022は、プログラム動作管理部1024と、Webサーバ部1025と、合図蓄積部1026と、を含む。
プログラム動作管理部1024は、アクセス制御装置APiから制御プログラムPrg1を受信すると、アクセス制御装置APiに対応するWebサーバ部1025を起動する。具体的には、例えば、プログラム動作管理部1024は、アクセス制御装置APiの公開鍵に1対1対応したWebサーバ部1025(https://localhost/xxx)を起動する。なお、xxxは、アクセス制御装置APiに対応する。つぎに、プログラム動作管理部1024は、Webサーバ部1025のアドレス(https://localhost/xxx)を読み出すように設定したブラウザを起動し、ブラウザによりWebサーバ部1025からプログラムを取得して実行する。
この結果、ブラウザの制御にしたがって、合図取得部1023により、端末Tjの鍵情報の生成、および、端末Tjに応じた読み取り方式により読み取られる合図に応じた認証用データの取得が行われる。
例えば、合図を発行するデバイス307をプロジェクタ308とし、プロジェクタ308により、教室の黒板等のスクリーンに合図「1234」が表示されたとする。
この場合、合図取得部1023は、入力装置405を用いたユーザ(生徒)の操作入力によって、デバイス307により表示された合図の入力を受け付けることにより、入力された合図を認証用データとして取得する。具体的には、例えば、合図取得部1023は、ブラウザにより表示される合図入力画面800(図8参照)において、プロジェクタ308により表示された合図の入力を受け付けることにより、入力された合図を取得する。また、合図取得部1023は、端末Tjの鍵情報(公開鍵と秘密鍵のペア)を生成する。
また、合図を発行するデバイス307をリーダライタ装置309とし、リーダライタ装置309により、合図「1234」がタグに書き込まれたとする。
この場合、合図取得部1023は、リーダライタ装置407により、リーダライタ装置309のタグに書き込まれた合図「1234」を読み取ることにより、読み取られた合図「1234」を認証用データとして取得する。具体的には、例えば、端末Tjのユーザ(生徒)が、アクセス制御装置APiのリーダライタ装置309に端末Tjをかざすことで、合図取得部1023は、リーダライタ装置407により、リーダライタ装置309のタグに書き込まれた合図「1234」を読み取る。また、合図取得部1023は、端末Tjの鍵情報(公開鍵と秘密鍵のペア)を生成する。
また、合図を発行するデバイス307をビーコン発信機310とし、ビーコン発信機310により、合図「1234」を示すビーコン信号が発信されたとする。
この場合、合図取得部1023は、ビーコン受信機408により、ビーコン発信機310から発信されたビーコン信号を受信することにより、受信されたビーコン信号が示す合図「1234」を認証用データとして取得する。また、合図取得部1023は、端末Tjの鍵情報(公開鍵と秘密鍵のペア)を生成する。
なお、デバイス307から発行される合図が、顔画像を要求するものである場合がある。この場合、合図取得部1023は、例えば、図4に示したカメラ406により、端末Tjのユーザ(生徒)の顔画像を撮影することにより、撮影された顔画像を認証用データとして取得する。具体的には、例えば、合図取得部1023は、ブラウザにより表示される顔画像入力画面(不図示)において、ユーザ(生徒)の顔画像を撮影することにより、撮影された顔画像を取得することにしてもよい。
合図蓄積部1026は、取得された合図を蓄積する。具体的には、例えば、合図蓄積部1026は、アクセス制御装置APiのMACアドレスと対応付けて、取得された合図、生成された鍵情報、および、鍵情報のIDを、図7に示した鍵管理DB700に記憶する。鍵情報のIDは、例えば、制御プログラムPrg1に含まれる。
また、合図蓄積部1026は、生成された端末Tjの鍵情報と、取得された端末Tjの認証用データとを含む応答をアクセス制御装置APiに送信する。アクセス制御装置APiへの応答には、例えば、鍵情報のIDが含まれていてもよい。
また、鍵管理DB700に、アクセス制御装置APiのMACアドレスに対応する合図が複数存在する場合がある。例えば、時限ごとに異なる鍵情報を用いる場合、鍵管理DB700には、過去の授業のときに用いられた鍵情報に対応する合図が記憶されている場合がある。この場合、合図蓄積部1026は、アクセス制御装置APiのMACアドレスに対応する複数の合図を認証用データとして、アクセス制御装置APiへの応答に含めることにしてもよい。
また、実行部1022は、無線LANの接続依頼を送信したアクセス制御装置APiから制御プログラムPrg2を受信すると、受信した制御プログラムPrg2を実行する。この結果、合図蓄積部1026により、端末Tjの鍵情報を用いた認証を行うための認証用データの生成が行われる。
具体的には、例えば、合図蓄積部1026は、鍵管理DB700から、アクセス制御装置APiのMACアドレスに対応する秘密鍵を取得する。制御プログラムPrg2に鍵情報のIDが含まれている場合には、合図蓄積部1026は、鍵管理DB700から、アクセス制御装置APiのMACアドレス、および、制御プログラムPrg2に含まれる鍵情報のIDに対応する秘密鍵を取得する。つぎに、合図蓄積部1026は、取得した秘密鍵で、制御プログラムPrg2に含まれるチャレンジデータを暗号化して認証用データを生成する。そして、合図蓄積部1026は、生成した認証用データを含む応答をアクセス制御装置APiに送信する。
なお、制御プログラムPrg2にブラウザ起動命令が含まれる場合、制御プログラムPrg1の場合と同様に、Webサーバ部1025とブラウザとを起動する。そして、ブラウザにより、端末Tjの認証中に、図9に示したような読み取り中画面900を表示することにしてもよい。
接続部1021は、アクセス制御装置APiへ応答を送信した結果、自端末が認証された場合、アクセス制御装置APiとの接続処理を行う。一方、自端末が認証されずエラー応答を受け付けた場合には、接続部1021は、アクセス制御装置APiとの切断処理を行う。
なお、管理者端末201についても、上述した端末Tjと同様の機能部を有することにしてもよい。
(アクセス制御装置APiのアクセス制御処理手順)
つぎに、図13および図14を用いて、アクセス制御装置APiのアクセス制御処理手順について説明する。
図13および図14は、アクセス制御装置APiのアクセス制御処理手順の一例を示すフローチャートである。図13のフローチャートにおいて、まず、アクセス制御装置APiは、端末Tjから無線LANの接続依頼を受け付けたか否かを判断する(ステップS1301)。
ここで、アクセス制御装置APiは、無線LANの接続依頼を受け付けるのを待つ(ステップS1301:No)。そして、アクセス制御装置APiは、端末Tjから無線LANの接続依頼を受け付けた場合(ステップS1301:Yes)、端末TjのMACアドレスを取得する(ステップS1302)。
つぎに、アクセス制御装置APiは、合図管理DB500を参照して、取得したMACアドレスが登録されているか否かを判断する(ステップS1303)。ここで、MACアドレスが登録されていない場合(ステップS1303:No)、アクセス制御装置APiは、端末Tjにエラー応答を送信して(ステップS1304)、本フローチャートによる一連の処理を終了する。
一方、MACアドレスが登録されている場合(ステップS1303:Yes)、アクセス制御装置APiは、合図管理DB500を参照して、無線LANの接続依頼を受け付けた端末TjのMACアドレスに対応するfirstAuth flagが「true」となっているか否かを判断する(ステップS1305)。
ここで、firstAuth flagが「true」の場合(ステップS1305:Yes)、アクセス制御装置APiは、合図管理DB500を参照して、端末TjのMACアドレスに対応する読み取り方式および合図を特定する(ステップS1306)。つぎに、アクセス制御装置APiは、特定した読み取り方式に対応するデバイス307を設定する(ステップS1307)。
そして、アクセス制御装置APiは、設定したデバイス307から、特定した合図を発行する(ステップS1308)。つぎに、アクセス制御装置APiは、端末TjとTLS接続を開始する(ステップS1309)。
つぎに、アクセス制御装置APiは、プログラムDB600を参照して、種別が「firstPrg」で、かつ、特定した読み取り方式に対応する制御プログラムPrg1を特定する(ステップS1310)。そして、アクセス制御装置APiは、特定した制御プログラムPrg1を端末Tjに送信して(ステップS1311)、図14に示すステップS1401に移行する。
また、ステップS1305において、firstAuth flagが「false」の場合(ステップS1305:No)、アクセス制御装置APiは、合図管理DB500を参照して、端末TjのMACアドレスに対応するIDおよび属性を特定する(ステップS1312)。
つぎに、アクセス制御装置APiは、プログラムDB600を参照して、種別が「authPrg」で、かつ、特定したIDおよび属性に対応する制御プログラムPrg2を特定する(ステップS1313)。そして、アクセス制御装置APiは、特定した制御プログラムPrg2を端末Tjに送信して(ステップS1314)、図14に示すステップS1401に移行する。
図14のフローチャートにおいて、まず、アクセス制御装置APiは、端末Tjから応答を受信したか否かを判断する(ステップS1401)。ここで、アクセス制御装置APiは、端末Tjから応答を受信するのを待つ(ステップS1401:No)。
そして、アクセス制御装置APiは、端末Tjから応答を受信した場合(ステップS1401:Yes)、合図管理DB500を参照して、端末TjのMACアドレスに対応するfirstAuth flagが「true」となっているか否かを判断する(ステップS1402)。
ここで、firstAuth flagが「true」の場合(ステップS1402:Yes)、アクセス制御装置APiは、第1の認証処理を実行する(ステップS1403)。第1の認証処理の具体的な処理手順については、図15を用いて後述する。
つぎに、アクセス制御装置APiは、端末Tjが正当である場合に、受信した応答に含まれる端末Tjの公開鍵を、端末TjのMACアドレスと対応付けて、合図管理DB500に登録する(ステップS1404)。そして、アクセス制御装置APiは、端末Tjとの接続処理を行って(ステップS1405)、本フローチャートによる一連の処理を終了する。この際、端末Tjには、認証成功を示すResult信号が送信される。
また、ステップS1402において、firstAuth flagが「false」の場合(ステップS1402:No)、アクセス制御装置APiは、第2の認証処理を実行して(ステップS1406)、端末Tjが正当である場合に、ステップS1405に移行する。第2の認証処理の具体的な処理手順については、図16を用いて後述する。
これにより、各端末Tjに証明書等を設定するといった事前設定作業を行うことなく、不正アクセスを防止することができる。
つぎに、図15を用いて、ステップS1403に示した第1の認証処理の具体的な処理手順について説明する。
図15は、第1の認証処理の具体的処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、アクセス制御装置APiは、端末Tjから受信した応答に含まれる認証用データ(あいことば)と、デバイス103から発行された合図とが一致するか否かを判断する(ステップS1501)。
ここで、認証用データと合図とが不一致の場合(ステップS1501:No)、アクセス制御装置APiは、ステップS1508に移行する。一方、認証用データ(あいことば)と合図とが一致する場合(ステップS1501:Yes)、アクセス制御装置APiは、合図管理DB500を参照して、端末TjのMACアドレスに対応する外部問合せflagが「true」となっているか否かを判断する(ステップS1502)。
ここで、外部問合せflagが「false」の場合(ステップS1502:No)、アクセス制御装置APiは、ステップS1507に移行する。一方、外部問合せflagが「true」の場合(ステップS1502:Yes)、アクセス制御装置APiは、管理者端末201に、応答に含まれる認証用データ(顔画像)を送信する(ステップS1503)。
つぎに、アクセス制御装置APiは、管理者端末201から応答を受信したか否かを判断する(ステップS1504)。ここで、管理者端末201から応答を受信しなかった場合(ステップS1504:No)、アクセス制御装置APiは、端末TjにKeepAlive信号を送信して(ステップS1505)、図14に示したステップS1401に移行する。KeepAlive信号には、待ち時間が含まれる。
一方、管理者端末201から応答を受信した場合(ステップS1504:Yes)、アクセス制御装置APiは、顔画像が正当なユーザのものであることを示す確認結果を含む応答であるか否かを判断する(ステップS1506)。
ここで、顔画像が正当なユーザのものであることを示す確認結果を含む場合(ステップS1506:Yes)、アクセス制御装置APiは、端末Tjが正当であると判定して(ステップS1507)、第1の認証処理を呼び出したステップに戻る。
一方、顔画像が正当なユーザのものではないことを示す確認結果を含む場合(ステップS1506:No)、アクセス制御装置APiは、端末Tjにエラー応答を送信して(ステップS1508)、フローチャートによる一連の処理を終了する。エラー応答は、認証失敗を示すResult信号である。
これにより、端末Tjの最初の認証時において、デバイス307から発行された合図(あいことば)、あるいは、合図(あいことば)と顔画像とを用いて、端末Tjを認証することができる。
つぎに、図16を用いて、ステップS1406に示した第2の認証処理の具体的な処理手順について説明する。
図16は、第2の認証処理の具体的処理手順の一例を示すフローチャートである。図16のフローチャートにおいて、まず、アクセス制御装置APiは、合図管理DB500を参照して、端末TjのMACアドレスに対応する公開鍵を特定する(ステップS1601)。
つぎに、アクセス制御装置APiは、端末Tjからの応答に含まれる認証用データを、特定した公開鍵で復号する(ステップS1602)。そして、アクセス制御装置APiは、認証用データを正常に復号できたか否かを判断する(ステップS1603)。
ここで、認証用データを正常に復号できた場合(ステップS1603:Yes)、アクセス制御装置APiは、端末Tjが正当であると判定して(ステップS1604)、第2の認証処理を呼び出したステップに戻る。
一方、認証用データを正常に復号できなかった場合(ステップS1603:No)、アクセス制御装置APiは、端末Tjにエラー応答を送信して(ステップS1605)、フローチャートによる一連の処理を終了する。
これにより、端末Tjの2回目以降の認証時において、最初の認証時に登録された端末Tjの鍵情報(公開鍵)を用いて、端末Tjを認証することができる。
(端末Tjのアクセス処理手順)
つぎに、図17および図18を用いて、端末Tjのアクセス処理手順について説明する。
図17および図18は、端末Tjのアクセス処理手順の一例を示すフローチャートである。図17のフローチャートにおいて、まず、端末Tjは、SSIDが選択されたか否かを判断する(ステップS1701)。ここで、端末Tjは、SSIDが選択されるのを待つ(ステップS1701:No)。
SSIDが選択された場合(ステップS1701:Yes)、端末Tjは、選択されたSSIDのアクセス制御装置APiに無線LANの接続依頼を送信する(ステップS1702)。そして、端末Tjは、選択されたSSIDのアクセス制御装置APiとのTLS接続を開始する(ステップS1703)。
つぎに、端末Tjは、アクセス制御装置APiから制御プログラム(制御プログラムPrg1または制御プログラムPrg2)を取得すると(ステップS1704)、制御プログラムにブラウザ起動命令が含まれるか否かを判断する(ステップS1705)。
ここで、ブラウザ起動命令が含まれる場合(ステップS1705:Yes)、端末Tjは、アクセス制御装置APiの公開鍵に1対1対応したWebサーバ部1025(https://localhost/xxx)を起動する(ステップS1706)。
つぎに、端末Tjは、Webサーバ部1025のアドレス(https://localhost/xxx)を読み出すように設定したブラウザを起動する(ステップS1707)。そして、端末Tjは、ブラウザによりWebサーバ部1025からプログラムを取得して実行する(ステップS1708)。
この結果、制御プログラムPrg1の場合には、端末Tjの鍵情報の生成、および、端末Tjに応じた読み取り方式により読み取られる合図に応じた認証用データの取得が行われる。また、制御プログラムPrg2の場合には、端末Tjの鍵情報を用いた認証を行うための認証用データの生成が行われる。生成された鍵情報(公開鍵)や認証用データは、特定アドレスに書き込まれる。
つぎに、端末Tjは、特定アドレスへのアクセスがあったか否かを判断する(ステップS1709)。ここで、特定アドレスへのアクセスがない場合(ステップS1709:No)、端末Tjは、プログラムを実行してから指定時間経過したか否かを判断する(ステップS1710)。指定時間は、任意に設定可能である。
ここで、指定時間経過していない場合(ステップS1710:No)、端末Tjは、ステップS1709に戻る。一方、指定時間経過した場合(ステップS1710:Yes)、端末Tjは、アクセス制御装置APiにエラー応答を送信して(ステップS1711)、本フローチャートによる一連の処理を終了する。
また、ステップS1709において、特定アドレスへのアクセスがあった場合(ステップS1709:Yes)、端末Tjは、特定アドレスに書き込まれたデータを読み出して(ステップS1712)、図18に示すステップS1801に移行する。
また、ステップS1705において、ブラウザ起動命令が含まれない場合(ステップS1705:No)、端末Tjは、取得した制御プログラム(制御プログラムPrg2)を実行する(ステップS1713)。この結果、端末Tjの鍵情報を用いた認証を行うための認証用データの生成が行われる。
そして、端末Tjは、生成された認証用データを取得して(ステップS1714)、図18に示すステップS1801に移行する。
図18のフローチャートにおいて、まず、端末Tjは、アクセス制御装置APiに応答を送信する(ステップS1801)。アクセス制御装置APiへの応答には、ステップS1712において読み出されたデータ、または、ステップS1714において取得された認証用データが含まれる。
つぎに、端末Tjは、アクセス制御装置APiから信号を受信したか否かを判断する(ステップS1802)。ここで、アクセス制御装置APiから信号を受信していない場合(ステップS1802:No)、端末Tjは、アクセス制御装置APiに応答を送信してから指定時間経過したか否かを判断する(ステップS1803)。
ここで、指定時間経過していない場合(ステップS1803:No)、端末Tjは、ステップS1802に戻る。一方、指定時間経過した場合(ステップS1803:Yes)、端末Tjは、本フローチャートによる一連の処理を終了する。
また、ステップS1802において、アクセス制御装置APiから信号を受信した場合(ステップS1802:Yes)、端末Tjは、Result信号であるか否かを判断する(ステップS1804)。ここで、Result信号の場合(ステップS1804:Yes)、端末Tjは、認証成功を示すResult信号であるか否かを判断する(ステップS1805)。
ここで、認証成功を示すResult信号の場合(ステップS1805:Yes)、端末Tjは、アクセス制御装置APiとの接続処理を行って(ステップS1806)、本フローチャートによる一連の処理を終了する。一方、認証失敗を示すResult信号の場合(ステップS1805:No)、端末Tjは、アクセス制御装置APiとの切断処理を行って(ステップS1807)、本フローチャートによる一連の処理を終了する。
また、ステップS1804において、Result信号ではない場合(ステップS1804:No)、端末Tjは、KeepAlive信号であるか否かを判断する(ステップS1808)。ここで、KeepAlive信号ではない場合(ステップS1808:No)、端末Tjは、ステップS1802に戻る。
一方、KeepAlive信号の場合(ステップS1808:Yes)、端末Tjは、KeepAlive信号に含まれる待ち時間分待機して(ステップS1809)、ステップS1801に戻る。
これにより、アクセス制御装置APiから配信されたプログラム(制御プログラムPrg1,Prg2)を実行することで、端末Tjの認証を行うことができる。
以上説明したように、実施の形態1にかかるアクセス制御装置APiによれば、端末Tjから無線通信による接続依頼を受け付けたことに応じて、端末Tjに応じた読み取り方式に対応するデバイス307から合図を発行し、端末Tjに対して制御プログラムPrg1を送信することができる。制御プログラムPrg1は、端末Tjの鍵情報(公開鍵と秘密鍵とのペア)の生成、および、端末Tjに応じた読み取り方式により読み取られる合図に応じた認証用データの取得を行うプログラムである。また、アクセス制御装置APiによれば、端末Tjから鍵情報(公開鍵)と認証用データとを含む応答を受け付けると、応答に含まれる認証用データに基づいて、端末Tjの正当性を判定することができる。そして、アクセス制御装置APiによれば、端末Tjが正当であると判定した場合、応答に含まれる鍵情報(公開鍵)を端末Tjの識別情報(MACアドレス)と対応付けて登録して、端末Tjとの接続処理を行うことができる。
これにより、不正アクセスを防止するための端末Tjへの設定作業にかかる負荷を削減することができる。具体的には、アクセス制御装置APiに接続依頼してきた各端末Tjに対して制御プログラムPrg1を配信して、各端末Tjにおいて鍵情報の生成、認証用データの生成等を自動実行させることができる。このため、例えば、各端末Tjに証明書等を設定するといった事前設定作業をなくすことができ、職員にかかる負荷を削減することができる。また、各端末Tjの認証を行うにあたり、各端末Tjのユーザ(生徒)は、接続先のSSIDを選択したり、合図(あいことば)を入力したりするといった簡単な操作を行うだけでよいため、小中学校等の学校環境でも適切に運用することができる。
また、実施の形態1にかかるアクセス制御装置APiによれば、端末Tjから接続依頼を受け付けたことに応じて、端末Tjの識別情報に対応する鍵情報が登録されているか否かを判断することができる。そして、アクセス制御装置APiによれば、端末Tjの識別情報に対応する鍵情報が登録されている場合、端末Tjに対して、制御プログラムPrg2を送信することができる。制御プログラムPrg2は、端末Tjの鍵情報を用いた認証を行うための認証用データの生成を行うプログラムである。また、アクセス制御装置APiによれば、端末Tjから認証用データを含む応答を受け付けると、応答に含まれる認証用データに基づいて、端末Tjの正当性を判定することができる。そして、アクセス制御装置APiによれば、端末Tjが正当であると判定した場合、端末Tjとの接続処理を行うことができる。
これにより、端末Tjの2回目以降の認証時は、端末Tjの識別情報(MACアドレス)と対応付けて登録された鍵情報(公開鍵)を用いて端末Tjを認証可能となり、デバイス307からの合図の発行、端末Tjでの合図の取得などを行わなくてもよい。このため、端末Tjの2回目以降の認証時は、例えば、ユーザ(生徒)による合図(あいことば)の入力の手間を削減することができる。
また、実施の形態1にかかるアクセス制御装置APiによれば、端末Tjに応じた読み取り方式として、端末Tjの入力装置405を用いた操作入力によって、プロジェクタ308により表示された合図の入力を受け付けることにより、入力された合図を読み取る方式を採用することができる。これにより、例えば、教室内にいる生徒にだけ見えるように合図(あいことば)を発行することで、アクセス制御装置APiを介したネットワーク210へのアクセスを許可するユーザを制限することができる。
また、実施の形態1にかかるアクセス制御装置APiによれば、端末Tjに応じた読み取り方式として、ビーコン発信機310から発信されるビーコン信号を受信することにより、受信されたビーコン信号が示す合図を読み取る方式を採用することができる。これにより、例えば、教室内にいる生徒の端末Tjにだけ届くようなBLEのビーコン信号を発行することで、アクセス制御装置APiを介したネットワーク210へのアクセスを許可するユーザを制限することができる。また、端末Tjのユーザ(生徒)による合図の入力操作が不要となるため、低学年の児童を対象とするような環境にも導入しやすい。
また、実施の形態1にかかるアクセス制御装置APiによれば、端末Tjに応じた読み取り方式として、リーダライタ装置309に書き込まれた合図を読み取る方式を採用することができる。これにより、例えば、教室内にいる生徒だけが端末Tjをかざせるような位置にアクセス制御装置APi(リーダライタ装置309)を設置することで、アクセス制御装置APiを介したネットワーク210へのアクセスを許可するユーザを制限することができる。
(実施の形態2)
つぎに、実施の形態2にかかるアクセス制御システム1900について説明する。なお、実施の形態1で説明した箇所と同様の箇所については、同一符合を付して図示および説明を省略する。
図19は、アクセス制御システム1900の機能的構成例を示すブロック図である。図19において、アクセス制御装置APiは、接続部1011と、配信部1012と、発行部1013と、認証部1014と、を含む。また、端末Tjは、接続部1021と、実行部1022と、合図取得部1023と、を含む。以下、実施の形態1とは異なる機能部について説明する。
実施の形態1で説明したように、制御プログラムPrg1は、端末Tjの鍵情報の生成、および、端末Tjに応じた読み取り方式により読み取られる合図に応じた認証用データの取得を行うプログラムである。実施の形態2では、制御プログラムPrg1は、さらに、制御プログラムPrg1のサイズ、実行時刻およびハッシュ値の少なくともいずれかの情報の取得を行うプログラムとする。
具体的には、端末Tjの実行部1022は、プログラム動作管理部1024と、Webサーバ部1025と、合図蓄積部1026と、動作保証部1901と、を含む。ここで、動作保証部1901は、実行部1022により実行された制御プログラムPrg1のサイズ、実行時刻およびハッシュ値の少なくともいずれかの情報を取得する。
制御プログラムPrg1のサイズは、制御プログラムPrg1の情報量(データサイズ)である。制御プログラムPrg1の実行時刻は、制御プログラムPrg1の実行が開始された時刻である。制御プログラムPrg1のハッシュ値は、ハッシュ関数を用いて得られる値である。
以下の説明では、実行部1022により実行された制御プログラムPrg1のサイズ、実行時刻およびハッシュ値の少なくともいずれかの情報を「動作情報」と表記する場合がある。
この場合、制御プログラムPrg1が実行された結果、端末Tjの合図蓄積部1026は、生成された端末Tjの鍵情報と、取得された端末Tjの認証用データと、取得された動作情報とを含む応答をアクセス制御装置APiに送信する。動作情報は、端末Tjにおいて、アクセス制御装置APiから配信された制御プログラムPrg1が実行されたことを保証するためのものである。
この場合、アクセス制御装置APiの認証部1014は、端末Tjから鍵情報と認証用データと動作情報とを含む応答を受け付ける。そして、認証部1014は、さらに、応答に含まれる動作情報に基づいて、端末Tjの正当性を判定する。
例えば、動作情報を、端末Tjで実行された制御プログラムPrg1のサイズとする。この場合、認証部1014は、端末Tjからの応答に含まれる制御プログラムPrg1のサイズと、端末Tjに対して送信した制御プログラムPrg1のサイズとを比較する。そして、認証部1014は、制御プログラムPrg1のサイズが一致しない場合、端末Tjが正当ではないと判定する。すなわち、認証部1014は、応答に含まれる認証用データと合図とが一致し、かつ、制御プログラムPrg1のサイズが一致する場合に、端末Tjが正当であると判定する。
また、動作情報を、端末Tjで実行された制御プログラムPrg1の実行時間とする。この場合、認証部1014は、端末Tjからの応答に含まれる制御プログラムPrg1の実行時刻と、端末Tjに対して制御プログラムPrg1を送信した時刻との時間差を算出する。なお、端末Tjに制御プログラムPrg1を送信した時刻は、例えば、メモリ302、ディスク304などに記憶されている。
そして、認証部1014は、算出した時間差が所定時間以上の場合、端末Tjが正当ではないと判定する。所定時間は、任意に設定可能であり、例えば、数秒程度の時間に設定される。すなわち、認証部1014は、応答に含まれる認証用データと合図とが一致し、かつ、算出した時間差が所定時間未満の場合に、端末Tjが正当であると判定する。
また、動作情報を、端末Tjで実行された制御プログラムPrg1のハッシュ値とする。この場合、認証部1014は、端末Tjからの応答に含まれる制御プログラムPrg1のハッシュ値と、端末Tjに対して送信した制御プログラムPrg1のハッシュ値とを比較する。そして、認証部1014は、制御プログラムPrg1のハッシュ値が一致しない場合、端末Tjが正当ではないと判定する。すなわち、認証部1014は、応答に含まれる認証用データと合図とが一致し、かつ、制御プログラムPrg1のハッシュ値が一致する場合に、端末Tjが正当であると判定する。
なお、端末Tjの動作保証部1901は、制御プログラムPrg2について、動作情報(サイズ、実行時刻、ハッシュ値)を取得することにしてもよい。この場合、制御プログラムPrg2が実行された結果、端末Tjの合図蓄積部1026は、生成された端末Tjの認証用データと、取得された動作情報とを含む応答をアクセス制御装置APiに送信することにしてもよい。そして、アクセス制御装置101の認証部1014は、さらに、応答に含まれる動作情報に基づいて、端末Tjの正当性を判定することにしてもよい。
以上説明したように、実施の形態2にかかるアクセス制御装置APiによれば、端末Tjから鍵情報と認証用データと動作情報とを含む応答を受け付けると、さらに、応答に含まれる動作情報に基づいて、端末Tjの正当性を判定することができる。動作情報は、制御プログラムPrg1のサイズ、実行時刻およびハッシュ値の少なくともいずれかの情報である。
これにより、アクセス制御装置APiに対するDoS(Denial of Service)攻撃を防ぐことができる。例えば、アクセス制御装置APiによれば、端末Tjからの応答に含まれる制御プログラムPrg1のサイズと、端末Tjに対して送信した制御プログラムPrg1のサイズとが一致しない場合、端末Tjが正当ではないと判定することができる。これにより、端末Tjに配信した制御プログラムPrg1とは異なるプログラムを用いてアクセスしてきた攻撃者端末を検出することができる。
また、例えば、アクセス制御装置APiによれば、端末Tjからの応答に含まれる制御プログラムPrg1の実行時刻と、端末Tjに制御プログラムPrg1を配信した時刻との時間差が所定時間以上の場合に、端末Tjが正当ではないと判定することができる。これにより、制御プログラムPrg1が配信されてから実行されるまでに所定時間以上のタイムラグがある場合に、攻撃者端末からのアクセスである可能性があることを検出することができる。
また、例えば、アクセス制御装置APiによれば、端末Tjからの応答に含まれる制御プログラムPrg1のハッシュ値と、端末Tjに配信した制御プログラムPrg1のハッシュ値とが一致しない場合、端末Tjが正当ではないと判定することができる。これにより、端末Tjに配信した制御プログラムPrg1とは異なるプログラムを用いてアクセスしてきた攻撃者端末を検出することができる。
(実施の形態3)
つぎに、実施の形態3にかかるアクセス制御システム2000について説明する。なお、実施の形態1,2で説明した箇所と同様の箇所については、同一符合を付して図示および説明を省略する。
実施の形態3では、端末TjのMACアドレスに対応する読み取り方式を「NFC」とする。また、端末Tjに応じた読み取り方式に対応するデバイス307、すなわち、リーダライタ装置309から発行される合図を、端末Tjを認証するための「あいことば」を示すものとする。
ここで、合図(あいことば)の発行・取得に、NFCのリーダライタ装置を用いる場合、合図発行側のリーダライタ装置と合図取得側のリーダライタ装置との間に、攻撃用NFCを設けることで、中間者攻撃を受ける可能性がある。例えば、合図発行側のリーダライタ装置に攻撃用NFCを重ねて置き、それにシートを被せて隠すといった手口がある。
そこで、実施の形態3では、ユーザ(生徒)がアクセス制御装置APiのリーダライタ装置309に端末Tjをかざしたときの時刻と、NFCのセッションが確立されたときの時刻とを用いて、中間者攻撃を検知する場合について説明する。
図20は、アクセス制御システム2000の動作例を示す説明図である。端末Tjのユーザ(生徒)は、アクセス制御装置APiのリーダライタ装置309に端末Tjをかざすことで、端末Tjのリーダライタ装置407により、リーダライタ装置309のタグに書き込まれた合図を読み取る。
より詳細に説明すると、例えば、端末Tjの合図取得部1023は、リーダライタ装置407により、アクセス制御装置APiのリーダライタ装置309に対して、NFCによる通信要求を送信する。この通信要求には、例えば、セッションを識別するNFC IDが含まれる。
つぎに、アクセス制御装置APiの発行部1013は、リーダライタ装置309により、NFCによる通信要求を受け付けると、当該通信要求を受け付けた時刻T1を記録する。そして、アクセス制御装置APiの発行部1013は、リーダライタ装置309により、端末Tjのリーダライタ装置407に対してAck(acknowledgement)を送信する。
つぎに、端末Tjの合図取得部1023は、リーダライタ装置407により、NFCによる通信要求に対するAckを受け付けると、当該Ackを受け付けた時刻T2を記録する。そして、端末Tjの合図取得部1023は、リーダライタ装置407により、アクセス制御装置APiのリーダライタ装置309とのNFCのセッションを開始する。
この際、端末Tjの合図取得部1023は、NFCのセッションが確立された時刻T3を記録する。同様に、アクセス制御装置APiの発行部1013は、NFCのセッションが確立された時刻T4を記録する。そして、端末Tjの合図取得部1023は、リーダライタ装置407により、リーダライタ装置309のタグに書き込まれた値α(あいことば)を読み取る。
この場合、端末Tjの合図蓄積部1026は、例えば、取得された値αと、記録された時刻T2,T3を示す情報とを認証用データとして、端末Tjの鍵情報と認証用データとを含む応答をアクセス制御装置APiに送信する。ただし、時刻T2,T3を示す情報は、認証用データに含めないことにしてもよい。
アクセス制御装置APiの認証部1014は、端末Tjから鍵情報と認証用データとを含む応答を受け付けると、応答に含まれる認証用データに基づいて、端末Tjの正当性を判定する。具体的には、例えば、認証部1014は、応答に含まれる値αと、リーダライタ装置309のタグに書き込まれた合図とが一致するか否かを判断する。
さらに、認証部1014は、端末TjからNFCによる通信要求を受け付けてから、端末Tjとのセッションが確立されるまでの時間が所定時間以上であるか否かを判断する。所定時間は、任意に設定可能であり、NFC以外の通信、例えば、攻撃用NFCを介したIP(Internet Protocol)の通信が発生している可能性があると判断できる時間(数十マイクロ秒程度)に設定される。
より詳細に説明すると、例えば、認証部1014は、時刻T1と時刻T4との時間差(T4−T1)が所定時間以上であるか否かを判断する。そして、認証部1014は、値αと合図とが一致し、かつ、時間差(T4−T1)が所定時間未満の場合に、端末Tjが正当であると判定する。一方、値αと合図とが一致しない、または、時間差(T4−T1)が所定時間以上の場合には、認証部1014は、端末Tjが正当ではないと判定する。
また、端末Tjからの応答に、時刻T2,T3を示す情報が含まれている場合がある。この場合、認証部1014は、時刻T1と時刻T4との時間差(T4−T1)から時刻T2と時刻T3との時間差(T3−T2)を引いた時間「(T4−T1)−(T3−T2)」が、所定時間以上であるか否かを判断することにしてもよい。これにより、端末Tjの負荷に応じて変動するセッションの確立にかかる時間(T3−T2)を考慮することができる。
以上説明したように、実施の形態3にかかるアクセス制御装置APiによれば、端末TjからNFCによる通信要求を受け付けてから、端末Tjとのセッションが確立されるまでの時間が所定時間以上の場合に、端末Tjが正当ではないと判定することができる。これにより、アクセス制御装置APiのリーダライタ装置309と端末Tjのリーダライタ装置407との間に設けられる攻撃用NFCによる中間者攻撃を検知することができる。
(実施の形態4)
つぎに、実施の形態4にかかるアクセス制御システム2100について説明する。なお、実施の形態1〜3で説明した箇所と同様の箇所については、同一符合を付して図示および説明を省略する。
図21は、アクセス制御システム2100の動作例を示す説明図である。ここでは、アクセス制御システム2100内のアクセス制御装置AP1〜APnのうち、アクセス制御装置AP1〜AP3を例に挙げて説明する。また、アクセス制御装置AP1は、教室Aに設置されているとする。アクセス制御装置AP2は、教室Bに設置されているとする。アクセス制御装置AP3は、実験室に設置されているとする。
各アクセス制御装置AP1〜AP3は、各アクセス制御装置AP1〜AP3の設置場所を示す情報を、例えば、各アクセス制御装置AP1〜AP3のMACアドレスと対応付けて、メモリ302、ディスク304などの記憶装置に記憶している。
アクセス制御システム2100において、各アクセス制御装置AP1〜AP3は、ビーコン発信機310から自装置を特定可能な情報(ビーコン値)を示すビーコン信号を定期的に発信する。各アクセス制御装置AP1〜AP3を特定可能な情報(ビーコン値)は、例えば、各アクセス制御装置AP1〜AP3を一意に識別する番号であってもよく、また、各アクセス制御装置AP1〜AP3のMACアドレスであってもよい。
各端末Tjは、ビーコン受信機408により、各アクセス制御装置AP1〜AP3から、各アクセス制御装置AP1〜AP3を特定可能な情報(ビーコン値)を示すビーコン信号を受信すると、受信時刻と対応付けて、ビーコン値をビーコン受信履歴2101に保存する。ビーコン受信履歴2101は、例えば、メモリ402により実現される。
ここで、ビーコン値は、端末Tjと近距離無線通信を行ったアクセス制御装置APiを特定可能な情報である。換言すれば、ビーコン値は、当該ビーコン値に対応する受信時刻における端末Tjの位置を特定可能な情報である。
アクセス制御装置APiは、端末Tjからビーコン受信履歴2101を取得する。ビーコン受信履歴2101の取得タイミングは、例えば、端末Tjとの接続中の所定のタイミングである。ただし、ビーコン受信履歴2101の取得タイミングは、端末Tjの最初の認証時であってもよく、また、端末Tjの2回目以降の認証時であってもよい。
具体的には、例えば、アクセス制御装置APiは、ビーコン発信機310により、端末Tjの位置を特定可能な情報の取得要求を示すビーコン信号(位置要求)を合図として発信する。各端末Tjは、ビーコン受信機408により、アクセス制御装置APiからビーコン信号(位置要求)を受信すると、自端末の位置を特定可能な情報、例えば、ビーコン受信履歴2101をメモリ402から読み出す。そして、各端末Tjは、WLAN I/F403により、読み出した自端末の位置を特定可能な情報、例えば、ビーコン受信履歴2101を含む応答をアクセス制御装置APiに送信する。
アクセス制御装置APiは、接続中の各端末Tjから、各端末Tjの位置を特定可能な情報(例えば、ビーコン受信履歴2101)を含む応答を受信する。これにより、アクセス制御装置APiは、接続中の各端末Tjから、各端末Tjの位置を特定可能な情報、例えば、ビーコン受信履歴2101を取得することができる。
アクセス制御装置APiの認証部1014は、接続中の各端末Tjから、各端末Tjの位置を特定可能な情報を含む応答を受け付けると、当該応答に含まれる各端末Tjの位置を特定可能な情報に基づいて、各端末Tjの位置の時系列変化を特定する。例えば、認証部1014は、端末Tjのビーコン受信履歴2101を参照して、各ビーコン値から特定されるアクセス制御装置APiの設置位置を、当該各ビーコン値に対応する受信時刻における端末Tjの位置として特定することができる。そして、認証部1014は、特定した各端末Tjの位置の時系列変化に基づいて、各端末Tjの正当性を判定する。
ここで、図22を用いて、各端末Tjの位置の時系列変化に基づく正当性の判定例について説明する。ここでは、アクセス制御装置APiに接続中の複数の端末を「端末T1〜T3」とする。
図22は、各端末T1〜T3の位置の時系列変化を示す説明図である。図22において、アクセス制御装置APiに接続中の各端末T1〜T3のビーコン受信履歴2101から特定された各端末T1〜T3の位置の時系列変化が示されている。ここでは、時刻tにおいて、各端末T1〜T3の正当性を判定するとする。
なお、アクセス制御装置APiは、時刻tにおいて端末T1〜T3が接続中のアクセス制御装置であり、アクセス制御装置AP1〜AP3のいずれかであってもよく、また、アクセス制御装置AP1〜AP3とは異なる他のアクセス制御装置であってもよい。
この場合、アクセス制御装置APiの認証部1014は、例えば、各端末T1〜T3の位置の時系列変化を比較して、各端末T1〜T3の正当性を判定する。図22の例では、端末T1の位置は、「教室A⇒教室B」と変化している。また、端末T2の位置は、「教室A⇒教室B」と変化している。これに対して、端末T3の位置は、「教室A⇒実験室」と変化している。
すなわち、端末T1〜T3のうち、端末T3のみ位置の時系列変化が異なる。例えば、同じクラスの生徒であれば、全生徒で位置の時系列変化は同じものとなることが想定される。換言すれば、無線LANを利用中の複数の生徒のうち、位置の時系列変化が他の生徒と異なる生徒は、無線LANを不正に利用している可能性がある。
そこで、認証部1014は、端末T1〜T3のうち、位置の時系列変化が他の端末T1,T2と異なる端末T3について、正当ではないと判定する。認証部1014は、端末T3が正当ではないと判定した場合、端末T3に関するアラートを出力する。ここで、アラートは、無線LANに不正にアクセスしている可能性があることを警告するものである。アラートの出力先は、例えば、管理者端末201である。
また、認証部1014は、端末T3が正当ではないと判定した場合、端末T3との接続を切断する切断処理を行うことにしてもよい。また、認証部1014は、端末T3が正当ではないと判定した場合、合図管理DB500内の端末T3の鍵情報(公開鍵)を削除して、firstAuth flagを初期化(true)することにしてもよい。
以上説明したように、実施の形態4にかかるアクセス制御装置APiによれば、自装置に接続中の端末間(あるいは、自装置に接続依頼してきた端末間)の過去の位置の相関から不正にアクセスしている端末Tjを検出して排除することができる。
なお、本実施の形態で説明したアクセス制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本アクセス制御プログラムは、ハードディスク、フレキシブルディスク、CD(Compact Disc)−ROM、MO(Magneto−Optical disk)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本アクセス制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)端末から無線通信による接続依頼を受け付けたことに応じて、前記端末に応じた読み取り方式に対応するデバイスから合図を発行し、前記端末に対して、前記端末の鍵情報の生成、および、前記端末に応じた読み取り方式により読み取られる合図に応じた認証用データの取得を行う制御プログラムを送信し、
前記端末から鍵情報と認証用データとを含む応答を受け付けると、前記応答に含まれる認証用データに基づいて、前記端末の正当性を判定し、
前記端末が正当であると判定した場合、前記応答に含まれる鍵情報を前記端末の識別情報と対応付けて登録して、前記端末との接続処理を行う、
制御部を有することを特徴とするアクセス制御装置。
(付記2)前記制御部は、
端末から無線通信による接続依頼を受け付けたことに応じて、前記端末の識別情報に対応する鍵情報が登録されているか否かを判断し、
前記鍵情報が登録されている場合、前記端末に対して、前記鍵情報を用いた認証を行うための認証用データの生成を行う第2の制御プログラムを送信し、
前記端末から認証用データを含む応答を受け付けると、前記応答に含まれる認証用データと前記鍵情報とに基づいて、前記端末の正当性を判定し、
前記端末が正当であると判定した場合に、前記端末との接続処理を行う、
ことを特徴とする付記1に記載のアクセス制御装置。
(付記3)前記デバイスは、表示装置であり、
前記端末に応じた読み取り方式は、前記端末の入力装置を用いた操作入力によって、前記デバイスにより表示された合図の入力を受け付けることにより、入力された前記合図を読み取る方式である、ことを特徴とする付記1に記載のアクセス制御装置。
(付記4)前記デバイスは、前記無線通信よりも通信範囲が狭い第1の近距離無線通信によりビーコン信号を発信する発信機であり、
前記端末に応じた読み取り方式は、前記デバイスから発信されるビーコン信号を受信することにより、受信された前記ビーコン信号が示す合図を読み取る方式である、ことを特徴とする付記1に記載のアクセス制御装置。
(付記5)前記デバイスは、前記無線通信よりも通信範囲が狭い第2の近距離無線通信によりデータの読み書きを行うリーダライタ装置であり、
前記端末に応じた読み取り方式は、前記デバイスに書き込まれた合図を読み取る方式である、ことを特徴とする付記1に記載のアクセス制御装置。
(付記6)前記デバイスから発行される合図は、あいことばを示すものであり、
前記制御部は、前記端末から鍵情報と認証用データとを含む応答を受け付けると、前記応答に含まれる認証用データと、前記デバイスから発行した合図とが一致する場合、前記端末が正当であると判定する、ことを特徴とする付記1〜5のいずれか一つに記載のアクセス制御装置。
(付記7)前記制御プログラムは、さらに、前記制御プログラムのサイズ、実行時刻およびハッシュ値の少なくともいずれかの情報の取得を行うプログラムであり、
前記制御部は、前記端末で実行した制御プログラムのサイズ、実行時刻およびハッシュ値の少なくともいずれかの情報をさらに含む応答を受け付けると、さらに、前記応答に含まれる前記端末で実行した制御プログラムのサイズ、実行時刻およびハッシュ値の少なくともいずれかの情報に基づいて、前記端末の正当性を判定する、
ことを特徴とする付記1〜6のいずれか一つに記載のアクセス制御装置。
(付記8)前記制御部は、前記応答に含まれる前記端末で実行した制御プログラムのサイズと、前記端末に対して送信した前記制御プログラムのサイズとが一致しない場合、前記端末が正当ではないと判定する、ことを特徴とする付記7に記載のアクセス制御装置。
(付記9)前記制御部は、前記応答に含まれる前記端末で実行した制御プログラムのハッシュ値と、前記端末に対して送信した前記制御プログラムのハッシュ値とが一致しない場合、前記端末が正当ではないと判定する、ことを特徴とする付記7または8に記載のアクセス制御装置。
(付記10)前記制御部は、前記応答に含まれる前記端末で実行した制御プログラムの実行時刻と、前記端末に対して前記制御プログラムを送信した時刻との時間差が所定時間以上の場合、前記端末が正当ではないと判定する、ことを特徴とする付記7〜9のいずれか一つに記載のアクセス制御装置。
(付記11)前記制御部は、前記端末から前記第2の近距離無線通信による通信要求を受け付けてから、前記端末とのセッションが確立されるまでの時間が所定時間以上の場合、前記端末が正当ではないと判定する、ことを特徴とする付記5に記載のアクセス制御装置。
(付記12)前記制御部は、
端末の位置を特定可能な情報を要求する合図を前記デバイスから発行し、
接続中の複数の端末それぞれから位置を特定可能な情報を含む応答を受け付けると、前記応答に含まれる前記位置を特定可能な情報に基づいて、前記複数の端末それぞれの位置の時系列変化を特定し、
特定した前記複数の端末それぞれの位置の時系列変化に基づいて、前記複数の端末それぞれの正当性を判定し、
前記複数の端末のうちのいずれかの端末が正当ではないと判定した場合、前記端末に関するアラートを出力する、
ことを特徴とする付記4に記載のアクセス制御装置。
(付記13)前記デバイスから発行される合図は、顔画像を要求するものであり、
前記制御プログラムは、前記認証用データとして、前記端末の利用者の顔画像の取得を行うプログラムであり、
前記制御部は、
前記端末から鍵情報と顔画像とを含む応答を受け付けると、前記応答に含まれる顔画像を、特定の端末に送信し、
前記特定の端末からの応答を受け付けると、前記特定の端末からの応答内容に基づいて、前記端末の正当性を判定する、
ことを特徴とする付記1または2に記載のアクセス制御装置。
(付記14)端末から無線通信による接続依頼を受け付け、
前記接続依頼を受け付けたことに応じて、前記端末に応じた読み取り方式に対応するデバイスから合図を発行し、前記端末に対して、前記端末の鍵情報の生成、および、前記端末に応じた読み取り方式により読み取られる合図に応じた認証用データの取得を行う制御プログラムを送信し、
前記端末から鍵情報と認証用データとを含む応答を受け付けると、前記応答に含まれる認証用データに基づいて、前記端末の正当性を判定し、
前記端末が正当であると判定した場合、前記応答に含まれる鍵情報を前記端末の識別情報と対応付けて登録して、前記端末との接続処理を行う、
処理をコンピュータに実行させることを特徴とするアクセス制御プログラム。
(付記15)端末から無線通信による接続依頼を受け付けたことに応じて、前記端末に応じた読み取り方式に対応するデバイスから合図を発行し、前記端末に対して、前記端末の鍵情報の生成、および、前記端末に応じた読み取り方式により読み取られる合図に応じた認証用データの取得を行う制御プログラムを送信し、前記端末から鍵情報と認証用データとを含む応答を受け付けると、前記応答に含まれる認証用データに基づいて、前記端末の正当性を判定し、前記端末が正当であると判定した場合、前記応答に含まれる鍵情報を前記端末の識別情報と対応付けて登録して、前記端末との接続処理を行うアクセス制御装置と、
無線通信による接続依頼を行ったアクセス制御装置から前記制御プログラムを受信すると、前記制御プログラムを実行することにより、自端末の鍵情報を生成するとともに、自端末に応じた読み取り方式により読み取られる合図に応じた認証用データを取得し、生成した前記鍵情報および取得した前記認証用データを含む応答を前記アクセス制御装置に送信する端末と、
を含むことを特徴とするアクセス制御システム。