以下、各実施形態について、図面を参照して説明する。
まず、各実施形態に係る通信システムのペースとなる基本的な構成例および動作例について説明する。
図1は、各実施形態に係る通信システムのベースとなる構成を有する通信システム1の構成例を示す図である。
通信システム1は、クライアント装置10(10-1~10-N)と、サーバ装置20と、クライアント側の通信制御装置30(30-1~30-N)(「第1の通信制御装置」の一例)と、サーバ側の通信制御装置31(「第1の通信制御装置」の一例)と、通信制御管理装置5(「プライベート認証局」の一例)と、ネットワーク6と、ゲートウェイ7と、を備える。以下の説明においては、ネットワーク6と、ネットワーク6とクライアント装置10等とを接続するゲートウェイ7と、をまとめて「ネットワークNW」とも称する。
クライアント装置10は、クライアント側の通信制御装置30を介してネットワークNWと接続する。サーバ装置20は、サーバ側の通信制御装置31を介してネットワークNWと接続する。なお、クライアント装置10、およびサーバ装置20の構成の詳細については後述する。
クライアント側の通信制御装置30は、クライアント装置10とネットワークNWとの間に接続され、クライアント装置10とサーバ装置20との間の通信を仲介する。クライアント側の通信制御装置30は、クライアント装置10によりサーバ装置20に対して送信されるデータを取得し、取得したデータをサーバ装置20に対して出力する。ここで、クライアント側の通信制御装置30は、サーバ装置20に対してデータを送信する際に、クライアント装置10から取得したデータを暗号化し、暗号化したデータをサーバ装置20に対して送信する。
また、クライアント側の通信制御装置30は、サーバ装置20によりクライアント装置10に対して送信されるデータを取得し、取得したデータをクライアント装置10に対して出力する。ここで、クライアント側の通信制御装置30が取得するデータは暗号化されたデータである。クライアント側の通信制御装置30は、クライアント装置10にデータを出力する際に、サーバ装置20からサーバ側の通信制御装置31を介して取得したデータを復号し、復号したデータをクライアント装置10に出力する。
サーバ側の通信制御装置31は、サーバ装置20とネットワークNWとの間に接続され、クライアント装置10とサーバ装置20との間の通信を仲介する。サーバ側の通信制御装置31は、サーバ装置20によりクライアント装置10に対して送信されるデータを取得し、取得したデータをクライアント装置10に対して送信する。ここで、サーバ側の通信制御装置31は、クライアント装置10に対してデータを送信する際に、サーバ装置20から取得したデータを暗号化し、暗号化したデータをクライアント装置10に対して送信する。
また、サーバ側の通信制御装置31は、クライアント装置10によりサーバ装置20に対して送信されるデータを取得し、取得したデータをサーバ装置20に対して出力する。ここで、サーバ側の通信制御装置31が取得するデータは暗号化されたデータである。サーバ側の通信制御装置31は、サーバ装置20にデータを出力する際に、クライアント装置10からクライアント側の通信制御装置30を介して取得したデータを復号し、復号したデータをサーバ装置20に出力する。
クライアント側の通信制御装置30およびサーバ側の通信制御装置31が行うデータの暗号化には、例えば、SSL(Secure Socket Layer)/TLS(Trans port 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)に置き換えてもよい。
通信システム1において、クライアント側の通信制御装置30、またはサーバ側の通信制御装置31により暗号化されたデータがネットワークNWに出力される。換言すると、通信システム1におけるネットワークNWを流れるデータは、暗号化されたデータであり。このため、ネットワークNWで送受信されるデータに対し、外部から悪意をもってアクセスされデータが盗聴されてしまうような危険を回避し、安全性を向上させる。なお、ここでいうデータの盗聴とは、「データを盗み見る行為」または「データを抜き取る行為」をいう。
通信制御管理装置5は、クライアント側の通信制御装置とサーバ側の通信制御装置とを用いた通信を管理するための通信管理サーバである。例えば、通信制御管理装置5は、クライアント側の通信制御装置30に対し、クライアント証明書、および秘密鍵を発行する。図1に示す構成例において、通信制御管理装置5は、クライアント側の通信制御装置30に装着するICカードに記憶するクライアント証明書、および秘密鍵を発行する。また、通信制御管理装置5は、ICカードが装着されたクライアント側の通信制御装置30に対し、ICカードに記憶させるクライアント証明書、および秘密鍵を、ネットワークNWを介して送信する。
また、通信制御管理装置5は、サーバ側の通信制御装置31に対し、サーバ証明書、および秘密鍵を発行する。例えば、通信制御管理装置5は、ICカードに記憶するサーバ証明書、および秘密鍵を発行する。また、通信制御管理装置5は、ICカードが装着されたサーバ側の通信制御装置31に対し、ICカードに記憶させるサーバ証明書、および秘密鍵を、ネットワークNWを介して送信する。クライアント証明書、サーバ証明書、および秘密鍵のそれぞれは、クライアント側の通信制御装置30とサーバ側の通信制御装置31とが暗号化通信を行う場合に用いる共通鍵(セッション鍵)を決定するために必要な情報である。
ここでは、クライアント装置10、およびサーバ装置20の構成について説明する。クライアント装置10とサーバ装置20とは、例えば、社会インフラシステムを構築する構成要素(コンポーネント)である。社会インフラとは、道路交通網、発電設備、配送電設備、水処理設備、又はガス配給設備等などの社会基盤を整えるために必要な設備である。社会インフラシステムとは、例えば、社会インフラを監視し、状況の変化を把握し、その変化に対応することにより、社会インフラを安定的に動作させる仕組みである。以下においては、クライアント装置10とサーバ装置とは、道路や公共設備などを監視する監視システムのコンポーネントである場合を例に説明する。この場合、クライアント装置10は、道路の状況等が撮像された撮像データを、ネットワークNWを介して送信する装置(ネットワーク監視カメラ)である。サーバ装置20は、クライアント装置10により送信された撮像データを、ネットワークNWを介して受信する装置である。
なお、クライアント装置10とサーバ装置20とは、監視システムのコンポーネントに限定されることはない。例えば、クライアント装置10とサーバ装置とは、発電設備や配送電設備における電力状況をモニタリングするシステムのコンポーネントであってもよいし、物流センタにおける配送状況を取得するシステム、あるいは工場や研究機関における設備の稼働状況を取得するシステム等のコンポーネントであってもよい。
図2は、図1に示すクライアント装置10、およびサーバ装置20の機能構成例を示すブロック図である。
クライアント装置10は、NW(ネットワーク)通信部11と、クライアント制御部12と、撮像部13とを備える。NW通信部11は、例えば、クライアント装置10のイーサネット(登録商標)のポートである。NW通信部11は、クライアント側の通信制御装置30に接続され、クライアント装置10からサーバ装置20に対して送信されるデータをクライアント側の通信制御装置30に出力する。なお、NW通信部11は、従来のシステムであれば、ネットワークNWに接続され、ネットワークNWを介して、サーバ装置20と通信を行う機能部に相当する。
クライアント制御部12は、例えば、CPUなどを含むプロセッサであり、クライアント装置10を統括的に制御する。クライアント制御部12は、例えば、サーバ装置20からの制御に従い、撮像部13に撮像を開始または停止させたり、撮像部13に対し撮像するカメラの方向や、撮像する際の倍率等の撮像条件を設定したりする。
撮像部13は、クライアント制御部12の指示に従い、所定箇所における風景を撮像する。撮像部13は、撮像したデータ(撮像データ)を、クライアント制御部12に出力する。
サーバ装置20は、NW(ネットワーク)通信部21と、サーバ制御部22と、撮像データ記憶部23とを備える。NW通信部21は、例えば、サーバ装置20のイーサネット(登録商標)のポートである。NW通信部21は、サーバ側の通信制御装置31に接続され、サーバ装置20からクライアント装置10に対して送信されるデータをサーバ側の通信制御装置31に出力する。なお、NW通信部21は、従来のシステムであれば、ネットワークNWに接続され、ネットワークNWを介して、クライアント装置10と通信を行う機能部に相当する。
サーバ制御部22は、例えば、CPUなどを含むプロセッサであり、サーバ装置20を統括的に制御する。サーバ制御部22は、例えば、クライアント装置10により撮像された撮像データを、撮像データ記憶部23に記憶させる。撮像データ記憶部23は、サーバ制御部22の指示に従い、撮像データを記憶する。
クライアント装置10とサーバ装置20とが、互いのNW通信部およびネットワークNWを介して接続された場合、クライアント装置とサーバ装置20との間の通信には、ネットワーク監視カメラにおける一般的な通信プロトコルであるHTTPが用いられることがある。
この場合、クライアント装置10、またはサーバ装置20によりネットワークNWに出力された、暗号化されていない情報(いわゆる、平文)がネットワークNWを流れる。この場合、外部から悪意をもってネットワークNW上のデータが取得されてしまうと、容易に撮像データが盗聴されたり、改ざんされたりする危険性がある。このような不正な攻撃に対する対策として、クライアント装置10には撮像データを暗号化させてネットワークNWに出力させることが考えられる。例えば、クライアント装置10のクライアント制御部12は、撮像データを暗号化し、暗号化した撮像データをネットワークNWに出力する。
しかしながら、そもそも監視カメラが備えるCPU等のプロセッサは、撮像データの圧縮や符号化の用途に用いられるために用いられる用途で用いられることが一般的であるため、さらに暗号化のための処理を行うだけの資源(リソース)を備えていないことが多い。このような場合、クライアント制御部12が元々有するCPUでは、撮像データを暗号化させることができない。クライアント制御部12に撮像データを暗号化させる場合には、撮像データを暗号化するためのプロセッサを、更にクライアント制御部12に搭載させる等、クライアント制御部12のハードウェア構成の変更や置換えが必要となることが考えられる。クライアント装置10は、監視カメラ等の社会インフラを構成するコンポーネントであるため、ハードウェア構成を変更したり置換えたりすることが容易にはできない。このような事情を鑑みると、クライアント装置10変更を加えることなく、撮像データが暗号化されてネットワークNWに出力されることが望ましい。
通信システム1は、クライアント装置10とネットワークNWとの間に接続されたクライアント側の通信制御装置30が、クライアント装置10が送信するデータを暗号化してネットワークNWに出力する。また、サーバ装置20とネットワークNWとの間に接続されたサーバ側の通信制御装置31は、サーバ装置20が送信する制御データを暗号化してネットワークNWに出力する。これにより、クライアント装置10、およびサーバ装置20を変更することなく、ネットワークNWを流れる撮像データの安全性を向上させる。
ここでは、クライアント側の通信制御装置30、およびサーバ側の通信制御装置31の構成について図3を用いて説明する。図3は、図1に示すクライアント側の通信制御装置30、およびサーバ側の通信制御装置31の機能構成例を示すブロック図である。クライアント側の通信制御装置30、およびサーバ側の通信制御装置31の機能構成は同じである。このため、以下では、一方(例えば、クライアント側の通信制御装置30)の構成について説明し、他方(例えば、サーバ側の通信制御装置31)の構成については説明を省略する。また、以下では、クライアント側の通信制御装置30とサーバ側の通信制御装置31とを区別しない場合には、単に、通信制御装置30(31)などと称する。
図3に示すように、通信制御装置30(31)は、NW(ネットワーク)通信部32と、制御部33と、装置通信部34と、リーダライタ35と、ICカード40とを備える。
ここで、ICカード40は、「認証部」の一例である。認証部は、リーダライタ35およびICカード40で実現するものに限定されない。認証部は、制御部33が実現しても良いし、認証処理用の処理回路で実現しても良い。
NW通信部32は、ネットワークNWに接続され、ネットワークNWを介して、他方の通信制御装置30(31)と通信を行う。
制御部33は、例えば、CPUなどを含むプロセッサであり、通信制御装置30(31)を統括的に制御する。制御部33は、例えば、リーダライタ35を介して、ICカード40にコマンドを送信するとともに、ICカード40からレスポンスを受信する。また、制御部33は、ICカード40から受信したレスポンスに基づく情報を、NW通信部32を介して、他方の通信制御装置30(31)に送信する。また、制御部33は、NW通信部32を介して、他方の通信制御装置30(31)から受信した情報に基づいて、ICカード40にコマンドを送信する。
装置通信部34は、装置(クライアント装置10、またはサーバ装置20)に接続され、装置と通信を行う。具体的には、クライアント側の通信制御装置30の装置通信部34は、クライアント装置10に接続され、クライアント装置10からの撮像データを取得するとともに、復号された制御データをクライアント装置10に出力する。また、サーバ側の通信制御装置31の装置通信部34は、サーバ装置20に接続され、サーバ装置20からの制御データを取得するとともに、復号された撮像データをサーバ装置20に出力する。
リーダライタ35は、コンタクト部36を介してICカード40に接続し、ICカード40との間の通信を行う。
ICカード40は、例えば、プラスチックのカード基材に、ICモジュール41を実装して形成されている。すなわち、ICカード40は、ICモジュール41と、ICモジュール41が埋め込まれたカード基材とを備える。また、ICカード40は、通信制御装置30(31)に着脱可能に装着され、コンタクト部36を介して通信制御装置30(31)と通信可能である。
ICカード40は、例えば、通信制御装置30(31)が送信したコマンド(処理要求)を、コンタクト部36を介して受信し、受信したコマンドに応じた処理(コマンド処理)を実行する。そして、ICカード40は、コマンド処理の実行結果であるレスポンス(処理応答)を通信制御装置30(31)にコンタクト部36を介して送信する。
ICモジュール41は、コンタクト部36とICチップ42とを備える。コンタクト部36は、ICカード40が動作するために必要な各種信号の端子を有している。ここで、各種信号の端子は、電源電圧、クロック信号、リセット信号などを通信制御装置30(31)から供給を受ける端子、及び、通信制御装置30(31)と通信するためのシリアルデ―タ入出力端子(SIO端子)を有する。ICチップ42は、例えば、1チップのマイクロプロセッサなどのLSI(Large Scale Integration)である。
ここでは、ICカード40のハードウェア構成について図4を用いて説明する。図4は、図3に示すICカード40のハードウェア構成例を示す図である。
ICカード40は、コンタクト部36と、ICチップ42とを備えたICモジュール41を備えている。そして、ICチップ42は、UART(Universal Asynchronous Recei ver 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(31)とシリアルデータ通信を行う。UART43は、SIO端子を介して受信したシリアルデータ信号をパラレル変換したデータ(例えば、1バイトのデータ)を内部バスBSに出力する。また、UART43は、内部バスBSを介して取得したデータをシリアル変換して、SIO端子を介して通信制御装置30(31)に出力する。UART43は、例えば、SIO端子を介してコマンドを通信制御装置30(31)から受信する。また、UART43は、SIO端子を介してレスポンスを通信制御装置30(31)に送信する。
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の構成について、図5を用いて説明する。図5は、図4に示すICカード40の機能構成例を示すブロック図である。ICカード40は、通信部50と、制御部51と、記憶部54とを備える。ここで、図5に示されるICカード40の各部は、図4に示されるICカード40のハードウェアを用いて実現される。
通信部50は、例えば、UART43と、CPU44と、ROM45に記憶されているプログラムとにより実現され、コンタクト部36を介して、例えば、通信制御装置30(31)との間でコマンド及びレスポンスの送受信を行う。すなわち、通信部50は、所定の処理を要求するコマンド(処理要求)を通信制御装置30(31)から受信するとともに、コマンドに対するレスポンス(処理応答)を通信制御装置30(31)に送信する。通信部50は、UART43を介して通信制御装置30(31)から受信した受信データをRAM46に記憶させる。また、通信部50は、RAM46に記憶されている送信データを、UART43を介して通信制御装置30(31)に送信する。
制御部51は、例えば、CPU44と、RAM45と、ROM46又はEEPROM47とにより実現され、ICカード40を統括的に制御する。制御部51は、コマンド処理部52と暗号化復号部53とを備える。
ここで、コマンド処理部52が行う処理は、「認証処理」の一例である。また、暗号化復号部53が行う処理は、「暗号化復号処理」の一例である。
コマンド処理部52は、各種コマンド処理を実行する。コマンド処理部52は、例えば、後述するHTTPSリクエストを要求するコマンド処理として、SSL/TLSハンドシェイクを行う。SSL/TLSハンドシェイクでは、暗号化された通信に必要な鍵情報等の交換、および通信先の装置との相互認証を行う。ここで、相互認証とは、クライアント側の通信制御装置30とサーバ側の通信制御装置31とが、通信を行う前に、互いに正当に認証された装置であることを相互に確認する認証処理である。
暗号化復号部53は、データを暗号化する処理、および暗号化されたデータを復号する処理を実行する。暗号化復号部53は、通信部50を介して取得した装置(クライアント装置10、またはサーバ装置20)により出力されたデータを暗号化する。また、暗号化復号部53は、通信部50を介して取得したネットワークNWからの暗号化されたデータを復号する。
記憶部54は、例えば、EEPROM47により構成された記憶部であり、証明書情報記憶部55と、秘密情報記憶部56とを備える。証明書情報記憶部55は、通信制御管理装置5が発行した装置(クライアント装置10、またはサーバ装置20)に対する証明書を記憶する。具体的には、クライアント側の通信制御装置30に装着されるICカード40の証明書情報記憶部55には、クライアント証明書を示す情報が記憶される。また、サーバ側の通信制御装置31に装着されるICカード40の証明書情報記憶部55には、サーバ証明書を示す情報が記憶される。
秘密情報記憶部56は、通信制御管理装置5が発行した装置(クライアント装置10、またはサーバ装置20)に対する秘密鍵を記憶する。具体的には、クライアント側の通信制御装置30に装着されるICカード40の秘密情報記憶部56には、クライアント側の通信制御装置30に対して発行された秘密鍵を示す情報が記憶される。また、サーバ側の通信制御装置31に装着されるICカード40の証明書情報記憶部55には、サーバ側の通信制御装置31に対して発行された秘密鍵を示す情報が記憶される。
ここでは、通信制御管理装置5の構成について、図6を用いて説明する。図6は、図1に示す通信制御管理装置5の構成例を示すブロック図である。通信制御管理装置5は、例えば、NW(ネットワーク)通信部60と、制御部61と、記憶部66とを備える。
NW通信部60は、ネットワークNWに接続され、ネットワークNWを介して、通信制御装置30(31)と通信を行う。
制御部61は、例えば、CPUなどのプロセッサを含む。制御部61は、プロセッサがプログラムを実行することにより種々の処理を実現する。制御部61は、通信制御管理装置5を統括的に制御する。また、制御部61は、主に通信制御装置30(31)の正当性を認めるプライベート認証局として動作する。図6に示す例では、制御部61は、プロセッサがプログラムを実行することにより、鍵生成部62、証明書発行部63、証明書更新部64、証明書管理部65および管理部69としての機能を実現するための処理を実行する。
鍵生成部62は、例えば、通信制御装置30(31)からの認証申請に基づいて、後述する証明書に含まれる公開鍵に対応する秘密鍵の発行を行う。
証明書発行部63は、例えば、通信制御装置30(31)からの認証申請に基づいて、通信制御装置30(31)の正当性を認める証明書の発行を行う。証明書には、公開鍵と、通信制御装置30(31)の所有者を示す情報が含まれる。
証明書更新部64は、有効期限が渡過した証明書に対して新たな有効期限を設定することにより、証明書の更新を行う。証明書更新部64は、例えば、通信制御装置30(31)からの更新申請に基づいて、当該通信制御装置30(31)に対して発行した証明書の有効期限を延長させた証明書を発行し、発行した証明書を通信制御装置30(31)に対して送信する。発行した証明書を示す情報が通信制御装置30(31)により受信され、通信制御装置30(31)のICカード40の証明書情報記憶部55に記憶されることで、通信制御装置30(31)の証明書の有効期限が延長される。
証明書管理部65は、既に発行済みの証明書に対する管理を行う。証明書管理部65は、例えば、通信制御装置30(31)に装着されたICカード40の改ざん、または盗難等により相互認証において互いの正当性が証明されない場合に、通信制御装置30(31)に対して発行した証明書を無効化する処理を行う。また、証明書管理部65は、通信制御装置30(31)からの問い合わせに基づいて、通信制御装置30(31)、および他の通信装置に対して発行した証明書が証明書管理部65により発行されたものか否か応答するようにしてもよい。また、証明書管理部65は、定期的に、発行済みの証明書が正当な通信制御装置30(31)に使用されているかを確認するようにしてもよい。
管理部69は、通信制御装置30(31)を管理する。例えば、管理部69は、通信制御装置30(31)が行う相互認証を、ネットワークNWを介して遠隔制御する。
記憶部66は、例えば、鍵情報記憶エリア67と、証明書情報記憶エリア68とを備える。鍵情報記憶エリア67は、例えば既に発行済みの公開鍵や、秘密鍵を示す情報を記憶する。証明書情報記憶エリア68は、例えば既に発行済みの証明書を示す情報を記憶する。鍵情報記憶エリア67と、証明書情報記憶エリア68とは、例えば、鍵生成部62が秘密鍵を発行する際、証明書発行部63が証明書を発行する際などに参照される。また、鍵情報記憶エリア67には、鍵生成部62が発行した秘密鍵を示す情報が記憶される。また、証明書情報記憶エリア68には、証明書発行部63が発行した証明書を示す情報が記憶される。
ここでは、通信システム1が行う処理の流れについて、図7を用いて説明する。
図7は、通信システム1が行う処理の一例を示すシーケンスチャートである。
クライアント装置10は、撮像データをサーバ装置20に送信する場合、まずサーバ装置20に対するHTTPリクエストを送信する(ステップS1)。クライアント装置10が送信したHTTPリクエストは、クライアント側の通信制御装置30により取得される(ステップS2)。
クライアント側の通信制御装置30は、クライアント装置10により送信されたHTTPリクエストを取得すると、サーバ側の通信制御装置31に対して、HTTPSのリクエスト(ClientHello)を送信する(ステップS3)。これにより、クライアント側の通信制御装置30とサーバ側の通信制御装置31との間のハンドシェイクが開始される(ステップS4)。
具体的には、クライアント側の通信制御装置30が送信するClientHelloには、例えば、TLSのバージョン、および通信に用いる暗号方式やアルゴリズムのリストを示す情報が含まれる。サーバ側の通信制御装置31は、ClientHelloに対する応答として、クライアント側の通信制御装置30に対しHTTPSのレスポンス(ServerHello)を送信する。サーバ側の通信制御装置31が送信するServerHelloには、例えばClientHelloで提示された選択肢の中でサーバ装置20が選択した情報が含まれる。換言すると、クライアント側の通信制御装置30からの提示に対し、サーバ側の通信制御装置31が選択を行うことで、通信における具体的な暗号化アルゴリズムが決定される。
そして、サーバ側の通信制御装置31は、暗号化通信に用いる共通鍵に必要な情報を送る。共通鍵に必要な情報には、例えば、サーバ装置20に対して発行された公開鍵とその証明書を示す情報、およびクライアント装置10の公開鍵とその証明書を送ることを要求する情報が含まれる。クライアント側の通信制御装置30は、サーバ側の通信制御装置31に対して、自装置に対して発行された公開鍵とその証明書、及び暗号化通信に用いる共通鍵に必要な情報を送る。
クライアント側の通信制御装置30とサーバ側の通信制御装置31との間の相互認証は、例えば次のように行われる。クライアント側の通信制御装置30は、今までに受信したServerHello等から署名を生成し、サーバ側の通信制御装置31に送信する。サーバ側の通信制御装置31は、クライアント側の通信制御装置30から受信した署名を、クライアント側の通信制御装置30から受信した証明書に基づいて検証する。サーバ側の通信制御装置31は、検証が成功すると、その証明書が間違いなくクライアント側の通信制御装置30のものであると判定する。また、サーバ側の通信制御装置31は、今までに受信したClientHello等から署名を生成し、クライアント側の通信制御装置30に送信する。クライアント側の通信制御装置30は、サーバ側の通信制御装置31から受信した署名を、サーバ側の通信制御装置31から受信した証明書に基づいて検証する。クライアント側の通信制御装置30は、検証が成功すると、その証明書が間違いなくサーバ側の通信制御装置31のものであると判定する。
クライアント側の通信制御装置30とサーバ側の通信制御装置31との間の相互認証が正しく行われると、クライアント側の通信制御装置30とサーバ側の通信制御装置31とは、それぞれ暗号化に用いる共通鍵を生成して交換する。
サーバ側の通信制御装置31から送付されたサーバ装置20に対して発行された公開鍵とその証明書が、クライアント側の通信制御装置30に許容される証明書であれば、サーバ側の通信制御装置31は、クライアント側の通信制御装置30から送付された公開鍵とその証明書が、サーバ側の通信制御装置31に許容される証明書であれば、ハンドシェイクを終了する。
サーバ側の通信制御装置31は、クライアント側の通信制御装置30とのハンドシェイクが確立されると、サーバ装置20に対し、HTTPリクエストを送信する(ステップS5)。HTTPリクエストは、ステップS1においてクライアント装置10から送信されるHTTPリクエストである。
サーバ側の通信制御装置31により送信されたHTTPリクエストは、サーバ装置20により受信される(ステップS6)。このとき、サーバ装置20は、クライアント装置10からHTTPリクエストが要求されたと認識する。このため、サーバ装置20は、クライアント装置10に対しするHTTPレスポンスを応答する(ステップS7)。サーバ装置20が送信したHTTPレスポンスは、サーバ側の通信制御装置31により取得される(ステップS8)。
サーバ側の通信制御装置31は、取得したサーバ装置20からのHTTPレスポンスを、ステップS4のハンドシェイクにおいて決定された共通鍵を用いて暗号化する(ステップS9)。サーバ側の通信制御装置31により暗号化されたHTTPレスポンスは、ネットワークNWを介してクライアント側の通信制御装置30に受信される(ステップS10)。クライアント側の通信制御装置30は、受信したHTTPレスポンスを、共通鍵を用いて復号する(ステップS11)。クライアント側の通信制御装置30により復号されたHTTPレスポンスは、クライアント装置10に取得される(ステップS12)。クライアント装置10は、復号されたHTTPレスポンスを受信する(ステップS13)。このとき、クライアント装置10は、サーバ装置20からHTTPレスポンスが応答されたと認識する。このため、クライアント装置10は、サーバ装置20に対し、撮像データを送信する(ステップS14)。
クライアント装置10が送信した撮像データは、クライアント側の通信制御装置30により取得される(ステップS15)。クライアント側の通信制御装置30は、クライアント装置10により送信された撮像データを、共通鍵を用いて暗号化する(ステップS16)。クライアント側の通信制御装置30により暗号化された撮像データは、ネットワークNWを介してサーバ側の通信制御装置31に受信される(ステップS17)。
サーバ側の通信制御装置31は、受信した撮像データを、共通鍵を用いて復号する(ステップS18)。サーバ側の通信制御装置31により復号された撮像データは、サーバ装置20にとり取得される(ステップS19)。サーバ装置20は、復号された撮像データを受信する(ステップS20)。このとき、サーバ装置20は、クライアント装置10からの撮像データを受信したと認識する。
なお、上記フローチャートのステップS4において、クライアント側の通信制御装置30とサーバ側の通信制御装置31との間の相互認証が正しく行われなかった場合、クライアント側の通信制御装置30は、通信先との通信を許可しない。具体的には、クライアント側の通信制御装置30は、通信先から送信された情報をクライアント装置10に出力しない。相互認証が正しく行われなかった場合、通信先がサーバ側の通信制御装置31に見せかけた不正な通信装置である可能性があるためである。この場合、クライアント側の通信制御装置30は、例えば、相互認証が正しく行われなかった場合の通信記録を通信制御管理装置5に送信するようにしてもよい。これより、通信制御管理装置5は相互認証が正しく行われなかった場合の通信記録を取得することができ、管理下にあるクライアント側の通信制御装置30に対する不正な通信のパターンや頻度を把握することで、ネットワークの異常を監視することができる。
また、クライアント側の通信制御装置30は、上記フローチャートのステップS4において行われるハンドシェイクにおいて相互認証の代わりにクライアント装置10に対する通信を許可する通信機器の情報を示す送信先リストに基づいて、通信先との通信を許可するか否かを判定するようにしてもよい。送信先リストに示される通信機器の情報は、例えばURL(Uniform Resource Locator)である。クライアント側の通信制御装置30の制御部33は、通信先のURLが送信先リストに登録されているURLである場合に当該通信先との通信を許可し、送信先リストに登録されていない場合には通信を許可しない。
また、制御部33は、送信先リストを更新するようにしてもよい。制御部33は、例えば、一定期間にクライアント装置10に対する通信を許可された通信先のURL、および許可されなかった通信先URLを記憶させる。そして、制御部33は、例えば、送信先リストに登録されたURLのうち、一定期間に通信が行われた通信先のURLを再度登録する等することにより送信先リストを更新する。あるいは、クライアント側の通信制御装置30は、一定期間に通信を許可された通信先URL、および許可されなかった通信先URLを通信制御管理装置5に送信するようにしてもよい。この場合、例えば、通信制御管理装置5は、クライアント側の通信制御装置30と通信を行った通信先URLに基づいて、送信先リストを更新するようにしてもよい。通信制御管理装置5により送信先リストが更新されることで、通信制御管理装置5が管理下にあるクライアント側の通信制御装置30と通信する通信機器を一括して管理することができる。
また、クライアント側の通信制御装置30は、ステップS4において行われるハンドシェイクが確立した後にクライアント装置10に対して送信された情報(例えば、ファームウェアの更新プログラム)の内容が正しいか否かの検証を行うようにしてもよい。例えば、クライアント側の通信制御装置30の制御部33は、ネットワークNWを介してクライアント装置10のファームウェアの更新プログラムが送信された場合、検証用の鍵(検証鍵)を用いて検証する。この場合、通信制御管理装置5は、例えば、クライアント側の通信制御装置30およびサーバ側の通信制御装置31それぞれに検証鍵を送信するようにしてもよい。
例えば、サーバ側の通信制御装置31は、クライアント装置10へ送信する情報(平文)からハッシュ値を生成し、生成したハッシュ値を検証鍵で暗号化する。そして、サーバ側の通信制御装置31は、平文と暗号化したハッシュ値をさらに秘密鍵で暗号してクライアント装置10へ送信する。また、クライアント側の通信制御装置30は共通鍵を用いて情報を復号化し、平文と暗号化されたハッシュ値とを取得する。
また、クライアント側の通信制御装置30は、取得した平文からハッシュ値を生成するとともに、暗号化されたハッシュ値を検証鍵で復号する。クライアント側の通信制御装置30は、平文から生成したハッシュ値と、復号化したハッシュ値とが等しい値である場合、クライアント装置10に対して送信された情報は正しい内容であると判定する。この場合、クライアント側の通信制御装置30は、復号した情報(平文)をクライアント装置10に出力する。一方、クライアント側の通信制御装置30は、平文から生成したハッシュ値と復号化したハッシュ値が等しい値でない場合、クライアント装置10に対して送信された情報は、サーバ装置20またはサーバ側の通信制御装置31に見せかけた不正な通信装置から送信された不正な情報である可能性があると判定する。この場合、クライアント側の通信制御装置30は、復号した情報(平文)をクライアント装置10に出力しない。
これにより、クライアント装置10は、検証済みである正しい内容であることが検証された情報のみを受け取ることができる。また、通常、クライアント装置10がファームウェアを更新する際の更新プログラムの内容が正しいか否かの判定を行うと考えられるが、クライアント装置10に代わりサーバ側の通信制御装置31がクライアント装置10に対して送信された情報の内容を検証することにより、クライアント装置10の処理負担を軽減させることが可能となる。
以上説明したように、通信システム1は、クライアント装置10とネットワークNWとの間に接続されるクライアント側の通信制御装置30と、サーバ装置20とネットワークNWとの間に接続されるサーバ側の通信制御装置31と、を備える。クライアント側の通信制御装置30は、クライアント装置10からの情報を暗号化してネットワークNW経由でサーバ側の通信制御装置31へ送信し、ネットワークNWからの情報(通信制御装置31で暗号化されたサーバ装置20からの情報)を復号してクライアント装置10へ送信する。サーバ側の通信制御装置31は、サーバ装置20からの情報を暗号化してネットワークNW経由でクライアント側の通信制御装置30へ送信し、ネットワークNWからの情報(通信制御装置30で暗号化されたクライアント装置からの情報)を復号してサーバ装置20に送信する。
これにより、通信システム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やサーバ装置20が不正に乗っ取られることがない。つまり、通信システム1では、ランサムウェアに対する対策も可能となる。
また、例えば、ネットワーク内に管理者が不在の端末(野良デバイスともいう)がある場合、その端末が不正に乗っ取られることにより、その端末がマルウェア等の攻撃を行う不正な端末として利用されてしまう場合がある。これに対し、上述した通信システム1では、クライアント装置10とサーバ装置20との間で、通信制御装置30(31)を介した相互認証が行われることにより、ネットワークNWの内部にある管理者が不在の端末が不正に乗っ取られて攻撃に利用された場合であっても、マルウェア等に感染することを防止することができる。
また、上述した通信システム1では、サーバ装置20がサーバ側の通信制御装置31に接続されており、サーバ装置20の内部で認証処理を行わない。このため、サーバ装置20の内部で証明書等を保持する必要がなく、サーバ側の通信制御装置31に接続されたサーバ装置20が通信制御管理装置5の管理下であることが明確となる。サーバ装置20がすでにサーバ側の通信制御装置31に相当する機能部を有している場合には、必ずしもサーバ装置20とネットワークNWとの間にサーバ側の通信制御装置31が物理的に接続される必要はない。この場合、サーバ装置20が元々有するサーバ側の通信制御装置31に相当する機能部により、クライアント側の通信制御装置30との間の認証処理が行われる。
また、通信システム1では、ICカード40の制御部51において、相互認証と暗号化復号処理とのうち少なくともいずれか一方を行わせる。このため、通信制御装置30(31)の装置コストを抑制することができる。
また、通信システム1においては、通信制御装置30(31)に装着されたICカード40が相互認証と暗号化復号処理とのうち少なくともいずれか一方の処理を行う例を説明したが、通信システム1は、相互認証および暗号化複合化処理を行う構成が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は、通信制御管理装置5を更に備え、通信制御管理装置5は、クライアント側の通信制御装置30に装着されたICカード40に記憶させる秘密鍵、及びクライアント証明書をクライアント側の通信制御装置30に送信し、サーバ側の通信制御装置31に装着されたICカード40に記憶させる秘密鍵、及びサーバ証明書をサーバ側の通信制御装置31に送信する。これにより、通信システム1は、通信制御管理装置5により発行された正当な秘密鍵、証明書を用いて、ハンドシェイクを行い、共通鍵を決定することができ、上述した効果を奏する他、社会インフラシステムの安全性を更に向上させることができる。
なお、通信システム1の構成は、上述した例に限定されない。例えば、通信制御装置30(31)は、処理の負荷に基づき、ハードウェアにより通信制御装置30(31)の機能を実現するHSM(Hardware Security Module)を用いてもよい。つまり、通信制御装置30(31)は、セキュアな処理が可能な限り、必ずしもICカードを装着する構成に限らず、上記通信制御装置30(31)の機能を実現できるICチップやICモジュールを用いた構成としてもよい。
また、通信システム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に対する不正なアクセスを記憶するようにしてもよい。この場合、通信制御管理装置5に不正なアクセスの記録が送信されるようにしてもよい。通信制御管理装置5は、不正なアクセスの有無を認識することができ、システム全体に対する大規模攻撃が開始される前の予兆の段階を検出して対策することが可能となる。
また、通信システム1においては、通信制御装置30(31)は、定期的に、自装置が接続されているクライアント装置10またはサーバ装置20との接続が維持されているか否かを確認するようにしてもよい。この場合、通信制御管理装置5に接続状態を示す情報が送信されるようにしてもよい。通信制御管理装置5は、通信制御装置30(31)から接続状態を示す情報が受信できない場合などには、通信制御装置30(31)がクライアント装置10またはサーバ装置20から切り離された判断し、当該切り離された通信制御装置30(31)を無効とする。こうすることで通信制御管理装置5は、切り離された通信制御装置30(31)が不正な装置に接続されてなりすましに悪用されることを抑制する。
また、通信システム1においては、通信制御装置30(31)に装着するICカード40に、CC(Common Criteria/ISO15408)認証を取得したセキュアエレメントと呼ばれる耐タンパ性の高いチップを搭載してもよい。このチップを用いて、秘密鍵や公開鍵を含む証明書を記憶させることにより、非常に高い安全性を維持することができる。
また、通信システム1においては、サーバ装置20や通信制御管理装置5等から、通信制御装置30(31)を介して、クライアント装置10のプログラムを更新させるようにしてもよい。通信制御装置30(31)を介してプログラムの更新(ファームウェアのアップデート)が行われることにより、安全にクライアント装置10の機能を更新させることができる。このようにサーバ装置20からクライアント装置10に対してファームウェアが送信される場合、サーバ装置20から送信されるファームウェアには、例えばサーバ側の通信制御装置31により暗号化されたサーバ装置20の署名が付与される。この場合、クライアント装置10では、クライアント側の通信制御装置30により署名が復号されることにより、送信されたファームウェアが間違いなくサーバ装置20から送信されたファームウェアであると判定することができる。これにより、あたかもサーバ装置20であるかのように装う不正な端末から、不正なファームウェアがクライアント装置10に送信されてしまった場合であっても、クライアント装置10に対し不正なファームウェアに基づく誤った更新がなされてしまうことを排除することができる。
また、このように通信制御装置30(31)を介して通信が行われることにより、サーバ装置20や通信制御管理装置5等からクライアント装置10にファームウェアを安全に更新することができるため、作業員が複数のクライアント装置10に対して物理的に各々のクライアント装置10が設置されている場所まで移動してファームウェアのアップデート作業を行う場合と比較して、作業コストを低減させることも可能である。
また、通信システム1においては、サーバ装置20や通信制御管理装置5等から、通信制御装置30(31)を介して、クライアント装置10の起動や停止を行ってもよい。通信制御装置30(31)を介して起動や停止(リモートアクティベーション)が行われることにより、安全にクライアント装置10の機能を更新させることができ、セキュアな遠隔制御を実現させることができる。
また、通信システム1においては、クライアント装置10、およびサーバ装置20が有線により通信する場合を例に説明したが、これに限定されることはない。クライアント装置10、およびサーバ装置20のうち少なくともいずれかが無線LAN等により無線通信を行う装置であってもよい。例えば、クライアント装置10が無線通信によりサーバ装置20と通信を行う場合、クライアント側の通信制御装置30は、無線による通信機能を有し、クライアント装置10により送信されるデータを暗号化し、暗号化したデータを、無線通信によりサーバ装置20に送信する。
なお、上述した通信システム1において、クライアント側の通信制御装置30がサーバ側の通信制御装置31と通信を行う例を説明したが、クライアント側の通信制御装置30の通信先はこれに限定されることはない。例えば、クライアント側の通信制御装置30-1は、クライアント側の通信制御装置30-2と通信を行ってもよい。クライアント側の通信制御装置30-1は、クライアント側の通信制御装置30-2から通信開始の合図を受信した場合、まずクライアント側の通信制御装置30-2との間で相互認証を行い、クライアント側の通信制御装置30-2が正当な通信端末であることを確認する。そして、相互認証が正しく行われた場合、クライアント側の通信制御装置30-1は、クライアント側の通信制御装置30-2から受信した情報をクライアント装置10に出力する。暗号を使用して送信データに認証子が付与されることにより、通信情報の改ざんの検出及び送信者の特定が可能となる。このため、通信システム1においては、クライアント側の通信制御装置30とサーバ側の通信制御装置31との通信、及びクライアント側の通信制御装置30同士の通信において、「正しい相手から」、「改ざんされていないデータを受け取る」ことを確実にすることができる。
(第1の実施形態)
次に、第1の実施形態に係る通信システムについて説明する。
図8は、第1の実施形態に係る通信システム100の第1構成例を示す図である。図8に示す通信システム100は、図1に示すシステム構成において通信制御装置30を通信制御装置101に置き換えたものである。また、図8に示す構成例において、通信制御装置101は、ネットワークNWとクライアント装置10との間に、並列に設けた複数の通信デバイス111A、111Bを有する。
図8に示す構成において、通信システム100における通信制御装置101以外の各装置は、図1に示す装置と同様な構成で実現することができる。このため、以下、通信制御装置101以外の構成については、詳細な説明を省略するものとする。
なお、通信システム100においては、通信制御装置31についても、通信制御装置101と同様に、ネットワークNWとサーバ装置20との間に、並列に設けた複数の通信デバイスを具備する構成としても良い。
図9は、第1の実施形態に係る通信システム100の第1の構成例における通信制御装置101の構成例を示すブロック図である。
図9に示す構成例において、通信制御装置101は、複数の通信デバイス111として並列に配置した第1通信デバイス111Aと第2通信デバイス111Bとを有する。第1通信デバイス111Aと第2通信デバイス111Bとは、通信制御装置101において、ネットワークNW側に接続するハブ114とクライアント側に接続するハブ115との間に並列に接続する。第1通信デバイス111Aおよび第2通信デバイス111Bは、それぞれが上述した図1に示す通信制御装置30と同等の通信処理を実行する構成を有する。
また、図9に示す構成例において、通信制御装置101は、第1通信デバイス111Aと第2通信デバイス111Bとが共用する電源116およびメモリI/F117とを有するものとする。電源116は、外部電源に接続され、外部電源からの電力を各通信デバイス111A、111Bへ供給する。メモリI/F117は、メモリカードなどのメモリデバイス118をセットするインターフェースである。例えば、メモリI/F117には、初期設定情報などの通信デバイス111A、111Bに適用する情報を記憶したメモリデバイス118がセットされる。メモリI/F117にセットするメモリデバイス118は、通信デバイス111A、111Bから供給されるデータ(例えば、ログデータ)を記憶するようにしても良い。
ただし、第1実施形態に係る通信制御装置101は、通信制御装置30と同様な構成を有する複数の通信デバイスを並列に配置したシステムとして実現しても良い。このようなシステムでは、各通信デバイスがそれぞれ電源およびメモリI/Fなどを具備する構成として良い。また、通信制御装置101において、第1通信デバイス111Aと第2通信デバイス111Bとは、ネットワークNWとクライアント装置10との間に並列に配置するものであれば良い。例えば、通信制御装置101は、ハブ114及び115を設けずに、第1通信デバイス111Aと第2通信デバイス111Bとが、それぞれネットワークNWおよびクライアント装置10に接続するインターフェースを具備した構成であっても良い。
各通信制御装置101において、第1通信デバイス111Aおよび第2通信デバイス111Bは、ネットワークNWとクライアント装置10との間に並列に配置され、何れか一方が通常通信モード(第1の通信モード)による通信処理を実行する。通信制御装置101は、通常通信モードで通信する通信デバイス111A、111Bを切り替えることによりネットワークNWとクライアント装置10との間における通信制御を実現する。
ここで、通常通信モードは、上述したようなサーバ側の通信制御装置31との相互認証に基づく共通鍵を用いた送受信データの暗号化および復号化を伴う通信を行う動作モードであるものとする。また、本実施形態において、通信制御装置101は、通常通信モードにおいて、後述するホワイトリストにある宛先との通信を許可するホワイトリスト運用モードで通信を実行するものとする。
なお、通信制御装置101において並列に設ける第1通信デバイス111Aおよび第2通信デバイス111Bは、それぞれが独立した2つの通信処理用のソフトウエアで実現するものであっても良い。この場合、ハードウエアとしては1つの通信デバイスを2つのソフトウエアで実現する並列に配置した2つの通信デバイスとして動作するようにしても良い。
各通信デバイス111(第1通信デバイス111Aおよび111B)は、自身の故障、不正アクセス、あるいは、マルウエア感染などを検知する機能を有する。例えば、通信デバイス111は、故障、不正アクセス又はマルウエア感染などを示す故障や通信障害などの不具合を示す情報を通信制御管理装置(デバイス管理サーバ)5へ送信する。また、各通信デバイス111は、通信制御管理装置5からの指示に応じて動作モードを切り替える。例えば、各通信デバイス111は、通信制御管理装置5からの指示に応じて未通信状態から通常通信モードに切り替えたり、通常通信モードから未通信状態に切り替えたりする。
各通信デバイス111(111A、111B)は、図9に示すように、コントローラ120、ブリッジ132、ハブ133、ブリッジ134、リーダライタ135およびICカード140を有する。
コントローラ120は、通信デバイス111を制御するものである。図9に示す構成例において、コントローラ120は、MPU121、RAM122、SAM123およびデータメモリ124などを有する。
MPU121は、コントローラ120の制御を司るプロセッサの一例である。MPU121は、データメモリ124などに記憶したプログラムを実行することで種々の処理を実現する。例えば、コントローラ120は、MPU121がプログラムを実行することにより、通信制御、故障検知、通信障害の検知、自己診断、および、ログ情報の収集などの処理を実行する。
また、コントローラ120は、MPU121がプログラムを実行することにより、サーバ側の通信制御装置31との相互認証処理、クライアント装置10からネットワークNWへ送出するデータの暗号化処理、ネットワークNWを経由してクライアント装置へ送信される暗号化されたデータの復号化処理などを行うようにしても良い。また、コントローラ120は、リーダライタ135を介して接続するICカード140に対して、相互認証処理、暗号化処理および復号化処理の少なくとも何れか1つを依頼するようにしても良い。
RAM122は、ランダムアクセスメモリである。RAM122は、作業用のデータを保持するワーキングメモリとして機能する。SAM123は、シリアルアクセスメモリである。データメモリ124は、書き換え可能な不揮発性のメモリである。
データメモリ124は、プログラムおよび設定情報などを記憶する。例えば、データメモリ124は、通信を許可する宛先のリストを示すホワイトリストを記憶する。コントローラ120は、通信モードがホワイトリストにある宛先との通信を行うホワイトリスト運用モード(通常通信モード、第1の通信モード)である場合、データメモリ124に記憶するホワイトリストを参照して通信を実行する。また、コントローラ120は、データメモリ124にあるホワイトリストを通信制御管理装置5からの指示に応じて書き換えるようにしても良い。例えば、通信デバイス111は、ホワイトリストにある宛先をすべて削除することにより未通信状態とするようにしても良い。また、データメモリ124は、当該通信デバイスの動作状態を示すログ情報を記憶するようにしても良い。データメモリ124に蓄積したログ情報は、通信制御管理装置(デバイス管理サーバ)5へ送ったり、自己診断処理などに用いたりする。
ブリッジ132、134は、通信インターフェース(通信部)として機能する。ブリッジ132おおよび134は、ハブ133を介してコントローラ120に接続される。
ブリッジ132は、通信デバイス111におけるネットワークNW側の通信を実行する。ブリッジ132は、図3に示すNW通信部32としての通信を実現する。ブリッジ132は、ネットワークNWから受信するデータをハブ133を介してコントローラ120へ供給する。また、ブリッジ134は、コントローラ120またはICカード140で暗号化したデータをネットワークNWへ送出する。
ブリッジ134は、通信デバイス111におけるクライアント装置10側の通信を実行する。ブリッジ134は、図3に示す装置通信部34としての通信を実現する。ブリッジ134は、クライアント装置10からのデータをハブ133を介してコントローラ120へ供給する。例えば、ブリッジ134は、ネットワークNWからの暗号化されたデータをコントローラ110またはICカード140で復号化したデータをクライアント装置10へ送出する。
リーダライタ135およびICカード140は、上述した図3に示すリーダライタ35およびICカード40に相当するものである。ICカード140は、上述した図4に示すICカード40と構成を有するもので実現できる。また、ICカード140は、上述した図5に示すICカード40と同様な処理機能を有し、通信制御装置101における認証部の一例として機能する。
次に、第1の実施形態に係る図8に示す構成の通信システム100における第1の動作例について説明する。
図10は、図8に示す構成の通信システム100における動作例を説明するためのシーケンスである。
まず、通信制御装置101は、第1通信デバイス111Aがホワイトリストに基づく通常の運用モード(通常通信モード、第1の通信モード)で通信を実行し(ステップS101)、第2通信デバイス111Bが未通信状態であるものとする(ステップS102)。
第1通信デバイス111Aのコントローラ120は、通常通信モードにおいて、通信データ量、通信速度、通信時間、エラーの検出頻度などの動作状態を監視し、当該第1通信デバイスにおける故障または通信障害の有無を検知する(ステップS103)。また、コントローラ120は、設定されたタイミングで自己診断を実行することにより当該通信デバイス111A内における不具合の有無を検知するようにしても良い。また、各通信デバイス111は、不具合を検知する検知器を設け、検知器による検知結果をコントローラ120が取得する構成としても良い。
第1通信デバイス111Aのコントローラ120は、不具合を検知しなければ(ステップS103、NO)、通常通信モードでの通信を継続して実行する。また、第1通信デバイス111Aのコントローラ120は、通常通信モードで通信を実行中に不具合を検知すると(ステップS103、YES)、不具合を示す情報を通信制御管理装置5へ送信する。
通信制御装置101の第1通信デバイス111Aが送信した不具合を示す情報は、通信制御管理装置5により取得される(ステップS105)。通信制御管理装置5の制御部61は、通信制御装置101の第1通信デバイス111Aからの不具合を示す情報に応じて、当該通信制御装置101の第2通信デバイス111Bを通常通信モードとし、第1通信デバイス111Aを未通信状態するように制御する。
すなわち、第1通信デバイス111Aからの不具合を示す情報を受信すると、通信制御管理装置5の制御部61は、不具合を示す情報の発信元である通信制御装置101の第2通信デバイス111Bに対して通常通信モードへの切替を指示する(ステップS106)。この通信制御管理装置5からの通常通信モードへの切替を指示は、不具合を示す情報の発信元である通信制御装置101の第2通信デバイス111Bにより取得される(ステップS107)。これにより、第2通信デバイス111Bのコントローラ120は、通信制御管理装置5からの通常通信モードへの切替指示に応じて動作モードを通常通信モードに切り替える(ステップS108)。
また、第1通信デバイス111Aからの不具合を示す情報を受信すると、通信制御管理装置5の制御部61は、不具合を示す情報の発信元である通信制御装置101の第1通信デバイス111Aに対して未通信状態となることを指示する(ステップS109)。この通信制御管理装置5からの未通信状態への切替指示は、不具合を示す情報の発信元である第1通信デバイス111Aにより取得される(ステップS110)。これにより、第1通信デバイス111Aのコントローラ120は、通信制御管理装置5からの未通信状態への切替指示に応じて動作モードを未通信状態に切り替える(ステップS111)。
ここで、第1通信デバイスと第2通信デバイスとの動作モードの切り替えは、通信制御装置101としての通信が途切れることが無いように切り替えられる。例えば、通信制御管理装置(デバイス管理サーバ)5は、第2通信デバイス111Bにおける通常通信モードへの切り替えが完了した後に第1通信デバイス111Aを未通信状態をするようにする。これにより、通信制御管理装置5は、通信制御装置101における通信の可用性を確実に確保することができる。
なお、通信制御装置101は、通常通信モードで通信を実行中の一方の通信デバイスに不具合が発生した場合に、他方の通信デバイスで通常通信モードでの通信を実行するように切り替える制御を通信制御装置101内で実現するようにしても良い。例えば、通常通信モードで通信を実行中の第1通信デバイスが不具合を検知した場合、第1通信デバイス111Aのコントローラ120が第2通信デバイス111Bに対して通常通信モードへの切替を要求するようにしても良い。これにより、第2通信デバイス111Bは要求に応じて通常通信モードで起動し、第1通信デバイス111Aが未通信状態に遷移するようにできる。この場合、第1通信デバイスと第2通信デバイスとは互いのアドレスによって通信することが可能である。
次に、第1の実施形態に係る通信システムの第2の構成例について説明する。
図11は、第1の実施形態に係る通信システム100´の第2の構成例を示す図である。図11に示す通信システム100´は、図1に示すシステム構成において通信制御装置30を通信制御装置101´に置き換えたものである。また、図11に示す構成例において、通信制御装置101´は、ネットワークNWとクライアント装置10との間に、直列に配置した複数の通信デバイス111C、111Dを有する。
図11に示す構成において、通信システム100´における通信制御装置101´以外の各装置は、図1に示す装置と同様な構成で実現することができる。このため、以下、通信制御装置101´以外の各装置の構成については、詳細な説明を省略するものとする。
なお、通信システム100´においては、通信制御装置31についても、通信制御装置101´と同様に、ネットワークNWとサーバ装置20との間に、直列に配置した複数の通信デバイスを具備する構成としても良い。
図12は、第1の実施形態に係る通信システム100´の第2の構成例における通信制御装置101´の構成例を示すブロック図である。
図12に示す構成例において、通信制御装置101´は、複数の通信デバイス111として、直列に配置した第1通信デバイス111Cと第2通信デバイス111Dとを有する。図12に示す例では、通信制御装置101´において、ネットワークNWに接続する第1通信デバイス111Cとクライアント装置10に接続する第2通信デバイス111Dとが直列に接続される。
また、図12に示す構成例において、通信制御装置101´は、第1通信デバイス111Cと第2通信デバイス111Dとが共用する電源116およびメモリI/F117とを有するものとする。電源116は、図9と同様に、外部電源に接続され、外部電源からの電力を各通信デバイス111C、111Dへ供給するものである。また、メモリI/F117は、図9と同様に、メモリカードなどのメモリデバイス118をセットするインターフェースである。
ただし、通信制御装置101´は、通信制御装置30と同様な構成を有する複数の通信デバイスを直列に配置したシステムとして実現しても良い。このようなシステムでは、複数の通信デバイス111´がそれぞれ電源およびメモリI/Fなどの構成を具備するものとして良い。
第1通信デバイス111Cおよび第2通信デバイス111Dは、それぞれが上述した図1に示す通信制御装置30と同等の通信処理を実行する構成を有する。すなわち、各通信制御装置101内において、ネットワークNWとクライアント装置10との間に直列に配置された第1通信デバイス111Cおよび第2通信デバイス111Dは、何れか一方が通常通信モード(第1の通信モード)による通信を行い、他方がパススルーモード(第2の通信モード)で通信を行う。
ここで、パススルーモード(第2の通信モード)は、入力する情報をそのまま通過させて出力する通信モードである。また、通常通信モードは、上述したようにサーバ側の通信制御装置31との相互認証に基づく共通鍵を用いた送受信データの暗号化および復号化を伴う通信を行う動作モードであるものとする。また、本実施形態において、通信制御装置101´は、通常運用モードにおいて、上述したようなホワイトリストにある宛先との通信を許可するホワイトリスト運用モードで通信を実行するものとする。
なお、通信制御装置101´において直列に設ける第1通信デバイス111Cおよび第2通信デバイス111Dは、それぞれが独立した2つの通信処理用のソフトウエアで実現するものであっても良い。この場合、ハードウエアとしては1つの通信デバイスを2つのソフトウエアで実現する並列に配置した2つの通信デバイスとして動作するようにしても良い。
各通信デバイス111´(第1通信デバイス111Cおよび111D)は、自身の故障、不正アクセス、あるいは、マルウエア感染などを検知する機能を有する。例えば、通信デバイス111´は、故障、不正アクセス又はマルウエア感染などを示す故障や通信障害などの不具合を示す情報を通信制御管理装置(デバイス管理サーバ)5へ通知する。また、各通信デバイス111´は、通信制御管理装置5からの指示に応じて動作モードを切り替える。例えば、各通信デバイス111´は、通信制御管理装置5からの指示に応じてパススルーモードから通常通信モードに切り替えたり、通常通信モードからパススルーモードに切り替えたりする。
図12に示すように、各通信デバイス111´(111C、111D)は、図9に示す構成と同様に、コントローラ120、ブリッジ132、ハブ133、ブリッジ134、リーダライタ135およびICカード140などを有するものとする。また、コントローラ120は、MPU121、RAM122、SAM123およびデータメモリ124などを有するものとする。これらの各構成は、図9に示す各構成と同様なもので実現できるため、詳細な説明を省略するものとする。
次に、第1の実施形態に係る図11に示す構成の通信システム100´における動作例(第2の動作例)について説明する。
図13は、図11に示す構成の通信システム100´における動作例を説明するためのシーケンスである。
まず、通信制御装置101´は、第1通信デバイス111Cがホワイトリストに基づく通常の運用モード(通常通信モード)で通信を実行し(ステップS121)、第2通信デバイス111Dがパススルーモードで動作するものとする(ステップS122)。
第1通信デバイス111Cのコントローラ120は、通常通信モードにおいて、通信データ量、通信速度、通信時間、エラーの検出頻度などの動作状態を監視し、当該第1通信デバイスにおける故障または通信障害の有無を検知する(ステップS123)。また、コントローラ120は、設定されたタイミングで自己診断を実行することにより当該通信デバイス111A内における不具合の有無を検知するようにしても良い。また、各通信デバイス111は、不具合を検知する検知器を設け、検知器による検知結果をコントローラ120が取得する構成としても良い。
第1通信デバイス111Cのコントローラ120は、不具合を検知しなければ(ステップS123、NO)、通常通信モードでの通信を継続して実行する。また、第1通信デバイス111Cのコントローラ120は、通常通信モードで通信を実行中に不具合を検知すると(ステップS123、YES)、不具合を示す情報を通信制御管理装置5へ通知する(ステップS124)。
通信制御装置101´の第1通信デバイス111Cが通知する不具合を示す情報は、通信制御管理装置5により取得される(ステップS125)。通信制御管理装置5の制御部61は、通信制御装置101´の第1通信デバイス111Cからの不具合を示す情報に応じて、当該通信制御装置101´の第2通信デバイス111Dを通常通信モードとし、第1通信デバイス111Cをパススルーモードとするように制御する。
すなわち、第1通信デバイス111Cからの不具合を示す情報を受信すると、通信制御管理装置5の制御部61は、不具合を示す情報の発信元である通信制御装置101´の第2通信デバイス111Dに対して通常通信モードへの切替を指示する(ステップS126)。この通信制御管理装置5からの通常通信モードへの切替を指示は、不具合を示す情報の発信元である通信制御装置101´における第2通信デバイス111Dにより取得される(ステップS127)。これにより、第2通信デバイス111Dのコントローラ120は、通信制御管理装置5からの通常通信モードへの切替指示に応じて動作モードを通常通信モードに切り替える(ステップS128)。
また、第1通信デバイス111Cからの不具合を示す情報を受信すると、通信制御管理装置5の制御部61は、不具合を示す情報の発信元である通信制御装置101´の第1通信デバイス111Cに対してパススルーモードとなることを指示する(ステップS129)。この通信制御管理装置5からのパススルーモードへの切替指示は、不具合を示す情報の発信元である第1通信デバイス111Cにより取得される(ステップS130)。これにより、第1通信デバイス111Cのコントローラ120は、通信制御管理装置5からのパススルーモードへの切替指示に応じて動作モードをパススルーモードに切り替える(ステップS131)。
以上のような第1の実施形態に係る通信システムによれば、通信制御装置において複数の通信デバイスを設けた冗長構成とする。これにより、第1の実施形態によれば、ネットワークを介したデータ通信におけるセキュリティ性を確保するための通信制御装置に故障や通信障害が発生しても通信が途切れることなく継続することができるような確実な可用性をもった通信の運用を実現できる。
(第2の実施形態)
次に、第2の実施形態に係る通信システムについて説明する。
図14は、第2の実施形態に係る通信システム200の構成例を示す図である。図14に示す通信システム200は、図1に示すシステム構成においてクライアント側の通信制御装置30を通信制御装置201に置き換えたものである。また、図14に示す構成例において、通信制御装置201は、ネットワークNWとクライアント装置10との間に、分散制御器212Aおよび212Bを介して並列に配置した複数の通信デバイス211A、211B、211Cを有する。
図14に示す構成において、通信システム200における通信制御装置201以外の各装置は、図1に示す装置と同様な構成で実現することができる。このため、通信制御装置200以外の構成については、詳細な説明を省略するものとする。
なお、通信システム200においては、サーバ側の通信制御装置31についても、通信制御装置201と同様に、ネットワークNWとサーバ装置20との間に、分散制御器を介して並列に配置した複数の通信デバイスを具備する構成としても良い。
図15は、第2の実施形態に係る通信システム200の構成例における通信制御装置201の構成例を示すブロック図である。
図15に示す構成例において、通信制御装置201は、複数の通信デバイス211として並列に配置した3つの通信デバイス211A、211B、211Cを有する。複数の通信デバイス211A~211Cは、通信制御装置201において、ネットワークNWに接続する分散制御器212Aとクライアント装置10に接続する分散制御器212Bとの間に並列に接続する。複数の通信デバイス211A~211Cは、それぞれが上述した図1に示す通信制御装置30と同等の通信処理を実行する構成を有する。また、分散制御器212A、212Bは、通信処理の負荷を複数の通信デバイス211A~211Cに分散する制御を行う。したがって、暗号化復号処理や、証明書による相互認証処理も、それぞれの通信デバイス211A~211Cが有するコントローラが処理を行うことができる。
また、図15に示す構成例において、通信制御装置201は、複数の通信デバイス211A~211C、分散制御器212A、212Bが共用する電源216を有する。また、通信制御装置201は、複数の通信デバイス211A~211Cが共用するおよびメモリI/F217も有する。電源216は、外部電源に接続され、外部電源からの電力を各通信デバイス211A~211Cおよび分散制御器212A、212Bへ供給する。メモリI/F217は、メモリカードなどのメモリデバイス218をセットするインターフェースである。例えば、メモリI/F217には、各通信デバイス211に対する設定情報などを記憶したメモリデバイス218がセットされる。
なお、第2の実施形態に係る通信制御装置201において、並列に配置される通信デバイス211の個数は、3個に限定されるものではく、複数であれば良い。また、通信制御装置201において、並列に配置される各通信デバイス211は、同内容の通信処理を行うものであれば良く、処理能力が異なるものであっても良い。さらには、通信制御装置201において、並列に配置される各通信デバイス211は、処理能力が異なるもの置き換えても良い。
また、第2の実施形態に係る通信制御装置201は、通信制御装置30と同様な構成を有する複数の通信デバイスを2つの分散制御器212A、212B間に並列に配置した分散デバイスシステムとして実現しても良い。この場合、分散デバイスシステムを構成する各通信デバイスは、それぞれ電源およびメモリI/Fなどを具備し、独立して動作することができる装置として構成されるものとして良い。
各通信デバイス211(211A~211C)は、図15に示すように、コントローラ220、ブリッジ232、ハブ233、ブリッジ234、リーダライタ235およびICカード240を有する。
コントローラ220は、通信デバイス211を制御するものである。図15に示す構成例において、コントローラ220は、MPU221、RAM222、SAM223およびデータメモリ224などを有する。
MPU221は、コントローラ220の制御を司るプロセッサの一例である。MPU221は、データメモリ224などに記憶したプログラムを実行することで種々の処理を実現する。例えば、コントローラ220は、MPU221がプログラムを実行することにより、通信制御、故障検知、通信障害の検知、通信状態の監視、自己診断、および、ログ情報の取集などの処理を実行する。
また、コントローラ220は、MPU221がプログラムを実行することにより、サーバ側の通信制御装置31との相互認証処理、クライアント装置10からネットワークNWへ送出するデータの暗号化処理、ネットワークNWを経由してクライアント装置へ送信される暗号化されたデータの復号化処理などを行うようにしても良い。また、コントローラ220は、相互認証処理、暗号化処理および復号化処理の少なくとも何れか1つをICカード240に対して依頼するようにして良い。
RAM222は、ランダムアクセスメモリである。RAM222は、作業用のデータを保持するワーキングメモリとして機能する。SAM223は、シリアルアクセスメモリである。データメモリ224は、書き換え可能な不揮発性のメモリである。
データメモリ224は、プログラムおよび設定情報などを記憶する。例えば、データメモリ224は、通信を許可する宛先のリストを示すホワイトリストを記憶する。コントローラ220は、データメモリ224に記憶するホワイトリストを参照して通常通信モード(第1の通信モード)での通信を実行する。また、データメモリ224は、当該通信デバイスの動作状態を示すログ情報を記憶するようにしても良い。また、データメモリ224は、当該通信デバイスにおける通信量を示す情報を記憶するようにしても良い。また、データメモリ224は、ログデータの分析などによる自己診断処理などを実行したりする。
ブリッジ232、234は、通信インターフェース(通信部)として機能する。ブリッジ232おおよび234は、ハブ233を介してコントローラ220に接続される。
ブリッジ232は、通信デバイス211におけるネットワークNW側の通信を実行する。ブリッジ232は、図3に示すNW通信部32としての通信を実現する。ブリッジ232は、ネットワークNWから受信するデータをハブ233を介してコントローラ220へ供給する。また、ブリッジ234は、コントローラ220またはICカード240で暗号化したデータをネットワークNWへ送出する。
ブリッジ234は、通信デバイス211におけるクライアント装置10側の通信を実行する。ブリッジ234は、図3に示す装置通信部34としての通信を実現する。ブリッジ234は、クライアント装置10からのデータをハブ233を介してコントローラ220へ供給する。また、ブリッジ234は、ネットワークNWからの暗号化されたデータをコントローラ220またはICカード240で復号化したデータをクライアント装置10へ送出する。
リーダライタ235およびICカード240は、上述した図3に示すリーダライタ35およびICカード40に相当するものである。ICカード240は、上述した図4に示すICカード40と構成を有するもので実現できる。また、ICカード240は、上述した図5に示すICカード40と同様な処理機能を有し、通信制御装置201における認証部の一例として機能する。
各分散制御器212(212A、212B)は、図15に示すように、コントローラ251、メモリ252、ハブ253およびインターフェース(I/F)254を有する。
コントローラ251は、分散制御器212を制御するものである。コントローラ251は、プロセッサおよび各種のメモリなどを有する。コントローラ251においては、プロセッサがプログラムを実行することで種々の処理を実現する。例えば、コントローラ251は、プロセッサがプログラムを実行することにより各通信デバイス211A~211Cへの通信負荷の分散制御を行う。
メモリ252は、設定情報などを記憶する。例えば、メモリ252は、通信負荷の分散を判断するための閾値などを記憶する。コントローラ251は、メモリ252に記憶した閾値などの設定情報に基づいて通信負荷に応じて複数の通信デバイスから通信処理を実行させる通信デバイスを決定する。
ハブ253は、ネットワークNWまたはクライアント装置10と複数の通信デバイス211A~211Cとを接続させるインターフェースである。ハブ253は、コントローラ251によって接続先する通信デバイスが制御される。
インターフェース254は、設定情報などを取得するためのインターフェースである。閾値などの設定情報を通信制御管理装置(デバイス管理サーバ)5から取得する運用形態とする場合、インターフェース254は、通信制御管理装置5と通信するための通信部として構成される。また、インターフェース254は、閾値などの設定情報を記憶したメモリカードなどのメモリデバイスから情報を読み取るメモリリーダで構成しても良い。また、インターフェース254は、閾値などの設定情報を供給する外部装置を接続するためのインターフェースであっても良い。
次に、第2実施形態に係る図14及び図15に示す構成の通信システム200の動作例について説明する。
図16は、図14及び図15に示す構成の通信システム200における分散制御器212(212A、212B)の動作例を説明するためのフローチャートである。
まず、分散制御器212は、インターフェース254などにより入力される複数の通信デバイス211A~211Cによる分散処理のための設定情報を受け付ける(S201)。分散処理のための設定情報を取得した場合(ステップS201、YES)、分散制御器212(212A又は212B)のコントローラ251は、入力される設定情報に基づいて複数の通信デバイス211A~211Cによる分散処理を決定するための閾値を設定する(ステップS202)。ここでは、1つの通信制御装置201において並列に配置される通信デバイスが3つである場合を想定するものとし、コントローラ251は、第1閾値と第2閾値とをメモリ252に保存するものとする。
例えば、第1閾値は、通信処理を1つの通信デバイスで実施するか否かを判定するための通信制御装置201全体での処理の負荷に対する判定基準値である。分散制御器212のコントローラ251は、通信制御装置201全体での処理の負荷が第1閾値未満であれば1つの通信デバイスで通信処理を実行し、第1閾値以上であれば複数の通信デバイスで分散して通信処理を実行するものとする。
さらに、第2閾値は、通信処理を3つの通信デバイスで実施するか否かを判定するための通信制御装置201全体での処理の負荷に対する判定基準値である。分散制御器212のコントローラ252は、通信制御装置201全体での処理の負荷が第2閾値以上であれば3つの通信デバイスで分散して通信処理を実行し、第1閾値以上かつ第2閾値未満であれば2つの通信デバイスで分割して通信処理を実行するものとする。分散処理を実施するための設定情報としての閾値は、適宜設定できるようにしても良い。
また、分散制御器212A、212Bのコントローラ251は、通信量などに基づく通信デバイスにおける処理の負荷を監視する(ステップS203)。例えば、ネットワークNW側から入力する情報に対して通信デバイス211が復号化処理を実行するため、分散制御器212Aのコントローラ251は、ネットワークNW側から入力するデータ量を処理の負荷として監視する。また、クライアント装置10から入力する情報に対しては通信デバイス211が暗号化処理を実行するため、分散制御器212Bのコントローラ251は、クライアント装置10から入力するデータ量を処理の負荷として監視する。
分散制御器212のコントローラ251は、監視している処理の負荷が第1閾値未満であれば(ステップS204、YES)、1つの通信デバイス211により通信処理を実行させる(ステップS205)。
例えば、複数の通信デバイスが動作している状態であれば、コントローラ251は、監視している処理の負荷が第1閾値未満となった場合に1つの通信デバイスだけで通信を実行し、通信を実行しない通信デバイスを未通信状態(スリープ状態)への遷移させる。
これにより、分散制御器212は、処理が負荷が第1閾値未満である場合に、1つの通信デバイスだけで通信処理を実行し、その他の通信デバイスを未通信状態とすることで無駄な電力消費を抑制できる。
また、分散制御器212のコントローラ251は、監視している処理の負荷が第1閾値以上であれば(ステップS204、NO)、処理の負荷が第2閾値未満であるかを判定する(ステップS206)。コントローラ251は、処理の負荷が第1閾値以上かつ第2閾値未満である場合(ステップS206、YES)、2つの通信デバイスに分散して通信処理を実行させる(ステップS207)。
例えば、1つの通信デバイス211Aだけが動作している状態であれば、コントローラ251は、監視している処理の負荷が第1閾値以上かつ第2閾値未満となった場合、2つの目の通信デバイス211Bを通信可能な状態とする。通信デバイス211Aに加えて通信デバイス211Bが通信可能な状態となると、コントローラ251は、ハブ253から出力する情報を通信デバイス211Aと通信デバイス211Bとへ振り分ける。
これにより、分散制御器212は、処理が負荷が第1閾値以上かつ第2閾値未満である場合に2つの通信デバイスで分散して処理を実行するようにできる。この結果として、分散制御器212は、処理が負荷に応じて動作させる複数の通信デバイスで分散して通信処理を実行でき、処理能力の不足によってデータ遅延などが発生することを防止できる。
また、分散制御器212のコントローラ251は、監視している処理の負荷が第2閾値以上であれば(ステップS206、NO)、3つの通信デバイスに分散して通信処理を実行させる(ステップS208)。例えば、2つの通信デバイス211A及び211Bが動作している状態であれば、コントローラ251は、監視している処理の負荷が第2閾値以上となった場合、3つの目の通信デバイス211Aを通信可能な状態とする。通信デバイス211A及び211Bに加えて通信デバイス211Cが通信可能な状態となると、コントローラ251は、ハブ253から出力する情報を通信デバイス211Aと通信デバイス211Bと通信デバイス211Cへ振り分ける。
これにより、分散制御器212は、処理が負荷が第2閾値以上である場合に3つの通信デバイス(最大数の通信デバイス)で分散して処理を実行するようにできる。この結果として、分散制御器212は、処理が負荷に応じて動作させる複数の通信デバイスで分散して通信処理を実行でき、処理能力の不足によってデータ遅延などが発生することを防止できる。
なお、上述した動作例は、複数の通信デバイスが正常に動作することを前提して説明したものであるが、分散制御器は、各通信デバイスにおける故障あるいは通信障害などの不具合を検知し、不具合が発生した通信デバイス以外で上述した分散制御を行うようにしても良い。また、全ての通信デバイスにおいて不具合が発生した場合には、分散制御器は、何れかの1つの通信デバイスをパススルーモードとして動作させてデータ通信を確実に継続させるようにしても良い。
また、上述した通信制御装置は、同等な複数の通信デバイスを並列に配置するものとしたが、処理能力が異なる複数の通信デバイスを並列に配置するようにしても良い。また、1つの通信デバイスをメインの処理デバイスとし、それ以外の通信デバイスをスレーブの処理デバイスとしてメインの通信デバイスの処理を補助するような運用としても良い。さらに、通信デバイスが実施する処理内容を分けて実施するようにしても良い。
以上のように、第2実施形態に係る通信システムは、ネットワークとクライアント装置との間に分散制御器を介して複数の通信デバイスを並列に配置した通信制御装置を有する。分散制御器は、通信制御装置における処理の負荷を監視し、処理の負荷に応じた台数の通信デバイスで通信処理を分散して実行する。
これにより、1つの通信デバイスの最大通信許容量を超えたデータの通信を行う場合であっても、通信制御装置としてデータ遅延を起こす確率を減らすことができる。また、処理の負荷に応じた台数の通信デバイスで通信を実行するように制御するため、負荷が少ない状態で多数の通信デバイスを起動させることがなく、省電力化を図ることもできる。
(第3の実施形態)
次に、第3の実施形態に係る通信システムについて説明する。
図17は、第3の実施形態に係る通信システム300および通信制御装置301の構成例を示す図である。図17に示す通信システム300は、図1に示すシステム構成においてクライアント側の通信制御装置30を通信制御装置301に置き換えたものである。ただし、通信システム300において、ネットワークNWとサーバ装置20との間に配置されるサーバ側の通信制御装置31についても、通信制御装置301と同様の構成を有するものとして良い。なお、図17に示す構成において、通信システム300における通信制御装置301以外の各装置は、図1に示す装置と同様な構成で実現することができるため、詳細な説明を省略するものとする。
図17に示す構成例において、通信制御装置301は、電源316、メモリI/F317、コントローラ320、ブリッジ332、ハブ333、ブリッジ334、リーダライタ335、ICカード340などを有する。
コントローラ320は、通信デバイス211を制御するものである。図17に示す構成例において、コントローラ320は、MPU321、RAM322、SAM323およびデータメモリ324などを有する。
MPU321は、コントローラ320の制御を司るプロセッサの一例である。MPU321は、データメモリ324などに記憶したプログラムを実行することで種々の処理を実現する。例えば、コントローラ320は、MPU321がプログラムを実行することにより、通信制御、故障検知、通信障害の検知、通信量の分析、自己診断、ログ情報の保存およびログ情報の送信などの処理を実行する。
また、コントローラ320は、MPU321がプログラムを実行することにより、サーバ側の通信制御装置31との相互認証処理、クライアント装置10からネットワークNWへ送出するデータの暗号化処理、ネットワークNWを経由してクライアント装置10へ送信される暗号化されたデータの復号化処理などを行うようにしても良い。また、コントローラ320は、相互認証処理、暗号化処理および復号化処理の少なくとも何れか1つをICカード340に対して依頼するようにして良い。
RAM322は、ランダムアクセスメモリである。RAM322は、作業用のデータを保持するワーキングメモリとして機能する。SAM323は、シリアルアクセスメモリである。データメモリ324は、書き換え可能な不揮発性のメモリである。
データメモリ324は、プログラムおよび設定情報などを記憶する。例えば、データメモリ324は、通信を許可する宛先のリストを示すホワイトリストを記憶する。コントローラ320は、データメモリ324に記憶するホワイトリストを参照して通常通信モード(第1の通信モード)での通信を実行する。また、データメモリ324は、当該通信制御装置の動作状態を示すログ情報を記憶するようにしても良い。また、データメモリ324は、コントローラ320による当該通信制御装置における通信量の分析情報を記憶する。
ブリッジ332、334は、通信インターフェース(通信部)として機能する。ブリッジ332おおよび334は、ハブ333を介してコントローラ320に接続される。
ブリッジ332は、通信制御装置301におけるネットワークNW側の通信を実行する。ブリッジ332は、図3に示すNW通信部32としての通信を実現する。ブリッジ332は、ネットワークNWから受信するデータをハブ333を介してコントローラ320へ供給する。また、ブリッジ334は、コントローラ320またはICカード340で暗号化したデータをネットワークNWへ送出する。
ブリッジ334は、通信制御装置301におけるクライアント装置10側の通信を実行する。ブリッジ334は、図3に示す装置通信部34としての通信を実現する。ブリッジ334は、クライアント装置10からのデータをハブ333を介してコントローラ320へ供給する。また、ブリッジ334は、ネットワークNWからの暗号化されたデータをコントローラ320またはICカード340で復号化したデータをクライアント装置10へ送出する。
リーダライタ335およびICカード340は、上述した図3に示すリーダライタ35およびICカード40に相当するものである。ICカード340は、上述した図4に示すICカード40と構成を有するもので実現できる。また、ICカード340は、上述した図5に示すICカード40と同様な処理機能を有し、通信制御装置301における認証部の一例として機能する。
また、電源316は、外部電源に接続され、外部電源からの電力を当該通信制御装置301内の各部へ供給する。メモリI/F317は、メモリカードなどのメモリデバイス318をセットするインターフェースである。例えば、メモリI/F317には、通信制御装置301に対する設定情報などを記憶したメモリデバイス318がセットされる。
次に、第3実施形態に係る図17に示す構成の通信システム300の動作例について説明する。
図18は、図17に示す通信システム300における第1の動作例を説明するためのシーケンスである。
まず、通信制御装置301は、通常の運用において通信量を含むログ情報を蓄積する。例えば、通信制御装置301のコントローラ320は、通信インターフェースとしてのブリッジ332および334を通過するデータを監視することにより、当該通信制御装置301の通信量を示す情報をデータメモリ324に保存する。
通信制御装置301のコントローラ320は、データメモリ324にログ情報として蓄積する通信量を示す情報を分析し、分析結果としての通信量の分析情報をデータメモリ324に記憶する(ステップS301)。例えば、コントローラ320は、所定の周期で通信量の分析を行って通信量の分析情報をデータメモリ324に記録する。通信量の分析情報は、例えば、時間当たりの通信量を示すものであっても良いし、時間帯ごとの通信量および通信量の増減傾向などを示すものであっても良いし、通信量が所定閾値未満となる時間帯あるいは通信量が最小となる時間帯を示す情報でも良い。第3の実施形態においては、通信量の分析情報は、当該通信制御装置301が自己診断を実施する時刻を決めるための情報であれば良い。
通信制御装置301のコントローラ320は、データメモリ324に記憶した通信量の分析情報を通信制御管理装置(デバイス管理サーバ)5へ送信する(ステップS302)。コントローラ320は、例えば、所定のタイミングで通信量の分析情報を送信するようにしても良いし、通信制御管理装置5からの要求に応じて送信するようにしても良い。また、コントローラ320は、当該通信制御管理装置5における通信量が少ない時間帯を自己判断し、通信量が少ないと判断した時間帯に通信量の分析情報を通信制御管理装置5へ送信するようにしても良い。
通信制御装置301から送信される通信量の分析情報は、通信制御管理装置5に取得される(ステップS303)。通信制御管理装置5の制御部61は、NW通信部60により受信した通信量の分析情報を送信元の通信制御装置301を示す識別情報に対応づけて記憶部66に記憶する。制御部61は、受信した通信量の分析情報に基づいて当該通信制御装置301が自己診断を実行すべき時刻または時間帯を決定する(ステップS304)。例えば、制御部301は、通信量の分析情報に基づいて通信量が所定閾値未満となる時間帯のうち自己診断処理の要する時間が確保できる時刻を自己診断の実施時刻(実施予定時刻)として特定する。また、夜中等、長時間通信量が低くなるような使用状況下においては、所定閾値未満であるかどうかにかかわらず、自己診断処理の要する時間が確保できる時刻を自己診断の実施時刻(実施予定時刻)として特定してもよい。
自己診断の実施時刻を決定した後、制御部61は、自己診断の実施時刻になると、当該通信制御装置301に対して生死確認クエリを送信する(ステップS305)。生死確認クエリは、正常に動作中であるか否かの応答を要求するものである。通信制御装置301のコントローラ320は、通信制御管理装置5からの生死確認クエリを受信すると(ステップS306)、正常動作中であれば正常であることを示す応答を送信する(ステップS307)。また、通信制御装置301は、生死確認クエリに対して前回の自己診断を実施した日時などを応答するようにしても良い。
通信制御管理装置5の制御部61は、通信制御装置301からの応答に基づいて自己診断を実施させるか否かを判断する(ステップS308)。例えば、制御部61は、通信制御装置から応答がない場合、あるいは、前回の自己診断を実施したに日時から所定期間以上経過している場合、当該通信制御装置301に自己診断を実施させるものと判断する。また、制御部61は、通信制御装置301からの応答内容にかかわらず、自己診断を実施させるようにしても良い。自己診断を実施させる場合、通信制御管理装置5の制御部61は、当該通信制御装置301に対して自己診断の実施を要求する(ステップS309)。
通信制御管理装置5のコントローラ320は、通信制御管理装置5からの自己診断の実施要求を受信すると、現在、自身が自己診断を実施できる状況であるかを判断する(ステップS311)。例えば、コントローラ320は、現在の通信量が所定の閾値未満であれば自己診断を実施するものとする。
これは、通信制御管理装置5が指定する自己診断の実施時刻は、過去の通信量(通信量の分析情報)に基づくものであって、実際には設定した時刻に通信量が多い可能性があるためである。第3実施形態に係るシステムは、通信制御装置や通信システム全体にできるだけ、負荷をかけずに自己診断を実行させるための制御を行うものである。このため、通信制御装置のコントローラは、実際の通信量が多くなっている場合には自己診断を実施しない(延期する)と判断するものとする。
自己診断を実施する場合(ステップS311、YES)、コントローラ320は、自己診断を実施し(ステップS312)、自己診断の実行結果を示す情報を通信制御管理装置5へ送信する。この場合、自己診断の実行結果を示す情報は、通信制御装置301から送信され、通信制御管理装置5が取得する(ステップS313)。
また、自己診断を実施しない場合(ステップS311、NO)、コントローラ320は、自己診断を実施していないことを示す通知を通信制御管理装置5へ送信する(ステップS314)。この場合、自己診断を実施していないことを示す通知が、自己診断の実施要求に対する応答として通信制御管理装置5により取得される(ステップS315)。
自己診断の実施要求に対する結果を取得すると、通信制御管理装置5の制御部61は、自己診断の結果を記憶部66に保存する(ステップS316)。例えば、通信制御装置30で自己診断が実施された場合、制御部61は、自己診断の実行結果を示す情報を実施日時と共に当該通信制御装置301の識別情報に対応づけて記憶部66に記憶する。また、通信制御装置30で自己診断が実施されなかった場合、制御部61は、自己診断が実施できなかった旨の情報を当該通信制御装置301の識別情報に対応づけて記憶部66に記憶する。
また、通信制御管理装置5の制御部61は、取得した自己診断の実行結果に対して異常の有無を検証する。自己診断の実行結果から異常と判断される項目があれる場合(ステップS317、YES)、制御部61は、通信制御装置301または通信システム300に異常があることを示すアラートを報知する(ステップS318)。また、生死確認クエリに対して通信制御装置301から応答がない場合も、制御部61は、通信制御装置301または通信システム300に異常があることを報知するようにしても良い。
以上のように、第3実施形態の第1の動作例では、通信制御装置における通信量の分析情報を通信制御管理装置が取得し、通信制御管理装置が通信量の分析情報に基づいて通信制御装置に自己診断を実施させる時刻を設定する。
これにより、通信制御管理装置は、通信制御装置に対して、通信量が少なく、自己診断を行っても通常の通信処理に影響がない時間に自己診断を実施させることができる。この結果として、通信制御装置の状態を確認したり、故障や通信障害などを早期に発見したりするための自己診断を本来の通信システムに負荷をかけずに効率よく実施させることができる。
次に、第3の実施形態に係る通信システム300の第2の動作例について説明する。
図19は、図17に示す通信システム300における第2の動作例を説明するためのシーケンスである。
通信制御装置301のコントローラ320は、上述した第1の動作例と同様に、データメモリ324にログ情報として蓄積する通信量を示す情報を分析し、分析結果としての通信量の分析情報をデータメモリ324に記憶する(ステップS321)。
通信制御装置301のコントローラ320は、所定のタイミングでデータメモリ324に記憶した通信量の分析情報に基づいて自己診断を実行する予定の実施予定時刻を決定する(ステップS322)。例えば、コントローラ320は、通信量の分析情報に基づいて通信量が所定閾値未満となる時間帯のうち自己診断処理の要する時間が確保できる時刻を自己診断の実施時刻(実施予定時刻)として特定する。
自己診断の実施予定時刻を決定した場合、コントローラ320は、自己診断の実施予定時刻を通信制御管理装置5へ通知する(S323)。この場合、通信制御管理装置5の制御部61は、通信制御装置301から通知される自己診断の実施予定時刻を示す情報を当該通信制御装置301の識別情報に対応づけて記憶しておくようにしても良い。ただし、コントローラ320は、自己診断の実施予定時刻を通信制御管理装置5へ通知しなくても良い。
自己診断の実施予定時刻を決定した後、制御部61は、自己診断の実施予定時刻になると、自身が自己診断を実施できる状況であるかを判断する(ステップS324)。例えば、コントローラ320は、現在の通信量が所定の閾値未満であれば自己診断を実施する。
自己診断を実施する場合(ステップS324、YES)、コントローラ320は、自己診断を実施し(ステップS325)、自己診断の実行結果を示す情報を通信制御管理装置5へ送信する。自己診断の実行結果を示す情報は、通信制御装置301から送信され、通信制御管理装置5が取得する(ステップS326)。
また、自己診断を実施しない場合(ステップS324、NO)、コントローラ320は、自己診断を実施していないことを示す通知を通信制御管理装置5へ送信する(ステップS327)。この場合、自己診断を実施していないことを示す通知が、自己診断の実施要求に対する応答として通信制御管理装置5により取得される(ステップS328)。
自己診断の実施要求に対する結果を取得すると、通信制御管理装置5の制御部61は、自己診断の結果を記憶部66に保存する(ステップ329)。また、通信制御装置30で自己診断が実施されなかった場合、制御部61は、自己診断が実施できなかった旨の情報を当該通信制御装置301の識別情報に対応づけて記憶部66に記憶する。
また、通信制御管理装置5の制御部61は、取得した自己診断の実行結果に対して異常の有無を検証する(ステップS330)。自己診断の実行結果から異常と判断される項目がある場合(ステップS330、YES)、制御部61は、通信制御装置301または通信システム300に異常があることを示すアラートを報知する(ステップS331)。
以上のように、第3実施形態の第2の動作例では、通信制御装置自身が通信量の分析情報に基づいて自己診断を実施する予定時刻を設定する。これにより、通信制御装置は、通信量が少なく自己診断を行っても通常の通信処理に影響がない時間に自己診断を実施するように計画することができる。この結果として、通信制御管理装置が通信制御装置の状態を確認したり故障や通信障害などを早期に発見したりするための自己診断を通信システムに負荷をかけずに効率よく実施させることができる。
(第4の実施形態)
次に、第4の実施形態に係る通信システムについて説明する。
第4の実施形態に係る通信システムは、上述した第3の実施形態に係る通信システム300と同様な構成を有するものとする。従って、第4の実施形態については、第3の実施形態で説明した図17に示す通信システム300に適用する例として説明する。
以下、第4実施形態に係る通信システム300の動作例として第1~第4の動作例について説明する。
図20は、第4の実施形態に係る通信システム300における第1の動作例を説明するためのシーケンスである。
まず、通信制御装置301は、動作状態を示すログ情報をデータメモリ324に蓄積する。ここで、データメモリ324に蓄積するログ情報は、通信制御装置301の動作履歴を示す情報である。ただし、不正アクセスなどの緊急に通信制御管理装置5へ通知すべき情報は、ログ情報として保存しても良いが、直ちに通信制御管理装置5へ通知される。
また、通常の運用における通信量を示す情報は、ログ情報としてデータメモリ324に蓄積するようにしても良い。例えば、通信制御装置301のコントローラ320は、通信インターフェースとしてのブリッジ332および334を通過するデータを監視することにより、当該通信制御装置301の通信量を示す情報をデータメモリ324に保存する。
通信制御装置301のコントローラ320は、データメモリ324にログ情報として蓄積する通信量を示す情報を分析し、分析結果としての通信量の分析情報をデータメモリ324に記憶する(ステップS401)。例えば、コントローラ320は、所定の周期で通信量の分析を行って通信量の分析情報をデータメモリ324に記録する。通信量の分析情報は、例えば、時間当たりの通信量を示すものであっても良いし、時間帯ごとの通信量および通信量の増減傾向などを示すものであっても良いし、通信量が所定閾値未満となる時間帯あるいは通信量が最小となる時間帯を示す情報でも良い。第4の実施形態において、通信量の分析情報は、当該通信制御装置301がログ情報を通信制御管理装置(デバイス管理サーバ)5へ送信する時刻を決めるための情報であれば良い。
通信制御装置301のコントローラ320は、データメモリ324に記憶した通信量の分析情報を通信制御管理装置(デバイス管理サーバ)5へ送信する(ステップS402)。コントローラ320は、例えば、所定のタイミングで通信量の分析情報を送信するようにしても良いし、通信制御管理装置5からの要求に応じて送信するようにしても良い。また、コントローラ320は、当該通信制御管理装置5における通信量が少ない時間帯を自己判断し、通信量が少ないと判断した時間帯に通信量の分析情報を通信制御管理装置5へ送信するようにしても良い。
通信制御装置301から送信される通信量の分析情報は、通信制御管理装置5に取得される(ステップS403)。通信制御管理装置5の制御部61は、NW通信部60により受信した通信量の分析情報を送信元の通信制御装置301を示す識別情報に対応づけて記憶部66に記憶する(ステップS404)。制御部61は、記憶部66に記憶した各通信制御装置301からの通信量の分析情報に基づいて、各通信制御装置301がログ情報を送信するスケージュール(ログ収集のスケジュール)を決定する(ステップS405)。例えば、制御部301は、当該通信システムにおける各通信制御装置からの通信量の分析情報に基づいて、ネットワークNW全体における通信量が所定閾値未満となるように、各通信制御装置301がログ情報を送信できる時刻(時間帯)をスケジューリングする。
ログ収集のスケジュールを作成すると、制御部61は、個々の通信制御装置301に対してログ情報を送信する時刻(送出時刻)を通知する(ステップS406)。通信制御装置301のコントローラ320は、通信制御管理装置5からログ情報の送出時刻の通知を受信すると(ステップS407)、ログ情報の送出時刻をデータメモリ324に記憶する(ステップS408)。コントローラ320は、通信制御管理装置5から指示されたログ情報の送出時刻になると、データメモリ324に蓄積したログ情報を通信制御管理装置5へ送信する(ステップS409)。
通信制御装置301から送信されるログ情報は、ネットワークNWを経由して通信制御管理装置5へ伝送され、通信制御管理装置5に受信される(ステップS410)。通信制御管理装置5の制御部61は、通信制御装置301から受信したログ情報を記憶部66に保存する(ステップ411)。例えば、制御部61は、受信したログ情報を実施日時と共に当該通信制御装置301の識別情報に対応づけて記憶部66に記憶する。
上述した第4の実施形態に係る第1の動作例は、クライアント装置に接続する通信制御装置が自身の通信量の分析情報を通信制御管理装置へ送信し、通信制御管理装置は、通信システムにおける各通信制御装置からの通信量の分析情報に基づいて、個々の通信制御装置がログ情報を送信する時刻をスケジュールリングする。
これにより、各通信制御装置301が通信量の分析情報に基づいてログ情報を送信する時刻を判断する必要がなく、通信制御管理装置は、通信システム全体の各通信制御装置における通信量を加味して各通信制御装置がログ情報の送出を決定できる。この結果、個々の通信制御装置だけでなく、ネットワーク全体に発生すると予測される負荷も考慮して各通信制御装置がログ情報を送出する時刻をコントローラできる。
次に、第4の実施形態に係る通信システム300における第2の動作例について説明する。
図21は、第4の実施形態に係る通信システム300における第2の動作例を説明するためのシーケンスである。
まず、通信制御装置301のコントローラ320は、上述の第1の動作例と同様に、データメモリ324にログ情報として蓄積する通信量を示す情報を分析し、分析結果としての通信量の分析情報をデータメモリ324に記憶する(ステップS421)。
通信制御装置301のコントローラ320は、データメモリ324に記憶した通信量の分析情報に基づいて、当該通信制御装置301がログ情報を送信する送出時刻の候補を選出する(ステップS422)。送出時刻の候補は、1つであっても良いし、複数であっても良いし、時間帯で示しても良い。
例えば、コントローラ320は、当該通信制御装置における通信量の分析情報に基づき、通信量が最も少ない時間帯で当該通信制御装置301がログ情報を送信できる時刻を送出時刻の候補として選出する。また、コントローラ320は、当該通信制御装置における通信量の分析情報に基づき、通信量が所定閾値未満となる時間帯から当該通信制御装置301がログ情報を送信できる時刻(送出時刻)を選出しても良い。
ログ情報の送出時刻の候補を選出すると、コントローラ320は、選出したログ情報の送出時刻の候補を通信制御管理装置5へ送信する(ステップS424)。これにより、通信制御装置301が選出するログ情報の送出時刻の候補は、通信制御管理装置5が取得する。
通信制御管理装置5の制御部61は、NW通信部60により受信したログ情報の送出時刻の候補を示す情報を送信元の通信制御装置301を示す識別情報に対応づけて記憶部66に記憶する(ステップS425)。これにより、記憶部66には、通信システムにおける各通信制御装置301からログ情報の送出時刻の候補を示す情報が蓄積される。
通信制御管理装置5の制御部61は、記憶部66に記憶した各通信制御装置301のログ情報の送出時刻の候補に基づいてシステム全体の各通信制御装置31がロゴ情報を送出する時刻のスケジュール(ログ収集のスケジュール)を作成する(ステップS426)。例えば、制御部301は、ネットワークNW全体における通信量が所定閾値未満となるように、各通信制御装置からのログ情報の送出時刻の候補をスケジューリングする。
ログ情報の送出時刻のスケジュールを作成すると、制御部61は、個々の通信制御装置301に対してログ情報を送信する送出時刻を通知する(ステップS427)。通信制御装置301のコントローラ320は、通信制御管理装置5からログ情報の送出時刻の通知を受信すると(ステップS428)、ログ情報の送出時刻をデータメモリ324に記憶する(ステップS429)。コントローラ320は、通信制御管理装置5から指示されたログ情報の送出時刻になると、データメモリ324に蓄積したログ情報を通信制御管理装置5へ送信する(ステップS430)。
通信制御装置301から送信されるログ情報は、ネットワークNWを経由して通信制御管理装置5へ伝送され、通信制御管理装置5に受信される(ステップS431)。通信制御管理装置5の制御部61は、通信制御装置301から受信したログ情報を記憶部66に保存する(ステップ432)。例えば、制御部61は、受信したログ情報を実施日時と共に当該通信制御装置301の識別情報に対応づけて記憶部66に記憶する。
以上のように、第4の実施形態に係る第2の動作例は、通信制御装置301が自身の通信量の分析情報に基づいてログ情報の送出時刻の候補を選出する。通信制御管理装置5は、通信システム300における各通信制御装置301から取得するログ情報の送出時刻の候補をネットワークNWに対する負荷が少なくなるようにスケジュールリングする。
これにより、各通信制御装置301は、ログ情報を通信制御管理装置へ送信する場合におけるネットワーク全体に対する負荷を軽減することができる。また、ログ情報の送出時刻の候補を各通信制御装置がそれぞれ選出するため、通信制御管理装置5にかかる処理の負荷は軽減できる。この結果として、例えば、通信制御装置の数が大量となるような通信システムにおいても効率良く、各通信制御装置がログ情報を送信する時刻をコントローラできる。
次に、第4の実施形態に係る通信システム300における第3の動作例について説明する。
図22は、第4の実施形態に係る通信システム300における第3の動作例を説明するためのシーケンスである。
まず、通信制御装置301のコントローラ320は、上述の第1の動作例と同様に、データメモリ324にログ情報として蓄積する通信量を示す情報を分析し、分析結果としての通信量の分析情報をデータメモリ324に記憶する(ステップS441)。
通信制御装置301のコントローラ320は、データメモリ324に記憶した通信量の分析情報に基づいて、当該通信制御装置301がログ情報を送信する送出予定時刻を決定する(ステップS442)。例えば、コントローラ320は、当該通信制御装置における通信量の分析情報に基づき、通信量が最も少ない時間帯で当該通信制御装置301がログ情報を送信できる時刻を送出予定時刻として選定する。
ログ情報の送出予定時刻を選定すると、コントローラ320は、選定したログ情報の送出予定時刻になると、ネットワークの混雑度を推定する(ステップS443)。例えば、コントローラ320は、ネットワークの混雑度を確認するための問合せを通信制御管理装置5へ送信してから通信制御管理装置5からの応答を受信するまでの時間からネットワークの混雑度を推定する。ここで、通信制御管理装置5へ送信する問合せは、ネットワークの混雑を推定するためのデータであるため、それ自体がネットワークの負荷とならないような小さいサイズのデータとする。
ネットワークの混雑度が所定の閾値以上であれば(ステップS444、NO)、コントローラ320は、ログ情報の送信を中止する。ログ情報の送信を中止する場合、コントローラ320は、通信量の分析情報から再度ロゴ情報を送信する送出予定時刻を選定するようにする。
ネットワークの混雑度が所定の閾値未満であれば(ステップS444、YES)、コントローラ320は、ログ情報の送信が可能な状態であると判断し、データメモリ324に蓄積しているログ情報を通信制御管理装置5へ送信する(ステップS445)。
通信制御装置301から送信されるログ情報は、ネットワークNWを経由して通信制御管理装置5へ伝送され、通信制御管理装置5に受信される(ステップS446)。通信制御管理装置5の制御部61は、通信制御装置301から受信したログ情報を記憶部66に保存する(ステップ457)。
以上のように、第4の実施形態に係る第3の動作例は、通信制御装置が自身の通信量の分析情報に基づいてログ情報の送出予定時刻を設定する。通信制御装置は、時間が設定した送出予定時刻になると、ネットワークの混雑度を推定し、ネットワークの混雑度が閾値未満であれば、ログ情報を通信制御管理装置へ送信するものとする。
これにより、通信制御管理装置は、個々の通信制御装置に対してログ情報の送出時刻を決定する必要がなくなる。また、個々の通信制御装置は、自身が設定した送出予定時刻において、実際のネットワークの混雑度を確認してから、ログ情報を通信制御管理装置へ送信できる。この結果として、例えば、通信制御装置の数が大量となるような通信システムにおいても、通信制御管理装置5にかかる処理が大きくなることがなく、多数の通信制御装置からネットワークに負荷をかけずにログ情報を収集できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。