以下、実施形態の通信制御装置を、図面を参照して説明する。
(第1実施形態)
図1は、実施形態の通信制御システム1の構成例を示す図である。通信制御システム1は、少なくとも一以上のクライアント装置10(10A、10B…)と、サーバ装置20と、少なくとも一以上のクライアント側通信制御装置30と、サーバ側通信制御装置31と、通信制御管理装置50とを備える。クライアント装置10は、例えば、既に設置されている監視カメラや、その他IoT機器などのセンサデバイスである。よって、クライアント装置10は、暗号化処理や復号処理を実行するために必要な十分な機能を備えていない場合もある。
クライアント装置10とクライアント側通信制御装置30とは、無線通信で通信する。無線通信には、例えばWi-Fi網、Bluetooth(登録商標)などが含まれる。
クライアント装置10とクライアント側通信制御装置30の間のネットワークを、以下、第1ネットワークと記す。クライアント側通信制御装置30は、クライアント装置10の無線アクセスポイントとして機能する。
クライアント側通信制御装置30は、ネットワークNWを介して、有線通信でサーバ側通信制御装置31と通信する。クライアント側通信制御装置30は、ゲートウェイの機能を備える。詳細については後述する。
サーバ側通信制御装置31は、ネットワークNWを介して、有線通信でクライアント側通信制御装置30と通信する。サーバ側通信制御装置31とサーバ装置20とは、有線で通信する。
つまり、クライアント装置10は、クライアント側通信制御装置30を介してネットワークNWと接続する。サーバ装置20は、サーバ側通信制御装置31を介してネットワークNWと接続する。なお、クライアント装置10およびサーバ装置20の構成の詳細については後述する。
クライアント側通信制御装置30は、クライアント装置10とネットワークNWとの間に接続され、クライアント装置10とサーバ装置20との間の通信を仲介する。クライアント側通信制御装置30は、クライアント装置10により取得されたデータをクライアント装置10から受信し、受信したデータをサーバ装置20に対して送信する。ここで、クライアント側通信制御装置30は、サーバ装置20に対してデータを送信する際に、クライアント装置10から取得したデータを暗号化し、暗号化したデータをサーバ装置20に対して送信する。
また、クライアント側通信制御装置30は、サーバ装置20からクライアント装置10に対して送信されるデータをサーバ側通信制御装置31から受信し、受信したデータをクライアント装置10に対して送信する。ここで、クライアント側通信制御装置30が受信するデータは、例えばサーバ側通信制御装置31により暗号化されたデータである。クライアント側通信制御装置30は、クライアント装置10にデータを送信する際に、サーバ側通信制御装置31を介してサーバ装置20から受信したデータを復号し、復号したデータをクライアント装置10に送信する。
サーバ側通信制御装置31は、サーバ装置20とネットワークNWとの間に接続され、クライアント装置10とサーバ装置20との間の通信を仲介する。サーバ側通信制御装置31は、サーバ装置20からクライアント装置10に対して送信されるデータをサーバ装置20から受信し、受信したデータをクライアント装置10に対して送信する。ここで、サーバ側通信制御装置31は、クライアント装置10に対してデータを送信する際に、サーバ装置20から取得したデータを暗号化し、暗号化したデータをクライアント装置10に対して送信する。
また、サーバ側通信制御装置31は、クライアント装置10からサーバ装置20に対して送信されるデータをクライアント側通信制御装置30から受信し、受信したデータをサーバ装置20に対して送信する。ここで、サーバ側通信制御装置31が受信するデータは、例えばクライアント側通信制御装置30により暗号化されたデータである。サーバ側通信制御装置31は、サーバ装置20にデータを送信する際に、クライアント側通信制御装置30を介してクライアント装置10から受信したデータを復号し、復号したデータをサーバ装置20に送信する。
本実施形態において、クライアント側通信制御装置30およびサーバ側通信制御装置31が行うデータの暗号化には、例えば、SSL(Secure Socket Layer)/TLS(Transport Layer Security)のプロトコルによる暗号化が行われる。クライアント側通信制御装置30およびサーバ側通信制御装置31は、例えば、SSL/TLSプロトコルを、HTTPと組み合わせることで、HTTPに含まれるデータを暗号化し、安全性を向上させたHTTPS(HTTP Secure)に置き換える。
なお、クライアント側通信制御装置30およびサーバ側通信制御装置31が行うデータの暗号化は、HTTPをHTTPSとすることに限定されない。クライアント側通信制御装置30およびサーバ側通信制御装置31は、SSL/TLSプロトコルを種々の通信プロトコルと組み合わせることにより、安全性を向上させたセキュアな通信プロトコルに置き換えてもよい。例えば、クライアント側通信制御装置30およびサーバ側通信制御装置31は、FTP(File Transfer Protocol)をFTPS(FTP Secure)に置き換えてもよい。
本実施形態においては、クライアント側通信制御装置30またはサーバ側通信制御装置31により暗号化されたデータがネットワークNWに出力される。換言すると、本実施形態においては、ネットワークNWを流れるデータは、暗号化されたデータである。このため、ネットワークNWで送受信されるデータに対し、外部から悪意をもってアクセスされ、データが盗聴されてしまうような危険を回避し、安全性を向上させる。なお、ここでいうデータの盗聴とは、「データを盗み見る行為」または「データを抜き取る行為」をいう。
通信制御管理装置50は、プライベート認証局として機能し、例えばクライアント装置10ごとに、クライアント証明書、および秘密鍵を発行する。例えば、通信制御管理装置50は、クライアント証明書、および秘密鍵を記憶させたICカードを発行する。また、通信制御管理装置50は、ICカードが装着されたクライアント側通信制御装置30に対し、ICカードに記憶させるクライアント証明書、および秘密鍵を、ネットワークNWを介して送信する。なお、通信制御管理装置50は、クライアント側通信制御装置30が複数のクライアント装置10A,10B…と通信する場合、クライアント装置10A,10B…ごとに、クライアント証明書、および秘密鍵を発行し、発行した全てのクライアント証明書、および秘密鍵を記憶させたICカードを発行する。
また、通信制御管理装置50は、サーバ側通信制御装置31に対し、サーバ証明書、および秘密鍵を発行する。例えば、通信制御管理装置50は、サーバ証明書、および秘密鍵を記憶させたICカードを発行する。また、通信制御管理装置50は、ICカードが装着されたサーバ側通信制御装置31に対し、ICカードに記憶させるサーバ証明書、および秘密鍵を、ネットワークNWを介して送信する。なお、通信制御管理装置50は、クライアント側通信制御装置30が複数のクライアント装置10A,10B…と通信する場合、クライアント装置10A,10B…ごとに、サーバ証明書、および秘密鍵を発行し、発行した全てのサーバ証明書、および秘密鍵を記憶させたICカードを発行する。
クライアント証明書、および秘密鍵を記憶させたICカードと、サーバ証明書、および秘密鍵を記憶させたICカードとは、同一のICカードであってもよく、別のICカードであってもよい。また、クライアント装置10A,10B…ごとに、クライアント証明書、サーバ証明書および秘密鍵を、それぞれ異なるICカードに記憶させてもよい。
クライアント証明書、サーバ証明書、および秘密鍵のそれぞれは、クライアント側通信制御装置30とサーバ側通信制御装置31とが暗号化通信を行う場合に用いる共通鍵(セッション鍵)を決定するために必要な情報である。
また、通信制御管理装置50は、正当なクライアント装置10とクライアント側通信制御装置30とのペアを登録する。正当なクライアント装置10とは、例えば、無線通信を確立するために必要な正しいパスワード(例えば、Wi-Fiのパスワード)を送信してきたクライアント装置10などである。例えば、通信制御管理装置50は、クライアント装置10のアドレス情報と、クライアント側通信制御装置30のアドレス情報とを取得し、両アドレス情報を対応付けたホワイトリストを作成し、自装置の記憶部に格納する。アドレス情報には、例えば、IPアドレスやMACアドレスなどが含まれる。
通信制御管理装置50は、作成したホワイトリストをクライアント側通信制御装置30に送信する。クライアント側通信制御装置30は、ホワイトリストに基づいて、正当なクライアント装置10と通信する。これに限られず、通信制御管理装置50は、ホワイトリストに基づいて、クライアント側通信制御装置30に対し、ホワイトリストに登録されているアドレス情報のクライアント装置10と接続するよう指示してもよい。また、ホワイトリストは、クライアント側通信制御装置30により、上述した通りに作成されてもよい。
通信制御管理装置50は、自装置の操作部を用いて管理者が入力することによりアドレス情報を取得してもよく、クライアント側通信制御装置30からアドレス情報を取得してもよい。後者の場合、クライアント側通信制御装置30は、初期設定の際に、正当なクライアント装置10と無線通信を確立した時に取得したクライアント装置10のアドレス情報と、自身のアドレス情報とを、ネットワークNWを介して通信制御管理装置50に送信してもよい。
ここで、通信制御システム1の設置される環境の一例について説明する。クライアント装置10とサーバ装置20とは、社会インフラシステムを構築する構成要素(コンポーネント)である。社会インフラとは、例えば、道路交通網、発電設備、配送電設備、水処理設備、又はガス配給設備等、社会基盤を整えるために必要な設備である。社会インフラシステムとは、例えば、社会インフラを監視し、状況の変化を把握し、その変化に対応することにより、社会インフラを安定的に動作させる仕組みである。以下においては、クライアント装置10とサーバ装置20とは、道路や公共設備などを監視する監視システムのコンポーネントである場合を例に説明する。この場合、クライアント装置10は、道路の状況等が撮像された撮像データを、ネットワークNWを介して送信する装置(ネットワーク監視カメラ)である。サーバ装置20は、クライアント装置10により送信された撮像データを、ネットワークNWを介して受信する装置である。
なお、クライアント装置10とサーバ装置20とは、監視システムのコンポーネントに限定されることはない。例えば、クライアント装置10とサーバ装置とは、発電設備や配送電設備における電力状況をモニタリングするシステムのコンポーネントであってもよいし、物流センタにおける配送状況を取得するシステム、あるいは工場や研究機関における設備の稼働状況を取得するシステム等のコンポーネントであってもよい。
次に、クライアント装置10およびサーバ装置20の構成について説明する。図2は、実施形態のクライアント装置10とサーバ装置20の機能構成例を示すブロック図である。
クライアント装置10は、通信部11と、クライアント制御部12と、撮像部13とを備える。通信部11は、例えば、クライアント側通信制御部30と無線通信を確立する。通信部11は、クライアント装置10の使用可能な通信帯域で無線通信する。クライアント装置10の使用可能な通信帯域は、自装置により設定されてもよく、外部装置からの指示に従って設定されてもよい。また、クライアント装置10の使用可能な通信帯域は、外部装置からの指示に従って変更されてもよい。
クライアント制御部12は、例えば、CPU(Central Processing Unit)などを含むプロセッサであり、クライアント装置10を統括的に制御する。クライアント制御部12は、例えば、通信部11を介してサーバ装置20からコマンドを受信した場合、サーバ装置20からの制御に従って撮像部13に撮像を開始または停止させたり、撮像部13に対し撮像するカメラの方向や、撮像する際の倍率等の撮像条件を設定したりする。
撮像部13は、クライアント制御部12の指示に従い、所定箇所における風景を撮像する。撮像部13は、撮像したデータ(撮像データ)を、クライアント制御部12に出力する。
サーバ装置20は、通信部21と、サーバ制御部22と、撮像データ記憶部23と、出力部24とを備える。通信部21は、例えば、サーバ装置20のイーサネット(登録商標)のポートである。本実施形態では、通信部21は、有線ケーブルを介してサーバ側通信制御装置31に接続され、サーバ装置20からクライアント装置10に対して送信されるデータをサーバ側通信制御装置31に出力する。
サーバ制御部22は、例えば、CPUなどを含むプロセッサであり、サーバ装置20を統括的に制御する。サーバ制御部22は、例えば、クライアント装置10に対して所定のコマンドを送信する。また、サーバ制御部22は、例えば、クライアント装置10により撮像された撮像データを、撮像データ記憶部23に記憶させる。撮像データ記憶部23は、サーバ制御部22の指示に従い、撮像データを記憶する。
ここで、従来システムの一例について説明する。従来のシステムにおいて、クライアント装置とサーバ装置とが、互いの通信部およびネットワークを介して直接的に接続される場合、クライアント装置とサーバ装置との間の通信には、ネットワーク監視カメラにおける一般的な通信プロトコルであるHTTPが用いられる。この場合、クライアント装置またはサーバ装置によりネットワークに出力された、暗号化されていない情報(いわゆる、平文)がネットワークを流れる。この場合、外部から悪意をもってネットワーク上のデータが取得されてしまうと、容易に撮像データが盗聴されたり、改ざんされたりする危険性がある。
このような不正な攻撃に対する対策として、クライアント装置が、撮像データを暗号化させてネットワークNWに出力させることが考えられる。しかしながら、そもそも監視カメラが備えるCPU等のプロセッサは、撮像データの圧縮や符号化の用途に用いられるために用いられる用途で用いられることが一般的であるため、さらに暗号化のための処理を行うだけの資源(リソース)を備えていない。このような場合、クライアント装置が元々有するCPUでは、撮像データを暗号化させることができない。クライアント装置に撮像データを暗号化させる場合には、撮像データを暗号化するためのプロセッサを、更にクライアント装置に搭載させる等、クライアント装置のハードウェア構成の変更や置換えが必要となることが考えられる。しかしながら、クライアント装置は、監視カメラ等の社会インフラを構成するコンポーネントであるため、ハードウェア構成を変更したり置換えたりすることが容易にはできない。このような事情を鑑みると、クライアント装置に変更を加えることなく、撮像データが暗号化されてネットワークに出力されることが望ましい。
本実施形態において、クライアント装置10とネットワークNWとの間に接続されたクライアント側通信制御装置30が、クライアント装置10が送信するデータを暗号化してネットワークNWに出力する。また、サーバ装置20とネットワークNWとの間に接続されたサーバ側通信制御装置31が、サーバ装置20が送信する制御データを暗号化してネットワークNWに出力する。これにより、クライアント装置10、およびサーバ装置20を変更することなく、ネットワークNWを流れる撮像データの安全性を向上させる。
また、本実施形態において、クライアント側通信制御装置30は、ゲートウェイとしての機能も備える。これにより、ゲートウェイを用意する必要がなくなり、コストを抑えることができる。
次に、クライアント側通信制御装置30の構成について説明する。図3は、実施形態のクライアント側通信制御装置30の機能構成例を示すブロック図である。
図3に示すように、クライアント側通信制御装置30は、NW(ネットワーク)ノード部32と、制御部33と、装置通信部34と、リーダライタ35と、ICカード40とを備える。ここで、ICカード40は、「認証部」の一例である。
NWノード部32は、ネットワークNWに接続され、ネットワークNWを介して、サーバ側通信制御装置31と通信を行う。NWノード部32は、ゲートウェイの機能を備え、クライアント装置10と無線通信する第1ネットワークと、サーバ側通信制御装置31と通信する第2ネットワークとの間を相互に接続する。
制御部33は、例えば、CPUなどを含むプロセッサであり、クライアント側通信制御装置30を統括的に制御する。制御部33は、例えば、仲介処理部33Aと、管理部33Bとを備える。これらの機能部のうち一部または全部は、例えば、CPUなどのプロセッサが、記憶部に記憶されたプログラム(ソフトウェア)を実行することで実現される。また、これらの構成要素の機能のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)等のハードウェア(回路部:circuitryを含む)によって実現されていてもよいし、ソフトウェアとハードウェアの協働によって実現されていてもよい。
仲介処理部33Aは、クライアント装置10とサーバ装置20との間の通信を仲介する。例えば、仲介処理部33Aは、装置通信部34を介してクライアント装置10から受信した情報に基づいて、リーダライタ35を介してICカード40にコマンドを送信する。仲介処理部33Aは、ICカード40からレスポンスを受信し、ICカード40から受信したレスポンスに基づく情報を、NWノード部32を介してサーバ装置20に送信する。また、仲介処理部33Aは、NWノード部32を介してサーバ側通信制御装置31から受信した情報に基づいて、リーダライタ35を介してICカード40にコマンドを送信する。仲介処理部33Aは、ICカード40からレスポンスを受信し、ICカード40から受信したレスポンスに基づく情報を、装置通信部34を介してクライアント装置10に送信する。ここで、仲介処理部33Aは、クライアント装置10から受信した情報(例えば、アドレス情報)に基づいて、接続されている複数のクライアント装置10A、10B…のうち、通信を仲介するクライアント装置を特定する。
管理部33Bは、プライベート認証局である通信制御管理装置50により発行された秘密情報と、クライアント装置10を識別する識別情報(以下、クライアントIDと記す)とを対応付けて管理する。秘密情報には、例えば、クライアント証明書、秘密鍵等が含まれる。管理部33Bは、例えば、クライアント装置10から受信したアドレス情報(IPアドレスやMACアドレス等)や、クライアント側通信制御装置30とクライアント装置10との接続状況の履歴情報を、記憶部38の対応関係管理情報38Aに書き込む。対応関係管理情報38Aは、例えば、クライアントIDに、アドレス情報と、接続状況の履歴情報とを対応付けた情報である。アドレス情報は、例えば、ホワイトリストに登録されているアドレス情報である。接続状況の履歴情報には、例えば、最後に接続した時刻などが含まれる。一方、秘密情報は、クライアントIDに対応付けて、ICカード40に格納されている。
仲介処理部33Aは、対応関係管理情報38Aを参照して、秘密情報を要求するクライアント装置10のクライアントIDを取得し、認証部であるICカード40に出力する。ICカード40は、入力されたクライアントIDに基づいて、秘密情報を読み出し、相互認証を行う。つまり、ICカード40は、クライアント装置10ごとに異なる秘密情報を用いて、相互認証処理を実行する。こうすることで、ICカード40は、クライアント装置10ごとに、サーバ側通信制御装置31との間で相互認証を行うことができる。
仲介処理部33Aは、例えば、ICカード40によりサーバ側通信制御装置31との相互認証が行われた場合、ICカード40により暗号化された情報をサーバ通信制御装置31を介してサーバ装置20に送信し、ICカード40により復号された情報を装置通信部34を介してクライアント装置10に送信する。例えば、仲介処理部33Aは、クライアントIDを用いて、暗号化処理や復号処理を実行するクライアント装置10をICカード40に指示する。こうすることで、ICカード40は、仲介処理部33Aから入力されるクライアントIDに基づいて、クライアント装置10ごとに異なる公開鍵を用いて、暗号化処理や復号処理を実行することができる。
仮に、正当なクライアント装置10でない装置(以下、不当装置と記す)からサーバ装置20への接続が要求された場合、不当装置のアドレス情報は対応関係管理情報38Aに登録されておらず、不当装置のアドレス情報に対応する秘密情報もICカード40に登録されていない。このため、仲介処理部33Aは、不当装置とサーバ装置20との通信を仲介しない。仲介処理部33Aは、不当装置からサーバ装置20への接続要求があった場合、その旨を示すログ情報を作成し、サーバ装置20に通知してもよい。
また、仲介処理部33Aは、正当なクライアント装置10との接続状況に基づいて、正当なクライアント装置10とクライアント側通信制御装置30との接続が解除されたと判定した場合、その旨を示すログ情報を作成し、サーバ装置20に通知してもよい。例えば、仲介処理部33Aは、対応関係管理情報38Aの接続状況の履歴情報を参照し、接続していない時間が所定値以上ある場合、接続が解除されたと判定してもよく、クライアント装置10から情報を最後に受信したときから所定時間が経過した場合、接続が解除されたと判定してもよい。また、仲介処理部33Aは、クライアント装置10にクエリを送信し、所定時間内にレスポンスを受信しない場合、接続が解除されたと判定してもよい。また、仲介処理部33Aは、クライアント装置10にピンを飛ばすことで、接続の解除の有無を判定してもよい。
また、仲介処理部33Aは、不当装置からサーバ装置20への接続が要求された場合や、正当なクライアント装置10とクライアント側通信制御装置30との接続が解除された場合、正当なクライアント装置10とサーバ装置20との通信を制限してもよい。
装置通信部34は、Wi-Fi網などの電波の届く範囲に置かれた少なくとも一つのクライアント装置10と無線通信を行う。例えば、装置通信部34は、クライアント装置10からの撮像データを取得するとともに、復号された制御データをクライアント装置10に送信する。
リーダライタ35は、ICカード40のコンタクト部36を介して、ICカード40の間の通信を行う。なお、クライアント側通信制御装置30は、複数のリーダライタ35を備え、通信するクライアント装置ごとに用意されたICカード40を搭載可能であってもよい。
記憶部38は、例えば、RAM、ROMなどによって実現される。記憶部38は、プロセッサが実行するプログラムを格納する他、対応関係管理情報38Aを格納する。
ICカード40は、例えば、プラスチックのカード基材に、ICモジュール41を実装して形成されている。すなわち、ICカード40は、ICモジュール41と、ICモジュール41が埋め込まれたカード基材とを備える。
ICモジュール41は、コンタクト部36と、ICチップ42とを備える。コンタクト部36は、ICカード40が動作するために必要な各種信号の端子を有している。ここで、各種信号の端子は、電源電圧、クロック信号、リセット信号などをクライアント側通信制御装置30から供給を受ける端子、及び、クライアント側通信制御装置30と通信するためのシリアルデ―タ入出力端子(SIO端子)を有する。ICチップ42は、例えば、1チップのマイクロプロセッサなどのLSI(Large Scale Integration)である。
ICカード40は、クライアント側通信制御装置30に着脱可能に装着され、コンタクト部36を介してクライアント側通信制御装置30と通信可能である。例えば、ICカード40は、クライアント側通信制御装置30が送信したコマンド(処理要求)を、コンタクト部36を介して受信し、受信したコマンドに応じた処理(コマンド処理)を実行する。そして、ICカード40は、コマンド処理の実行結果であるレスポンス(処理応答)をクライアント側通信制御装置30にコンタクト部36を介して送信する。
次に、サーバ側通信制御装置31の構成について説明する。図4は、実施形態のサーバ側通信制御装置31の機能構成例を示すブロック図である。サーバ側通信制御装置31は、一部において、クライアント側通信制御装置30と同じ機能構成を有する。このため、以下異なる点について説明し、クライアント側通信制御装置30が備える機能構成と同じ機能構成については、同一の符号を付して詳細な説明は省略する。また、クライアント側通信制御装置30とサーバ側通信制御装置31とを区別しない場合には、単に、通信制御装置30(31)などと称する。
図4に示すように、サーバ側通信制御装置31は、NW通信部39と、制御部33と、装置通信部34と、リーダライタ35と、ICカード40とを備える。
NW通信部39は、ネットワークNWに接続され、ネットワークNWを介して、クライアント側通信制御装置30と通信を行う。
サーバ側通信制御装置31の装置通信部34は、サーバ装置20に有線で接続され、サーバ装置20からの制御データを取得するとともに、復号された撮像データをサーバ装置20に出力する。
次に、ICカード40のハードウェア構成の一例について説明する。図5は、実施形態のICカード40のハードウェア構成の一例を示す図である。
上述した通り、ICカード40は、コンタクト部36と、ICチップ42とを備えたICモジュール41を備えている。そして、ICチップ42は、UART(Universal Asynchronous Receiver Transmitter)43と、CPU44と、ROM(Read Only Memory)45と、RAM(Random Access Memory)46と、EEPROM(Electrically Erasable Programmable ROM)47とを備える。また、各構成(43から47)は、内部バスBSを介して接続されている。
UART43は、上述したSIO端子を介して、クライアント側通信制御装置30とシリアルデータ通信を行う。UART43は、SIO端子を介して受信したシリアルデータ信号をパラレル変換したデータ(例えば、1バイトのデータ)を内部バスBSに出力する。また、UART43は、内部バスBSを介して取得したデータをシリアル変換して、SIO端子を介してクライアント側通信制御装置30に出力する。UART43は、例えば、SIO端子を介してコマンドをクライアント側通信制御装置30から受信する。また、UART43は、SIO端子を介してレスポンスをクライアント側通信制御装置30に送信する。
CPU44は、ROM45又はEEPROM47に記憶されているプログラムを実行して、ICカード40の各種処理を行う。CPU44は、例えば、コンタクト部36を介して、UART43が受信したコマンドに応じたコマンド処理を実行する。
ROM45は、例えば、マスクROMなどの不揮発性メモリであり、ICカード40の各種処理を実行するためのプログラム、及びコマンドテーブルなどのデータを記憶する。RAM46は、例えば、SRAM(Static RAM)などの揮発性メモリであり、ICカード40の各種処理を行う際に利用されるデータを一時記憶する。EEPROM47は、例えば、電気的に書き換え可能な不揮発性メモリである。EEPROM47は、ICカード40が利用する各種データを記憶する。EEPROM47は、例えば、ICカード40を利用した各種サービス(アプリケーション)に使用される情報を記憶する。
次に、ICカード40の構成の一例について説明する。図6は、実施形態のICカード40の機能構成例を示すブロック図である。ICカード40は、通信部40Aと、制御部40Bと、記憶部40Cとを備える。ここで、図6に示されるICカード40の各部は、図5に示されるICカード40のハードウェアを用いて実現される。
通信部40Aは、例えば、UART43と、CPU44と、ROM45に記憶されているプログラムとにより実現され、コンタクト部36を介して、例えば、クライアント側通信制御装置30との間でコマンド及びレスポンスの送受信を行う。すなわち、通信部40Aは、所定の処理を要求するコマンド(処理要求)をクライアント側通信制御装置30から受信するとともに、コマンドに対するレスポンス(処理応答)をクライアント側通信制御装置30に送信する。通信部40Aは、UART43を介してクライアント側通信制御装置30から受信した受信データをRAM46に記憶させる。また、通信部40Aは、RAM46に記憶されている送信データを、UART43を介してクライアント側通信制御装置30に送信する。
制御部40Bは、例えば、CPU44と、RAM45と、ROM46又はEEPROM47とにより実現され、ICカード40を統括的に制御する。制御部40Bは、コマンド処理部41Bと、暗号化復号部42Bとを備える。
ここで、コマンド処理部41Bが行う処理は、「認証処理」の一例である。また、暗号化復号部42Bが行う処理は、「暗号化復号処理」の一例である。
コマンド処理部41Bは、各種コマンド処理を実行する。コマンド処理部41Bは、例えば、後述するHTTPSリクエストを要求するコマンド処理として、SSL/TLSハンドシェイクを行う。SSL/TLSハンドシェイクでは、暗号化された通信に必要な鍵情報等の交換、および通信先の装置との相互認証を行う。ここで、相互認証とは、クライアント側通信制御装置30とサーバ側通信制御装置31とが、通信を行う前に、互いに正当に認証された装置であることを相互に確認する認証処理である。
コマンド処理部41Bは、例えばハンドシェイクにおいて、暗号化処理や復号処理に用いる共通鍵を決定する。コマンド処理部41Bは、クライアント証明書、サーバ証明書、および秘密鍵などの情報に基づいて、共通鍵を決定する。コマンド処理部41Bは、決定した共通鍵を、クライアントIDを対応付けて、記憶部40Cに格納する。
暗号化復号部42Bは、データを暗号化する処理、および暗号化されたデータを復号する処理を実行する。暗号化復号部42Bは、通信部40Aを介してクライアント装置10(サーバ側通信制御装置31の場合はサーバ装置20)から受信したデータを暗号化する。また、暗号化復号部42Bは、通信部40Aを介してサーバ装置20(サーバ側通信制御装置31の場合はクライアント装置10)からネットワークNWを介して受信した暗号化されたデータを復号する。暗号化復号部42Bは、記憶部40Cを参照し、クライアント装置10に対応する共通鍵を用いて、暗号化処理と復号処理を実行する。
記憶部40Cは、例えば、EEPROM47により構成された記憶部であり、証明書情報記憶部41Cと、秘密情報記憶部42Cとを備える。証明書情報記憶部41Cは、通信制御管理装置50が発行したクライアント装置10(サーバ側通信制御装置31の場合はサーバ装置20)に対する証明書を記憶する。具体的には、クライアント側通信制御装置30に装着されるICカード40の証明書情報記憶部41Cには、クライアント証明書を示す情報が記憶される。また、サーバ側通信制御装置31に装着されるICカード40の証明書情報記憶部41Cには、サーバ証明書を示す情報が記憶される。
秘密情報記憶部42Cは、通信制御管理装置50が発行したクライアント装置10(サーバ側通信制御装置31の場合はサーバ装置20)に対する秘密鍵を記憶する。具体的には、クライアント側通信制御装置30に装着されるICカード40の秘密情報記憶部42Cには、クライアント側通信制御装置30に対して発行された秘密鍵を示す情報が記憶される。また、サーバ側通信制御装置31に装着されるICカード40の証明書情報記憶部41Cには、サーバ側通信制御装置31に対して発行された秘密鍵を示す情報が記憶される。
次に、通信制御管理装置50の構成の一例について説明する。図7は、実施形態の通信制御管理装置50の機能構成の一例を示すブロック図である。通信制御管理装置50は、例えば、NW(ネットワーク)通信部50Aと、制御部50Bと、記憶部50Cとを備える。
NW通信部50Aは、ネットワークNWに接続され、ネットワークNWを介して、通信制御装置30(31)と通信を行う。
制御部50Bは、例えば、CPUなどを含むプロセッサであり、通信制御管理装置50を統括的に制御する。制御部50Bは、主に通信制御装置30(31)の正当性を認めるプライベート認証局として機能する。制御部50Bは、鍵生成部51Bと、証明書発行部52Bと、証明書更新部53Bと、証明書管理部54Bと、管理部55Bとを備える。
鍵生成部51Bは、例えば、通信制御装置30(31)からの認証申請に基づいて、後述する証明書に含まれる公開鍵に対応する秘密鍵の発行を行う。
証明書発行部52Bは、例えば、通信制御装置30(31)からの認証申請に基づいて、通信制御装置30(31)の正当性を認める証明書の発行を行う。証明書には、公開鍵と、通信制御装置30(31)の所有者を示す情報が含まれる。
証明書更新部53Bは、有効期限が渡過した証明書に対して新たな有効期限を設定することにより、証明書の更新を行う。証明書更新部53Bは、例えば、通信制御装置30(31)からの更新申請に基づいて、当該通信制御装置30(31)に対して発行した証明書の有効期限を延長させた証明書を発行し、発行した証明書を通信制御装置30(31)に対して送信する。発行した証明書を示す情報が通信制御装置30(31)により受信され、通信制御装置30(31)のICカード40の証明書情報記憶部41Cに記憶されることで、通信制御装置30(31)の証明書の有効期限が延長される。
証明書管理部54Bは、既に発行済みの証明書に対する管理を行う。証明書管理部54Bは、例えば、通信制御装置30(31)に装着されたICカード40の改ざん、または盗難等により相互認証において互いの正当性が証明されない場合に、通信制御装置30(31)に対して発行した証明書を無効化する処理を行う。また、証明書管理部54Bは、通信制御装置30(31)からの問い合わせに基づいて、通信制御装置30(31)、および他の通信装置に対して発行した証明書が証明書管理部54Bにより発行されたものか否か応答するようにしてもよい。また、証明書管理部54Bは、定期的に、発行済みの証明書が正当な通信制御装置30(31)に使用されているかを確認するようにしてもよい。
管理部55Bは、通信制御装置30(31)を管理する。例えば、管理部55Bは、通信制御装置30(31)が行う相互認証を、ネットワークNWを介して遠隔制御する。
記憶部50Cは、例えば鍵情報記憶部51Cと、証明書情報記憶部52Cとを備える。鍵情報記憶部51Cは、例えば既に発行済みの公開鍵や、秘密鍵を示す情報を記憶する。証明書情報記憶部52Cは、例えば既に発行済みの証明書を示す情報を記憶する。鍵情報記憶部51Cと、証明書情報記憶部52Cとは、例えば、鍵生成部51Bが秘密鍵を発行する際、証明書発行部52Bが証明書を発行する際などに参照される。また、鍵情報記憶部51Cには、鍵生成部51Bが発行した秘密鍵を示す情報が記憶される。また、証明書情報記憶部52Cには、証明書発行部52Bが発行した証明書を示す情報が記憶される。
次に、通信制御システム1が行う処理の一例について説明する。図8は、実施形態の通信制御システム1が行う処理の一例を示すシーケンスチャートである。
クライアント装置10は、撮像データをサーバ装置20に送信する場合、まずサーバ装置20に対するHTTPリクエストを送信する(ステップS1)。クライアント装置10が送信したHTTPリクエストは、クライアント側通信制御装置30により取得される(ステップS2)。クライアント側通信制御装置30は、サーバ側通信制御装置31に対して、HTTPSのリクエスト(ClientHello)を送信する(ステップS4)。これにより、クライアント側通信制御装置30とサーバ側通信制御装置31との間のハンドシェイクが開始される(ステップS5)。
具体的には、クライアント側通信制御装置30が送信するClientHelloには、例えば、TLSのバージョン、および通信に用いる暗号方式やアルゴリズムのリストを示す情報が含まれる。サーバ側通信制御装置31は、ClientHelloに対する応答として、クライアント側通信制御装置30に対しHTTPSのレスポンス(ServerHello)を送信する。サーバ側通信制御装置31が送信するServerHelloには、例えばClientHelloで提示された選択肢の中でサーバ装置20が選択した情報が含まれる。換言すると、クライアント側通信制御装置30からの提示に対し、サーバ側通信制御装置31が選択を行うことで、通信における具体的な暗号化アルゴリズムが決定される。
そして、サーバ側通信制御装置31は、暗号化通信に用いる共通鍵に必要な情報を送る。共通鍵に必要な情報には、例えば、サーバ装置20に対して発行された公開鍵とその証明書を示す情報、およびクライアント装置10の公開鍵とその証明書を送ることを要求する情報が含まれる。クライアント側通信制御装置30は、サーバ側通信制御装置31に対して、要求されているクライアント装置10に対して発行された公開鍵とその証明書、及び暗号化通信に用いる共通鍵に必要な情報を送る。ここで、クライアント側通信制御装置30は、対応関係管理情報38Aを参照し、要求されているクライアント装置10のクライアントIDを取得する。クライアント側通信制御装置30は、ICカード40から取得したクライアントIDに対応付けられている証明書(公開鍵を含む)などを読み出す。
クライアント側通信制御装置30とサーバ側通信制御装置31との間の相互認証は、例えば次のように行われる。クライアント側通信制御装置30は、今までに受信したServerHello等から署名を生成し、サーバ側通信制御装置31に送信する。サーバ側通信制御装置31は、クライアント側通信制御装置30から受信した署名を、クライアント側通信制御装置30から受信した証明書に基づいて検証する。サーバ側通信制御装置31は、検証が成功すると、その証明書が間違いなくクライアント側通信制御装置30のものであると判定する。また、サーバ側通信制御装置31は、今までに受信したClientHello等から署名を生成し、クライアント側通信制御装置30に送信する。クライアント側通信制御装置30は、サーバ側通信制御装置31から受信した署名を、サーバ側通信制御装置31から受信した証明書に基づいて検証する。クライアント側通信制御装置30は、検証が成功すると、その証明書が間違いなくサーバ側通信制御装置31のものであると判定する。
クライアント側通信制御装置30とサーバ側通信制御装置31との間の相互認証が正しく行われると、クライアント側通信制御装置30とサーバ側通信制御装置31とは、それぞれ暗号化に用いる共通鍵を生成して交換する。また、クライアント側通信制御装置30は、クライアント装置10ごとに、共通鍵を管理する。
サーバ側通信制御装置31から送付されたサーバ装置20に対して発行された公開鍵とその証明書が、クライアント側通信制御装置30に許容される証明書であれば、サーバ側通信制御装置31は、クライアント側通信制御装置30から送付された公開鍵とその証明書が、サーバ側通信制御装置31に許容される証明書であれば、ハンドシェイクを終了する。
サーバ側通信制御装置31は、クライアント側通信制御装置30とのハンドシェイクが確立されると、サーバ装置20に対し、HTTPリクエストを送信する(ステップS6)。ここで送信されるHTTPリクエストは、ステップS2においてクライアント装置10から受信したHTTPリクエストである。
サーバ側通信制御装置31により送信されたHTTPリクエストは、サーバ装置20により受信される(ステップS7)。このとき、サーバ装置20は、クライアント装置10からHTTPリクエストが要求されたと認識する。このため、サーバ装置20は、クライアント装置10に対してHTTPレスポンスを応答する(ステップS8)。サーバ装置20が送信したHTTPレスポンスは、サーバ側通信制御装置31により取得される(ステップS9)。
サーバ側通信制御装置31は、取得したサーバ装置20からのHTTPレスポンスを、ステップS5のハンドシェイクにおいて決定された共通鍵を用いて暗号化する(ステップS10)。サーバ側通信制御装置31により暗号化されたHTTPレスポンスは、ネットワークNWを介してクライアント側通信制御装置30に受信される(ステップS11)。クライアント側通信制御装置30は、受信したHTTPレスポンスを、共通鍵を用いて復号する(ステップS12)。クライアント側通信制御装置30により復号されたHTTPレスポンスは、クライアント装置10に取得される(ステップS13)。クライアント装置10は、復号されたHTTPレスポンスを受信する(ステップS14)。このとき、クライアント装置10は、サーバ装置20からHTTPレスポンスが応答されたと認識する。このため、クライアント装置10は、サーバ装置20に対し、撮像データを送信する(ステップS15)。
クライアント装置10が送信した撮像データは、クライアント側通信制御装置30により取得される(ステップS16)。クライアント側通信制御装置30は、クライアント装置10により送信された撮像データを、共通鍵を用いて暗号化する(ステップS18)。クライアント側通信制御装置30により暗号化された撮像データは、ネットワークNWを介してサーバ側通信制御装置31に受信される(ステップS19)。
サーバ側通信制御装置31は、受信した撮像データを、共通鍵を用いて復号する(ステップS20)。サーバ側通信制御装置31により復号された撮像データは、サーバ装置20にとり取得される(ステップS21)。サーバ装置20は、復号された撮像データを受信する(ステップS22)。このとき、サーバ装置20は、クライアント装置10からの撮像データを受信したと認識する。
なお、上記フローチャートのステップS5において、クライアント側通信制御装置30とサーバ側通信制御装置31との間の相互認証が正しく行われなかった場合、クライアント側通信制御装置30は、通信先との通信を許可しない。具体的には、クライアント側通信制御装置30は、通信先から送信された情報をクライアント装置10に出力しない。相互認証が正しく行われなかった場合、通信先がサーバ側通信制御装置31に見せかけた不正な通信装置である可能性があるためである。この場合、クライアント側通信制御装置30は、例えば、相互認証が正しく行われなかった場合の通信記録を通信制御管理装置50に送信するようにしてもよい。これにより、通信制御管理装置50は相互認証が正しく行われなかった場合の通信記録を取得することができ、管理下にあるクライアント側通信制御装置30に対する不正な通信のパターンや頻度を把握することで、ネットワークの異常を監視することができる。
また、クライアント側通信制御装置30は、上記フローチャートのステップS5において行われるハンドシェイクにおいて相互認証の代わりにクライアント装置10に対する通信を許可する通信機器の情報を示す送信先リストに基づいて、通信先との通信を許可するか否かを判定するようにしてもよい。送信先リストに示される通信機器の情報は、例えばURL(Uniform Resource Locator)である。クライアント側通信制御装置30の制御部33は、通信先のURLが送信先リストに登録されているURLである場合に当該通信先との通信を許可し、送信先リストに登録されていない場合には通信を許可しない。
また、制御部33は、送信先リストを更新するようにしてもよい。制御部33は、例えば、一定期間にクライアント装置10に対する通信を許可された通信先のURL、および許可されなかった通信先URLを記憶させる。そして、制御部33は、例えば、送信先リストに登録されたURLのうち、一定期間に通信が行われた通信先のURLを再度登録する等することにより送信先リストを更新する。あるいは、クライアント側通信制御装置30は、一定期間に通信を許可された通信先URL、および許可されなかった通信先URLを通信制御管理装置50に送信するようにしてもよい。この場合、例えば、通信制御管理装置50は、クライアント側通信制御装置30と通信を行った通信先URLに基づいて、送信先リストを更新するようにしてもよい。通信制御管理装置50により送信先リストが更新されることで、通信制御管理装置50が管理下にあるクライアント側通信制御装置30と通信する通信機器を一括して管理することができる。
また、クライアント側通信制御装置30は、ステップS5において行われるハンドシェイクが確立した後にクライアント装置10に対して送信された情報(例えば、ファームウェアの更新プログラム)の内容が正しいか否かの検証を行うようにしてもよい。例えば、クライアント側通信制御装置30の制御部33は、ネットワークNWを介してクライアント装置10のファームウェアの更新プログラムが送信された場合、検証用の鍵(検証鍵)を用いて検証する。この場合、通信制御管理装置50は、例えば、クライアント側通信制御装置30およびサーバ側通信制御装置31それぞれに検証鍵を送信するようにしてもよい。
例えば、サーバ側通信制御装置31は、クライアント装置10へ送信する情報(平文)からハッシュ値を生成し、生成したハッシュ値を検証鍵で暗号化する。そして、サーバ側通信制御装置31は、平文と暗号化したハッシュ値をさらに秘密鍵で暗号してクライアント装置10へ送信する。また、クライアント側通信制御装置30は共通鍵を用いて情報を復号化し、平文と暗号化されたハッシュ値とを取得する。
また、クライアント側通信制御装置30は、取得した平文からハッシュ値を生成するとともに、暗号化されたハッシュ値を検証鍵で復号する。クライアント側通信制御装置30は、平文から生成したハッシュ値と、復号化したハッシュ値とが等しい値である場合、クライアント装置10に対して送信された情報は正しい内容であると判定する。この場合、クライアント側通信制御装置30は、復号した情報(平文)をクライアント装置10に出力する。一方、クライアント側通信制御装置30は、平文から生成したハッシュ値と復号化したハッシュ値が等しい値でない場合、クライアント装置10に対して送信された情報は、サーバ装置20またはサーバ側通信制御装置31に見せかけた不正な通信装置から送信された不正な情報である可能性があると判定する。この場合、クライアント側通信制御装置30は、復号した情報(平文)をクライアント装置10に出力しない。
これにより、クライアント装置10は、検証済みである正しい内容であることが検証された情報のみを受け取ることができる。また、通常、クライアント装置10がファームウェアを更新する際の更新プログラムの内容が正しいか否かの判定を行うと考えられるが、クライアント装置10に代わりサーバ側通信制御装置31がクライアント装置10に対して送信された情報の内容を検証することにより、クライアント装置10の処理負担を軽減させることが可能となる。
(第2実施形態)
図9は、第2実施形態の通信制御システム1Aの構成例を示す図である。通信制御システム1Aは、他のアクセスポイント60と、クライアント装置10Cとを備える点で、通信制御システム1と異なる。他のアクセスポイント60は、例えば、無線通信のアクセスポイントとなる汎用的な装置である。クライアント装置10Cは、他のアクセスポイント60を介して、クライアント側通信制御装置30と無線通信する。クライアント装置10Cは、クライアント側通信制御装置30の電波の届く範囲に置かれていないセンサデバイスであって、他のアクセスポイント60を介して、クライアント側通信制御装置30と無線通信する。
クライアント側通信制御装置30は、クライアント装置10Cとも、クライアント装置10A,10Bと同様にして、上述したような処理を行う。つまり、クライアント側通信制御装置30は、クライアント装置10CのクライアントIDを用いて、通信制御管理装置50によりクライアント装置10Cに対して発行された秘密情報を管理し、クライアント装置10Cとサーバ装置20との通信を仲介する。
このような構成とすることで、クライアント装置10と無線通信するためのエリアごとにクライアント側通信制御装置30を配置しなくても、無線通信のアクセスポイントとなる汎用的な装置を用いて、実施形態の通信制御システムを実現することができるようになる。
以上説明したように、実施形態の通信制御システム1は、電波の届く範囲に置かれた少なくとも一つのセンサデバイスと無線通信する無線通信部と、ネットワークを介してサーバ側通信制御装置と通信するネットワークノード部と、前記センサデバイスから受信した情報を暗号化し、前記サーバ側通信制御装置を介してサーバ装置から受信した情報を復号する認証部と、前記認証部により暗号化された情報を前記サーバ側通信制御装置を介して前記サーバ装置に送信し、前記認証部により復号された情報を前記無線通信部を介して前記センサデバイスに送信する仲介処理部と、を備えることにより、社会インフラシステムを変更することなく、社会インフラシステムの安全性を向上させることができる通信制御装置を提供することができる。
また、実施形態の通信制御システム1は、クライアント装置10とネットワークNWとの間に接続されるクライアント側通信制御装置30と、サーバ装置20とネットワークNWとの間に接続されるサーバ側通信制御装置31と、を備える。クライアント側通信制御装置30は、ICカード40と、制御部33を有する。制御部33は、ICカード40に、相互認証と暗号化復号処理とのうち少なくとも一方の処理を依頼し、暗号化された情報をサーバ側通信制御装置31に送信し、復号された情報をクライアント装置10に送信する。サーバ側通信制御装置31は、ICカード40と、制御部33を有する。制御部33は、ICカード40に、相互認証と暗号化復号処理とのうち少なくとも一方の処理を依頼し、暗号化された情報をクライアント側通信制御装置30に送信し、復号された情報をサーバ装置20に送信する。この場合、通信制御装置30(31)の制御部33は、ICカード40に相互認証の処理のみをさせてもよいし、暗号化復号処理のみをさせてもよいし、相互認証と暗号化復号処理との両方の処理をさせてもよい。
これにより、実施形態の通信制御システム1は、社会インフラシステムを変更することなく、社会インフラシステムの安全性を向上させることができる。クライアント装置10からサーバ装置20に対して送信されたHTTPプロトコルの撮像データ(いわゆる平文)が、クライアント側通信制御装置30により、例えば、SSL/TLSプロトコルと組み合わされて、安全性が向上されたHTTPSに置き換えられるためである。また、サーバ装置20かクライアント装置10らに対して送信された制御データは、暗号化されるが、クライアント側通信制御装置30により復号されて、クライアント装置10に受信されるため、クライアント装置10に復号させる処理を行わせる必要がなく、既存の装置を変更することなくそのまま利用することができる。
また、実施形態の通信制御システム1では、クライアント側通信制御装置30とサーバ側通信制御装置31とが相互認証を行うため、いずれか一方方向のみの認証を行う場合よりも安全性を向上させることができる。一般的なクライアント端末とサーバ端末においては、サーバ端末に対して不特定多数のクライアント端末が通信を行うため、当該不特定多数のクライアント端末に対して正当なクライアント証明書を発行して管理し続けることは現実的ではない。しかしながら、社会インフラシステムにおいては、クライアント装置10とサーバ装置20の関係は明確に特定されている。このため、クライアント側通信制御装置30とサーバ側通信制御装置31とが相互認証を行うことが可能であり、安全性を向上させることができる。
クライアント証明書を有していないクライアント端末の場合、サーバ端末と通信を行うために、サーバ端末が発行したIDやパスワードの入力を求められることがある。このようなパスワード認証においては、安全性を維持するために、パスワードに対し文字と数字を組合せた長文の文字列が要求されたり、定期的なパスワードの変更等が求められたりすることがある。しかしながら、覚えなければならないパスワードが増えると、管理が面倒になってしまい、パスワードをメモに残したり、ウェブブラウザに記録させたりするなど、かえってパスワードが漏洩してしまう場合があった。
これに対し、実施形態の通信制御システム1では、クライアント側通信制御装置30がクライアント証明書を有することにより、サーバ装置20との間で確実に相互認証を行うことができる。このため、パスワード認証が不要となる。このため、パスワードを入力する手間や定期的に変更して管理する手間がなくなり、ユーザの利便性が向上する。つまり、ユーザに負担をかけることなく安全性を維持することができる。
また、クライアント証明書を有していないクライアント端末が、IDやパスワードによる認証に基づいてサーバ端末と通信を行う場合、IDとパスワードが正しく入力できてしまえば、だれでもサーバ端末と通信することができてしまう。このため、クライアント端末を不正に乗っ取り、サーバ端末へ不正にアクセスすることが可能となってしまう。このため例えば、不正に乗っ取られたサーバ端末によってクライアント端末の機能が制限され、解除するために身代金が要求されるといったランサムウェアに感染する可能性があった。
これに対し、実施形態の通信制御システム1では、クライアント装置10とサーバ装置20との間で、通信制御装置30(31)を介した相互認証が行われることや、アドレス情報に基づいて通信相手のクライアント装置10が制限されることなどにより、クライアント装置10やサーバ装置20が不正に乗っ取られることがない。つまり、実施形態の通信制御システム1では、ランサムウェアに対する対策も可能となる。
また、例えばネットワーク内に、管理者が不在の端末(野良デバイスともいう)がある場合、その端末が不正に乗っ取られることにより、その端末がマルウェア等の攻撃を行う不正な端末として利用されてしまう場合があった。これに対し、実施形態の通信制御システム1では、クライアント装置10とサーバ装置20との間で、通信制御装置30(31)を介した相互認証が行われることや、アドレス情報に基づいて通信相手のクライアント装置10が制限されることなどにより、ネットワークNWの内部にある管理者が不在の端末が不正に乗っ取られて攻撃に利用された場合であっても、マルウェア等に感染することを防止することができる。
また、実施形態の通信制御システム1では、サーバ装置20がサーバ側通信制御装置31に接続されており、サーバ装置20の内部で認証処理を行わない。このため、サーバ装置20の内部で証明書等を保持する必要がなく、サーバ側通信制御装置31に接続されたサーバ装置20が通信制御管理装置50の管理下であることが明確となる。もっとも、サーバ装置20が、すでにサーバ側通信制御装置31に相当する機能部を有している場合には、必ずしもサーバ装置20とネットワークNWとの間にサーバ側通信制御装置31が物理的に接続される必要はない。この場合、サーバ装置20が元々有するサーバ側通信制御装置31に相当する機能部により、クライアント側通信制御装置30との間の認証処理が行われる。
また、実施形態の通信制御システム1では、ICカード40の制御部40Bにおいて、相互認証と暗号化復号処理とのうち少なくともいずれか一方を行わせる。このため、通信制御装置30(31)の装置コストを抑制することができる。
なお、実施形態の通信制御システム1においては、通信制御装置30(31)に装着されたICカード40が、相互認証と暗号化復号処理とのうち少なくともいずれか一方の処理を行う例を説明したが、当該処理を行う機能部がICカードに限定されることはない。実施形態のICカード40としては、秘密鍵およびクライアント証明書(あるいは、サーバ証明書)を記憶する記憶機能と、相互認証と暗号化復号処理とのうち少なくともいずれか一方を行う処理機能を有している機能部であればよく、例えば、ICチップが搭載されたSIMカードであってもよい。
また、実施形態の通信制御システム1においては、クライアント側通信制御装置30のICカード40は、クライアント側通信制御装置30に対して着脱可能に装着される。これにより、実施形態の通信制御システム1においては、ICカード40とクライアント側通信制御装置30とが分離可能であるため、どちらか一方を交換する場合には、当該一方のデバイスを交換すればよい。例えば、ICカード40とクライアント側通信制御装置30とが一体化された場合には、ICカード40に相当する部分を交換する場合には、クライアント側通信制御装置30全体を交換しなければならないが、この場合と比較して、実施形態の通信制御システム1では、クライアント側通信制御装置30が有するICカード40等の特定の部分を交換する場合のメンテナンスコストを抑制することができる。
また、実施形態の通信制御システム1は、通信制御管理装置50を更に備え、通信制御管理装置50は、クライアント側通信制御装置30に装着されたICカード40に記憶させる秘密鍵、及びクライアント証明書をクライアント側通信制御装置30に送信し、サーバ側通信制御装置31に装着されたICカード40に記憶させる秘密鍵、及びサーバ証明書をサーバ側通信制御装置31に送信する。これにより、実施形態の通信制御システム1は、通信制御管理装置50により発行された正当な秘密鍵、証明書を用いて、ハンドシェイクを行い、共通鍵を決定することができ、上述した効果を奏する他、社会インフラシステムの安全性を更に向上させることができる。
以上、実施形態の通信制御システム1について説明したが、実施形態の構成は、上記例に限定されない。例えば、通信制御装置30(31)は、処理の負荷に基づき、ハードウェアにより通信制御装置30(31)の機能を実現するHSM(Hardware Security Module)を用いてもよい。
また、実施形態の通信制御システム1においては、SSL/TLSプロトコルを用いたセキュアな通信を常時行うようにしてもよいし、SSL/TLSプロトコルを用いた通信を行うか否かを選択可能にしてもよい。また、クライアント装置10とサーバ装置20との間における双方向の通信のうち一方の方向の通信のみをSSL/TLSプロトコルを用いた通信としてもよい。また、SSL/TLSプロトコルを用いたセキュアな通信を常時行うようにしてもよいし、SSL/TLSプロトコルを用いた通信を行うか否かを選択可能にしてもよい。SSL/TLSプロトコルを用いた通信を常時行うようにすることで、通信制御装置30(31)により認証された正当な通信制御装置30(31)とは異なる装置からの通信を遮断することができる。このため、クライアント装置10やサーバ装置20に対する不正なアクセスや、クライアント装置10やサーバ装置20がマルウェアに感染することを抑止することができる。
また、実施形態の通信制御システム1においては、SSL/TLSプロトコルを用いた通信を常時行い、クライアント装置10やサーバ装置20に対する不正なアクセスを記憶するようにしてもよい。この場合、通信制御管理装置50に不正なアクセスの記録が送信されるようにしてもよい。通信制御管理装置50は、不正なアクセスの有無を認識することができ、システム全体に対する大規模攻撃が開始される前の予兆の段階を検出して対策することが可能となる。
また、実施形態の通信制御システム1においては、通信制御装置30(31)に装着するICカード40に、CC(Common Criteria/ISO15408)認証を取得したセキュアエレメントと呼ばれる耐タンパ性の高いチップを搭載してもよい。このチップを用いて、秘密鍵や公開鍵を含む証明書を記憶させることにより、非常に高い安全性を維持することができる。
また、実施形態の通信制御システム1においては、サーバ装置20や通信制御管理装置50等から、通信制御装置30(31)を介して、クライアント装置10のプログラムを更新させるようにしてもよい。通信制御装置30(31)を介してプログラムの更新(ファームウェアのアップデート)が行われることにより、安全にクライアント装置10の機能を更新させることができる。このようにサーバ装置20からクライアント装置10に対してファームウェアが送信される場合、サーバ装置20から送信されるファームウェアには、例えばサーバ側通信制御装置31により暗号化されたサーバ装置20の署名が付与される。この場合、クライアント装置10では、クライアント側通信制御装置30により署名が復号されることにより、送信されたファームウェアが間違いなくサーバ装置20から送信されたファームウェアであると判定することができる。これにより、あたかもサーバ装置20であるかのように装う不正な端末から、不正なファームウェアがクライアント装置10に送信されてしまった場合であっても、クライアント装置10に対し不正なファームウェアに基づく誤った更新がなされてしまうことを排除することができる。
また、このように通信制御装置30(31)を介して通信が行われることにより、サーバ装置20や通信制御管理装置50等からクライアント装置10にファームウェアを安全に更新することができるため、作業員が複数のクライアント装置10に対して物理的に各々のクライアント装置10が設置されている場所まで移動してファームウェアのアップデート作業を行う場合と比較して、作業コストを低減させることも可能である。
また、実施形態の通信制御システム1においては、サーバ装置20や通信制御管理装置50等から、通信制御装置30(31)を介して、クライアント装置10の起動や停止を行ってもよい。通信制御装置30(31)を介して起動や停止(リモートアクティベーション)が行われることにより、安全にクライアント装置10の機能を更新させることができ、セキュアな遠隔制御を実現させることができる。
なお、上述した実施形態の通信制御システム1において、クライアント側通信制御装置30-1がサーバ側通信制御装置31-1と通信を行う例を説明したが、クライアント側通信制御装置30の通信先はこれに限定されることはない。例えば、クライアント側通信制御装置30-1は、クライアント側通信制御装置30-2と通信を行ってもよい。クライアント側通信制御装置30-1は、クライアント側通信制御装置30-2から通信開始の合図を受信した場合、まずクライアント側通信制御装置30-2との間で相互認証を行い、クライアント側通信制御装置30-2が正当な通信端末であることを確認する。そして、相互認証が正しく行われた場合、クライアント側通信制御装置30-1は、クライアント側通信制御装置30-2から受信した情報をクライアント装置10に出力する。暗号を使用して送信データに認証子が付与されることにより、通信情報の改ざんの検出及び送信者の特定が可能となる。このため、本実施形態の通信制御システム1においては、クライアント側通信制御装置30とサーバ側通信制御装置31との通信、及びクライアント側通信制御装置30同士の通信において、「正しい相手から」、「改ざんされていないデータを受け取る」ことを確実にすることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
例えば、仲介処理部33Aは、クライアント側通信制御装置30と接続されるクライアント装置10A、10B、10C…との接続状況に基づいて、所定のコマンドをクライアント装置10A、10B、10C…に送信してもよい。例えば、クライアント装置10Aの接続が解除された場合、クライアント側通信制御部装置30は、クライアント装置10Aに対して再起動を指示するコマンドを送信する。また、クライアント装置10A、10Bが相互的に動作する関係である場合、いずれか一方の接続が解除されたならば、クライアント側通信制御装置30が、他の一方の接続も解除するためのコマンドを送信してもよい。こうすることで、クライアント側通信制御装置30からの通報で接続が解除されたクライアント装置10に管理者が到着する前に、クライアント装置10に対して所定の動作を実行させることができる。よって、即時的な制御を実現することができる。
言い換えると、クライアント装置10A,10B,10C…ごとに、自装置のクライアント側通信制御装置30との接続状況や、他装置のクライアント側通信制御装置30との接続状況などに応じて、動作条件が予め決められていてもよい。仲介処理部33Aは、接続状況に基づいて、合致する動作条件がある場合、動作条件を実行させるコマンドを対象のクライアント装置10A,10B,10C…に送信する。
クライアント側通信制御装置30は、複数のリーダライタ35を備え、通信するクライアント装置ごとに用意されたICカード40を搭載可能であってもよい。