(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-02-14
(54)【発明の名称】ネットワーク・インフラストラクチャのためのプログラマブル・スイッチング・デバイス
(51)【国際特許分類】
H04L 45/745 20220101AFI20230207BHJP
H04L 49/25 20220101ALI20230207BHJP
H04L 12/46 20060101ALI20230207BHJP
H04L 49/60 20220101ALI20230207BHJP
【FI】
H04L45/745
H04L49/25
H04L12/46 100Z
H04L49/60
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022535655
(86)(22)【出願日】2020-12-10
(85)【翻訳文提出日】2022-08-08
(86)【国際出願番号】 US2020064285
(87)【国際公開番号】W WO2021119292
(87)【国際公開日】2021-06-17
(32)【優先日】2019-12-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】522230842
【氏名又は名称】アミナ システムズ インコーポレイテッド
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】キリアニス、ジェイムズ
(72)【発明者】
【氏名】キリアニス、ミン
【テーマコード(参考)】
5K030
5K033
【Fターム(参考)】
5K030GA15
5K030HA08
5K030HD03
5K030LC13
5K030MB09
5K030MC08
5K033AA08
5K033CB06
5K033DB03
(57)【要約】
少なくとも1つのポートと、少なくとも1つのポートに通信可能に結合された少なくとも1つのプログラマブル・フィルタとを含む、ネットワーク・インフラストラクチャ内のプログラマブル・スイッチング・デバイスであって、少なくとも1つのプログラマブル・フィルタは、定義されたルールのセットに基づいて、データ・パケットが、少なくとも1つのポートに接続されたネットワーク化デバイスに送信されるか又はネットワーク化デバイスから送信されることを許可/拒否するように構成される、プログラマブル・スイッチング・デバイス。
【特許請求の範囲】
【請求項1】
少なくとも1つのポートと、
前記少なくとも1つのポートに通信可能に結合された少なくとも1つのプログラマブル・フィルタと
を備えるプログラマブル・スイッチング・デバイスであって、
前記少なくとも1つのプログラマブル・フィルタが、定義されたルールのセットに基づいて、データ・パケットが、前記少なくとも1つのポートに接続されたネットワーク化デバイスに送信され、又は前記ネットワーク化デバイスから送信されることを許可/拒否するように構成されている、プログラマブル・スイッチング・デバイス。
【請求項2】
コントローラが、前記定義されたルールのセットを前記少なくとも1つのプログラマブル・フィルタに送信する、請求項1に記載のプログラマブル・スイッチング・デバイス。
【請求項3】
前記コントローラが、前記プログラマブル・スイッチング・デバイスに通信可能に結合されたネットワーク・デバイスである、請求項2に記載のプログラマブル・スイッチング・デバイス。
【請求項4】
前記コントローラが、ファイアウォールによってセキュリティ保護されたSDN対応デバイスである、請求項2に記載のプログラマブル・スイッチング・デバイス。
【請求項5】
前記コントローラを前記プログラマブル・スイッチング・デバイスにリンクするアプリケーション・プログラミング・インターフェース
をさらに備える、請求項2に記載のプログラマブル・スイッチング・デバイス。
【請求項6】
前記プログラマブル・スイッチング・デバイス内に埋め込まれたコントローラであって、前記コントローラが、前記定義されたルールのセットを前記少なくとも1つのプログラマブル・フィルタに送信する、コントローラ
をさらに備える、請求項1に記載のプログラマブル・スイッチング・デバイス。
【請求項7】
前記コントローラにデータ・フロー特性を送信するように構成された報告モジュール
をさらに備える、請求項2に記載のプログラマブル・スイッチング・デバイス。
【請求項8】
前記コントローラが、前記データ・フロー特性を分析し、前記分析に基づいて、前記定義されたルールのセットを自動的に更新する、請求項7に記載のプログラマブル・スイッチング・デバイス。
【請求項9】
前記定義されたルールのセットが、ネットワーク管理者によって構成されている、請求項1に記載のプログラマブル・スイッチング・デバイス。
【請求項10】
前記定義されたルールのセットが、少なくとも1つの機械学習アルゴリズム、人工知能(AI)、又は自動化技法によって構成されている、請求項1に記載のプログラマブル・スイッチング・デバイス。
【請求項11】
前記プログラマブル・スイッチング・デバイスのための識別プロトコルを与えるための識別モジュール
をさらに備える、請求項1に記載のプログラマブル・スイッチング・デバイス。
【請求項12】
前記プログラマブル・スイッチング・デバイスからのデータを受信及び送信するように構成されたデータ・パッケージング・モジュール
をさらに備える、請求項1に記載のプログラマブル・スイッチング・デバイス。
【請求項13】
前記少なくとも1つのポートが、ワイヤード接続ポイントである、請求項1に記載のプログラマブル・スイッチング・デバイス。
【請求項14】
前記少なくとも1つのポートが、ワイヤレス接続ポイントである、請求項1に記載のプログラマブル・スイッチング・デバイス。
【請求項15】
少なくとも2つのプログラマブル・スイッチング・デバイスであって、それぞれ、各ポートがプログラマブル・フィルタに通信可能に結合された少なくとも2つのポートを有する、少なくとも2つのプログラマブル・スイッチング・デバイスと、
前記少なくとも2つのプログラマブル・スイッチング・デバイスに通信可能に結合されたコントローラと
を備える、ネットワーク・インフラストラクチャであって、
前記コントローラが、前記少なくとも2つのプログラマブル・スイッチング・デバイスの各ポートに通信可能に結合された前記プログラマブル・フィルタを、定義されたルールのセットでポピュレートする、ネットワーク・インフラストラクチャ。
【請求項16】
前記定義されたルールのセットが、データ・パケットが少なくとも2つのネットワーク化デバイスに送信され、又は前記少なくとも2つのネットワーク化デバイスから送信されることを許可/拒否し、前記ネットワーク化デバイスが、前記少なくとも2つのプログラマブル・スイッチング・デバイスの前記少なくとも2つのポートのうちの1つに通信可能に結合されている、請求項15に記載のネットワーク・インフラストラクチャ。
【請求項17】
前記定義されたルールのセットが、前記ネットワーク化デバイス間のネットワーク・セキュリティベースの分離を生じる、請求項16に記載のネットワーク・インフラストラクチャ。
【請求項18】
前記定義されたルールのセットが、前記ネットワーク化デバイス間のネットワーク・セキュリティベースのセグメント化を生じる、請求項16に記載のネットワーク・インフラストラクチャ。
【請求項19】
前記定義されたルールのセットが、ネットワーク管理者によって構成されている、請求項15に記載のネットワーク・インフラストラクチャ。
【請求項20】
前記定義されたルールのセットが、少なくとも1つの機械学習アルゴリズム、人工知能(AI)、又は自動化技法によって構成されている、請求項15に記載のネットワーク・インフラストラクチャ。
【請求項21】
前記コントローラにデータ・フロー特性を送信するように構成された報告モジュール
をさらに備える、請求項15に記載のネットワーク・インフラストラクチャ。
【請求項22】
前記コントローラが、前記データ・フロー特性を分析し、前記分析に基づいて、前記定義されたルールのセットを自動的に更新する、請求項21に記載のネットワーク・インフラストラクチャ。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、それの開示全体が参照により本明細書に組み込まれる「Programmable Switching Device for Network Infrastructures」という名称の、2019年12月10日に出願された、米国特許出願第16/709,444号の利益及び優先権を主張する。
【背景技術】
【0002】
ネットワークは、データ又は電気通信アーキテクチャの様々なインフラストラクチャ要素によってリンクされたコンピュータ・システムの相互接続されたグループである。特に、このインフラストラクチャは、個々のネットワーク化コンピュータから、ルータ、ケーブル、ワイヤレス・アクセス・ポイント、スイッチ、バックボーン、ネットワーク・プロトコル、及びネットワーク・アクセス方法までの、それの様々な部分の組織及びそれらの構成を指す。インフラストラクチャは、インターネットのオープン・アーキテクチャ又はプライベート・イントラネットのクローズド・アーキテクチャなど、オープン又はクローズドのいずれかであり得る。それらはワイヤード又はワイヤレス・ネットワーク接続又は両方の組合せを介して動作することができる。
【0003】
ネットワーク・インフラストラクチャの最も簡単な形態は、一般に、1つ又は複数のコンピュータ、ネットワーク又はインターネット接続、及びコンピュータをネットワーク接続にリンクし、様々なシステムを互いに結合するためのスイッチを含む。スイッチは、単にコンピュータをリンクするが、いずれか1つのシステムへの又はいずれか1つのシステムからのデータ・フローを制限しない。ルータは、ネットワークをインターリンクするために使用され得、各ネットワークのルールに従うデータ交換のための共通の言語を与えることができる。ルータは、ネットワークの間のアクセスを制御又は制限し、データ・フローを調整することができる。
【0004】
オフィス・イントラネットは、グローバル・インターネットと同様であるが、それの中の人々のみにとってアクセス可能なクローズド・ネットワーク・インフラストラクチャ上で動作する。オフィス・イントラネット・システムは、一般に、中央データ記憶ユニットを備え、それは、サーバとして知られる1つ又は複数のコンピュータ、並びにイーサネット(登録商標)・ネットワーク・ケーブリング、ワイヤレス・アクセス・ポイント、ルータ、スイッチ、及び中央データ記憶ユニットへのアクセスをもつ個々のコンピュータを含み得る。個々のコンピュータは、ケーブリング又はワイヤレス・アクセスのいずれかを介してネットワークに接続することができる。ルータ及びスイッチは、次いで、各個々のコンピュータがどのレベルのアクセスを有することができるのかを決定し得、個々のコンピュータをサーバ上の中央データ記憶ユニットにポイントするトラフィック・ダイレクタとして働くことができる。個々のコンピュータがデータを送信又は受信する際、ルータとスイッチとは、データが適切な場所に到達することを保証するために協働して動作する。
【0005】
ネットワーク・セキュリティは、しばしば、ネットワーク・インフラストラクチャを構築するときの主要な問題である。ファイアウォールは、外向きの通信を許可しながら不正な内向きのアクセスをブロックするように設計されたコンピュータ・システム又はネットワークの一部である。たいていのアーキテクチャは、ユーザ・アクセスを制御し、データ・パケットの監視を行い、定義されたプロトコルとネットワーク・サービスとへのアクセスを制限する、専用のファイアウォール、又はビルトイン・ファイアウォールをもつルータ、並びにソフトウェアを使用する。セキュリティはまた、ネットワーク上で他のユーザによって見られ得るフォルダとファイルとを制限する個々のシステム上でネットワーク共有プロパティを調整することによって制御され得る。
【0006】
ネットワーク・インフラストラクチャ全体は、相互接続され、内部通信、外部通信又は両方のために使用され得る。一般的なネットワーク・インフラストラクチャは、ネットワーキング・ハードウェア(たとえば、ルータ、スイッチ、ハードウェアベースのファイアウォール、ローカル・エリア・ネットワーク(LAN:Local Area Network)カード、ワイヤレス・ルータ、ケーブルなど)と、ネットワーキング・ソフトウェア(たとえば、ネットワーク動作及び管理、オペレーティング・システム、ソフトウェアベースのファイアウォール、ネットワーク・セキュリティ・アプリケーションなど)と、ネットワーク・サービス(たとえば、通信リンク、インターネット、衛星、ワイヤレス・プロトコル、IP(IP:Internet Protocol)アドレス指定など)とを含む。
【0007】
ネットワーク・インフラストラクチャのレイヤ1は、エンド・システム間の物理リンクをアクティブ化し、維持し、非アクティブ化するための、電気的、機械的、手続き上及び機能上の仕様を定義する。いくつかの一般的な実例は、SONET(Synchronous Optical Networking)、光、及びブロードバンドのようなイーサネット(登録商標)・セグメント及び商業リンクである。これらのレイヤ1ネットワーク・デバイスはデータを転送するが、これらのデバイスは、たとえば、イーサネット(登録商標)光トランシーバによって、それを通って流れるトラフィックのいずれも管理しない。言い換えれば、ポートに入るいずれのパケットも、いかなる追加の処理もなしに出力ポートに供給される。
【0008】
レイヤ2は、データが送信のためにどのようにフォーマットされるか、及び物理媒体へのアクセスがどのように制御されるかを定義する。レイヤ2ネットワーク・デバイスは、ネットワーク化デバイスと、物理媒体、たとえば、ホスト、ルータ又はスイッチにインストールされるネットワーク・インターフェース・コントローラ(NIC:Network Interface Controller)との間のインターフェースを与えることができる。レイヤ2ネットワーク・デバイスは、データ・リンク・レイヤ(レイヤ2)においてデータを処理し、転送するためにハードウェア・アドレス、たとえばMAC(Media Access Control)アドレスを使用するマルチポート・デバイスであり得る。レイヤ2ネットワーク・デバイスとして動作するスイッチは、家庭又はオフィスにあるデバイスを相互接続し、着信パケットをバッファし、伝送速度を調整し得る。
【0009】
ローカル・エリア・ネットワーク・スイッチングは、データ・ネットワークにおいて使用されるパケット交換の一形態である。LANスイッチング技術は、トラフィックをネットワーク上のすべてのホストに送るのではなく、トラフィックがそれの意図された宛先のみに送られることを可能にするので、ネットワーク設計にとって必要不可欠である。LANスイッチングは異なる種類のネットワーク・スイッチを使用することができ、スイッチ間の相互接続は、たとえば、スパニング・ツリー・プロトコル(STP:Spanning Tree Protocol)を使用して調整され得る。
【0010】
使用中、コンピュータ及び他のネットワーク化デバイスがネットワーク・スイッチによってワイヤード又はワイヤレス接続を介して相互接続され得る。これらのスイッチは、仮想LAN(VLAN:Virtual LAN)を作成するために、より小さい別個のスイッチに再分割され得る。従来のスイッチは同じVLAN上のネットワーク化デバイス間のネットワーク通信にセキュリティ制御を加えない。言い換えれば、LAN上のすべてのデバイスは互いに自由に通信することができる。
【0011】
レイヤ3は、地理的に分離されたネットワークにわたることができるプロトコルを使用して2つのホスト・システム間の接続性及び経路選択を与える。ホストの場合、これは、データ・リンク・レイヤ(レイヤ2)と、ネットワーク・オペレーティング・システム(NOS:Network Operating System)の上位レイヤと、通信されているホスト上の対応するレイヤとの間のリンケージである。ルータは、IP(インターネット・プロトコル)などのプロトコルを使用してLAN(レイヤ2)間にレイヤ3リンクを確立する。
【0012】
レイヤ3スイッチは、一般に、スイッチ上に構成されたVLAN間のIPルーティングをサポートする。いくつかのレイヤ3スイッチは、ネットワーク間で情報を交換するためにルータが使用する、ルーティング・プロトコルをサポートする。全体的に、ルータは、レイヤ3において動作している、複数のLANを相互接続することができるので、これにより、LANごとに許可される約250個のネットワーク化デバイスを越えてネットワークのサイズをスケーリングすることが可能になる。ルータはまた、LANを、ワイド・エリア・ネットワーク(WAN:Wide Area Network)、たとえば、長距離ビルディング・リンク、クラウド・サービスへの接続、及びインターネットと相互接続することができる。
【0013】
ルータの主要な機能は、様々なネットワーク(LAN、WANなど)間でトラフィックをダイレクトすることである。ルータは、一般に、ネットワーク間のトラフィックを制御するためのいくつかの基本ネットワーク・フィルタ機能を備えるが、それのネットワーク内のトラフィックをフィルタ処理することはできない。
【0014】
ファイアウォールは、レイヤ3(ネットワーク・アドレス)、レイヤ4(ネットワーク接続)、及び上位レイヤ(アプリケーション)において動作している、ネットワークを相互接続する。ファイアウォールの主要な機能は、ネットワーク間のトラフィックを検査又は制御(たとえば、許可/拒否)することである。ファイアウォールはネットワーク内のトラフィックをフィルタ処理することができない。
【発明の概要】
【課題を解決するための手段】
【0015】
開示する技術は、個々のプログラマブル・ポートを含むプログラマブル・スイッチング・デバイスである。これらの個々のプログラマブル・ポートは、各個々のスイッチ・ポートにおいてセキュリティ制御を実施する。これらの個々のプログラマブル・ポートは、ネットワーク上でのいずれかのネットワーク化デバイスへの又はネットワーク化デバイスからの不正アクセスを拒否するために、着信データ及び発信データをフィルタ処理する。言い換えれば、開示する技術のプログラマブル・スイッチング・デバイスは、意図されたネットワーク化デバイスがLAN(又はVLAN)上で非公式に互いに通信することを可能にしながら、LAN(又はVLAN)への、LAN(又はVLAN)からの、及びLAN(又はVLAN)内でのネットワーク・トラフィックの制御を可能にし、それのネットワーク内で、あらゆる他のネットワーク化デバイスからあらゆるネットワーク化デバイスを保護することができる。プログラマブル・スイッチング・デバイスは、それによって、オープンLAN上で真のネットワーク分離を生じることができる。
【0016】
開示する技術のプログラマブル・スイッチング・デバイスは、自動化動作、挙動ネットワーク・トラフィック・パターンの学習、及び、たとえば、ソフトウェア設計ネットワーキング(SDN:Software Designed Networking)技術によってホワイトリスティング・モデルを介したセキュリティ制御の適用などの特徴をネットワークが有することを許可する、ネットワーク・コントローラとともに使用され得る。プログラマブル・スイッチング・デバイスはまた、セキュリティ脅威に応答してのリアルタイムでのプログラマブル・スイッチング・デバイスの動的プログラミングを可能にし、不正なアクティビティに自律的に反応する、SDN機能を有することができる。
【0017】
SDN対応インフラストラクチャは、ネットワーク・コントローラが、新しい状況に応答して、それらのポート動作を動的に変更するために、それの動作パラメータのためにリアルタイムでインフラストラクチャに問い合わせ、プログラマブル・スイッチング・デバイスにプログラミングを送ることを可能にする、アクティブなセキュア・プログラミング・インターフェースをさらに提供する。ネットワーク・コントローラはまた、旧来のネットワークではさもなければ不可能なスケール及び速度において、並びに、従来のネットワーク・デバイスによる処理のためにさもなければ利用不可能であった外部データ・ソース(外部データベース、テレメトリ・データなど)を使用して、ネットワークの動作を支配することができる。
【0018】
開示する技術のプログラマブル・スイッチング・デバイスは、ネットワークが、特有のソフトウェア特徴、たとえば、数例を挙げれば、自動化ネットワーク・フロー・ディスカバリ、LANデバイス認識、フロー承認及び許可プロセス、セキュリティ制御、LANデバイスを保護するための論理、不正なアウトバウンド・フローの自動検出、所望のセキュリティ制御に基づくプログラマブル・スイッチング・デバイスの自動プログラミング、及びデバイス・フェデレーション(federation)及び仮想化を有することをも可能にする。
【0019】
一実装形態では、プログラマブル・スイッチング・デバイスは、少なくとも1つのポートと、少なくとも1つのポートに通信可能に結合された少なくとも1つのプログラマブル・フィルタとを備えることができ、少なくとも1つのプログラマブル・フィルタは、定義されたルールのセットに基づいて、データ・パケットが、少なくとも1つのポートに接続されたネットワーク化デバイスに送信されるか又はネットワーク化デバイスから送信されることを許可/拒否するように構成される。
【0020】
いくつかの実装形態では、コントローラは、定義されたルールのセットを少なくとも1つのプログラマブル・フィルタに送信することができる。いくつかの実装形態では、コントローラは、プログラマブル・スイッチング・デバイスに通信可能に結合されたネットワーク・デバイスであり得る。いくつかの実装形態では、コントローラは、ファイアウォールによってセキュリティ保護されたSDN対応デバイスであり得る。いくつかの実装形態では、コントローラは、セキュリティ保護されたコンピュータ上で動作するアプリケーションであり得る。いくつかの実装形態では、アプリケーション・プログラミング・インターフェースはコントローラをプログラマブル・スイッチング・デバイスにリンクすることができる。
【0021】
いくつかの実装形態では、コントローラは、プログラマブル・スイッチング・デバイス内に埋め込まれ得、定義されたルールのセットを少なくとも1つのプログラマブル・フィルタに送信することができる。いくつかの実装形態では、この埋込型コントローラは、アプリケーション・プログラミング・インターフェース(API:Application Programming Interface)を介して2つ以上のプログラマブル・スイッチング・デバイスを支配することができる。
【0022】
いくつかの実装形態では、報告モジュールは、コントローラに、ネットワーク、ホスト、又はデータ・フロー特性など、テレメトリを送信するように構成され得る。いくつかの実装形態では、コントローラは、テレメトリを分析し、分析に基づいて、定義されたルールのセットを自動的に更新することができる。
【0023】
いくつかの実装形態では、定義されたルールのセットはネットワーク管理者によって構成される。いくつかの実装形態では、定義されたルールのセットは機械学習又は人工知能(AI:Artificial Intelligence)技法によって構成される。いくつかの実装形態では、定義されたルールのセットは自動化によって構成される。
【0024】
いくつかの実装形態では、識別モジュールは、プログラマブル・スイッチング・デバイスとネットワークとのための識別プロトコルを与えることができる。
【0025】
いくつかの実装形態では、データ・パッケージング・モジュールは、プログラマブル・スイッチング・デバイスからのデータを受信及び送信するように構成され得る。いくつかの実装形態では、少なくとも1つのポートはワイヤード接続ポイントであり得る。いくつかの実装形態では、少なくとも1つのポートはワイヤレス接続ポイントであり得る。いくつかの実装形態では、少なくとも1つのポートは、別のタイプのネットワーク化ポート、たとえば、シリアル・インターフェースであり得る。
【0026】
別の実装形態では、ネットワーク・インフラストラクチャは、少なくとも2つのプログラマブル・スイッチング・デバイスであって、それぞれ、各ポートが少なくとも1つのプログラマブル・フィルタに通信可能に結合された少なくとも2つのポートを有する、少なくとも2つのプログラマブル・スイッチング・デバイスと、コントローラであって、少なくとも2つのプログラマブル・スイッチング・デバイスに通信可能に結合されたコントローラとを備えることができ、コントローラは、少なくとも2つのプログラマブル・スイッチング・デバイスの各ポートに通信可能に結合された少なくとも1つのプログラマブル・フィルタを、定義されたルールのセットでポピュレートする。
【0027】
いくつかの実装形態では、定義されたルールのセットは、データ・パケットがネットワーク化デバイスに送信されるか又はネットワーク化デバイスから送信されることを許可/拒否することができ、ネットワーク化デバイスは少なくとも2つのプログラマブル・スイッチング・デバイスの少なくとも2つのポートのうちの1つに通信可能に結合される。いくつかの実装形態では、定義されたルールのセットはネットワーク管理者によって構成され得る。いくつかの実装形態では、定義されたルールのセットは機械学習又は人工知能(AI)技法によって構成され得る。いくつかの実装形態では、定義されたルールのセットは自動化によって構成され得る。
【0028】
いくつかの実装形態では、報告モジュールは、コントローラに、ネットワーク、ホスト、又はデータ・フロー特性など、テレメトリを送信するように構成され得る。いくつかの実装形態では、コントローラは、テレメトリを分析し、分析に基づいて、定義されたルールのセットを自動的に更新することができる。
【図面の簡単な説明】
【0029】
【
図1】開示する技術のプログラマブル・スイッチング・デバイスのブロック図である。
【
図2】開示する技術のプログラマブル・スイッチング・デバイスの例示的な実例である。
【
図3】開示する技術のプログラマブル・スイッチング・デバイスを使用してネットワーク化デバイスからネットワークに送信されるデータ・パケットを記述するフロー・チャートである。
【
図4】開示する技術のプログラマブル・スイッチング・デバイスを使用してネットワークからネットワーク化デバイスに送信されるデータ・パケットを記述するフロー・チャートである。
【
図5】埋込型コントローラをもつ、開示する技術のプログラマブル・スイッチング・デバイスの実装形態のブロック図である。
【
図6】開示する技術のプログラマブル・スイッチング・デバイスのワイヤレス実装形態のブロック図である。
【
図7】開示する技術のプログラマブル・スイッチング・デバイスを利用するネットワークの例示的な実例である。
【発明を実施するための形態】
【0030】
オフィス・イントラネットは、グローバル・インターネットに似ているが、それの中の人々のみにとってアクセス可能なクローズド・ネットワーク・インフラストラクチャ上で動作する。運用技術(OT:Operational Technology)及びモノのインターネット(IoT:Internet of Things)デバイスは、これらのイントラネット上で動作し、建築物の物理インフラストラクチャ内に大量に存在する。これらのデバイスは、しかしながら、セキュリティ保護が不十分であり、セキュリティ上の欠陥のためにめったに更新されず、機能するためにネットワークとインターネット・アクセスとを必要とし、限定はしないが、建築物管理システム、物理セキュリティ・システム、オーディオビジュアル・システムなど、システムのための大きいセキュリティ・ターゲットを表す。
【0031】
ハッカーは、たとえば、建築物の安全特徴を改変し得、それによって生活安全リスクを引き起こす悪意のあるソフトウェアをネットワークに注入するためにこれらのデバイスをターゲットにするか、機密データをキャプチャするために企業のサーバをターゲットにするか、又は企業のネットワークを追加の攻撃のための拠点として使用する。
【0032】
従来のネットワーク・セキュリティは、たいてい、非セキュアな(「外側」)ネットワーク(すなわち、インターネット)とセキュアな(「内側」)ネットワークとの間の境界として働くファイアウォールに依拠する。これらのセキュアなネットワークでは、ネットワーク・トラフィック・フローは、ノースバウンド・フローが外側に、たとえば、インターネットに向かうとき、しばしば「北南」と呼ばれる方向に進む。対照的に、内側ネットワーク内の又は内側ネットワークにわたるフローは「東西」に進む。
【0033】
これらの従来のネットワーク・フィルタとともに使用されるファイアウォールは、管理者によってインストールされるセキュリティ・ポリシー「ルール」を介してフローをフィルタ処理する。これらのルールは、しばしばアクセス制御リストとして認識される、人間が読み取ることができる形式で表され、アクセス制御リストは、フィルタ属性と、パケットが属性と一致したときに取られるアクションとを指定する。使用中、ファイアウォールは、どのフローがセキュアなネットワークに入るかを制御するために「ステートフル」様式で動作する。ファイアウォールは、外側のクライアントからの着信「サウスバウンド」フローが企業のセキュアなネットワーク上の「インターネットフェイシング」サーバ(たとえば、企業のウェブサイト)にアクセスすることを可能にすることができる。ファイアウォールはまた、ネットワーク内(たとえば、ウェブサイト又はビデオ・サービスにアクセスするデスクトップ・コンピュータ)から開始された接続に応答するセキュアなネットワークへのサウスバウンド・フローを許すことができる。これらの「ステートフル」ファイアウォールは、応答が戻ることのみを可能にするためにセキュアなネットワークを離れるあらゆる「ノースバウンド」フローを追跡することができる。しかしながら、一般に、どの通信がネットワークから出得るのかを制限するためのノースバウンド・フローに関する制御はより少ないか、又はまったくない。簡単に言えば、現代のファイアウォールは、要塞(fortress)の周りの堀(moat)として働き、ネットワークの周囲(「エッジ」)において境界を与える。すなわち、ルールは要塞ゲートにおけるゲートキーパーであり、入り得る個人をスクリーニングする。
【0034】
複数のファイアウォールがこれらの従来のセキュアなネットワーク上にインストールされ得、ハッカーが克服するための複数の境界を作成する。たとえば、ファイアウォールは、インターネット・エッジ、データ・センター・エッジ、WAN(ワイド・エリア・ネットワーク)エッジなどに配置され得る。現代のサーバは、一般に、それらのオペレーティング・システム内でもファイアウォールを実行する。異なる製造業者とタイプとの様々なファイアウォール間の協調は極めて困難である。このタイプのパッチワーク・システムは、ネットワーク及びシステムの脆弱性につながる全体的なネットワーク・セキュリティ態勢においてホールを作成し得る。
【0035】
問題ケースA
信頼できるファイアウォール・ルールの作成及びそれらの進行中の管理は、数万個のルール又はそれ以上の数に達し得る、企業ネットワークをセキュリティ保護する現代のファイアウォールにおいて構成される莫大な数のルールによって増幅される、重要な課題である。ファイアウォール・ルールの順序付け、及び全体的なシーケンス内での新しいルールの位置的に適切な挿入は、他のルール(及びネットワークのセキュリティ態勢)に影響を及ぼし、また、挿入される新しいルールの効能に関係があり得る。このタイプのシステム内でのファイアウォール・ルールの作成は、したがって冗長でありエラーを起こしやすく、十分に理解されていないアプリケーション及びシステムの通信を制御しようと試みる個人によって行われる。さらに、ファイアウォール・ルールに対する従来の「ブラックリスティング」手法は、しばしば、セキュアなネットワークへの悪意のある又は不要なアクティビティであると管理者が考えていることによって作成される主観的なリストであり、デフォルトで、すべての他の通信が入ることを許す。これは、悪人であると考えられる個人を除いて、誰もが要塞に入るのを許すゲートキーパーに類似する。この手法は極めて危険であり、というのも、1つの悪意のあるフローであってもそれをブロックすることができないとセキュアなネットワークにハッカーを入れてしまう可能性があるからである。「ブラックリスティング」は、インターネット上でセキュリティ問題があまり一般的でなかったときの標準であり、ネットワーク管理者は、ネットワーク運営スタッフの世代にわたって必ずしも十分に理解されていなかった複雑なファイアウォール・ルールのこれらのもろいシーケンスを中断させたがらなかったので、この技法は長年にわたって永続してきた。
【0036】
「ホワイトリスティング」手法は、「ベスト・プラクティス」と考えられるが、上記で説明した理由で、あまり一般的でない。この手法は、所望の着信通信のみがセキュアなネットワークに入ることを可能にし、デフォルトで、すべての他の通信をブロックする。これは、ゲートキーパーが入るための基準を明示的に満たさない限り、誰も要塞に入ることを許さないゲートキーパーに類似する。この手法ははるかにセキュアである。すなわち、重要な利点は、フローを説明することができないと、フローがセキュアなネットワークへのアクセスを拒否されることになることである。
【0037】
このホワイトリスティング手法はまた、ネットワーク上のすべてのアプリケーション及びシステムの詳細な理解を必要とするので、開発及び維持することが困難であり得る。たとえば、ビジネスの運営に影響を及ぼし得る技術の中断が許容できないので、管理者は、生産サービスに影響を及ぼし得る古いルールを削除することを恐れているので、いくつかのルールはファイアウォールに永遠に残ったままである。これにより、アプリケーションが廃れ、新しいシステムが、異なるセキュリティ・ニーズをもつ古いネットワーク・アドレスを再利用する際に、穴が生じる。
【0038】
問題ケースB
上記で説明したように、ファイアウォールはネットワーク・エッジにおいて動作することができる。ハッカーがセキュアなネットワークに入ると、他のシステム及びアプリケーションを損なうためにネットワーク中を横方向に(「東西」)移動する実質的な自由がある。システムが損なわれると、ネットワークは、ネットワークから出たフローを制限し、機密データを密かに抽出することができないか、又は、他のネットワークに対して攻撃を行うために使用される。クレジット・カード、SSN(Social Security Number:社会保障番号)、医療データ、又は他のPII(Personally Identifying Information:個人識別情報)データ、企業資産及び他の機密情報を失う企業の広まりは、この重大な脆弱性の証左である。ハッカーは、彼らの所在を隠すために複数のネットワークを次々に移動するために、損なわれたシステムを使用する。損なわれたシステム内の脆弱性を使用して、ハッカーは、他のネットワークを攻撃するためにシステム自体のソフトウェアを使用する。ハッカーは、それらのアウトバウンド・フローをウェブ・クライアントのように見せかけ、それらの通信を暗号化することができる。どのアウトバウンド・フローが合法的であるかを解読し、その後、それらを制御することは極めて困難である。
【0039】
クラウドベースのサービスの急増に伴って、どのインターネット(IP)アドレス宛先が合法的であるかを知ることは、ほとんど不可能である。ハッカーはまた、同じクラウド・サービス中に彼らの活動拠点を置いているので、検出することが極めて困難になる。しばしば、インバウンドよりもアウトバウンドで開始される合法的なフローのほうがはるかに多いので、アウトバウンド・フローの量及び複雑さは圧倒的である。問題を悪化させることには、着信フローは、製造業者によってアプリケーション又はデバイスのアウトバウンド・フローよりもうまく文書化される。結果として、合法的なアウトバウンド・フローの流出の中で、悪意のあるアウトバウンド・フローが容易に見落とされ得る。
【0040】
たとえば、いくつかのネットワーク化製品は、サポートのためにそれらの製造業者に「フォン・ホーム」し、クラウドベースの技術及びサービス(すなわち、ソフトウェア・アップデート、使用データ及び統計についてそれの製造業者に連絡を取るFlat-Screen TV、すなわち、YouTube(登録商標)、NetflixなどにアクセスするTV上のアプリ)のより大きいエコシステムと一体化するために、アウトバウンド・フロー及びインターネット・アクセスにますます依拠する。いくつかの事例では、「フォン・ホーム」機能でさえ、個人の機密データ又は挙動情報を漏洩し得るので、望ましくないことがある。
【0041】
問題ケースC
デスクトップ・コンピュータ及びラップトップのネットワーク使用を理解し、制御することは、よく理解され、管理され得る。モバイル及びIoTデバイスは、しかしながら、ネットワーク内のそれらのアクティビティを理解し、制御するために必要とされる診断インターフェース及びサポートを有しない。たとえば、運用技術(OT:Operational Technology)(及び集合的にモノのインターネット(IoT))は、北南ベースの攻撃並びに東西ベースの攻撃の両方を大いに受けやすく、十分なインストゥルメンテーションの欠如のもとでは、セキュリティ保護することは極めて困難である。
【0042】
背景として、OTは、設備運営及びセキュリティ、たとえば、照明、冷暖房空調設備(HVAC:Heating,Ventilation,and Air Conditioning)、電気プラント/発電機、監視カメラ、セキュリティ・アクセス、会議室システム及びディスプレイ、エレベータ、印刷デバイス、ランドリー・システム、自動販売機、ポイント・オブ・セールス・システム、車両、航空機などのための重要なサポートを行うことができる。歴史的に、これらのデバイスは、制御システムに配線接続されるが、OTデバイスをネットワークにリンクすることは、より費用効果が高く、技術にわたるより大きい統合を可能にし、それの製造業者との「フォン・ホーム」サポートを行う。
【0043】
数十年間のOT製品開発がある多くの大手製造業者は、しかしながら、ネットワーク技術及びセキュリティに堪能でない。セキュリティは、しばしば、これらの製造業者によって、ネットワーク管理者が解決するべき問題として見られ、OTデバイス自体にはセキュリティがほとんど組み込まれない。たとえば、OT技術は、一般に、ネットワーク上へのアドミッションのための個々のデバイスの認証など(すなわち、802.1xプロトコル、ワイファイ・プロテクテッド・アクセス2(WPA2:Wi-Fi Protected Access 2)エンタープライズ、証明ベースの認証など)、基本的なエンタープライズ・グレードのセキュリティ技術をサポートしない。また、ネットワーク・ベースの診断と、ネットワーク上のOTデバイスのリアルタイムの挙動を理解することとについてのサポートは、ほとんど又はまったくない。さらに、OTデバイスによる「フォン・ホーム」機能は、しばしば、インターネット・アクセスをもつOTデバイスを与えることをインターネット・テクノロジー(IT:Internet Technology)部門に強制する、費用がかかるサポート契約によって義務づけられる。
【0044】
さらに、OTシステムのためのソフトウェア及びセキュリティ更新の進行中の開発は、しばしば、製造業者が次の研究開発(R&D:Research and Development)プロジェクトに移る際に制限されるので、新しい特徴を取得するために顧客アップグレードが必要になる。セキュリティ欠陥に対処するために新しい製品を購入することの負担は、何年もの間、ネットワーク上に脆弱性をもつレガシー基幹技術を永続させる。フラット・スクリーンTV及びホーム・ルータなどの日常の技術は影響を受けやすく、並びに、それらは、さらなるソフトウェア更新又はセキュリティ更新を与えられることなく、1~2年の間に時代遅れとなる。何千個ものこれらのデバイスが大規模ネットワーク上に存在し、しばしば、製造時期、ソフトウェア・バージョン、構成、及びセキュリティ態勢が異なる。OTは、それらが損なわれ得る相対的容易さと、「ハック」が企業に及ぼし得る悪影響とを考えれば、考慮すべきセキュリティ・ターゲットである。
【0045】
上記の問題を克服するために、個々にプログラマブルであり、さらに、統一されたコヒーレントなシステムとして調整されたポートのセットを含む、プログラマブル・スイッチング・デバイスを開発した。ここで、ネットワーク内の各ポートは、それ自体の個々のアクセス・ルールで保護されながら、アクセス・ルール・パラダイムを使用してセキュリティベースのセグメント化モデル又はセキュリティベースの分離モデルを確立するためにネットワーク全体にわたってこれらのルールを総合的に協調させ得る。このプログラマブル・スイッチング・デバイスは、さらに、SDN及び自動化と結合され、それによって、ネットワーク化デバイスへの又はネットワーク化デバイスからの不正アクセスがほとんど不可能になり得る。
【0046】
図1に示されているように、開示する技術のプログラマブル・スイッチング・デバイス10は、プロセッサ12と、メモリ14と、識別モジュール15と、アプリケーション・プログラミング・インターフェース(API:application programming interface)16と、報告モジュール17と、データ・パッケージング・モジュール18と、入出力(I/O:Input/Output)ネットワーク・ポート20a~pと、プログラマブル・フィルタ22a~pとを含むことができる。
【0047】
I/Oネットワーク・ポート20a~pは、データがネットワーク・インフラストラクチャに、ネットワーク・インフラストラクチャから、及びネットワーク・インフラストラクチャ内でパスされ得るように、任意のタイプのネットワーク化デバイス(ルータ、スイッチ、コンピュータ、IoTデバイスなど)がプログラマブル・スイッチング・デバイス10に接続されることを可能にする、任意のタイプの従来のI/Oポート20a~pであり得る。I/Oネットワーク・ポート20a~pは、様々なモード、たとえば、オープン・モード、学習モード、承認モード、限定モード、及び(プログラマブル・スイッチング・デバイス内でステートフル・ファイアウォーリング機構を必要とし得る)ステートフル・モードで動作するように構成され得る。
【0048】
各I/Oネットワーク・ポート(ポート20a~p)はそれ自体の個々のプログラマブル・フィルタ22a~pに通信可能に結合され得る。プログラマブル・フィルタ22a~pは、ネットワーク内のネットワーク化デバイスの対話を制御することができる定義されたルールのセットを使用して、(以下でより十分に説明する)ネットワーク・コントローラを介して設定され得る。定義されたルールのセットは、ネットワーク管理者によって、機械学習若しくは人工知能(AI)技法によって、自動化によって、又は何らかの他の従来の方法によって設定され得る。いくつかの実装形態では、これらのルールは、アクセス制御リスト(ACL:Access Control List)として人間が読み取ることができる形式で表され得る。
【0049】
一実装形態では、定義されたルールのセットは、(1)ネットワークのネットワーク化デバイスの使用を制御するアクセス・ルールのセットであるフロー・ポリシー・テンプレート(FPT:Flow Policy Template)と、(2)ネットワーク上でネットワーク化デバイスのセットのためのアクセスの範囲を制御するFPTのセットであるフロー・ポリシー・セグメント(FPS:Flow Policy Segment)と、(3)それのIP接続がFPS内でFPTを有するネットワーク化デバイスのセット、すなわち、同じFPS内でIP接続を共有するネットワーク化デバイスのセットであるフロー・ポリシー・グループとのうちの1つ又は複数を使用して定義され得る。他のタイプの定義されたルール・テンプレートが企図される。
【0050】
いくつかの実装形態では、定義されたルールのセットは、メモリ14に保存され、プログラマブル・スイッチング・デバイス10のプロセッサ12を用いて実装され得、したがって、プログラマブル・フィルタ22a~pは、必要に応じてメモリ及びプロセッサにアクセスすることができる。他の実装形態では、プログラマブル・フィルタ22a~pは、それら自体のデータ記憶機能、処理機能、ロギング機能又は統計機能を有することができる。
【0051】
いくつかの実装形態では、プログラマブル・スイッチング・デバイス10はAPI 16を含むことができる。API 16は、コントローラ50が各個々のプログラマブル・フィルタ22a~pについて定義されたルールのセットをプログラマブル・スイッチング・デバイス10に送信し、報告データを収集し、さもなければ、プログラマブル・スイッチング・デバイスを管理し、動作させることができるように、プログラマブル・スイッチング・デバイス10とコントローラ50とをリンクする、任意のタイプのインターフェース又は通信プロトコルであり得る。
【0052】
ホスト及びそれらのデータ・フローはネットワークへのアクセスを許可されるので、プロセッサ12とメモリ14とを使用するデータ・パッケージング・モジュール18は、ネットワーク化デバイスから要求された際にデータをパッケージし、送信することができる。いくつかの実装形態では、データ・パッケージング・モジュールは、プロセッサと無関係に自律的に動作することができ、APIを介して直接プログラムされる。さらに、データがネットワークからプログラマブル・スイッチング・デバイスに入る際、プロセッサ12とメモリ14とを使用するデータ・パッケージング・モジュール18は、データがネットワーク化デバイスに送信されることを可能にするためにアクセスが与えられるまで、データを受信し、保持することができる。言い換えれば、スイッチがデータを受信する際、スイッチ内のデータ・フローの一時停止がある。フローが承認されると、データ・フローは、所望のネットワーク化デバイスに流れることを可能にされる。
【0053】
プログラマブル・スイッチング・デバイス10はまた、報告モジュール17を使用して、プログラマブル・スイッチング・デバイス10を通過するデータからデータ・フロー特性を収集することができる。これらのデータ・フロー特性は、次いで、APIモジュール16を介してコントローラ50に転送され得、したがって、分析、たとえば、リアルタイムの脅威にアクセスすること、及びどのようなタイプのデータ・フローが所与のポートに対して一般的であるかを学習すること、又は異常なネットワーク挙動を識別することがデータ・フロー特性に対して実行され得る。たとえば、分析属性及び結果のログが生成され、随意に、プログラマブル・スイッチング・デバイス内に記録され、及び/又はコントローラに送られ得る。一致/非一致カウントなどの統計情報も記録され得る。
【0054】
プログラマブル・スイッチング・デバイス10はまた、識別モジュール15を含むことができる。識別モジュール15はプログラマブル・スイッチング・デバイス10のための特有の識別情報(ID:Identification)を含むことができる。使用中、(
図2に示された)コントローラ50は、いずれかのプログラマブル・スイッチング・デバイス10がネットワークに接続される前に特有のIDを与えられる。プログラマブル・スイッチング・デバイスがネットワークに接続されたが、デバイスが、コントローラ50によって認識されないIDを有する場合、その新たに接続されたスイッチング・デバイスは、ネットワークに接続することが不可能であり、アラートが発行され得る。この識別機構は、たとえば、暗号機構及び/又はキーベースの機構など、セキュアなプロセスを用いて保護され得る。
【0055】
図2において、プログラマブル・スイッチング・デバイス28はI/Oネットワーク・ポート41~48を含む。この実装形態では、8つのポートが使用されるが、任意の数のポートが利用され得、たとえば、大きいスイッチング・デバイスが数百個のポートを用いて構成され得る。これらのI/Oネットワーク・ポート41~48の各々は、個々のネットワーク化デバイス30~36に通信可能に結合され得る(たとえば、ポート41はコントローラに接続され、ポート42はセキュリティ・デバイス30に接続され、ポート43、44、47はセキュリティ・カメラ31、32、35に接続され、ポート45、46及び48はコンピュータ33、34、36に接続される)。
【0056】
各ポート41~48に関連づけられたプログラマブル・フィルタ22a~pはコントローラ50からプログラムされ得る。いくつかの実装形態では、コントローラ50は外部コントローラ又はスタンドアロン・コントローラであり得る。他の実装形態では、コントローラは、以下でより十分に説明する、プログラマブル・スイッチング・デバイス上に埋め込まれ得る。
【0057】
いくつかの実装形態では、コントローラ50は、たとえば、任意のタイプのSDN対応コントローラであり得る(他のタイプのコントローラが企図される)。SDN対応コントローラは、ネットワークに接続され、ファイアウォールを介して保護され得るか、又はプログラマブル・スイッチング・デバイスへの専用ラインを有し得る。SDN対応コントローラ50及びプログラマブル・スイッチング・デバイス28はアクティブなセキュア・プログラミング・インターフェースを介して通信し、アクティブなセキュア・プログラミング・インターフェースは、コントローラ50が、それの動作パラメータのためにリアルタイム又はほぼリアルタイムでネットワーク・インフラストラクチャと対話し、プログラマブル・スイッチング・デバイスにルール変更を送ることを可能にし、それによって新しい状況、たとえば、マルウェア攻撃に応答してそれらの動作を動的に変更する。これにより、コントローラ50は、旧来のネットワークではさもなければ不可能なスケール及び速度でネットワークの動作を支配することが可能になる。いくつかの実装形態では、従来のネットワークで利用不可能である外部データ・ソース、たとえば、外部データベース、テレメトリ・データなどが、開示されるネットワーク上で実装され得る。
【0058】
図2に示されているように、ネットワーク化デバイス30~36は、コントローラ50を介して設定されたFPTルール60~63に関連づけられ得る。たとえば、セキュリティ・デバイス30は、カメラ31、32、35及び管理ステーション36にデータを送信するアクセスを許可され得(FPTルール60)、管理ステーション36及びカメラ31、32、35はセキュリティ・デバイス30にデータを送信するアクセスを許可され得(FPTルール61)、デスクトップ・コンピュータ33はデスクトップ・コンピュータ34に送信することができ(FPTルール62)、デスクトップ・コンピュータ34はデスクトップ・コンピュータ33に送信することができる(FPTルール63)。(追加のルール及びそれの変形がインバウンド及びアウトバウンド制御のために各ポートのフィルタに適用され得ることに留意されたい。)
【0059】
図3は、保護されたネットワーク化デバイスから受信されたデータ・パケットがどのように許可されるかを示す流れ図である。ステップ1において、データ・パケットが、保護されたネットワーク化デバイスから送信される。ステップ2において、データ・パケットがプログラマブル・スイッチング・デバイスのネットワーク・ポートに入力される。データ・パケットは、次いで、ステップ3において、ネットワーク化デバイスに関連づけられたプログラマブル・フィルタに相関させられる。ステップ4において、そのネットワーク・ポート・フィルタに関連づけられたFPTルールを使用してデータ・パケットに対して分析が実行される。ステップ5において、パケット送信に関する決定が行われる。パケットがFPTルールのパラメータ内に入る場合、ステップ5aにおいて、データ・パケットは、ネットワークにアクセスすることを許可される。ステップ6aにおいて、パケットが次いでネットワークに送信される。パケットがFPTルールのパラメータ内に入らない場合、ステップ5bにおいて、データ・パケットは、ネットワークにアクセスすることを拒否される。ステップ6bにおいて、パケットが送信をブロックされる。
【0060】
図4は、外側のソースから受信されたデータ・パケットがどのように許可されるかを示す流れ図である。ステップ10において、データ・パケットがプログラマブル・スイッチング・デバイスに送信される。ステップ11において、データ・パケットがどのネットワーク・ポートに向けられるかに関する決定が行われる。データ・パケットは、ステップ12において、決定されたネットワーク・ポートに関連づけられたプログラマブル・フィルタに相関させられる。ステップ13において、ネットワーク・ポート・フィルタに関連づけられたFPTルールを使用してデータ・パケットに対して分析が実行される。パケット送信に関する決定が行われる。(ステップ14)。パケットがFPTルールのパラメータ内に入る場合、ステップ15aにおいて、データ・パケットは、宛先ネットワーク化デバイスに送信されることを許可される。パケットがFPTルールのパラメータ内に入らない場合、ステップ15bにおいて、データ・パケットは、宛先ネットワーク化デバイスへのアクセスを拒否される。
【0061】
図5に示されているように、プログラマブル・スイッチング・デバイス150は埋込型コントローラを含むことができる。プログラマブル・スイッチング・デバイス150は、プロセッサ152と、メモリ154と、識別モジュール155と、コントローラ156と、報告モジュール157と、データ・パッケージング・モジュール158と、I/Oネットワーク・ポート160a~pと、ロギング機能及び統計機能をもつプログラマブル・フィルタ162a~pとを含むことができる。埋込型コントローラ156をもつプログラマブル・スイッチング・デバイス150はプログラマブル・スイッチング・デバイス10と同様の様式で機能し、受信及び送信されたデータ・パケットは、上記で説明したように、FPTルールに従う。いくつかの実装形態では、埋込型コントローラは、それらのAPIを介して1つ又は複数のプログラマブル・スイッチング・デバイスを支配することができる。
【0062】
埋込型コントローラ156は、たとえば、定義されたルールを設定し、プログラマブル・スイッチング・デバイスを管理するための仮想制御アプリケーションを動作させる、ウェブ・インターフェース又は物理ネットワーク化デバイスを用いてアクセスされ得る。
【0063】
図6は、開示する技術のワイヤレス・プログラマブル・スイッチング・デバイス110の実装形態を示す。ワイヤレス・プログラマブル・スイッチング・デバイス110は、プロセッサ112と、メモリ114と、識別モジュール115と、API 116と、報告モジュール117と、データ・パッケージング・モジュール118と、I/Oネットワーク・ポート120a~bと、ロギング機能及び統計機能をもつプログラマブル・フィルタ122a~bとを含むことができる。ワイヤレス・プログラマブル・スイッチング・デバイス110はプログラマブル・スイッチング・デバイス10と同様の様式で機能し、ワイヤレスで受信及び送信されたデータ・パケットは、上記で説明したように、FPTルールに従う。いくつかの実装形態では、ワイヤレス・プログラマブル・スイッチング・デバイス110は、プログラミング・スイッチング・デバイス150中に示されているように、埋込型コントローラ156を含むことができる。
【0064】
定義されたルールのセットが開示する技術のプログラマブル・スイッチング・デバイス中に構成されると、各ネットワーク化デバイスは、他のネットワーク技術では不可能である許可されたアクセス・モデルに基づいて完全に分離されているので、ネットワーク化デバイスへの又はネットワーク化デバイスからの不正アクセスはほぼ不可能である。
【0065】
開示する技術のプログラマブル・スイッチング・デバイスの特有の特徴は、(1)ネットワーク化デバイスのIP及びMACアドレスに基づくLANファイアウォーリング手法と、(2)共有LAN上のセキュリティ制御によるフロー・ポリシーベースのセグメント化と、(3)SDNベースのLAN制御、たとえば、スイッチ又はコントローラベースのポリシー管理と、(4)自動化フロー検出及びフロー・ポリシー・テンプレート作成と、(5)フロー受入れ及び管理と、(6)不要なアウトバウンド(ノースバウンド)・フロー及び潜在的なデータ漏洩の防止と、(7)単一又は複数のLAN(又はVLAN)にわたる分散型ファイアウォール・ポリシーとを含むことができる。
【0066】
開示する技術のプログラマブル・スイッチング・デバイスはまた、ネットワーク化デバイスのソースIPアドレス(IPv4又はIPv6)及びMACアドレス上で動作することが可能であり、他のLANネットワーク化デバイスにとって不可視になり得る透過レイヤ2デバイスとして使用される。いくつかの実装形態では、プログラマブル・スイッチング・デバイスはまた、ネットワーク・フレーム・ヘッダ、パケット・ヘッダ、又はネットワーク・フレーム若しくはパケットのコンテンツの他の要素上で透過的に動作することができる。
【0067】
開示する技術のプログラマブル・スイッチング・デバイスはまた、LAN内及びLAN(又はVLAN)間でのフロー・ポリシー・セグメント(FPS)の作成を可能にするソース及び宛先IP及び/又はMACアドレスを介してファイアウォール・ポリシーを作成することができる。開示する技術のプログラマブル・スイッチング・デバイスは、さらに、LAN上に又はLAN(又はVLAN)にわたってネットワーク化デバイス間にファイアウォールベースのクローズド通信経路を作成することができる。たとえば、フロー・ポリシー・セグメントは、随意に、限定はしないが、プロトコル・タイプ及びポート番号など、追加の属性を用いて、個々のソース・アドレス又はIPアドレス・ブロックから個々の宛先アドレス又はIPアドレス・ブロックへのフローを許可することができる。他の実装形態では、以下でより十分に説明する、フェデレーションによって2つ以上のプログラマブル・スイッチング・デバイス間にFPSが適用され得る。
【0068】
ポートが比較的少なく、ルールのセットが非常に大きい従来のファイアウォールとは対照的に、開示する技術のプログラマブル・スイッチング・デバイスは、はるかに広い数のネットワーク・ポートにわたって分配され、個々のネットワーク・ポート上のすべてのネットワーク化デバイスに、又は指定されたネットワーク化デバイスIPアドレスに適用され得る、ファイアウォール・ルールのより小さいセットを利用することができる。
【0069】
開示する技術のプログラマブル・スイッチング・デバイスは、さらに、フロー・ポリシー・テンプレートの作成によってネットワーク・フローを制約するためのポリシーを動的に識別し、追跡し、作成するために、SDNに依拠することができ、フロー・ポリシー・テンプレートは、次いで、ネットワーク化デバイスのIPアドレスに適用され得る。SDNはまた、以下でより十分に説明する、フロー・ポリシー・テンプレートがホワイトリスト・ルールを設定し、それらの動作を支配することを可能にする。
【0070】
フロー・ポリシー・テンプレート及びそれの基礎となるアクセス制御リストに対するテンプレート・タイプ手法はまた、プログラマブル・スイッチング・デバイスが、たとえば置換及び処理論理などの動作をフロー・プロファイル・テンプレート及びそれのアクセス制御リストの要素及び属性に適用し、それによってポート・フィルタが、特有の動的で適応可能なネットワーク・アクセス・パラダイムを作成することを可能にする。たとえばNodeID、フレーム又はパケット・ヘッダ及びコンテンツ、リアルタイム・ネットワーク・フロー・データ、及び外部ソースからのデータなどのデータは、発展しつつあるセキュリティ・ポリシーの動的なニーズによって必要とされる、フロー・ポリシー・テンプレート、フロー・ポリシー・セグメント、及びフロー・ポリシー・グループの特性及び挙動を調整するために活用され得る。たとえば、パターン・マッチング、置換、算術演算、比較、及び処理論理を含む、演算の使用によって、これらの動的調整の適用を促進するための言語が採用される。
【0071】
開示する技術のプログラマブル・スイッチング・デバイスは、さらに、コントローラとして働くスイッチを用いて、又は専用コントローラを用いて、集中型又は分散型構成において動作することができる。
【0072】
開示する技術のプログラマブル・スイッチング・デバイスはまた、旧来のスイッチ(非ファイアウォール化)として、又はプログラマブル・モードで動作することができる。セキュリティ態勢におけるギャップを回避するためにプログラマブル・モードで動作することをすべてのポートに強制するために、プログラマブル・スイッチング・デバイスのグローバル設定が使用され得る。いくつかの実装形態では、いずれかのモードで動作するポートの組合せとともに、ハイブリッド構成が必要とされる。
【0073】
開示する技術のプログラマブル・スイッチング・デバイス及びそれのコントローラは、ソース及び宛先アドレス、プロトコル、及びポート番号などの属性を使用して、内側から外側へ(又は外側から内側へ)、内側から内側へ、又は外側から外側へなど、ネットワーク上の新しいフローを識別し、フローの性質を特徴づけることができる。いくつかの実装形態では、プログラマブル・スイッチング・デバイスはまた、ネットワーク・フレーム・ヘッダ、パケット・ヘッダ、又はネットワーク・フレーム若しくはパケットのコンテンツの他の要素を特徴づけることができる。
【0074】
ネットワーク化デバイスのための新しいフローが検出された場合、許可する、拒否する、又は承認を待つ、のいずれかのために、構成されたポリシーごとにアラートがトリガされ得る。さらに、すべてのフローはフロー・ポリシー・テンプレート内に登録され得、「オープン」ポートは、「任意から任意への」フローを許可するフロー・ポリシー・テンプレートを用いて動作することができる。
【0075】
開示する技術のプログラマブル・スイッチング・デバイス及びそれのコントローラは、ポリシー・テンプレートと一致せず、悪意のある又は不要なアクティビティを示し得る、異常なトラフィック・パターンに対してアラートを生成することができる。たとえば、スケーラブルな有限個のルールをもつポリシー・テンプレートによって制約され得ない過大な数の動的フローを生成するネットワーク化デバイスは、旧来のステートフル・ファイアウォール方式へのフォールバックをトリガするか、又はネットワーク管理者に可聴若しくは文書アラートを送る。
【0076】
フロー・ポリシー・テンプレートは、フロー受入れモデル、たとえば、(1)すべてのフローを許可する「オープン・モード」と、(2)コントローラが、そのポートを通るすべてのフローを許可し、追跡し、トラフィックを記述するフロー・ポリシー・テンプレートを展開させる「学習モード」と、(3)すべての新しいフローがポートを通り、ネットワーク化デバイスまで許可される前にそれらが手動で承認されなければならず、それによってフロー・ポリシー・テンプレートを手動で作成する「承認モード」と、(4)フロー・ポリシー・テンプレートがアクティブである通常動作であり、スイッチ・ポート上のトラフィックを制限する「制限モード」と、(5)すべてのアウトバウンド・フローをステートフルに許可する、すなわち、承認された例外をもつすべての非ステートフル・インバウンド・フローを拒否する「ステートフル・モード」とに基づいて作成され得る。他のモードが企図される。
【0077】
一実装形態では、ホワイトリスティング・モデルは、フロー・ポリシー・テンプレートによって明示的に許可されるフローのみを許可することができる。フロー・ポリシー・テンプレート内に現れないフローは、フロー・ポリシー・セグメントに入ることを許可されず、それによって、ネットワーク走査又は攻撃など、不要なインバウンド・トラフィックを防ぐ。フロー・ポリシー・テンプレート内に現れないフローは、フロー・ポリシー・セグメントから出ることを許可されず、それによって、ネットワーク走査、攻撃、他のソフトウェアと融合しようとする試み、又はサード・パーティとの接触など、不要なアウトバウンド・トラフィックを防ぐ。この実装形態は、フロー・ポリシー・テンプレートに一致するアウトバウンド・フローのみを許可することによって、フロー・ポリシー・セグメントの外側へのデータ漏洩を防ぐ。
【0078】
別の実装形態では、運用技術(OT)及びモノのインターネット(IoT)デバイスには、特徴として、ネットワークにセキュアにログインし、アクセスするための企業レベルの特徴がない。そのようなネットワーク化デバイスは、NodeID、たとえば、MACアドレス、IPアドレス(IPv4又はIPv6、クラスレス・ドメイン間ルーティング(CIDR:Classless Inter-Domain Routing)表記)又はそれらの組合せをもつネットワークのみによって識別され得る。開示する技術は、2つの特有のパラメータ、たとえば、ネットワーク・スイッチ又はワイヤレス・アクセス・ポイント(WAP)などのネットワーク化デバイスのアタッチメント・デバイス、及びネットワーク・スイッチ上のポート又はワイヤレス関連付けIDなどのアタッチメント識別子を使用して、ネットワーク・ロケーション識別(LocID:Location Identification)を定義することができる。このシナリオでは、LocIDは、(スイッチID+スイッチ・ポート)又は(WAP+ワイヤレス関連付けID)などと等しくなり得る。これらのネットワーク・ロケーション識別子指定は、ネットワーク上のすべてのネットワーク化デバイスのためのロケーション、たとえば、LocNodeID=LocID+NodeIDを確立する。
【0079】
使用中、スイッチが企業にわたってフェデレートされているとき、ネットワークは、それのトポロジーにわたってNodeID及びLocNodeIDを認識することができる。これらの指定を使用して、新規の開示する技術は、セキュリティ・ポリシーがネットワーク全体にわたることを可能にする。たとえば、物理インフラストラクチャの1つのセット上の複数のトポロジー、1つ又は複数の物理プログラマブル・スイッチング・デバイスにわたることができる仮想スイッチ・コンストラクトの作成、又は異なる使用事例(たとえば、管理ドメイン)のためにプログラマブル・スイッチング・デバイスを一緒にグループ化することを可能にする、仮想トポロジー(vTopology:Virtual Topology)が作成され得る。他の仮想トポロジー使用が企図されている。仮想化ネットワーク・トポロジー内のネットワーク化デバイス・ロケーションは、たとえば、(vTopLocID=vTopologyID+LocID)又は(vTopLocNodeID=vTopologyID+LocNodeID)であり得る。
【0080】
さらに、ネットワーク上のネットワーク化デバイスの挙動は、それが接続されるプログラマブル・スイッチング・デバイスを通ってデータが流れる際の、それの特有の送信によって特徴づけられ得る。ネットワーク化デバイスのフローのセットは、ソフトウェア定義ネットワーキング(SDN:Software Defined Networking)技法によって特徴づけられ、フロー・ポリシー・テンプレート(FPT)として表され得る。たとえば、上記で説明したように、運用技術(OT)及びモノのインターネット(IoT)デバイスは、一般に、多数の特有の動的なフローを生成しないが、むしろ、たとえば、管理システム、製造業者のサーバ、又は同様のデバイス間などに、限られた数の反復フローを生成する。これらのトラフィック・パターンは、学習され、特徴づけられ、テンプレート化され、SDN技術を介して、開示する技術のプログラマブル・スイッチング・デバイスにプログラムされ得る。言い換えれば、運用技術(OT)及びモノのインターネット(IoT)デバイスによって生成されたフロー・パターンを特徴づけることは、それらのフロー・タイプが、人々によって使用される対話型デバイス、たとえば、デスクトップ、ラップトップ、フロー・パターンがはるかに複雑であるハンドヘルドと比較して、数が限定されるので、比較的容易であり得る。
【0081】
その上、互いに通信するネットワーク化デバイスは、共通のフロー・ポリシー・テンプレート、又はインターリンクされる異なるフロー・ポリシー・テンプレートの一部を共有することができる。各ネットワーク化デバイスのネットワーク・ロケーションID(vTopLocNodeID)は、インバウンド及びアウトバウンド・アクセス制御リストを含んでいる、FPTにリンクされ得る。FPTのアクセス制御リストは、たとえば、どのトラフィックを許可し、そうでなければすべてを拒否するかを指定するホワイトリストである。
【0082】
フロー・ポリシー・テンプレートは、FPT IDと、方向(それぞれ接続されたネットワーク化デバイスは両方を有しなければならないので、インバウンド又はアウトバウンド)と、リンクされたFPS(このFPTがそれにリンクされるFPS ID)と、ソース(vTopLocNodeIDであり、接続されたインバウンドFPT上のネットワーク化デバイスでなければならない)と、プロトコル(IPプロトコル・タイプ)と、ポート(ポート番号又はプロトコル・サブ識別子であり、動的クライアント側ポート番号のために動的であり得る)と、宛先(vTopLocNodeIDであり、アウトバウンドFPT上のターゲット・ネットワーク化デバイスでなければならない)と、アクション(このフロー上で取られるアクションであり、許可/拒否又はソフトウェア定義(SDN制御)を含むことができる)と、デフォルト・ファイナル・ルール(削除され得ず、すべてのネットワーク化デバイスからすべてのネットワーク化デバイスへのトラフィックを拒否する(ホワイトリスティングを強制する))とを指定するために構成され得る。他のアクション及びFPT要素が企図される。
【0083】
すべての新たに接続されたネットワーク化デバイス(又はネットワーク化デバイスのタイプ)は、同様のデバイスのクラスのためのテンプレート化されたセキュリティ制御、たとえば、所望のポリシーを用いてそれがリンクされるFPS IDを含んでいるFPTの適用を可能にする、それのテンプレートが所望のポリシーに設定される初期FPTを有することができる。
【0084】
別の実装形態では、フロー・ポリシー・テンプレート(FPT)がネットワーク化デバイスのNodeIDにリンクされ得る。このFPTはネットワーク全体にわたってコンピュータ又はネットワーク化デバイスに従うことができる。この実装形態では、プログラムされたフィルタは、保護されたネットワーク化デバイスが所与の瞬間(又はコンピュータが維持しているワイヤレス関連付け/接続)において接続されるスイッチ上のポートに適用されるが、保護されたネットワーク化デバイスがスイッチ上で1つのポートから切断され、同じ又は異なるスイッチ上の別のポートに移動される場合(又は保護されたコンピュータがワイヤレスである部屋から別の部屋に移動し、別のWAPにシフトする場合)、FPT内のこのネットワーク化デバイスのためのルールはそれの新しいポートに適用され得る。すなわち、FPTは、元のスイッチ・ポートから新しいポートに(又は元のワイヤレス関連付けIDから新しいワイヤレス関連付けIDに)シフトされ得る。コントローラはネットワーク上のすべてのスイッチ(又はWAP)を監督するので、FPTのシフトはコントローラによって行われ得る。この実装形態では、スイッチ(又はWAP)はまた、保護されたコンピュータが移動し、新しいポート(又はワイヤレス関連付け)上でFPTのフィルタのプログラミングを受け入れることができることをコントローラにアラートするインテリジェンスを有することができる。
【0085】
ネットワーク化デバイスはまた、フロー・ポリシー・セグメント(FPS)を作成するために、1つ又は複数のプログラマブル・スイッチング・デバイスにわたるフロー・ポリシー・テンプレートの適用によってネットワーク上で分離又はセグメント化され得る。FPSは、あらゆるネットワーク化デバイスのネットワーク接続上でアクセス制御リストによって執行されるホリスティックなネットワーク・ポリシーを作成するためにインターリンクされる、FPTの集合である。各FPSはインバウンド・フロー・ポリシーとアウトバウンド・フロー・ポリシーとを有する。フロー・ポリシー・セグメントは、それのFPT内で表されるセキュリティ制御を反映するアクセス制御リストを介した、すべてのスイッチ・イングレス・ポート及びイグレス・ポート上で保護されるプライベート通信経路である。FPSにリンクされるFPTによって明示的に許可されない限り、いかなるものもそのFPSに入ること又はそのFPSから出ることはできない。
【0086】
フロー・ポリシー・セグメントは、FPS IDと、FPS名(32文字のテキスト(スペースなし))と、説明(255文字の自由形式の印刷可能なテキスト)と、トポロジーID(このFPSがそれのメンバーであるvTopology ID)と、FPTリスト(このFPSにリンクされるすべてのFPTのリスト)とを指定するように構成され得る。FPTは、インバウンド及びアウトバウンド方向を有し、FPS上に双方向ポリシーを作成することができる。FPTは、同様のネットワーク化デバイス、たとえば、すべてのネットワーク化デバイス、ネットワーク化デバイスのサブセット、又はネットワーク化デバイスのタイプのクラスのためにテンプレート化され得る。他のFPS要素が企図される。
【0087】
SDN技法は、ネットワーク化デバイスのクラスの挙動を学習し、1つ又は複数のプログラマブル・スイッチング・デバイスからなる小さい又は大きいネットワーク・フットプリントにわたって、多数の同様のネットワーク化デバイス(すなわち、ビデオ監視カメラ、カード・アクセス・リーダー、ビルディング・センサーなど)のためのテンプレートとして、学習された又は定義されたFPTを適用することができる。FPTは、SDNを介して、vTopLocNodeID、又はvTopLocNodeIDの同様のクラスのメンバーに適用され、ネットワークのデバイスの使用が更新などにより発展する際に、動的に維持され得る。SDNはまた、FPT内でアクセス・ルールのアクション(すなわち、許可/拒否、又はソフトウェア定義)を動的に決定するために使用され得る。
【0088】
図7は、開示する技術のプログラマブル・スイッチング・デバイスを利用するネットワーク構造200の実例を示す。
図7において、企業ネットワーク・スイッチング・デバイス204は、ネットワーク構造200のための第1のティア・スイッチング・デバイスであり得る。企業ネットワーク・スイッチング・デバイス204は、ポート1においてインターネット202に、ポート2においてネットワーク・コントローラ206に、及びポート7において1つ又は複数の第2のティア・スイッチング・デバイス、たとえば、多目的(mixed-use)スイッチング・デバイス220に、ポート6においてOTスイッチング・デバイス230に、及びポート5において多目的スイッチング・デバイス240に通信可能に接続され得る。
【0089】
多目的スイッチング・デバイス220は、いくつかの異なるタイプのネットワーク化デバイス、たとえば、それぞれポート8、7においてデスクトップ・コンピュータ221、222に、及びそれぞれポート6、5においてセキュリティ・カメラ223、224に通信可能に結合され得る。OTスイッチング・デバイス230は、いくつかのビルディング・インフラストラクチャ・ネットワーク化デバイス、たとえば、ポート8において物理セキュリティ制御パネル231に、それぞれポート7、6においてセキュリティ・カメラ232、233に、及びポート5においてHVAC管理ステーション234に通信可能に結合され得る。多目的スイッチング・デバイス240は、いくつかの異なるタイプのネットワーク化デバイス、たとえば、それぞれポート6、5においてデスクトップ・コンピュータ243、244に、及びそれぞれポート8、7においてワイヤレス・アクセス・ポイント241、242に通信可能に結合され得る。ワイヤレス・アクセス・ポイント241、242は、たとえば、1つ又は複数のラップトップ・コンピュータ245にワイヤレスで接続され得る。
【0090】
使用中、ネットワーク・コントローラは、上記で説明したように、企業ネットワーク・スイッチング・デバイス204、多目的スイッチング・デバイス220、240及びOTスイッチング・デバイス230の各ポートについて、ファイアウォール・ルール又はアクセス制御リストを用いて、個々のフィルタをプログラムすることができる。
【0091】
本明細書で説明する主題と動作との実施例は、デジタル電子回路において、又は本明細書及びそれらの構造等価物に開示されている構造を含む、コンピュータ・ソフトウェア、ファームウェア、若しくはハードウェアにおいて、又はそれらのうちの1つ若しくは複数の組合せにおいて実装され得る。本明細書で説明する主題の実施例は、1つ又は複数のコンピュータ・プログラム、すなわち、データ処理装置による実行のための、又はデータ処理装置の動作を制御するための、コンピュータ記憶媒体上に符号化される、コンピュータ・プログラム命令の1つ又は複数のモジュールとして実装され得る。代替的に、又はさらに、プログラム命令は、人工的に生成される伝搬信号、たとえば、データ処理装置による実行のための好適な受信機装置への送信のための情報を符号化するために生成される、機械生成される電気信号、光信号、又は電磁信号上に符号化され得る。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダム若しくはシリアル・アクセス・メモリ・アレイ若しくはデバイス、又はそれらのうちの1つ若しくは複数の組合せであるか、又はその中に含まれ得る。
【0092】
本明細書で説明する動作は、1つ若しくは複数のコンピュータ可読記憶デバイス上に記憶されるか又は他のソースから受信されるデータに対してデータ処理装置によって実行される動作として実装され得る。用語「データ処理装置」は、例として、プログラマブル・プロセッサ、コンピュータ、システム・オン・チップ、又はそれらの組合せを含む、データを処理するためのすべての種類の装置、デバイス、及び機械を包含する。装置は、専用論理回路、たとえば、フィールド・プログラマブル・ゲート・アレイ(FPGA:Field Programmable Gate Array)又は特定用途向け集積回路(ASIC:Application-Specific Integrated Circuit)を含むことができる。装置はまた、ハードウェアに加えて、当該のコンピュータ・プログラムのための実行環境を作成するコード、たとえば、プロセッサ・ファームウェア、プロトコル・スタック、データベース管理システム、オペレーティング・システム、クロスプラットフォーム・ランタイム環境、たとえば、仮想マシン、又はそれらのうちの1つ若しくは複数の組合せを構成するコードを含むことができる。装置及び実行環境は、様々な計算モデル・インフラストラクチャ、たとえば、ウェブ・サービス、分散型コンピューティング及びグリッド・コンピューティング・インフラストラクチャを実現することができる。
【0093】
(プログラム、ソフトウェア、ソフトウェア・アプリケーション、スクリプト、又はコードとしても知られる)コンピュータ・プログラムは、コンパイラ型言語又はインタープリタ型言語、宣言型言語又は手続き型言語を含む、任意の形態のプログラミング言語で書かれ得、コンピュータ・プログラムは、スタンド・アロン・プログラムとして、又はモジュール、構成要素、サブルーチン、オブジェクト、又はコンピューティング環境において使用するために好適な他のユニットとして、を含む、任意の形態で展開され得る。コンピュータ・プログラムは、ファイル・システムにおけるファイルに対応し得るが、対応する必要はない。プログラムは、他のプログラム又はデータ(たとえば、マークアップ言語文書に記憶される1つ又は複数のスクリプト)を保持するファイルの一部分に記憶されるか、当該のプログラムに専用の単一のファイルに記憶されるか、又は複数の協調ファイル(たとえば、1つ又は複数のモジュール、サブプログラム、又はコードの部分を記憶するファイル)に記憶され得る。コンピュータ・プログラムは、1つのコンピュータ上で実行されるために、又は1つのサイトに位置するか若しくは複数のサイトにわたって分配され、通信ネットワークによって相互接続される複数のコンピュータ上で実行されるために展開され得る。
【0094】
本明細書で説明するプロセス及び論理フローは、入力データに対して動作し、出力を生成することによって機能を実行するために1つ又は複数のコンピュータ・プログラムを実行する1つ又は複数のプログラマブル・プロセッサによって実行され得る。プロセス及び論理フローはまた、専用論理回路、たとえば、FPGA(フィールド・プログラマブル・ゲート・アレイ)又はASIC(特定用途向け集積回路)によって実行され得、装置はまた、専用論理回路、たとえば、FPGA(フィールド・プログラマブル・ゲート・アレイ)又はASIC(特定用途向け集積回路)として実装され得る。
【0095】
コンピュータ・プログラムの実行のために好適なプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、及びあらゆる種類のデジタル・コンピュータのいずれか1つ又は複数のプロセッサを含む。一般に、プロセッサは、読取り専用メモリ又はランダムアクセス・メモリ又は両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行(perform)又は実行(execute)するためのプロセッサと、命令及びデータを記憶するための1つ又は複数のメモリ・デバイスである。一般に、コンピュータはまた、データを記憶するための1つ又は複数の大容量記憶デバイス、たとえば、磁気ディスク、磁気光ディスク、又は光ディスクを含むか、或いはそのような大容量記憶デバイスからデータを受信するために、又は大容量記憶デバイスにデータを転送するために、又は両方のために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。その上、コンピュータは、別のデバイス、たとえば、ほんの数例を挙げれば、携帯電話、パーソナル・デジタル・アシスタント(PDA:Personal Digital Assistant)、モバイル・オーディオ又はビデオ・プレーヤ、ゲーム・コンソール、全地球測位システム(GPS:Global Positioning System)受信機、又はポータブル記憶デバイス(たとえば、ユニバーサル・シリアル・バス(USB:Universal Serial Bus)フラッシュ・ドライブ)中に組み込まれ得る。コンピュータ・プログラム命令及びデータを記憶するために好適なデバイスは、例として、半導体メモリ・デバイス、たとえば、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electronically Erasable and Programmable Only Memory)、及びフラッシュ・メモリ・デバイス、磁気ディスク、たとえば、内蔵ハード・ディスク又はリムーバブル・ディスク、光磁気ディスク、及びCD-ROM(Compact Disc Read Only Memory)及びDVD-ROM(Digital Video Disk Read Only Memory)ディスクを含む、すべての形態の不揮発性メモリ、媒体及びメモリ・デバイスを含む。プロセッサ及びメモリは、専用論理回路によって補足されるか、又は専用論理回路に組み込まれ得る。
【0096】
ユーザとの対話を可能にするために、本明細書で説明する主題の実施例は、ユーザに情報を表示するためのディスプレイ・デバイス、たとえば、陰極線管(CRT:Cathode Ray Tube)又は液晶ディスプレイ(LCD:Liquid Crystal Display)モニターと、ユーザがそれによってコンピュータに入力を与えることができる、キーボード及びポインティング・デバイス、たとえば、マウス又はトラック・ボールを有するコンピュータ上で実装され得る。ユーザとの対話を可能にするために他の種類のデバイスも使用され得、たとえば、ユーザに与えられるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックであり得、ユーザからの入力は、音響入力、音声入力、又は触覚入力を含む任意の形態で受信され得る。さらに、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信すること、及びそのようなデバイスからドキュメントを受信することによって、ユーザと対話することができる。
【0097】
本明細書で説明する主題の実施例は、バックエンド構成要素、たとえば、コントローラ、データ・サーバ及びミドルウェア構成要素、たとえば、アプリケーション・サーバ又はフロントエンド構成要素、たとえば、ユーザがそれによって本明細書で説明する主題の実装形態と対話することができるグラフィカル・ユーザ・インターフェース又はウェブ・ブラウザを有するクライアント・コンピュータ、或いは1つ又は複数のそのようなバックエンド構成要素、ミドルウェア構成要素、又はフロントエンド構成要素の任意の組合せを含む、コンピューティング・システムにおいて実装され得る。システムの構成要素は、デジタル・データ通信の任意の形態又は媒体、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの実例は、ローカル・エリア・ネットワーク(「LAN」)及びワイド・エリア・ネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、及びピアツーピア・ネットワーク(たとえば、アドホック・ピアツーピア・ネットワーク)を含む。
【0098】
コンピューティング・システムはクライアントとサーバとを含むことができる。クライアントとサーバとは、一般に互いにリモートであり、一般に通信ネットワークによって対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作し、互いにクライアントサーバ関係を有する、コンピュータ・プログラムによって生じる。いくつかの実施例では、サーバは、(たとえば、クライアント・デバイスと対話しているユーザにデータを表示し、そのようなユーザからユーザ入力を受信する目的で)クライアント・デバイスにデータ(たとえば、HTML(Hypertext Markup Language)ページ)を送信する。クライアント・デバイスにおいて生成されたデータ(たとえば、ユーザ対話の結果)は、サーバにあるクライアント・デバイスから受信され得る。
【0099】
上記の発明を実施するための形態は、あらゆる点において限定的ではなく、説明的及び例示的であるとして理解されるべきであるが、本明細書で開示された、開示された技術の範囲は、発明を実施するための形態から決定されるべきではなく、むしろ、特許法によって許可される十分な範囲に従って解釈される特許請求の範囲から決定されるべきである。本明細書で図示され、説明された実施例は、開示された技術の原理を例示するものにすぎず、開示された技術の範囲及び趣旨から逸脱することなく、様々な改変が当業者によって実施され得ることが理解されるべきである。当業者は、開示された技術の範囲及び趣旨から逸脱することなく様々な他の特徴の組合せを実施し得る。本開示の実施例について特定の実例を用いて説明したが、本開示はそれらの特定の実例に限定されないこと、並びに、以下の特許請求の範囲に関して決定されるべきである開示された技術の範囲及び趣旨から逸脱することなく、様々な他の変更、組合せ及び改変が当業者に明らかになることが理解されるべきである。
【国際調査報告】