以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分には同一符号を付してその説明は原則的には繰り返さないものとする。
[実施の形態1]
<通信システムの全体構成>
図1は、実施の形態1に係る通信システム1の全体構成を模式的に示す図である。以下では、一例として、実施の形態1に係る通信システム1が船舶に適用される場合を例にして説明する。
通信システム1は、船舶内における乗員の位置および乗員の状態を管理するためのシステムである。通信システム1は、複数のビーコン装置10(ビーコン装置10-1,10-2,…)と、複数の受信装置20(受信装置20-1,20-2,…)と、第1管理装置30と、第2管理装置40と、通信ケーブル45とを備える。
ビーコン装置10-1,10-2,…は、乗員(船員)2-1,2-2,…にそれぞれ携帯される。以下では、ビーコン装置10-1,10-2,…を特に区別しない場合、ビーコン装置10-1,10-2,…の各々を「ビーコン装置10」とも称する。また、乗員2-1,2-2,…を特に区別しない場合、乗員2-1,2-2,…の各々を「乗員2」とも称する。
ビーコン装置10は、乗員2に関する情報(実施の形態1においては、乗員2の生体情報)を電波60によってブロードキャスト送信する装置である。実施の形態1に係るビーコン装置10は、充電可能なバッテリを動力源とする携帯型のビーコン装置である。ビーコン装置10は、単方向通信する第1モードと双方向通信する第2モードとの2つの通信モードを有する。ビーコン装置10の通信モードは、第1モードがデフォルトとなっている。第1モードにおいてビーコン装置10は、Bluetooth(登録商標) Low Energy(BLE)規格におけるアドバタイズパケット(ビーコン)を電波60によってブロードキャスト送信する。第1モードにおいてビーコン装置10は、アドバタイズパケットをブロードキャスト送信しながら、常時、接続待機状態となっており、外部から接続要求を受けることにより、通信モードを第2モードに切り替える。第2モードにおいてビーコン装置10は、アドバタイズパケットのブロードキャスト送信を停止し、接続要求のあった機器との間で、BLE規格に従う通信プロトコルによる通信(以下「BLE通信」とも称する)を確立して双方向の通信を行なう。
受信装置20-1,20-2,…は、たとえば、船舶内の壁等によって区切られた区画毎に設置されている。受信装置20-1,20-2,…には、個々を識別するための受信装置IDがそれぞれ割り振られている。以下では、受信装置20-1,20-2,…を特に区別しない場合、受信装置20-1,20-2,…の各々を「受信装置20」とも称する。
受信装置20-1,20-2,…の各々は、第1管理装置30と通信ケーブル45を介して通信可能に接続されている。受信装置20は、通信ケーブル45を介して、第1管理装置30から共通鍵を受信可能に構成される。また、受信装置20は、ビーコン装置10からブロードキャスト送信されるアドバタイズパケットを受信可能に構成される。
第1管理装置30は、通信システム1で用いられる共通鍵を生成する。第1管理装置30が生成した共通鍵は、ビーコン装置10において、生体情報の暗号化に用いられ、受信装置20において、暗号化された生体情報の復号に用いられる。乗員2の生体情報は乗員2の個人情報であるところ、ビーコン装置10が生体情報を暗号化してアドバタイズパケットに格納することによって、仮にアドバタイズパケットが意図しない者に傍受されたとしても、生体情報の漏洩を抑制することができる。
後述するように、ビーコン装置10は、乗員2の生体情報を検知する生体センサを含む。ビーコン装置10は、生体センサによって検知された生体情報を、第1管理装置30によって生成された共通鍵を用いて暗号化する。アドバタイズパケットのデータ領域は、暗号化領域と、非暗号化領域とを含む。ビーコン装置10は、暗号化された生体情報をアドバタイズパケットの暗号化領域に格納する。また、ビーコン装置10は、ビーコン装置10を識別する装置IDの情報をアドバタイズパケットの非暗号化領域に格納する。なお、ビーコン装置10は、共通鍵を用いて装置IDの情報を暗号化し、暗号化された装置IDの情報をアドバタイズパケットの暗号化領域に格納してもよい。
アドバタイズパケットのフォーマットとしては、たとえば、Bluetooth SIG(Special Interest Group)が管理しているBluetooth(登録商標)仕様に基づくフォーマットを利用することができる。あるいは、Apple(登録商標)社が公開している「iBeacon(登録商標)」、またはGoogle(登録商標)社が公開している「Eddystone(登録商標)」等の汎用性の高いフォーマットを利用してもよい。なお、いずれのフォーマットが利用される場合においても、アドバタイズパケットに格納される情報は、生体情報に限られるものではなく、任意の情報を暗号化して格納することが可能である。
アドバタイズパケットを受信すると、受信装置20は、第1管理装置30によって生成された共通鍵を用いて、アドバタイズパケットに含まれる暗号化された生体情報を復号する。そして、受信装置20は、復号した生体情報およびビーコン装置10の装置IDの情報に加えて、アドバタイズパケットの受信強度を示す受信強度情報と、受信時刻を示す受信時刻情報と、受信装置IDの情報とを、無線通信により第2管理装置40に送信する。なお、受信装置20と第2管理装置40とは、有線通信が可能に構成されてもよい。
第2管理装置40は、受信装置20から受けた受信強度情報、受信時刻情報、受信装置IDの情報、ビーコン装置10の装置IDの情報および生体情報に基づいて、乗員2を管理する。具体的には、第2管理装置40は、ビーコン装置10の装置IDの情報から乗員2を特定する。第2管理装置40は、受信強度情報、受信時刻情報および受信装置IDの情報から、乗員2の位置を推定する。また、第2管理装置40は、乗員2の生体情報から乗員2の状態を推定する。すなわち、第2管理装置40は、乗員2の位置および乗員2の状態を管理する。
さらに、第1管理装置30は、通信システム1で用いられる共通鍵を更新する機能を有する。第1管理装置30は、第1管理装置30に対して共通鍵を更新するための更新操作(たとえば、共通鍵の更新コマンドの入力)が行なわれた場合に、当該更新操作に応じて新たな共通鍵を生成する。そして、第1管理装置30は、生成した共通鍵を、通信システム1の現行(最新)の共通鍵として管理し、ビーコン装置10および受信装置20の共通鍵を更新する。更新操作は、たとえば、予め定められた更新周期毎に第1管理装置30の管理者(図示せず)によって行なわれる。すなわち、定期的に通信システム1の共通鍵が更新される。これにより、仮に意図しない者に共通鍵が漏洩したとしても、セキュリティ上の問題を一時的なものとすることができ、通信システム1のセキュリティを担保することができる。なお、更新周期は、通信システム1が適用される対象に応じて適宜設定することが可能である。実施の形態1における更新周期は、たとえば、1週間または1ヶ月等に設定される。
以下においては、一例として、第1管理装置30が新たな共通鍵51を生成し、通信システム1の現行の共通鍵が共通鍵50から共通鍵51に更新されるケースを想定する。当該ケースにおける、ビーコン装置10および受信装置20の共通鍵の更新について説明する。
図2は、ビーコン装置10および受信装置20の共通鍵の更新を説明するための図である。
図1および図2を参照しながら、まず、受信装置20の共通鍵の更新について説明する。受信装置20の共通鍵は、通信ケーブル45を介した有線通信により更新される。第1管理装置30は、通信ケーブル45を介して、複数の受信装置20(受信装置20-1,20-2,…)に共通鍵51を送信する。第1管理装置30から共通鍵51を受けた受信装置20は、共通鍵51を通信システム1の現行の共通鍵として記憶する。すなわち、通信ケーブル45により第1管理装置30と接続されている全台の受信装置20(受信装置20-1,20-2,…)の共通鍵が一括して更新される。
次に、ビーコン装置10の共通鍵の更新について説明する。ビーコン装置10の共通鍵の更新は、第1管理装置30とのBLE通信により行なわれる。乗員2は、更新周期が到来すると、自身が装着するビーコン装置10を第1管理装置30のところへ持って行き(第1管理装置30とBLE通信が可能なところまで持って行き)、当該ビーコン装置10と第1管理装置30とのBLE通信を確立させて共通鍵を更新する。
より具体的に、ビーコン装置10-1の共通鍵を更新する場合を想定する。ビーコン装置10-1を装着する乗員2-1は、更新周期が到来すると、ビーコン装置10-1を第1管理装置30のところへ持って行く。そして、第1管理装置30の管理者あるいは乗員2-1は、第1管理装置30に対してビーコン装置10-1の共通鍵を更新する操作(以下「更新対象の選択操作」とも称する)を行なう。たとえば、第1管理装置30のディスプレに表示された複数のビーコン装置10(ビーコン装置10-1,10-2,…)のうちから、第1管理装置30の管理者がビーコン装置10-1を選択する。更新対象の選択操作によって、第1管理装置30からビーコン装置10-1に接続要求が出力される。接続要求を受けると、ビーコン装置10-1は、通信モードを第1モードから第2モードに切り替えて、第1管理装置30に接続応答を送信する。これにより、ビーコン装置10-1と第1管理装置30との間でBLE通信が確立される。
そして、両者の間でBLE通信が確立されると、第1管理装置30からビーコン装置10-1に新たな共通鍵51が送信される。ビーコン装置10-1は、共通鍵51を受信すると、それまでに記憶していた共通鍵50を削除して、受信した共通鍵51を記憶する。あるいは、ビーコン装置10-1は、共通鍵50に共通鍵51を上書きしてもよい。
共通鍵の更新が完了すると、ビーコン装置10-1は、通信モードを第2モードから第1モードに戻し、再びアドバタイズパケットをブロードキャスト送信する。共通鍵の更新が完了した以降は、ビーコン装置10-1は、生体情報の暗号化に共通鍵51を用いる。
なお、たとえば、複数のビーコン装置10(ビーコン装置10-1,10-2,…)の各々と、第1管理装置30とは、BLE規格におけるペアリングを予め行なっておくことができる。予めペアリングを行なっておけば、ビーコン装置10と第1管理装置30とのBLE通信が確立される際に、ペアリングが行なわれた際に生成されたリンクキーによる相互認証が行なわれる。そして、BLE通信において、リンクキーを用いた情報の暗号化および復号が行なわれる。これによって、BLE通信において、セキュアな通信を行なうことができる。
上述したように、第1管理装置30が新たな共通鍵を生成した場合、通信ケーブル45に接続された複数の受信装置20(受信装置20-1,20-2,…)の共通鍵は、一括して更新される。一方、ビーコン装置10は、第1管理装置30とのBLE通信を確立させて共通鍵が更新される。そのため、複数のビーコン装置10(ビーコン装置10-1,10-2,…)の共通鍵は、一括でなはなく、1台ずつ順次更新される。
そのため、受信装置20の共通鍵が更新されてから、全台のビーコン装置10(ビーコン装置10-1,10-2,…)の共通鍵の更新が完了するまでの間、複数のビーコン装置10(ビーコン装置10-1,10-2,…)には、共通鍵50を有するものと、共通鍵51を有するものとが混在する。受信装置20が共通鍵の更新時に共通鍵50を破棄あるいは共通鍵50を共通鍵51に上書きしていると、まだ更新が完了していないビーコン装置10(共通鍵50を有するビーコン装置10)から受信したアドバタイズパケットに含まれる生体情報を復号することができない。それゆえに、全台のビーコン装置10(ビーコン装置10-1,10-2,…)の共通鍵の更新が完了するまでの間に情報の欠落が生じる可能性がある。
そこで、実施の形態1においては、受信装置20は、第1管理装置30から共通鍵51を受信した場合に、共通鍵51を現行(最新のバージョン)の共通鍵として記憶しつつ、共通鍵50を1つ前のバージョンの共通鍵として保持する。これにより、共通鍵50,51のいずれの共通鍵を有するビーコン装置10からのアドバタイズパケットを受信した場合においても、当該アドバタイズパケットに含まれる生体情報を復号することができる。
さらに、実施の形態1においては、ビーコン装置10は、生体情報の暗号化に使用した共通鍵のバージョン情報を、アドバタイズパケットの非暗号化領域に格納する。これによって、アドバタイズパケットを受信した受信装置20は、アドバタイズパケットの非暗号化領域に含まれる共通鍵のバージョン情報に基づいて、アドバタイズパケットに含まれる生体情報がどの共通鍵を用いて暗号化されたかを認識することができる。たとえば、共通鍵50および共通鍵51の両方を用いてアドバタイズパケットに含まれる生体情報の復号を試みる場合には、データ処理の遅延を招く可能性がある。実施の形態1においては、生体情報の暗号化に用いた共通鍵のバージョン情報を認識することができるので、受信装置20は、生体情報の復号に用いる共通鍵を特定することができる。ゆえに、共通鍵50および共通鍵51の両方を用いてアドバタイズパケットに含まれる生体情報の復号を試みる場合に比べ、データ処理の遅延を低減させることができる。
受信装置20は、共通鍵51を現行の共通鍵として記憶しつつ、共通鍵50を1つ前のバージョンの共通鍵として保持している。アドバタイズパケットを受信すると、受信装置20は、アドバタイズパケットの非暗号化領域に格納されている共通鍵のバージョン情報を読み出す。そして、受信装置20は、読み出したバージョン情報に基づいて、共通鍵50,51のうちのいずれかを選択し、選択した共通鍵を用いて暗号化された生体情報を復号する。これにより、情報の欠落を抑制しつつ、データ処理の遅延の発生を抑制することができる。
なお、次の共通鍵の更新周期において、第1管理装置30が新たな共通鍵52を生成した場合、受信装置20は、第1管理装置30から共通鍵52を受信すると、保持している共通鍵のうち古い方の共通鍵(すなわち共通鍵50)を共通鍵52に上書きする。そして、受信装置20は、共通鍵52を現行の共通鍵として記憶しつつ、共通鍵51を1つ前のバージョンの共通鍵として保持する。
また、ビーコン装置10-1,10-2,…の各々は、本開示に係る「第1装置」の一例に相当する。また、受信装置20-1,20-2,…の各々は、本開示に係る「第2装置」の一例に相当する。また、第1管理装置30は、本開示に係る「第3装置」の一例に相当する。
以下、通信システム1に含まれる、ビーコン装置10、受信装置20および第1管理装置30の各構成の詳細について順に説明する。
<ビーコン装置の構成>
図3は、実施の形態1に係るビーコン装置10の構成を示すブロック図である。図3を参照して、ビーコン装置10は、CPU(Central Processing Unit)11と、記憶装置12と、RAM(Random Access Memory)13と、通信装置14と、生体センサ15と、バッテリ16とを含む。
記憶装置12は、たとえばROM(Read Only Memory)等の書き換え可能な不揮発性メモリを含む。記憶装置12は、ハードディスクドライブおよびSSD(Solid State Drive)の少なくとも一方を含んでもよい。記憶装置12は、CPU11で実行される各種プログラムを記憶する。CPU11により読み出された各種プログラムは、RAM13に展開される。RAM13は、CPU11によって処理されるデータを一時的に記憶する作業用メモリとして機能する。また、記憶装置12は、第1管理装置30から受信した共通鍵を記憶する。
通信装置14は、通信モードとして、単方向通信する第1モード、および双方向通信する第2モードを有する。通信装置14は、CPU11からの指令に従って、第1モードおよび第2モードを切り替えるように構成される。
第1モードにおいて、通信装置14は、CPU11からの指令に従って、アドバタイズパケットを設定された所定周期でブロードキャスト送信する。上記の所定周期は、BLE規格で定められており、20ms~10.24sの範囲で0.625msの整数倍である。通信装置14は、たとえば約1sごとにアドバタイズパケットを送信する。
第2モードにおいて、通信装置14は、アドバタイズパケットのブロードキャスト送信を停止し、接続要求を送信した装置(実施の形態1においては第1管理装置30)とBLE通信を確立する。通信装置14は、BLE通信により、第1管理装置30との間でデータの送受信を行なう。
生体センサ15は、ビーコン装置10が装着された乗員2の生体情報(たとえば脈拍、心拍、体温など)を出力する。生体センサ15は、たとえば脈拍、心拍、体温などの値を計測し、計測した値を生体情報として出力してもよいし、計測した値に基づいて乗員2の状態を評価し、評価結果を生体情報として出力してもよい。
バッテリ16は、動力源としてビーコン装置10に搭載される。バッテリ16は、たとえば、ニッケル水素電池、リチウムイオン電池等の二次電池である。たとえば、専用の充電器(図示せず)にビーコン装置10を接続することにより、バッテリ16を充電することができる。バッテリ16の充電時には、たとえば、CPU11がバッテリ16の充電状態を監視し、バッテリ16のSOC(State Of Charge)が所定SOCに達すると、充電器に指令を送信して、給電を停止させる。
CPU11は、記憶装置12に格納された各種プログラムを実行することでビーコン装置10の各種の処理を制御する。具体的な一例としては、各種プログラムを実行することによりCPU11は、通信制御部111、暗号化部112、生成部113および更新部114として機能する。
通信制御部111は、通信装置14の通信モードを制御する。具体的には、通信制御部111は、デフォルトでは、通信装置14の通信モードを第1モードに制御する。通信制御部111は、ビーコン装置10の共通鍵を更新する場合に、通信装置14の通信モードを第1モードから第2モードに切り替える。すなわち、ビーコン装置10の「共通鍵を更新する場合」を条件として、条件が成立した際に、通信制御部111は、通信装置14の通信モードを第1モードから第2モードに切り替える。実施の形態1に係る条件は、上述したとおり、外部の装置(実施の形態1においては第1管理装置30)から接続要求を受信した場合である。通信制御部111は、外部の装置(実施の形態1においては第1管理装置30)から接続要求を受信した場合に、通信装置14の通信モードを第2モードに切り替える。なお、外部の装置との間でペアリングが行なわれている場合には、通信制御部111は、通信装置14の通信モードを第2モードに切り替えて、外部の装置との間でリンクキーによる認証を行ない、リンクキーによる認証が成功した場合に、外部の装置との通信を確立させる。
通信制御部111は、共通鍵の更新が完了すると、通信装置14の通信モードを第2モードから第1モードに切り替える。
暗号化部112は、記憶装置12に記憶された共通鍵を用いて、生体センサ15から出力された生体情報を暗号化する。
生成部113は、BLE規格におけるアドバタイズパケットを生成する。アドバタイズパケットのデータ領域は、暗号化領域と、非暗号化領域とを含む。生成部113は、暗号化部112によって暗号化された生体情報をアドバタイズパケットの暗号化領域に格納する処理を行なう。また、生成部113は、生体情報の暗号化に用いられた共通鍵のバージョン情報をアドバタイズパケットの非暗号化領域に格納する処理を行なう。
更新部114は、通信装置14を介して第1管理装置30から共通鍵を受信すると、記憶装置12に記憶されている共通鍵を更新する。具体的な一例として、第1管理装置30から共通鍵51を受信すると、更新部114は、記憶装置12に記憶されている共通鍵50を共通鍵51に更新する。この場合において、更新部114は、共通鍵50を削除するとともに、共通鍵51を記憶する。あるいは、更新部114は、共通鍵50を共通鍵51に上書きしてもよい。
<受信装置の構成>
図4は、実施の形態1に係る受信装置20の構成を示すブロック図である。図4を参照して、受信装置20は、CPU21と、記憶装置22と、RAM23と、第1通信装置24と、第2通信装置25と、第3通信装置26とを含む。
記憶装置22は、たとえばROM等の書き換え可能な不揮発性メモリを含む。記憶装置22は、ハードディスクドライブおよびSSDの少なくとも一方を含んでもよい。記憶装置22は、CPU21で実行される各種プログラムを記憶する。CPU21により読み出された各種プログラムは、RAM23に展開される。RAM23は、CPU21によって処理されるデータを一時的に記憶する作業用メモリとして機能する。
また、記憶装置22は、第1管理装置30から受信した共通鍵を記憶する。記憶装置22は、第1管理装置30から共通鍵51を受信した場合、受信した共通鍵51を現行の共通鍵として記憶しつつ、現行の共通鍵として記憶していた共通鍵50を1つ前のバージョンの共通鍵として保持する。さらに、次の更新周期が到来して第1管理装置30により共通鍵52が生成され、第1管理装置30から共通鍵52を受信した場合、記憶装置22は、受信した共通鍵52を現行の共通鍵として記憶しつつ、現行の共通鍵として記憶していた共通鍵51を1つ前のバージョンの共通鍵として保持する。この場合、記憶装置22は、1つ前のバージョンの共通鍵として保持してい共通鍵50を削除する。つまり、記憶装置22は、初期を除き、2つの共通鍵を記憶する。なお、共通鍵50を削除せずに記憶装置22に保持させることも可能であるが、使用可能な共通鍵を2つに限ることにより、セキュリティを向上させることができる。
第1通信装置24には、通信ケーブル45(図1参照)が接続されている。第1通信装置24は、通信ケーブル45を介して、第1管理装置30との間でデータの送受信が可能に構成される。
第2通信装置25は、ビーコン装置10がブロードキャスト送信するアドバタイズパケットを受信可能に構成される。
第3通信装置26は、第2管理装置40との間での無線通信が可能に構成される。
CPU21は、記憶装置22に格納された各種プログラムを実行することで受信装置20の各種の処理を制御する。具体的な一例として、各種プログラムを実行することによりCPU21は、特定部211、復号部212、更新部213、および送信部214として機能する。
特定部211は、受信したアドバタイズパケットに格納された生体情報の暗号化に用いられた共通鍵のバージョンを特定する。具体的には、特定部211は、受信したアドバタイズパケットの非暗号化領域に格納された共通鍵のバージョン情報を読み出す。特定部211は、読み出したバージョン情報に基づいて、生体情報の暗号化にいられた共通鍵を特定する。
復号部212は、特定部211が特定した共通鍵を記憶装置22から読み出して、読み出した共通鍵を用いて、受信したアドバタイズパケットの暗号化領域に格納された生体情報を復号する。
更新部213は、第1通信装置24を介して第1管理装置30から共通鍵を受信すると、記憶装置22に共通鍵を記憶させる。具体的な一例として、第1管理装置30から共通鍵51を受信すると、更新部213は、現行の共通鍵として共通鍵51を記憶装置22に記憶させるとともに、1つ前のバージョンの共通鍵として共通鍵50を記憶装置22に保持させる。次の更新周期において第1管理装置30から共通鍵52を受信すると、更新部213は、現行の共通鍵として共通鍵52を記憶装置22に記憶させるとともに、1つ前のバージョンの共通鍵として共通鍵51を記憶装置22に保持させる。この場合、更新部213は、記憶装置22から共通鍵50を削除する。
送信部214は、復号された生体情報、ビーコン装置10の装置ID、受信強度情報、受信時刻情報、および受信装置IDの情報を、第3通信装置26を介して第2管理装置40に送信する。
<第1管理装置の構成>
図5は、実施の形態1に係る第1管理装置30の構成を示すブロック図である。図5を参照して、第1管理装置30は、CPU31と、記憶装置32と、RAM33と、ネットワーク通信装置34と、通信装置35と、通信インターフェース36と、ディスプレイ37とを含む。
記憶装置32は、たとえばROM等の書き換え可能な不揮発性メモリを含む。記憶装置32は、ハードディスクドライブおよびSSDの少なくとも一方を含んでもよい。記憶装置32は、CPU31で実行される各種プログラムを記憶する。CPU31により読み出された各種プログラムは、RAM33に展開される。RAM33は、CPU31によって処理されるデータを一時的に記憶する作業用メモリとして機能する。
また、記憶装置32は、ビーコン装置10および受信装置20の共通鍵の更新状況を示す管理情報を記憶する。管理情報の詳細については、後述する。
ネットワーク通信装置34には、通信ケーブル45(図1参照)が接続されている。ネットワーク通信装置34は、通信ケーブル45を介して、受信装置20の各々との間でデータの送受信を行なう。
通信装置35は、CPU31からの指令に従ってビーコン装置10に接続要求を送信する。複数のビーコン装置10(ビーコン装置10-1,10-2,…)のうちのいずれのビーコン装置10に接続要求を送信するかは、たとえば第1管理装置30に対して行なわれる更新対象の選択操作に従う。たとえば、第1管理装置30の管理者が、これから共通鍵の更新を行なうビーコン装置10をディスプレイ37上で選択する。当該操作(更新対象の選択操作)によって、CPU31から通信装置35へ、選択されたビーコン装置10への接続要求の送信指令が出力される。通信装置35は、CPU31からの指令に従ってビーコン装置10に接続要求を送信する。
通信装置35は、接続要求に対する接続応答をビーコン装置10から受信する。接続応答を受信すると、通信装置35は、ビーコン装置10との間でBLE通信を確立させる。通信装置35は、CPU31からの指令に従って、BLE通信によりビーコン装置10に新たな共通鍵を送信する。
通信インターフェース36は、たとえば、USB(Universal Serial Bus)ポートまたはNFC(Near Field Communication)リーダライタ等で構成される。たとえば、通信インターフェース36がUSBポートである場合には、外部の装置をUSBポートに接続することによって、第1管理装置30と外部の装置との通信が可能となる。たとえば、通信インターフェース36がNFCリーダライタである場合には、外部の装置をNFCリーダライタにかざすことにより、電磁誘導または電磁結合を用いて、NFCリーダライタと外部の装置との通信が可能となる。
ディスプレイ37は、たとえば、液晶ディスプレイである。ディスプレイ37は、種々の情報を表示する。たとえば、ディスプレイ37は、現行の共通鍵のバージョン情報を表示したり、ビーコン装置10および受信装置20の共通鍵の更新状況等の各種の情報を表示したりする。
CPU31は、記憶装置32に格納された各種プログラムを実行することで第1管理装置30の各種の処理を制御する。具体的な一例として、各種プログラムを実行することによりCPU31は、鍵生成部311、接続確立部312、送信部313および更新管理部314として機能する。
鍵生成部311は、第1管理装置30に対して行なわれた更新操作(たとえば、共通鍵の更新コマンドの入力)に基づいて、新たな共通鍵を生成する。たとえば、第1管理装置30の管理者が、更新周期毎に更新操作を行なう。更新周期は、たとえば、1週間や1ヶ月等に設定される。
接続確立部312は、第1管理装置30に対して行なわれる更新対象の選択操作に従って、通信装置35を介して、選択されたビーコン装置10に接続要求を送信する。接続確立部312は、通信装置35を介して、接続要求を送信したビーコン装置10から接続応答を受信すると、当該ビーコン装置10との間でBLE通信を確立させる。
送信部313は、新たな共通鍵が生成された場合に、ネットワーク通信装置34を介して、複数の受信装置20(受信装置20-1,20-2,…)の各々に生成された共通鍵を送信する。共通鍵の送信には、たとえば、SSH(Secure Shell)を用いたSFTP(SSH File Transfer Protocol)通信、またはSCP(Secure Copy Protocol)通信が適用される。
また、送信部313は、BLE通信が確立されたビーコン装置10に、通信装置35を介して、新たな共通鍵を送信する。
更新管理部314は、複数のビーコン装置10(ビーコン装置10-1,10-2,…)の各々、および、複数の受信装置20(受信装置20-1,20-2,…)の各々の共通鍵の更新状況を管理する。更新管理部314は、複数のビーコン装置10(ビーコン装置10-1,10-2,…)の各々、および、複数の受信装置20(受信装置20-1,20-2,…)の各々の共通鍵の更新状況を管理情報として管理し、たとえば、当該管理情報を更新管理表としてディスプレイ37に表示させる。
図6は、更新管理表の一例を説明するための図である。図6を参照して、更新管理表には、ビーコン装置10の装置IDと、装置IDを有するビーコン装置10に記憶された共通鍵のバージョン情報とが示されている。具体的には、ビーコン装置10-1(装置ID:10-1)には共通鍵51が記憶されており、ビーコン装置10-2(装置ID:10-2)には、共通鍵50が記憶されていることが示されている。また、更新管理表には、受信装置20の受信装置IDと、受信装置IDを有する受信装置20に記憶された共通鍵のバージョン情報とが示されている。具体的には、受信装置20-1(受信装置ID:20-1)および受信装置20-2(受信装置ID:20-2)には、共通鍵50および共通鍵51が記憶されていることが示されている。
具体的な一例として、新たに生成された共通鍵51が、送信部313によって複数の受信装置20(受信装置20-1,20-2,…)の各々に送信されると、更新管理部314は、複数の受信装置20(受信装置20-1,20-2,…)の各々の管理情報を更新する。より具体的には、更新管理部314は、受信装置20の各々が保持している共通鍵のバージョン情報を「共通鍵50,51」に更新する。なお、複数の受信装置20(受信装置20-1,20-2,…)の各々は、第1管理装置30から新たな共通鍵を受信した場合において、新たな共通鍵を記憶すると、新たな共通鍵を記憶したことの応答を第1管理装置30に送信するように構成されてもよい。この場合には、第1管理装置30は、当該応答に基づいて、複数の受信装置20(受信装置20-1,20-2,…)の各々の管理情報を更新してもよい。
また、更新管理部314は、新たに生成された共通鍵51が、送信部313によってビーコン装置10に送信されると、更新管理部314は、当該ビーコン装置10の管理情報を更新する。より具体的には、更新管理部314は、たとえば、新たに生成された共通鍵51がビーコン装置10-1に送信された場合には、ビーコン装置10-1が保持している共通鍵のバージョン情報を「共通鍵50」から「共通鍵51」に更新する。なお、ビーコン装置10は、第1管理装置30から新たな共通鍵を受信した場合において、新たな共通鍵を記憶すると、新たな共通鍵を記憶したことの応答を第1管理装置30に送信するように構成されてもよい。この場合には、第1管理装置30は、当該応答に基づいて、ビーコン装置10の管理情報を更新してもよい。
<生体情報の暗号化および復号の手順>
図7は、生体情報の暗号化および復号の手順を示すフローチャートである。図7に示すフローチャートの処理は、上述の所定周期毎にビーコン装置10により開始される。ビーコン装置10は、所定周期毎にアドバタイズパケットを生成して、生成されたアドバタイズパケットをブロードキャスト送信する。
所定周期が到来すると、ビーコン装置10は、乗員2の生体情報を検知し、共通鍵を用いて、生体情報を暗号化する(ステップ1、以下ステップを「S」と略す)。
ビーコン装置10は、S1において暗号化された生体情報を、アドバタイズパケットの暗号化領域に格納する(S3)。
ビーコン装置10は、S1において生体情報の暗号化に用いた共通鍵のバージョン情報を、アドバタイズパケットの非暗号化領域に格納する(S5)。
S1~S5の処理を実行してアドバタイズパケットを生成すると、ビーコン装置10は、アドバタイズパケットをブロードキャスト送信する(S7)。
受信装置20は、アドバタイズパケットを受信するまで待機する(S11においてNO)。アドバタイズパケットを受信すると(S11においてYES)、受信装置20は、アドバタイズパケットの受信強度を特定して受信強度情報として記憶する(S13)。また、受信装置20は、アドバタイズパケットの受信時刻を受信時刻情報として記憶する(S13)。
次いで、受信装置20は、受信したアドバタイズパケットの非暗号化領域から、生体情報の暗号化に用いられた共通鍵のバージョン情報を読み出す。そして、バージョン情報に基づいて、復号に用いる共通鍵を特定する(S15)。
受信装置20は、S15で特定した共通鍵を記憶装置22から読み出し、読み出した共通鍵を用いてアドバタイズパケットの暗号化領域に格納された、暗号化された生体情報を復号する(S17)。また、受信装置20は、アドバタイズパケットに格納されたビーコン装置10の装置IDを読み出す。
受信装置20は、復号された生体情報、ビーコン装置10の装置ID、受信強度情報、受信時刻情報、および受信装置IDの情報を、第2管理装置40に送信する(S19)。
<共通鍵の更新処理の手順>
<<受信装置の共通鍵の更新>>
図8は、受信装置20および第1管理装置30で実行される共通鍵の更新の手順を示すフローチャートである。図8に示すフローチャートは、第1管理装置30に対して更新操作が行なわれた場合に開始される。なお、上述のとおり、更新操作は、更新周期が到来した際に、たとえば、第1管理装置30の管理者により行なわれる。
共通鍵の更新操作が行なわれると、第1管理装置30は、新たな共通鍵を生成する(S21)。具体的な一例としては、第1管理装置30は、新たに共通鍵51を生成する。そして、第1管理装置30は、これまで現行の共通鍵として管理していた共通鍵50に代えて、共通鍵51を現行の共通鍵として管理する。
次いで、第1管理装置30は、生成した共通鍵51を受信装置20に送信する(S23)。生成した共通鍵51を送信すると、第1管理装置30は、共通鍵の管理情報(更新管理表として表示される情報)を更新する(S25)。具体的には、第1管理装置30は、管理情報における、受信装置20に記憶されている共通鍵の情報を、共通鍵50,51に更新する。
受信装置20は、共通鍵51を受信すると、共通鍵51を新たに記憶する(S31)。具体的には、受信装置20は、受信した共通鍵51を現行の共通鍵として記憶する。また、受信装置20は、現行の共通鍵として記憶していた共通鍵50を1つ前のバージョンの共通鍵として保持する。
なお、受信装置20は、共通鍵51を記憶した場合に、共通鍵51を記憶したことの応答を第1管理装置30に送信するようにしてもよい。この場合には、第1管理装置30は、受信装置20から受けた応答に基づいて、S25の処理を実行する。
<<ビーコン装置の共通鍵の更新>>
図9は、ビーコン装置10および第1管理装置30で実行される共通鍵の更新の手順を示すフローチャートである。図9に示すフローチャートは、第1管理装置30に対して更新対象の選択操作が行なわれた場合、すなわち、第1管理装置30に対して、特定のビーコン装置10(たとえばビーコン装置10-1)の共通鍵を更新するための操作が行なわれた場合に開始される。
第1管理装置30に対して更新対象の選択操作(たとえばビーコン装置10-1を選択)が行なわれると、第1管理装置30は、ビーコン装置10(ビーコン装置10-1)に接続要求を送信する(S41)。
ビーコン装置10(ビーコン装置10-1)は、接続要求を受けるまでは、通信モードを第1モードにして、アドバタイズパケットをブロードキャスト送信している(S51)。接続要求を受信すると(S52においてYES)、ビーコン装置10は、通信モードを第2モードにする(S53)。
次いで、ビーコン装置10と第1管理装置30との間で、リンクキーによる相互認証が行なわれる(S43,S54)。相互認証が成功すると、ビーコン装置10と第1管理装置30との間でBLE通信が確立される。
第1管理装置30は、BLE通信により、新たな共通鍵をビーコン装置10に送信する(S45)。新たな共通鍵(共通鍵51)をビーコン装置10に送信すると、第1管理装置30は、管理情報を更新する(S47)。具体的には、ビーコン装置10(ビーコン装置10-1)が有する共通鍵のバージョン情報を更新する。
ビーコン装置10は、第1管理装置30から共通鍵を受信すると、自身が有している共通鍵を、受信した共通鍵に更新する(S55)。共通鍵の更新が完了すると、ビーコン装置10は、通信モードを第2モードから第1モードに切り替える(S56)。以降においては、ビーコン装置10は、ブロードキャスト送信するアドバタイズパケットの生成において、更新した共通鍵を用いて生体情報を暗号化する。
なお、ビーコン装置10は、第1管理装置30から受信した共通鍵を記憶した場合に、当該共通鍵を記憶したことの応答を第1管理装置30に送信するようにしてもよい。この場合には、第1管理装置30は、ビーコン装置10から受けた応答に基づいて、S47の処理を実行する。
<利点>
以上のように、実施の形態1に係る通信システム1において、受信装置20は、現行の共通鍵に加えて、1つ前のバージョンの共通鍵を保持する。第1管理装置30が共通鍵を更新した場合、通信ケーブル45を介して全台の受信装置20(受信装置20-1,20-2,…)の共通鍵が一括して更新される一方で、ビーコン装置10は、BLE通信により共通鍵を更新するため、1台ずつ共通鍵が更新される。そのため、受信装置20の共通鍵が更新されてから、全台のビーコン装置10(ビーコン装置10-1,10-2,…)の共通鍵の更新が完了するまでの間、複数のビーコン装置10(ビーコン装置10-1,10-2,…)には、現行(最新バージョン)の共通鍵を有するものと、1つ前のバージョンの共通鍵を有するものとが混在する。受信装置20が上述の2つの共通鍵を保持することによって、いずれの共通鍵を有するビーコン装置10からのアドバタイズパケットも復号することが可能となる。これにより、全台のビーコン装置10(ビーコン装置10-1,10-2,…)の共通鍵の更新が完了するまでの間における情報の欠落を抑制することができる。
さらに、実施の形態1に係る通信システム1において、ビーコン装置10は、ブロードキャスト送信するアドバタイズパケットに、生体情報の暗号化に用いた共通鍵のバージョン情報を含ませる。より具体的には、ビーコン装置10は、共通鍵を用いて暗号化した生体情報をアドバタイズパケットの暗号化領域に格納し、暗号化に用いた共通鍵のバージョン情報をアドバタイズパケットの非暗号化領域に格納し、アドバタイズパケットをブロードキャスト送信する。アドバタイズパケットの非暗号化領域に暗号化に用いた共通鍵のバージョン情報が格納されていることにより、アドバタイズパケットを受信した受信装置20は、生体情報の暗号化に用いられた共通鍵を特定することができる。すなわち、受信装置20は、暗号化された生体情報の復号に用いるべき共通鍵を特定することができる。これにより、たとえば受信装置20が複数の共通鍵を用いて暗号化された生体情報の復号を試みるような場合に比べ、データ処理の速度を向上させることができる。
また、実施の形態1に係る通信システム1において、更新周期毎に通信システム1で用いられる共通鍵が更新される。これにより、仮に意図しない者に共通鍵が漏洩したとしても、セキュリティ上の問題を一時的なものとすることができ、通信システム1のセキュリティを担保することができる。
さらに、受信装置20は、共通鍵が次に更新されるまで2つの共通鍵を保持し続ける。たとえば、全台のビーコン装置10(ビーコン装置10-1,10-2,…)の共通鍵の更新が完了したタイミングで、第1管理装置30から受信装置20に、1つ前のバージョンの共通鍵を削除する指令を送信することも可能である。しかしながら、実施の形態1に係る通信システム1においては、共通鍵が次に更新されるまで2つの共通鍵を保持し続けるようにすることによって、第1管理装置30と受信装置20との通信回数を削減し、情報漏洩等を抑制することができる。さらに、共通鍵の更新時に限り、第1管理装置30を通信ケーブル45に接続するようにすることもできる。共通鍵の更新時以外は、第1管理装置30をネットワークから切り離しておくことができるので、通信システム1のセキュリティを高めることができる。
なお、実施の形態1に係る通信システム1において、ビーコン装置10と第1管理装置30との間の通信には、BLE規格に従う通信プロトコルが用いられる例について説明したが、BLE規格に従う通信プロトコルに代えて、他の通信プロトコルが用いられてもよい。
[変形例1]
実施の形態1においては、ビーコン装置10の共通鍵の更新において、BLE通信により第1管理装置30からビーコン装置10に共通鍵が送信される例について説明した。ビーコン装置10の共通鍵の更新には、たとえば、第1管理装置30の通信インターフェース36が用いられてもよい。
たとえば、乗員2は、更新周期が到来すると、通信インターフェース36を用いて、自身の有するビーコン装置10を第1管理装置30に接続する。そして、たとえば、当該乗員2あるいは第1管理装置30の管理者の第1管理装置30に対する操作によって、通信インターフェース36を介して第1管理装置30からビーコン装置10に共通鍵が送信される。
このように、変形例1のような構成であっても、ビーコン装置10の共通鍵を適切に更新することができる。
[実施の形態2]
実施の形態1においては、通信システム1の共通鍵の更新は、更新周期毎に第1管理装置30の管理者が更新操作を行なうことにより開始された。また、ビーコン装置10の共通鍵の更新においても、更新周期が到来した際に乗員2が第1管理装置30のところ(第1管理装置30とBLE通信可能なところ)までビーコン装置10を持っていき、第1管理装置30に対して更新対象の選択操作を行なうことにより開始された。しかしながら、一連の共通鍵の更新は自動で行なうことも可能である。
図10は、実施の形態2に係る通信システム1Aの全体構成を模式的に示す図である。通信システム1Aは、複数のビーコン装置10A(ビーコン装置10A-1,10A-2,…)と、複数の受信装置20A(受信装置20A-1,20A-2,…)と、第1管理装置30Aと、第2管理装置40と、通信ケーブル45とを備える。実施の形態2に係る通信システム1Aは、実施の形態1に係る通信システム1に対して、複数のビーコン装置10(ビーコン装置10-1,10-2,…)を複数のビーコン装置10A(ビーコン装置10A-1,10A-2,…)に、複数の受信装置20(受信装置20-1,20-2,…)を複数の受信装置20A(受信装置20A-1,20A-2,…)に、第1管理装置30を第1管理装置30Aにそれぞれ変更したものである。通信システム1Aの第2管理装置40および通信ケーブル45については、通信システム1の第2管理装置40および通信ケーブル45と同様であるため、同じ番号を付し、その説明は繰り返さない。
通信システム1Aにおいては、更新周期毎に共通鍵が自動で更新される。具体的には、第1管理装置30Aは、更新周期毎に新たな共通鍵を生成する。そして、第1管理装置30Aは、生成した共通鍵を通信ケーブル45を介して複数の受信装置20A(受信装置20A-1,20A-2,…)に送信する。複数の受信装置20A(受信装置20A-1,20A-2,…)の各々は、第1管理装置30から共通鍵を受信すると、当該共通鍵を現行の共通鍵として記憶する。
ビーコン装置10Aは、実施の形態1に係るビーコン装置10と同様、充電可能なバッテリを動力源とする携帯型のビーコン装置である。実施の形態2に係るビーコン装置10Aは、単方向通信する第3モードと双方向通信する第4モードとの2つの通信モードを有する。ビーコン装置10Aの通信モードは第3モードがデフォルトとなっている。第3モードにおいてビーコン装置10Aは、アドバタイズパケットを電波60によってブロードキャスト送信する。ビーコン装置10Aは、共通鍵を用いて乗員2の生体情報を暗号化し、アドバタイズパケットの暗号化領域に格納する。また、ビーコン装置10Aは、生体情報の暗号化に用いた共通鍵のバージョン情報をアドバタイズパケットの非暗号化領域に格納する。また、ビーコン装置10Aは、ビーコン装置10Aを識別する装置IDの情報をアドバタイズパケットの非暗号化領域に格納する。なお、ビーコン装置10Aは、共通鍵を用いて装置IDの情報を暗号化し、暗号化された装置IDの情報をアドバタイズパケットの暗号化領域に格納してもよい。
ビーコン装置10Aは、共通鍵を更新する場合に、通信モードを第4モードに切り替えて、受信装置20Aとの間で双方向通信し、電波62(図11)によって受信装置20Aから共通鍵を取得する。すなわち、実施の形態2に係るビーコン装置10Aは、受信装置20Aを介して、新たな共通鍵を受け取る。ビーコン装置10Aは、受信装置20Aから共通鍵を受け取ると、共通鍵を更新する。通信モードの切り替えが行なわれる上記の「共通鍵を更新する場合」とは、たとえば、ビーコン装置10Aが充電器80(図11)に接続された場合である。後述するように、ビーコン装置10Aは、充電器80に接続された場合に、通信モードを第3モードから第4モードに切り替える。
受信装置20Aは、ビーコン装置10からブロードキャスト送信されるアドバタイズパケットを受信可能に構成される。受信装置20Aは、実施の形態1に係る受信装置20と同様に、2つの共通鍵(図10に示す例においては共通鍵50,51)を保持する。アドバタイズパケットを受信すると、受信装置20Aは、アドバタイズパケットの非暗号化領域に含まれる共通鍵のバージョン情報に基づいて、生体情報の暗号化に用いられた共通鍵を特定する。受信装置20Aは、特定した共通鍵を用いて、暗号化された生体情報を復号する。そして、受信装置20Aは、復号された生体情報およびビーコン装置10Aの装置IDの情報に加えて、アドバタイズパケットの受信強度を示す受信強度情報と、受信時刻を示す受信時刻情報と、受信装置IDの情報とを、無線通信により第2管理装置40に送信する。
第1管理装置30Aは、上述のとおり、更新周期毎に新たな共通鍵を生成する(たとえば図10に示す共通鍵51)。第1管理装置30Aは、生成した共通鍵51を、通信ケーブル45を介して複数の受信装置20(受信装置20-1,20-2,…)に一括して送信する。これにより、全台の受信装置20(受信装置20-1,20-2,…)の共通鍵が一括して更新される。具体的には、複数の受信装置20(受信装置20-1,20-2,…)の各々が、共通鍵51を現行の共通鍵として記憶するとともに、共通鍵50を1つ前のバージョンの共通鍵として保持する。
図11は、ビーコン装置10Aの共通鍵の更新を説明するための図である。ビーコン装置10Aは、充電器80に接続されると、通信モードを第3モードから第4モードに切り替える。充電器80は、ビーコン装置10Aのバッテリ16A(図12)を充電するための充電器である。第4モードにおいてビーコン装置10Aは、受信装置20Aとの間で双方向通信し、電波62によって受信装置20Aから共通鍵51を取得する。これによって、ビーコン装置10Aの共通鍵が、共通鍵50から共通鍵51に更新される。
なお、複数のビーコン装置10A(ビーコン装置10A-1,10A-2,…)の各々と、複数の受信装置20A(受信装置20A-1,20A-2,…)の各々とは、BLE規格におけるペアリングを予め行なっておくことができる。予めペアリングを行なっておけば、ビーコン装置10Aと受信装置20Aとの双方向通信が確立される際に、ペアリングが行なわれた際に生成されたリンクキーによる相互認証が行なわれる。そして、双方向通信において、リンクキーを用いた情報の暗号化および復号が行なわれる。これによって、双方向通信において、セキュアな通信を行なうことができる。
なお、ビーコン装置10A-1,10A-2,…の各々は、本開示に係る「第1装置」の一例に相当する。また、受信装置20A-1,20A-2,…の各々は、本開示に係る「第2装置」の一例に相当する。また、第1管理装置30Aは、本開示に係る「第3装置」の一例に相当する。
以下、通信システム1Aに含まれる、ビーコン装置10A、受信装置20Aおよび第1管理装置30Aの各構成の詳細について順に説明する。
<ビーコン装置の構成>
図12は、実施の形態2に係るビーコン装置10Aの構成を示すブロック図である。図3を参照して、ビーコン装置10Aは、CPU(Central Processing Unit)11Aと、記憶装置12Aと、RAM13Aと、通信装置14Aと、生体センサ15Aと、バッテリ16Aとを含む。
記憶装置12A、RAM13A、生体センサ15Aおよびバッテリ16Aについては、実施の形態1に係るビーコン装置10の記憶装置12、RAM13、生体センサ15およびバッテリ16とそれぞれ同様であるため、その説明は繰り返さない。
通信装置14Aは、通信モードとして、単方向通信する第3モード、および双方向通信する第4モードを有する。通信装置14Aは、CPU11Aからの指令に従って、第3モードおよび第4モードを切り替えるように構成される。
第3モードにおいて通信装置14Aは、CPU11Aからの指令に従って、アドバタイズパケットを設定された所定周期でブロードキャスト送信する。上記の所定周期は、BLE規格で定められており、20ms~10.24sの範囲で0.625msの整数倍である。通信装置14Aは、たとえば約1sごとにアドバタイズパケットを送信する。
アドバタイズパケットは、ビーコン装置10Aを識別する装置IDの情報、および、コネクション可否を示す情報を含む。コネクション可否を示す情報が「コネクション可」に設定されていると、当該アドバタイズパケットを受信した受信装置20Aから接続要求が出力され、ビーコン装置10Aと受信装置20Aとの間で双方向通信が確立される。一方、コネクション可否を示す情報が「コネクション否」に設定されていると、当該アドバタイズパケットを受信した受信装置20Aから接続要求が出力されず、ビーコン装置10Aと受信装置20Aとの間で双方向通信は確立されない。通信モードが第3モードである場合には、通信装置14Aは、コネクション可否を示す情報を、「コネクション否」に設定する。
第4モードにおいて通信装置14Aは、第3モードと同様の所定周期でアドバタイズパケットをブロードキャスト送信する。通信モードが第4モードである場合には、通信装置14Aは、アドバタイズパケット中のコネクション可否を示す情報を、「コネクション可」に設定する。そして、受信装置20Aから接続要求を受信した場合には、通信装置14Aは、アドバタイズパケットの送信を停止して、当該受信装置20Aとの間で双方向通信(たとえばBLE通信)を確立する。双方向通信を確立した後には、通信装置14Aは、受信装置20Aとの間でデータの送受信を行なう。
CPU11Aは、記憶装置12Aに格納された各種プログラムを実行することでビーコン装置10Aの各種の処理を制御する。具体的な一例としては、各種プログラムを実行することによりCPU11Aは、通信制御部111A、暗号化部112A、生成部113Aおよび更新部114Aとして機能する。なお、暗号化部112A、生成部113Aおよび更新部114Aは、実施の形態1に係るCPU11の暗号化部112、生成部113および更新部114と同様であるため、その説明は繰り返さない。
通信制御部111Aは、通信装置14Aの通信モードを制御する。具体的には、通信制御部111Aは、デフォルトでは、通信装置14Aの通信モードを第3モードに制御する。通信制御部111Aは、ビーコン装置10Aの共通鍵を更新する場合に、通信装置14Aの通信モードを第3モードから第4モードに切り替える。すなわち、ビーコン装置10Aの「共通鍵を更新する場合」を条件として、条件が成立した際に、通信モードが第3モードから第4モードに切り替えられる。実施の形態2に係る条件は、上述したとおり、ビーコン装置10Aが充電器80に接続されたことである。また、通信制御部111Aは、ビーコン装置10Aの共通鍵の更新が完了すると、通信装置14Aの通信モードを第4モードから第3モードに切り替える。なお、条件は上記に限られるものではなく、たとえば、更新間隔を予め定めておき、ビーコン装置10Aの共通鍵が前回更新されてから、所定時間が経過したこと等であってもよい。条件は、通信システム1Aが適用される対象に応じて適切に設定することができる。
<受信装置の構成>
図13は、実施の形態2に係る受信装置20Aの構成を示すブロック図である。図13を参照して、受信装置20Aは、CPU21Aと、記憶装置22Aと、RAM23Aと、第1通信装置24Aと、第2通信装置25Aと、第3通信装置26Aとを含む。記憶装置22A、RAM23Aおよび第3通信装置26Aについては、実施の形態1に係る受信装置20の記憶装置22、RAM23および第3通信装置26と同様であるため、繰り返し説明しない。
第1通信装置24Aには、通信ケーブル45(図10参照)が接続されている。第1通信装置24Aは、通信ケーブル45を介して、第1管理装置30Aとの間でデータの送受信が可能に構成される。
第2通信装置25Aは、ビーコン装置10がブロードキャスト送信するアドバタイズパケットを受信可能に構成される。第2通信装置25Aは、受信したアドバタイズパケット中のコネクション可否を示す情報がコネクション可に設定されている場合、アドバタイズパケットに含まれる装置IDから特定されるビーコン装置10Aに対して、接続要求を送信する。
第2通信装置25Aは、ビーコン装置10Aとの間で双方向通信が確立されると、ビーコン装置10Aに共通鍵を送信可能に構成される。
CPU21Aは、記憶装置22Aに格納された各種プログラムを実行することで受信装置20Aの各種の処理を制御する。具体的な一例として、各種プログラムを実行することによりCPU21Aは、特定部211A、復号部212A、更新部213A、送信部214Aおよび照合部215Aとして機能する。なお、復号部212Aおよび更新部213Aについては、実施の形態1に係るCPU21の復号部212および更新部213と同様であるため、繰り返し説明しない。
特定部211Aは、受信したアドバタイズパケットに含まれている装置IDからビーコン装置10Aを特定する。
また、特定部211Aは、受信したアドバタイズパケットに格納された生体情報の暗号化に用いられた共通鍵のバージョンを特定する。具体的には、特定部211Aは、受信したアドバタイズパケットの非暗号化領域から、共通鍵のバージョン情報を読み出す。特定部211Aは、読み出したバージョン情報に基づいて、生体情報の暗号化に用いられた共通鍵を特定する。
照合部215Aは、受信したアドバタイズパケットに含まれる共通鍵のバージョン情報が最新であるか否か(現行のものである否か)を照合する。具体的には、照合部215Aは、受信したアドバタイズパケットの非暗号化領域に格納されたバージョン情報と、記憶装置22Aに記憶されている現行の共通鍵のバージョン情報とを照合させる。両者のバージョンが同じである場合には、照合部215Aは、アドバタイズパケットを送信したビーコン装置10Aは現行(最新)の共通鍵を有していると判定する。一方、両者のバージョンが異なる場合には、照合部215Aは、アドバタイズパケットを送信したビーコン装置10Aが現行(最新)の共通鍵を有していないと判定する。
送信部214Aは、照合部215Aによってアドバタイズパケットを送信したビーコン装置10Aの共通鍵が現行のものではないと判定された場合に、第2通信装置25Aを介して、ビーコン装置10Aに現行の共通鍵を送信する。
また、送信部214Aは、ビーコン装置10Aに共通鍵を送信すると、ビーコン装置10Aの共通鍵を更新したことを示す情報を、第1通信装置24Aを介して、第1管理装置30Aに送信する。ビーコン装置10Aの共通鍵を更新したことを示す情報には、ビーコン装置10Aの装置IDの情報、および当該ビーコン装置10Aに送信した共通鍵のバージョン情報が含まれる。なお、ビーコン装置10Aは、受信装置20Aから共通鍵を受信して共通鍵を更新すると、共通鍵を更新した旨の応答を受信装置20Aに送信するように構成されてもよい。この場合には、送信部214Aは、当該応答に基づいて、ビーコン装置10Aの共通鍵を更新したことを示す情報を第1管理装置30Aに送信すればよい。
また、送信部214Aは、復号された生体情報、ビーコン装置10Aの装置ID、受信強度情報、受信時刻情報、および受信装置IDの情報を、第3通信装置26Aを介して第2管理装置40に送信する。
<第1管理装置の構成>
図14は、実施の形態2に係る第1管理装置30Aの構成を示すブロック図である。図14を参照して、第1管理装置30Aは、CPU31Aと、記憶装置32Aと、RAM33Aと、ネットワーク通信装置34Aと、通信インターフェース36Aと、ディスプレイ37Aとを含む。記憶装置32A、RAM33A、ネットワーク通信装置34A、通信インターフェース36Aおよびディスプレイ37Aについては、実施の形態1に係る第1管理装置30Aの記憶装置32、RAM33、ネットワーク通信装置34、通信インターフェース36およびディスプレイ37と同様であるため、繰り返し説明しない。
CPU31Aは、記憶装置32Aに格納された各種プログラムを実行することで第1管理装置30Aの各種の処理を制御する。具体的な一例として、各種プログラムを実行することによりCPU31Aは、鍵生成部311A、送信部313Aおよび更新管理部314Aとして機能する。
鍵生成部311Aは、更新周期毎に新たな共通鍵を生成する。更新周期は、通信システム1Aが適用される対象に応じて適宜設定することが可能である。実施の形態2における更新周期は、たとえば、1週間または1ヶ月等に設定される。また、更新周期は、ビーコン装置10Aのバッテリの連続駆動時間を考慮して定められてもよい。たとえば、更新周期は、ビーコン装置10Aを第3モードで連続使用した場合に、バッテリ16AのSOCが満充電(SOC100%)から閾SOCまで減少する時間よりも、短くなるように設定されてもよい。閾SOCは、バッテリ切れを起こさないように適宜設定することができる。また、更新周期を定めるにあたり演算に用いられる第3モードでのビーコン装置10Aの消費電力は、たとえば仕様上の消費電力を用いてもよいし、実験等における実測値を用いてもよい。
送信部313Aは、新たな共通鍵が生成された場合に、ネットワーク通信装置34Aを介して、複数の受信装置20A(受信装置20A-1,20A-2,…)の各々に生成された共通鍵を送信する。共通鍵の送信には、たとえば、SSHを用いたSFTP通信、またはSCP通信が適用される。
更新管理部314Aは、複数のビーコン装置10A(ビーコン装置10A-1,10A-2,…)の各々、および、複数の受信装置20A(受信装置20A-1,20A-2,…)の各々の共通鍵の更新状況を管理する。更新管理部314Aは、複数のビーコン装置10A(ビーコン装置10A-1,10A-2,…)の各々、および、複数の受信装置20A(受信装置20A-1,20A-2,…)の各々の共通鍵の更新状況を管理情報として管理し、たとえば、当該管理情報を更新管理表(図6)としてディスプレイ37Aに表示させる。
更新管理部314Aは、新たに生成された共通鍵が、送信部313Aによって複数の受信装置20A(受信装置20A-1,20A-2,…)の各々に送信されると、複数の受信装置20A(受信装置20A-1,20A-2,…)の各々の管理情報を更新する。また、受信装置20Aからビーコン装置10Aの共通鍵を更新したことを示す情報を受信すると、更新管理部314Aは、ビーコン装置10Aの管理情報を更新する。
<生体情報の暗号化および復号の手順>
図15は、生体情報の暗号化および復号の手順を示すフローチャートである。図15に示すフローチャートの処理は、所定周期毎にビーコン装置10Aにより開始される。図15のフローチャートの処理は、図7のフローチャートの処理と同様である。具体的には、図15のフローチャートのS61からS67の処理は、図7のフローチャートのS1からS7の処理とそれぞれ同様の処理である。また、図15のフローチャートのS71からS79の処理は、図7のフローチャートのS11からS19の処理とそれぞれ同様の処理である。そのため、図15のフローチャートの処理の詳細については、繰り返し説明しない。
<共通鍵の更新処理の手順>
<<受信装置の共通鍵の更新>>
図16は、受信装置20Aおよび第1管理装置30Aで実行される共通鍵の更新の手順を示すフローチャートである。図16に示すフローチャートは、第1管理装置30Aにより所定の制御周期毎に繰り返し実行される。
第1管理装置30Aは、共通鍵の更新周期が到来したか否かを判定する(S81)。共通鍵の更新周期が到来していない場合には(S81においてNO)、第1管理装置30Aは、処理をリターンに移す。
共通鍵の更新周期が到来した場合には(S81においてYES)、第1管理装置30Aは、新たな共通鍵を生成する(S83)。
そして、第1管理装置30Aは、生成された共通鍵を受信装置20Aに送信する(S85)。生成された共通鍵を送信すると、第1管理装置30Aは、共通鍵の管理情報(更新管理表として表示される情報)を更新する(S87)。
受信装置20Aは、共通鍵を受信すると、受信した共通鍵を記憶する(S91)。具体的には、受信装置20Aは、受信した共通鍵を現行の共通鍵として記憶する。また、受信装置20Aは、現行の共通鍵として記憶していた共通鍵を1つ前のバージョンの共通鍵として保持する。
なお、受信装置20Aは、第1管理装置30Aから受信した共通鍵を記憶した場合に、当該共通鍵を記憶したことの応答を第1管理装置30Aに送信するようにしてもよい。この場合には、第1管理装置30Aは、受信装置20Aから受けた応答に基づいて、S87の処理を実行する。
<<ビーコン装置の共通鍵の更新>>
図17は、ビーコン装置10A、受信装置20Aおよび第1管理装置30Aで実行される共通鍵の更新の手順を示すフローチャートである。図17のフローチャートは、ビーコン装置10Aが充電器80に接続された場合に開始される。
充電器80に接続されると、ビーコン装置10Aは、通信モードを第3モードから第4モードに切り替える(S101)。具体的には、ビーコン装置10Aは、通信モードを第4モードに切り替えて、アドバタイズパケット中のコネクション可否を示す情報を、コネクション可に変更する。そして、ビーコン装置10Aは、アドバタイズパケットを送信する(S102)。また、ビーコン装置10Aは、アドバタイズパケットを送信すると、内蔵のタイマをリセットし、新たなタイムカウントを開始する(S103)。
受信装置20Aは、アドバタイズパケットを受信したか否かを判定する(S111)。受信装置20Aは、アドバタイズパケットを受信すると(S111においてYES)、アドバタイズパケット中のコネクション可否を示す情報がコネクション可に設定されているか否かを判定する(S112)。コネクション可否を示す情報がコネクション否に設定されている場合(S112においてNO)、受信装置20Aは、当該処理を終了させる。なお、この場合においても、受信装置20Aは、図15のフローチャートの処理を実行する。
コネクション可否を示す情報がコネクション可に設定されている場合(S112においてYES)、受信装置20Aは、アドバタイズパケットの非暗号化領域に格納されている共通鍵のバージョン情報に基づいて、ビーコン装置10Aの共通鍵が現行の共通鍵であるか否かを判定する(S113)。具体的には、ビーコン装置10Aの共通鍵のバージョンと、記憶装置22Aに格納されている現行の共通鍵のバージョンとを比較する。
ビーコン装置10Aの共通鍵が現行の共通鍵である場合には(S113においてYES)、受信装置20Aは、ビーコン装置10Aの共通鍵を更新する必要がないので、処理を終了させる。
一方、ビーコン装置10Aの共通鍵が現行の共通鍵でない場合には(S113においてNO)、受信装置20Aは、アドバタイズパケットに含まれる端末IDの情報に基づいて、ビーコン装置10Aを特定する。そして、受信装置20Aは、特定したビーコン装置10Aに接続要求を送信する(S114)。
ビーコン装置10Aは、受信装置20Aから接続要求を受けるのを待つ(S104,S105)。アドバタイズパケットを送信してから(新たなタイムカウントを開始してから)、接続要求を受けることなく予め定められた規定時間が経過した場合には(S104においてYES)、ビーコン装置10Aは、タイムアウトと判定し、処理をS108に進める。
ビーコン装置10Aは、タイムアウトするまでに(S104においてNO)、接続要求を受信すると(S105においてYES)、受信装置20Aとの接続を確立させる(S106,S115)。すなわち、ビーコン装置10Aと受信装置20Aとの双方向通信が確立される。
ビーコン装置10Aと受信装置20Aとの双方向通信が確立されると、受信装置20Aは、記憶装置22Aに記憶されている現行の共通鍵をビーコン装置10Aに送信する(S116)。
受信装置20Aから共通鍵を受信すると、ビーコン装置10Aは、共通鍵を更新する(S107)。たとえば、受信装置20Aから共通鍵51を受信すると、ビーコン装置10Aは、記憶装置12Aに記憶されている共通鍵50を削除するとともに、共通鍵51を記憶する。
ビーコン装置10Aは、共通鍵を更新すると、通信モードを第3モードに切り替えて、再びアドバタイズパケットをブロードキャスト送信する(S108)。なお、以降においてビーコン装置10は、共通鍵51を用いて暗号化した生体情報および共通鍵51のバージョン情報をアドバタイズパケットに格納する。
ビーコン装置10Aに共通鍵を送信すると、受信装置20Aは、ビーコン装置10Aの共通鍵を更新したことを示す情報(更新情報)を第1管理装置30Aに送信する(S117)。更新情報には、ビーコン装置10Aの装置IDの情報および共通鍵のバージョン情報が含まれる。なお、ビーコン装置10Aは、共通鍵を更新すると、共通鍵を更新した旨の応答を受信装置20Aに送信するように構成されてもよい。この場合には、受信装置20Aは、当該応答に基づいて、ビーコン装置10Aの共通鍵を更新したことを示す情報を第1管理装置30Aに送信すればよい。
第1管理装置30Aは、受信装置20Aからビーコン装置10Aの共通鍵を更新したことを示す情報(更新情報)を取得すると、取得した更新情報に基づいて、管理情報を更新する(S120)。第1管理装置30Aは、たとえば、更新した管理情報を、ディスプレイ37Aに更新管理表として表示させる。
なお、上述のS113の処理は省略することも可能である。この場合には、ビーコン装置10Aの共通鍵が現行の共通鍵であるか否かに関わらず、ビーコン装置10Aと受信装置20Aとの双方向通信が確立されて、受信装置20Aからビーコン装置10Aに共通鍵が送信される。
また、上記ではタイムアウトした場合に処理をS108に進めて、ビーコン装置10Aの通信モードを第4モードから第3モードに切り替えて処理を終了させたが、たとえば、タイムカウントは行なわずに、ビーコン装置10Aと充電器80との接続が解除された際に、割り込み処理等により、通信モードを第4モードから第3モードに切り替えて処理を終了させるようにしてもよい。
<利点>
以上のように、実施の形態2に係る通信システム1Aにおいて、受信装置20Aは、現行の共通鍵に加えて、1つ前のバージョンの共通鍵を保持する。第1管理装置30Aが共通鍵を更新した場合、通信ケーブル45を介して全台の受信装置20A(受信装置20A-1,20A-2,…)の共通鍵が一括して更新される一方で、ビーコン装置10Aは、充電器80に接続されたタイミングで共通鍵の更新が行なわれるため、複数のビーコン装置10Aの共通鍵の更新タイミングは、必ずしも一斉に行なわれるわけではない。つまり、複数のビーコン装置10Aの共通鍵の更新タイミングは、個々で異なることが想定される。そのため、受信装置20Aの共通鍵が更新されてから、全台のビーコン装置10A(ビーコン装置10A-1,10A-2,…)の共通鍵の更新が完了するまでの間、複数のビーコン装置10A(ビーコン装置10A-1,10A-2,…)には、現行(最新バージョン)の共通鍵を有するものと、1つ前のバージョンの共通鍵を有するものとが混在する。受信装置20Aが上述の2つの共通鍵を保持することによって、いずれの共通鍵を有するビーコン装置10Aからのアドバタイズパケットも復号することが可能となる。これにより、全台のビーコン装置10A(ビーコン装置10A-1,10A-2,…)の共通鍵の更新が完了するまでの間における情報の欠落を抑制することができる。
さらに、実施の形態2に係る通信システム1Aにおいて、ビーコン装置10Aは、ブロードキャスト送信するアドバタイズパケットに、生体情報の暗号化に用いた共通鍵のバージョン情報を含ませる。より具体的には、ビーコン装置10Aは、共通鍵を用いて暗号化した生体情報をアドバタイズパケットの暗号化領域に格納し、暗号化に用いた共通鍵のバージョン情報をアドバタイズパケットの非暗号化領域に格納し、アドバタイズパケットをブロードキャスト送信する。アドバタイズパケットの非暗号化領域に暗号化に用いた共通鍵のバージョン情報が格納されていることにより、アドバタイズパケットを受信した受信装置20Aは、生体情報の暗号化に用いられた共通鍵を特定することができる。すなわち、受信装置20Aは、暗号化された生体情報の復号に用いるべき共通鍵を特定することができる。これにより、たとえば受信装置20Aが複数の共通鍵を用いて暗号化された生体情報の復号を試みるような場合に比べ、データ処理の速度を向上させることができる。
また、実施の形態2に係る通信システム1Aにおいて、更新周期毎に通信システム1Aで用いられる共通鍵が更新される。これにより、仮に意図しない者に共通鍵が漏洩したとしても、セキュリティ上の問題を一時的なものとすることができ、通信システム1Aのセキュリティを担保することができる。
また、実施の形態2に係る通信システム1Aにおいて、ビーコン装置10Aは、受信装置20Aを介して、第1管理装置30Aが生成した新たな共通鍵を受け取る。このような構成によって、通信システム1Aにおいては、第1管理装置30Aの管理者あるいは乗員2の操作を要することなく、更新周期毎に自動で通信システム1Aの共通鍵を更新させることができる。
[変形例2]
実施の形態2においては、ビーコン装置10Aは、受信装置20Aから共通鍵を取得する例について説明した。変形例2においては、ビーコン装置10Aは、充電器から共通鍵を取得する例について説明する。
図18は、変形例2に係るビーコン装置10Aの共通鍵の更新を説明するための図である。図18を参照して、充電器81は、通信ケーブル45に接続されている。すなわち、充電器81は、通信ケーブル45を介して、第1管理装置30Aとの通信が可能に構成されている。
第1管理装置30Aは、新たな共通鍵を生成した場合、生成された共通鍵を、通信ケーブル45を介して、受信装置20Aおよび充電器81に送信する。
充電器81は、通信インターフェース82を含む。通信インターフェース82は、たとえば、USBポートまたはNFCリーダライタ等で構成される。たとえば、通信インターフェース82がUSBポートである場合には、ビーコン装置10AをUSBポートに接続することによって、ビーコン装置10Aの充電が開始されるとともに、ビーコン装置10Aと充電器81との通信が可能となる。ビーコン装置10Aと充電器81との通信が可能となると、充電器81は、ビーコン装置10Aから装置IDの情報を取得する。そして、充電器81は、ビーコン装置10Aに共通鍵を送信する。これによって、ビーコン装置10Aは、共通鍵を更新することができる。
また、たとえば、通信インターフェース82がNFCリーダライタである場合には、ビーコン装置10AをNFCリーダライタに接触させることにより、ビーコン装置10Aから充電器81に装置IDの情報が送信されるとともに、充電器81からビーコン装置10Aに共通鍵が送信される。たとえば、充電器81は、充電端子とNFCリーダライタとが近接するように構成される。ビーコン装置10Aを充電端子に接続すると、ビーコン装置10AがNFCリーダライタに近接あるいは接触する。つまり、ビーコン装置10Aが充電されるとともに、ビーコン装置10Aの共通鍵の更新が行なわれる。充電器81が非接触式の充電器である場合には、ビーコン装置10Aを充電器81に載置した際に、ビーコン装置10AとNFCリーダライタとが近接あるいは接触するように、NFCリーダライタが配置されればよい。
充電器81は、ビーコン装置10Aに共通鍵を送信すると、ビーコン装置10Aの装置IDの情報および共通鍵のバージョン情報を含めた更新情報を第1管理装置30Aに送信する。
充電器81から更新情報を取得した第1管理装置30Aは、ビーコン装置10Aおよび受信装置20Aの共通鍵の管理情報を更新する。
以上のように、ビーコン装置10Aが充電器81を介して共通鍵を取得することによっても、更新周期毎に共通鍵を更新してセキュリティを担保することができる。
今回開示された実施の形態がすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。