(本発明の基礎となった知見)
従来、工場施設等に設置された機器は、独自の通信方式で独自の通信線で装置間を接続して通信することで、稼動する。しかし、インターネットの普及と共に、工場施設においても、高速化及び低価格化が進んだ汎用プロトコルであるEthernet(イーサネット(登録商標))やIP(Internet Protocol)を利用した機器が設置されてきている。
しかしながら、Ethernet及びIPは、セキュリティを十分考慮できていない。
例えば、図1に示される通信ネットワークにおいて通信装置TAと通信装置TBとの通信が、ハブH1、H2及びH3を介してなされているとする。パケットPAは、通信装置TAから通信装置TBへ送信されるパケットであり、パケットPBは、通信装置TBから通信装置TAへ送信されるパケットである。パケットPA及びPBによりなされる通信は、正当な通信である。
ここで、通信装置TCが、送信元IPアドレスを通信装置TBのアドレス(つまりIPB)に偽装したパケットPCを通信装置TA宛に送信することによる不正な通信が可能である。通信装置TCは、パケットPCを大量に通信装置TAに送信することで、通信装置TAの処理負荷を上昇させたり、誤作動を所持させたりする攻撃ができてしまうという問題がある。
さらに、通信装置TCがARPプロトコルを悪用することで通信経路を論理的に変更し、正規の通信者ではない第三者がデータの盗聴又は改竄などを行うMITM攻撃(Man−In−The−Middle Attack)などが比較的容易に行われ得るという問題がある。
特許文献1で開示されている技術によれば、防御機能搭載ハブの信頼ポートに接続された機器に対するなりすまし通信を破棄することは可能である。そして、防御機能搭載ハブの信頼ポートに直接に接続されておらず、離れた場所に存在する機器との通信を保護したい場合には、複数の防御機能搭載ハブを多段で接続し、複数の防御機能搭載ハブのポートのうち、保護したい通信が通過するポートをすべて信頼ポートに設定する必要がある。
しかし、工場施設は広いので、保護が必要な通信をする機器同士が離れた場所に設置されることが一般的である。また、工場施設内に設置される機器の数も多い。よって、保護が必要な通信をする機器の間に存在するすべてのハブを防御機能搭載ハブに置換していくことは現実的ではない。
そこで、本発明は、既存の通信ネットワークを構成する一部の機器を維持しながらセキュリティを向上させる通信保護装置を提供する。
本発明の一態様に係る通信保護装置は、第1の機器からパケットを受信し、受信した前記パケットを第2の機器へ送信する通信部と、少なくとも1つの機器の物理アドレスと論理アドレスとの組を含むアドレス認証情報を保持するメモリと、前記パケットに含まれる前記第1の機器及び第2の機器の物理アドレス又は論理アドレスが、前記アドレス認証情報に含まれる場合において、前記第1の機器及び第2の機器の物理アドレスと論理アドレスとの組が、前記アドレス認証情報に含まれる物理アドレスと論理アドレスとの組に一致するか否かを判定し、一致しないと判定した場合に、前記パケットを破棄する制御部とを備える。
この構成により、保護したい機器に通信保護装置を直接に接続することで、機器間の通信を第三者が取得し改竄・漏洩・遮断等することを防止することができる。また、通信保護装置間の接続には、通常のハブを利用できるので既存設備を引き続き使用できる。このように、通信保護装置は、既存の通信ネットワークを構成する一部の機器を維持しながらセキュリティを向上させる。
例えば、前記メモリは、さらに、当該通信保護装置とは異なる他の通信保護装置と共有しているグループ鍵を保持し、前記制御部は、さらに、前記他の通信保護装置から、第3の機器のアドレスとメッセージ認証情報とを含む更新通知メッセージを前記通信部を介して受信し、前記グループ鍵を用いて所定のアルゴリズムで生成された認証情報と、前記メッセージ認証情報とが一致している場合に、前記更新通知メッセージに含まれている前記第3の機器のアドレスを前記アドレス認証情報に追加することで更新してもよい。
この構成により、同じグループで同じ鍵が設定された通信保護装置でのみ、更新通知メッセージの妥当性の検証が成功し、同一のグループに属する通信保護装置にのみ更新通知メッセージを送信することができる。これにより、通信保護装置が、例えば悪意者から送信される不正な更新通知メッセージを受信して動作することを回避できる。よって、通信保護装置は、不正な更新通知メッセージに基づく動作を回避しながら、既存の通信ネットワークを構成する一部の機器を維持しながらセキュリティを向上させる。
例えば、前記制御部は、さらに、前記通信部を介して前記アドレス認証情報を、当該通信保護装置とは異なる他の通信保護装置へ送信してもよい。
この構成により、通信保護装置は、他の通信保護装置とアドレス認証情報を共有できる。これにより、通信保護装置は、他の通信保護装置と連携して、既存の通信ネットワークを構成する一部の機器を維持しながらセキュリティを向上させる。
例えば、前記アドレス認証情報は、前記少なくとも1つの機器のアドレスとシーケンスIDとの組を含み、前記制御部は、前記通信部を介して前記アドレス認証情報を前記他の通信保護装置へ送信するたびにインクリメントしたシーケンスIDを、前記アドレス認証情報に含めてもよい。
この構成により、通信保護装置は、シーケンスIDに基づいて他の通信保護装置とアドレス認証情報を共有できる。より具体的には、アドレス認証情報を通信路でキャプチャして後で再送することで過去の情報に上書きするセーブ&リプレイ攻撃に対して防御するのに有効である。
例えば、前記制御部は、前記通信部と通信可能な機器のアドレスを収集し、収集した前記アドレスに基づいて前記アドレス認証情報を更新してもよい。
この構成により、通信保護装置は、通信可能な機器のアドレスを収集することで、アドレス認証情報を更新できる。これにより、通信保護装置の管理者が、通信可能な機器のアドレスを調査して通信保護装置に設定する必要がなくなる利点がある。また、通信保護装置に流入する通信パケットに応じてアドレス認証情報を更新することができるので、通信保護装置の管理者が繰り返しアドレス認証情報を調査して更新する必要がなくなる利点がある。
例えば、前記アドレス認証情報は、MAC(Media Access Control)アドレスとIP(Internet Protocol)アドレスとの組であり、前記制御部は、前記アドレス認証情報の更新の際に、収集した前記アドレスのうち、1つの前記IPアドレスに対応付けられる前記MACアドレスの組がただ1つである場合、当該組を前記アドレス認証情報に追加することで更新してもよい。
この構成により、通信保護装置は、収集したアドレスのうち、任意のIPアドレスに対応付けられるMACアドレスの組が1つの場合に、信頼できるIPアドレス/MACアドレスの組としてアドレス認証情報に追加することができる。
また、本発明の一態様に係る通信保護装置の制御方法は、前記通信保護装置は、少なくとも1つの機器のアドレスを含むアドレス認証情報を保持するメモリを備え、前記制御方法は、第1の機器からパケットを受信し、受信した前記パケットを第2の機器へ送信する通信ステップと、前記パケットに含まれている前記第2の機器のアドレスが、前記アドレス認証情報に含まれているか否かを判定し、前記第2の機器のアドレスが前記アドレス認証情報に含まれていないと判定した場合に、前記パケットを破棄する制御ステップとを含む。
これにより、上記通信保護装置と同様の効果を奏する。
また、本発明の一態様に係るプログラムは、上記の制御方法をコンピュータに実行させるためのプログラムである。
これにより、上記通信保護装置と同様の効果を奏する。
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、構成要素、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また全ての実施の形態において、各々の内容を組み合わせることもできる。
(実施の形態)
本実施の一形態について、図面を参照しながら説明する。なお、各図面において同じ構成要素については同じ符号が用いられている。
1.通信システムの全体構成
図2は、本実施の形態における通信システム10の構成を示す図である。通信システム10は、例えば工場施設に配備される通信ネットワークと、当該通信ネットワークに接続された機器とを含む。ただし、通信システム10は、工場施設に配備されるものに限られない。
本実施の形態では、工場施設における機器はIEEE802.3で規定されるEthernet上でTCP(Transmission Control Protocol)/IPやUDP(User Datagram Protocol)/IPなどアプリケーションの特性に応じて適切なプロトコルで通信を行う。
図2において通信システム10は、ルータ101を介してインターネット回線100に接続されている。これにより、インターネット回線100を介して遠隔地から機器に対してリモート監視を行うなど、高度な制御を行うことが可能となる。
各機器は、LANケーブルでハブ103、105若しくは106、又は、通信保護装置の一形態であるセキュアハブ102若しくは104と接続することで他の機器と通信を行う。
ハブ103、105若しくは106、又は、セキュアハブ102若しくは104は、各機器から送出されるパケットを、当該パケット内のアドレス情報に基づいて適切な機器へ伝送する機能を有する。
図2において通信システム10は、通信ネットワークに接続される機器として、PLC(Programmable Logic Controller)110並びに115、SCADA(Supervisory Control And Data Acquistion)112、および、PC111、113、114並びに116を備える。
PLC110及び115は、製造ラインのベルトコンベア等のモータ制御、又は、制動機器の位置決め制御のためのセンサの制御などを行う。SCADA112は、システム監視又はPLC等の制御監視、より具体的にはプロセス監視を行う。PC111、113、114および116は、製造手順のナビゲーション及びトレーサビリティデータを収集する製造PCである。
図2において、構成要素間を結ぶ線はLANケーブルを示している。また、ハブ103、105及び106、並びに、セキュアハブ102及び104のそれぞれとLANケーブルの接続点に記載されている数値は、LANケーブルが接続される物理ポート(単に「ポート」ともいう)の識別子を示す。
図2に示される通信システム10は、セキュアハブ102及び104により、例えばPC114がSCADA112になりすまして、PLC115にパケットを送信することで、PLC115の負荷上昇又は誤動作を招く攻撃を抑制し得る。以降において、上記攻撃を抑制するための構成及び処理について説明する。
2.セキュアハブの構成
図3は、セキュアハブ104の構成を示す図である。ここでは、セキュアハブ104を例として説明するが、セキュアハブ102についても同様の説明が成立する。図3においてセキュアハブ104は、記憶領域201、パケット転送制御部202、転送処理部204、ポートP1、P2、P3及びP4、および、設定入力部209を備える。なお、ポートP1、P2、P3及びP4を単にポートともいう。
パケット転送制御部202は、パケットの転送可否を判定する。
また、パケット転送制御部202は、ポートを介してアドレス認証情報210を、他のセキュアハブへ送信する。また、パケット転送制御部202は、他のセキュアハブから、アドレスとメッセージ認証情報とを含む更新通知メッセージを受信する。そして、パケット転送制御部202は、グループ鍵を用いて所定のアルゴリズムで生成された認証情報と、メッセージ認証情報とが一致している場合に、更新通知メッセージに含まれているアドレスをアドレス認証情報210に追加することで更新する。
また、パケット転送制御部202は、ポートと通信可能な機器のアドレスを収集し、収集したアドレスに基づいてアドレス認証情報210を更新する。
転送処理部204は、ポートによるパケットの受信又は送信のIO(Input Output)処理を行う。転送処理部204は、ポートが受信したパケットに含まれているアドレス(具体的には、送信元の機器と宛先の機器との物理アドレス又は論理アドレス)が、アドレス認証情報210に含まれる場合において、送信元の機器及び宛先の機器の物理アドレスと論理アドレスとの組が、アドレス認証情報に含まれる物理アドレスと論理アドレスとの組に一致するか否かを判定する。そして、転送処理部204は、上記判定において一致しないと判定した場合に、上記パケットを破棄する。
パケット転送制御部202と転送処理部204とは、制御部に相当する。
ポートP1、P2、P3及びP4は、各機器と接続する物理ポートである。ポートP1、P2、P3及びP4は、それぞれ、接続された機器からパケットを受信し、受信したパケットを、当該パケットに含まれるアドレス情報に基づいて、接続された別のポートに接続された機器へ送信する。ポートP1、P2、P3及びP4の各ポートには、識別子であるポートIDが割り当てられている。ポートIDは、一般のハブなどの通信装置における物理ポート番号に相当する。ポートP1のポートIDは、その符号と同じ「P1」であるとする。図2ではポートP1のポートIDを単に「1」と記載している。他のポートについても同様とする。
例えば、ポートP1にはハブ103が接続されており、ポートP2にはPLC115が接続されており、ポートP3にはPC116が接続されている。ポートP1、P2、P3及びP4は、通信部に相当する。
設定入力部209は、ユーザから設定情報の入力I/Fを提供する。
設定入力部209は、例えばユーザが設定を行うためのグラフィカルなWebインタフェース等(不図示)を提供する。設定入力部209は、例えば、通信システム10に設置されたセキュアハブ102並びに104のIPアドレス、セキュアハブ102とセキュアハブ104の間の認証に利用されるグループ鍵を、ユーザが設定するためのWebインタフェース等を提供する。なお、設定入力部209は、必要に応じて、信頼できるIPアドレス及びMACアドレスの組をアドレス認証情報210として手動で設定するためのWebインタフェース等を提供してもよい。
記憶領域201は、各種情報を保持する記憶装置である。記憶領域201はメモリに相当する。
記憶領域201が記憶する情報は、アドレス認証情報210と、転送先テーブル211と、グループ鍵情報213とを含む。
アドレス認証情報210は、信頼できるIPアドレス及びMACアドレスの対応関係を記憶した情報である。アドレス認証情報210は、少なくとも1つの機器のアドレスを含む。
転送先テーブル211は、ポートP1、P2、P3及びP4に接続された機器のMACアドレスを管理する情報である。
グループ鍵情報213は、セキュアハブ102とセキュアハブ104との間で認証情報として利用する鍵情報である。
なお、セキュアハブ102のポートを、ポートQ1、Q2、Q3及びQ4とする。また、ポートQ1のポートIDは、その符号と同じ「Q1」であるとする。図2ではポートQ1のポートIDを単に「1」と記載している。他のポートについても同様とする。例えばセキュアハブ102のポートQ2にはSCADA112が接続されている。
3.記憶領域の構成
次に記憶領域201で保持される情報について具体的に説明する。
図4は、転送先テーブル211の構成を示す図である。転送先テーブル211は、セキュアハブのポートに接続された機器のMACアドレスを管理する情報であり、パケットの送信先ポートを決定する際に用いられる。
転送先テーブル211は、セキュアハブのポートを識別する番号であるポートID401と、当該ポートに接続された機器のネットワークインタフェースカードのMACアドレス402と、当該機器のIPアドレス403とを含む。
MACアドレス402及びIPアドレス403は、それぞれ、当該ポートに直接に接続された、又は、ハブを経由して間接的に接続された機器のMACアドレス及びIPアドレスである。ハブ経由で機器が接続される場合には、1つのポートに対して複数台の機器のMACアドレスとIPアドレスとの組が登録され得る。
図4において、例えば、ポートP1に対してMACアドレスとIPアドレスとの組が2つ登録されている。具体的には、ポートP1に対して、MACアドレス“02−02−02−0a−0a−6e”と、IPアドレス“192.168.0.110”との組、及び、MACアドレス“02−02−02−0a−0a−6f”とIPアドレス“192.168.0.111”との組の、合計2つの組が登録されている。
また、機器のネットワークインタフェースカードに複数のIPアドレスを割り当てた場合、1つのMACアドレスに対して複数のIPアドレスが登録されることもある。
MACアドレス402は、ポートに接続された機器から送信されたイーサネット(登録商標)フレームの送信元MACアドレスから取得され得る。また、IPアドレス403は、ポートに接続された機器が送信するARP(Address Resolution Protocol)パケットに格納された送信元IPアドレスから取得され得る。ARPパケットについては後述する。
図5は、アドレス認証情報210の構成を示す図である。アドレス認証情報210は、機器ID501と、ポートID502と、方式503と、シーケンスID504と、MACアドレス505と、IPアドレス506とを含む。
機器ID501は、セキュアハブを識別し得る識別子である。ここでは、セキュアハブ104の機器IDをSH4とし、セキュアハブ102の機器IDをSH2とする。
ポートID502は、セキュアハブのポートを識別し得る識別子である。
上記の機器ID501及びポートID502によって、通信システム10に含まれるセキュアハブに接続された機器のうち、信頼できる機器が接続されたセキュアハブと、そのセキュアハブに信頼できる機器が接続されたポートとが特定される。
方式503は、信頼できるMACアドレス及びIPアドレスを取得した方式である学習方式である。学習方式は、“auto”又は“manual”から選択される。“auto”は、セキュアハブによる動的な学習により取得したことを意味する。“manual”は、セキュアハブに対して管理者による手動での設定により取得したことを意味する。
シーケンスID504は、セキュアハブ間でアドレス認証情報210を共有した際のシーケンスIDである。
MACアドレス505とIPアドレス506とは、それぞれ、セキュアハブに接続された機器であって、信頼できると判断された機器のMACアドレスとIPアドレスとである。
アドレス認証情報210は、当該アドレス認証情報210を有しているセキュアハブ104が生成した上記各情報、及び、他のセキュアハブであるセキュアハブ102から通知された上記各情報の両方を管理する。アドレス認証情報210の生成の処理、および、セキュアハブ間でのアドレス認証情報210の共有の処理については後述する。
4.ARPパケットの構成
次にARPパケットの構成について説明する。ARPは、通信相手のIPアドレスが既知であるときに、その通信相手にイーサネット(登録商標)フレームを送信するために、その通信相手の物理アドレスであるMACアドレスを検索するプロトコルである。ARPパケットは、イーサネット(登録商標)フレームのPayloadにARPパケットが格納された構成を有する。
図6は、イーサネット(登録商標)フレーム600の構成を示す図である。図6に示されるイーサネット(登録商標)フレーム600は、IEEE802.3で規定されたフォーマットを有する。具体的には、イーサネット(登録商標)フレーム600は、データの開始を示すPreamble601と、SFD(Start Frame Delimiter)602と、宛先の物理アドレスであるD−MAC603と、送信元の物理アドレスであるS−MAC604と、送信データの種別であるEtherType605と、送信データであるPayload606と、送信データのエラーチェックに用いるFCS(Frame Check Sequence)607とを含んで構成される。
Payload606には、ARPパケット610が含まれる。
ARPパケット610は、RFC826で規定されたフォーマットを有する。ARPパケット610は、OSI参照モデルにおけるデータリンク層で利用しているプロトコルの種別を示すHardwareType611と、OSI参照モデルにおけるネットワーク層で利用しているプロトコルの種別を示すProtocolType612と、データリンク層のアドレスの長さ、すなわち、MACアドレスの長さを示すHardwareLength613と、ネットワーク層のアドレスの長さ、すなわち、IPアドレスの長さを示すProtocolLength614と、要求または応答を区別する動作種別を示す動作コードを格納するOperation615と、ARPパケットの送信元のデータリンク層のアドレスであるARP−S−MAC616と、送信元のネットワーク層のアドレスであるARP−S−IP617と、アドレスを取得する対象機器のデータリンク層のアドレスであるARP−D−MAC618と、アドレスを取得する対象機器のネットワーク層のアドレスであるARP−D−IP619とを含んで構成される。
次に、MACアドレスの要求を示すARPリクエストパケットの構成と、要求に対する応答を示すARPリプライパケットの構成とについて説明する。
図7は、ARPリクエストパケットの一例を示す図である。図8は、ARPリプライパケットの一例を示す図である。これらのARPリクエストパケット及びARPリプライパケットは、図6に示されるARPパケットのフィールドに具体的な情報を設定したものである。
ここでは、ARPリクエストパケットの送信元の機器のMACアドレスが“02−02−02−0c−0c−0c”、送信元の機器のIPアドレスが“192.168.0.100”であるとする。そして、送信元の機器が、IPアドレスが“192.168.0.101”である機器のMACアドレスを取得するためのARPリクエストパケットを送信する。送信されたARPリクエストパケットに対し、IPアドレスが“192.168.0.101”である機器が、MACアドレス“02−02−02−0a−0a−0a”を通知する場合のイーサネット(登録商標)フレームの構成について説明する。
なお、図7では、図6で説明したイーサネット(登録商標)フレーム600のうちの、ARPパケット610に関連のあるフィールドのみを記載しており、Preamble601、SFD602およびFCS607は省略している。
図7に示されるARPリクエストパケット610Aは、特定のIPアドレスの機器のMACアドレスを調査する際に利用され、通信システム10に接続されている全機器に届くようにブロードキャストで送信される。
ARPリクエストパケット610Aは、イーサネット(登録商標)フレーム600Aに含まれている。
イーサネット(登録商標)フレーム600AのD−MAC603にはブロードキャストを示す“FF−FF−FF−FF−FF−FF”が格納され、S−MAC604には送信元のネットワークインタフェースカードのMACアドレスである“02−02−02−0c−0c−0c”が格納されている。また、EtherType605にはPayload606のデータの種別がARPパケットであることを示す値である“0x0806”が格納されている。
ARPリクエストパケット610Aには、次に示す値が格納されている。HardwareType611には、プロトコルの種別がイーサネット(登録商標)であることを示す“0x0001”が格納されている。ProtocolType612には、プロトコルの種別がIPプロトコルであることを示す“0x0800”が格納されている。HardwareLength613には、MACアドレスの長さが6byteであることを示す“0x06”が格納されている。ProtocolLength614には、IPのバージョン4のIPアドレスの長さが4byteであることを示す“0x04”が格納されている。Operation615には、ARPの動作がリクエストであることを示す“0x0001”が格納されている。ARP−S−MAC616には、送信元のMACアドレスである“02−02−02−0c−0c−0c”が格納されている。ARP−S−IP617には、送信元のIPアドレスである“192.168.0.100”が格納されている。ARP−D−MAC618には、ダミーの値である“FF−FF−FF−FF−FF−FF”が格納されている。ARP−D−IP619には、調査対象のIPアドレスを示す“192.168.0.101”が格納されている。
ARPリクエストパケット610Aを受信した機器は、パケット中のARP−D−IP619を確認し、機器自身のIPアドレスと一致するか否かを判定する。そして、機器は、一致すると判定した場合には、後述するARPリプライパケット610Bを返信し、一致しないと判定した場合には、ARPリクエストパケットを破棄する。
図8は、ARPリプライパケット610Bを示す図である。図8において、図6で説明したイーサネット(登録商標)フレーム600のうちの、ARPパケット610に関連のある領域のみを記載しており、Preamble601、SFD602およびFCS607は省略している。
ARPリプライパケット610Bは、ARPリクエストパケット610Aを受信した場合に、ARPリクエストパケット610Aを受信したことに応じて、調査対象のIPアドレスを有する機器が返信するパケットである。なお、ARPリプライパケット610Bは、Gratuitous ARPとよばれる、機器自身のIPアドレスの変化を他の機器へ通知する目的としても利用される。
ARPリプライパケット610Bのうち、図7で説明したARPリクエストパケット610Aと同じ値が格納されているフィールドについては、その説明を省略する。ARPリクエストパケット610Aを受信した機器は、ARPリクエストパケット610Aの送信元の機器に対して、自身の機器のIPアドレスとMACアドレスとを含むARPリプライパケット610Bを生成して返信する。
イーサネット(登録商標)フレーム600BのD−MAC603には、リクエストパケットを送信した機器のMACアドレスである“02−02−02−0c−0c−0c”が格納されている。S−MAC604には、送信元のMACアドレスである“02−02−02−0a−0a−0a”が格納されている。
ARPリプライパケット610Bには、次に示す値が格納されている。Operation615には、ARPの動作がリプライであることを示す“0x0002”が格納されている。ARP−S−MAC616には、送信元のMACアドレスである“02−02−02−0a−0a−0a”が格納されている。ARP−S−IP617には、送信元のIPアドレスである“192.168.0.101”が格納されている。ARP−D−MAC618には、宛先のMACアドレス“02−02−02−0c−0c−0c”が格納されている。ARP−D−IP619には、宛先のIPアドレス“192.168.0.100”が格納されている。
このように、ARPリクエストパケット610Aを送信した機器は、調査対象の機器からARPリプライパケット610Bを受信することで、調査対象の機器のIPアドレスに対するMACアドレスを取得する。
5.アドレス認証情報を通知するメッセージの構成
次に、複数のセキュアハブの間でアドレス認証情報210を通知する場合に利用するメッセージについて説明する。この通信メッセージは、セキュアハブからブロードキャストにより通信システム10に存在する機器に一斉同報配信される。そして、送信したセキュアハブと同一のグループに属するセキュアハブのみが、送信された通信メッセージを受信することが可能である。
図9は、セキュアハブがアドレス認証情報210を通知するための更新通知メッセージ700の構成を説明する図である。図9に示されるメッセージは、一のセキュアハブが、他のセキュアハブが有するアドレス認証情報210を更新するための更新通知メッセージ700である。更新通知メッセージ700は、イーサネット(登録商標)フレーム600のPayload606、又は、IPパケットのペイロードに含まれる。
図9に示されるように、更新通知メッセージ700は、ヘッダ部とボディ部とを含む。
ヘッダ部は、CommandID701と、SequenceID702と、SwitchID703と、NumOfEntry704とを含んで構成される。
CommandID701は、コマンドの種別が格納されるフィールドである。コマンドの種別は、例えば、「0x0101:アドレス認証情報の更新通知」である。
SequenceID702は、更新通知メッセージの重複を検出するために、更新通知メッセージごとに異なる数値が格納されるフィールドである。SequenceID702には、当該更新通知メッセージを送信するセキュアハブが保有する単調増加するカウンタ値を設定する。このカウンタ値は、セキュアハブが通信メッセージを送信するたびにインクリメントされ、言い換えれば1ずつ加算される。SequenceID702は、更新通知メッセージをキャプチャして後で再送することで過去の情報に上書きするセーブ&リプレイ攻撃に対して防御するのに有効である。
SwitchID703は、更新通知メッセージを送信したセキュアハブの機器IDが格納されるフィールドである。
NumOfEntry704は、更新通知メッセージのボディ部に含まれるアドレス認証情報の個数を示す数値が格納されるフィールドである。
ボディ部は、アドレス認証情報を格納するn個のEntry705と、MessageAuthenticationCode706とを含む。ここで、nは、NumOfEntry704に格納されている数値である。MessageAuthenticationCode706には、ヘッダ部とボディ部に含まれるn個のEntry705とを含むデータに対する認証情報が格納されている。
MessageAuthenticationCode706は、当該更新通知メッセージの認証情報が格納される。MessageAuthenticationCode706は、例えばRFC2104で規定されたHMAC(Hash−based Message Authentication Code)アルゴリズムによって生成される認証情報である。セキュアハブは、グループ鍵情報213に格納された鍵情報を、HMACアルゴリズムにおける秘密鍵として利用する。セキュアハブは、同一の秘密鍵を有する、つまり、同一のグループに属するセキュアハブとの間でのみ通信メッセージの妥当性の検証が成功する。これにより、セキュアハブは、同一のグループに属するセキュアハブにのみ通信メッセージを送信することが可能となる。
Entry705には、自機器が生成したアドレス認証情報210が格納される。自機器が生成したアドレス認証情報210とは、図5に示されるアドレス認証情報210のうち機器ID501が自身の機器IDと一致するものである。アドレス認証情報210のポートID502がPort707に格納され、アドレス認証情報210の方式503がMode708に格納され、アドレス認証情報210のMACアドレス505がMACAddress709に格納され、アドレス認証情報210のIPアドレス506がIPAddress710に格納されることで、Entry705が生成される。
6.IPヘッダの構成
次に、IPヘッダの詳細について説明する。図10は、ネットワーク上の機器がRFC791で規定されたIP通信を行う場合に利用するIPパケットを含むイーサネット(登録商標)フレーム600Cを示す図である。
図10においてIPヘッダ1700は、イーサネット(登録商標)フレーム600CのPayload606に格納され、宛先アドレスを識別するために利用される。IPヘッダ1700は、SourceIPAddress1702とDestinationIPAddress1703とを含み、宛先IPアドレス及び送信元IPアドレスを識別する際に利用される。
7.セキュアハブの動作
次に、セキュアハブの動作について説明する。本実施の形態では、セキュアハブの動作として、パケットの転送状況を学習した後にアドレス認証情報210を登録する処理と、登録されたアドレス認証情報210を用いたパケットを転送する処理に分けて説明する。ただし、セキュアハブの動作として2つの処理を分離して行うことは必須ではない。すなわち、セキュアハブの動作として、パケットを転送する処理を実施しながら、アドレス認証情報210を登録する処理を行うようにしてもよい。
7−1.アドレス認証情報の登録処理
図11は、本実施の形態におけるセキュアハブ102によるアドレス認証情報を登録する処理を示すフローチャートである。なお、セキュアハブ102の処理について説明するが、セキュアハブ104についても同様の説明が成立する。以降でも同様とする。
ステップS801において、セキュアハブ102は、ポートP1、P2、P3及びP4のいずれかからパケットを受信するまで待機する。ポートP1、P2、P3及びP4のいずれかによってパケットを受信したら、転送処理部204は、受信したパケットをパケット転送制御部202へ転送する。
ステップS802において、パケット転送制御部202は、ステップS801で受信したパケットがARPパケットであるか否かを判定する。ARPパケットである場合(ステップS802でYESの場合)には、パケット転送制御部202は、ステップS803の処理を行う。ARPパケットでない場合(ステップS802でNOの場合)には、パケット転送制御部202は、ステップS804の処理を行う。
ステップS803において、パケット転送制御部202は、ARPパケットの送信元のIPアドレスであるARP−S−IP617と、送信元のMACアドレスであるARP−S−MAC616とを抽出し、受信したポートの番号とともに転送先テーブル211へ登録する。
なお、送信元のMACアドレスは、ARPパケット610のARP−S−MAC616から抽出される代わりに、イーサネット(登録商標)フレーム600のS−MAC604から抽出されてもよい。
ステップS804において、パケット転送制御部202は、パケットを通信相手へ届けるために、送出先ポートを決定し、決定した送出先ポートのポートIDを転送処理部204へ通知する。ステップS804の詳細な処理は後述する。
ステップS805において、転送処理部204は、ステップS804で通知されたポートIDに基づいて送出先ポートによりパケットを送出する。
ステップS806において、パケット転送制御部202は、パケットの転送状況を学習するための学習期間が完了したか否かを判定する。学習期間が完了していないと判定された場合(ステップS806でNOの場合)は、ステップS801へ戻る。学習期間が完了したと判定された場合(ステップS806でYESの場合)、パケット転送制御部202は、ステップS807の処理を行う。
ステップS807において、パケット転送制御部202は、転送先テーブル211を用いてアドレス認証情報210の登録を行う。パケット転送制御部202は、転送先テーブル211から信頼できるMACアドレス及びIPアドレスの組を抽出する。具体的にはパケット転送制御部202は、転送先テーブル211に登録された、ポートID401、MACアドレス402及びIPアドレス403の組(図4参照)のうち、1つのポートにただ1つのMACアドレスが対応付けられている組を抽出する。そして、パケット転送制御部202は、1つのポートに1つのMACアドレスが対応付けられているMACアドレスとIPアドレスとの組を、信頼できるMACアドレス及びIPアドレスの組とし、この組に自機器の機器IDと、抽出されたポートIDとを関連付けてアドレス認証情報210に登録する。
なお、パケット転送制御部202は、1つのMACアドレスに対応付けられている組が複数ある場合には、これらの複数の組を抽出してもよい。そして、抽出した複数の組を信頼できるMACアドレス及びIPアドレスの組とし、この組に自機器の機器IDと、抽出されたポートIDとを関連付けてアドレス認証情報210に登録してもよい。
このように、パケット転送制御部202は、1つのポートに1つのMACアドレスが対応付けられている組を信頼できるMACアドレス及びIPアドレスの組とする。1つのポートに1つのMACアドレスが対応付けられている場合、当該1つのポートに正当な端末が接続されている、言い換えれば、不正な端末が接続されていないと想定されるからである。これは、不正な端末が接続されるとすれば、正当な端末が接続されているLANケーブルにハブ等を介して接続することになり、その場合、1つのポートに複数のMACアドレスが対応付けられることになるからである。
また、セキュアハブのポートのうち、何も接続されていないポート(「空ポート」ともいう)に1つの不正な端末が新たに接続されると、1つのポートに1つのMACアドレスが対応付けられた状態となるが、この状態になることは防止され得る。空ポートは、ネットワーク構築等の際に予め物理的に塞がれ、新たなLANケーブルが挿入されないように保護され得るからである。
また、パケット転送制御部202は、アドレス認証情報210の方式503として“auto”を登録し、シーケンスID504として“n/a”を登録する。
ステップS808において、セキュアハブ102は、ステップS807で登録したアドレス認証情報210を他のセキュアハブへ通知する。ステップS808の詳細な処理については後述する。
なお、1つのポートに1つのMACアドレスが対応付けられている組をアドレス認証情報210に登録するとしたが、これに限らず、管理者により信頼できるポートとして設定されているポートに対応付けられたものもアドレス認証情報210に登録してもよい。管理者による設定は、設定入力部209を通じてなされる。
次に、ステップS808の詳細な処理について説明する。図12は、本実施の形態におけるセキュアハブによりアドレス認証情報210を他のセキュアハブへ通知する処理を示すフローチャートである。
ステップS901において、パケット転送制御部202は、アドレス認証情報210から自機器つまりセキュアハブ102が登録した組を抽出する。具体的には、パケット転送制御部202は、アドレス認証情報210から、機器ID501がセキュアハブ102の機器IDと一致する組を抽出する。
ステップS902において、パケット転送制御部202は、ステップS901で抽出した組を含めたアドレス認証情報210の更新通知メッセージ700を生成する。そして、パケット転送制御部202は、生成した更新通知メッセージ700をイーサネット(登録商標)フレーム600のPayload606へ格納する。
ステップS903において、パケット転送制御部202は、ステップS902で生成したイーサネット(登録商標)フレーム600を、転送処理部204を介して全てのポートによりブロードキャストで送信する。
図13は、本実施の形態におけるアドレス認証情報210を管理者が手動で設定する場合の処理を示すフローチャートである。図13に示される一連の処理であるステップS808Aは、図11のステップS808に含まれる処理である。
ステップS1001において、セキュアハブ102の設定入力部209は、管理者から、信頼できるIPアドレス、MACアドレス及びポートIDの組の入力を受ける。
ステップS1002において、設定入力部209は、ステップS1001で入力された組をアドレス認証情報210へ登録する。設定入力部209は、アドレス認証情報210の方式503として“manual”を登録し、シーケンスID504として“n/a”を登録する。
ステップS808において、セキュアハブ102は、ステップS1002で登録したアドレス認証情報210を他のセキュアハブへ通知する。ステップS808は、図11におけるステップS808と同じである。
7−2.パケットの転送処理
次に、セキュアハブにおける、受信したパケットの転送処理について詳細に説明する。図14は、本実施の形態における受信パケットの転送処理を示すフローチャートである。
ステップS1101において、セキュアハブ102は、ポートP1、P2、P3及びP4のいずれかによりパケットを受信するまで待機する。ポートP1、P2、P3及びP4のいずれかによりパケットを受信したら、転送処理部204は、受信したパケットをパケット転送制御部202に転送する。
ステップS1102において、パケット転送制御部202は、ステップS1101で受信したパケットがアドレス認証情報の更新通知メッセージ700を含むか否かを判定する。アドレス認証情報の更新通知メッセージ700である場合(ステップS1102でYESの場合)には、パケット転送制御部202は、ステップS1103の処理を行う。アドレス認証情報の更新通知メッセージ700でない場合(ステップS1102でNOの場合)には、パケット転送制御部202は、ステップS1104の処理を行う。
ステップS1103において、パケット転送制御部202は、ステップS1101で受信したパケットに含まれる、アドレス認証情報210の更新通知メッセージ700の受信処理を実行する。ステップS1103の処理の詳細は後述する。
ステップS1104において、パケット転送制御部202は、ステップS1101で受信したパケットに対して転送可否の判定を行う。ステップS1104の詳細な説明は後述する。
ステップS1105において、パケット転送制御部202は、ステップS1104の転送可否の判定において転送可と判定された場合(ステップS1105でYESの場合)には、ステップS804の処理を行う。また、パケット転送制御部202は、転送可否の判定において転送不可と判定された場合(ステップS1105でNOの場合)には、ステップS1107の処理を行う。
ステップS804において、パケット転送制御部202は、パケットを通信相手へ届けるために、送出先のポートを決定し、決定したポートのポートIDを転送処理部204へ通知する。
ステップS1106において、転送処理部204は、ステップS804で通知されたポートIDに基づいて送出先のポートによりパケットを送出する。
ステップS1107において、パケット転送制御部202は、ステップS1101で受信したパケットが転送不可であることを、表示する、又は、他の機器へ通知する。
ステップS1108において、転送処理部204は、ステップS1101で受信したパケットを破棄する。
なお、ステップS1101で受信したパケットが転送不可であることを通知する手段は、本実施の形態では特に限定しない。例えば、セキュアハブ102がモニターを具備していれば、そのモニターに表示するようにしてもよい。また、回転灯等の他の機器に、例えばRFC3411等で規定されるSNMP(Simple Network Management Protocol)通信によってパケットが転送不可であることを通知し、回転灯で回転放光することによって可視化するようにしてもよい。
7−3.アドレス認証情報の更新処理
次に、ステップS1103の詳細な処理について説明する。図15は、アドレス認証情報210の更新処理を示すフローチャートである。
ステップS1201において、パケット転送制御部202は、グループ鍵情報213からセキュアハブ102が属するグループのグループ鍵を取得し、ステップS1101で受信した更新通知メッセージ700が同一グループのセキュアハブから通知されたものであるか否かを判定する。具体的には、パケット転送制御部202は、セキュアハブ102のグループ鍵を用いてHMACアルゴリズムによって生成した認証情報と、更新通知メッセージ700に格納されたMessageAuthenticationCode706の値とが一致する場合に、ステップS1101で受信した更新通知メッセージ700が同一グループのセキュアハブから通知されたものであると判定し、一致しない場合に、ステップS1101で受信した更新通知メッセージ700が同一グループのセキュアハブから通知されたものでないと判定する。
ステップS1101で受信した更新通知メッセージ700が同一グループのセキュアハブから通知されたものでないと判定した場合(ステップS1201でNOの場合)には、パケット転送制御部202は、ステップS1202の処理を行う。一方、ステップS1101で受信した更新通知メッセージ700が同一グループのセキュアハブから通知されたものであると判定した場合(ステップS1201でYESの場合)には、パケット転送制御部202は、ステップS1203の処理を行う。
ステップS1202において、パケット転送制御部202は、ステップS1101で受信したパケットを破棄する。
ステップS1203において、パケット転送制御部202は、ステップS1101で受信した更新通知メッセージ700に格納されたSwitchID703を取得する。次に、アドレス認証情報210の中から、SwitchID703と一致する機器ID501を含む組を抽出し、抽出した組のシーケンスID504の値より、更新通知メッセージ700に格納されたSequenceID702の方が大きいか否かを判定する。上記SequenceID702の方が大きいと判定した場合(ステップS1203でYESの場合)には、パケット転送制御部202は、ステップS1204の処理を行い、そうでない場合(ステップS1203でNOの場合)には、パケット転送制御部202は、ステップS1202の処理を行う。
ステップS1204において、パケット転送制御部202は、ステップS1203でアドレス認証情報210から抽出した組をアドレス認証情報210から削除し、更新通知メッセージ700に格納されているEntry705を新たにアドレス認証情報210に登録する。機器ID501及びシーケンスID504には、それぞれ、SwitchID703、SequenceID702の値が格納される。
7−4.パケットの転送判定処理
次に、ステップS1104の詳細な処理について説明する。図16は、受信したパケットの転送判定処理のフローチャートである。
ステップS1301において、パケット転送制御部202は、ステップS1101で受信したパケットのARPの動作種別(Operation615)が応答であるか否かを判定する。ARPの動作種別が応答であると判定した場合(ステップS1301でYESの場合)には、パケット転送制御部202は、ステップS1302の処理を実行する。ARPの動作種別が応答でないと判定した場合(ステップS1301でNOの場合)には、パケット転送制御部202は、ステップS1311の処理を実行する。
なお、ステップS1101で受信したパケットがARPパケットではない場合には、「ARPの動作種別が応答でないと判定した場合」の処理を行う。
ステップS1302において、パケット転送制御部202は、イーサネット(登録商標)フレームに含まれるARPパケットの妥当性検査を実施するために、ARPパケットに格納されているARP−S−MAC616及びARP−S−IP617、並びに、ARP−D−MAC618及びARP−D−IP619を、妥当性の検査対象に指定する。
ステップS1303において、パケット転送制御部202は、ステップS1302で指定した検査対象に対して、ARPパケットの妥当性検査を実施する。妥当性検査の詳細は後述する。
ステップS1304において、パケット転送制御部202は、検査対象に指定したARP−S−MAC616及びARP−S−IP617に対する妥当性検査の結果と、検査対象に指定したARP−D−MAC618及びARP−D−IP619に対する妥当性検査の結果とを取得する。そして、パケット転送制御部202は、2つの妥当性検査の結果が全て妥当であると判定した場合(ステップS1304でYESの場合)には、ステップS1327の処理を実行する。パケット転送制御部202は、2つの妥当性検査の結果のうち少なくとも一方の妥当性検査の結果が妥当でないと判定した場合(ステップS1304でNOの場合)には、ステップS1328の処理を実行する。
ステップS1311において、パケット転送制御部202は、ステップS1101で受信したパケットのARPの動作種別が要求であるか否かを検査する。ARPの動作種別が要求である場合(ステップS1311でYESの場合)には、パケット転送制御部202は、ステップS1312の処理を実行する。ARPパケットの種別が要求でない場合(ステップS1311でNOの場合)には、パケット転送制御部202は、ステップS1321の処理を実行する。
なお、ステップS1101で受信したパケットがARPパケットではない場合には、「ARPの動作種別が要求でないと判定した場合」の処理を行う。
ステップS1312において、パケット転送制御部202は、イーサネット(登録商標)フレームに含まれるARPパケットの妥当性検査を実施するために、ARPパケットに格納されているARP−S−MAC616及びARP−S−IP617を、妥当性の検査対象に指定する。
ステップS1313において、パケット転送制御部202は、ステップS1312で指定した検査対象に対して、ARPパケットの妥当性検査を実施する。ステップS1313の処理の内容は、ステップS1303と同じである。
ステップS1314において、パケット転送制御部202は、ステップS1312で指定した検査対象であるARP−S−MAC616及びARP−S−IP617に対する妥当性検査の結果を取得する。パケット転送制御部202は、妥当性検査の結果が妥当であると判定した場合(ステップS1314でYESの場合)には、パケット転送制御部202は、ステップS1327の処理を実行する。パケット転送制御部202は、妥当性検査の結果が妥当でないと判定した場合(ステップS1314でNOの場合)、ステップS1328の処理を実行する。
ステップS1321において、パケット転送制御部202は、イーサネット(登録商標)フレームの妥当性検査を実施するために、S−MAC604及びSourceIPAddress1702を、妥当性の検査対象に指定する。
ステップS1322において、パケット転送制御部202は、ステップS1321で指定した検査対象に対して、妥当性検査を実施する。ステップS1322の処理の内容は、ステップS1303と同じである。
ステップS1323において、パケット転送制御部202は、ステップS1321で指定した検査対象であるS−MAC604及びSourceIPAddress1702に対する妥当性検査の結果を取得する。パケット転送制御部202は、妥当性検査の結果が妥当であると判定した場合(ステップS1323でYESの場合)には、パケット転送制御部202は、ステップS1324の処理を実行する。パケット転送制御部202は、妥当性検査の結果が妥当でないと判定した場合(ステップS1323でNOの場合)には、ステップS1328の処理を実行する。
ステップS1324において、パケット転送制御部202は、イーサネット(登録商標)フレームの妥当性検査を実施するために、D−MAC603及びDestinationIPAddress1703を、妥当性の検査対象に指定する。
ステップS1325において、パケット転送制御部202は、ステップS1324で指定した検査対象に対して、妥当性検査を実施する。ステップS1325の処理の内容は、ステップS1303と同じである。
ステップS1326において、パケット転送制御部202は、ステップS1324で指定した検査対象であるD−MAC603及びDestinationIPAddress1703に対する妥当性検査の結果を取得する。パケット転送制御部202は、妥当性検査の結果が妥当であると判定した場合(ステップS1326でYESの場合)には、ステップS1327の処理を実行する。パケット転送制御部202は、妥当性検査の結果が妥当でないと判定した場合(ステップS1326でNOの場合)には、ステップS1328の処理を実行する。
ステップS1327において、パケット転送制御部202は、ステップS1101で受信したパケットについて転送可と判定する。
ステップS1328において、パケット転送制御部202は、ステップS1101で受信したパケットについて転送不可と判定する。
7−5.妥当性検査の処理
次に、受信したパケットの妥当性検査の処理について説明する。図17は、本実施の形態における受信したパケットの妥当性検査の処理を示すフローチャートである。図17に示される処理は、図16のステップS1303に含まれる処理を詳細に示すものである。
ステップS1401において、パケット転送制御部202は、検査対象として指定されたIPアドレスと同じIPアドレスを有する組が、アドレス認証情報210に登録されているか否かを判定する。上記組がアドレス認証情報210に登録されていると判定した場合(ステップS1401でYESの場合)には、パケット転送制御部202は、ステップS1402を実行する。上記組がアドレス認証情報210に登録されていないと判定した場合(ステップS1401でNOの場合)には、パケット転送制御部202は、ステップS1403を実行する。
ステップS1402において、パケット転送制御部202は、検査対象として指定されたIPアドレスと同じIPアドレスを有する組に含まれるMACアドレスが、検査対象として指定されたMACアドレスと一致するか否かを判定する。両MACアドレスが一致すると判定した場合(ステップS1402でYESの場合)には、パケット転送制御部202は、ステップS1405の処理を実行する。両MACアドレスが一致しないと判定した場合(ステップS1402でNOの場合)には、パケット転送制御部202は、ステップS1406の処理を実行する。
ステップS1403において、パケット転送制御部202は、検査対象として指定されたMACアドレスと同じMACアドレスを有する組が、アドレス認証情報210に登録されているか否かを判定する。上記組がアドレス認証情報210に登録されていると判定した場合(ステップS1403でYESの場合)には、パケット転送制御部202は、ステップS1404の処理を実行する。上記組がアドレス認証情報210に登録されていないと判定した場合(ステップS1403でNOの場合)、パケット転送制御部202は、ステップS1405の処理を実行する。
ステップS1404において、パケット転送制御部202は、検査対象として指定されたMACアドレスと同じMACアドレスを有する組に含まれるIPアドレスが、検査対象として指定されたIPアドレスと一致するか否かを判定する。両IPアドレスが一致すると判定した場合(ステップS1404でYESの場合)には、パケット転送制御部202は、ステップS1405の処理を実行する。両IPアドレスが一致しないと判定した場合(ステップS1404でNOの場合)、パケット転送制御部202は、ステップS1406の処理を実行する。
ステップS1405において、パケット転送制御部202は、検査対象が妥当であると判定する。
ステップS1406において、パケット転送制御部202は、検査対象が妥当でないと判定する。
なお、機器のネットワークインタフェースカードに新たなIPアドレスを割り当てた場合、1つのMACアドレスに対して複数のIPアドレスが登録されることになる。そのため、本来ならば受信したイーサネット(登録商標)フレームは妥当であると判定されるところを妥当でないと判定されてしまう。
この状況を避けるため、妥当性検査の処理の前に、アドレス認証情報210を更新するようにすればよい。
具体的には、ステップS1301においてARPの動作種別が応答である場合(YESの場合)には、パケット転送制御部202は、ARPパケットを受信したポートのポートID502に対応付けられた方式503が“auto”である組が、アドレス認証情報210に存在しない場合には、信頼できるIPアドレス及びMACアドレスとして、ARP−S−MAC616及びARP−S−IP617をアドレス認証情報210へ新たに登録する。
また、ARPパケットを受信したポートのポートID502に対応付けられた方式503が“auto”の組が既にアドレス認証情報210に存在する場合には、受信したARPパケットのARP−S−MAC616とMACアドレス505とが同一であれば、信頼できるIPアドレス及びMACアドレスとしてARP−S−MAC616及びARP−S−IP617をアドレス認証情報210へ登録する。新たなIPアドレスを追加する必要があると判断されるからである。
また、受信したARPパケットのARP−S−MAC616とMACアドレス505とが同一でなければ、新たな機器がハブ経由で接続されたと判断し、当該ポートのポートID502に対応付けられた、方式503が“auto”の組を、アドレス認証情報210から削除する。
7−6.送出先ポートを決定する処理
次に、受信したパケットに対して送出先ポートを決定する処理について詳細に説明する。図18は、本実施の形態における受信パケットの送出先ポートを決定する処理を示すフローチャートである。
ステップS1501において、転送処理部204は、ステップS1101で受信したパケットの宛先MACアドレスであるD−MAC603を取得する。
ステップS1502において、転送処理部204は、転送先テーブル211にD−MAC603と同じMACアドレス402を含む組が存在するか否かを判定する。上記組が存在すると判定した場合(ステップS1502でYESの場合)には、転送処理部204は、ステップS1503の処理を実行する。一致する組が存在しないと判定した場合(ステップS1502でNOの場合)には、転送処理部204は、ステップS1504の処理を実行する。
ステップS1503において、転送処理部204は、転送先テーブル211に含まれる、D−MAC603を有する組に含まれるポートID401を、送出先のポートとして選択する。
ステップS1504において、転送処理部204は、ステップS1101でパケットを受信したポート以外のポートを、送出先のポートとして選択する。
8.実施の形態の効果
本実施の形態では、セキュアハブ102は、信頼できるIPアドレスとMACアドレスとの対応関係を記憶するアドレス認証情報210を生成し、別のセキュアハブ104と共有する。そして、セキュアハブ102及び104は、アドレス認証情報210に基づいて、受信パケットの転送可否を判定し、転送可能なパケットのみを転送する。セキュアハブ102は、例えば、SCADA112のような保護したい機器に接続されることで、SCADA112の信頼できるIPアドレスとMACアドレスとを収集する。そして、収集したIPアドレスとMACアドレスとを遠隔のセキュアハブ104と共有し、セキュアハブ104に接続された機器(例えばPLC115)に対して、SCADA112になりすましたPC114からのパケットの転送を防止することができる。
このことは、図1における通信装置TCが、送信元IPアドレスを通信装置TBのアドレスに偽装したパケットPCを通信装置TA宛に送信するという不正な通信を防止することに相当する。
従って、保護したい機器に本実施の形態のセキュアハブを接続するだけで機器間の通信を保護することができ、既存の通信ネットワークにおける設備の一部を維持して、投資コストを抑制しつつセキュリティを向上することができる。
9. その他の変形例
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記実施の形態に限定されない。以下のような場合も本発明に含まれる。
(1)上記の実施の形態では、Ethernet上のIP通信を用いる場合を例に説明したが、これに限らない。例えば、OSI参照モデルにおけるデータリンク層とネットワーク層との関係のように、2つの層間のアドレス情報を解決するARPのようなプロトコルが存在するネットワークモデルであれば適用は可能である。
(2)上記の実施の形態では工場に設置される機器間のデータ通信を保護する場合を例に説明したが、これに限らない。例えば、車に搭載されるECU(Electro Control Unit)間の通信を保護する場合にも適用可能である。
(3)上記の実施の形態では、予め機器に固定のIPアドレスが割り振られているものとして説明したが、これに限らない。機器が通信ネットワークに接続する際に、自動的にIPアドレスを割り当てるDHCP(Dynamic Host Configuration Protocol)を利用してもよい。この場合、セキュアハブはDHCPの通信も監視しておき、各機器に対して付与されるIPアドレスとMACアドレスの情報に基づいてアドレス認証情報を生成してもよい。
(4)上記の実施の形態では、アドレス認証情報の更新通知メッセージ700の送出はブロードキャストで行うとしたが、これに限らない。アドレス認証情報を共有する全てのセキュアハブのIPアドレスを保持しておき、ユニキャストで送信してもよい。
(5)上記の実施の形態における各機器は、構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又はすべてを含むように1チップ化されてもよい。
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(6)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカードまたはモジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(7)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、コンピュータプログラムまたはデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されているデジタル信号であるとしてもよい。
また、本発明は、コンピュータプログラムまたはデジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するとしてもよい。
また、プログラムまたはデジタル信号を記録媒体に記録して移送することにより、またはプログラムまたはデジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の通信保護装置などを実現するソフトウェアは、次のようなプログラムである。
すなわち、このプログラムは、コンピュータに、通信保護装置の制御方法であって、前記通信保護装置は、少なくとも1つの機器のアドレスを含むアドレス認証情報を保持するメモリを備え、前記制御方法は、第1の機器からパケットを受信し、受信した前記パケットを第2の機器へ送信する通信ステップと、前記パケットに含まれている前記第2の機器のアドレスが、前記アドレス認証情報に含まれているか否かを判定し、前記第2の機器のアドレスが前記アドレス認証情報に含まれていないと判定した場合に、前記パケットを破棄する制御ステップとを含む制御方法を実行させる。
以上、一つまたは複数の態様に係る通信保護装置などについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。