特許第5930355号(P5930355)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社制御システム研究所の特許一覧

特許5930355特定パケット中継機能付きデータダイオード装置及びその設定方法
<>
  • 特許5930355-特定パケット中継機能付きデータダイオード装置及びその設定方法 図000002
  • 特許5930355-特定パケット中継機能付きデータダイオード装置及びその設定方法 図000003
  • 特許5930355-特定パケット中継機能付きデータダイオード装置及びその設定方法 図000004
  • 特許5930355-特定パケット中継機能付きデータダイオード装置及びその設定方法 図000005
  • 特許5930355-特定パケット中継機能付きデータダイオード装置及びその設定方法 図000006
  • 特許5930355-特定パケット中継機能付きデータダイオード装置及びその設定方法 図000007
  • 特許5930355-特定パケット中継機能付きデータダイオード装置及びその設定方法 図000008
  • 特許5930355-特定パケット中継機能付きデータダイオード装置及びその設定方法 図000009
  • 特許5930355-特定パケット中継機能付きデータダイオード装置及びその設定方法 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】5930355
(24)【登録日】2016年5月13日
(45)【発行日】2016年6月8日
(54)【発明の名称】特定パケット中継機能付きデータダイオード装置及びその設定方法
(51)【国際特許分類】
   H04L 12/46 20060101AFI20160526BHJP
【FI】
   H04L12/46 E
【請求項の数】5
【全頁数】23
(21)【出願番号】特願2016-2660(P2016-2660)
(22)【出願日】2016年1月8日
【審査請求日】2016年1月28日
【早期審査対象出願】
(73)【特許権者】
【識別番号】515121634
【氏名又は名称】株式会社制御システム研究所
(74)【代理人】
【識別番号】100137800
【弁理士】
【氏名又は名称】吉田 正義
(74)【代理人】
【識別番号】100148253
【弁理士】
【氏名又は名称】今枝 弘充
(74)【代理人】
【識別番号】100148079
【弁理士】
【氏名又は名称】梅村 裕明
(72)【発明者】
【氏名】森本 賢一
【審査官】 宮島 郁美
(56)【参考文献】
【文献】 特開2014−140096(JP,A)
【文献】 特開2004−120667(JP,A)
【文献】 米国特許出願公開第2010/0257353(US,A1)
【文献】 米国特許第6108787(US,A)
【文献】 特開2010−199943(JP,A)
【文献】 特開2015−133558(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00−12/955
H04L29/00−29/12
(57)【特許請求の範囲】
【請求項1】
第1ネットワークに接続された第1ユニットと、
第2ネットワークに接続された第2ユニットと、
前記第2ネットワークから受信したパケットを前記第2ユニットから前記第1ユニットへの一方向だけに伝送する一方向伝送路と、
前記第1ネットワークから受信するパケットのうち許可された特定のパケットだけを前記第2ネットワークに中継するパケット中継部とを備え、
前記パケット中継部は、
前記第1ユニットと前記第2ユニットとの間に設けられた複数の信号線からなる信号線部と、
前記第1ユニットに設けられるとともに、中継を許可する特定のパケットのそれぞれについて第1パケット登録情報が予め登録され、前記第1ネットワークからのパケットが前記第1パケット登録情報として登録されたパケットであるか否かを判定し、登録されたパケットである場合に、当該パケットについての第1パケット登録情報に対応した信号線をアクティブにするパケット判定部と、
前記第2ユニットに設けられるとともに、中継を許可する特定のパケットのそれぞれについて第2パケット登録情報が予め登録され、いずれかの信号線がアクティブになることに応答して、アクティブになった前記信号線に対応する第2パケット登録情報に基づいて、前記第1ユニットが受信したパケットに相当する復元パケットを生成し、前記第2ネットワークに送出するパケット復元部と
を備えることを特徴とする特定パケット中継機能付きデータダイオード装置。
【請求項2】
前記第1ユニットは、前記第1ネットワーク上の第1ネットワーク機器からのパケットを受信し、また前記一方向伝送路を介して受信したパケットを前記第1ネットワーク機器に送信する第1通信部を有し、
前記パケット判定部は、パケットの送信元情報、宛先情報及びアプリケーションデータを含む前記第1パケット登録情報の各々が前記信号線のいずれかに対応して登録された第1参照テーブルと、前記第1ネットワークから受信したパケットの送信元情報、宛先情報及びアプリケーションデータが前記第1参照テーブルに登録されたいずれか1つの前記第1パケット登録情報に含まれている場合に、当該第1パケット登録情報に対応した信号線をアクティブにする第1制御部とを有し、
前記第2ユニットは、前記復元パケットを前記第2ネットワークに送出し、また前記第2ネットワーク上の第2ネットワーク機器からのパケットを受信し、この受信したパケットを前記一方向伝送路を介して、前記第1ユニットに送る第2通信部を有し、
前記パケット復元部は、パケットの送信元情報、宛先情報及びアプリケーションデータを含む前記第2パケット登録情報の各々が、同じパケットについての第1、第2パケット登録情報が同じ前記信号線に対応するように登録された第2参照テーブルと、アクティブになった前記信号線に対応する前記第2パケット登録情報に基づく送信元情報、宛先情報、アプリケーションデータを有する前記復元パケットを生成する第2制御部とを有する
ことを特徴とする請求項1に記載の特定パケット中継機能付きデータダイオード装置。
【請求項3】
複数の回路ブロックの組み合わせによって任意の回路構成が可能な第1及び第2プログラマブルロジックデバイスを備えており、
前記第1プログラマブルロジックデバイスは、前記回路ブロックの組み合わせにより前記第1ユニットの少なくとも前記第1制御部が形成され、
前記第2プログラマブルロジックデバイスは、前記回路ブロックの組み合わせにより前記第2ユニットの少なくとも前記第2制御部が形成され、
前記信号線部は、前記第1プログラマブルロジックデバイスと前記第2プログラマブルロジックデバイスとを接続していることを特徴とする請求項2に記載の特定パケット中継機能付きデータダイオード装置。
【請求項4】
請求項3記載の特定パケット中継機能付きデータダイオード装置の設定方法において、
前記第1及び前記第2プログラマブルロジックデバイスにそれぞれ設定用構成情報をロードし、前記第1及び前記第2プログラマブルロジックデバイス内部に通信用配線を形成することで、前記第1ネットワーク側からのパケットを前記第2ネットワーク側に送るパケット伝送路を有効化するとともに、前記パケット伝送路上のパケットから送信元情報、宛先情報及びアプリケーションデータを含むパケット登録情報を取得する情報取得部を前記第1及び前記第2プログラマブルロジックデバイスの少なくとも一方に形成する第1形成ステップと、
前記第1ネットワーク機器から前記第2ネットワーク機器に向けて中継を許可する特定のパケットを送信する送信ステップと、
前記送信ステップで送信されたパケットから前記パケット登録情報を前記情報取得部で取得する情報取得ステップと、
前記情報取得ステップで取得した前記パケット登録情報を第1、第2パケット登録情報として前記第1、前記第2参照テーブルに前記信号線のいずれかに対応させて登録する情報登録ステップと、
前記情報登録ステップ後に実行され、第1の通常構成情報を前記第1プログラマブルロジックデバイスにロードすることで、前記第1プログラマブルロジックデバイスに少なくとも前記第1制御部を形成して前記第1ユニットを構成し、第2の通常構成情報を前記第2プログラマブルロジックデバイスにロードすることによって、前記第2プログラマブルロジックデバイスに少なくとも前記第2制御部を形成して前記第2ユニットを構成する第2形成ステップと
を有することを特徴とする特定パケット中継機能付きデータダイオード装置の設定方法。
【請求項5】
前記第1形成ステップは、前記第1または前記第2プログラマブルロジックデバイスの一方に前記情報取得部を形成し、
前記情報取得ステップは、前記第1または前記第2参照テーブルの一方の参照テーブルに、前記情報設定部が取得したパケット登録情報を記憶させる第1情報登録ステップと、この一方の参照テーブルの内容を他方の参照テーブルに複写する第2情報登録ステップとを有する
ことを特徴とする請求項4に記載の特定パケット中継機能付きデータダイオード装置の設定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特定パケット中継機能付きデータダイオード装置及びその設定方法に関するものである。
【背景技術】
【0002】
例えばプラントの運転状態の監視・保守や運転効率の向上のために運転状態に関するデータをデータセンタに収集するデータ収集システムが知られている。このようなデータ収集システムでは、データセンタに設置された情報要求側コンピュータと、プラントに設置された情報提供側コンピュータとがネットワークを介して接続されている。情報要求側コンピュータは、ネットワークを介して、情報提供側コンピュータに運転状態に関するデータを取得させたり、情報要求側コンピュータに送信させたりするための要求を情報提供側コンピュータに送る。一方の情報提供側コンピュータは、要求にしたがってデータを取得し、そのデータをパケットに格納して情報要求側コンピュータにネットワークを介して送信する。
【0003】
上記のようなデータ収集システムでは、情報提供側コンピュータを含むプラント内部のネットワーク機器を不正アクセス、情報漏洩,コンピュータウィルスの侵入等から保護するため、プラント内のネットワーク機器が接続されたネットワーク(以下、内部ネットワークという)と外部ネットワークとの境界にファイアウォールを接続することで、内部ネットワークに対するセキュリティを確保している。
【0004】
また、確実なセキュリティを確保するための機器として、物理的に通信を一方向に限定するデータダイオードと称される機器が知られている。このデータダイオードは、内部ネットワークと外部ネットワークとの境界に設置され、内部ネットワークのネットワーク機器から外部ネットワークのネットワーク機器に向けたデータ送信のみを許可する。このようなデータダイオードは、内部ネットワーク方向へのデータ送信をソフトウェア的な通信制御で遮断するのではなく、物理的な原理に基づき完全に遮断している。例えばデータダイオードは、一方向だけの光通信用の発光器と受光器とを設けた構成にされて、完全に一方向のみのデータ送信に限定している。イーサネット(登録商標)やRS−232C等のシリアル通信において、双方向の信号線のうちの一方を切断した構成等でも、同様に実現可能である。
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、上記のファイアウォールのようなセキュリティ機器は、その機器の内部にあるソフトウェアによってパケットの流れを制御している。このためセキュリティ機器がサイバー攻撃の対象となり、セキュリティ機器の制御が外部から不正に改変されて、内部ネットワークに対する不正なアクセスを許し兼ねない。このため、定期的なパスワードの変更や、異常メッセージの確認と対処などの適切な運用を怠れば、長期間の運用において、セキュリティを維持できない。一方、データダイオードは、ソフトウェアによる通信の制御、遮断する装置と異なり、物理的に通信を一方向に限定しているため、その通信方向を限定する機能が改変されることはなく、内部ネットワークに対する不正なアクセスを許すことがない。したがって、長期間の運用においてもセキュリティの維持が可能である。
【0006】
しかしながら、データダイオードは、外部から内部ネットワークに向けての通信を完全に遮断するため、上記のようなデータ収集システムに用いる場合に、内部ネットワークに接続された情報提供側コンピュータから送信されるデータの内容及びその送信タイミングは、予め決められた内容および送信タイミングに限定されるという問題がある。すなわち、外部ネットワークに接続された情報要求側コンピュータからの各種要求は情報提供側コンピュータに送信できない。したがって、外的な要因、例えば、外部ネットワーク側の機器の障害発生による一時的なデータの送信停止要求や、受信ミスをした際のデータの再送要求など、予想されうる限られた要求でさえも外部から内部に伝えることはできない。
【0007】
本発明は、上記事情に鑑みてなされたものであり、簡易な構成であり、高いセキュリティを確保しつつ、外部からの要求等の許可された特定のパケットを、データダイオードで保護されたネットワークに送ることができる特定パケット中継機能付きデータダイオード装置及びその設定方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の特定パケット中継機能付きデータダイオード装置は、第1ネットワークに接続された第1ユニットと、第2ネットワークに接続された第2ユニットと、第2ネットワークから受信したパケットを第2ユニットから第1ユニットへの一方向だけに伝送する一方向伝送路と、第1ネットワークから受信するパケットのうち許可された特定のパケットだけを第2ネットワークに中継するパケット中継部とを備え、パケット中継部は、第1ユニットと第2ユニットとの間に設けられた複数の信号線からなる信号線部と、第1ユニットに設けられるとともに、中継を許可する特定のパケットのそれぞれについて第1パケット登録情報が予め登録され、第1ネットワークからのパケットが第1パケット登録情報として登録されたパケットであるか否かを判定し、登録されたパケットである場合に、当該パケットについての第1パケット登録情報に対応した信号線をアクティブにするパケット判定部と、第2ユニットに設けられるとともに、中継を許可する特定のパケットのそれぞれについて第2パケット登録情報が予め登録され、いずれかの信号線がアクティブになることに応答して、アクティブになった信号線に対応する第2パケット登録情報に基づいて、第1ユニットが受信したパケットに相当する復元パケットを生成し、第2ネットワークに送出するパケット復元部とを備えるものである。
【0009】
また本発明の上記特定パケット中継機能付きデータダイオード装置の設定方法は、第1及び第2プログラマブルロジックデバイスにそれぞれ設定用構成情報をロードし、第1及び第2プログラマブルロジックデバイス内部に通信用配線を形成することで、第1ネットワーク側からのパケットを第2ネットワーク側に送るパケット伝送路を有効化するとともに、パケット伝送路上のパケットから送信元情報、宛先情報及びアプリケーションデータを含むパケット登録情報を取得する情報取得部を第1及び第2プログラマブルロジックデバイスの少なくとも一方に形成する第1形成ステップと、第1ネットワーク機器から第2ネットワーク機器に向けて中継を許可する特定のパケットを送信する送信ステップと、送信ステップで送信されたパケットからパケット登録情報を情報取得部で取得する情報取得ステップと、情報取得ステップで取得したパケット登録情報を第1、第2パケット登録情報として第1、第2参照テーブルに信号線のいずれかに対応させて登録する情報登録ステップと、情報登録ステップ後に実行され、第1の通常構成情報を第1プログラマブルロジックデバイスにロードすることで、第1プログラマブルロジックデバイスに少なくとも第1制御部を形成して第1ユニットを構成し、第2の通常構成情報を第2プログラマブルロジックデバイスにロードすることによって、第2プログラマブルロジックデバイスに少なくとも第2制御部を形成して第2ユニットを構成する第2形成ステップとを有するものである。
【発明の効果】
【0010】
本発明の特定パケット中継機能付きデータダイオード装置によれば、第2ネットワークから第1ネットワークへのパケットは一方向伝送路を用いて伝送し、第1ネットワークから第2ネットワークへのパケットの中継は、第1ユニット側で第1パケット登録情報として登録されているパケットを受信したときに、その第1パケット登録情報に対応した信号線をアクティブにし、アクティブになった信号線に対応する第2パケット登録情報から第1ユニットで受信したパケットに相当する復元パケットを生成して第2ネットワークに送出するので、簡易な構成で外部からの許可された特定のパケットだけを保護された第2ネットワークのネットワーク機器に送ることができるとともに、第1ネットワーク側から第2ユニットが改変されることなく高いセキュリティを確保することができる、
【0011】
また、本発明の特定パケット中継機能付きデータダイオード装置の設定方法によれば、第1、第2ユニットを構成する第1、第2プログラマブルロジックデバイスに、設定用構成情報をロードして有効化されたパケット伝送路に流れるパケットからパケット登録情報を取得し、第1、第2参照テーブルに登録するから、パケット伝送路を介して中継を許可する各パケットを送信することで、それら各パケットに対応するパケット登録情報が登録された第1、第2参照テーブルを作成できるようになり、接続するシステムに応じた特定パケット中継機能付きデータダイオード装置の設定が容易になる。
【図面の簡単な説明】
【0012】
図1】本発明を実施したデータ収集システムの概略を示す説明図である。
図2】特定パケット中継機能付きデータダイオード装置の構成を示すブロック図である。
図3】各参照テーブルの内容の一例を示す説明図である。
図4】ポート番号変換テーブルの内容の一例を示す説明図である。
図5】通信シーケンスの一例を示す説明図である。
図6】ヘッダの変化の一例を示す説明図である。
図7】通常モードでFPGAに形成される回路構成を示す説明図である。
図8】設定モードから通常モードで運用までの手順を示すフローチャートである。
図9】設定モードでFPGAに形成される回路構成を示す説明図である。
【発明を実施するための形態】
【0013】
[第1実施形態]
図1に示すように、本発明を実施したデータ取得システム10は、第1、第2外部コンピュータ11a、11bが第1、第2内部コンピュータ12a、12bからのデータを特定パケット中継機能付きデータダイオード装置(以下、単にデータダイオード装置と称する)14を介して収集するシステムである。例えば、第1、第2内部コンピュータ12a、12bは、プラント内に配備されており、外部コンピュータ11は、プラント外に配備されている。第1、第2内部コンピュータ12a、12bは、プラントに配設した各センサが計測した温度や圧力等の各種プロセスデータを取得し、そのプロセスデータを外部コンピュータ11が第1、第2内部コンピュータ12a、12bから取得する。なお、内部コンピュータ12から取得するデータは、プロセスデータに限らない。また、以下の説明では、第1、第2外部コンピュータ11a、11bを特に区別する必要がない場合には、外部コンピュータ11と総称する。また、第1、第2内部コンピュータ12a、12bを特に区別する必要がない場合には、内部コンピュータ12と総称する。
【0014】
第1ネットワークとしての外部ネットワーク15には、外部コンピュータ11を含む複数の第1ネットワーク機器が設けられている。また、第2ネットワークとしての内部ネットワーク16には、内部コンピュータ12を含む第2ネットワーク機器が設けられている。データダイオード装置14は、外部ネットワーク15と内部ネットワーク16との境界に接続されている。データダイオード装置14は、内部ネットワーク16から外部ネットワーク15へのパケットを伝送するとともに、予め許可した特定のパケットだけを外部ネットワーク15から内部ネットワーク16に中継する。内部ネットワーク16は、データダイオード装置14によって外部からの不正なアクセスから保護されたネットワークである。
【0015】
この例では、外部コンピュータ11とデータダイオード装置14、内部コンピュータ12とデータダイオード装置14は、いずれもTCP/IPすなわちインターネット・プロトコル・スイートによる通信を行う。また、データ収集システム10は、TCP/IPの4階層モデルのネットワークインターフェイス層(OSI参照モデルの第1、第2層相当)では、例えばイーサネット(登録商標)を用いている。また、説明を簡単にするために、この例では、データダイオード装置14が中継するパケットは、トランスポート層におけるプロトコルとしてTCPを用いたパケットとする。なお、通信のプロトコルは、特に限定されない。
【0016】
外部コンピュータ11は、外部ネットワーク15、データダイオード装置14及び内部ネットワーク16を介して内部コンピュータ12との間でパケットの送受信を行う。これによって、外部コンピュータ11は、内部コンピュータ12からプロセスデータを取得する。周知のように、パケットは、アプリケーション層(OSI参照モデルの第5〜第7層)における処理で生成されたアプリケーションデータにトランスポート層(OSI参照モデルの第4層相当)におけるヘッダ(この例ではTCPヘッダ)を付加して生成されたセグメントに、さらにインターネット層(OSI参照モデルの第3層相当)におけるヘッダ(この例ではIPヘッダ)を付加したPDU(Protocol Data Unit)であり、実際にはパケットにイーサネットヘッダを付加したフレームが送受信される。
【0017】
外部コンピュータ11は、内部コンピュータ12からプロセスデータを取得する場合には、アプリケーションデータとして後述する要求メッセージを格納したパケットを外部ネットワーク15に送出する。外部コンピュータ11と内部コンピュータ12との間にはデータダイオード装置14が介在するが、外部コンピュータ11は、パケットの宛先IPアドレスとして、内部コンピュータ12のIPアドレスを付与する。内部コンピュータ12は、受信したパケットに要求メッセージが格納されている場合には、要求メッセージで指定されるプロセスデータを読み出し、読み出したプロセスデータを格納したパケットを内部ネットワーク16に送出する。外部コンピュータ11は、受信したパケットに格納されたプロセスデータ等のアプリケーションデータを取り出す。
【0018】
なお、以下の説明では、要求メッセージを格納したパケットを他のパケットと特に区別する場合には、そのパケットを要求パケットと称する。また、要求パケットに応答して返信されるプロセスデータを格納したパケットを他のパケットと特に区別する場合には、そのパケットを応答パケットと称する。
【0019】
データダイオード装置14は、外部ネットワーク15に接続された第1ユニット21と内部ネットワーク16に接続された第2ユニット22とを備えている。第1ユニット21は、外部ネットワーク15から内部ネットワーク16に向けて送信されるパケットを受信し、受信したパケットが後述する第1パケット登録情報が登録されているパケット(以下、登録パケットという)であるか否かを判定する。受信したパケットが登録パケットである場合には、第1ユニット21は、その登録パケットの第1パケット登録情報に対応した信号線Q1、Q2・・・Qn(図2参照、信号線Q1、Q2・・・Qnを特に区別する必要がない場合には、信号線Qと総称する)のいずれか1本をアクティブにする。第2ユニット22は、アクティブになった信号線Qに対応する後述する第2パケット登録情報から第1ユニット21で受信した登録パケットの内容を特定し、その受信した登録パケットに相当するパケット(復元パケット)を生成して、内部ネットワーク16に送出する。
【0020】
また、データダイオード装置14は、第2ユニット22で内部ネットワーク16からのパケットを受信し、そのパケットを一方向伝送路S(図2参照)を介して第1ユニット21に伝送し、第1ユニット21がパケットを外部ネットワーク15に送出する。これにより、内部コンピュータ12から外部コンピュータ11に宛てられたプロセスデータを外部コンピュータ11に送る。なお、データダイオード装置14が内部ネットワーク16へ中継するパケットは、プロセスデータを取得するための要求パケットに限定されないが、以下では、データダイオード装置14には、中継するパケットとして、いくつかの要求パケットが予め登録されているものとして説明する。
【0021】
図2において、データダイオード装置14は、第1、第2ユニット21、22と、複数本の信号線Qからなる信号線部23と、第1ユニット21と第2ユニット22との間に設けられた伝送線路24とを備えている。第1ユニット21は、第1通信部31、第1記憶部32、第1制御部33及び受信部34を備える。第2ユニット22は、第2通信部41、第2記憶部42、第2制御部43及び送信部44を備える。
【0022】
第1ユニット21に設けられた第1制御部33と第1記憶部32に記憶されている第1参照テーブルT1とにより、パケット判定部51が構成される。また、第2ユニット22に設けられた第2制御部43と、第2記憶部42に記憶されている第2参照テーブルT2とによって、パケット復元部52が構成される。これらパケット判定部51とパケット復元部52と、信号線部23とによってパケット中継部53が構成される。また、伝送線路24と、第1ユニット21の受信部34と、第2ユニット22の送信部44とは、一方向伝送路Sを構成する。
【0023】
第1ユニット21の第1通信部31は、外部ネットワーク15に接続されている。この第1通信部31は、内部ネットワークに向けたパケットを受信する。この例では、第1通信部31は、外部ネットワーク15からのパケットのうち第1参照テーブルT1に登録されている第1パケット登録情報の宛先IPアドレスが付与されているパケットを受信する。なお、内部ネットワーク16のネットワークアドレスを例えば第1通信部31に予め設定しておき、そのネットワークアドレスに宛先IPアドレスのネットワークアドレス部分が一致するパケットを受信するようにしてもよい。
【0024】
第1通信部31は、受信したパケットから送信元IPアドレス、宛先IPアドレス、アプリケーションデータ(以下、これらをまとめて受信パケット情報という)及び送信元ポート番号を取り出して第1制御部33に送る。また、第1通信部31は、一方向伝送路Sを構成する受信部34からのパケットを外部ネットワーク15に送出する。これにより、応答パケットを、それに対応した要求パケットの送信元である外部コンピュータ11に送信する。
【0025】
第1記憶部32は、上述の第1参照テーブルT1とポート番号変換テープルTpとを記憶している。第1参照テーブルT1は、図3に示すように、中継を許可した特定のパケットのそれぞれについての第1パケット登録情報と、この第1パケット登録情報に対応する1本の信号線Qを示す信号線番号と、インターバル時間とからなる複数のレコードが登録されている。各レコードの信号線番号と第1パケット登録情報とは、1対1に対応する。この例における第1パケット登録情報は、パケット中のIPヘッダに格納される送信元IPアドレス、宛先IPアドレス、TCPヘッダに格納される送信元ポート番号、宛先ポート番号、TCPデータ部に格納されるアプリケーションデータからなる。また、この例では、第1パケット登録情報中の送信元IPアドレスが送信元情報、宛先IPアドレスが宛先情報であり、これらとアプリケーションデータとの組み合わせが登録パケットであるか否かの判定に用いられる。
【0026】
第1パケット登録情報の送信元IPアドレス、宛先IPアドレス、宛先ポート番号、アプリケーションデータは、実際に外部コンピュータ11から内部コンピュータ12に送信される要求パケットのものが登録される。これに対して、第1パケット登録情報の送信元ポート番号は、各第1パケット登録情報にユニークなポート番号を予め付与している。
【0027】
また、アプリケーションプロトコルとして、この例ではModbus/TCPを用いている。このため、第1パケット登録情報のアプリケーションデータとしては、TCP/Modbusに準拠したメッセージが登録されている。TCP/Modbusのメッセージは、周知のように、内部コンピュータ12に設けられたレジスタに対するデータ(プロセスデータ)の読み出しや書き込みを指示する機能コード、読み出しや書き込みの際のアドレス範囲等のデータから構成され、読み出すプロセスデータが同じであれば、TCP/Modbusの要求メッセージは同じになる。
【0028】
ポート番号変換テープルTpには、図4に示すように、第1制御部33によって、変換前ポート番号と変換後ポート番号とが対応付けた変換レコードが登録される。このポート番号変換テープルTpは、応答パケットを外部コンピュータ11に送る際に、その応答パケットの宛先ポート番号を、対応する要求パケットの送信元ポート番号に変換するために用いられる。
【0029】
図2において、第1制御部33は、上述のように第1通信部31が受信したパケットが登録パケットであるか否かを判定する。この判定では、第1制御部31は、受信パケット情報が第1参照テーブルT1のいずれかの第1パケット登録情報に含まれているか否かを調べる。この判定において、受信パケット情報がいずれか1つの第1パケット登録情報に含まれている場合、すなわち、送信元IPアドレス、宛先IPアドレス及びアプリケーションデータの全てがいずれか1つの第1パケット登録情報に含まれている場合に、登録パケットであると判定する。第1制御部33は、それらが含まれている第1パケット登録情報(以下、第1該当パケット登録情報という)に対応した信号線番号を取得し、取得した信号線番号の信号線Qをアクティブにする。
【0030】
また、第1制御部33は、登録パケットと判定するごとに、ポート番号変換テープルTpに変換レコードを登録する。この登録では、登録パケットの送信元ポート番号を変換前ポート番号とし、第1該当パケット登録情報の送信元ポート番号を変換後ポート番号とする。変換レコードは、例えば変換後ポート番号の基になった第1該当パケット登録情報のインターバル時間の経過後に第1制御部33によって削除される。
【0031】
なお、情報要求側の外部コンピュータ11が情報提供側の内部コンピュータ12に送信するパケットの宛先ポート番号は、一般的に通信相手のアプリケーションごとに固定されている。このため、この例では、受信したパケットと第1パケット登録情報とのアプリケーションデータが一致する場合、宛先ポート番号も一致するとみなしており、宛先ポート番号を登録パケットであるか否かの判定に用いていない。もちろん、宛先ポート番号を宛先情報の1つとして判定に用いてもよい。一方、外部コンピュータ11が送信するパケットの送信元ポート番号は、一般的に任意なポート番号が外部コンピュータ11によって付与される。このため、この例では送信元ポート番号を登録パケットであるか否かの判定に用いない。もちろん、送信元ポート番号が固定されている場合には、送信元情報の1つとすることもできる。この場合には、上記ポート番号変換テーブルTpの作成は不要である。
【0032】
第1制御部33は、先に受信したパケットと同じ受信パケット情報を有する新たなパケットを受信した場合、先に受信したパケットに応答して信号線Qをアクティブにした時点から、その受信したパケットに対応した第1パケット登録情報のインターバル時間内であるときには、新たなパケットに対して信号線Qをアクティブにしない。これにより、短時間に大量のパケットが送信される、いわゆるフラッド攻撃から内部コンピュータ12を保護する。なお、インターバル時間の計時の起算点は、先に受信したパケットの受信時でもよい。
【0033】
信号線Qは、第1参照テーブルT1に登録されている第1パケット登録情報と同じ本数以上あればよい。この例では、信号線Qとしてメタル線を用いている。第1制御部33は、信号線Qの各々に接続された複数のスイッチを有し、第1該当パケット登録情報に対応する信号線番号に接続されたスイッチをオンとする。これにより、第1該当パケット登録情報に対応した信号線Qをアクティブ、この例ではハイレベルにする。なお、信号線Qのアクティブをローレベルとしてもよい。また、信号線Qは、アクティブであるか否かを第2ユニット22に伝えることができればよい。信号線Qとして、例えば発光ダイオードと受光素子とを用い、アクティブとするときに第1ユニット21が発光ダイオードを点灯し、第2ユニット22が受光素子で発光ダイオードの点灯を検出するようにしてもよい。
【0034】
受信部34は、伝送線路24を介して第2ユニット22からのパケットを受信する。また、この受信部34は、ポート番号変換テープルTpを参照して、第2ユニット22から受信したパケットの宛先ポート番号の変換を行う。すなわち、受信部34は、受信したパケットの宛先ポート番号をポート番号変換テープルTpの変換後ポート番号として、その変換後ポート番号に対応する変換前ポート番号を受信したパケットの宛先ポート番号に置き換える。これにより、応答パケットの宛先ポート番号をそれに対応する要求パケットの送信元ポート番に変換している。受信部34は、宛先ポート番号を置き換えたパケットを第1通信部31に送る。
【0035】
第2ユニット22の第2制御部43は、各信号線Qが接続されている。第2記憶部42には、図3に示すように、第1参照テーブルT1と同一の内容の第2参照テーブルT2が書き込まれている。第2参照テーブルT2では、各レコードのパケット登録情報が第2パケット登録情報になっており、第2パケット登録情報には、同じ内容の第1パケット登録情報の信号線Q(信号線番号)が対応付けられている。これにより、同じパケットについての第1、第2パケット登録情報が同じ信号線Qに対応するように登録されている。
【0036】
第2制御部43は、いずれかの信号線Qがアクティブになることに応答して、アクティブになった信号線Qの信号線番号に対応付けられた第2パケット登録情報、すなわち、第1該当パケット登録情報と同じ内容の第2パケット登録情報(以下、他の第2パケット登録情報と特に区別する場合には第2該当パケット登録情報という)を第2参照テーブルT2から読み出し、第2該当パケット登録情報のアプリケーションデータ、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号をそれぞれ付与したパケットを生成する。これにより、第2該当パケット登録情報に基づいて、第1ユニット21が受信したパケットに相当する復元パケットを生成する。第2制御部43で生成されたパケットは、第2通信部41に送られる。なお、第2参照テーブルT2では、インターバル時間を省略することができる。
【0037】
第2通信部41は、内部ネットワーク16に接続されている。第2通信部41は、第2制御部43で生成されたパケットを内部ネットワーク16に送出する。これにより、第2制御部43で生成したパケットを内部コンピュータ12に送る。また、第2通信部41は、内部ネットワーク16から受信したパケットを送信部44に送る。
【0038】
なお、第2該当パケット登録情報からパケットを生成する場合、送信元ポート番号を任意のポート番号に、また送信元IPアドレスを第2ユニット22のIPアドレスに置き換えてもよい。この場合、それに対応して内部コンピュータ12が返信するパケットの宛先ポート番号、宛先IPアドレスを第2該当パケット登録情報の送信元ポート番号、送信元ポート番号に置き換えてから、そのパケットを第1ユニット21に伝送する。
【0039】
一方向伝送路Sは、上述のように第1ユニット21の受信部34と、第2ユニット22の送信部44と、伝送線路24とから構成されており、通信方向が第2ユニット22側から第1ユニット21側への一方向に物理的に限定されたデータダイオードである。例えば、送信部44は、発光素子や入力されるデータに応じて発光素子から出力される光を変調する変調回路、エラー訂正用の送信側回路等で構成され、受信部34は、受光素子や受光強度に応じてデータを復調する復調回路、エラー訂正用の受信側回路等で構成される。伝送線路24は、送信部44の発光素子と受信部34の受光素子の間を結ぶ光ファイバが用いられている。この一方向伝送路Sは、第2通信部41からのパケットが伝送すべきデータとして送信部44に入力され、この入力されたデータを伝送線路24を介して受信部34に送る。
【0040】
一方向伝送路Sとしては、一方向の通信に限定されたものであればよく、上記構成に限定されないが、一方向の伝送を担保する観点からは、例えば上記のように通信方向を物理的に限定する構成とすることが好ましい。また、エラー訂正としては、エラー発生時にデータの再送要求が不要な前方誤り訂正方式を用いることが好ましい。
【0041】
上述のように、受信部34が受信したパケットは、宛先ポート番号の変換を行ってから第1通信部31に送られ、第1通信部31が外部ネットワーク15に送出する。これにより、内部コンピュータ12にプロセスデータを要求した外部コンピュータ11に対して、その要求したプロセスデータの応答パケットを送信する。
【0042】
なお、アプリケーションデータの送信態様は上記態様に限られない。例えば各応答パケットから得られるアプリケーションデータをバッファ等にいったん蓄積してから、一方向伝送路Sを介してまとめて送信するとともに、宛先IPアドレス、宛先ポート番号等の情報を送信してもよい。この場合、第1ユニット21側では、まとめて受信したアプリケーションデータと宛先IPアドレス、宛先ポート番号等の情報から外部コンピュータ11に送信するためのパケットを再構成して送信する。
【0043】
第2ユニット22から第1ユニット21には、一方向伝送路Sを用いて、少なくともアプリケーションデータと、第1ユニット21がアプリケーションデータの送り先を識別できる情報とを送ればよい。例えば、パケットから取り出したアプリケーションデータと宛先ポート番号を送ってもよい。この場合、宛先ポート番号に送信元ポート番号が一致する第1パケット登録情報の送信元IPアドレスを応答パケットの宛先IPアドレスとすればよい。
【0044】
上記のように構成される第1ユニット21は、外部ネットワーク15上の第1ネットワーク機器に対して、また第2ユニット22は、内部ネットワーク16上の第2ネットワーク機器に対して、トランスポート層以下の動作を行って通信すればよく、トランスポート層以下での動作は、アプリケーションや接続される機器等で変化しないから、固定の機能を実現すればよく、簡単な構成とすることができる。
【0045】
データダイオード装置14を構成する第1、第2ユニット21、22との機能は、それぞれ例えばパーソナルコンピュータを用いて構成することも可能である。この場合、例えば2台のパーソナルコンピュータを配置し、第1、第2ユニット21、22の機能を実現するためのプログラムを導入して、一方を第1ユニット21、他方を第2ユニット22とする。信号線Qとしては、各パーソナルコンピュータに設けた汎用入出力ポート等の端子同士の接続を用いる。一方向伝送路Sとしては、各パーソナルコンピュータのRS−232Cなどの双方向の信号線のうちの一方向のみを接続する。
【0046】
一方、第1、第2ユニット21、22を、例えばASIC(application specific integrated circuit、特定用途向け集積回路)や、後述する第2実施形態のように、FPGA(Field Programmable Gate Array)に代表されるプログラマブルロジックデバイス(PLD)等を用いて実現することもできる。PLDは、複数の回路ブロックの組み合わせによって任意の回路構成が可能であって様々な処理回路を形成することができるが、回路構成後に処理回路自体を変更することは困難である。したがって、このようにASICやPLDを用いる態様は、機能の改変、例えば第1参照テーブルT1の内容の書き換えを不可能にし、また第1制御部33の動作内容の変更を困難にすることができる。そして、これによって外部ネットワーク15から内部コンピュータ12への不正なアクセスのリスクを極めて低くすることができる。
【0047】
次に、上記構成の作用について、第2外部コンピュータ11bを操作して、第1内部コンピュータ12aからプロセスデータを取得する場合を例に説明する。なお、以下の説明では、図1に示すように、第1外部コンピュータ11aのIPアドレスを「192.168.100.1」とし、第2外部コンピュータ11bのIPアドレスを「192.168.100.2」とする。また、第1内部コンピュータ12aのIPアドレスを「192.168.1.1」、第2内部コンピュータ12bのIPアドレスを「192.168.1.2」とする。さらに、第1参照テーブルT1、第2参照テーブルT2には、図3に示す内容が登録されているものとする。
【0048】
まず、第2外部コンピュータ11bを操作して、第1内部コンピュータ12aからのプロセスデータの取得を指示する。この指示を受けて、第2外部コンピュータ11bは、第1内部コンピュータ12aとTCPでのコネクションを確立させる。このため、第2外部コンピュータ11bは、まず第1内部コンピュータ12aのIPアドレスを宛先IPアドレスとして格納したARPリクエストをブロードキャストする。
【0049】
第1ユニット21の第1通信部31は、第1参照テーブルT1には、第1内部コンピュータ12aのIPアドレスが宛先IPアドレスとなった第1パケット登録情報が登録されているため、上記ARPリクエストに応答して自己のMACアドレスを格納したARPリプライを、ARPリクエストの送信元に返信する。これにより、第2外部コンピュータ11bは、ARPリプライから第1通信部31のMACアドレスを取得する。これ以降、第2外部コンピュータ11bは、第1内部コンピュータ12aのIPアドレスを宛先IPアドレスとしてパケットを送出する場合、第1通信部31のMACアドレスを宛先MACアドレスとする。そして、第2外部コンピュータ11bは、第1内部コンピュータ12aのIPアドレスを宛先IPアドレスとして、SYNパケットの送信を行う。結果として、図5に示すように、第2外部コンピュータ11bと第1通信部31との間で、そのSYNパケットと、ACK+SYNパケットと、ACKパケットとの送受信が行われて、TCPのコネクションが確立される。なお、外部コンピュータ11、内部コンピュータ12、第1、第2通信部31、41がパケットを送信する場合の送信元MACアドレスは、それぞれ自己のMACアドレスとなる。
【0050】
TCPのコネクションが確立した後、第2外部コンピュータ11bは、取得するプロセスデータに応じた要求メッセージをTCPデータ部に格納した要求パケットP1(図5図6参照)を生成し、その要求パケットP1を外部ネットワーク15に送出する。図6に示すように、要求パケットP1に付与されている送信元IPアドレスは第2外部コンピュータ11bのIPアドレス「192.168.100.2」であり、宛先IPアドレスは第1内部コンピュータ12aのIPアドレス「192.168.1.1」である。また、要求パケットには、宛先ポート番号としてTCP/Modbusに対応するポート番号(この例では502)が付与され、送信元ポート番号には、任意のポート番号(この例では1501)が付与されている。
【0051】
第1通信部31によって、要求パケットP1が受信され、その要求パケットP1から取り出された受信パケット情報と送信元ポート番号が第1制御部33に送られる。受信パケット情報と送信元ポート番号を受け取ると、第1制御部33は、第1参照テーブルT1に登録されている第1パケット登録情報のいずれかに受信パケット情報が含まれているか否かを調べて、要求パケットP1が登録パケットであるか否かを判定する。
【0052】
受信パケット情報が含まれる第1パケット登録情報が第1参照テーブルT1にない場合には、要求パケットP1は登録パケットではないと判定される。このように登録パケットではないと判定した場合には、第1制御部33は、例えば第1通信部31と第2外部コンピュータ11bとの間のコネクションを切断する。一方、受信パケット情報が含まれる第1パケット登録情報、すなわち第1該当パケット登録情報が第1参照テーブルT1にある場合には、要求パケットP1が登録パケットと判定される。そして、この場合には、第1該当パケット登録情報に対応した信号線Qが所定時間だけアクティブ(ハイレベル)にされる。
【0053】
要求パケットP1のアプリケーションデータの内容が、例えば、「0001 0000 0006 11 03 008A 00E3」である場合には、第1参照テーブルT1の信号線番号「2」に対応する第1パケット登録情報が第1該当パケット登録情報になる。したがって、第1制御部33によって、信号線番号「2」の信号線Q2がアクティブにされる。これにより、図5において破線で示すように、第1制御部33から第2制御部43に対して、信号線Q2によって信号線番号「2」に対応する第1パケット登録情報を含むパケットを第1ユニット21が受信したことが伝達される。
【0054】
また、第1制御部33によって、ポート番号変換テーブルTpに要求パケットP1に対応した変換レコードが登録される。図6に示すよう、要求パケットP1の送信元ポート番号「1501」が変換前ポート番号とされ、第1該当パケット登録情報の送信元ポート番号「3002」が変換後ポート番号とされた変換レコードR1が登録される。
【0055】
一方、上記のようにいずれか1本の信号線Qがアクティブになると、第2制御部43は、アクティブになった信号線Qの信号線番号を特定する。そして、特定した信号線番号に対応した第2パケット登録情報、すなわち第1該当パケット登録情報と同じ内容の第2該当パケット登録情報を第2参照テーブルT2から読み出す。そして、第2通信部41に対して、第2該当パケット登録情報の宛先IPアドレスをIPアドレスとするネットワーク機器との間でTCPのコネクションを確立させる。第2通信部41は、ARPを用いて第2該当パケット登録情報の宛先IPアドレスに対応するMACアドレスを取得した後、第2該当パケット登録情報の宛先IPアドレスを用いて、SYNパケットと、ACK+SYNパケットと、ACKパケットとの送受信することで、TCPのコネクションが確立する。
【0056】
TCPのコネクションが確立すると、第2制御部43は、第2該当パケット登録情報のアプリケーションデータに、第2該当パケット登録情報の宛先ポート番号と送信元ポート番号とを有するTCPヘッダと、第2該当パケット登録情報の宛先IPアドレスと送信元IPアドレスとを有するIPヘッダを付加したパケットを生成する。そして、この生成したパケットを第2通信部41から内部ネットワーク16に送出する。
【0057】
上記のように信号線Q2がアクティブとされた場合、信号線番号「2」に対応した第2パケット登録情報が第2該当パケット登録情報となる。第2該当パケット登録情報の宛先IPアドレスは、要求パケットP1と同じ第1内部コンピュータ12aのものであるから、第2通信部41と第1内部コンピュータ12aとの間でTCPのコネクションが確立する。そして、第2該当パケット登録情報は、第1該当パケット登録情報と同じ内容になっているから、第2制御部43によって、要求パケットP1と実質的に同じ内容を持つ要求パケットP2(図5図6参照)が生成される。すなわち、要求パケットP2は、送信元IPアドレス、宛先IPアドレス、宛先ポート番号、要求メッセージ(アプリケーションデータ)が要求パケットP1のものと同じになっており、送信元ポート番号が第1、第2該当パケット登録情報の送信元ポート番号「3002」となっている。
【0058】
このように信号線Qを用いた簡単な構成で、内部ネットワーク16に送信すべきパケットの内容と、そのパケットの送信のタイミングとを第1ユニット21から第2ユニット22に伝達され、第2該当パケット登録情報から第1ユニット21が受信したパケットに相当するパケットが復元されて内部ネットワーク16に送出される。
【0059】
内部ネットワーク16に送出された要求パケットP2は、第1内部コンピュータ12aによって受信される。第1内部コンピュータ12aは、要求パケットP2から要求メッセージを取り出して、宛先ポート番号に応じた所定のアプリケーションで処理する。これにより、要求メッセージに応じたプロセスデータが指定されたアドレス範囲から取り出され、これを格納した応答パケットP3(図5図6参照)が生成される。応答パケットP3は、第1内部コンピュータ12aから内部ネットワーク16に送出される。なお、例えば、応答パケットP3には、要求パケットP2に対する確認応答のためのACKフラグがセットされるが、応答パケットP3とは別にACKパケットを送信してもよい。
【0060】
応答パケットP3では、要求パケットP2と送信元と宛先とが逆にされるので、図6に示すように、送信元IPアドレスとして第1内部コンピュータ12aのIPアドレス「192.168.1.1」が付与され、宛先IPアドレスとして第2外部コンピュータ11bのIPアドレス「192.168.100.2」が付与されている。また、応答パケットP3には、送信元ポート番号には要求パケットP2の宛先ポート番号「502」が、宛先ポート番号には要求パケットP2の送信元ポート番号「3002」が付与されている。
【0061】
内部ネットワーク16に送出された応答パケットP3は、宛先MACアドレスが第2通信部41のMACアドレスとなっているので、第2通信部41によって受信される。第2通信部41は、応答パケットP3の受信に応答してACKパケットを返信するとともに、応答パケットP3を送信部44に送る。この応答パケットP3は、送信部44から伝送線路24を介して第1ユニット21の受信部34に送られる。なお、1つの要求パケットに対して複数の応答パケットが返信される場合、各応答パケットを順次に一方向伝送路Sを介して第2ユニット22から第1ユニット21に送信すればよい。
【0062】
受信部34は、応答パケットP3を受信すると、ポート番号変換テーブルTpを参照して、応答パケットP3の宛先ポート番号の変換を行った応答パケットP4(図5図6参照)を第1通信部31に送る。応答パケットP3は、宛先ポート番号が「3002」であるから、変換後ポート番号「3002」になっている変換レコードR1が参照され、その変換レコードR1の変換前ポート番号「1501」に応答パケットP3の宛先ポート番号が置き換えられる。これにより、図6に示すように、応答パケットP4の宛先ポート番号は、元となった要求パケットP1の送信元ポート番号と同じ「1501」に変換される。
【0063】
図5に示すように、応答パケットP4が第1通信部31から外部ネットワーク15に送出される。このときに、第1通信部31は、応答パケットP4が、先の要求パケットP1に応答したパケットとなるように、そのIPヘッダやTCPヘッダの情報、例えばシーケンス番号や確認応答番号を修正する。なお、応答パケットP4のアプリケーションデータを1つのパケットで送信できない場合には、複数のパケットに分割して送信してもよい。
【0064】
応答パケットP4は、その宛先IPアドレスが第2外部コンピュータ11bのIPアドレスとなっているから、第2外部コンピュータ11bによって受信される。この応答パケットP4の受信に応答して、第2外部コンピュータ11bからACKパケットが返信されて、このACKパケットが第1通信部31で受信される。一方、第2外部コンピュータ11bでは、受信した応答パケットP4からプロセスデータが取り出されて、宛先ポート番号に応じた要求元のアプリケーションに渡される。応答パケットP4の宛先ポート番号は、要求パケットP1に付与した送信元ポート番号と同じになっているため、プロセスデータは要求元のアプリケーションに渡される。
【0065】
上記と同様な手順により、外部コンピュータ11が内部コンピュータ12に送る要求パケットの受信パケット情報が第1テーブルT1に予め登録されている第1パケット登録情報のものと同じであれば、その要求パケットに相当する要求パケットが第2ユニット22で生成され内部コンピュータ12に送信される。そして、外部コンピュータ11は、その要求パケットに対応する応答パケットをデータダイオード装置14を介して内部コンピュータ12から受信する。
【0066】
このようにして、外部コンピュータ11は、必要とするタイミングで、要求パケットを送信することにより、それに対応したプロセスデータを内部コンピュータ12から取得できる。
【0067】
一方、第1通信部31が外部ネットワーク15から受信するパケットの受信パケット情報が、第1参照テーブルT1に登録されているいずれの第1パケット登録情報にも含まれていない場合には、上記のように第1制御部33は何もしないから、第2ユニット22から内部ネットワーク16、内部コンピュータ12にパケットが送信されることはない。これにより、外部ネットワーク15上の許可されていないコンピュータからの内部コンピュータ12へのアクセス、許可されていない内部コンピュータ12へのアクセス、許可されていないプロセスデータの取得を行うことができない。したがって、不正なアクセスはできず、情報漏洩等が発生しない。
【0068】
そして、データダイオード装置14では、上記のように、外部ネットワーク15側から内部ネットワーク16側、すなわち第1ユニット21から第2ユニット22へのパケット内容の伝達は、その内容に応じた信号線Qを第1ユニット21側でアクティブにし、その信号線Qに対応する第2パケット登録情報を第2ユニット22側で特定することで行っている。また、第2ユニット22から第1ユニット21へのパケットの伝送に通信方向が限定された一方向伝送路Sを用いている。このため、外部ネットワーク15側のコンピュータからデータダイオード装置14に不正な改変を試みても、第2ユニット22を操作することは困難であり、内部コンピュータ12に不正なパケットを送ることはできない。したがって、内部コンピュータ12への不正なアクセスが確実に防止される。
【0069】
上記の説明では、アプリケーションプロトコルとしてModbus/TCPを用いているが、アプリケーションプロトコルは特に限定されるものではない。また、第1、第2参照テーブルT1、T2に登録されている複数の第1、第2パケット登録情報のアプリケーションデータが異なる種類のアプリケーションプロトコルのものであってもよい。すなわち、このデータダイオード装置14では、アプリケーションプロトコルが異なるパケットであっても、区別することなく扱うことが可能である。
【0070】
また、上記のデータダイオード装置14は、トランスポート層におけるプロトコルとしてTCPのパケットを中継しているが、例えば、TCPとUDPとを併用する場合には、プロトコル種別を特定するための情報を第1、第2パケット登録情報に加える。この場合、第2ユニット22では、第2パケット登録情報のプロトコル種別に応じたヘッダを付与してパケットを生成するとともに、プロトコル種別に示されるプロトコルに準じた通信の制御を行う。このプロトコル種別は、第2ユニット22がパケットを生成するために必要なので、第1パケット登録情報では省略することができる。もちろん、プロトコル種別を含めて登録パケットであるか否かを判定する場合には、第1パケット登録情報にも必要になる。
【0071】
[第2実施形態]
第2実施形態のデータダイオード装置(特定パケット中継機能付きデータダイオード装置)は、プログラマブルロジックデバイスの一例として、内部の複数の回路ブロックが構成情報にしたがって組み合わせられることで任意の回路構成とすることが可能なFPGA用いて第1、第2ユニットを構成するとともに、特定のパケットを中継する通常モードと、パケット登録情報を取得して参照テーブルを作成する設定モードとを有している。なお、以下に詳細を説明する他は、第1実施形態と同様であり、実質的に同じ部材には同一の符号を付してその詳細な説明を省略する。
【0072】
図7に示すように、データダイオード装置14は、第1、第2FPGA60、70を備えている。第1、第2FPGA60、70は、周知のように、内部の複数の回路ブロックが構成情報にしたがって組み合わせられることで各種機能を有する処理回路が構成される。データダイオード装置14は、動作モードとして設定モードと通常モードとを有し、動作モードの選択が可能になっている。第1、第2FPGA60、70は、データダイオード装置14の起動ごとに、選択されている動作モードの構成情報をロードする。なお、図7では、第1、第2FPGA60、70内に通常モードで形成される回路を描いてある。
【0073】
第1、第2FPGA60、70は、プリント基板PS上に所定の間隔をあけて実装されている。第1FPGA60と第2FPGA70との間のプリント基板PS上に複数の信号線Qと、設定モードで使用する通信用配線L0が形成されている。通信用配線L0は、第1FPGA60と第2FPGA70とを繋ぐ複数本の配線パターンで構成される。なお、通信用配線L0として、プリント基板PSに着脱自在なケーブルを用い、設定モードのときにだけそのケーブル装着してもよい。
【0074】
第1、第2FPGA60、70の周囲のプリント基板PS上には、それぞれ構成メモリ61、71、ETH−PHY(Ethernet(登録商標) Physical Layer)チップ31a、41a、光学PHYチップ34a、44a、メモリカード装着部62、72、DRAM63、73、クロック発生器64、74、ディスプレイ65、75が配されている。ETH−PHY31aは、第1通信部31の一部を構成し、コネクタ66を介して外部ネットワーク15が接続される。また、ETH−PHY41aは、第2通信部41の一部を構成し、コネクタ76を介して内部ネットワーク16が接続される。
【0075】
メモリカード装着部62、72は、メモリカード62a、72aが装着されるメモリスロットとメモリカード62a、72aに対するデータの読み出し及び書き込みを行うインタフェース回路等で構成される。メモリカード62aは、第1参照テーブルT1、ポート番号変換テーブルTpを記憶する第1記憶部になっており、メモリカード72aは、第2参照テーブルT2を記憶する第2記憶部となっている。光学PHYチップ34aは、受信部34の一部を構成し、光学PHYチップ44aは、送信部44の一部を構成する。光学PHYチップ34a、44aの間に光ファイバが伝送線路24として接続されている。
【0076】
DRAM63、73は、パケット等を一時的に記憶するバッファメモリ等として用いられる。クロック発生器64、74は、第1FPGA60、70に動作用のクロック信号を供給する。ディスプレイ65、75は対応する第1、第2ユニット21、22の動作情報を表示する。
【0077】
第1FPGA60に接続された構成メモリ61は、第1FPGA60用の通常構成情報61aと設定用構成情報61bとが書き込まれている。第1FPGA60と構成メモリ61との間には、動作モードを選択するためのモード選択部68が接続されている。このモード選択部68を操作することによって、通常モードと設定モードといずれかを選択することができる。モード選択部68は、選択されている動作モードに応じて、第1FPGA60が読み出す構成メモリ61の領域を切り替えることによって、選択された動作モードの構成情報を第1FPGA60にロードさせる。これにより、第1FPGA60には、通常モードが選択されている時には、通常構成情報61aがロードされ、設定モードが選択されている時には設定用構成情報61bがロードされる。
【0078】
第2FPGA70に接続された構成メモリ71は、第2FPGA70用の通常構成情報71aと設定用構成情報71bとが書き込まれている。第2FPGA70と構成メモリ71との間に、モード選択部78が接続されている。このモード選択部78は、モード選択部68と連動しており、モード選択部68と同じ動作モードを選択する。これにより、第2FPGA70には、通常モードが選択されている時には、通常構成情報71aがロードされ、設定モードが選択されている時には第2FPGA70に設定用構成情報71bがロードされる。
【0079】
通常構成情報61aのロードによって、図7に示すように、第1FPGA60は、その内部に第1通信部31、第1制御部33、受信部34を形成し、その第1FPGA60と周辺の回路とによって第1ユニット21が構成される。また、通常構成情報71aのロードによって、第2FPGA70は、その内部に第2通信部41、第2制御部43、送信部44を形成し、その第2FPGA70と周辺の回路とによって第2ユニット22が構成される。この通常モードにおける、第1、第2FPGA60、70を用いて構成される第1、第2ユニット21、22及びデータダイオード装置14の構成、動作は、第1実施形態と同じであるから、その説明を省略する。
【0080】
なお、メモリカード62a、72aを第1、第2記憶部としているが、これらを第1、第2FPGA60、70の内部に形成してもよい。この場合、メモリカード62a、72aと第1、第2記憶部との相互間で第1、第2参照テーブルT1、T2を複製ないし移動できるようにし、コンピュータ等を用いて第1、第2参照テーブルT1、T2の内容を編集できるようにすることが好ましい。
【0081】
設定モードは、第1、第2参照テーブルT1、T2を作成するための動作モードである。以下、設定モードを用いた第1、第2参照テーブルT1、T2の作成について説明する。データダイオード装置14を外部ネットワーク15と内部ネットワーク16に接続した状態にする。また、外部コンピュータ11と内部コンピュータ12とのネットワークアドレスが異なる場合には、例えばルータをデータダイオード装置14と内部ネットワーク16との間に接続し、通信を可能にするが、後述する中継部81にルータの機能を持たせてもよい。さらに、メモリカード装着部62にメモリカード62aを装着した状態にする。
【0082】
なお、外部コンピュータ11や内部コンピュータ12に相当する設定用のコンピュータをコネクタ66、76に接続してもよい。この場合には、外部コンピュータ11や内部コンピュータ12と同じIPアドレスを設定用のコンピュータに付与しておくと、第1、第2参照テーブルT1、T2の送信元IPアドレス、宛先IPアドレスの修正が不要になる。設定用のコンピュータを用いる態様は、設定モード時に内部コンピュータ12に対する不正なアクセスを防止できるので好ましい。
【0083】
図8に示すように、モード選択部68を操作して設定モードを選択し、設定モードでデータダイオード装置14を起動する(ステップS1)。モード選択部68が設定モードとなることに連動してモード選択部78でも設定モードが選択される。したがって、第1、第2FPGA60、70は、それぞれ対応する構成メモリ61、71から設定用構成情報61b、71bをロードする(ステップS2)。
【0084】
設定用構成情報61b、71bのロードにより、図9に示すように、第1FPGA60には、その内部に情報取得部80と、中継部81と、中継部81を介してETH−PHYチップ31aを通信用配線L0に接続する内部通信用配線L1とが形成される。また、第2FPGA70には、その内部に通信用配線L0をETH−PHYチップ41aに接続する内部通信用配線L2が形成される。中継部81は、ETH−PHYチップ31aとETH−PHYチップ41aの一方が受信したパケットを他方に中継する。これにより、コネクタ66とコネクタ76との間でパケットを伝送できるパケット伝送路Lが形成される。すなわち、外部ネットワーク15側からのパケットを内部ネットワーク16側に送るパケット伝送路Lが有効化される。なお、パケット伝送路Lは、内部ネットワーク16側からのパケットを外部ネットワーク15側にも伝送できる双方向のものであるが、設定モードでも一方向伝送路S(図7参照)を形成して、内部ネットワーク16側から外部ネットワーク15側へのパケットの伝送に一方向伝送路Sを用いてもよい。
【0085】
情報取得部80は、パケット伝送路Lのうち、ETH−PHYチップ31aからETH−PHYチップ41aに向けパケットを送信する通信線路に接続されており、外部ネットワーク15から内部ネットワーク16に向けて送信されるパケットをキャプチャする。この情報取得部80は、キャプチャしたパケットのうち抽出条件を満たすパケットを抽出し、抽出したパケットから送信元IPアドレス、宛先IPアドレス、宛先ポート番号、アプリケーションデータをパケット登録情報として取得し、これに宛先ポート番号、インターバル時間を付与したものを信号線番号に対応させてメモリカード62aに書き込むことによって、第1参照テーブルT1を作成する。抽出条件としては、例えば、アプリケーションデータがTCPデータ部に格納されていることが情報取得部80に設定されている。
【0086】
設定モードでのデータダイオード装置14の起動完了後、外部コンピュータ11に対してプロセスデータを取得するための操作を行い、その外部コンピュータ11から要求パケットを内部コンピュータ12に送信する(ステップS3)。このときに操作する外部コンピュータ11と、取得しようとするプロセスデータと、プロセスデータの取得先の内部コンピュータ12との組み合わせは、中継を許可する組み合わせで行う。この操作により、外部コンピュータ11から宛先IPアドレス、送信元IPアドレス及び要求メッセージの中継させる組み合わせを含み、かつ実際に使用される宛先ポート番号が付与された要求パケットが中継部81を含むパケット伝送路Lを介して内部コンピュータ12に送られる。
【0087】
内部コンピュータ12は、上記要求パケットを受信すると、プロセスデータを格納した応答パケットを要求パケットの送信元である外部コンピュータ11に送る。応答パケットは、要求パケットと逆経路で外部コンピュータ11に送られて受信される。このようにして、外部コンピュータ11と内部コンピュータ12との間でパケットが送受信される。なお、外部コンピュータ11と内部コンピュータ12との間でパケットの送受信されるときには、例えばARPやコネクションを確立するためのパケット等も送受信される。
【0088】
上記のように外部コンピュータ11と内部コンピュータ12との間で送受信されるパケットのうち、外部ネットワーク15側から内部ネットワーク16側に送られるパケットが情報取得部80でキャプチャされる。そして、情報取得部80は、キャプチャしたパケットのうち上記抽出条件を満たすパケットを抽出し、抽出したパケットから送信元IPアドレス、宛先IPアドレス、宛先ポート番号、アプリケーションデータをパケット登録情報として取得する(ステップS4)。これにより、ARPのパケット、アプリケーションデータが格納されていないSYNパケットやACKパケットが除外されて、要求メッセージを格納した要求パケットの送信元IPアドレス、宛先IPアドレス、宛先ポート番号及びアプリケーションデータがパケット登録情報として取得される。要求パケット以外のパケットからパケット登録情報が取得されることがあるが、このような第1パケット登録情報は、第1参照テーブルT1の作成後、第1参照テーブルT1の内容を確認して手動で削除すればよい。
【0089】
情報取得部80によって、取得したパケット登録情報にユニークな送信元ポート番号と、インターバル時間とが加えられた登録用のパケット登録情報が生成され、そのパケット登録情報が信号線番号に対応させてメモリカード62aに書き込まれる。これにより、第1参照テーブルT1に信号線番号に対応させた第1パケット登録情報が登録される(ステップS5)。
【0090】
第1パケット登録情報を登録すべき全ての要求パケットについての送信が完了していない場合には(ステップS6でNO)、再び外部コンピュータ11に対してプロセスデータを取得するための操作を行って、要求パケットを内部コンピュータ12に送信する(ステップS3)。このようにして、要求パケットの送信を繰り返し、同様な手順で得られるパケット登録情報を第1参照テーブルT1に順次登録する(ステップS4,S5)。
【0091】
全ての要求パケットの送信が完了したならば(ステップS6でYES)、データダイオード装置14をいったん停止させてから、メモリカード装着部62から取り外したメモリカード62aと、メモリカード72aとをデータコピー装置(図示せず)にセットして、第1参照テーブルT1のデータをメモリカード72aに複写する。これにより、メモリカード72aに第2参照テーブルT2を作成する(ステップS7)。この後、メモリカード62a、72aをメモリカード装着部62、72にそれぞれ装着する。なお、データコピー装置としては、例えばパーソナルコンピュータ等を用いることができる。また、情報取得部80によって作成された第1参照テーブルT1の内容を手動で編集してもよい。
【0092】
メモリカード62a、72aの装着後、モード選択部68を操作して通常モードを選択する(ステップS8)。この操作により、モード選択部78も通常モードを選択した状態になる。この後に、データダイオード装置14を再び起動する。通常モードが選択されているため、第1、第2FPGA60、70は、通常構成情報をそれぞれロードする(ステップS9)。通常構成情報がロードされることで、第1FPGA60の内部に第1通信部31、第1制御部33、受信部34が形成されて、この第1FPGA60と周辺の回路とによって、第1ユニット21が構成される。また、第2FPGA70の内部に第2通信部41、第2制御部43、送信部44が形成されて、第2FPGA70と周辺の回路とによって第2ユニット22が構成される。これ以降、データダイオード装置14は、通常モードで動作する。
【0093】
ところで、要求メッセージの違いやIPアドレスの違いに応じて第1、第2参照テーブルT1、T2のレコードを作成する必要がある。しかしながら、上記のように設定モードを用いれば、第1、第2参照テーブルT1、T2の各レコードの作成は簡単であり、接続するシステムに応じたデータダイオード装置14の設定が容易になる。
【0094】
上記抽出条件は、それに限定されるものではなく、種々の条件を設定することができる。例えば、宛先ポート番号や、宛先IPアドレス、送信元IPアドレス等を抽出条件に用いることもできる。また、複数の条件を組み合わせて抽出条件としてもよい。情報取得部80を第2FPGA70に形成して第2参照テーブルT2を作成してから、この第2参照テーブルT2をメモリカード62aに複写することで第1参照テーブルT1を作成してもよい。第1、第2FPGA60、70の両方に情報取得部80それぞれを形成して、対応するメモリカードに第1、第2参照テーブルT1、T2をそれぞれ作成してもよい。
【0095】
さらに、上記各実施形態では、プロセスデータを取得する場合について説明したが、取得するデータはこれに限るものではない。また、データダイオード装置14は、例えばプラントの機器の動作や内部コンピュータ12自体の動作を制御するコマンドやデータを内部コンピュータ12に送る場合にも利用できる。
【0096】
上記各実施形態では、第1、第2参照テーブルT1、T2のパケット登録情報の宛先IPアドレスを個々の内部コンピュータ12のIPアドレス(ユニキャストアドレス)としているが、これに限定するものではない。パケット登録情報の宛先IPアドレスとして、例えばマルチキャストアドレスを用いることで、複数の内部コンピュータ12に同時にパケットを送信できるようにしてもよい。
【0097】
上記各実施形態では、送信元を特定する送信元情報として送信元IPアドレスを、また宛先を特定する宛先情報として宛先IPアドレスを用いているが、送信元情報、宛先情報は、これらに限定されるものではなく、通信のプロトコルに応じた情報を用いればよい。また、パケット登録情報として、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号及びアプリケーションデータで構成したが、それらに限定されるものではなく、通信のプロトコルに応じた情報で構成すればよい。
【符号の説明】
【0098】
11、12 コンピュータ
14 特定パケット中継機能付きデータダイオード装置
15、16 ネットワーク
21、22 ユニット
23 信号線部
31、41 通信部
33、43 制御部
53 パケット中継部
60、70 FPGA
S 一方向伝送路
T1、T2 参照テーブル
【要約】
【課題】簡易な構成で保護されたネットワークから任意のタイミングでデータを得ることができる特定パケット中継機能付きデータダイオード装置及びその設定方法を提供する。
【解決手段】外部ネットワークと内部ネットワークとの間に特定パケット中継機能付きデータダイオード装置14が接続されている。特定パケット中継機能付きデータダイオード装置14は、信号線Qで接続された第1ユニット21と第2ユニット22とを有している、外部ネットワーク15に接続された第1ユニット21は、複数のパケット登録情報が信号線Qに対応させて第1参照テーブルT1に登録されている。内部ネットワーク16に接続された第2ユニット22は、第1参照テーブルT1と同じ内容の第2参照テーブルT2を有している。第1ユニット21が受信したパケットに含まれる送信元IPアドレス、宛先IPアドレス及びアプリケーションデータを含むパケット登録情報に対応した信号線をアクティブにすることによって、第2ユニット22にパケットの内容と内部ネットワーク16に送信するパケットを受信したことを伝達する。第2ユニット22は、パケット登録情報に基づいたパケットを生成して第2ネットワークに送出する。特定パケット中継機能付きデータダイオード装置14は、一方向にデータを伝送する一方向伝送路Sを用いて内部コンピュータ12からのパケットを外部コンピュータ11に中継する。
【選択図】図2
図1
図2
図3
図4
図5
図6
図7
図8
図9