以下、本発明を適用した通信システムについて、図面を用いて詳細に説明する。
図1は、通信システムの構成を示す。
この通信システムは、情報収集システムであり、複数のセンサノード(SN)10と、SN10とチャネルで接続されるゲートウエイ(GW)20と、GW20とネットワーク110を介して通信する情報処理システムであるHead End System(HES)60とを備える。また、ネットワーク110とHES60との間には、外部ファイアウォール610がある。
SN10は、センサを具備し、センサによりセンシングされた計測データを定期的にGW20に送信する。SN10とGW20とは、例えば無線チャネルで接続されている。なお、SN10とGW20との接続は、無線チャネルには限定されず、有線であってもよい。
GW20は、SN10から受信した計測データを、HES60に転送する。ここで、GW20と、GW20に無線チャネルで接続する複数のSN10とを有するネットワークは、PAN(Personal Area Network)と称される。このGW20は、ネットワーク参入時に、必ず最初にINIT_Site30に接続する。そのため、GW20は、後述するINIT_Site30のIPアドレスを、予め保持している。
ネットワーク110としては、公衆無線網(3G、4G(LTE等)など)でもよく、また公衆有線網でもよく、さらには、LANであっても良い。HES60は、ネットワーク110が公衆網であれば、クラウドコンピューティングの形態を取り、ネットワーク110がLANであれば、オンプレミスの形態を取る。
HES60は、GW20のネットワーク参入時の認証サーバであるInitial Site(INIT_Site)30と、計測データの収集をし且つGW20への制御メッセージを送るサーバであるData Collection & Control Site(DCC_Site)40と、GW20とINIT_Site30及びDCC_Site40を管理する管理サーバである統合管理50とを備える。ここで、GW20のネットワーク参入とは、GW20によるHES60との通信開始、または通信のことを指す。
INIT_Site30は、GW20がネットワーク参入するために必要な認証処理の窓口となるものである。
DCC_Site40は、長時間にわたってGW20と通信する。DCC_Site40は、GW20のフィールド設置数の増加に伴って、増設してもよい。DCC_Site40は、GW20から送られる計測データの収集と、GW20に対する制御との窓口となるものである。
統合管理50は、SN10が有するセンサにより収集された計測データを集約して、保管するサーバである。また、統合管理50は、GW20のネットワーク参入の許可及び不許可を判定するサーバであり、その判定に必要な重要データを保持している。それゆえ、内部ファイアウォール620が、統合管理50とINIT_Site30及びDCC_Site40との間に設置され、セキュリティ攻撃を受けないように統合管理50を守っている。さらに、運用者は、統合管理50にログインすることにより、DCC_Site40を経由して、GW20を遠隔制御することができる。
このように、INIT_Site30、DCC_Site40及び統合管理50を分離しているので、INIT_Site30及びDCC_Site40と統合管理50との間にファイアウォールを置くことが可能となり、システムとしてセキュリティ強度を上げることができる。
図2は、GW20の構成を示す。なお、本実施例は、GW20がSN10と無線チャネルで接続し、GW20がHESと無線網のネットワーク110を介して接続する場合を説明するが、接続手段は無線に限られるものではない。
GW20は、アンテナ200,290と、アンテナ200を介してSN10と無線信号を送受信するPAN側RF部21と、無線信号の変復調処理を行うPAN側信号変換部22と、アンテナ290を介してネットワーク110と無線信号を送受信するWAN側RF部26と、無線信号の変復調処理を行うWAN側信号変換部25と、制御部23と、制御部23につながった記憶装置24とを備える。
制御部23は、例えば、プログラムを実行するプロセッサである。また、制御部23は、HES60との通信に必要なソケット通信処理部210と、TLS暗号通信を可能とするTLS通信処理部220と、IPsec暗号通信を可能とするIPsec通信処理部230とを含む。TLS通信処理部220は、INIT_Site30との通信に使用され、IPsec通信処理部230は、DCC_Site40との通信に使用される。
記憶装置24は、GW20自身の情報が格納された自ノード管理テーブル240と、INIT_Site30との通信に関わる情報が格納されたINIT_Site管理テーブル250と、IPsec通信処理部230に渡す設定情報が格納されたIPsec設定情報記憶領域260とを備える。
図3は、自ノード管理テーブル240を示す。
自ノード管理テーブル240は、GW20を特定するユニークな識別子であるGW装置ID241と、GW装置固有情報242と、GW20自身が本通信システムの装置であることをHES60に示すために用いられるパスワード243とを含む。GW装置ID241と、GW装置固有情報242とは、GW20の起動前に予め登録されているものである。
パスワード243は、GW20の起動時に、GW装置固有情報242を入力情報として、HES60との間で或る決められたルールに従って出力されるものである。このルールは、HES60及びGW20のシステム設計者により、通信システムの稼働前に予め決められている。また、このルールは、GW20の出荷時には既にGW20に書き込まれている。
このように、GW20起動後にパスワード243を生成することにより、製造段階でGW20内にパスワード243が保持されないので、パスワード243をGW20の製造者に盗難されることが無くなる。尚、GW装置固有情報242としては、例えばMACアドレスなど、GW20の装置に固有の情報であれば何でも良い。また、GW装置固有情報242は、GW20の装置に固有の情報であるので、そもそも有効期限が無い。つまり、パスワード243の出力は、有効期限等を気にすることなく、GW20が必要なタイミングでできる。
図4は、INIT_Site管理テーブル250を示す。
INIT_Site管理テーブル250は、INIT_Site30のIPアドレス251と、TLSコネクション252と、認証コード生成HMAC鍵253と、乱数254と、サーバ証明書検証フラグ255と、サーバ証明書341とを含む。
TLSコネクション252は、INIT_Site30とのTLSコネクションを保管する。
認証コード生成HMAC鍵253と乱数254は、接続先のINIT_Site250が偽りのサーバでないかを確認するための認証コードを生成するために用いられる。認証コード生成HMAC鍵253は、GW20の起動時に、GW装置固有情報242を入力情報として、HES60との間で或る決められたルールに従って出力されるものである。このルールは、HES60及びGW20のシステム設計者により、通信システムの稼働前に予め決められている。また、このルールは、GW20の出荷時には既にGW20に書き込まれている。
このように、GW20起動後に認証コード生成HMAC鍵253を生成することにより、製造段階でGW20内にHMAC鍵が保持されないので、認証コード生成HMAC鍵253をGW20の製造者に盗難されることが無くなる。尚、GW装置固有情報242としては、例えばMACアドレスなど、GW20の装置に固有の情報であれば何でも良い。また、GW装置固有情報242は、GW20の装置に固有の情報であるので、そもそも有効期限が無い。つまり、認証コード生成HMAC鍵253の出力は、有効期限等を気にすることなく、GW20が必要なタイミングでできる。
サーバ証明書検証フラグ255は、INIT_Site30とのネゴシエーションにおいてX.509サーバ証明書を用いたサーバ検証をするか否かを示す。サーバ証明書検証フラグ255がDisableのとき、そのTLSネゴシエーションにおいてサーバ検証をしないことを意味する。一方、サーバ証明書検証フラグ255がEnableのとき、そのTLSネゴシエーションにおいてサーバ検証することを意味する。尚、サーバ証明書検証フラグ255の初期値は、Disableである。
サーバ証明書341は、INIT_Site30から送られてくるINIT_Site30のX.509サーバ証明書を保管する。
図5は、IPsec通信処理部230に渡されるIPsec設定情報記憶領域260を示す。
IPsec設定情報記憶領域260は、自IPアドレス261と、DCC_SiteのWAN側IPアドレス431と、IPsecトンネル内の自IPアドレス262と、IPsecトンネル内のDCC_SiteのIPアドレス432と、IKEイニシエータID263と、IKE事前共有鍵525とを含む。
自IPアドレス261は、GW20の起動後にネットワーク110から割り当てられるGW20自身のIPアドレスを保管する。
DCC_Site40のWAN側IPアドレス431は、接続先のDCC_Site40のWAN側IPアドレスを保管する。
IPsecトンネル内の自IPアドレス262は、接続先DCC_Site40とのIPsecトンネル内のGW20自身のIPアドレスを保管する。
IPsecトンネル内のDCC_SiteのIPアドレス432は、当該IPsecトンネル内のDCC_Site40のIPアドレスを保管する。
IKEイニシエータID263は、IKEネゴシエーション時に、DCC_Site40側のIPsec通信処理部が該当するIKE事前共有鍵525を検索するために用いられる。尚、IKEイニシエータID263は、IKEにおけるイニシエータであるGW20のIPsec通信処理部230によって、IKEネゴシエーション中に送信される。
IKE事前共有鍵525は、INIT_Site30から送られるIKE事前共有鍵を保管する。IKE事前共有鍵525は、DCC_Site40とのIKEネゴシエーション中の事前共有鍵認証で用いられる。
図6は、INIT_Site30の構成を示す。
INIT_Site30は、ネットワーク110との通信インタフェース部であるWAN側IF部300と、統合管理50との通信インタフェース部であるLAN側IF部390と、制御部31と、記憶装置32とを備える。
制御部31は、例えば、プログラムを実行するプロセッサである。また、制御部31は、GW20および統合管理50との通信に必要なソケット通信処理部310と、TLS暗号通信を可能とするTLS通信処理部320と、GW20とのTLSコネクション毎に生成されるGW間通信処理スレッド330とを含む。
記憶装置32は、INIT_Site30自身のX.509サーバ証明書が格納されたサーバ証明書格納領域340と、統合管理50との通信に関わる情報が格納された統合管理情報テーブル350とを備える。
図7は、サーバ証明書格納領域340を示す。サーバ証明書格納領域340は、INIT_Site30自身のX.509サーバ証明書が格納されたサーバ証明書341を含む。INIT_Site30自身のX.509サーバ証明書は、GW20の起動前に予めサーバ証明書341に登録されている。
図8は、統合管理情報テーブル350を示す。
統合管理情報テーブル350は、統合管理50のIPアドレスが格納されたIPアドレス351を含む。統合管理50のIPアドレスは、GW20の起動前に予めIPアドレス351に登録されている。
図9は、DCC_Site40の構成を示す。
DCC_Site40は、ネットワーク110との通信インタフェース部であるWAN側IF部400と、統合管理50との通信インタフェース部であるLAN側IF部490と、制御部41と、記憶装置42とを備える。
制御部41は、例えば、プログラムを実行するプロセッサである。制御部41は、GW20および統合管理50との通信に必要なソケット通信処理部410と、IPsec暗号通信を可能とするIPsec通信処理部420とを含む。
記憶装置42は、IPsec通信処理部420に渡す設定情報が格納されたIPsec設定情報記憶領域430を有する。
図10は、IPsec通信処理部420に渡されるIPsec設定情報記憶領域430を示す。
IPsec設定情報記憶領域430は、DCC_SiteのWAN側IPアドレス431と、IPsecトンネル内のDCC_SiteのIPアドレス432と、IPsecトンネル内のDCC_Site側のネットワークアドレス433と、IPsecトンネル内のGW側のネットワークアドレス434と、IKE事前共有鍵情報リスト435とを備える。
DCC_SiteのWAN側IPアドレス431は、DCC_Site40自身のWAN側IPアドレスが格納される。DCC_Site40のWAN側IPアドレスは、GW20の起動前に、DCC_SiteのWAN側IPアドレス431に予め登録されているものである。
IPsecトンネル内のDCC_SiteのIPアドレス432は、GW20とのIPsecトンネル内のDCC_Site40自身のIPアドレスが格納される。GW20とのIPsecトンネル内のDCC_Site40自身のIPアドレスは、GW20の起動前に、IPsecトンネル内のDCC_SiteのIPアドレス432に予め登録されているものである。
IPsecトンネル内のDCC_Site側のネットワークアドレス433は、IPsecトンネル内のDCC_Site40側のネットワークアドレスが格納される。IPsecトンネル内のDCC_Site40側のネットワークアドレスは、GW20の起動前に、IPsecトンネル内のDCC_Site側のネットワークアドレス433に予め登録されているものである。
IPsecトンネル内のGW側のネットワークアドレス434は、IPsecトンネル内のGW20側のネットワークアドレスが格納される。IPsecトンネル内のGW20側のネットワークアドレスは、GW20の起動前に、IPsecトンネル内のGW側のネットワークアドレス434に予め登録されているものである。
IKE事前共有鍵情報リスト435は、GW20とのIKEネゴシエーション中に用いられる情報が格納される。IKE事前共有鍵情報リスト435は、IKEのイニシエータ毎に情報エントリがあり、それらが、IKE事前共有鍵情報エントリIEN-1〜IKE事前共有鍵情報エントリIEN-aである。本実施例において、IKEのイニシエータは、GW20である。
IKE事前共有鍵情報エントリIENは、IKEイニシエータID263と、IKE事前共有鍵525とを含む。
IKEイニシエータID263は、複数のイニシエータとIKEネゴシエーションをするIPsec通信処理部420が、IKE事前共有鍵をどのイニシエータに用いるものかを特定するために用いられる。
IKE事前共有鍵525は、IKEイニシエータID263により特定される。
尚、前述の通り、IKEイニシエータIDは、GW20のIPsec通信処理部230から、IKEネゴシエーション中に送信されてくる。DCC_Site40のIPsec通信処理部420は、そのIKEイニシエータIDをIKE事前共有鍵情報リスト435の中から探し、用いるIKE事前共有鍵525を判別する。
図11は、統合管理50の構成を示す。
統合管理50は、INIT_Site30とDCC_Site40との通信インタフェース部であるLAN側IF部500と、制御部51と、記憶装置52とを備える。
制御部51は、例えば、プログラムを実行するプロセッサである。制御部51は、INIT_Site30とDCC_Site40との通信に必要なソケット通信処理部を含む。
記憶装置52は、DCC_Site40の情報を中心に、DCC_Site40とGW20間の通信に関わる情報が格納されたDCC_Site管理テーブル520と、GW20との認証に関わる情報が格納されたGW管理テーブル530とを含む。
図12は、DCC_Site管理テーブル520を示す。
DCC_Site管理テーブル520は、DCC_Site40の情報を含むDCC_Site情報エントリDENを含む。DCC_Site情報エントリDENの数は、HESに存在するDCC_Site40の台数に対応する。本実施例では、HES60に存在するDCC_Site40の台数が2台であるから、DCC_Site情報エントリDENは2つであり、それぞれ、DCC_Site情報エントリDEN-1とDCC_Site情報エントリDEN-2である。
DCC_Site情報エントリDEN_j(j=1,2)は、DCC_Site装置ID521と、DCC_SiteのWAN側IPアドレス431と、IPsecトンネル内のDCC_SiteのIPアドレス432と、DCC_SiteのLAN側IPアドレス522と、GWリスト523とを含む。
DCC_Site装置ID521は、DCC_Site40_jを通信システムで識別するために用いられる。DCC_Site装置ID521は、GW20の起動前に予め登録されているものである。
DCC_SiteのWAN側IPアドレス431は、DCC_Site40_jのWAN側IPアドレスが格納される。DCC_Site40_jのWAN側IPアドレスは、GW20の起動前に、DCC_SiteのWAN側IPアドレス431に予め登録されるものである。
IPsecトンネル内のDCC_SiteのIPアドレス432は、GW20とDCC_Site40_j間のIPsecトンネル内のDCC_Site40_jのIPアドレスが格納される。GW20とDCC_Site40_j間のIPsecトンネル内のDCC_Site40_jのIPアドレスは、GW20の起動に、IPsecトンネル内のDCC_SiteのIPアドレス432に予め登録されている。
DCC_SiteのLAN側IPアドレス522は、DCC_Site40_jのLAN側IPアドレスが格納される。DCC_Site40_jのLAN側IPアドレスは、GW20の起動前に、DCC_SiteのLAN側IPアドレス522に予め登録されているものである。
GWリスト523は、DCC_Site40_jに接続する全GW20の情報が格納される。GWリスト523は、GW20毎に情報エントリを備え、それらが、GW情報エントリDGEN-1〜GW情報エントリDGEN-bに対応する。
GW情報エントリDGENは、GW20を本通信システムで一意に特定するために用いるGW装置ID241と、GW20とDCC_Site40間のIPsecトンネル内のGW20のIPアドレスが格納されたIPsecトンネル内のGWのIPアドレス524と、GW20とDCC_Site40のIKEネゴシエーションの事前共有鍵認証に係る事前共有鍵が格納されるIKE事前共有鍵525とを含む。GW装置ID241とIPsecトンネル内のGWのIPアドレス524は、GW20の起動前に予め登録されているものである。
図13は、GW管理テーブル530を示す。
GW管理テーブル530は、フィールドに設置している全てのGW20の情報が含まれる。また、GW20毎に情報エントリが与えられており、それらが、GW情報エントリGEN-1〜GW情報エントリGEN-cに対応する。
GW情報エントリGENは、GW20を本通信システム内で一意に特定するGW装置ID241と、、GW20の装置に固有の情報であるGW装置固有情報242と、GW20が接続する先のDCC_Site40のDCC_Site情報エントリDENの番号が格納されたDCC_Site情報エントリ番号531と、INIT_Site30が本通信システムの装置であることをGW20に示すために用いる認証コード生成HMAC鍵253と、GW20が本通信システムの装置であることを確認するために用いるパスワード243とを含む。GW装置ID241と、GW装置固有情報242と、DCC_Site情報エントリ番号531とは、GW20の起動前に予め登録されているものである。
認証コード生成HMAC鍵253とパスワード243とは、GW20の起動前に、GW装置固有情報242を入力情報として、GW20との間で或る決められたルールに従って出力されるものである。したがって、統合管理50のGW管理テーブル530の認証コード生成HMAC鍵253と、GW20のINIT_Site管理テーブル250の認証コード生成HMAC鍵253とは、同じものである。また、統合管理50のGW管理テーブル530のパスワード243は、GW20の自ノード管理テーブル240のパスワード243と同じものである。
図14A及び図14Bは、本実施例の通信システムにおける通信シーケンスである。以下、図14A及び図14BのSQ1401-1423と、図17-37とを対応させて説明する。
また、以下で説明される処理は、SN10、GW20、INIT_Site30、DCC_Site40及び統合管理50の制御部が、プログラム等を実行することにより実現されるものであるが、便宜的に、プログラム、スレッド等が処理に携わるものとして説明する。
<SQ1401>GW20は、起動すると、INIT_Site30とのTLSコネクション生成処理として、INIT_Site30との間でTLSネゴシエーションを開始する。そして、TLS暗号通信路が、GW20とINIT_Site30との間に確立される。なお、TLS暗号通信路が、TLSコネクションに対応する。
図17を用いて、GW20によるINIT_SiteとのTLSコネクション生成処理について説明する。
S1701において、GW20は、INIT_Site管理テーブル250のサーバ証明書検証フラグがDisableであるかを、判定する。
S1701にてYesである場合、S1702において、GW20は、INIT_Site管理テーブル250のIPアドレス251を宛先情報として、サーバ証明書検証を省略する省略モードでTLSコネクションを生成する。そして、GW20は、生成したTLSコネクションの情報を、INIT_Site管理テーブル250のTLSコネクション252に登録する。サーバ証明書検証省略モードでTLSコネクションを生成するため、TLSネゴシエーション中にINIT_Site30から送信されてくるサーバ証明書341の検証は省略される。
S1701にてNoである場合、S1703において、GW20は、INIT_Site管理テーブル250のIPアドレス251を宛先情報として、サーバ証明書検証を省略しないで、TLSコネクションを生成する。そして、GW20は、生成したTLSコネクションをINIT_Site管理テーブル250のTLSコネクション252に登録する。
図25を用いて、図14AのSQ1401に対応するINIT_Site30のINIT_Siteメイン処理について説明する。
S2501にて、GW20からのTLSネゴシエーションを受け、TLSコネクションが生成される。そのとき、サーバ証明書格納領域340のサーバ証明書341をリンクさせることで、TLSネゴシエーションの中で、サーバ証明書341がGW20に送信される。
S2502にて、S2501のTLSコネクション生成に伴い、INIT_Site30はGW間通信処理スレッド330を生成し、当該TLSコネクションをGW間通信処理スレッド330に渡す。以降、GW20との通信は、GW間通信処理スレッド330によって処理される。
<SQ1402>GW20とINIT_Site30間のTLS暗号通信路確立後、GW20は、接続先のINIT_Site30が本通信システムの装置であるかを確認するために乱数を生成する。
<SQ1403>GW20は、SQ1402で生成した乱数をサーバ認証要求に搭載してINIT_Site30に送信する。
<SQ1404>INIT_Site30は、GW20からサーバ認証要求を受信すると、そのサーバ認証応答を統合管理50に転送する。
図18を用いて、SQ1402及びSQ1403に対応し、GW20による乱数生成処理及びサーバ認証要求の送信処理について説明する。
S1801にて、GW20は、乱数を生成し、その乱数をINIT_Site管理テーブル250の乱数254に登録する。当該乱数は、後述するINIT_Siteの正当性確認(図14AのSQ1408)で、使用される。
S1802にて、GW20は、自ノード管理テーブル240のGW装置ID241とINIT_Site管理テーブル250の乱数254とを、サーバ認証要求に搭載する。
S1803にて、GW20は、INIT_Site管理テーブル250のTLSコネクション252を用いて、サーバ認証要求をINIT_Site30に送信する。
図26を用いて、SQ1403及びSQ1404に対応し、INIT_Site30によるサーバ認証要求の受信処理を説明する。
S2601にて、INIT_Site30のGW間通信処理スレッド330は、GW20からサーバ認証要求を受信する。
S2602にて、INIT_Site30のGW間通信処理スレッド330は、統合管理情報テーブル350のIPアドレス351を宛先情報として、統合管理50にサーバ認証要求を転送する(SQ1404)。
<SQ1405>統合管理50は、INIT_Site30からサーバ認証要求を受信すると、INIT_Site30が本通信システムの装置であることを示すために、サーバ認証要求に搭載された乱数を用いて、認証コードを計算する。
<SQ1406>統合管理50は、S1405にて計算した認証コードをサーバ認証応答に載せ、INIT_Site30に送る。
図34を用いて、統合管理50によるサーバ認証要求の受信処理、及びサーバ認証応答の送信処理について説明する。
S3401にて、統合管理50は、INIT_Site30からサーバ認証要求を受信する。
S3402にて、統合管理50は、GW管理テーブル530を参照して、受信したサーバ認証要求に搭載されたGW装置IDに一致するGW装置ID241を持つGW情報エントリGENを検索する目的で、パラメータjを用意する。その検索処理は、S3403とS3406およびS3407に対応する。
S3403にて、統合管理50は、GW管理テーブル530のGW情報エントリGEN-jのGW装置ID241が、サーバ認証要求に搭載されたGW装置IDに一致するかを判定する。
GW情報エントリGEN-jのGW装置ID241が、サーバ認証要求に搭載されたGW装置IDに一致すると判定された場合、即ちS3403における判定でYesの場合、S3404にて、統合管理50は、GW情報エントリGEN-jの認証コード生成HMAC鍵253とサーバ認証要求の乱数とを入力情報としてHMAC関数を実行し、認証コードを生成する。なお、図14Aに示すSQ1403、1404、及び1405は、S3403における判定でYesの場合に対応する。
S3405にて、統合管理50は、了承の意のリターンコードと、S3404で生成した認証コードとを、サーバ認証応答に搭載する。ここで、リターンコードとは、統合管理50が、INIT_Site30とGW20に対して応答結果の種別を示すために用いるものである。
S3409にて、統合管理50は、サーバ認証要求の送信元IPアドレスとポート番号を宛先情報として、了承の意のリターンコードと生成された認証コードとが搭載されたサーバ認証応答を、INIT_Site30に送信する。
一方、GW情報エントリGEN-jのGW装置ID241が、サーバ認証要求に搭載されたGW装置IDに一致しないと判定された場合、即ちS3403における判定でNoの場合、S3406にて、統合管理50は、次のGW情報エントリGENを確認するために、jをインクリメントする。
S3407にて、統合管理50は、jがGW管理テーブル530のGW情報エントリの総数を超えているかを、判定する。
jがGW情報エントリの総数を超えていないと判定された場合、即ちS3407における判定でNoの場合、S3403にて、再び統合管理50は、GW管理テーブル530のGW情報エントリGEN-jのGW装置ID241が、サーバ認証要求に搭載されたGW装置IDに一致するかを判定する。
jがGW情報エントリの総数を超えていると判定された場合、即ちS3407における判定でYesの場合、S3408にて、統合管理50は、否認の意のリターンコードをサーバ認証応答に搭載する。
そして、S3409にて、統合管理50は、サーバ認証要求の送信元IPアドレスとポート番号を宛先情報として、否認の意のリターンコードが搭載されたサーバ認証応答を、INIT_Site30に送信する。
<SQ1407>INIT_Site30は、統合管理50からサーバ認証応答を受信すると、そのサーバ認証応答をGW20へ転送する。
図27を用いて、INIT_Site30によるサーバ認証応答の受信処理を説明する。
S2701にて、INIT_Site30のGW間通信処理スレッド330は、統合管理50からサーバ認証応答を受信する。
S2702にて、INIT_Site30のGW間通信処理スレッド330は、サーバ認証応答を、INIT_Siteメイン処理(図25)から引き継いだTLSコネクションを用いて、GW20に転送する。
S2703にて、INIT_Site30のGW間通信処理スレッド330は、サーバ認証応答に搭載されているリターンコードが了承であるかを、判定する。
サーバ認証応答に搭載されているリターンコードが了承であるの場合、即ちS2703にてYesの場合、INIT_Site30のGW間通信処理スレッド330は、サーバ認証応答受信処理を終える。なお、図14Aに示すSQ1407は、S2703にてYesの場合に対応している。
サーバ認証応答に搭載されているリターンコードが了承ではなく否認である場合、即ちS2703にてNoの場合、通信相手が未登録の装置であるから、S2704にてGW間通信処理スレッド330は、INITメイン処理(図25)から引き継いだTLSコネクションを、解放する。そして、S2705にてGW間通信処理スレッド330は、消滅する。
<SQ1408>GW20は、SQ1407でINIT_Site30からサーバ認証応答を受信すると、このサーバ認証応答に搭載された認証コードを用いて、INIT_Site30が本通信システムの装置であるかを、確認する。
<SQ1409>GW20は、INIT_Site30のサーバ証明書を取得するために、INIT_Site30にサーバ証明書取得要求を送信する。
図19を用いて、GW20によるサーバ認証応答の受信処理、INIT_Siteの正当性の確認処理、及びサーバ証明書取得要求の送信処理を説明する。
S1901にて、GW20は、INIT_Site30からサーバ認証応答を受信する。
S1902において、GW20は、サーバ認証応答に搭載されているリターンコードが了承であるかを、判定する。
搭載されているリターンコードが了承である場合、即ちS1902でYesの場合、S1903にて、GW20は、INIT_Site管理テーブル250の認証コード生成HMAC鍵253と乱数254とを入力情報として、HMAC関数を実行する。なお、図14Aに示すSQ1407は、S1902にてYesの場合に対応している。
AuthCode=HMAC(認証コード生成HMAC鍵253, 乱数254)
S1904において、GW20は、サーバ認証応答に搭載されている認証コードと、S1903のAuthCodeとが一致するかを、判定する。
搭載されている認証コードとAuthCodeとが一致する場合、即ちS1904でYesの場合、GW20はINIT_Site30が本通信システムの装置であると判断し、S1905に進む。
なお、図14AにおけるINIT_Siteの正当性確認(SQ1408)は、S1903及びS1904に対応する。
S1905にて、GW20は、INIT_Site管理テーブル250のTLSコネクション252を用いて、サーバ証明書取得要求をINIT_Site30に送信する。なお、図14AにおけるS1409は、S1905に対応する。
一方、S1902又はS1904でNoの場合、GW20は、S1906にてGW20は、INIT_Site管理テーブル250のTLSコネクション252を、解放する。
<SQ1410>INIT_Site30は、SQ1409でGW20からのサーバ証明書取得要求を受信すると、INIT_Site30自身のサーバ証明書を載せて、GW20にサーバ証明書取得応答を送信する。
図28を用いて、INIT_Site30のGW間通信処理スレッド330によるサーバ証明書取得要求の受信処理及びサーバ証明書取得応答の送信処理について説明する。
S2801にて、INIT_Site30のGW間通信処理スレッド330は、サーバ証明書取得要求をGW20から受信する。
S2802にて、INIT_Site30のGW間通信処理スレッド330は、サーバ証明書格納領域340のサーバ証明書341を、サーバ証明書取得応答に搭載する。
S2803にて、INIT_Site30のGW間通信処理スレッド330は、INIT_Siteメイン処理(図25)から引き継いだTLSコネクションを用いて、サーバ証明書取得応答をGW20に送信する。なお、図14に示すSQ1410は、S2803に対応する。
<SQ1411>GW20は、SQ1410でINIT_Site30からのサーバ証明書取得応答を受信すると、このサーバ証明書取得応答に搭載されたサーバ証明書を、インストールする。
<SQ1412>GW20は、GW20自身が本通信システムの装置であることをHES60に示すために、パスワードを載せた参入要求を、INIT_Site30に送信する。
図20を用いて、GW20によるサーバ証明書取得応答の受信処理、サーバ証明書のインストール処理、及び参入要求の送信処理について説明する。
S2001にて、GW20は、サーバ証明書取得応答をINIT_Site30から受信する。
S2002にて、GW20は、接続先INIT_Site30が本通信システムの装置であることが、INIT_Siteの正当性確認(SQ1408)で既に分かっているので、サーバ証明書取得応答に搭載されているサーバ証明書を、INIT_Site管理テーブル250のサーバ証明書341にインストールする。なお、図14Aに示すSQ1411は、S2002に対応する。
S2003にて、GW20は、INIT_Site管理テーブル250のサーバ証明書検証フラグ255を、Enableに設定する。これにより、GW20は、次回からINIT_Site30とTLSネゴシエーションをする場合、そのネゴシエーション中にINIT_Siteから送信されてくるサーバ証明書とINIT_Site管理テーブル250のサーバ証明書341とを比較検証して、INIT_Siteの正当性確認を行う。
S2004にて、GW20は、参入要求送信処理を行う。GW20による参入要求送信処理は、GW20が本通信システムの装置であることをHES60に示すために行うものである。
図21を用いて、S2004の参入要求送信処理について説明する。
S2101にて、GW20は、自ノード管理テーブル240のGW装置ID241とパスワード243とを、参入要求に搭載する。
S2102にて、GW20は、INIT_Site管理テーブル250のTLSコネクション252を用いて、参入要求をINIT_Site30に送信する。なお、図14Bに示すSQ1412は、S2102に対応する。
<SQ1413>INIT_Site30は、SQ1412でGW20からの参入要求を受信すると、この参入要求を統合管理50に転送する。
図29を用いて、INIT_Site30のGW間通信処理スレッド330による参入要求の受信処理及び参入要求の送信処理について説明する。
S2901にて、INIT_Site30のGW間通信処理スレッド330は、参入要求をGW20から受信する。
S2902にて、INIT_Site30のGW間通信処理スレッド330は、統合管理情報テーブル350のIPアドレス351を宛先情報として、参入要求を統合管理50に転送する。なお、図14Bに示すSQ1413は、S2902に対応する。
<SQ1414>統合管理50は、SQ1413でINIT_Site30から送られた参入要求を受信すると、この参入要求に搭載されたパスワードを用いて、GW20が本通信システムの装置であるかを、確認する。
<SQ1415>統合管理50は、SQ1414でGW20が本通信システムの装置であることが確認されたので、了承の意のリターンコードを載せて、INIT_Site30に参入応答を送信する。
図35を用いて、統合管理50による参入要求の受信処理、GW正当性の確認処理、及び参入応答の送信処理について説明する。
S3501にて、統合管理50は、参入要求をINIT_Site30から受信する。
S3502にて、統合管理50は、GW管理テーブル530を参照して、受信した参入要求に搭載されたGW装置IDに一致するGW装置ID241を持つGW情報エントリGENを、検索する目的でパラメータjを用意する。その検索処理は、S3503とS3507およびS3508に対応する。
S3503にて、統合管理50は、GW管理テーブル530のGW情報エントリGEN-jのGW装置ID241が、参入要求に搭載されたGW装置IDに一致するかを判定する。
S3503における判定でYesの場合(図14Bに示すSQ1412、1413、及び1414は、このケースに対応している)、S3504にて、統合管理50は、GW情報エントリGEN-jのパスワード243が、受信した参入要求に搭載されたパスワードに一致するかを、判定する。ここで、S3503および3504が、図14Bに示すGW正当性確認(SQ1414)に対応する。
S3504における判定でYesの場合、統合管理50は、S3505にて了承の意のリターンコードを参入応答に搭載する。
そして、S3510にて、統合管理50は、参入要求の送信元IPアドレスとポート番号を宛先情報として、了承の意のリターンコードが搭載された参入応答を、INIT_Site30に送信する。なお、図14BのSQ1415は、このS3510に対応する。
S3504における判定でNoの場合、S3506にて統合管理50は、否認の意のリターンコードを参入応答に搭載する。
そして、S3510にて、統合管理50は、参入要求の送信元IPアドレスとポート番号を宛先情報として、否認の意のリターンコードが搭載された参入応答を、INIT_Site30に送信する。
S3503における判定でNoの場合、S3507にて統合管理50は、次のGW情報エントリGENを確認するためにjをインクリメントする。
S3508にて統合管理50は、jがGW管理テーブル530のGW情報エントリの総数を超えているかを、判定する。
S3508における判定でNoの場合、S3503にて再び統合管理50は、GW管理テーブル530のGW情報エントリGEN-jのGW装置ID241が、参入要求に搭載されたGW装置IDに一致するかを判定する。
S3508における判定でYesの場合、S3509にて統合管理50は、否認の意のリターンコードを参入応答に搭載する。
そして、S3510にて、統合管理50は、参入要求の送信元IPアドレスとポート番号を宛先情報として、否認の意のリターンコードが搭載された参入応答を、INIT_Site30に送信する。
<SQ1416>INIT_Site30は、SQ1415で統合管理50から送られた参入応答を受信すると、この参入応答をGW20に転送する。
図30を用いて、INIT_Site30による参入応答の受信処理及び参入応答の送信処理について説明する。
S3001にて、INIT_Site30のGW間通信処理スレッド330は、参入応答を統合管理50から受信する。
S3002にて、INIT_Site30のGW間通信処理スレッド330は、INIT_Siteメイン処理(図25)から引き継いだTLSコネクションを用いて、参入応答をGW20に転送する。なお、図14BにおけるSQ1416は、S3002に対応する。
S3003にて、INIT_Site30のGW間通信処理スレッド330は、参入応答に搭載されているリターンコードが了承であるかを、判定する。
S3003でYesの場合、INIT_Site30のGW間通信処理スレッド330は、参入応答の受信処理を終える。
S3003でNoの場合、通信相手が本通信システムの装置でないため、S3004にて、INIT_Site30のGW間通信処理スレッド330は、INIT_Siteメイン処理(図25)から引き継いだTLSコネクションを解放する。
そして、S3005にて、INIT_Site30のGW間通信処理スレッド330は、消滅する。
<SQ1417>GW20は、SQ1416でINIT_Site30から送られた参入応答を受信すると、接続先のDCC_Site40との通信に必要な情報を得るために、INIT_Site30にコンフィグ取得要求を送信する。
図22を用いて、GW20の参入応答の受信処理及びコンフィグ取得要求の送信処理について説明する。
S2201にて、GW20は、参入応答をINIT_Site30から受信する。
S2202において、GW20は、参入応答に搭載されているリターンコードが了承であるかを、判定する。
S2202でNoの場合、S2204にて、GW20は、INIT_Site管理テーブル250のTLSコネクション252を解放する。
S2202でYesの場合、GW20は、GW20とHES60との双方が互いに本通信システムのものであることを認識でき、安全性が確保されたことになる。実際、TLSコネクションにより、通信中に通信相手がすり変わることがないことがほぼ保障されている。さらに、認証コード生成HMAC鍵253は秘密鍵であり、この鍵の実体を持っている装置は、GW20と統合管理50の他に存在しない。したがって、認証コード生成HMAC鍵253と乱数254とを入力情報としたHMAC関数の実行値(認証コード)を導出できるのは、HMAC関数の性質から、GW20と統合管理50と、この実行値を転送するINIT_Site30の他に存在しない。したがって、INIT_Siteの正当性確認(SQ1408)において、攻撃者によるINIT_Site30へのなりすましは、排除される。また、GW20のパスワード243の実体を持っているのは、GW20と統合管理50と、このデータを転送するINIT_Site30との他に、存在しない。したがって、GW正当性確認(SQ1414)で、統合管理50は、GW20が本通信システムの装置であると判断できる。
S2202でYesの場合、GW20は、GW20とHES60との双方が互いに本通信システムのものであることを認識でき、安全性が確保されたことになるので、S2203に進む。
S2203にて、GW20は、コンフィグ取得要求の送信処理を実行する。
図23を用いて、S2203のコンフィグ取得要求の送信処理を説明する。このコンフィグ取得要求送信処理は、GW20が接続先のDCC_Site40との通信に必要な情報を得るために実行されるものである。
S2301にて、GW20は、自ノード管理テーブル240に記載されるGW装置ID241を、コンフィグ取得要求に搭載する。
S2302にて、GW20は、INIT_Site管理テーブル250のTLSコネクション252を用いて、コンフィグ取得要求をINIT_Site30に送信する。なお、図14BのSQ1417は、S2302に対応する。
<SQ1418>INIT_Site30は、SQ1417でGW20から送られたコンフィグ取得要求を受信すると、このコンフィグ取得要求を統合管理50に転送する。
図31を用いて、INIT_Site30によるコンフィグ取得要求の受信処理について説明する。
S3101にて、INIT_Site30のGW間通信処理スレッド330は、コンフィグ取得要求をGW20から受信する。
S3102にて、INIT_Site30のGW間通信処理スレッド330は、統合管理情報テーブル350のIPアドレス351を宛先情報として、コンフィグ取得要求を統合管理50に転送する。なお、図14BのSQ1418は、S3102に対応する。
<SQ1419>統合管理50は、SQ1418でINIT_Site30から送られたコンフィグ取得要求を受信すると、GW20とDCC_Site40との間の通信に必要な情報を生成する。
<SQ1420>統合管理50は、GW20の接続先のDCC_Site40のWAN側IPアドレスと、IPsecトンネル内の当該DCC_Site40のIPアドレスと、IPsecトンネル内のGW20のIPアドレスと、GW20と当該DCC_Site40間のIKEの事前共有鍵認証に必要なIKE事前共有鍵を載せて、INIT_Site30にコンフィグ取得応答を送信する。
<SQ1421>統合管理50は、GW20のIKEイニシエータIDとしてIPsecトンネル内のGW20のIPアドレスを載せ、さらに、このIKEイニシエータIDと対になるIKE事前共有鍵を載せて、DCC_Site40にコンフィグ情報通知を送信する。ここで、このIKE事前共有鍵と、SQ1420においてコンフィグ取得応答に搭載されるIKE事前共有鍵は、同じものである。
図36を用いて、統合管理50のコンフィグ取得要求の受信処理、コンフィグ情報生成処理、及びコンフィグ取得応答の送信処理について説明する。
S3601にて、統合管理50は、コンフィグ取得要求をINIT_Site30から受信する。
S3602にて、統合管理50は、パラメータi, j, kを用意する。パラメータiは、受信したコンフィグ取得要求に搭載されたGW装置IDに一致するGW装置ID241を持つGW情報エントリGENを、検索する目的で使用される。パラメータkは、GW20の接続先のDCC_Site40の情報が格納されたDCC_Site情報エントリDENを、参照するために使用される。パラメータkは、DCC_Site情報エントリDEN-jに存在するGW20とDCC_Site40_jとの通信に必要な情報が格納されたGW情報エントリDGENを、参照するために使用される。
S3603にて、統合管理50は、GW管理テーブル530のGW情報エントリGEN-iのGW装置ID241が、コンフィグ取得要求に搭載されたGW装置IDに一致するかを判定する。
S3603でYesの場合、S3604にて、統合管理50は、i、j、及びkを入力値としてコンフィグ情報生成処理を実行する。なお、図14BにおけるSQ1419は、S3604に対応する。このコンフィグ情報生成処理(S3604)は、GW管理テーブル530のGW情報エントリGEN-iの情報から、出力値がjとkに格納される。この時点で、jは、GW20の接続先のDCC_Site40の情報が格納されたDCC_Site情報エントリDENの番号を指している。また、この時点で、kは、DCC_Site情報エントリDEN-jに存在するGW20とDCC_Site40_jとの通信に必要な情報が格納されたGW情報エントリDGENの番号を指している。
以下、図37を用いて、S3604におけるコンフィグ情報生成処理を説明する。
S3701にて、統合管理50は、GW管理テーブル530のGW情報エントリGEN-iのDCC_Site情報エントリ番号531を、jに設定する。つまり、DCC_Site情報エントリDEN-jに対応するDCC_Site40_jが、GW20の接続先である。
S3702にて、統合管理50は、DCC_Site情報エントリDEN-jのGWリスト523の中で、GW管理テーブル530のGW情報エントリGEN-iのGW装置ID241と一致するGW情報エントリDGENの番号を、kに設定する。
S3703にて、統合管理50は、IKE事前共有鍵を生成し、それをDCC_Site情報エントリDEN-jのGW情報エントリDGEN-kのIKE事前共有鍵525に設定して、コンフィグ情報生成処理を終える。
図36のフローに戻り、S3605にて、統合管理50は、了承の意のリターンコードと、DCC_Site情報エントリDEN-jのDCC_SiteのWAN側IPアドレス431と、DCC_Site情報エントリDEN-jのIPsecトンネル内のDCC_SiteのIPアドレス432と、DCC_Site情報エントリDEN-jのGW情報エントリDGEN-kのIPsecトンネル内のGWのIPアドレス524と、IKE事前共有鍵525とを、コンフィグ取得応答に搭載する。
S3606にて、統合管理50は、DCC_Site情報エントリDEN-jのGW情報エントリDGEN-kのIPsecトンネル内のGWのIPアドレス524と、IKE事前共有鍵525とを、コンフィグ情報通知に搭載する。
S3607にて、統合管理50は、コンフィグ取得要求の送信元IPアドレスとポート番号を宛先情報として、S3605にて生成したコンフィグ取得応答を、INIT_Site30に送信する。なお、図14BにおけるSQ1420は、S3607に対応する。
S3608にて、統合管理50は、DCC_Site情報エントリDEN-jのDCC_SiteのLAN側IPアドレス522を宛先情報として、S3606にて生成したコンフィグ情報通知を、DCC_Site40に送信する。なお、図14BにおけるSQ1421は、S3608に対応する。
S3603における判定でNoの場合、S3609にて統合管理50は、次のGW情報エントリGENを確認するために、iをインクリメントする。
S3610にて統合管理50は、iがGW管理テーブル530のGW情報エントリの総数を超えているかを、判定する。
S3610における判定でNoの場合、S3603にて再び統合管理50は、GW管理テーブル530のGW情報エントリGEN-iのGW装置ID241が、コンフィグ取得要求に搭載されたGW装置IDに一致するかを判定する。
S3610における判定でYesの場合、S3611にて、統合管理50は、否認の意のリターンコードをコンフィグ取得応答に搭載する。
S3612にて、統合管理50は、コンフィグ取得要求の送信元IPアドレスとポート番号を宛先情報として、S3611にて生成したコンフィグ取得応答を、DCC_Site40に送信する。
<SQ1422>INIT_Site30は、SQ1420で統合管理50から送られたコンフィグ取得応答を受信すると、このコンフィグ取得応答をGW20に転送する。
図32を用いて、INIT_Site30によるコンフィグ取得応答の受信処理について説明する。
S3201にて、INIT_Site30のGW間通信処理スレッド330は、コンフィグ取得応答を統合管理50から受信する。
S3202にて、INIT_Site30ののGW間通信処理スレッド330は、INIT_Siteメイン処理(図25)から引き継いだTLSコネクションを用いて、コンフィグ取得応答をGW20に転送する。なお、図14BのSQ1422は、S3202に対応する。
以上で、INIT_Site30のGW間通信処理スレッド330は、GW20との一連の処理を終えたので、S3203にてINIT_Siteメイン処理(図25)から引き継いだTLSコネクションを解放する。
そして、S3204にて、INIT_Site30のGW間通信処理スレッド330は、消滅する。
図33を用いて、DCC_Site40によるコンフィグ情報通知の受信処理について説明する。
S3301にて、DCC_Site40は、コンフィグ情報通知を統合管理50から受信する。
S3302にて、DCC_Site40は、IKE事前共有鍵情報エントリIENを生成する。
S3303にて、DCC_Site40は、コンフィグ情報通知のIPsecトンネル内のGWのIPアドレスを、S3302で生成したIKE事前共有鍵情報エントリIENのIKEイニシエータID263に登録する。さらに、DCC_Site40は、コンフィグ情報通知のIKE事前共有鍵を、当該IKE事前共有鍵情報エントリIENのIKE事前共有鍵525に登録する。
そして、S3304にて、DCC_Site40は、当該IKE事前共有鍵情報エントリIENを、IPsec設定情報記憶領域430のIKE事前共有鍵情報リスト435の末尾に追加する。
<SQ1423>GW20は、SQ1422でINIT_Site30から送られたコンフィグ取得応答を受信すると、このコンフィグ取得応答に搭載された情報をIPsec通信処理部230に渡し、IPsec通信処理部230が、DCC_Site40とIKEネゴシエーションを行い、DCC_Site40とのIPsec暗号通信路を確立する。
図24を用いて、GW20によるコンフィグ取得応答の受信処理について説明する。
S2401にて、GW20は、コンフィグ取得応答をINIT_Site30から受信する。
S2402において、GW20は、コンフィグ取得応答のリターンコードが了承であるかを、判定する。
リターンコードが了承である場合、即ちS2402でYesの場合、S2403にて、GW20は、受信したコンフィグ取得応答に搭載されるDCC_SiteのWAN側IPアドレスを、IPsec設定情報記憶領域260のDCC_SiteのWAN側IPアドレス431に登録する。
S2404にて、GW20は、受信したコンフィグ取得応答に搭載されるIPsecトンネル内のDCC_SiteのIPアドレスを、IPsec設定情報記憶領域260のIPsecトンネル内のDCC_SiteのIPアドレス432に登録する。
S2405にて、GW20は、受信したコンフィグ取得応答に搭載されるIPsecトンネル内のGWのIPアドレスを、IPsec設定情報記憶領域260のIPsecトンネル内の自IPアドレス262に登録する。
S2406にて、GW20は、受信したコンフィグ取得応答に搭載されるIPsecトンネル内のGWのIPアドレスを、IPsec設定情報記憶領域260のIKEイニシエータID263に登録する。
S2407にて、GW20は、受信したコンフィグ取得応答に搭載されるIKE事前共有鍵を、IPsec設定情報記憶領域260のIKE事前共有鍵525に登録する。
以上でGW20は、INIT_Site30との一連の処理を終えたので、S2408にてGW20は、INIT_Site管理テーブル250のTLSコネクション252を解放する。
そして、S2409にて、GW20は、IPsec通信処理部230にIPsec設定情報記憶領域260のデータを渡し、IPsec通信処理部230が、DCC_Site40とIKEネゴシエーションを行い、DCC_Site40とのIPsec暗号通信路を確立する。なお、図14BにおけるSQ1423は、S2409に対応する。
リターンコードが否認である場合、即ちS2402でNoの場合、S2410にて、GW20は、INIT_Site管理テーブル250のTLSコネクション252を解放して、コンフィグ取得応答の受信処理を終える。
以上説明したように、本発明を適用した通信システムでは、TLSネゴシエーションにおけるクライアントであるGWと、TLSネゴシエーションにおけるサーバであるINIT_Siteと、INIT_Siteの背後に全体を統括するサーバである統合管理と、GWと長時間に渡って直接通信し、GWからユーザデータを直接受け取るサーバであるDCC_Siteとから成る。また、INIT_SiteとDCC_Siteと統合管理は本通信システムのサブシステムを構成し、このサブシステムをHESと呼ぶ。
そして、TLSネゴシエーション時にGWは、INIT_Siteから送られてくるX.509サーバ証明書の検証は省略して、GWとINIT_Site間のTLS暗号通信路を張る。その後、GWは、INIT_Siteから送られてくる認証情報を確認することで、INIT_Siteが本通信システムの装置であることを確認する。その後、GWは、INIT_SiteのX.509サーバ証明書をINIT_Siteから取得しインストールする。次に、GWは認証情報をINIT_Siteに送り、INIT_Siteはその認証情報を統合管理に転送することで、統合管理はGWが本通信システムの装置であることを認識する。
このように、GWとHESの双方が本通信システムのものであることを認め合った状態で、統合管理がIKE事前共有鍵を生成する。そして、統合管理は、INIT_SiteとDCC_Siteに当該IKE事前共有鍵を送信し、INIT_Siteは、当該IKE事前共有鍵をGWに転送する。これで、IKE事前共有鍵はGWとDCC_Site双方で共有され、GWとDCC_Site間でIPsec暗号通信路が確立可能である。
以上をもって、X.509サーバ証明書とIKE事前共有鍵の工場出荷前の事前インストールを避けることを可能とした。
特許請求の範囲に記載した以外の本発明の観点として、次のものがあげられる。
(1)
情報処理システムと、ネットワークを経由して前記情報処理システムに接続するゲートウエイとを備える情報収集システムであって、
前記情報処理システムは、前記ゲートウエイの初期接続先である第1サーバと、前記ゲートウエイが送信する計測データの送信先である第2サーバと、前記第1サーバ及び前記第2サーバを管理する第3サーバとを備え、
前記ゲートウエイは、
計測データの送受信部と、
制御部と、
前記ゲートウエイの固有識別子及びゲートウエイの装置固有情報を管理するゲートウエイ情報と、第1サーバ接続先情報、生成した乱数及び共通ルールに従って出力された共通鍵を管理する第1サーバ管理情報とを格納する記憶部とを備え、
前記第1サーバは、
制御部と、
サーバ証明書を格納する記憶部とを備え、
前記第3サーバは、
制御部と、
前記ゲートウエイ毎に、装置固有情報、固有識別子及び共通ルールに従って出力された共通鍵を管理するゲートウエイ管理情報を格納する記憶部とを備え、
前記ゲートウエイは、
前記生成した乱数と前記ゲートウエイの固有識別子とを搭載したサーバ認証要求を、前記第1サーバへ送信し、
前記第3サーバは、
前記第1サーバから転送された前記サーバ認証要求を受信すると、前記サーバ認証要求に搭載された乱数と、前記ゲートウエイに対応するゲートウエイ管理情報で管理される共通鍵とに基づいて、第一の認証コードを生成し、
前記第一の認証コードを搭載したサーバ認証応答を、前記第1サーバへ送信し、
前記ゲートウエイは、
前記第1サーバから転送された前記サーバ認証応答を受信すると、前記生成した乱数と、前記第1サーバ管理情報で管理される共通鍵とに基づいて、第二の認証コードを生成し、
受信した前記サーバ認証応答に搭載された前記第一の認証コードと生成した前記第二の認証コードとが一致するかを判定する第一の判定を行い、
前記第一の判定で前記第一の認証コードと前記第二の認証コードとが一致する場合、前記第1サーバから前記サーバ証明書を取得して、取得したサーバ証明書を前記第1サーバ管理情報に格納する
ことを特徴とする情報収集システム。
(2)
前記ゲートウエイ及び前記第3サーバは、予め共通ルールを各々の記憶部に保持し、
前記ゲートウエイは、起動後に、前記共通ルールと前記ゲートウエイ情報で管理される前記ゲートウエイの装置固有情報とに基づいて生成した共通鍵を、前記第1サーバ管理情報に格納し、
前記第3サーバは、前記ゲートウエイの起動後に、前記共通ルールと前記ゲートウエイ管理情報で管理される前記ゲートウエイの装置固有情報とに基づいて生成した共通鍵を、前記ゲートウエイ管理情報に格納する
ことを特徴とする(1)記載の情報収集システム。
(3)
前記ゲートウエイの装置固有情報は、MACアドレスであり、
前記共通鍵は、HMAC鍵である ことを特徴とする(2)記載の情報収集システム。
(4)
前記ゲートウエイは、
前記サーバ認証要求を送信する前に、前記ゲートウエイの記憶部に格納された前記第1サーバ接続先情報を参照して、前記第1サーバに接続し、
前記第一の判定で前記第一の認証コードと前記第二の認証コードとが一致する場合、前記ゲートウエイと前記第1サーバとの接続を維持し、
前記第一の判定で前記第一の認証コードと前記第二の認証コードとが一致しない場合、前記ゲートウエイと前記第1サーバとの接続を解放する
ことを特徴とする(2)記載の情報収集システム。
(5)
前記第3サーバは、
前記第1サーバから転送された前記サーバ認証要求を受信すると、前記サーバ認証要求に搭載されたゲートウエイの固有識別子が、前記ゲートウエイ管理情報で管理するゲートウエイ毎の固有識別子に含まれるかを判定する第二の判定を行い、
前記第二の判定で前記サーバ認証要求に搭載されたゲートウエイの固有識別子が、前記ゲートウエイ管理情報で管理するゲートウエイ毎の固有識別子に含まれる場合、前記第一の認証コードを生成し、
前記第二の判定で前記サーバ認証要求に搭載されたゲートウエイの固有識別子が、前記ゲートウエイ管理情報で管理するゲートウエイ毎の固有識別子に含まれる場合、前記第一の認証コードを生成しない、
ことを特徴とする(2)記載の情報収集システム。
(6)
前記情報収集システムは、計測した前記計測データを前記ゲートウエイに送信するセンサノードを備える
ことを特徴とする(1)記載の情報収集システム。
(7)
前記ゲートウエイのゲートウエイ情報は、更に、共通ルールに従って出力されたパスワードを管理し、
前記ゲートウエイは、
前記サーバ証明書を格納した後に、前記パスワードと前記ゲートウエイの固有識別子とを搭載した参入要求を、前記第1サーバへ送信し、
前記第3サーバのゲートウエイ管理情報は、更に、共通ルールに従って出力されたパスワードを管理し、
前記第3サーバは、
前記第1サーバから転送された前記参入要求を受信すると、前記参入要求に搭載されたパスワードと、前記ゲートウエイ管理情報でゲートウエイ毎に管理されるパスワードとが一致するかを判定する第三の判定を行い、
第三の判定で、前記参入要求に搭載されたパスワードと前記ゲートウエイ管理情報でゲートウエイ毎に管理されるパスワードとが一致する場合、前記ゲートウエイの前記情報処理システムへの参入を許可し、
第三の判定で、前記参入要求に搭載されたパスワードと前記ゲートウエイ管理情報でゲートウエイ毎に管理されるパスワードとが一致しない場合、前記ゲートウエイの前記情報処理システムへの参入を許可しないこと
を特徴とする(2)記載の情報収集システム。
(8)
前記ゲートウエイ及び前記第3サーバは、予め共通ルールを各々の記憶部に保持し、
前記ゲートウエイは、起動後に、前記共通ルールと前記ゲートウエイ情報で管理される前記ゲートウエイの装置固有情報とに基づいて生成したパスワードを、前記ゲートウエイ情報に格納し、 前記第3サーバは、前記ゲートウエイの起動後に、前記共通ルールと前記ゲートウエイ管理情報で管理される前記ゲートウエイの装置固有情報とに基づいて生成したパスワードを、前記ゲートウエイ管理情報に格納する
ことを特徴とする(7)記載の情報収集システム。
(9)
前記第3サーバは、
前記第1サーバから転送された前記参入要求を受信すると、前記参入要求に搭載されたゲートウエイの固有識別子が、前記ゲートウエイ管理情報で管理するゲートウエイ毎の固有識別子に含まれるかを判定する第四の判定を行い、
前記第四の判定で前記サーバ認証要求に搭載されたゲートウエイの固有識別子が、前記ゲートウエイ管理情報で管理するゲートウエイ毎の固有識別子に含まれる場合、前記第三の判定を行い、
前記第四の判定で前記サーバ認証要求に搭載されたゲートウエイの固有識別子が、前記ゲートウエイ管理情報で管理するゲートウエイ毎の固有識別子に含まれない場合、前記第三の判定を行わない
ことを特徴とする(8)記載の情報収集システム。
(10)
前記第3サーバは、
前記ゲートウエイの前記情報処理システムへの参入を許可すると、許可の参入応答を前記第1サーバへ送信し、
前記ゲートウエイは、
前記第1サーバから転送された前記許可の参入応答を受信すると、前記ゲートウエイの固有識別子を搭載して、前記第2サーバとの接続情報であるコンフィグを取得するためのコンフィグ取得要求を、前記第1サーバへ送信し、
前記第3サーバは、
前記第1サーバから転送されたコンフィグ取得要求を受信すると、
前記コンフィグ取得要求に搭載されたゲートウエイの固有識別子が、前記ゲートウエイ管理情報で管理するゲートウエイ毎の固有識別子に含まれるかを判定する第五の判定を行い、
前記第五の判定で前記コンフィグ取得要求に搭載されたゲートウエイの固有識別子が、前記ゲートウエイ管理情報で管理するゲートウエイ毎の固有識別子に含まれない場合、コンフィグ情報を生成せず、
前記第五の判定で前記コンフィグ取得要求に搭載されたゲートウエイの固有識別子が、前記ゲートウエイ管理情報で管理するゲートウエイ毎の固有識別子に含まれる場合、
生成した事前共有鍵及び第2サーバ接続先情報を含む第一のコンフィグ情報を搭載したコンフィグ取得応答を、前記第1サーバに送信し、
生成した事前共有鍵及びゲートウエイ接続元情報を含む第二のコンフィグ情報を搭載したコンフィグ情報通知を、前記第2サーバに送信し、
前記第2サーバは、
前記第3サーバから受信したコンフィグ情報通知に搭載される第二のコンフィグ情報を記憶部に格納し、
前記ゲートウエイは、
前記第1サーバから転送されたコンフィグ取得応答に搭載される第一のコンフィグ情報を記憶部に格納し、
前記格納した第2サーバ接続先情報を参照して、前記格納した事前共有鍵を用いて前記第2サーバに接続する
ことを特徴とする(8)記載の情報収集システム。
(11)
情報処理システムと、ネットワークを経由して前記情報処理システムに接続するゲートウエイとを備える情報収集システムにおける接続制御方法であって、
前記情報処理システムは、前記ゲートウエイの初期接続先でありサーバ証明書を保持する第1サーバと、前記ゲートウエイが送信する計測データの送信先である第2サーバと、前記第1サーバ及び前記第2サーバを管理する第3サーバとを備え、
前記ゲートウエイは、
前記ゲートウエイの固有識別子及びゲートウエイの装置固有情報を管理するゲートウエイ情報と、第1サーバ接続先情報、生成した乱数及び共通ルールに従って出力された共通鍵を管理する第1サーバ管理情報とを格納し、
前記生成した乱数と前記ゲートウエイの固有識別子とを搭載したサーバ認証要求を、前記第1サーバへ送信し、
前記第3サーバは、
前記ゲートウエイ毎に、装置固有情報、固有識別子及び共通ルールに従って出力された共通鍵を管理するゲートウエイ管理情報を格納し、
前記第1サーバから転送された前記サーバ認証要求を受信すると、前記サーバ認証要求に搭載された乱数と、前記ゲートウエイに対応するゲートウエイ管理情報で管理される共通鍵とに基づいて、第一の認証コードを生成し、
前記第一の認証コードを搭載したサーバ認証応答を、前記第1サーバへ送信し、
前記ゲートウエイは、
前記第1サーバから転送された前記サーバ認証応答を受信すると、前記生成した乱数と、前記第1サーバ管理情報で管理される共通鍵とに基づいて、第二の認証コードを生成し、
受信した前記サーバ認証応答に搭載された前記第一の認証コードと生成した前記第二の認証コードとが一致するかを判定する第一の判定を行い、
前記第一の判定で前記第一の認証コードと前記第二の認証コードとが一致する場合、前記第1サーバから前記サーバ証明書を取得して、取得したサーバ証明書を前記第1サーバ管理情報に格納する
ことを特徴とする情報収集システムにおける接続制御方法。
(12)
前記ゲートウエイのゲートウエイ情報は、更に、共通ルールに従って出力されたパスワードを管理し、
前記ゲートウエイは、
前記サーバ証明書を格納した後に、前記パスワードと前記ゲートウエイの固有識別子とを搭載した参入要求を、前記第1サーバへ送信し、
前記第3サーバのゲートウエイ管理情報は、更に、共通ルールに従って出力されたパスワードを管理し、
前記第3サーバは、
前記第1サーバから転送された前記参入要求を受信すると、前記参入要求に搭載されたパスワードと、前記ゲートウエイ管理情報でゲートウエイ毎に管理されるパスワードとが一致するかを判定する第三の判定を行い、
第三の判定で、前記参入要求に搭載されたパスワードと前記ゲートウエイ管理情報でゲートウエイ毎に管理されるパスワードとが一致する場合、前記ゲートウエイの前記情報処理システムへの参入を許可し、
第三の判定で、前記参入要求に搭載されたパスワードと前記ゲートウエイ管理情報でゲートウエイ毎に管理されるパスワードとが一致しない場合、前記ゲートウエイの前記情報処理システムへの参入を許可しないこと
を特徴とする(11)記載の情報収集システムにおける接続制御方法。
(13)
前記第3サーバは、
前記ゲートウエイの前記情報処理システムへの参入を許可すると、許可の参入応答を前記第1サーバへ送信し、
前記ゲートウエイは、 前記第1サーバから転送された前記許可の参入応答を受信すると、前記ゲートウエイの固有識別子を搭載して、前記第2サーバとの接続情報であるコンフィグを取得するためのコンフィグ取得要求を、前記第1サーバへ送信し、
前記第3サーバは、
前記第1サーバから転送されたコンフィグ取得要求を受信すると、
前記コンフィグ取得要求に搭載されたゲートウエイの固有識別子が、前記ゲートウエイ管理情報で管理するゲートウエイ毎の固有識別子に含まれるかを判定する第五の判定を行い、
前記第五の判定で前記コンフィグ取得要求に搭載されたゲートウエイの固有識別子が、前記ゲートウエイ管理情報で管理するゲートウエイ毎の固有識別子に含まれない場合、コンフィグ情報を生成せず、
前記第五の判定で前記コンフィグ取得要求に搭載されたゲートウエイの固有識別子が、前記ゲートウエイ管理情報で管理するゲートウエイ毎の固有識別子に含まれる場合、
生成した事前共有鍵及び第2サーバ接続先情報を含む第一のコンフィグ情報を搭載したコンフィグ取得応答を、前記第1サーバに送信し、
生成した事前共有鍵及びゲートウエイ接続元情報を含む第二のコンフィグ情報を搭載したコンフィグ情報通知を、前記第2サーバに送信し、
前記第2サーバは、
前記第3サーバから受信したコンフィグ情報通知に搭載される第二のコンフィグ情報を記憶部に格納し、
前記ゲートウエイは、
前記第1サーバから転送されたコンフィグ取得応答に搭載される第一のコンフィグ情報を記憶部に格納し、
前記格納した第2サーバ接続先情報を参照して、前記格納した事前共有鍵を用いて前記第2サーバに接続する
ことを特徴とする(12)記載の情報収集システムにおける接続制御方法。