IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝三菱電機産業システム株式会社の特許一覧

<>
  • 特許-スイッチング装置 図1
  • 特許-スイッチング装置 図2
  • 特許-スイッチング装置 図3
  • 特許-スイッチング装置 図4
  • 特許-スイッチング装置 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-23
(45)【発行日】2024-05-02
(54)【発明の名称】スイッチング装置
(51)【国際特許分類】
   H04L 12/28 20060101AFI20240424BHJP
   H04L 12/46 20060101ALI20240424BHJP
   H04L 12/42 20060101ALI20240424BHJP
【FI】
H04L12/28 200Z
H04L12/46 E
H04L12/42 Z
【請求項の数】 7
(21)【出願番号】P 2021144432
(22)【出願日】2021-09-06
(65)【公開番号】P2023037695
(43)【公開日】2023-03-16
【審査請求日】2023-08-10
(73)【特許権者】
【識別番号】501137636
【氏名又は名称】株式会社TMEIC
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】中橋 佳昭
【審査官】岩田 玲彦
(56)【参考文献】
【文献】特開2017-121091(JP,A)
【文献】特開2020-021338(JP,A)
【文献】特開2000-083062(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/28
H04L 12/46
H04L 12/42
H04L 12/40
G05B 23/02
(57)【特許請求の範囲】
【請求項1】
パケットをフィルタリングするためのフィルタリング回路と、
前記パケットを転送するための転送部とを備え、
前記フィルタリング回路は、
前記パケットを前記パケットに含まれるデータ部の構造に基づいてフィルタリングし、
前記データ部の構造が予め定められたフォーマットに準拠する場合、前記転送部に前記パケットを出力し、
前記データ部の構造が前記予め定められたフォーマットに準拠しない場合、前記パケットを破棄し、
前記予め定められたフォーマットは、
前記データ部に含まれる1以上の項目と、
前記1以上の項目の各々のデータ形式とを含む、スイッチング装置。
【請求項2】
前記予め定められたフォーマットは、前記スイッチング装置が通信する1以上の端末の各々のフォーマットを含む、請求項1に記載のスイッチング装置。
【請求項3】
前記フィルタリング回路は、
ある装置から、不正なパケットを予め定められた回数以上受信したことに基づいて、前記ある装置との通信を遮断し、
監視装置にアラームを通知する、請求項に記載のスイッチング装置。
【請求項4】
前記スイッチング装置がネットワークを構成する複数のスイッチング装置の1つである場合、前記予め定められたフォーマットは前記複数のスイッチング装置の各々に個別に設定可能に構成される、請求項1~のいずれかに記載のスイッチング装置。
【請求項5】
前記データ部が第1のデータ部と第2のデータ部とを含む場合に、他のスイッチング装置が前記第1のデータ部の構造に基づいて前記パケットをフィルタリングするとき、前記フィルタリング回路は前記第2のデータ部の構造に基づいて前記パケットをフィルタリングするように構成可能である、請求項に記載のスイッチング装置。
【請求項6】
前記フィルタリング回路は、プログラマブルロジック回路を含み、
前記プログラマブルロジック回路は、前記予め定められたフォーマットに基づく判定処理を実行可能に構成される、請求項1~のいずれかに記載のスイッチング装置。
【請求項7】
前記パケットを構成するフレームを送受信する通信部と、
前記フレームを一時的に格納するバッファとをさらに備え、
前記通信部は、受信した前記フレームを順次前記バッファに格納し、
前記フィルタリング回路は、前記パケットを前記データ部の構造に基づいてフィルタリングするために、前記バッファに格納された複数の前記フレームから前記パケットを復元する、請求項1~のいずれかに記載のスイッチング装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、スイッチング装置に関し、より特定的には、スイッチング装置におけるフィルタリング技術に関する。
【背景技術】
【0002】
船舶、プラントまたは工場等の閉じたループネットワークを構成するLAN(Local Area Network)システム等において、MAC(Media Access Control)を用いたフィルタリングによる支線LANからのサイバー攻撃対策、および、イーサネット(登録商標)上を流れるパケットのヘッダ情報を用いたフィルタリングによる支線LANからのサイバー攻撃対策(不正アクセス防止)が考案されている。
【0003】
セキュリティ技術に関し、例えば、特開平10-271154号公報(特許文献1)は、不正アクセス防止システムを開示している。それは、「ゲートウェイのIPヘッダチェック部は、IPヘッダに含まれるTTL(Time To Live:ネットワーク内存続時間)情報およびIPアドレス情報に基づいて、不正でない通信パケットのみを通過させる。IPヘッダチェック部のTTLフィルタリング部は、IPヘッダ中に妥当性のあるTTL情報を有する通信パケットのみを通過させる。妥当性チェック部は、パケット通過時のTTLの値が、予めグループ内で取り決めた初期値から(初期値-最大通過ゲートウェイ数)までの範囲内であることを条件として妥当性をチェックする。フィルタリング処理部はTTL情報が所定の条件を満足していない通信パケットをパケット廃棄処理部に与える」というものである([要約]参照)。
【0004】
また、セキュリティ技術に関する他の技術が、例えば、特開2004-289257号公報(特許文献2)に開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開平10-271154号公報
【文献】特開2004-289257号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
MACアドレスは第3者に盗み見られる可能性があり、また、イーサネット上を流れるパケットのヘッダ情報は規格化されたものである。そのため、特許文献1および2に開示された技術では、悪意ある第三者からフィルタリングの条件を推測してサイバー攻撃を受けた場合、当該サイバー攻撃を防ぐことが出来ない可能性があった。
【0007】
本開示は、上記のような背景に鑑みてなされたものであって、ある局面における目的は、MACアドレスおよびパケットのヘッダ情報等を用いないフィルタリングにより、サイバー攻撃を防ぐ技術を提供することにある。
【課題を解決するための手段】
【0008】
ある実施の形態に従うと、スイッチング装置が提供される。スイッチング装置は、パケットをフィルタリングするためのフィルタリング回路と、パケットを転送するための転送部とを備える。フィルタリング回路は、パケットをパケットに含まれるデータ部の構造に基づいてフィルタリングし、データ部の構造が予め定められたフォーマットに準拠する場合、転送部にパケットを出力し、データ部の構造が予め定められたフォーマットに準拠しない場合、パケットを破棄する。
【発明の効果】
【0009】
ある実施の形態に従うと、MACアドレスおよびパケットのヘッダ情報等を用いないフィルタリングにより、サイバー攻撃を防ぐことが可能である。
【0010】
この開示内容の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本開示に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【0011】
図1】ある実施の形態に従うスイッチング装置100からなるネットワークシステム10の一例を示す図である。
図2】スイッチング装置100のハードウェア構成の一例を示す図である。
図3】スイッチング装置100によりフィルタリングおよび転送されるパケット300の構成の一例を示す図である。
図4】予め定められたフォーマット400の一例を示す図である。
図5】スイッチング装置100の内部処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、図面を参照しつつ、本開示に係る技術思想の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0013】
<A.システム>
図1は、本実施の形態に従うスイッチング装置100からなるネットワークシステム10の一例を示す図である。ある局面において、ネットワークシステム10は、船舶のネットワークシステムであってもよい。他の局面において、ネットワークシステム10は、プラントのネットワークシステムであってもよい。また、他の局面において、ネットワークシステム10は、工場のネットワークシステムであってもよい。さらに、他の局面において、ネットワークシステム10は、研究所またはオフィス等のその他の任意の閉じた環境におけるネットワークシステムであってもよい。
【0014】
(a.システムの構成)
ネットワークシステム10は、幹線LAN20と、支線LAN25とを備える。幹線LAN20は、一例として、スイッチング装置100によって形成されたリングネットワークである。支線LAN25は、スイッチング装置100および端末150によって形成された周辺ネットワークである。
【0015】
ある局面において、ネットワークシステム10は、スイッチング装置100および端末150以外の任意の装置を備えていてもよい。例えば、ネットワークシステム10は、イーサネットケーブル、無線LAN装置、スイッチング装置100以外の任意のネットワーク機器等を含み得る。
【0016】
図1に示される構成は一例であり、ネットワークシステム10の構成例はこれに限られない。ある局面において、ネットワークシステム10は、管理者がネットワーク構造を把握可能な閉じた環境であれば、メッシュ型、スター型等の任意のネットワーク構造であってもよい。
【0017】
スイッチング装置100は、幹線LAN20を形成するパケットの転送装置である。スイッチング装置100は、支線LAN25から幹線LAN20に、または幹線LAN20から支線LAN25に、必要に応じてパケットを転送する機能を備える。パケットは、送信元アドレスおよび送信先アドレス等を含むヘッダ部と、送信されるデータ本体を含むデータ部とからなる。複数のスイッチング装置100の各々は、イーサネットケーブル等により、互いに接続されてリングネットワークを形成し得る。当該リングネットワークが、幹線LAN20として機能する。スイッチング装置100は、例えばレイヤ2のスイッチングハブである。ある局面において、スイッチング装置100は、レイヤ3以上のルータまたはその他の任意の中継装置であってもよい。
【0018】
また、スイッチング装置100は、支線LAN25を介して1以上の端末150とパケットを送受信し得る。一例として、スイッチング装置100は、支線LAN25を介して1以上の端末150からパケットを受信し、当該パケットを他のスイッチング装置100に転送し得る。さらに、スイッチング装置100は、支線LAN25からの不正アクセスまたはサイバー攻撃を防ぐために、受信したパケットに含まれるデータ部の構造に基づいて、当該受信したパケットをフィルタリングする機能を備える。詳細については後述する。
【0019】
端末150は、支線LAN25を介して、スイッチング装置100とパケットを送受信する。一例として、端末150は、PLC(Programmable Logic Controller)であってもよい。他の局面において、端末150は、パーソナルコンピュータ、タブレット、スマートフォン等の任意の情報処理装置であってもよい。船舶または工場等において、1以上の端末150は、一般的に、各スイッチング装置100と固定的に接続されている。また、1以上の端末150の各々は、多くの場合、スイッチング装置100に送信するパケットに毎回同じ構造のデータを含める。ある局面において、1以上の端末150の各々は、自装置に接続されたセンサの情報、アクチュエータの情報、その他の任意の情報等をパケットに含め得る。例えば、船舶内の環境情報を取得するための第1のセンサ(アナログセンサ)、第2のセンサ(アナログセンサ)および第3のセンサ(接点出力センサ)を接続された端末150は、第1のセンサから取得した第1のアナログデータと、第2のセンサから取得した第2のアナログデータと、第3のセンサから取得した接点状態情報データとをパケットに毎回含め得る。すなわち、船舶または工場等の閉じた環境において、1以上の端末150の各々がスイッチング装置100に送信するパケットのデータ構造は、毎回同じになることが多い。データ構造は、例えば、パケットに含まれる項目の数、各項目のデータ形式、パケットに含まれる項目の順序等の全てまたは一部を含み得る。
【0020】
(b.スイッチング装置の動作概要)
ある端末150が正常なパケットをスイッチング装置100に送信した場合(不正なパケットが検出されない場合)のネットワークシステム10の動作と、ある端末150が不正なパケットをスイッチング装置100に送信した場合(不正なパケットが検出される場合)のネットワークシステム10の動作とについて説明する。
【0021】
ある端末150には、第1のセンサ(アナログセンサ)、第2のセンサ(アナログセンサ)および第3のセンサ(接点出力センサ)が接続されているとする。また、ある端末150は、第1のセンサから取得した第1のアナログデータ(2バイト)と、第2のセンサから取得した第2のアナログデータ(2バイト)と、第3のセンサから取得した接点状態情報データ(8バイト)とを第1のアナログデータ、第2のアナログデータ、接点状態情報データの順番で毎回パケット内のデータ部に含めるものとする。
【0022】
この場合、第1のステップにおいて、ある端末150は、第1のセンサ、第2のセンサおよび第3のセンサの各々から、第1のアナログデータ、第2のアナログデータ、および接点状態情報データを取得する。
【0023】
第2のステップにおいて、ある端末150は、第1のアナログデータを第1の数値データに変換し、第2のアナログデータを第2の数値データに変換し、および接点状態情報データをビットデータに変換し、後述のあらかじめ定められた所定のフォーマット400に従って第1の数値データ、第2の数値データおよびビットデータをパケット内のデータ部に含める。ある局面において、データ部は、チェックビット等をさらに含んでいてもよい。
【0024】
第3のステップにおいて、ある端末150は、支線LAN25を介して、パケットをスイッチング装置100に送信する。より具体的には、端末150は、パケットをフレームに分解し、各フレームを順次スイッチング装置100に送信する。
【0025】
第4のステップにおいて、スイッチング装置100は、パケットを受信する。より具体的には、スイッチング装置100は、順次フレームを受信し、受信したフレームをバッファ(図示しない)に一時的に保存する。バッファは、支線物理層処理部210(図2参照)またはフィルタリング回路230(図2参照)のいずれかに含まれていてもよいし、これらとは独立した構成であってもよい。
【0026】
第5のステップにおいて、スイッチング装置100は、バッファに格納された複数のフレームから、パケットを復元する。
【0027】
第6のステップにおいて、スイッチング装置100は、復元されたパケットに含まれるデータ部の構造が、予め定められたフォーマット400(図4参照)に準拠しているか否かを判定する。通常、スイッチング装置100が備える複数の通信ポートの各々は、閉じた環境において、予め定められた端末150の各々と通信する。予め定められたフォーマット400は、パケットに含まれるデータ部の構造を定義したものであり、例えば、データ部に含まれる項目の数、各項目のデータ形式(数値データまたはビットデータ等の種類、ビット数またはバイト数等)、各項目の順番、データ部全体のサイズ、データ部のエンドコード、チェックビットの有無等のデータ部に関する任意の情報の一部または全てを含み得る。
【0028】
そこで、スイッチング装置100は、例えば、送信元の情報(端末150のIP(Internet Protocol)アドレスおよびMACアドレス等)に紐付けられたデータ形式を、複数の端末150の各々が送信するパケットに含まれるデータ部のフォーマットとして使用し得る。すなわち、予め定められたフォーマット400は、複数の端末150の各々のフォーマットを含み得る。例えば、予め定められたフォーマット400は、端末150(A)のフォーマットと、端末150(B)のフォーマットと、端末150(C)のフォーマットとを含み得る。
【0029】
ある局面において、スイッチング装置100は、例えば、送信元の情報(端末150のIPアドレスおよびMACアドレス等)と、送信先の情報(スイッチング装置100のIPアドレスおよびMACアドレス等)との組み合わせに紐付けられたデータ形式を、複数の端末150の各々が送信するパケットに含まれるデータ部のフォーマットとして使用してもよい。
【0030】
より具体的には、スイッチング装置100は、これらのフォーマットに基づいてフィルタリング処理を実行するためのプログラマブルロジック回路を備え得る。プログラマブルロジック回路は、例えば、FPGA(Field Programmable Gate Array)等である。スイッチング装置100は、例えば、外部からの操作に基づいて、プログラマブルロジック回路を修正可能に構成され得る。プログラマブルロジック回路は、上記の予め定められたフォーマット400に基づいてフィルタリングを行うハードウェアとして動作するため、通常のパケットの転送処理に影響を与えることなく高速にフィルタリング処理を実行し得る。
【0031】
スイッチング装置100は、復元されたパケットに含まれるデータ部の構造が予め定められたフォーマット400に準拠していると判定した場合、復元されたパケットを他のスイッチング装置100に転送し得る。復元されたパケットに含まれるデータ部の構造が予め定められたフォーマット400に準拠しているとは、パケットに含まれるデータ部の構造が、送信元の端末150のフォーマットに準拠していることを意味する。例えば、端末150(A)が送信したパケットに含まれるデータ部の構造は、端末150(A)のフォーマットに準拠する必要がある。
【0032】
スイッチング装置100は、復元されたパケットに含まれるデータ部の構造が予め定められたフォーマット400に準拠していない判定した場合、復元されたパケットを破棄する。
【0033】
ある局面において、スイッチング装置100は、同一の送信元から、不正パケットを予め定められた回数以上受信したことに基づいて、当該送信元の端末150との通信を遮断し得る。また、スイッチング装置100は、監視装置等に、不正パケットおよび不正パケットを送信した端末150の情報を含むアラームを通知し得る。
【0034】
他の局面において、スイッチング装置100は、パケットに含まれるデータ部の一部の構造に基づいて、パケットをフィルタリングしてもよい。例えば、データ部が第1のデータ部と第2のデータ部とを含むとする。この場合、スイッチング装置100(A)が、第1のデータ部の構造に基づいてパケットをフィルタリングし、スイッチング装置100(B)が、第2のデータ部の構造に基づいてパケットをフィルタリングしてもよい。こうすることで、各スイッチング装置100のフィルタリング処理の負荷は軽減され、ネットワークシステム10全体でセキュリティを担保し得る。
【0035】
上記のように、スイッチング装置100は、支線LAN25から幹線LAN20にパケットを転送する際に、予め定められたフォーマット400(データ部のフォーマット)を用いてパケットのデータ部の構造に基づいて、パケットをフィルタリングする。その結果、スイッチング装置100は、安全と認識したパケットのみを転送し、その他のパケットは廃棄することで、サイバー攻撃(不正パケットの送信)を未然に防ぎ得る。
【0036】
また、スイッチング装置100は、予め定められたフォーマット400に基づいてフィルタリング処理を実行するプログラマブルロジック回路を備える。これにより、スイッチング装置100は、CPU(Central Processing Unit)およびその他のスイッチング回路に過度な負荷をかけず、また伝送遅延を最小限に抑えた状態で、サイバーセキュリティ対策を実現し得る。
【0037】
また、予め定められたフォーマット400は、複数の端末150の各々が送信するパケットに含まれるデータ部の構造(データ形式(ビット情報入力、数値入力、ビット情報出力、数値出力、積算値、警報設定値等)、データ数)であり、MACアドレス等と比較して、第三者に情報が漏れる可能性が低い。さらに、スイッチング装置100は、予め定められたフォーマットに準拠した構造のデータ部を含むパケットのみを転送することで、予め想定されたデータ通信以外の目的でのパケット送信を抑制し、高い安全性を担保し得る。
【0038】
さらに、スイッチング装置100は、不正パケットを予め定められた回数以上受信した場合に、不正パケットを送信する端末150との通信を遮断し、さらに管理装置等にアラームを通知することで、不正パケットの原因究明を容易にし得る。
【0039】
<B.スイッチング装置のハードウェア構成>
図2は、スイッチング装置100のハードウェア構成の一例を示す図である。図2を参照してスイッチング装置100のハードウェア構成例および各構成の役割について説明する。ある局面において、スイッチング装置100は、図2に示されるハードウェア以外の任意のハードウェアをさらに備えていてもよい。
【0040】
スイッチング装置100は、主なハードウェア構成として、支線物理層処理部210と、CPU220と、フィルタリング回路230と、スイッチング処理部240とを備える。また、フィルタリング回路230は、フレーム処理回路231と、CPU232とを含む。
【0041】
支線物理層処理部210は、支線LAN25において、端末150およびスイッチング装置100間のフレームを送受信する。支線物理層処理部210は、複数の通信ポートを備え得る。複数の通信ポートの各々は、イーサネットケーブル等により、端末150と接続される。ある局面において、複数の通信ポートの各々は、他の中継装置等を介して端末150と接続されてもよい。
【0042】
支線物理層処理部210は、端末150とパケットを送受信する。パケットは、フレームという単位に分割されて送受信される。支線物理層処理部210は、フレームを受信すると、一旦、支線物理層処理部210内のバッファ(図示せず)にフレームを格納する。次に、支線物理層処理部210は、フィルタリング回路230にフレームを出力する。フィルタリング回路230に出力されたフレームは、フィルタリング回路230内のメモリ(バッファであってもよい)(図示せず)に格納される。ある局面において、次に支線物理層処理部210は、バッファ内の複数のフレームからパケットを復元し、当該パケットをフィルタリング回路230に出力してもよい。
【0043】
CPU220は、スイッチング装置100全体を制御する。CPU220は、スイッチング装置100内のRAM(図示せず)上に展開されたプログラムに基づいてパケットの転送処理のための指令または設定を支線物理層処理部210、フィルタリング回路230、および、スイッチング処理部240に出力し得る。ある局面において、支線物理層処理部210、フィルタリング回路230、および、スイッチング処理部240の一部または全ては、CPU220からの指令または設定を受信せずに独立して動作してもよい。
【0044】
フィルタリング回路230は、支線物理層処理部210から受信したパケットのフィルタリング処理およびフィルタリングに関連する処理を実行する。フレーム処理回路231は、主にパケットのフィルタリング処理を実行する。CPU232は、フレーム処理回路231のフィルタリング設定、フィルタリング結果に基づく処理(パケットの転送、パケットの破棄、不正パケットのアラームの通知等)、フレームの復元等を実行する。
【0045】
CPU232は、支線物理層処理部210から取得した複数のフレームの各々からパケットを復元する。ある局面において、支線物理層処理部210がパケット復元処理機能を備える場合、CPU232は、パケットを復元する代わりに、支線物理層処理部210からパケットを取得してもよい。CPU232は、復元したパケットをフレーム処理回路231に出力する。ある局面において、フレーム処理回路231がパケット復元処理機能を備えていてもよい。
【0046】
また、CPU232は、フレーム処理回路231にフィルタリング設定を行う。より具体的には、フレーム処理回路231は、FPGA等のプログラマブルロジック回路により実現され得る。CPU232は、プログラムをプログラマブルロジック回路に書き込むことでフレーム処理回路231を実現し、さらに、フレーム処理回路231のフィルタリング設定を変更し得る。ある局面において、CPU232は、スイッチング装置100のシリアルポートまたはUSB(Universal Serial Bus)ポート等を介して、外部装置からプログラムを受信してもよい。他の局面において、CPU232は、支線LAN25に接続された外部装置からプログラムを受信してもよい。他の局面において、CPU232は、パケットのフィルタリングの結果に基づいて、パケットの転送、パケットの破棄、不正パケットのアラームの通知等を実行し得る。
【0047】
フレーム処理回路231は、複数のフレームの各々から復元されたパケットをフィルタリングする。より具体的には、フレーム処理回路231は、復元されたパケットに含まれるデータ部の構造が、予め定められたフォーマット400に準拠しているか否かを判定する。予め定められたフォーマット400は、送信元の各端末150のフォーマット(以降、単に「各端末150のフォーマット」と呼ぶこともある)を含む。また、各端末150のフォーマットは、各端末150が送信するパケットのデータ部に含まれる項目の数、各項目のデータ形式(フォーマット:バイト数、数値データ、ビットデータ、テキストデータ等)、各項目の順序(項目1、項目2、項目3の順番でデータ部に格納されている等)等の情報を含み得る。
【0048】
一例として、フレーム処理回路231は、端末150(A)からパケットを受信した場合、予め定められたフォーマット400内の端末150(A)のフォーマットを参照する。フレーム処理回路231は、端末150(A)から受信したパケットが、端末150(A)のフォーマットに準拠するか否かを判定する。フレーム処理回路231は、端末150(A)から受信したパケットが、端末150(A)のフォーマットに準拠すると判定した場合、パケットをスイッチング処理部240に出力する。そうでない場合、フレーム処理回路231は、パケットを破棄する。ある局面において、CPU232がパケットの転送および破棄を実行してもよい。
【0049】
ある局面において、CPU232は、各端末150から受信したパケットが何回破棄されたかをカウントしてもよい。この場合、CPU232は、予め定められた回数以上、同一の端末150から不正パケットを受信したことを検出した場合(同一の端末150からのパケットを破棄したことを検出した場合)、不正パケットの送信元の端末150との通信を遮断し得る。そして、CPU232は、監視装置等に、不正パケットの送信元の端末150の情報および不正パケットの情報を含むアラームを通知し得る。
【0050】
スイッチング処理部240(転送部)は、受信したパケットの宛先に応じて、当該パケットを他のスイッチング装置100、または、支線物理層処理部210の各ポートのいずれかに転送する。通信の方向は、端末150から、支線LAN25およびスイッチング装置100を介して、幹線LAN20に向かう第1の方向を含む。また、通信の方向は、幹線LAN20から、スイッチング装置100および支線LAN25を介して端末150に向かう第2の方向を含む。スイッチング装置100は、フィルタリング回路230を備えることにより、例えば、第1の方向の通信において、端末150から幹線LAN20への不正パケットの流入を防止し得る。
【0051】
<C.フィルタリングに使用するフォーマット>
次に、図3および図4を参照して、スイッチング装置100がフィルタリングするパケットの構成および予め定められたフォーマット400について説明する。以降の説明では、パケットは、イーサネット上を流れるパケットであることを前提に説明するが、本開示の技術によりフィルタリング(フィルタリング)できるパケットはイーサネット上を流れるパケットに限られない。本開示の技術は、データ部(ヘッダ以外の送信されるデータ本体)を含む任意のフォーマットのパケットに適用可能である。
【0052】
図3は、スイッチング装置100によりフィルタリングおよび転送されるパケット300の構成の一例を示す図である。図3を参照して、スイッチング装置100によりフィルタリングおよび転送されるパケット300の構成について説明する。
【0053】
パケット300は、ヘッダ310と、データ部320とを含む。ヘッダ310は、送信元のIPアドレスおよびMACアドレスと、送信先のIPアドレスおよびMACアドレスとを含み得る。一例として、パケット300が端末150(A)からスイッチング装置100に送信されたとする。この場合、フィルタリング回路230は、送信元のIPアドレスおよびMACアドレスのいずれかまたは両方に基づいて、送信元が端末150(A)であることを識別し得る。端末150(A)からのパケットはフレーム処理回路231に入力される。フレーム処理回路231は、パケットが端末150(A)のフォーマットに準拠するか否かを判定する。
【0054】
データ部320は、フォーマット番号321と、数値・ビットデータ部322とを含む。ある局面において、データ部320は、2以上の数値・ビットデータ部322を含んでいてもよい。
【0055】
フォーマット番号321は、予め定められたフォーマット400内のいずれのフォーマットに準拠するかを示す。フィルタリング回路230は、データ部320に含まれるフォーマット番号321を参照することで、予め定められたフォーマット400からフィルタリングに使用するフォーマットを選択し得る。ある局面において、フィルタリング回路230は、フォーマット番号321を参照せずに、数値・ビットデータ部322の構造と、予め定められたフォーマット400内の各フォーマットとを直接比較してもよい。また、他の局面において、予め定められたフォーマット400内の各フォーマットは、複数の端末150に紐付けられていてもよい。例えば、フォーマット(A)は、端末150(A)、端末150(B)、または端末150(C)に紐付けられていてもよい。
【0056】
数値・ビットデータ部322は、送信されるデータの本体である。例えば、端末150は、端末150に接続された各種センサの値、端末150が制御する機器の状態情報等を数値・ビットデータ部322に含め得る。数値・ビットデータ部322は、数値データ、ビットデータ、テキストデータ等の任意のフォーマットのデータを含み得る。また、数値・ビットデータ部322は、チェックビット等を含んでいてもよい。
【0057】
図4は、予め定められたフォーマット400の一例を示す図である。図4を参照して、予め定められたフォーマット400について説明する。フレーム処理回路231は、プログラマブルロジック回路にプログラムを書き込むことで、予め定められたフォーマット400に基づいてパケットをフィルタリングするように構成される。予め定められたフォーマット400は、送信元のMACアドレス401と、送信元のIPアドレス402と、送信先のMACアドレス403と、送信先のIPアドレス404と、データ長405と、フォーマット番号406と、数値・ビットデータ部407と、エンドコード408とを含む。
【0058】
送信元のMACアドレス401は、OSI(Open Systems Interconnection)参照モデルにおけるデータリンク層において、または、TCP(Transmission Control Protocol)/IPのネットワークインターフェイス層において送信元の装置を特定するために使用される。一例として、フィルタリング回路230は、受信したパケットの送信元のMACアドレス401を参照することにより、送信元の端末150を判別し得る。この場合、フィルタリング回路230は、受信したパケットの送信元のMACアドレス401に紐付けられたデータ長405と、データ形式(フォーマット番号406、数値・ビットデータ部407、エンドコード408)とを取得する。
【0059】
送信元のIPアドレス402は、OSI参照モデルにおけるネットワーク層において、または、TCP/IPのインターネット層において送信元の装置を特定するために使用される。一例として、フィルタリング回路230は、受信したパケットの送信元のIPアドレス402を参照することにより、送信元の端末150を判別し得る。この場合、フィルタリング回路230は、受信したパケットの送信元のIPアドレス402に紐付けられたデータ長405と、データ形式とを取得する。
【0060】
ある局面において、フィルタリング回路230は、送信元のMACアドレス401、および送信元のIPアドレス402の両方を参照することにより、送信元の端末150を判別してもよい。この場合、フィルタリング回路230は、受信したパケットの送信元のMACアドレス401および送信元のIPアドレス402の組み合わせに紐付けられたデータ長405と、データ形式とを取得する。
【0061】
送信先のMACアドレス403は、OSI参照モデルにおけるデータリンク層において、または、TCP(Transmission Control Protocol)/IPのネットワークインターフェイス層において送信先の装置を特定するために使用される。スイッチング装置100は、例えば、レイヤ2スイッチングハブであり、パケットの送信先のMACアドレスを参照することで、送信先の装置を特定し得る。
【0062】
送信先のIPアドレス404は、OSI参照モデルにおけるネットワーク層において、または、TCP/IPのインターネット層において送信先の装置を特定するために使用される。ある局面において、フィルタリング回路230は、送信元のMACアドレス401、送信元のIPアドレス402、送信先のMACアドレス403および送信先のIPアドレス404の全てまたは一部の組み合わせに紐付けられたデータ長405、データ形式とを取得してもよい。
【0063】
データ長405は、データ部320のサイズ(ビット数またはバイト数)を示す。図3に示される例において、データ長は、フォーマット番号321および数値・ビットデータ部322の合計サイズである。ある局面において、データ長は、データ部320に含まれるチェックビット等の任意の項目を含むサイズであってもよい。なお、データ部320は暗号化されていてもよい。
【0064】
フォーマット番号406は、データ形式(フォーマット)の種類を識別する。図4に示される例では、フォーマット番号406「1101」は、数値(6バイト)、数値(6バイト)およびビット(2バイト)を含む数値・ビットデータ部322またはデータ部320のデータ形式を示す。
【0065】
数値・ビットデータ部407は、実際に転送されるデータ本体である。例えば、端末150がセンサ情報をパケット300に格納する場合、センサ情報は数値・ビットデータ部322に格納される。数値・ビットデータ部407は、データ本体の各項目(または項目数)および各項目のフォーマットを含む。
【0066】
エンドコード408は、データの終わりを示すコードである。
上記の実施の形態では、予め定められたフォーマット400が送信元の各端末150のフォーマットを含む構成が説明されたが、他の局面において、フォーマット400は、送信元の機器(端末150またはスイッチング装置100)および送信先の機器の組み合わせのフォーマットを含んでいてもよい。この場合、フィルタリング回路230は、送信元の機器および送信先の機器の組み合わせに紐付けられたフォーマットに基づいて、パケットをフィルタリングし得る。すなわち、スイッチング装置100は、送信元の機器ごとだけでなく、パケットの通信経路(送信元の機器および送信先の機器の組み合わせ)に紐付けられたフォーマットに基づいて、パケットをフィルタリングし得る。フィルタリング回路230は、送信元のMACアドレス401および送信先のMACアドレス403により、パケットの通信経路を判別し得る。または、フィルタリング回路230は、送信元のMACアドレス401、送信元のIPアドレス402、送信先のMACアドレス403および送信先のIPアドレス404により、パケットの通信経路を判別してもよい。
【0067】
また、他の局面において、各スイッチング装置100は、数値・ビットデータ部322の一部の構造に基づいて、パケットをフィルタリングしてもよい。例えば、スイッチング装置100(A)は、数値・ビットデータ部322の1番目の項目を検査し、スイッチング装置100(B)は、数値・ビットデータ部322の2番目の項目を検査し、スイッチング装置100(C)は、数値・ビットデータ部322の3番目の項目を検査してもよい。こうすることで、各スイッチング装置100の負荷を分散し、ネットワークシステム10全体として幹線LAN20への不正パケットの流入を防止し得る。
【0068】
さらに、他の局面において、複数のスイッチング装置100の各々は、個別の予め定められたフォーマット400に基づいて、パケット300をフィルタリングしてもよい。例えば、スイッチング装置100(A)は、スイッチング装置100(A)に接続される複数の端末150の各々のフォーマットを含むスイッチング装置100(A)用の予め定められたフォーマット400(A)に基づいて、パケット300をフィルタリングする。また、スイッチング装置100(B)は、スイッチング装置100(B)に接続される複数の端末150の各々のフォーマットを含むスイッチング装置100(B)用の予め定められたフォーマット400(B)に基づいて、パケット300をフィルタリングする。なお、スイッチング装置100(A)用のフォーマット400(A)および、スイッチング装置100(B)用のフォーマット400(B)は、送信元の機器に紐付くフォーマット、または、送信元の機器および送信先の機器の組み合わせ(通信経路)に紐付くフォーマットのいずれを含んでいてもよい。
【0069】
<D.フローチャート>
次に、図5を参照して、スイッチング装置100の内部処理の手順について説明する。図5は、スイッチング装置100の内部処理の手順の一例を示すフローチャートである。図5に示される各処理は、図2に示される各構成が協業することにより実現される。ある局面において、CPU220が全体を管理し他の構成に対して各ステップの少なくとも一部を実行するための指令を出力してもよい。なお、他の局面において、フィルタリング回路230は、CPU220のリソースを使用することなく、独立してフィルタリング処理を実行し得る。また、さらに他の局面において、図5の各ステップの処理の順番は必要に応じて任意に入れ替えてもよい。
【0070】
ステップS505において、支線物理層処理部210は、支線LAN25を介していずれかの端末150からパケットを受信し、当該パケットを支線物理層処理部210のバッファに蓄積する。ある局面において、バッファは、フィルタリング回路230内に設けられていてもよい。他の局面において、バッファは、支線物理層処理部210およびフィルタリング回路230のいずれからも独立してスイッチング装置100内に設けられていてもよい。
【0071】
ステップS510において、支線物理層処理部210は、フレームをフィルタリング回路230内のメモリ(バッファであってもよい)にコピーする。ある局面において、CPU232が定期的に支線物理層処理部210のバッファを参照してフレームを読み出し、読み出したフレームをフィルタリング回路230内のメモリにコピーしてもよい。他の局面において、フィルタリング回路230内のメモリは、FPGAにより実現されてもよい。
【0072】
ステップS515において、CPU232は、パケットの復元に必要なフレームがそろったか否かを判定する。CPU232は、パケットの復元に必要なフレームがそろったと判定した場合(ステップS515にてYES)、制御をステップS520に移す。そうでない場合(ステップS515にてNO)、CPU232は、制御をステップS505に移す。
【0073】
ステップS520において、CPU232は、パケットの復元が必要か否かを判定する。例えば、パケットが複数のフレームに分割されていない場合には、パケットの復元は不要となる。CPU232は、パケットの復元が必要であると判定した場合(ステップS520にてYES)、制御をステップS525に移す。そうでない場合(ステップS520にてNO)、CPU232は、制御をステップS530に移す。
【0074】
ステップS525において、CPU232は、フィルタリング回路230のメモリにコピーされた複数のフレームからパケットを復元する。CPU232は、復元したパケットをフレーム処理回路231に出力する。
【0075】
ステップS530において、フレーム処理回路231は、入力されたパケットのフィルタリング判定を行い、入力されたパケットが正常パケットであるか否かを判定する。なお、フレーム処理回路231は、データ部320が暗号化されている場合、データ部320の復号を行う。より具体的には、フレーム処理回路231は、予め定められたフォーマット400に基づいて、入力されたパケットの構造を検証する。フレーム処理回路231は、入力されたパケットの構造が予め定められたフォーマット400に準拠する場合、入力されたパケットは正常パケットであると判定する。例えば、フレーム処理回路231は、データ部320のフォーマット番号321を読み取る。フレーム処理回路231は、読み取ったフォーマット番号321とフォーマット400のフォーマット番号406とを照合し、フォーマット番号321と同じフォーマット番号406が示すフォーマットを選択する。次に、フレーム処理回路231は、入力されたパケットのヘッダ310の情報と、選択されたフォーマット(フォーマット番号321と同じフォーマット番号406が示すフォーマット)の情報とを比較する。ここでの比較対象は、例えば、送信元アドレス(MACアドレスおよび/またはIPアドレス)、送信先のアドレス(MACアドレスおよび/またはIPアドレス)、データ長、および数値・ビットデータ部の構成等である。フレーム処理回路231は、比較の結果、上記の比較対象が一致した場合、入力されたパケットは正常パケットであると判定し、そうでない場合、入力されたパケットは不正パケットであると判定する。ある局面において、数値・ビットデータ部の構成のチェックにおいて、データの区切り毎あるいは複数のデータの区切り単位にチェックビットを設けるようにしてもよい。また、他の局面において、フォーマット番号毎の各数値データに下限と上限を決めておき、その範囲を逸脱するパケットを不正パケットと判断してもよい。さらに、他の局面において、正常なパケットであるか否かのチェックは、ステップS530にて説明された上記の方法の全てを実行してもよいし、上記の方法の一部を実行してもよい。また、方法の一部を実行する場合、定期的あるいはランダムに実行する方法を変更してもよい。
【0076】
一例として、端末150(A)がスイッチング装置100(A)に対してパケット(A)を送信したとする。この場合、スイッチング装置100(A)は、パケット(A)が予め定められたフォーマット400(A)に含まれる端末150(A)のフォーマットに準拠するか否かを判定する。予め定められたフォーマット400(A)は、スイッチング装置100(A)に接続される全ての端末のフォーマットを含み得る。
【0077】
他の例として、端末150(B)がスイッチング装置100(B)に対してパケット(B)を送信したとする。この場合、スイッチング装置100(B)は、パケット(B)が予め定められたフォーマット400(B)に含まれる端末150(B)のフォーマットに準拠するか否かを判定する。予め定められたフォーマット400(B)は、スイッチング装置100(B)に接続される全ての端末のフォーマットを含み得る。
【0078】
上記のように、スイッチング装置100(A)およびスイッチング装置100(B)の各々は、異なるフォーマットである予め定められたフォーマット400(A)および予め定められたフォーマット400(B)の各々に基づいて入力されたパケットの構造を検証し得る。
【0079】
フレーム処理回路231は、入力されたパケットが正常パケットであると判定した場合(ステップS530にてYES)、制御をステップS535に移す。そうでない場合(ステップS530にてNO)、フレーム処理回路231は、制御をステップS545に移す。
【0080】
ステップS535において、フレーム処理回路231は、入力されたパケットの送信を許可する。ある局面において、フレーム処理回路231は、送信許可の後に、支線物理層処理部210のバッファ内のパケットをスイッチング処理部240に出力してもよい。他の局面において、CPU232は、フレーム処理回路231からの送信許可を示す信号を入力されたことに基づいて、支線物理層処理部210のバッファ内のパケットをスイッチング処理部240に出力してもよい。
【0081】
ステップS540において、スイッチング処理部240は、支線物理層処理部210のバッファ内のパケット(またはパケットを構成する複数のフレーム)を宛先に送信する。送信されたパケットは、幹線LAN20を介して、他のスイッチング装置100に転送される。
【0082】
ステップS545において、フレーム処理回路231は、フィルタリング回路230内のメモリに格納された不正パケットを破棄する。
【0083】
ステップS550において、フレーム処理回路231は、支線物理層処理部210のバッファ内の対応するパケット(ステップS545にて破棄されたパケットに対応する不正パケット)を破棄する。ある局面において、CPU232は、フレーム処理回路231からパケット破棄要求の信号を入力されたことに基づいて、支線物理層処理部210のバッファ内の対応するパケット(不正パケットまたは不正パケットを構成するフレームの集合)を破棄してもよい。
【0084】
ステップS555において、CPU232は、特定の端末150(不正パケットを送信した端末150)に対応する不正パケットカウントをインクリメントする。ある局面において、CPU220が特定の端末150(不正パケットを送信した端末150)に対応する不正パケットカウントをインクリメントする機能を備えていてもよい。
【0085】
ステップS560において、CPU232は、特定の端末150の不正パケット数(特定の端末150が送信した不正パケットの数)が予め定められた上限数に達したか否かを判定する。CPU232は、特定の端末150の不正パケット数が予め定められた上限数に達したと判定した場合(ステップS560にてYES)、制御をステップS565に移す。そうでない場合(ステップS560にてNO)、CPU232は、処理を終了する。ある局面において、CPU220が、特定の端末150の不正パケット数が予め定められた上限数に達したか否かを判定する機能を備えていてもよい。
【0086】
ステップS565において、CPU232は、特定の端末150からのパケットを遮断してネットワーク監視装置にアラームを出力する。ある局面において、CPU220が、特定の端末150からのパケットを遮断してネットワーク監視装置にアラームを出力する機能を備えていてもよい。
【0087】
以上説明した通り、本実施の形態に従うスイッチング装置100は、予め定められたフォーマット400を用いて、パケットの構造に基づいて、パケットをフィルタリングする。これにより、スイッチング装置100は、MACアドレスおよびIPアドレス等を用いたフィルタリングよりもさらにセキュアなパケットフィルタリング機能を提供し得る。
【0088】
また、予め定められたフォーマット400は、個別のスイッチング装置100に設定可能であり、各スイッチング装置100に接続される複数の端末150の各々のフォーマットを含み得る。これにより、ネットワーク管理者は、ネットワークシステム10を構成する複数のスイッチング装置100の各々に柔軟なフィルタリング設定を行い得る。
【0089】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内で全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された開示内容は、可能な限り、単独でも、組合わせても、実施することが意図される。
【符号の説明】
【0090】
10 ネットワークシステム、20 幹線LAN、25 支線LAN、100 スイッチング装置、150 端末、210 支線物理層処理部、220,232 CPU、230 フィルタリング回路、231 フレーム処理回路、240 スイッチング処理部、300 パケット、310 ヘッダ、320 データ部、321,406 フォーマット番号、322,407 数値・ビットデータ部、400 フォーマット、401 送信元のMACアドレス、402 送信元のIPアドレス、403 送信先のMACアドレス、404 送信先のIPアドレス、405 データ長、408 エンドコード。
図1
図2
図3
図4
図5