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

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

▶ アー・ベー・ベー・パワー・グリッズ・スウィツァーランド・アクチェンゲゼルシャフトの特許一覧

特許7078633ネットワーク内のデータパケットの相対的なタイミングと順序を保持するための方法および装置
<>
  • 特許-ネットワーク内のデータパケットの相対的なタイミングと順序を保持するための方法および装置 図1
  • 特許-ネットワーク内のデータパケットの相対的なタイミングと順序を保持するための方法および装置 図2
  • 特許-ネットワーク内のデータパケットの相対的なタイミングと順序を保持するための方法および装置 図3
  • 特許-ネットワーク内のデータパケットの相対的なタイミングと順序を保持するための方法および装置 図4
  • 特許-ネットワーク内のデータパケットの相対的なタイミングと順序を保持するための方法および装置 図5
  • 特許-ネットワーク内のデータパケットの相対的なタイミングと順序を保持するための方法および装置 図6
  • 特許-ネットワーク内のデータパケットの相対的なタイミングと順序を保持するための方法および装置 図7
  • 特許-ネットワーク内のデータパケットの相対的なタイミングと順序を保持するための方法および装置 図8
  • 特許-ネットワーク内のデータパケットの相対的なタイミングと順序を保持するための方法および装置 図9
  • 特許-ネットワーク内のデータパケットの相対的なタイミングと順序を保持するための方法および装置 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-23
(45)【発行日】2022-05-31
(54)【発明の名称】ネットワーク内のデータパケットの相対的なタイミングと順序を保持するための方法および装置
(51)【国際特許分類】
   H04L 47/34 20220101AFI20220524BHJP
【FI】
H04L47/34
【請求項の数】 28
(21)【出願番号】P 2019548693
(86)(22)【出願日】2018-03-07
(65)【公表番号】
(43)【公表日】2020-04-02
(86)【国際出願番号】 EP2018055622
(87)【国際公開番号】W WO2018162564
(87)【国際公開日】2018-09-13
【審査請求日】2020-10-08
(31)【優先権主張番号】62/468,808
(32)【優先日】2017-03-08
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/468,845
(32)【優先日】2017-03-08
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/610,164
(32)【優先日】2017-12-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519431812
【氏名又は名称】ヒタチ・エナジー・スウィツァーランド・アクチェンゲゼルシャフト
【氏名又は名称原語表記】HITACHI ENERGY SWITZERLAND AG
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】シュパーン,ボルフガンク
(72)【発明者】
【氏名】ビンツ,バルター
【審査官】野元 久道
(56)【参考文献】
【文献】特開2006-005673(JP,A)
【文献】特開2006-245733(JP,A)
【文献】特開2001-057582(JP,A)
【文献】特開2003-283539(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 47/34
(57)【特許請求の範囲】
【請求項1】
パケットネットワークにおいて送信されるデータパケットの相対的なタイミングと順序を保持するための方法であって、前記パケットネットワークは、パケット処理を実行するためのパケットエンジン(12,22,32;50)を含み、前記パケットエンジン(12,22,32;50)とは別に、暗号化および/または認証処理を実行するための暗号エンジン(14,24,34;60)が提供され、前記方法は、
パケットエンジン(12,22,32;50)が、データフローにダミーパケット(59)を挿入することによって、データトラフィックのプリシェーピングを実行するステップと、
前記パケットエンジン(12,22,32;50)が、前記プリシェーピングされたデータトラフィックを暗号エンジン(14,24,34;60)に提供するステップとを含む、方法。
【請求項2】
前記パケットエンジン(12,22,32;50)が、繰り返し間隔で、前記データフローに前記ダミーパケット(59)を挿入する、請求項1に記載の方法。
【請求項3】
前記暗号エンジン(14,24,34;60)が、前記ダミーパケット(59)の少なくとも一部を使用して、管理チャネルの送信を行うステップをさらに含む、請求項1または2に記載の方法。
【請求項4】
前記暗号エンジン(14,24,34;60)は、前記ダミーパケット(59)の少なくとも一部を使用して、暗号化キーの交換を行う、請求項3に記載の方法。
【請求項5】
前記暗号エンジン(14,24,34;60)は、前記データトラフィックに追加のパケットを挿入することなく、前記暗号化および/または認証処理を実行する、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記ダミーパケット(59)を前記データトラフィックに挿入することは、起動または新たなユーザ入力に応じて実行される以下のステップ、すなわち、
パケットエンジン(12,22,32;50)に接続されたまたは前記パケットエンジン(12,22,32;50)によって構成された中央処理装置(51)上で実行されるコンピュータ可読命令コードを用いて、メモリ画像を生成し、前記メモリ画像をテンプレートとしてメモリ(54)に書き込むステップと、
前記コンピュータ可読命令コードを用いて、繰り返し間隔で前記メモリ(54)から前記画像を取り出すように、前記パケットエンジンのパケットスイッチ(52)を設定するステップと、
前記パケットスイッチ(52)を用いて、前記繰り返し間隔で前記メモリ(54)から前記画像を取り出し、前記画像を前記データフローに挿入するステップとを含み、前記画像は、前記コンピュータ可読命令コードによって構成されたポートにおいて前記データフローに挿入される、請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記ダミーパケット(59)は、空セクションのシグナリング通信チャネル(SCC)パケットを含む、請求項1~6のいずれか1項に記載の方法。
【請求項8】
前記パケットエンジン(12,22,32;50)が、暗号化および/または認証されたデータフローから抜けたSCCパケットを削除するステップをさらに含む、請求項7に記載の方法。
【請求項9】
前記データトラフィックをプリシェーピングするステップは、前記パケットエンジン(12,22,32;50)の出力ポート(53)においてパケット間ギャップを拡大することをさらに含む、請求項1~8のいずれか1項に記載の方法。
【請求項10】
前記パケット間ギャップを拡大することは、前記データフローに追加のバイトを挿入することおよび/または前記パケットエンジン(12,22,32;50)からのデータパケットの送信を遅延させることを含む、請求項9に記載の方法。
【請求項11】
前記暗号エンジン(14,24,34;60)は、前記暗号化および/または認証処理を実行するときに、データパケットを前記パケット間ギャップに成長させる、請求項9または10に記載の方法。
【請求項12】
前記拡大されたパケット間ギャップのサイズは、設定可能である、請求項~11のいずれか1項に記載の方法。
【請求項13】
前記拡大されたパケット間ギャップのサイズを決定するステップをさらに含み、
前記拡大されたパケット間ギャップのサイズを決定するステップは、
前記パケットエンジンのインターフェイスから開始する前記パケットネットワークの全ての構成経路をトラバースすることと、
前記構成経路のうち、最大のパケット間ギャップを必要とする1つの構成経路を用いて、前記インターフェイスの前記拡大されたパケット間ギャップを決定することと、
中央処理装置(51)がレジスタバイトシーケンスを構築し、前記レジスタバイトシーケンスをパケットエンジン(12,22,32;50)のレジスタに書き込むことによって、前記パケットエンジン(12,22,32;50)からのデータパケットの送信を遅延させるように前記パケットエンジン(12,22,32;50)をトリガすることとを含む、請求項9~12のいずれか1項に記載の方法。
【請求項14】
前記パケットエンジン(12,22,32;50)が、前記パケットエンジン(12,22,32;50)の入力ポートまたは出力ポート(53)でタイムスタンピングを実行するステップをさらに含む、請求項1~13のいずれか1項に記載の方法。
【請求項15】
前記タイムスタンピングは、前記プリシェーピングされた前記データトラフィックが前記暗号エンジン(14,24,34;60)に提供される前に実行される、請求項14に記載の方法。
【請求項16】
前記暗号エンジン(14,24,34;60)は、タイムスタンピングコンテキストの外側で動作し、
前記パケットエンジン(12,22,32;50)は、前記タイムスタンピングコンテキストの内側で動作する、請求項1~15のいずれか1項に記載の方法。
【請求項17】
前記パケットネットワーク(10)は、産業自動化制御システムのネットワークである、請求項1~16のいずれか1項に記載の方法。
【請求項18】
前記パケットネットワーク(10)は、高電圧線の自動化、高速列車の操縦、または航空交通の制御を行うためのパケットネットワークである、請求項1~17のいずれか1項に記載の方法。
【請求項19】
パケットネットワーク内のデータパケットを処理するためのパケットエンジン(12,22,32;50)であって、前記パケットエンジン(12,22,32;50)は、
前記パケットエンジン(50)とは別に提供された暗号エンジン(60)に接続されるように動作するインターフェイス(53)と、
前記インタフェース(53)を介して前記暗号エンジン(60)に出力されるデータトラフィックのプリシェーピングを制御するように動作する少なくとも1つの処理ユニット(51)とを備え、
前記パケットエンジン(12,22,32;50)は、前記プリシェーピングされたデータトラフィックが前記暗号エンジン(14,24,34;60)に提供される前に、ダミーパケット(59)をデータフローに挿入するように動作する、パケットエンジン(12,22,32;50)。
【請求項20】
前記パケットエンジン(12,22,32;50)は、繰り返し間隔で、前記データフローに前記ダミーパケット(59)を挿入するように動作する、請求項19に記載のパケットエンジン(12,22,32;50)。
【請求項21】
前記パケットエンジン(12,22,32;50)は、前記インターフェイスでパケット間ギャップを拡大するように動作する、請求項19または20に記載のパケットエンジン(12,22,32;50)。
【請求項22】
前記パケットエンジン(12,22,32;50)は、前記暗号エンジンが追加のデータパケットを挿入する必要なく、安全な端末間経路を介して送信されるデータパケットの相対的なタイミングと順序を保持するように、前記データトラフィックをプリシェーピングするように動作する、請求項19~21のいずれか1項に記載のパケットエンジン(12,22,32;50)。
【請求項23】
パケットネットワーク(10)において暗号化および/または認証処理を実行するための暗号エンジン(14,24,34;60)であって、
前記暗号エンジン(14,24,34;60)とは別に提供されたパケットエンジン(12,22,32;50)に接続されるように動作するインターフェイスを備え、前記インターフェイスは、前記パケットエンジンから、プリシェーピングされたデータトラフィックを受け取るように動作し、
前記暗号エンジン(14,24,34;60)は、前記パケットネットワーク内の安全な端末間経路を介して送信されるデータパケットの相対的なタイミングと順序を保持するように、暗号化および/または認証処理を実行するように動作する、暗号エンジン。
【請求項24】
前記暗号エンジン(14,24,34;60)は、前記プリシェーピングされたデータトラフィックにデータパケットを追加することなく、前記暗号化および/または認証処理を実行するように動作する、請求項23に記載の暗号エンジン。
【請求項25】
前記暗号エンジン(14,24,34;60)は、連続したデータパケットの間にパケット間ギャップが残るように、前記プリシェーピングされたデータトラフィックに含まれるデータパケットのサイズを大きくすることによって、前記暗号化および/または認証処理を実行するように動作する、請求項23または24に記載の暗号エンジン。
【請求項26】
前記インターフェイス(61)は、前記パケットエンジン(12,22,32;50)からタイムスタンプ付きデータパケットを受け取るように動作する、請求項23~25のいずれか1項に記載の暗号エンジン。
【請求項27】
前記暗号エンジン(14,24,34;60)は、前記プリシェーピングされたデータトラフィックにデータパケットを追加することなく、管理チャネルの送信のために前記プリシェーピングされたデータトラフィックに含まれるダミーパケットの少なくとも一部を使用するように動作する、請求項23~26のいずれか1項に記載の暗号エンジン。
【請求項28】
請求項19~22のいずれか1項に記載のパケットエンジン(12,22,32;50)を含むネットワークカードと、
請求項23~26のいずれか1項に記載の暗号エンジン(14,24,34;60)を含む暗号化カードとを備える、パケットネットワーク用のサブラック。
【発明の詳細な説明】
【技術分野】
【0001】
発明の分野
本発明は、パケットネットワークにおけるデータ送信に関する。特に、本発明は、例えば、暗号化および/または認証を使用して安全な端末間経路または安全なセグメントを提供するパケットネットワークにおいて、データパケットを送信するための方法および装置に関する。本発明は、産業自動化制御システム、特に電力設備を監視および制御するためのネットワークを含むがこれらに限定されないミッションクリティカルな応用に適した方法および装置に関する。本発明は、特に、暗号化および/または認証処理を実行する暗号エンジン内のパケットの相対的なタイミングおよび順序および/または安全な端末間経路に沿って送信されるパケットの相対的なタイミングおよび順序を保持するための方法および装置に関する。
【背景技術】
【0002】
発明の背景
パケットネットワークにおいてデータ送信の完全性および信憑性を保証するために、情報を暗号化または認証する必要がある。その結果、データストリーム内のパケットの大部分は、暗号化および/または認証された対応物によって置換される。従来に、暗号化および/または認証プロトコルは、パケットのサイズを増加または減少すると共に、ストリームにパケットを追加/削除する必要がある。メッシュネットワークの中間ノードで行われた処理済みサブストリームおよび未処理サブストリームの必要な並列処理を組み合わせると、暗号化および/または認証によるストリーム特性の改変は、端末間遅延の大幅な変動およびパケット順序の改変をもたらす。
【0003】
暗号化および/または認証がワイヤ速度で実行される場合に一定の微小遅延を挿入しても、パケットの挿入およびパケットサイズの拡大は、非決定的な遅延、ジッタおよび遅延の変動を加える可能性がある。
【0004】
端末間遅延の大幅な変動およびパケット順序の改変は、一般的に、ミッションクリティカル応用に使用される決定的な制御アルゴリズムには許容されない。端末間遅延の大幅な変動およびパケット順序の改変に関連する問題に対処する1つの手法は、送信の直前に、すなわち、暗号化および/または認証処理を実行した後に、クリティカルパケットのタイムスタンピングを行うことである。この手法は、さまざまな理由で望ましくない。例えば、この手法は、複雑さを追加する。また、この手法は、暗号化および/または認証処理を実行するための装置をタイムスタンピングコンテキストに配置する必要、すなわち、装置がタイムスタンピングプロトコルを認識して使用する必要がある。
【発明の概要】
【課題を解決するための手段】
【0005】
概要
本発明の目的は、パケットネットワークにおいてデータ送信を行うための方法、装置およびシステムを改良することである。特に、本発明の目的は、非決定的な遅延、ジッタおよび遅延の変動に関連する問題を軽減しながら、パケットネットワークにおいて暗号化および/または認証データの送信を提供する方法、装置およびシステムを改良することである。また、本発明の目的は、暗号化および/または認証処理をデータパケットに適用した後にタイムスタンピングを実行する必要なく、パケットの順序を保持する方法、装置およびシステムを改良することである。
【0006】
例示的な実施形態によれば、提供された方法および装置は、中間ノードにおいてデータパケットをタイムスタンピングして並列処理ストリームに分ける前に、パケットエンジンにおいてダミーパケットを追加するおよび/またはパケット間ギャップを拡大することによって、データトラフィックのプリシェーピングを実行する。
【0007】
データトラフィックのプリシェーピングによって、暗号化および/または認証処理を実行する暗号エンジンにおいて追加のデータパケットを追加する必要はない。暗号エンジンによって拡大されたデータパケットは、空のパケット間ギャップのみに成長する。したがって、中間ノードにおいて「処理される」サブストリームと「処理されていない」サブストリームの分離および合併は、自然にインターリーブする。パケットのタイミングおよび順序は、保持される。
【0008】
開示された方法および装置が(a)暗号化および/または認証処理を実行する暗号エンジンによって、新たなデータパケットを挿入する必要および(b)暗号化および/または認証処理の後に暗号エンジンがタイムスタンピングを実行する必要がなく、データパケットの相対的なタイミングおよび順序を保持することができるため、例示的な実施形態は、複雑なメッシュネットワークを介してデータパケットを送信しても、暗号化および/または認証データパケット送信を行うためのワイヤのような決定論を提供する。
【0009】
本発明の一態様によれば、パケットネットワークにおいて送信されるデータパケットの相対的なタイミングおよび順序を保存するための方法が提供される。パケットネットワークは、パケット処理を実行するパケットエンジンを備え、パケットエンジンとは別に、暗号化および/または認証処理を実行するための暗号エンジンが提供される。この方法は、パケットエンジンが、ダミーパケットをデータフローに挿入することによって、データトラフィックのプリシェーピングを実行するステップを含む。この方法は、パケットエンジンが、プリシェーピングされたデータトラフィックを暗号エンジンに提供するステップを含む。
【0010】
暗号エンジンは、パケットエンジンから物理的に分離されてもよく、イーサネット(登録商標)ケーブルまたは光ケーブルを介してパケットエンジンに接続されてもよい。暗号エンジンとパケットエンジンを物理的に分離することによって、安全性を向上することができる。
【0011】
「暗号エンジン」という用語は、本明細書に使用された場合、暗号化/復号および/または認証処理を実行するように構成された装置を指す。必要に応じて、暗号エンジンは、暗号化/復号および/または認証処理を実行するための専用コンポーネント、例えば物理乱数発生器を備えることができる。
【0012】
「ダミーパケット」という用語は、本明細書に使用された場合、ペイロードデータを含まず、暗号エンジンによって制御情報で充填されたパケットを指す。
【0013】
方法は、暗号エンジンがダミーパケットの少なくとも一部を使用して、管理チャネルの送信を行うステップをさらに含むことができる。暗号エンジンは、暗号化および/または認証に関連する制御情報をダミーパケットの少なくとも一部に挿入することができる。ダミーパケットによって、暗号エンジンによる追加パケットの作成が不要になる。
【0014】
暗号エンジンは、ダミーパケットを使用して、暗号化キーの交換を行うことができる。
暗号エンジンは、データトラフィックに追加のパケットを挿入することなく、暗号化および/または認証処理を実行することができる。
【0015】
ダミーパケットをデータトラフィックに挿入することは、以下のステップ、すなわち、パケットエンジンに接続されたまたはパケットエンジンによって構成された中央処理装置で実行されるコンピュータ可読命令コードを用いて、メモリ画像を生成し、メモリ画像をテンプレートとしてメモリに書き込むステップと、コンピュータ可読命令コードを用いて、繰り返し間隔でメモリから画像を取り出すように、パケットエンジンのパケットスイッチを構成するステップと、パケットスイッチを用いて、繰り返し間隔でメモリから画像を取り出し、画像をデータフローに挿入するステップとを含み、画像は、コンピュータ可読命令コードによって構成されたポートにおいてデータフローに挿入される。これらのステップは、例えば、パケットエンジンの起動に応じてまたは新たなユーザ入力に応じて実行されてもよい。
【0016】
メモリは、パケットスイッチおよび中央処理装置の共有メモリであってもよい。
ダミーパケットは、空セクションのシグナリング通信チャネル(Signaling Communication Channel:SCC)パケットを含んでもよい。
【0017】
この方法は、パケットエンジンが暗号化および/または認証されたデータフローから抜けたSCCパケットを削除するステップをさらに含むことができる。
【0018】
暗号エンジンは、制御情報をダミーパケットに追加することによって制御パケットを生成するときに、追加の外部マルチプロトコルラベルスイッチング(MPLS)ヘッダを追加することができる。外部MPLSヘッダによって、MPLSネットワーク内の中間ノード、例えばパケットスイッチは、汎用関連チャネルラベル(GAL)SCCヘッダを見えなくなる。これによって、終点暗号エンジンが外部MPLSヘッダを剥ぎ取った後のみ、GAL SCCパケットが削除される。端末間MPLSパケットフローは、暗号エンジンによって追加された制御情報とは無関係になる。
【0019】
データトラフィックをプリシェーピングすることは、パケットエンジンの出口ポートにおいてパケット間ギャップを拡大することをさらに含むことができる。
【0020】
パケット間ギャップを拡大することは、データフローに追加のバイトを挿入することおよび/またはパケットエンジンからのデータパケットの送信を遅延させることを含むことができる。
【0021】
暗号エンジンは、暗号化および/または認証処理を実行するときに、データパケットをパケット間ギャップに成長させることができる。暗号エンジンは、ジッタを引き起こしたり、遅延を導入したりおよび暗号エンジンでタイムスタンピングを実行したりすることなく、データパケットをパケット間ギャップにそれぞれ成長させることができる。
【0022】
拡大されたパケット間ギャップのサイズは、設定可能である。
この方法は、拡大されたパケット間ギャップのサイズを決定するステップをさらに含むことができる。暗号エンジンが暗号化および/または認証処理を実行するときに、連続するデータパケットの相対的なタイミングを改変することなく、データパケットをパケット間ギャップのみに成長させるように、拡大されたパケット間ギャップを設定することができる。
【0023】
拡大されたパケット間ギャップのサイズを決定するステップは、パケットエンジンのインターフェイスから開始するパケットネットワークの全ての構成経路をトラバースすることと、構成経路のうち、最大のパケット間ギャップを必要とする1つの構成経路を用いて、インターフェイスの拡大されたパケット間ギャップを決定することと、中央処理装置がレジスタバイトシーケンスを構築し、レジスタバイトシーケンスをパケットエンジンのレジスタに書き込むことによって、パケットエンジンからのデータパケットの送信を遅延させるようにパケットエンジンをトリガすることとを含む。
【0024】
この方法は、パケットエンジンがパケットエンジンの入口ポートまたは出口ポートでタイムスタンピングを実行するステップをさらに含むことができる。
タイムスタンピングは、プリシェーピングされたデータトラフィックが暗号エンジンに提供される前に実行される。
【0025】
この方法において、暗号エンジンは、タイムスタンピングを実行しない。
この方法において、暗号エンジンは、タイムスタンピング情報を使用することなく、動作することができる。
【0026】
この方法において、暗号エンジンは、高精度時間プロトコル(PTP)などのタイムスタンピングプロトコルを使用することなく、動作することができる。
【0027】
暗号エンジンは、パケットネットワークのタイムスタンピングコンテキストの外側で動作することができる。
【0028】
パケットエンジンは、パケットネットワークのタイムスタンピングコンテキストの内側で動作することができる。
【0029】
パケットネットワークは、MPLSネットワークまたはMPLSトランスポートプロファイル(MPLS-TP)ネットワークであってもよい。
【0030】
パケットネットワークは、産業自動化制御システム(IACS)のネットワークであってもよい。
【0031】
パケットネットワークは、高電圧線の自動化、高速列車の操縦、または航空交通の制御を行うためのパケットネットワークであってもよい。
【0032】
パケットネットワークは、時限パケットネットワークであってもよい。
一実施形態に従って、パケットネットワーク内のデータパケットを処理するためのパケットエンジンは、パケットエンジンとは別に提供された暗号エンジンに接続されるように動作するインターフェイスと、インタフェースを介して暗号エンジンに出力されるデータトラフィックのプリシェーピングを制御するように動作する少なくとも1つの処理ユニットとを備え、パケットエンジンは、プリシェーピングされたデータトラフィックが暗号エンジンに提供される前に、ダミーパケットをデータフローに挿入するように動作する。
【0033】
パケットエンジンは、インターフェイスでパケット間ギャップを拡大するように動作することができる。
【0034】
パケットエンジンは、追加のバイトをデータフローに挿入することおよび/またはパケットエンジンからのデータパケットの送信を遅延させることによって、パケット間ギャップを拡大するように動作することができる。
【0035】
パケットエンジンは、拡大されたパケット間ギャップのサイズを設定できるように動作することができる。拡大されたパケット間ギャップは、暗号エンジンが暗号化および/または認証処理を実行するときに、連続するデータパケットの相対的なタイミングを改変することなく、データパケットをパケット間ギャップのみに成長させるように設定されてもよい。
【0036】
パケットエンジンまたはパケットエンジンに接続された制御装置は、拡大されたパケット間ギャップのサイズを決定するように動作することができる。この目的のために、パケットエンジンまたは制御装置は、パケットエンジンのインターフェイスから開始するパケットネットワーク内の全ての構成経路をトラバースし、構成経路のうち、最大のパケット間ギャップを必要とする1つの構成経路を用いて、インターフェイスの拡大されたパケット間ギャップを設定するように動作することができる。パケットエンジンの中央処理装置は、レジスタバイトシーケンスを構築し、レジスタバイトシーケンスをパケットエンジンのレジスタに書き込むことによって、パケットエンジンからのデータパケットの送信を遅延させるようにパケットエンジンをトリガするように動作することができる。
【0037】
パケットエンジンは、暗号エンジンが追加のデータパケットを挿入する必要なく、安全な端末間経路を介して送信されるデータパケットの相対的なタイミングと順序を保持するように、データトラフィックをプリシェーピングするように動作することができる。
【0038】
パケットエンジンは、パケットエンジンの中央処理装置で実行されるコンピュータ可読命令コードを用いて、メモリ画像を生成し、メモリ画像をテンプレートとしてメモリに書き込むように動作することができる。コンピュータ可読命令コードは、繰り返し間隔でメモリから画像を取り出すように、パケットエンジンのパケットスイッチを構成するように動作することができる。パケットスイッチは、繰り返し間隔でメモリから画像を取り出し、画像をデータフローに挿入するように動作することができ、画像は、コンピュータ可読命令コードによって構成されたポートにおいてデータフローに挿入される。これらの処理は、例えば、パケットエンジンの起動に応じてまたは新たなユーザ入力に応じて実行することができる。
【0039】
パケットエンジンは、暗号エンジンから物理的に分離されてもよく、イーサネット(登録商標)ケーブルまたは光ケーブルを介してパケットエンジンに接続されてもよい。暗号エンジンとパケットエンジンを物理的に分離することによって、安全性を向上することができる。
【0040】
ダミーパケットは、空セクションのシグナリング通信チャネル(Signaling Communication Channel:SCC)パケットを含んでもよい。
【0041】
パケットエンジンは、暗号化および/または認証されたデータフローから抜けたSCCパケットを削除するように動作することができる。
【0042】
パケットエンジンは、パケットエンジンの入力ポートまたは出力ポートでタイムスタンピングを実行するように動作することができる。
【0043】
パケットエンジンは、プリシェーピングされたデータトラフィックが暗号エンジンに提供される前にタイムスタンピングを実行するように動作することができる。
【0044】
パケットエンジンは、高精度時間プロトコル(PTP)に従って、入力/出力ポートでタイムスタンピングを実行するように動作することができる。タイムスタンピングの適切なタイミング精度を可能にするために、パルス毎秒およびクロック信号を、入力/出力ポートでタイムスタンピングを実行するためのチップに提供することができる。また、1秒ごとにソフトウェアメッセージを介して絶対時間情報を内部タイムマスターから各ポートチップに配信することができる。出力ポートのチップは、着信/発信パケットに絶対の送出/入来時間を追加してもよく、パケットがノードを通過するときに既存の入来時間情報に滞留時間を追加してもよい。
【0045】
パケットネットワークにおいて暗号化および/または認証処理を実行するための暗号エンジンは、暗号エンジンとは別に提供されたパケットエンジンに接続されるように動作するインターフェイスを備え、インターフェイスは、パケットエンジンから、プリシェーピングされたデータトラフィックを受け取るように動作する。暗号エンジンは、パケットネットワーク内の安全な端末間経路を介して送信されるデータパケットの相対的なタイミングと順序を保持するように、暗号化および/または認証処理を実行するように動作する。
【0046】
暗号エンジンは、パケットエンジンから物理的に分離されてもよく、イーサネット(登録商標)ケーブルまたは光ケーブルを介してパケットエンジンに接続されてもよい。暗号エンジンとパケットエンジンを物理的に分離することによって、安全性を向上することができる。
【0047】
暗号エンジンは、プリシェーピングされたデータトラフィックにデータパケットを追加することなく、暗号化および/または認証処理を実行するように動作することができる。
【0048】
暗号エンジンは、連続したデータパケット間にパケット間ギャップが残るように、プリシェーピングされたデータトラフィックに含まれるデータパケットのサイズを大きくすることによって、暗号化および/または認証処理を実行するように動作することができる。
【0049】
暗号エンジンは、暗号エンジンは、ジッタを引き起こしたり、遅延を導入したりおよび暗号エンジンでタイムスタンピングを実行したりすることなく、データパケットをパケット間ギャップに成長させることができる。
【0050】
インターフェイスは、パケットエンジンからタイムスタンプ付きデータパケットを受け取るように動作することができる。
【0051】
暗号エンジンは、ダミーパケットの少なくとも一部を使用して管理チャネルの送信を行うように動作することができる。暗号エンジンは、暗号化および/または認証に関連する制御情報をダミーパケットの少なくとも一部に挿入するように動作することができる。ダミーパケットによって、暗号エンジンによる追加パケットの作成が不要になる。
【0052】
暗号エンジンは、ダミーパケットを使用して、暗号化キーの交換を行うように動作することができる。
【0053】
暗号エンジンは、データトラフィックに追加のパケットを挿入することなく、暗号化および/または認証処理を実行するように動作可能である。
【0054】
暗号エンジンは、制御情報をダミーパケットに追加することによって制御パケットを生成するときに、追加の外部マルチプロトコルラベルスイッチング(MPLS)ヘッダを追加することができる。外部MPLSヘッダによって、MPLSネットワーク内の中間ノード、例えばパケットスイッチは、汎用関連チャネルラベル(GAL)SCCヘッダを見えなくなる。これによって、終点暗号エンジンが外部MPLSヘッダを剥ぎ取った後のみ、GAL SCCパケットが削除される。端末間MPLSパケットフローは、暗号エンジンによって追加された制御情報とは無関係になる。
【0055】
一実施形態に係るパケットネットワーク用のサブラックは、一実施形態に係るパケットエンジンを含むネットワークカードと、実施形態に係る暗号エンジンを含む暗号化カードとを備える。
【0056】
一実施形態に係るパケットネットワークは、一実施形態に係る複数のパケットエンジンを備え、各パケットエンジンは、実施形態に関連する暗号エンジンに接続される。
【0057】
パケットネットワークは、MPLSネットワークまたはMPLSトランスポートプロファイル(MPLS-TP)ネットワークであってもよい。
【0058】
パケットネットワークは、産業自動化制御システム(IACS)のネットワークであってもよい。
【0059】
パケットネットワークは、高電圧線の自動化、高速列車の操縦、または航空交通の制御を行うためのパケットネットワークであってもよい。
【0060】
複雑なメッシュパケットネットワークトポロジを介して暗号化および/または認証データを送信するための方法、装置およびシステムは、暗号エンジンにおいてパケットの相対的なタイミングおよび順序を保持する。パケットがPTPに対応するパケットエンジンから離れる前に、ダミーパケットを追加しおよび/またはパケット間ギャップを拡大することによって、パケットエンジンにおいてトラフィックのプリシェーピングを実行する。よって、これらの処理を暗号エンジンで実行する必要がなく、パケットストリーム内部のパケットの順序およびタイミングを保持することができる。
【0061】
本発明の実施形態は、ミッションクリティカルなパケットネットワーク、例えば高電圧線の自動化、高速列車の操縦、または航空交通の制御に利用されてもよいが、これらに限定されない。
【0062】
本発明の主題は、添付の図面に示される好ましい例示的な実施形態を参照してより詳細に説明される。
【図面の簡単な説明】
【0063】
図1】一実施形態に係るパケットエンジンおよび暗号エンジンを含むパケットネットワークを示す概略図である。
図2】一実施形態に係るパケットエンジンおよび暗号エンジンを示すブロック図である。
図3】一実施形態に係るパケットエンジンの動作を示す図である。
図4】一実施形態に係るパケットエンジンおよび暗号エンジンの動作を示す図である。
図5】暗号化処理を実行する前および後のデータパケットを示す図である。
図6】暗号化および認証処理を実行する前および後のデータパケットを示す図である。
図7】一実施形態に係るパケットエンジンおよび暗号エンジンによって使用され得る汎用関連チャネルラベル(GAL)シグナリング通信チャネル(SCC)パケットを示す図である。
図8】一実施形態に係る方法においてパケットエンジンによって実行されるプロセスを示すフローチャートである。
図9】一実施形態に係る方法において暗号エンジンによって実行されるプロセスを示すフローチャートである。
図10】一実施形態に係る方法において実行され得るパケット間ギャップを設定するプロセスを示すフローチャートである。
【発明を実施するための形態】
【0064】
実施形態の詳細な説明
本発明の例示的な実施形態は、図面を参照して説明される。図面において、同一または類似の参照符号は、同一または類似の要素を示す。いくつかの実施形態は、マルチプロトコルラベルスイッチング(MPLS)ネットワークまたはMPLS-トランスポートプロファイル(MPLS-TP)ネットワークなどの例示的なネットワークの文脈で説明されるが、以下で詳細に説明される方法および装置は、一般的に、複雑なメッシュパケットネットワークトポロジを介して暗号化データおよび認証データを送信するために使用されてもよい。特に明記しない限り、実施形態の特徴を互いに組み合わせることができる。
【0065】
「パケット」という用語は、本明細書に使用された場合、パケット化されたデータ構造を指す。「パケット」という用語は、本明細書に使用された場合、フレームを含むことができる。パケットは、フレームであってもよく、フレームを含んでもよい。
【0066】
「パケット間ギャップ」という用語は、本明細書に使用された場合、フレーム間ギャップと同義であり、物理層上の連続するパケットまたはフレーム間の間隔を指すことができる。
【0067】
「暗号エンジン」という用語は、本明細書に使用された場合、暗号化/復号および/または認証処理を実行するように動作する装置を指す。必要に応じて、暗号エンジンは、暗号化/復号および/または認証処理を実行するための専用コンポーネント、例えば物理乱数発生器を備えることができる。
【0068】
本明細書に記載された「暗号エンジン」は、暗号エンジンインスタンスとして実装されてもよい。暗号エンジンの1つのハードウェア実装は、複数の暗号エンジンインスタンス、例えば、ポートおよび方向ごとのインスタンスを提供することができる。しかしながら、いずれの場合、暗号エンジンのハードウェアは、対応するパケットエンジンから分離されてもよい。
【0069】
「パケットエンジン」という用語は、本明細書に使用された場合、パケット処理を実行するように動作する装置を指す。パケットエンジンは、パケットスイッチを含むことができ、ダミーパケットをデータパケットフローに挿入することができる。パケットエンジンは、時間認識型であり、例えばパケットエンジンの出力ポートまたは入力ポートでタイムスタンピングを実行するように動作することができる。
【0070】
ある実体が他の2つの実体の「間に」配置される(例えば、暗号エンジンがパケットエンジンと通過ノードとの間に配置される)という記載は、本明細書に使用された場合、データフロー経路に沿った配置、すなわち、パケットがこれらの実体を通過するシーケンスを指す。
【0071】
図1は、パケットネットワーク10を示す概略図である。パケットネットワーク10は、時限パケットネットワークであってもよい。パケットネットワーク10は、複数のノード11、21、31を有してもよい。複数のノード11、21、31は、それぞれのMPLS-TPネットワーク16、17、18を介して通信可能に連結されてもよい。複数のノード11、21、31は、送信経路の終点ノードおよび中間ノード(またはホップ)を含むことができる。パケットネットワーク10は、時限ネットワークであってもよく、ノード11、21、31のパケットエンジンは、タイムスタンピングを実行する。
【0072】
ノード11、21、31の各々は、サブラックを含むことができる。サブラックは、以下でさらに詳しく説明するように、パケットエンジンを含むネットワークカードと、暗号エンジンを含む別個の暗号化カードとを含むことができる。
【0073】
ノード11、21、31は、それぞれ、パケットエンジン12、22、32、および関連するパケットエンジン12、22、32から物理的に分離された暗号エンジン14、24、34を含むことができる。各暗号エンジン14、24、34は、例えば、イーサネット(登録商標)ケーブルまたは光ケーブルを介して、関連するパケットエンジン12、22、32に直接に連結されてもよい。イーサネットケーブルまたは光ケーブルの両端は、パケットエンジン12、22、32および暗号エンジン14、24、34に直接に取り付けることができる。
【0074】
各々のパケットエンジン12、22、32は、複数のポート13、23、33を有してもよい。各々の暗号エンジン14、24、34は、複数のポート15、25、35を有してもよい。各々の暗号エンジン14、24、34の入口ポートは、関連するパケットエンジン12、22、32の出口ポートに接続されてもよい。各々の暗号エンジン14、24、34の出口ポートは、関連するパケットエンジン12、22、32の入口ポートに接続されてもよい。各々の暗号エンジン14、24、34は、暗号化されていないリンクを介して、関連するパケットエンジン12、22、23に連結されてもよい。
【0075】
異なる暗号エンジン14、24、34は、暗号化された経路、例えばMPLS-TPネットワークを介して、データトラフィックを送信することができる。
【0076】
各々のパケットエンジン12、22、32は、パケット処理を実行する。パケットエンジン12、22、32は、パケットの転送および切換を実行することができる。全てのパケットのハンドリング、フィルタリングおよびキューイングは、パケットエンジン12、22、32で実行される。
【0077】
暗号エンジン14、24、34は、暗号化および/または認証処理を実行する。理解すべきことは、「暗号化処理」という用語は、本明細書に使用された場合、一般的に、暗号化送信に関連する処理を含み、したがって、安全な端末間経路の受信側終点でまたは安全な端末間経路のセグメントのノードで実行された復号を含み得ることである。
【0078】
各々の暗号エンジン14、24、34は、暗号化/復号および/または認証処理を実行するための専用ハードウェア、例えば物理乱数発生器を備えてもよい。
【0079】
以下でより詳細に説明するように、パケットエンジン12、22、32および暗号エンジン14、24、34は、暗号エンジン14、24、34内のデータパケットの相対的なタイミングおよび順序を保持すると共に、複雑なメッシュパケットネットワークトポロジーを介して暗号化および/または認証データを送信するように動作することができる。この目的のために、パケットエンジン12、22、32は、データパケットが高精度時間プロトコル(PTP)対応のパケットエンジン12、22、32から離れ、PTP非対応の暗号エンジン14、24、34に入る前、例えばダミーパケットを追加することによっておよび/またはパケットエンジン12、22、32内のパケット間ギャップを拡大することによって、トラフィックのプリシェーピングを実行することができる。暗号エンジン14、24、34には、タイムスタンピングおよび追加のデータパケットの挿入を実行する必要がない。暗号エンジン14、24、34を通過するときに、データパケットストリーム内のデータパケットの順序おおよびタイミングが保持される。
【0080】
パケットエンジン12、22、32は、中央制御、例えばMPLS経路管理機能によって制御されてもよい。暗号エンジン14、24、34は、サイバーセキュリティマネージャによって制御されてもよい。セキュリティを強化するために、MPLS経路管理機能およびサイバーセキュリティマネージャは、別々のサーバで実行されてもよい。中央制御は、MPLS経路を構築するように暗号エンジンを構成することができる。各々の暗号エンジン14、24、34は、ネットワーク内経路の端末間暗号化および/または認証を保証することができる。暗号エンジン14、24、34は、ネットワーク内経路のセグメントに沿って暗号化および/または認証を提供するように動作することができる。サイバーセキュリティマネージャは、暗号化されていないチャネルまたは安全なチャネルを介して暗号エンジン14、24、34と通信することができる。
【0081】
作業経路および保護経路の両方を確立することによって、保護された双方向トンネルを形成することができる。「作業経路」という用語は、本明細書に使用された場合、特に通常のネットワーク運用中にトラフィックを運ぶ経路を指し、「保護経路」という用語は、本明細書に使用された場合、作業経路に障害が発生したときに、特にRFC7087(MPLS-TP Rosetta Stone(2013年12月)、セクション3.42.1および3.42.2)およびRFC6372(MPLS-TP Survivability Framework(2011年9月))に従ってトラフィックを保護および転送するために使用された経路を指す。作業経路に沿ったパケットエンジンまたは暗号エンジンなどの実体は、RFC7087(MPLS-TP Rosetta Stone(2013年12月)、セクション3.42.1)に準拠した作業実体である。保護経路に沿ったパケットエンジンまたは暗号エンジンなどの実体は、RFC7087(MPLS-TP Rosetta Stone(2013年12月)、セクション3.42.2)に準拠した保護実体である。
【0082】
以下、実施形態に係る方法および装置をより詳細に説明する。
図2は、パケットエンジン50および関連する暗号エンジン60を示すブロック図表現40である。暗号エンジン60は、例えばイーサネット(登録商標)ケーブルまたは光ケーブルを介して、パケットエンジン50に直接に接続されてもよい。中央制御41は、例えば、同一のラベルエッジルータ(LER)またはラベルスイッチルータ(LSR)に設けられたいくつかのパケットエンジンを制御することができる。
【0083】
パケットエンジン50および暗号エンジン60は、作業経路または保護経路に使用されてもよい。作業経路および保護経路のLERまたはLSRに、異なるパケットエンジンおよび異なる暗号エンジン(または暗号エンジンインスタンス)を各々設けることができる。
【0084】
パケットエンジン50の構成および動作を用いて、図1のネットワーク10の複数のパケットエンジン12、22、32の各々を実現することができる。暗号エンジン60の構成および動作を用いて、図1のネットワーク10の複数の暗号エンジン14、24、34の各々を実現することができる。パケットエンジン50および暗号エンジン60の動作が送信データトラフィック(安全経路の「アリス」側)の文脈で説明されるが、同様の機能は、着信ノード(安全経路の「ボブ」側)で実現することができる。
【0085】
パケットエンジン50は、ポート53を備える。ポート53は、例えば、高精度時間プロトコル(PTP)、IEEE1588またはIEC61588 2.0版に従ってタイムスタンピングを実行するように動作する。パケットエンジン50は、ポート53を介して、プリシェーピングされたデータトラフィックを暗号エンジン60に出力するように動作する。
【0086】
パケットエンジン50は、データフローに挿入されるダミーパケット59を生成することができる。ダミーパケット59は、ペイロードデータを含まず、暗号エンジン60によって受信されるプリシェーピングされたデータトラフィックに含まれ、例えば暗号化キーを交換するための制御データを挿入するために暗号エンジン60によって使用されるパケットを提供するように生成されてもよい。ダミーパケット59は、例えば、汎用関連チャネルラベル(GAL)シグナリング通信チャネル(SCC)パケットを含むことができる。
【0087】
ダミーパケット59は、メモリからパケットテンプレートを読み取ることによって生成されてもよい。以下で詳しく説明するように、メモリに格納されたパケットテンプレートは、例えば、パケットエンジン50の中央処理装置51の少なくとも1つのプロセッサによって実行されるソフトウェアまたは他のコンピュータ可読命令コードによって生成されてもよく、または中央制御41上で動作するソフトウェアによって生成されてもよい。
【0088】
パケットエンジン50は、ダミーパケット59をデータフロー(すなわち、ペイロードデータを含む一連のデータパケット)に挿入する。パケットエンジン50は、繰り返し間隔でダミーパケット59をデータフローに挿入することができる。この間隔は、設定可能である。以下により詳細に説明するように、この間隔は、パケットエンジン50の中央処理装置51の少なくとも1つのプロセッサによって実行されるソフトウェアまたは他のコンピュータ可読命令コードによって設定されてもよく、または中央制御41上で動作するソフトウェアによって設定されてもよい。ダミーパケット59をデータフローに挿入する間隔は、暗号エンジン60が暗号パケット交換または他のセキュリティに関連する管理チャネル送信のために実行しなければならない全ての管理チャネル送信でダミーパケット59を充填できるように設定することができる。パケットエンジン50は、管理チャネルの送信のために暗号エンジン60によって実際に必要とされるダミーパケットよりも多くのダミーパケット59を生成することができる。
【0089】
ダミーパケット59は、予め定義されたイーサタイプ、ラベル、チャネルタイプおよびPID構造を有する外部イーサネットヘッダを含むことができる。パケットエンジン50は、暗号エンジン60がダミーエンジン59をどのように使用するかを知らないため、外部ラベルを有しない空のセクションGALパケットを生成する。これらのダミーパケット59は、タイムスタンピングコンテキスト外側のパケットの追加を回避する。
【0090】
ダミーパケット59は、例えば3.3msという規則的な間隔でパケットエンジン50によって生成され得るSCCパケットであってもよい。ストリーム内のダミーパケットは、管理チャネル送信のために、暗号エンジン60によって充填され、使用される。暗号エンジン60は、管理チャネル送信に不要なダミーパケットを破棄する。
【0091】
パケットエンジン50は、ダミーパケット59を、ペイロードデータを含む一連のデータパケットに組み入れるパケットスイッチ52を備えてもよい。
【0092】
ダミーパケット59の挿入に加えてまたは場合によってその代わりに、パケットエンジン50は、ペイロードデータを含むパケットとペイロードデータを含まないダミーパケットとを含むデータパケットの出力を遅延させることによって、パケット間ギャップを拡大することができる。これは、パケットスイッチ52によって実行されてもよく、出口ポート53で実行されてもよい。データパケットを出力した後、パケットスイッチ52または出口ポート53は、意図的に後続のデータパケットの出力を遅延させる。これによって、連続するデータパケット間のギャップが拡大される。説明のために、ペイロードデータを含むパケットとペイロードデータを含まないダミーパケットとを含む連続のデータパケットは、パケットスイッチ52で実際に送信される連続のデータパケットの時間間隔またはギャップに比べてより大きな時間間隔またはギャップで、出口ポート53によって出力されてもよい。
【0093】
パケット間ギャップの拡大は、例えば暗号化方法によって、暗号エンジン60内のデータパケットにバイトを追加することを含む。パケットスイッチ52は、設定可能な量で送出パケットの送信を遅延させることができる。パケットエンジン50は、送出パケットのバイトの送信を遅延させることによって、設定された量に従って、パケット間ギャップを拡大することができる。
【0094】
暗号エンジン60がパケットエンジン50に直接に接続されている場合または送信経路に沿ったホップのいずれかの暗号エンジン14、24、34がパケットを拡大する必要がある場合、常に、空のパケット間ギャップが拡大される。これは、パケットエンジン50によって実行されるトラフィックのプリシェーピングによって実現される。
【0095】
拡大されたパケット間ギャップのサイズは、例えば、中央制御部41または別の実体によって設定されてもよい。拡大されたパケット間ギャップのサイズは、暗号エンジン60が、データパケットを処理してMPLS-TPに従って複数のホップを介して送信しても、データパケットの順序を保持しながら、データパケットをパケット間ギャップのみに成長させるように設定されてもよい。拡大されたパケット間ギャップのサイズを決定する例示的な手法は、図10を参照して説明される。
【0096】
出力ポート53を介して出力された、ペイロードデータを含むパケットとペイロードデータを含まないダミーパケットとを含む一連のデータパケットは、本明細書において「プリシェーピングされたデータトラフィック」と呼ばれる。理解すべきことは、プリシェーピングされたデータトラフィックは、メッシュネットワーク、例えばMPLS-TPを介して送信されるデータトラフィックに対応しないことである。むしろ、暗号エンジン60は、セキュリティ関連の管理チャネル情報を挿入することによって、プリシェーピングされたデータトラフィックのダミーパケットの少なくとも一部または全てを変更することができる。暗号エンジン60は、ペイロードデータを含むデータパケット、例えば、保護する必要のあるミッションクリティカルデータまたは他のペイロードデータを含むデータパケットの少なくとも一部を変更することもできる。
【0097】
暗号エンジン60は、パケットエンジン50のポート53に連結されたポート61を備える。パケットエンジン50とは逆に、暗号エンジン60は、タイムスタンピングコンテキストの外側に配置される。換言すれば、ポート61は、PTPまたは他のタイムスタンピング処理を知らない。同様に、暗号エンジン60の出口ポート65は、PTPまたは他のタイムスタンピング処理を知らない。タイムスタンピングは、パケットエンジン50で実行される。暗号エンジン60は、タイムスタンピング情報を使用せず、タイムスタンピングプロトコルの知識を有しなくても動作することができる。暗号エンジン60は、IEEE1588または他のタイムスタンピング技術を知るコンポーネントを含まない場合がある。
【0098】
暗号エンジン60は、イーサネット(登録商標)ケーブルまたは光ケーブルを介してパケットエンジン50のポート53に連結され得るポート61を備える。
【0099】
暗号エンジン60は、パケットスイッチなどの装置62を含むことができる。暗号エンジン60が管理チャネルの送信例えば暗号化キーの交換を行うための制御パケットを生成する必要がある場合に、装置62は、ダミーパケット59をコントローラ63または他の集積半導体回路に提供する。装置62は、入ってくるプリシェーピングされたデータトラフィックからダミーパケットを選択することができる。このため、暗号エンジン60は、全てのパケットヘッダをスキャンすることによって、例えばペイロードデータを含む通常のデータトラフィックからSCCパケットを識別することができる。
【0100】
管理チャネルの送信に不要なダミーパケット59は、暗号エンジン50によってプリシェーピングされたデータトラフィックから削除されてもよい。
【0101】
コントローラ63は、管理チャネルに関連する制御データ、特に暗号化および/または認証に関連する制御データをダミーパケット59の少なくとも一部に充填することができる。コントローラ63は、例えば、ダミーパケット59の少なくとも一部を使用して、暗号化キーの交換を行うことができる。セキュリティ関連の管理チャネル制御データをダミーパケット59の少なくとも一部に充填することによって、制御パケット69を生成する。装置62は、例えばダミーパケット59の位置で、制御パケット69をプリシェーピングされたデータトラフィックに再挿入することができる。
【0102】
暗号エンジン60は、暗号化/復号ユニット64を備える。暗号化/復号ユニット64は、暗号化/復号処理を実行することができる。図示されていないが、認証処理を行うための認証ユニットは、暗号化/復号ユニット64に集積されてもよく、暗号化/復号ユニット64とは別に設けられてもよい。暗号エンジン60は、様々な既知の暗号化/復号および/または認証技術のいずれかを使用することができる。暗号エンジン60は、セキュリティ関連機能を実行するための専用ハードウェア、例えば物理乱数発生器を含むことができる。物理乱数生成器は、例えば真にランダムなプロセスに従って、量子システムに対して測定を実行し、測定から離散的な結果を得ることによって、物理プロセスから乱数を生成することができる。
【0103】
暗号エンジン60によるペイロードデータを含むプリシェーピングされたデータトラフィック内のデータパケットの処理は、データパケットのサイズに影響を与える可能性がある。しかしながら、データトラフィックのプリシェーピングによって、暗号エンジン60から離れるデータパケットの順序は、ポート61に到着するデータパケットの順序と同様である。
【0104】
暗号エンジン60は、例えば、ポート65を介して、安全な端末間経路のリモート終点(すなわち、「ボブ」)に送信されるデータトラフィックを出力することができる。データトラフィックのプリシェーピングによって、暗号エンジン60から離れるデータパケットの順序は、ポート61に到着するデータパケットの順序と同様である。
【0105】
データトラフィックが安全経路から離れる受信側では、暗号エンジンは、全ての制御パケット69を削除する。これによって、暗号化キーなどのセキュリティ関連情報を含む制御パケットは、2つの暗号エンジン(例えば、図1の暗号エンジン14および24)の間の経路に保持され、関連するパケットエンジン(例えば、図1のパケットエンジン12および22)に提供されない。
【0106】
暗号エンジン60がタイムスタンピングコンテキストの外側に配置されても、パケットエンジン50および暗号エンジン60は、暗号化および認証データの送信中に、送信されるクリティカルデータパケットの相対的なタイミングおよび順序を保持するように動作する。
【0107】
MPLSパケットのストリームを保護するなどの送信データの暗号化は、暗号エンジン60によって行われる。暗号エンジン60は、パケットの転送および切換を実行するパケットエンジン50から分離されている。全てのパケットのハンドリング、フィルタリングおよびキューイングは、タイムスタンピングコンテキストの内側に配置されたパケットエンジン50によって行われる。上記で説明したように、暗号エンジン60は、タイムスタンピングコンテキストの外側に配置される。
【0108】
本明細書に言及された場合、データパケットの相対的なタイミングおよび順序を保持することは、特に、連続するデータパケットの開始時間の間の時間差が変わらず、データパケットの順序が変わらないことを意味し得る。これは、暗号エンジン60によって処理されるデータパケットに適用されるだけでなく、パケットネットワーク10の1つのホップから次のホップに送信されるデータパケットにも適用される。
【0109】
パケットエンジン50によるデータパケットのタイムスタンピングは、PTPに従って、パケットエンジン50の入力/出力ポート53で行われてもよい。タイムスタンピングの適切なタイミング精度を保証するために、パルス毎秒およびクロック信号を、入力/出力ポートでタイムスタンピングを実行するためのチップに提供することができる。また、パルス毎秒に同期した固定間隔、例えば1秒間隔で、メッセージ、例えばソフトウェアメッセージを介して、絶対時間情報を内部タイムマスターから入力/出力ポート53に配置された各チップに配信することができる。出力ポート53のチップは、着信/発信パケットに絶対の送出/入来時間を追加してもよく、パケットがパケットエンジン50を通過するときに既存の入来時間情報に滞留時間を追加してもよい。
【0110】
このようにして、パケットエンジン50の入口ポートおよび出力ポートでデータパケットにタイムスタンプを付けることによって、PTPに従ってネットワーク10内の全てのノードへのタイミング/クロック情報の端末間送信を可能にする。しかしながら、暗号エンジン60は、タイミング/クロック情報を使用しないように動作することができる。
【0111】
図3は、例示的な実施形態に係るパケットエンジン50によるダミーパケット59の生成および挿入を示す図である。ダミーパケット59を出力するための繰り返し間隔およびインターフェイスは、パケットエンジン50のCPU51、中央制御部41、または別の実体によって実行され得るソフトウェアなどの機械可読命令コードによって設定されてもよい。
【0112】
機械可読命令コードの実行によって実行されるプロセス70は、例えばユーザ入力またはパケットエンジン50の装置起動によってトリガされてもよい。
【0113】
ステップ71において、プロセス70は、例えば、ユーザ入力またはパケットエンジン50の装置起動に応答して開始する。
【0114】
ステップ72において、ダミーパケットの新たなテンプレートを生成すると判断された場合、ステップ72において、パケットエンジン50に接続されたCPUまたはパケットエンジン50のCPU51上で実行される機械可読命令コード、例えばソフトウェアは、ダミーパケットの画像としてテンプレートを生成することができる。テンプレート75は、パケットスイッチ52およびCPU51の共有メモリであり得るメモリ54に格納されてもよい。
【0115】
ステップ74において、CPU51で実行される機械可読命令コード、例えばソフトウェアは、一定の時間間隔でメモリ54から画像を取り出すように、パケットエンジン50のパケットスイッチ52を設定することができる。このために、繰り返し間隔で情報76をレジスタに書き込むことができる。ダミーパケットを出力するインターフェイスまたはポートに関する情報は、メモリ54に格納されてもよい。これは、パケットスイッチ52の出力インターフェイスをトリガして、共有メモリ56のレジスタに格納され得る情報75、76に従って、ダミーパケット59をデータパケットに挿入する。
【0116】
77に概略的に示されたように、パケットスイッチ52は、一定の間隔で共有メモリ54から画像75を取り出し、画像75を特定のポートのデータフローに挿入することができる。パケットスイッチ52は、ダミーパケットのテンプレートとしてメモリ画像75を取り出し、レジスタ情報76に指定された一定の間隔でメモリ画像75をデータトラフィックストリームに挿入することができる。
【0117】
図4は、一実施形態に従って、ノード(終点ノードまたは中間ホップ)のパケットエンジン50および暗号エンジン60の動作を示す図である。パケットエンジン50は、ペイロードデータを含むデータパケット81を含むプリシェーピングされたデータトラフィックを出力する。パケットエンジン50は、ペイロードデータを含まないダミーパケットを出力する。パケットエンジン50は、拡大されたパケット間ギャップ89が所望のサイズを有することを保証するために、データパケット81の後に追加のダミーバイト88を挿入する。拡大されたパケット間ギャップ89のサイズは、暗号エンジン60によって実行される暗号化および/または認証処理が拡大されたパケット間ギャップ89を超えないようにデータパケット81を拡大されたパケット間ギャップ89のみに成長させるように設定される。
【0118】
暗号エンジン60が暗号化および/または認証処理を実行するため、データパケット83は、関連するデータパケット81の元のペイロードの暗号化された対応部分を含み、必要に応じて認証情報を含むことができる。データパケット83は、データパケット81に比べてより大きなサイズを有する。しかしながら、暗号化および/または認証処理によるパケットサイズの増加は、決して拡大されたパケット間ギャップ89を超えない。暗号エンジン60から離れる時の連続するデータパケット83の間の時間差は、暗号エンジン60に入る時の連続するデータパケット81の間の差と同様である。
【0119】
暗号エンジン60は、パケットエンジン50によって生成されたダミーパケット82を用いて、管理チャネルの送信を行うことができる。暗号エンジンは、暗号化キーの交換などのセキュリティに関連する制御情報をダミーパケット82に挿入することによって、既存のダミーパケット82を制御パケット84に変換することができる。暗号エンジン60の動作は、ジッタを追加することなく、データパケットの相対的なタイミングおよび順序を保持する。
【0120】
図5および図6は、パケットエンジン50から受信したデータパケット90に対して暗号化および/または認証処理を実行するときの暗号エンジン60の動作を示している。パケットエンジン50は、例えば、パケット間ギャップ99を36バイトに拡大した。データパケット90は、暗号化されていないMPSLデータパケットであってもよい。データパケット90は、プリアンブルおよび開始フレームデリミタ(SFD)91を含むことができる。データパケット90は、宛先アドレスメディアアクセス制御(MAC)アドレス92を含むことができる。データパケット90は、ソースアドレスメディアアクセス制御(MAC)を含むことができる。データパケット90は、MPLSラベルスイッチ経路(MPLS LSP)94を含むことができる。データパケット90は、MPLS擬似ワイヤ(MPLS PW)95を含むことができる。データパケット90は、暗号化されていない擬似ワイヤペイロード96を含む。データパケット90は、フレームチェックシーケンス(FCS)97を含むことができる。
【0121】
図5は、暗号エンジン60の暗号化処理をデータパケット90に適用することによって得られた暗号化データパケット100を示している。暗号化データパケット100に暗号化コード101を追加することができる。暗号化データパケット100は、MPLS PW95およびPWペイロード96から生成され得る暗号化ペイロード102を含む。暗号化ペイロード102は、暗号化サービスデータを定義することができる。
【0122】
暗号化によって、暗号化データパケット100は、暗号化されていない対応物90のサイズを超えるサイズを有する。しかしながら、パケット間ギャップ99は、暗号化されていないデータパケット90に比べて、暗号化データパケット100のサイズの増加が拡大されたパケット間ギャップ99を超えないように、パケットエンジン50によって拡大される。暗号エンジン50は、拡大されたパケット間ギャップ99を超えないようにデータパケットを拡大されたパケット間ギャップ99に成長させる。連続する暗号化データパケットの間に有限のパケット間ギャップ108が存在してもよい。説明のために、暗号化コード101が8バイトを有する場合、パケット間ギャップ108は、28バイトを有し得る。
【0123】
図6は、暗号エンジン60の暗号化処理および認証処理をデータパケット90に適用することによって生成された認証付き暗号化データパケット105を示す。認証コード103は、暗号化データパケット105に含まれてもよい。暗号化ペイロード102および認証コード103は、暗号化サービスデータを定義することができる。
【0124】
暗号化および認証によって、認証付き暗号化データパケット105は、暗号化されていない対応物90のサイズを超えるサイズを有する。しかしながら、パケット間ギャップ99は、暗号化されていないデータパケット90に比べて、認証付き暗号化データパケット105のサイズの増加が拡大されたパケット間ギャップ99を超えないように、パケットエンジン50によって拡大される。暗号エンジン50は、拡大されたパケット間ギャップ99を超えないようにデータパケットを拡大されたパケット間ギャップ99に成長させる。連続する暗号化データパケットの間に有限のパケット間ギャップ109存在してもよい。説明のために、暗号化コード103が6バイトを有する場合、パケット間ギャップ103は、12バイトを有し得る。
【0125】
図7は、パケットエンジン50によってデータフローに定期的に挿入されるダミーパケット59の一例としてのGAL SCCパケット構造を示す。GAL SCCパケットは、例えば、以下の構造(合計92バイト)、すなわち、イーサネットヘッダ:14バイト(DMAC 6バイト、SMAC 6バイトおよびイーサタイプ 2バイト)、PIDを含むMPLS GALヘッダ:10バイト(LSPシムヘッダなし、RFC5718)、SCCペイロード:64バイト、およびCRC:4バイトを有することができる。
【0126】
SCCペイロードは、パケットエンジン50によって生成されたときに、空であってもよく、乱数または0もしくは1で充填されてもよい。暗号エンジン60は、管理チャネルデータをGAL SCCパケットのSCCペイロードに挿入することができる。
【0127】
空セクションのGAL SCCダミーパケットをMPLS-TPコンテキストに適用することによって、暗号エンジン60は、暗号化/復号制御フローの端末間またはセグメントにパケットを追加することなく、制御パケット69を提供することができる。生成された特定のPID付きGAL SCCパケットが保護されたフローから抜け出すときに確実に削除されるように、擬似ワイヤの受信側のパケットエンジン50または暗号エンジン60は、これらのパケットを検出すると、即座に削除する。複数のホップに亘って開始から終了まで制御パケット69を送信する間に、追加の外部MPLSヘッダが追加される。GAL SCCヘッダは、表示されない。これによって、終点暗号エンジン60が外部ヘッダを剥ぎ取った後のみ、GAL SCCダミーパケットが削除される。このようにして、端末間MPLSパケットフローは、制御パケットとは無関係になる。
【0128】
暗号エンジン60は、制御パケット69を使用する必要がある場合、パケットエンジン50によって提供されたプリシェーピングされたデータトラフィックから、ダミーパケット59を選択することができる。このため、暗号エンジン60は、全てのパケットヘッダをスキャンすることができる。暗号エンジン60は、以下のルールを用いて、通常のトラフィックからSCCパケットを識別することができる。図7に示すGAL SCCパケットの(イーサタイプ==0×8847)&&(S==1&&ラベル==13)&&(チャネルタイプ==2)&&(PID==xxx)バイト13~14バイト15~18バイト21~22バイト23~24。
【0129】
パケットエンジン50は、暗号エンジン60がGAL SCCダミーパケットをどのように使用するかを知らないため、外側ラベルのない空セクションのGALパケットを生成する。
【0130】
暗号エンジン60は、以下のパケット、すなわち、2つの隣接するMPLSノード間に暗号化キーを交換するためのパケット、および外部MPLSヘッダを追加することによって得られたLSP端末間に暗号化キーを交換するためのパケットを使用できる。
【0131】
パケットエンジン50と暗号エンジン60との間のリンクは、MPLSセクション管理チャネルとして扱うことができる。MPLS-TP標準に従って、制御通信は、以下のオプションを使用して実行することができる。すなわち、
LSP端末間管理チャネル:この場合、暗号エンジン60は、4バイトのLSPヘッダをイーサタイプビットとGALヘッダとの間に挿入する。このようにして、暗号エンジン60は、暗号化端末間の関係をMPLS端末間の関係にマッピングする。パケットサイズの増加を避けるために、ペイロードのサイズを犠牲にしてヘッダを拡大する。
【0132】
次ホップまたはセクション管理チャネル:暗号エンジン60は、次ホップの暗号エンジン60と通信する必要がある場合、LSPシムヘッダを挿入するこなく、パケット構造をそのまま保持する。ペイロードサイズは、64バイトのままである。
【0133】
ネットワーク構成セクションの誤りによって、GAL SCCパケットがパケットエンジン50のポート53で受信された場合、これらのパケットは、パケットスイッチ52で削除される。GALSCCヘッダが見えるため、パケットスイッチ52は、ラベルが13(GAL)であるか否か、チャネルタイプがSCCであるか否か、または暗号化通信チャネルのPIDが定義されているか否かをチェックする。
【0134】
図8は、一実施形態に係る方法においてパケットエンジン50によって実行され得るプロセス110を示すフローチャートである。
【0135】
ステップ111において、パケットエンジン50は、ダミーパケット59を生成することができる。ダミーパケット59は、一定の時間間隔で生成されてもよい。ダミーパケット59は、ペイロードデータを運ぶデータパケットを含むデータフローに挿入されてもよい。
【0136】
ステップ112において、パケットエンジン50は、パケット間ギャップを拡大することができる。拡大されたパケット間ギャップのサイズは、動的に設定されてもよく、暗号化の後、必要に応じて認証の後にデータパケットを送信するポートおよびポートの構成経路に依存してもよい。
【0137】
ステップ113において、パケットエンジン50は、タイムスタンピングを実行することができる。タイムスタンピングは、暗号化の前に、必要に応じて認証の前に、パケットエンジン50の出力ポートで実行されてもよい。
【0138】
ステップ114において、プリシェーピングされたデータトラフィックは、パケットエンジン50に直接に接続され、パケットエンジン50と同じラックまたはベイに配置され得る暗号エンジン60に出力されてもよい。
【0139】
図9は、一実施形態に係る方法において暗号エンジン60によって実行され得るプロセス120を示すフローチャートである。
【0140】
ステップ121において、暗号エンジン60は、パケットエンジン50からプリシェーピングされたデータトラフィックを受け取る。パケットエンジン50は、暗号エンジン60に直接に接続され、暗号エンジン60と同じラックまたはベイに配置されてもよい。
【0141】
ステップ122において、暗号エンジン60は、暗号化または認証に関連する制御情報をダミーパケット59の少なくとも一部に充填することができる。暗号エンジン60は、管理チャネルの送信に必要されないダミーパケット59を削除または破棄することができる。暗号エンジン60は、データトラフィックにパケットを追加することなく、パケットエンジン50によって生成された管理チャネル送信用のダミーパケット59の少なくとも一部を用いて、管理チャネルの送信を実行することができる。
【0142】
ステップ123において、暗号エンジン60は、暗号化および/または認証処理を実行することができる。暗号エンジン60は、新たなパケットを追加することなく、データパケットをパケット間ギャップに成長させることによって、これらの処理を実行することができる。
【0143】
ステップ124において、暗号エンジンは、例えば、MPLSネットワーク内の保護されたトンネルの安全な端末間経路を介して、暗号化ペイロードを含むデータパケット、必要に応じて送信認証を含むデータパケットを出力することができる。
【0144】
拡大されたパケット間ギャップのサイズは、ネットワーク内の構成経路に依存してもよい。拡大されたパケット間ギャップのサイズは、データトラフィックを出力するポートに依存してもよい。拡大されたパケット間ギャップのサイズは、動的に設定されてもよい。
【0145】
図10は、一実施形態に係る方法において拡大されたパケット間ギャップのサイズを設定するプロセス130を示すフローチャートである。プロセス130は、特定のポートに必要された拡大に応じてサイズを動的に設定することができる。
【0146】
ステップ131において、インターフェイス上の全ての構成経路を計算的にトラバースすることを含む演算を行うことができる。各経路に必要なパケット間ギャップを計算する。必要なパケット間ギャップは、バイト数で確定される。例えば、標準なメッセージ認証を追加する場合、パケットエンジンのパケット間ギャップのターゲットサイズに24バイトを追加する。したがって、標準の12バイトではなく、36バイトのパケット間ギャップが提供される。
【0147】
ステップ132において、最大のパケット間ギャップを必要とする経路を特定する。この経路は、インターフェイスのパケット間ギャップを決定するために使用される。すなわち、インターフェイスのパケット間ギャップは、ステップ131で決定された値から選択される。したがって、これらの値の最大値は、パケット間ギャップのサイズとして選択される。
【0148】
ステップ133において、ステップ131および132で決定されたパケット間ギャップに従って、パケットエンジン50を構成することができる。
【0149】
CPU51は、パケットスイッチ52のレジスタに書き込まれる適切なレジスタバイトシーケンスを構築することができる。これは、出力データパケットの連続送信間でnバイトを待つように、パケットスイッチ52をトリガする。
【0150】
本発明の実施形態に係る方法、装置およびシステムは、例えば、ミッションクリティカル応用のためのネットワークにおける強化されたサイバーセキュリティの必要性に対処する。パケット間ギャップの拡大および/またはダミーパケットの追加を含むデータトラフィックのプリシェーピングの組み合わせによって、暗号エンジンの段階でパケットを追加する必要のないシステムが提供される。パケットは、空のパケット間ギャップのみに成長する。したがって、中間ノードで「処理された」サブストリームと「処理されていない」サブストリームの分離および組み合わせは、自然にインターリーブする。パケットのタイミングおよび順序には乱れが発生していない。
【0151】
実施形態に係る方法、装置およびシステムは、複雑なメッシュネットワークを通過しても、暗号化および/または認証されたパケットデータ送信の有線のような決定論を提供する。
【0152】
図面を参照して例示的な実施形態を説明したが、他の実施形態では改変および変更を実施することができる。方法、装置およびシステムは、MPLSネットワークに使用できるが、それに限定されない。
【0153】
当業者が理解するように、本明細書に開示される実施形態は、より良い理解のために提供され、単に例示である。特許請求の範囲によって定義される本発明の範囲から逸脱することなく、当業者は、様々な改変および変更を行うことができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10