通信の手段を改善することにより、人類の初期の始まりから文明は進歩してきた。徒歩で、または馬に乗って移動する宅配便や配達員の使用から、電車、トラック、及び飛行機による郵便配達を経て、電信、電話、無線、テレビ、コンピュータ、携帯電話、そしてインターネット、電子メール、及びワールド・ワイド・ウェブ(WWW)の出現に至り、より最近では、ソーシャルメディア、ボイスオーバーインターネット、マシン・ツー・マシン(M2M)接続、IoT(Internet of Thing)、及びIoE(Internet of Everything)を通して、通信は常に当代の最新技術の活用において先駆けとなっている。それぞれの新しい時代の電気通信技術が採用されるとともに、接続される人々の数、及びそれらの人々の間で情報が運ばれる速度も増加している。
この傾向の影響は、歴史上のいかなるときと比較しても、人類がより接続されており、通信技術によって、私的、個人的、家族的、及び財政的情報が、接続することを意図された対象にのみ、安全かつ確実に配信されることを、人々が信頼、及び依存しているということである。知識、及び情報は数百万人の人々に数秒で配信されるようになり、友人や家族は、ボタンを押すだけで地球の反対側の人と連絡を取ることができる。「世界は非常に狭い場所になっている」と、しばしば言われている。
このような進歩は誰にとっても非常に有益であるが、我々が技術に対し重度に依存していることの皺寄せも存在する。例えば、地震、または荒天のときに通信システムが実行に失敗した場合、たとえ一時的であっても、「接続されていない」ことによって人々は混乱、またはパニックに陥りさえする。通信システム、またはメディアのサービス品質(QoS)は、通信ネットワークの性能の重要な測定値である。人々の心の平和、金融資産、アイデンティティ、及びまさにその人生さえも、信頼でき、かつ安全な通信に依存している。
通信ネットワークのもう1つの検討ポイントは、プライバシー、安全性、及びセキュリティを、使用するクライアントに保証する能力である。通信技術が進化するにつれて、悪戯を起こし、システムを混乱させ、金銭を盗み、偶発的または悪意を持って他者に害を及ぼすことを意図する犯罪者及び「ハッカー」の知識も高度化している。クレジットカード詐欺、パスワード盗難、なりすまし、及び秘密情報、私的写真、ファイル、電子メール、テキストメッセージ、私的つぶやき(困らせるために盗まれたもの、または恐喝の犠牲)の無断公表は、現代のサイバー犯罪のいくつかの例にすぎない。
この特許出願時の、プライバシー侵害及びサイバー犯罪の注目すべき例を以下に列挙し、現代のオープン通信ネットワークにおけるセキュリティ問題の大流行を時系列に並べて示す。
・「ターゲット:少なくとも7千万人が巻き込まれた盗難情報」、CNBC、2014年1月10日
・「ハッカーが高性能の冷蔵庫とテレビで悪意のある電子メールを送信」、BGR、2014年1月20日
・「サーモスタットがハッキングされ、Nest社とGoogle社の秘密の論争が再開」、Slash Gear、2014年6月24日
・「アカウントのハイジャックはLINEのデータセキュリティを疑問視する。無料の通話及びメッセージアプリケーションであるLINEは、最近多発するデータセキュリティ侵害によって揺らいでいる。このアプリケーションでは、数百のユーザアカウントがアカウントのユーザ以外の人間によって不正にアクセスされたことがわかった。」、日経アジアレビュー、2014年7月2日
・「NSAのデータスイープに一般のアメリカ人が巻き込まれる、報告クレーム」AP、2014年7月6日
・「スマートLED電球がWiFiパスワードを流出させる」、BBC News、2014年7月8日
・「6人がStubHub上でプライムチケット購入の詐欺にあった。StubHubは、盗まれたパスワード及びクレジットカードの番号を使用して、ポップミュージックコンサート及びヤンキースの試合の何千ものチケットを売買するハッカーのターゲットになった、とニューヨーク州当局は語った。」、Bloomberg、2014年7月24日
・「「インターネットのもの」は非常にハッキングを受けやすい、と研究が示す」、International Business Times(www.ibtimes.com)
・「ロシアのハッカーが10億以上のインターネットパスワードを収集する」、New York Times、2014年8月5日
・「アメリカの秘密を暴露する新しい情報漏洩者、政府の結論」、CNN、2014年8月6日
・「Google社に買収されたNest社のサーモスタットを、ハッカーは15秒でルート化する」、The Enquirer(www.theinquirer.net)、2014年8月11日
・「標的を狙う同じマルウェアによってハッキングされたDairy Queen社」、Christian Science Monitor、2014年8月29日
・「ヌード写真漏洩の被害者となった有名人―iCloudアカウントのセキュリティ脆弱性」、CBS News、2014年9月1日
・「Home Depot社は、クレジットカード侵害の最新のターゲットになり得る。Home Depot社の侵害は、ターゲットよりはるかに大規模である可能性がある(4,000万枚のカードが3週間にわたって盗まれていた)。」、Fortune、2014年9月2日
・「ミステリアスな模造携帯電話のタワーが全米でコールを傍受している」、Business Insider、2014年9月3日
・「ハッキング攻撃:銀行から小売へ、サイバー戦争の兆候は?」、Yahoo Finance、2014年9月3日
・「Home Depot社が、アメリカとカナダの店舗で支払いシステムがハッキングされたことを認める」、Fox News、2014年9月9日
・「Yahooは、監視に関してアメリカ政府と法廷闘争を行った」、CBS/AP、2014年9月11日
・「ハッカーにとって、あなたの医療記録はクレジットカードより価値が高い」、Reuters、2014年9月24日
・「赤警報:HTTPがハッキングされた。何億もの人々が毎日依存するブラウザ接続を含むため、SSL/TLS(BEAST)攻撃に対するブラウザクラッシャは、最悪のハッキングにランク付けされる。」、InfoWorld、2014年9月26日
・「Sony社のサイバー攻撃、最初の妨害行為は速やかに炎上した」、New York Times、2014年12月30日
サイバー犯罪、セキュリティ違反、なりすまし、及びプライバシー侵害のペースが次第に上がっているように思われる中で、「これら全てのサイバー攻撃はどのようにして可能であり、サイバー攻撃を止めるためには何ができるのか」という疑問を投げかける。社会がより多くのプライバシー及びセキュリティを求めると同時に、消費者は、より高い接続性、より安価で高品質な通信、及び金融取引行為における更なる利便性も求めている。
最新の通信ネットワーク、データストレージ、及び、接続されたデバイスの性能及び脆弱性を理解するためには、現代の電子通信、無線通信、及び光通信が、ファイル、電子メール、テキスト、オーディオ、及びビデオ画像を含むデータをどのように操作、転送、及び記憶しているか理解することが、まず重要である。
回線交換電話ネットワーク操作
電子通信は、ワイヤ、無線、マイクロ波、または光ファイバ回線のネットワークに接続された様々なハードウェア構成要素、またはデバイスを含む。データストリームに情報の「コンテンツ」を埋め込むため、またはエンコードするための様々な方法を使用し、このネットワークを通じて電気エネルギー、または電磁気エネルギーを送信することによって、情報は、あるデバイスから他のデバイスに渡される。理論的には、これらのネットワークの最大データレートは、物理法則によって光速で設定されるが、ほとんどの場合、データエンコーディング、ルーティング及びトラヒックコントロール、シグナル対雑音品質、及び、電気ノイズ、電磁的ノイズ、光学ノイズ、及び望ましくない電子寄生を克服する際の実用上の制限が、情報の流れを乱し、または妨げて、通信ネットワークの能力を理想的な性能のわずかな一部に制限する。
歴史的に、電子データ通信は、2つ以上の電気的に接続されたデバイスの間に通信の「回路」を形成する、専用の「配線による」電気的接続を使用し、最初に達成された。電信の場合、機械的なスイッチを使用して直流(DC)電気回路を手作業で作製し、電流を断ち、金属製のレバーを回転させ動かしたソレノイドを磁化し、送信者が押したスイッチのパターンと同様のパターンで、リスニングデバイス、または「中継機」をクリックする。送信者は、次に、制定された言語、すなわちモールスシグナルを使用して情報をパルス列にエンコードする。受信者は同様に、メッセージを理解するため、ドット、及びダッシュと呼ばれる一連の長短パルスであるモールスシグナルを理解する必要がある。
その後、アレクサンダー・グラハム・ベルは、電気的接続を介して音を伝えるために、現在は交流(AC)と呼ばれる「波動電流」の概念を用いて最初の電話を開発した。電話ネットワークは、電気回路によって接続された2つの電磁トランスデューサを含み、各電磁トランスデューサは、固定された永久磁石エンクロージャによって囲まれた可動振動版、及びコイル、すなわち「ボイスコイル」を含んでいた。トランスデューサに向かって話すと、音からの空気圧の変化により、ボイスコイルは、コイル内のAC電流を誘導する周囲の磁界内で前後に移動する。聴取者側では、ボイスコイル内で流れる、経時変化する電流は、周囲の磁界に対面する同一の波形、及び経時変化する磁界を誘導し、音を捉えるトランスデューサと同じ方法で、ボイスコイルを前後に動かす。結果として生じる動きは、音を捉えるデバイスと同じ方法で音を再生する。現代の言葉では、トランスデューサが音を電流に変換するとき、マイクロホンとして操作し、トランスデューサが電流を音に変換するとき、スピーカとして操作する。また、伝道された電気シグナルは、空気中の自然気圧波、すなわち音として運ばれるオーディオ波形に類似しているため、現代では、このような電気シグナルは、アナログシグナル、またはアナログ波形と呼ばれる。
説明したように、トランスデューサは話すこと、及び聞くことの両方に使われるため、会話では両者が話すときと聞くときとを知る必要がある。このようなシステムでは、糸で接続された2つの空き缶、すなわち糸電話と同様に、発信者は話すこと、及び聞くことを同時にはできない。「半二重」方式と呼ばれるこのような一方向動作は古典的であるように聞こえ得るが、トランシーバでの現代の無線通信において、及び「プッシュツートーク」すなわちPTTと名付けられた現代の電話法において、実際に今でも一般に使われている。
のちの全二重(すなわち、双方向または送受信)電話は、別個のマイクロホンとスピーカとを備えており、話すこと、及び聞くことを同時にできることが当たり前になった。しかし、現代でさえ、全二重電話通信を操作する場合には、フィートバック、つまり受信者の音声がマイクロホンによって拾い上げられ、発信者にフィードバックされ、紛らわしいエコー、ときには耳障りな異音が生じることになるという、長距離電話通信を特に悩ませる問題を防ぐために注意が必要である。
初期の電信システム、及び電話システムは、別の問題であるプライバシー問題に悩まされていた。これらの初期の通信ネットワークでは、ネットワークに接続される全ての人が、望んでいないとしても、回路上で通信される全ての情報を耳にする。非都市部の電話ネットワークでは、これらの共有回路は「共同回線(party lines)」として知られていた。その後、電話システムは急速にマルチ回線ネットワークに発展し、専用回線によって、電話局の支店個々の顧客の電話に直接接続された。支社の交換局内では、システムオペレータは、ジャンパケーブルを使用した交換機を介して発信者を相互に手動で接続し、また、ある支店を別の支店へ接続して最初の「長距離」電話サービスを形成する機能を有していた。電話「スイッチ」ネットワークを形成する大きな中継機の列は、次第に人間のオペレータに取って代わり、続いて真空管を含む電子スイッチに置き換えられた。
ベル研究所が1950年代後半にトランジスタを開発した後、電話と支店の交換機においては、壊れやすく高温の真空管は、トランジスタと最終的に集積回路とを含む低温稼動ソリッドステートデバイスに置き換えられた。ネットワークが成長するにつれて、電話番号は7桁のプレフィックス番号及びプライベート番号から桁を増やして拡大され、市外局番及び最終的には国際電話を扱うための国コードが含まれていた。音声通話を伝える銅ケーブルは、すぐに世界を覆い、海を渡った。ネットワークの規模に関わらず、操作の原理は一定であり、コールは、アナログシグナルによって伝えられる音声を伴う発信者と、電話スイッチによって決定されるコールの経路指定との間の直接的かつ電気的な接続、すなわち「回路」を表した。このような電話システムは、最終的には「回路交換電話ネットワーク」として知られることになったか、または基本電話システム、すなわちPOTSとして知られることになった。回線交換電話の採用は、1980年代にピークに達し、以後、次のセクションで説明する「パケット交換電話」に置き換えられた。
電話ネットワークとほぼ並行して進化し、1920年代には無線放送での定期的な無線通信が開始された。放送は一方向性であり、特定の政府認可周波数で無線放送局から発せられ、その特定の放送周波数、または無線局に同調した任意の数の無線受信機によって受信された。放送されたシグナルは、認可された無線スペクトルの専用部分に、それぞれ振幅変調(AM)方式、または、より後の周波数変調(FM)方式のいずれかを使用してアナログシグナルを搬送した。米国では、連邦通信委員会、すなわちFCCが、このような認可された帯域の割り当て、及び規制の管理のために発展した。放送の概念は、無線伝送を使用したテレビ番組の放映へ拡大された。テレビ番組は、最初は白黒のコンテンツを含んでいたが、その後はカラーで放映された。その後、テレビシグナルも、マイクロ波衛星テレビ受信用アンテナによって、または同軸ケーブルを介してのどちらかで、人々の家に搬送されることができた。特定の放送周波数に同調した任意の視聴者が放送を受信することができるため、「マルチキャスト」という用語が、現在ではこのような一方向性のマルチリスナ通信のために使用されている。
無線放送の出現と同時に、最初の双方向通信が商用、及び軍用の海上船で始まった。第2次世界大戦の時代までには、無線は、送信機及び受信機を単一のユニットに結合させた携帯用無線トランシーバへ発展した。電話と同様に、初期の双方向無線送信は、「単信」方式で操作され、1つの無線チャンネルでは1つの無線のみ放送することができ、その間他の無線チャンネルは放送できなかった。異なる周波数の送信機及び受信機を結合させることによって、無線回線の両端で同時に送受信することが可能になり、2者間で全二重方式の通信が可能になった。
しかし、複数の相手からの重複送信を防ぐために、半二重、すなわちプッシュツートークと呼ばれるプロトコルがチャネル管理のために一般的に使用されており、先着順に特定のチャネルで、任意の者が独占的に送信することができる。アナログ変調を使用する業界標準の無線タイプには、アマチュア(ハム、またはCB)無線、マリンVHF無線、航空交通管制用のUNICOM、及び個人トランシーバ通信用のFRSが含まれる。これらの双方向無線ネットワークでは、無線機は特定の周波数の「チャンネル」を介してデータを中央無線タワーへ送信し、タワーはそのシグナルを増幅して反復し、無線ネットワーク全体に送信する。放送地域に情報を伝える利用可能な周波数の数により、システムの総帯域幅、及び一度に無線ネットワーク上で独立して通信することができるユーザの数が設定される。
無線ネットワークの総容量を拡大して、より多くの発信者を処理するように、大きな領域をより小さな部分、すなわち無線「セル」に分割したセルラーネットワークの概念が1970年代に論証され、その後10年以内に普及した。セルラーの概念は、無線タワーの放送圏をより狭い範囲、すなわちより短い距離に制限することであり、したがって、同じ周波数帯域を再利用して、異なるセルに存在する異なる発信者を同時に処理することができる。そのために、通信を「遮断する」、及び突然切断することなく、あるセルから隣接するセルに発信する人のハンドオフを管理するソフトウェアが作成された。POTS、双方向性無線、無線及びテレビ放送のように、最初のセルラーネットワークは本質的にアナログであった。コールルーティングを制御するために、電話番号システムが採用され、適切な無線電気接続が決定された。この選択には、新しい無線セルラーネットワークを「有線の」従来型の電話システムに継ぎ目なく接続し、2つのシステム間の相互接続、及び相互運用性を提供するという利点も存在した。
1980年代には、無線放送及びテレビ放送に加えて、電話通信及び無線通信が、消費電力の削減及びバッテリ寿命の向上のため、シグナル対雑音品質の改善のため、データ及び音声付きのテキストを伝える必要性の問題に取り組み始めるために、アナログからデジタルへの通信方法及び通信フォーマットの避け難い移行を始めた。EDACS及びTETRAなどの無線フォーマットの出現と同時に、1対1、1対多、及び多対多の通信方式が可能になった。セルラー通信は、テレビ放送と同様に、GPRSなどのデジタルフォーマットへも急速に移行した。
2010年までには、ほとんどの国が全てのアナログテレビ放送を中止したか、または中止の手続き中になった。放送テレビとは異なり、ケーブルテレビ事業者は、デジタルフォーマットに切り替える必要はなく、2013年まではアナログ及びデジタルシグナルのハイブリッド複合体を維持していた。ケーブルテレビのデジタルへの最終的な移行は、政府の基準ではなく商用の理由からであり、ネットワークの利用可能なチャンネルの数を拡大し、HD及びUHDコンテンツを配信できるようにし、より多くのペイ・パー・ビュー(PPV、(「ユニキャスト」としても知られている))プログラミングを可能にし、高速デジタル接続サービスを顧客に提供するためであった。
アナログフォーマットからデジタルフォーマットへのグローバル通信ネットワークの移行を、インターネットの出現、より具体的にはインターネットプロトコル(IP)の普及と同一視することは一般的であるが、推進されていなければ、デジタルフォーマットへの転換は電話でのIPの商用的受諾に先行し、IP及び「パケット交換ネットワーク」(次のセクションで説明される)への通信の全世界的な移行を可能にする。
その結果生じる回線交換電話の進化は、各々が異なる技術を含む無線、セルラー、PBX、及びPOTS接続の融合とサブネットワークを含む「公衆交換電話ネットワーク」、すなわちPSTNとして、図1に概略的に示される。例えば、ネットワークは、高帯域幅の幹線2によって接続されて、POTSゲートウェイ3、回線交換セルラーネットワーク17、PBX8、及び双方向無線ネットワーク14への有線接続4を介して接続されるPSTNゲートウェイ1Aと、PSTNゲートウェイ1Bとを含む。各サブネットワークは独立して操作でき、同様のデバイスを駆動する。例えば、POTSゲートウェイ3は、非都市部では依然として一般的であり、ツイストペア銅線7によって従来型のアナログ電話6、またはコードレス電話5のいずれかへ接続している。コードレス電話5は一般的に、デジタルコードレス電話規格、すなわちDECT、その超低電力変形DECT−ULE、またはその前身のCT2を採用し、全て0.9、1.9、2.4、及び5.8GHzのキャリア周波数を有するクローズドシステムであるRFシステム専用である。純粋なDECT電話機は、ワイヤレスRFに基づいたデバイスであるにも関わらず、セルラーネットワークに直接アクセスすることはできない。
PBX8は、有線のデスクトップ電話機9、会議通話用のスピーカ電話機10、及びワイヤレス接続12によって、コードレスまたはワイヤレスローミング電話機13に接続された私設無線ネットワーク基地局11を含む、会社のオフィス内で使用される任意の数のデバイスを制御する。ワイヤレスローミング電話機13は、従来型のコードレス電話のビジネス中心強化の象徴であり、電話機をWiFi接続に提供するか、日本のPHS(Personal Handphone System)の場合には、東京都新宿区などの交通量の多い地域、または人口密度の高いビジネス地域において、企業の外に位置する公衆マイクロセルラーネットワークにアクセスする。PHS製品では、帯域幅、伝達範囲、及びバッテリ寿命は極端に制限される。
PSTNはまた、AMPS、CDMA、及びGSM(登録商標)のアナロク及びデジタルプロトコルを実行する回線交換セルラーネットワーク17に接続する。セルラー無線タワー18を介し、回線交換セルラーネットワーク17は、標準化されたセルラー無線28を使用して、携帯電話19Aなどのモバイルデバイスに接続する。GSM(登録商標)の拡張であるGPRSネットワークの場合には、回線交換セルラーネットワーク17は、タブレット19Bにも接続することができ、同時に低速のデータ及び音声を伝える。TETRA及びEDACSなどの双方向無線ネットワーク14は、高出力の無線タワー15及びRF接続を介し、PSTNをハンドヘルドの無線16A、及び、より大きいダッシュボード内のデスクトップの無線16Bに接続する。警察官、救急車、救急救命士、消防署、さらには湾岸当局でも一般的に使用されているこのような双方向無線ネットワークは、プロフェッショナル通信ネットワーク及びサービスとも呼ばれており、消費者よりもむしろ、政府、地方自治体、及び緊急対応者を対象としている。(注:本明細書で使用されるように、「デスクトップ」、「タブレット」及び「ノートブック」という用語は、それらの名前を有するコンピュータの略語として使用される。)
コールルーティングを完了するために従来の電話番号を使用するPOTSゲートウェイ3、回線交換セルラーネットワーク17、及びPBX8とは異なり、双方向無線ネットワーク14は、専用RF無線チャンネル(電話番号ではなく)を使用して、無線タワー15及び都合のよいモバイルデバイスの間の無線接続を築く。このように、プロフェッショナル無線通信サービスは、消費者の携帯電話ネットワークとは性質が異なり、独特のものである。
図1は、多様な技術のサブネットワークを相互接続するためのPSTNネットワークのフレキシビリティをグラフで示している。まさにこの多様性によって、現在の回路交換ネットワークの本質的な弱点、つまりサブネットワーク間の相互運用性が定義される。様々なサブネットワークが任意の共通制御プロトコル及び言語と通信しないため、また各技術がデータ及び音声の伝達を異なる方法で処理するため、様々なシステムは、PSTNのバックボーンまたは幹線を通じて電話をかける能力が限られていることを除いて、本質的に互換性がない。例えば、ニューヨーク市の世界貿易センターへの9月11日のテロ攻撃の間、アメリカ全土から多くの緊急対応者がマンハッタンに集まって大惨事との戦いを支援しようと試みたが、無線通信システム及びトランシーバは他の州、及び都市からのボランティアとは互換性がないことを学んだだけであり、救援への努力を、集中化させて命令及び統制するよう管理することは不可能であった。無線の通信プロトコルで標準化が行われていないため、無線は相互に接続することが単純にできなかった。
さらに、回路交換電話ネットワークの直接的かつ電気的接続及びRF接続、特にアナログまたは安全でないデジタルプロトコルを使用する場合、RFスキャナを有するハッカーが、アクティブな通信チャンネルを見つけて、そのとき発生している会話に気付き、サンプリングし、聴き、傍受することは簡単である。PSTNは、通信している当事者間の「継続的な」繋がり、すなわち回線を形成するため、ハッカーが接続を見極めて「盗聴」する時間は十分存在し、連邦裁判所の下で機能している政府によって合法的に盗聴を命じられるか、または非合法的な、禁じられた、または不認可の監視を実行するサイバー犯罪者または政府によって法律に反して盗聴される。合法的な、及び違法なスパイ及び監視の定義と、ネットワークオペレータによる協力遵守の義務とは、国によって大きく異なり、多数の国境を越えて経営しているGoogle、Yahoo、Appleなどのグローバル企業の間で激しい争点となっている。通信ネットワーク及びインターネットはグローバルであり、国境または境界は認識しないが、電子情報などを管理する法律はその土地特有であり、その時の国内及び国際的な通信、及び商業を管理する政府の監督官庁の対象である。
その合法性や倫理に関わらず、現在の電子スヌーピング及び監視は一般的であり、全ての道路や地下鉄の全ての道路の曲がり角、及び頭上に設置されたユビキタスセキュリティカメラの監視から、様々な国の国家安全保障課及び組織によって行われる巧みなハッキング及びコードクラッキングにまで及んでいる。全てのネットワークは脆弱であるが、PSTNの古さ、及び不十分なセキュリティ対策のために、ハッキングすることが特に容易である。このように、安全な最新ネットワークに接続されたPSTNでも、システム全体の弱点になり、セキュリティ違反及びサイバー犯罪に対する脆弱性を生み出す。それにもかかわらず、グローバルなPSTNネットワークを廃止し、IPベースのパケット交換通信に完全に置き換えるには、数十年ではないにしても、やはり数年がかかる。パケットベースのネットワーク(以下に説明する)は、PSTNネットワークより近代的であるが、それでも安全でなく、セキュリティ破壊、ハッキング、サービス拒否攻撃、及びプライバシー侵害の対象となる。
パケット交換通信ネットワーク操作
糸で接続された2つの空き缶、つまり糸電話が現代の回線交換電話の操作のメタファを象徴する場合、郵便局は、パケット交換通信ネットワークの同様なメタファを象徴する。テキスト、データ、音声、及びビデオは、ファイル及びデジタルデータのストリームに変換され、その後、ネットワークを介して配信されるデータの量子化された「パケット」に解析される。配信メカニズムは、データパケットの宛先及び送信元を一意に識別する電子アドレスに基づいている。フォーマット、及び通信プロトコルはまた、パケットに含まれるデータの性質に関する情報を含むよう設計され、パケットは、それが使用されるプログラムまたはアプリケーションに固有のコンテンツと、パケットを伝える物理的連結、及び電気的接続または無線接続を容易にするハードウェアとを含む。
1960年代に誕生したパケット交換ネットワークの概念は、ポスト・スプートニクの冷戦後のパラノイア時代に作られた。当時、米国国防総省(DoD)は、間隔を置いた核ミサイル攻撃により米国の通信基盤全体が壊滅し、ソビエト連邦の先制攻撃に対応する能力が無効化される可能性があるという懸念、及び、攻撃などに対する脆弱性が実際に攻撃を引き起こす可能性があるという懸念を表明した。そのため、国防総省は、軍事施設間で情報を配信するネットワークの能力が、特定のデータリンク及びネットワーク内の多数のリンクの破壊によって妨げられない過剰な通信システム、すなわち格子状の「ネットワーク」の創設を支援した。アーパネット(ARPANET)として知られるそのシステムは、インターネットの親、及び近代的なデジタル通信のイヴとなった。
パケット交換ネットワークの創設にも関わらず、最初の利用し易いウェブブラウザであるMosaic、ハイパーテキストによって定義されたウェブページの出現、WWWの急速な普及、及び電子メールの普及により、インターネットプラットフォームに世界的な支持が集まった1990年代になるまで、インターネットの爆発的な成長は発生しなかった。その基本的な考え方の1つである中央制御の欠如、すなわち中央メインフレームの必要性は、インターネットをある程度普遍的に推進したが、これは国や政府に止めることができなかった(または、グローバルな影響を十分に理解してさえいなかった)ため、また、ユーザベースが、新たに購入したパーソナルコンピュータを使用して消費者を含有したためである。
インターネットの成長によるもう1つの大きな影響は、ネットワークを介してデータパケットをルーティングするために使用されるインターネットプロトコル(IP)の標準化であった。1990年代半ばまでに、インターネットユーザは、データを伝達する同じパケット交換ネットワークが、音声を運ぶためにも使用され得ることを理解し、その後間もなく「ボイスオーバーインターネットプロトコル」、すなわちVoIPが誕生した。この概念は、インターネットにアクセスする任意の者がVoIPによって無料で通信することを理論的には可能にしたが、ネットワーク全体にわたって伝播に手間がかかる。すなわち待ち時間が生じ、音声品質が低下し、度々わかりにくくなる。「ラストマイル」での接続品質を改善するための、高速イーサネット(登録商標)リンク、高速WiFi接続、及び4Gデータの採用により遅延時間は改善されたが、インターネット自体は、データパケットの正確な配信を確実にするために創設されたものであり、パケットを配信するために必要な時間を保証するものではなく、すなわちリアルタイムネットワークとして操作されるべく作成されていない。
そのため、高価な長距離通信事業者、すなわち「電話会社」の代わりにインターネットを使用するという夢は、スカイプ、ライン、カカオトーク、バイバーなどの「期待された」(OTT)プロバイダの可用性にも関わらず、ほとんど果たされなかった。OTT電話は、無制御の待ち時間、劣悪な音質、発信の停止、エコー、残響、フィードバック、不安定な音、及びしばしば発信を開始することさえできないことに起因する劣悪なサービス品質(QoS)に悩まされている。OTT通信の劣悪なパフォーマンスは、本質的にはVoIPベースのプロトコルの欠点ではなく、データが通る経路、または通信が直面する遅延をOTTキャリアが管理できないネットワーク自体の欠点である。本質的に、OTT通信はインターネットヒッチハイカーとして機能するため、OTTキャリアは性能またはQoSを保証することができない。現在のVoIPベースの通信を最大限に活用できる企業は、待ち時間の少ないハードウェアベースの専用ネットワークを有する長距離電話事業者であり、皮肉にも、そのような動機が最も少ないのが、まさにその電話会社である。
固有のネットワーク余剰は別として、パケット交換通信の最大の長所の1つは、データがインターネットプロトコルと一致したパケットで配置され、インターネットに接続及びリンクされた通信デバイスが提供される限り、任意の送信元から任意の宛先へ情報を伝達する能力である。インターネットプロトコルは、どの情報が伝達されているか、またはどのアプリケーションがその情報を使用するかに注意または関心を示すことなく、宛先へペイロードを配信するネットワークの能力を管理し、カスタマイズされたソフトウェアインターフェース及び高価な専用ハードウェアの必要性を完全に回避する。多くの場合、アプリケーションに関連したペイロードでさえ、予め定義されたフォーマットを確立している。例えば、電子メールを読むため、ブラウザ上でウェブページを開くため、写真やビデオを見るため、フラッシュファイルを見るため、またはPDFドキュメントを読むためなどである。
その汎用的なファイル形式は、専用または企業固有のソフトウェアに依存しないため、インターネットは「オープンソース」の通信プラットフォームと見なすことができ、コンピュータから携帯電話、車から家電製品まで、これまでに接続された最も幅広いデバイスと通信することが可能である。この普遍的な接続を説明する最新のフレーズは、「Internet of Everything」、すなわちIoEである。
図2は、デバイスに接続されたインターネットなどのいくつかの例である。図示されているように、第1高速クラウドのサーバ21A、第2高速クラウドのサーバ21B、及び第3高速クラウドのサーバ21C、クラウドデータストレージを含むコンピュータの大規模アレイは、インターネットのクラウド22を形成する無数の他のサーバ(図示せず)の間の高帯域幅接続、一般的には光ファイバによって相互接続される。クラウドのメタファは、どのサーバがクラウドの一部と見なされ、どのサーバがそうでないかを明確に定義する境界がないため、適切である。毎日、及び分単位でさえ、サーバはオンラインになり、
メンテナンスのためにオフラインになることはあるが、インターネットの機能または性能への影響は何もない。これは、正しく重複した分散システムのメリットである。つまり、単一の制御点は存在せず、したがって単一の障害点も存在しない。
クラウドは、様々な有線、WiFi、またはワイヤレスリンクを介してユーザまたはデバイスに接続され得る。図示のように、第1高速クラウドのサーバ21Aは、有線または光ファイバ接続24を介して、ワイヤレスタワー25、WiFiアクセスポイント26、または電子メールサーバ27に接続する。これらの「ラストマイル」リンクは、任意の数の通信デバイスまたは接続デバイスに順番に接続する。例えば、ワイヤレスタワー25は、セルラー無線28によってスマートフォン32、タブレット33、または自動車31に接続することができ、例えば、歩行者、個人用の車の運転手、法執行官、及び運送業及び配送業のプロの運転手などを含むモバイルユーザ40にサービスを提供するために使用されてもよい。ワイヤレスパケット交換が可能な電話通信は、4G/LTEと同様にHSUPA及びHSDPAを含むセルラープロトコル3Gを含む。LTE、すなわちロングタームエボリューションは、セルが異なるプロトコルで動作している場合でさえ、あるセルから別のセルへの通話を継ぎ目なく引き渡す機能を含む、様々なセルラープロトコルの相互運用性を保証するネットワーク規格を指す。(注:定義の問題として、本明細書で使用される「ラストマイル」は、タブレット、デスクトップ、または携帯電話などの任意のタイプのクライアントデバイスとクラウドサーバとの間のリンクを指す。)方向性として、「ファーストマイル」という用語は、データ送信元のデバイスとクラウドサーバとの間のリンクを特定するために使用されることもある。そのような場合、「ラストマイル」リンクも「ファーストマイル」である。
より短距離の通信のために、WiFiアクセスポイント26は、WiFi無線29によってスマートフォン32、タブレット33、ノートブック35、デスクトップ36、または家電製品34に接続し、家庭、カフェ、レストラン、及びオフィス内のローカライズされたワイヤレスアプリケーションで使用され得る。WiFiは、シングルキャリア周波数仕様802.11a、802.11b、802.11g、802.11n、及び最近では二重周波数帯802.11acフォーマット用のIEEE定義規格に従って動作する通信を含む。単純な静的ログインキーに基づくWiFiセキュリティは、接続の不正アクセスを防ぐために主に使用されるが、データを盗聴またはハッキングから無期限に守ることを意図したものではない。
電子メールサーバ27は、ファイバ、同軸ケーブル、またはイーサネット(登録商標)30Aにより、ノートブック35、デスクトップ36、電話機37、テレビ39に接続されるか、ツイストペア銅線30Bの電話線により、ホテル、工場、オフィス、サービスセンター、銀行、及び家庭を含む、動かない、すなわち固定された、有線接続の市場42へサービスを提供する販売時点端末37に接続される。ファイバまたはケーブルが利用できない遠隔地域では、デジタル加入者線(DSL)接続は今でも使用されるが、データ速度及び接続信頼性は劇的に損なわれる。全体として、ワイヤレス、WiFi、及び有線接続を介したアクセスを集計すると、インターネットに接続されたオブジェクトの数は、2020年までに世界中で200億に達すると予測されている。
デバイス間の直接接続を確立及び維持する回路交換ネットワークとは対照的に、パレット交換通信は、アドレスを使用して、インターネットを介してパケットを宛先に「ルーティング」する。このように、パケット交換通信ネットワークでは、通信デバイス間の接続を維持する単一の専用回路はなく、またインターネットを介して伝わるデータも単一の一貫した経路を伝わることはない。各パケットは、相互接続されたコンピュータの迷路を通って、宛先に到達しなければならない。
図3は、パケット交換ネットワーク通信を使用した、ノートブック60からデスクトップ61へのIPパケットのルーティングの仮想例を示している。操作中、ワイヤレス接続63Aを介してノートブック60からWiFiルータ62Aに送信される第1データパケットは、DNSサーバ70のアレイに向けられる。DNSは、ドメインネームサーバ(Domain Name Server)の頭字語である。DNSサーバ70のアレイの目的は、宛先デバイス、この場合ではデスクトップ61、のテキスト名または電話番号をIPアドレスに変換することである。パケットをルーティングする前に、DNSルートサーバ72は、大きなアドレステーブルをDNSセカンダリサーバ71にダウンロードした。ノートブック60からの照会が到達すると、DNSセカンダリサーバ71は、宛先、すなわちデスクトップ61のIPアドレスで応答する。DNSセカンダリサーバ71が宛先デバイスのアドレスを知らない場合には、DNSセカンダリサーバ71は、欠落した情報をDNSルートサーバ72に要求することが可能である。最終的に、IPアドレスは、DNSサーバ70のアレイからソースアドレス、すなわちノートブック60に戻される。
その後、ノートブック60は、IPデータパケットを組み立て、組み立てたIPデータパケットを宛先に順次送信し始め、まずWiFi無線のワイヤレス接続63Aを介してWiFiルータ62Aへ届き、その後、宛先への中間ルータとして機能するルータ及びサーバのネットワークを横断する。例えば、図示のような一連の専用ルータは、65A、65B、及び65Cを含み、ルータとして機能するコンピュータサーバは66A〜66Eを含み、インターネット内のノードとして、またはポイント・オブ・プレゼンス(POP)、すなわちインターネットにアクセス可能な限られた接続性のゲートウェイとして機能するルータネットワークを共に形成する。POPとして動作するいくつかのルータまたはサーバは、少数の隣接デバイスのみを介してインターネットに接続するが、図示のように、サーバ66Aは多数のデバイスに相互接続され、「スーパーPOP」と呼ばれることもある。明快にするため、ネットワーク用語でのPOPという用語は、電子メールアプリケーションで使用されるアプリケーション名のPOP、または普通の古い郵便局と混同されないよう注意する必要がある。
各ルータ、またはルータとして機能するサーバは、アドレス指定可能なIPアドレスと、可能であれば、より上位のルータがアドレス指定可能なアドレスとを識別するルーティングテーブルをメモリファイル内に含む。これらのルーティングテーブルは、インターネットに最初に接続されたときに自動的にダウンロードされ、全てのルータにインストールされる。通常、ネットワーク経由でパケットをルーティングする際にはダウンロードされない。IPパケットが、ルータ、POP、またはスーパーPOPに入ると、ルータはIPアドレスを十分に読み取り、一般的にはアドレスの最上位桁の数字で、パケットを宛先に届けるために、次に向ける場所がわかる。例えば、ニューヨークから東京に向かうパケットは、まずシカゴを経由し、その後サンフランシスコ、ロサンゼルス、またはシアトルのサーバを経由して東京に到着することができる。
図3の例では、ノートブック60からWiFiルータ62Aへのパケットは、経路64Aを介してルータ65Aに転送され、経路64Aは、多数の選択肢を有するが、経路67Aを介してスーパーPOP66Aにパケットを転送することを決定する。スーパーPOP66Aもまた多くの選択肢を有するが、特定の瞬間に、最良の経路がサーバ‐ルータ66Dへの経路68であると決定し、経路67Bを介してローカルルータ65Cに転送して、次に経路64Bを介して、WiFi無線63Bによってデスクトップ61に通信するWiFiルータ及びアクセスポイント62Bに接続する。したがって、通過した経路がスーパーPOP66Aからローカルルータ65Cへ至る途中のサーバ‐ルータ66Dに移動する間に、経路はスーパーPOP66Aからローカルルータ65Cへ至るまでのルータ65Bに、またはスーパーPOP66Aからローカルルータ65Cへ至るまでのサーバ‐ルータ66Eへの途中のサーバ‐ルータ66Dに移動した可能性がある。また、パケットが通過するルータの数、及びルータ間の各接続の利用可能なデータ速度は、インフラストラクチャによって、及びネットワークトラヒックとネットワーク負荷とによって変化するため、どの経路が最速、すなわち最良であるかを事前に決定する方法は存在しない。
パケット交換データを用いて、クライアント間の直接接続を確立及び維持する回路交換電話通信とは異なり、インターネットを俯瞰する普遍的な情報は存在せず、どの経路がパケットをルーティングするために最良、最適、または最速の経路であるかを決定することはできず、また、2つの連続するパケットが同じ経路をとるという保証さえ存在しない。このように、パケットは、パケットが通過するルータ及びサーバを操作する企業の優先順位に基づき、インターネットを介して経路を「発見」する。本質的に、各ルータには、ネットワークの状態に基づいて優先経路を定義する特定のルーティングテーブル及びルーティングアルゴリズムが含まれている。例えば、ルータの選択は、同じ企業が所有する他のルータへパケットを送ること、隣接するルータへの接続間のトラヒックのバランスをとること、次のルータへの最短遅延を探すこと、取引を戦略的なビジネスパートナーに向けること、または可能な限り多くの中間ルータを飛び越えることでVIPクライアント向けの高速経路を作成することを優先させてもよい。パケットがルータに入ると、特定のPOPによって行われたルーティング選択が、送信者またはネットワークサーバオペレータの最善の利益のために行われたか否かを知る方法は存在しない。
そのため、ある意味では、パケットが辿る経路はタイミング及び運の問題である。前述のニューヨークから東京へのルーティングの例では、ルーティング、及び結果的に生じるQoSは、経路における小さな摂動、すなわち、いわゆる「バタフライ効果」と言われる非線型方程式であっても、実質的に変化させることができる。カリフォルニアで一時的にトラヒック量が多いため、ニューヨークからのパケットがシカゴの「ルータA」を通過し、カリフォルニアではなくメキシコシティに転送される場合を考察されたい。メキシコシティのルータは、その後IPパケットをシンガポールに転送し、最終的に東京に送信する。送信された正に次のパケットは、シカゴの「ルータB」を経由してルーティングされるが、これはその時点でのトラヒックが少ないため、パケットをサンフランシスコに送信し、その後2回の経由のみで東京に直接送信するためである。このような場合、2番目のパケットは、最初の経路がより長い迂回経路を経由する前に、東京に到着する可能性がある。この例では、ライブビデオストリーミング、またはVoIPなどのリアルタイム通信のためにインターネットを使用する際の問題点を強調している。すなわち、インターネットは、送信時間を保証する、またはネットワークの送信遅延を制御するようには設計されていない。パケットが2台のサーバのみを経由するのか、または15台のサーバを経由するのかにより、待ち時間は50ミリ秒から1秒以上まで変化し得る。
インターネットのルーティング制御が不十分であることは、リアルタイムアプリケーションにとって問題であり、特にOTT通信事業者にとっては劣悪なQoSの問題である。つまりOTT事業者は、インターネットのインフラストラクチャ上に便乗することで、インターネットベースの電話を提供しようと試みている。OTT事業者はルーティングを制御しないため、遅延またはネットワークの待ち時間を制御することができない。パケット交換通信のもう1つの問題は、検出されることなくデータを乗っ取ることが容易である点である。略奪者がパケットを傍受し、その送信元または宛先のIPアドレスを特定した場合、間に存在するルータからデータを傍受するために様々な方法を使用し、自身の非合法ネットワークを介してトラヒックを傍受またはリダイレクトして会話を見張り、暗号化されたファイルを壊すことさえできる。
パケットのルーティングに使用される(及び、略奪者がパケットを乗っ取るためにも使用される)送信元のIPアドレスと宛先のIPアドレス、及び他の重要な情報は、図4に示される一連のデジタルデータとして明示される。IPパケットは、デバイス間の物理的接続、デバイスを共に繋ぐためにデータが編成される方法、パケットのネットワークルーティング、有用なデータ(ペイロード)が正確に配信されたことを保証する手段、及びペイロードに含まれるデータの種類を定義するデジタル情報を含み、ペイロードデータそのものは様々なアプリケーションプログラムによって使用される。
IPパケットは、左から右へ流れる時間86に示される一連のシリアルデジタルビットとして順序通り送受信され、インターネットエンジニアリングタスクフォース、すなわちIETFなどを含む様々な標準委員会によって確立された、インターネットプロトコルと呼ばれる特定の方法で編成されている。この標準規格は、予め定められたプロトコルに従う任意のIPパケットが、同じIP規格に準拠する任意の接続されたデバイスと通信し、理解されることを保証する。インターネットに接続されたデバイス及びアプリケーションの通信及び相互運用性を保証することは、インターネットの品質証明であり、オープンソースイニシアチブ、すなわちOSIの指針を表し、任意の企業、政府、または個人がインターネットを制御することや、アクセシビリティまたはその機能性を制限することを防ぐ。
OSIモデルは、7つの機能レイヤを含む抽象概念であり、IPパケットのフォーマット、及びパケットの各セグメントがどのような用途に使用されているかを正確に規定している。IPパケットの各部分、すなわち「セグメント」は、図4の表87に要約された特定のOSIレイヤの機能に適用されるデータに対応する。7つのOSIの役割は以下の通りである。
物理レイヤ、すなわちPHYレイヤであるレイヤ1は、電気シグナル、RFシグナル、及び光シグナルとしての通信の物理的性質を明確にするハードウェア固有の情報と、これらのシグナルを、通信システムを使用するためのビットに変換する方法とを含む。WiFi無線、イーサネット(登録商標)、シリアルポート、光ファイバ、3Gまたは4Gセルラー無線、ツイストペア銅線上のDSL、USB、Bluetooth(登録商標)、ケーブルまたは衛星テレビ、またはオーディオ、ビデオ、またはマルチメディアコンテンツのデジタル放送などの特定の通信メディアをビットストリームに変換することは、PHYレイヤのタスクである。IPパケットにおいて、プリアンブルは、レイヤ1データを表し、レイヤ1データを送受信するハードウェアにデータパケット、またはフレーム全体を同期させるために使用される。
データリンクレイヤであるレイヤ2は、フレームとして配置されるビットを含み、PHYレイヤ1から配信されるビットストリームを解釈可能なデータに変換するルール及び手段を定義する。例えば、WiFi無線ベースのビットストリームは、802.11a、802.11b、802.11g、802.11n、及び802.11acを含む任意の数のIEEE定義規格に従うことができる。3G無線通信は、高速パケットアクセス方法HSDPAまたはHSUPAを使用して変調されてもよい。光ファイバ内の変調光、または同軸ケーブル上の電気シグナルは、DOCSIS 3規格などに従ってデータにデコードされることができる。IPパケットにおいて、レイヤ2データは、先頭の「データリンクヘッダー」81と、後端の「データリンクトレーラ」85とで、パケットの残り部分であるセグメントのヘッダー82、セグメントのヘッダー83、及びセグメント84をカプセル化し、カプセル化されたペイロードの配信の開始時及び終了時を定義するとともに、伝達プロセスにおいて何も失われていないことを保証する。レイヤ2データの重要な要素は、特定のイーサネット(登録商標)アドレス、RFリンク、またはハードウェア固有のトランシーバリンクとの間でデータトラヒックを誘導するために使用されるMAC、すなわちメディアアクセスアドレスである。
ネットワークまたはインターネットレイヤであるレイヤ3は、IPパケットをルーティングするために使用されるIP情報を含む「データグラム」と呼ばれるパケットを含み、該パケットは、パケット内に含まれるペイロードの性質に関する情報と同様に、IPv4またはIPv6データ、及び対応するソースと宛先IPアドレスとを含む。すなわち、使用されるトランスポートプロトコルのタイプは、トランスミッションコントロールプロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、または他の何らかのものを含む。レイヤ3は、ループを防止する機能も含む。つまり、IPパケットは決して転送されないが、消えることもない。レイヤ3パケットの特定のタイプであるICMPは、ネットワークの状態を診断するために使用され、周知の「ピン(ping)」機能を含む。IPパケットでは、レイヤ3は「IP」のヘッダー82を含み、トランスポートセグメントのヘッダー83、及び上位レイヤのセグメント84を含むペイロードをカプセル化する。
トランスポートレイヤであるレイヤ4は、通信デバイス間の接続の性質を定義するデータのセグメントを含み、UDPによってコネクションレス通信のためのペイロードの最小限の記述要素、すなわちペイロードの大きさ、損失ビットの大きさ、及びどのアプリケーションサービス(ポート)が配信されたデータを使用するか、が定義される。UDPは、ペイロードの配信を確認せず、代わりにアプリケーションでエラーまたは消失データを確認するため、コネクションレスであると見なされる。UDPは通常、ブロードキャスト、マルチキャスト、ストリーミングなどの時間的制約のある通信のために使用され、パケットの再送信は選択肢にない。対照的に、TCPはパケットを確認することによって仮想接続を保証し、次のパケットが送信される前にペイロードが確実に配信され、破棄されたパケットは再送信される。TCPは、チェックサムを使用して配信されたパケットのデータ保全性も確認し、順序が狂ったパケットを元の順序で再構成するための規定を含む。TCP及びUDPの両方が、送信元ポート及び宛先ポート、上位レイヤサービスまたはアプリケーションの記述要素、例えばレイヤ4ペイロード内に含まれる情報に関連したウェブサーバ、または電子メールサーバを定義する。IPパケットにおいて、レイヤ4はTCP/UDPのヘッダー83を含み、上位OSIレイヤ5、レイヤ6、及びレイヤ7によって使用されるコンテンツを含むデータ/ペイロードのセグメント84をカプセル化する。
上位レイヤまたはアプリケーションレイヤであるレイヤ5、レイヤ6、レイヤ7は、データ/ペイロードのセグメント84としてインターネットによって配信されるコンテンツを記述する。「アプリケーション」レイヤであるレイヤ7は、OSIモデルにおいて最高レベルを表し、オープンソース及び独自のアプリケーションソフトウェアの両方をサポートするために、6つの基礎となるOSIレイヤに依存している。一般的に使用されるレベル7アプリケーションには、SMTP、POP、またはIMAPを使用した電子メール、HTTP(Chrome、Safari、Explorer、Firefox)、FTPを使用したファイル転送、及びTelnetを使用したターミナルエミュレーションが含まれる。独自のアプリケーションには、Microsoft Office製品(Word、Excel、PowerPoint)、Adobe Illustrator及びPhotoshop、Oracle及びSAPのデータベースアプリケーション、Quicken、Microsoft Money、及びQuickBooksの財務ソフトウェア、プラスオーディオ(plus audio)及びビデオプレイヤ(iTunes、QuickTime、Real Media Player、Window Media Player、Flashなど)、及びAdobe Acrobat Reader、Apple Previewなどのドキュメントリーダが含まれる。レベル7のアプリケーションは、一般的に、テキスト、グラフィック&ピクチャ、サウンド及びビデオ、XMLまたはPDFなどのドキュメントプレゼンテーション、暗号化などのセキュリティ機能を含むレベル6の「プレゼンテーション」レイヤによって構文的に定義された埋め込みオブジェクトも利用する。レベル5の「セッション」レイヤは、1つのオブジェクトを他のプログラムファイルにインポートするなど、アプリケーション間の接続を確立し、セッションの開始及び終了を制御する。
前述のように、OSIの7レイヤモデルは各レイヤの機能を定義し、対応するIPパケットは各レイヤに関連するデータをカプセル化する。木の人形の中に別の人形が入っており、その人形の中にさらに別の人形が入っている、バブシュカ(babushka)、すなわちロシアの入れ子人形に類似した方法で、1つのレイヤの中に他のレイヤが入っている。外部パケット、すなわちレイヤ1であるPHYレイヤは、全ての上位レベルに関する情報を含むIPフレーム全体を定義する。
下位の物理レイヤ及びデータリンクレイヤはハードウェア固有であるが、ネットワーク情報及び転送情報を記述するIPパケット内でカプセル化された中間OSIレイヤは、IPパケットの通信及び配信に使用されるハードウェアには完全に関知しない。さらに、トランスポートレイヤのペイロードとしてカプセル化された上位レイヤは、パケットがインターネット経由でルーティングまたは配信された方法とは完全に独立して適用及び操作するアプリケーションにのみ固有である。この分割により、各レイヤを本質的に独立して管理することが可能になり、パケットフォーマットの管理上の承認、及びパケットペイロードの実行可能性の確認を必要とすることなく無数の技術及びユーザの組み合わせがサポートされる。不完全、または不適切なIPパケットは、単に破棄される。このようにして、パケット交換ネットワークは、インターネットに接続された任意のデバイスまたはオブジェクト間で、一貫した方式で、異なる通信メディアを介して多様なアプリケーション関連情報をルーティング、転送、及び配信することができる。
結論として、回路交換ネットワークは、(1世紀前の従来型電話システムと同様に)通信している2人以上の当事者間の、単一の直接接続を必要とする。パケット交換ネットワーク通信は、文書、音声、ビデオ、及びテキストを複数のパケットに分解するが、それらのパケットを複数のネットワークパス(正確かつタイムリーな方法で配達するために最善の努力を払う郵便局に類似している)を介して配信し、その後、最初のコンテンツを再構築し、途中で何も失われていないことを確認する。
PSTNはリアルタイム電気回路接続を使用して操作するが、パケット交換ネットワークコンテンツは、様々なトラック及び郵便集配人を使用して、到着が遅れた場合であっても最終的に手紙を配達する郵便局とは異なり、「ベスト・エフォート」方式を使用してコンテンツを配信し、パケット及びペイロードを配信する経路を見つける。パケット交換ネットワークがこの目標を達成する方法をよりよく理解するために、ネットワークの7レイヤOSIモデルにおける各レイヤの機能及び役割を、より深く検討する必要がある。
OSIレイヤ1 物理(PHY)レイヤ
OSIレイヤ1によって記述された物理レイヤは、通信を容易化するために使用されるハードウェアの操作に対処する。物理レイヤは、電気、無線、及び光伝送のみを記述する最も基本的なレイヤであるが、最も多様なレイヤでもあり、特定のハードウェア1台に特化して、それぞれの詳細な説明を伴う。広く検討されるように、通信ハードウェアは2つのタイプに分けることができる。インターネットのバックボーンを形成するサーバ、すなわち「クラウド」を接続する高トラヒック量のパイプに使用される高帯域幅通信、及びデバイス間のローカル通信を完成させる、またはクラウドから消費者、企業、及びマシンへの「ラストマイル」リンクを接続する低帯域幅通信である。
図5Aは、例としてマイクロ波タワー98、光ファイバ91、及びマイクロ波衛星93を介して接続されたPOPのサーバ21Aと、サーバ21Bとの間の高帯域幅通信を示す。マイクロ波通信は、マイクロ波タワー96Aとマイクロ波タワー96Bとの間に見通しのある直接の通信路を必要とする。タワーは、図示のように、有線接続97A及び有線接続97BによってPOPのサーバ21A及びサーバ21Bに接続される。同様に、衛星通信は、衛星93と、POPのサーバ21A及びサーバ21Bに接続された衛星アンテナ92A及び衛星アンテナ92Bとの間のマイクロ波アップリンク及びダウンリンク95A、及びマイクロ波アップリンク及びダウンリンク95Bを必要とする。先の例と同様に、有線接続94A及び有線接続94Bは、サーバ21A及びサーバ21Bを、衛星アンテナ92A及び衛星アンテナ92Bに接続する。サーバ21A及びサーバ21Bは、光ファイバ91によって維持される高帯域幅光接続90を使用して直接接続することもできる。
図5は、サーバ21B及びサーバ21Cと、高帯域幅接続23とを含むクラウド22からの「ラストマイル」リンクの様々な例と、様々な種類のコンピュータ、電話、無線、及び接続された「モノ」とを示す。図示のように、有線接続は、光ファイバ91及び同軸ケーブル105と、程度を弱めるがツイストペア銅線とを含んでもよい。ワイヤレス接続は、セルラー無線タワー18、双方向の無線タワー15、WiFiアクセスポイント26、及び衛星93を含む多くの手段によって送信することができる。
いくつかの例のように、クラウドゲートウェイとして機能するサーバ21Cは、光ファイバ接続24によって、スマートフォン32、タブレット33、またはノートブック35に接続するセルラー無線28のためのセルラー無線タワー18を駆動する回線交換セルラーネットワーク17であるLTE基地局に接続される。サーバ21Cは、WiFi29をスマートフォン32、タブレット33、またはノートブック35に送信するパブリックWiFiルータにも接続される。
サーバ21Cは、ケーブルモデム伝送システム、CMTS101に接続され、次に、同軸ケーブル105によって、HDM(登録商標)I107を使用したTV39を駆動するセットトップボックス(TV STB)102、及びケーブルモデム103に接続される。ケーブルモデム103は、2つの異なるタイプの出力、つまり音声及び高速デジタル(HSD)を発生させる。音声出力はコードレス電話5に使用され得るが、HSDは、家庭用のWiFiアクセスポイント26によって発生したWiFi無線29を介し、タブレット33、家電製品34、及び携帯電話(図示せず)と同様にデスクトップ36を駆動する。ケーブルモデム103は、場合によっては、デスクトップ36に配線されたイーサネット(登録商標)104としてHSDを生み出してもよい。あるいは、TV STB102は、衛星93を有する衛星アンテナ92A及び衛星アンテナ92Bを含む衛星リンク95を介してシグナルを受信することができる。全体として、TV STB102及びケーブルモデム103の様々な出力により、家庭通信ネットワーク100が作成される。
サーバ21Cは、TETRAまたはEDACSの、双方向無線ネットワーク14の基地局、及び無線タワー15からの無線16A及び無線16Bを駆動する双方向無線シグナルを介して、またはデスクトップ電話機9を駆動する企業PBX8を介して、プロフェッショナル通信デバイスに接続されてもよい。ほとんどの双方向無線、及び構内交換機システムはパケット交換技術に基づいておらず、コールルーティングのために公衆電話番号を使用しないため、サーバ21CとPBX8または双方向無線ネットワーク14の基地局との間でデータが送信されるときは常に情報が失われる。POTSは音声及びデータの混在を処理すべく設計されていないため、POTS6に接続されたPSTNブリッジ3も同様である。
物理レイヤ、すなわちPHYレイヤの役割は、通信が1対1であるか、1対多であるか、または多対多であるかに依存するシステムによって変わる。図6Aに概念的に示されている1対1の通信では、ただ2つのデバイス140A及びデバイス140Bは、専用の電気的、光学的、またはRF接続を使用して相互に直接接続し、ポイントツーポイント接続を実現する。インターフェース143A及びインターフェース143Bにインストールされた、規定の、予め定義された通信プロトコルを使用することによって、ハードウェアのみのインターフェースがデバイス間に確立され、通信を実行することができる。より具体的には、電子回路141Aから発生したデータは、電気シグナル、RFシグナル、または光シグナルを介して、同様に構成された物理的通信のインターフェース143Bに接続された物理レイヤ通信のインターフェース143Aに転送される。受信されたデータは電子回路141Bによって処理され、ある場合には、デバイス140Aのインターフェース143Aに応答が戻される。
1対1通信では2つのデバイスしか存在しないため、トラヒックを誘導し、デバイスを識別し、またはどのデバイスが命令に応答するかを決定するためのソフトウェアを含む必要はない。専用のポイントツーポイント通信などの例は、当初、プリンタをデスクトップコンピュータに接続するために使用されたRS232のようなシリアル通信バスと、携帯電話のディスプレイのLEDバックライト輝度を制御するために使用されるシンプルシリアルコントロール、すなわちS2Cバス(特許文献1)とを含む。
専用のポイントツーポイント通信には、いくつかの利点が存在する。第1に、実装が容易であり、必要に応じて、単一の集積回路内であったとしても、中央処理装置(CPU)コアを必要とすることなくハードウェアで完全に実行することが可能である。あるいは、インターフェースは、ファームウェア、すなわちハードウェア特有のソフトウェアで実施することができ、データ交換を管理するための限定された命令セットを実行するために、最小限のCPU処理能力のみを必要とする。第2に、トラヒック管理を必要とすることなく、インターフェースなどは非常に高いデータ速度で動作することが可能である。最後に、他のデバイスが回線を共有していないか、または通信を「聞く」ことができないため、セキュリティに様々な利点が存在する。この場合、インターフェースは、デバイスがそのポートに差し込まれた時点で任意のデバイスのユーザ情報を「検証」または「認証」し、接続が一瞬でさえ中断された場合には、ポートを無効にすべく実装することができる。認証されていないデバイスは無視され、有効なデバイスが問題のデバイスに置き換わるまで、ポートはシャットダウンしたまままである。
1対1通信における2つのデバイス間の関係は、基本的に異なる2つの方法で管理され得る。「ピアツーピア」通信では、各デバイスは、等しい意思決定権限を有し、通信交換の制御は、一般的に先着順に優先権が与えられる。あるいは、「マスタ/スレーブ」構成では、マスタデバイスが意思決定プロセスの制御を行い、スレーブデバイスは、リクエストを行ってマスタデバイスから承認を受け、任意の動作を開始する必要がある。
1対多のPHY専用インターフェースが図6Bに示されており、3つ以上のデバイス140A、デバイス140B、デバイス140Cがデータ「バス」144として示される共有通信回線によって共に接続されている。各デバイスは、対応するデータ回線142A、データ回線142B、及びデータ回線142Cによって物理的なインターフェース143A、インターフェース143B、及びインターフェース143Cに接続された電子回路141A、電子回路141B、または電子回路141Cを含む。この構成では、任意のデバイスから通信されたデータが、バスまたは通信メディアに接続された全ての他のデバイスに渡される。例えば、デバイス140Cがバス144にデータを送信する場合、デバイス140A及びデバイス140Bは通信を受信し、デバイス140Bがバス144にデータを送信する場合、デバイス140A及びデバイス140Cは通信を受信する。以下同様に続く。誰もが聞く通信は「放送」と呼ばれ、多くのテレビ受信機にコンテンツを送信する放送テレビ局と同様の手段である。
現代の言葉では、1対多放送はマルチキャスティングとして知られている。レイヤ1であるPHYのみの1対多放送は、放送事業者には誰が聞いているのか分からないため、本質的には安全な通信形態でない。第二次世界大戦では、情報をスクランブルする秘密のアルゴリズムを使用することにより、リスナがメッセージを理解することを防ぐべく設計された「暗号化」を使用して、安全でないチャネルを介して軍隊、艦隊、及び潜水艦に情報を送るために放送が使用された。承認されていないリスナが「コードを破る」ことができれば、インターロッパーが機密声明を傍受することができるだけでなく、傍受可能であることを放送業者が知らないため、セキュリティはひどく危険にさらされる。したがって、レイヤ1であるPHYのみの実装では、1対多通信には、以下のようないくつかの大きな欠点がある。
・通信バスまたはメディアに接続可能な任意のデバイスは、意図しない受信者またはセキュリティ脅威を表していても、通信コンテンツを受信または監視することができる。
・情報を送信するデバイス、すなわち「送信デバイス」は、他のデバイスが何を聞いているかわからない。
・送信デバイスは、送信されたデータが正確かつ的確に受信されたかどうかを確認することができない。
・意図しない、または無関心の受信者への通信トラヒックの送信は、受信者に望まない、必要としない、または気にしないメッセージを受信させることによって、貴重な通信チャネル帯域幅を無駄にする。
チャネル帯域幅のための競争、及びどのデバイスが送信を承認されているかという優先順位付けの決定のため、PHYのみの実装を使用するマルチデバイス接続性の問題は、1対多、特に多対多のデバイス通信においてさらに悪化する。データの衝突を防ぐために、複数のデバイスが同時に放送しようとする場合、PHYのみの通信は、通信チャネルまたはメディアを共有する各デバイスのために、予め定められた階層の優先権を採用しなければならない。中央処理装置、すなわちCPUの設計では、いくつかの方法が組み合わされ、CPU内及びCPUとメモリとの間の通信を管理する。これらの概念には、CPUがどのデバイスまたはメモリロケーションと通信しようとしているかを識別するために使用される「アドレスバス」の原理と、アドレスとは別にデータを搬送するために使用される「データバス」と、何らかのタスクが実行されなければならないときを識別するために使用される1つ以上の「割り込み」回線とが含まれる。
このように、CPUは要求されたタスクに対し実行時に反応することができ、必要に応じてCPUが複数の周辺機器と通信してサポートすることを可能にし、接続された周辺機器からステータス情報を絶えずポーリングする、または請求する責任から、CPUを解放する。動作時には、周辺コンポーネントがアテンションを必要とするときにはいつでも、共有接続である割り込み回線を、瞬時に、接地へ電気的にショートさせることによって、「割り込み」シグナル、すなわちサービスの要求を発生させる。割り込みを発生させた後、周辺機器は、航空機内の「コールアテンダント」ライトに類似した方法で、CPUが必要なものをデバイスに要求するのを待つ。割り込みサービスルーチンは、一般的に、割り込みデバイスを処理する前にCPUが行っていることを完了させるため、このような方法は、即時の注意を必要とするリアルライムイベントの優先処理には適していない。
リアルタイムアプリケーションのための割り込みベース通信の機能を強化するために、CPUアーキテクチャは、「ノンマスカブル割り込み」と呼ばれる優先回線の概念を導入し、CPUが何をしていても停止させ、優先順位の高いイベント、すなわちリアルタイムイベント、例えばルータに入ってきたメッセージまたは携帯電話への着信を即座に処理する。一等船室内の少数の乗客のためのVIP待遇のように、このような方法は、中央通信装置またはマスタデバイスに接続された限られた数のデバイスのために機能するが、このアプローチは、多数のユーザを処理すべく調整されておらず、集中制御が存在しないピア分散システム(peer-distributed system)もサポートしない。
CPUのデバイスアドレスの原則を発展させ、OSIレイヤ2、3、及び4は同様に、デバイス間の通信トラヒックを導くための主要コンポーネントとして、デバイス「アイデンティティ」を利用する。例えば、データリンクレイヤであるレイヤ2は、メディアアクセス、すなわちMACアドレスを使用して入出力情報を識別し、ネットワークレイヤであるレイヤ3は、IPアドレスを使用したネットワークを介してパケットをルーティングし、トランスポートレイヤであるレイヤ4は、転送されているデータの種類、例えば電子メール、ウェブページ、ファイルなどを識別するためにポートアドレスを使用する。CPUでは、アドレスバス、データバス、及び割り込み回線は、「パラレル」ポート接続としても知られる別々の回線を含む。パラレルポートは、単一のチップ内の相互接続、またはコンピュータマザーボード上の短距離高速接続を最大化する点で有効であるが、多数の回線は高価であり、長距離通信には非実用的である。
代わりに、シリアル通信は、経時的に送信されるパケットで情報を配信するため、現在の電子通信のための一般的な方法を形成する。図4に先に示したIPパケットは、全ての必要なルーティングデータ及び通信データを含み、通信ネットワークを介して送信者と受信者との間でペイロードのセグメント84であるコンテンツをローカルまたはグローバルに配信する。各IPパケットは、並行して同時に送信される代わりに、順次配置され、経時的方法86で受信する場合以外には、データリンクヘッダー81のデータリンクレイヤ情報、ヘッダー82のIPアドレス情報、及びTCP/UDPのヘッダー83のポートアドレス情報を有する、必要なアドレスを含む。
OSIレイヤ2 データリンクレイヤ
PHYのみのマルチデバイス通信において情報フローを制御する際、前述の問題を克服するために、7レイヤのOSIモデルは、レイヤ2、すなわち「データリンク」レイヤの抽象概念を含む。本質的に、データリンクレイヤは、交通整理の任務を遂行し、データの流れを導き、共有データバスまたは共有メディア上のどのデータが特定のデバイスを対象としているかを決定する。レイヤ2のデータリンクレイヤの役割は図7Aに例示されており、デバイス145A、デバイス145B、及びデバイス145Cは共通接続、すなわち「バス」144を共有するが、各デバイスは、一度に1つのデータリンク147通信のみをサポートする、独自のデータリンクレイヤの通信インターフェース146A、データリンクレイヤの通信インターフェース146B、及びデータリンクレイヤの通信インターフェース146Cを有する。したがって、多くのデバイスが物理レイヤで共に接続されている、すなわち共通のハードウェアバスを共有しているにも関わらず、データリンクレイヤでは、そのうち2つのみが一度に相互接続される。具体的には、デバイスCが他の2つのデバイスに物理的レベルで接続されている場合でも、デバイス145Aはデバイス145Bと独占的に通信することを望む。すなわち、データリンク147は、デバイスAとデバイスBとの間のみで発生する。
3つのデバイス、すなわちデータリンクの通信インターフェース146A、データリンクの通信インターフェース146B、及びデータリンクの通信インターフェース146Cの全てにおいて、データリンクレイヤインターフェースとしてレイヤ2関連のハードウェアまたはソフトウェアを導入することにより、データバス144を介して送信されたデータは、検閲され、フィルタリングされて、送信者と意図された受信者との間の通信を制限することができる。他のバスに接続されたデバイスは、引き続き同じデータを受信するが、それを無視し、メッセージを受信したとき何もしない。これらのプロトコルは、シリアル・ペリフェラル・インターフェース、すなわちSPIバスによって使用され、複数のデバイスが共通の「データバス」に接続され、バスがデータを運ぶが、特定のアドレスがアドレス回線に表示される場合にのみ応答する。このように、SPIバスはLCD TVバックライトシステムのLEDを制御するために使用され、TVディスプレイの各LEDストリングを独立して制御することができ、高輝度のHU及びUHDビデオコンテンツのための輝度制御及び「ローカルディミング」を容易にする。同様の概念は、コンピュータのPCI Express拡張スロットにおいて、及び自動車で使用されるCANバスにおいて使用されるのと同様にコンピュータメモリバスアーキテクチャ内でも使用され、どのバンクのメモリが読み書きされるかを選択する。
同様に、データリンクレイヤの概念は、ワイヤレスヘッドフォン、スピーカ、ビデオカメラなどのBluetooth(登録商標)ワイヤレス通信で使用され、対になっているデバイスと、予め認可された、または「ボンドされた」デバイスのみが相互に通信できる。Bluetooth(登録商標)プロトコルでは、データリンクを確立するステップであるボンディングプロセスは、実際のデータ通信から独立して、かつ優先して行われる。少なくとも理論的には、ボンドが完了すると、2つのボンドされたデバイスは、他の当事者間で同時に起きる他のBluetooth(登録商標)会話によって妨害されずに通信することができる。実際には、Bluetooth(登録商標)通信バス144は、限定された帯域幅、及びデータ容量の共有無線周波数チャネルを表す。Bluetooth(登録商標)標準委員会によって定義され、FCCと、外国の同等機関との合意により割り当てられた、全てのBluetooth(登録商標)対応デバイスは、同じ共有無線周波数帯、すなわち「チャネル」上で放送する。各同時放送は、チャネルの利用可能な帯域幅、及びデータ速度の一部を消費する。重複した送信にも関わらず、データは、チャネルが過度に占有されるほど長く衝突することはない。データ衝突のリスクを最小化し、チャネルの過密及び可用性の問題を回避するため、Bluetooth(登録商標)通信は、非常に短い距離、及び極めて低いデータ速度に意図的に制限されている。
前述のバスアーキテクチャでは、物理的接続は、共通回線、電気的接続、または複数のデバイスに直接接続されているか、複数のデバイス間で共有されているメディアである。バスアーキテクチャでは、バスに接続された任意のデバイスは、たとえ少量であってもバスからエネルギーを消費し、通信してバスのパフォーマンスを低下させる。各追加デバイスの接続とともにバスのパフォーマンスを段階的に低下させるこの現象は、「ローディング」として知られている。ローディングが大きすぎる場合には、バスは指定された性能限界内で動作できなくなり、通信が遅すぎること、または高いエラー率を示すことによって通信は失敗する。特定のパフォーマンス・レーティングを満たす前に、回線またはバスに接続されるデバイスの最大数は、バスまたは接続の「ファンアウト」と呼ばれる。ローディングのリスクを軽減するために、バスは多数のセグメントに分割されてもよく、各セグメントはポイントツーポイント方式で操作され、シグナルインテグリティは他のデバイスに送信される前に、大きさがブーストまたはバッファリングされる。接続性の観点から、データリンク、すなわち接続されるデータまたはシグナルは、バスアーキテクチャと同じであるが、電気的、光学的、または無線の信号強度であるPHYデータは、接続されたデバイスの数とは無関係に、一定のレベルに一貫して維持される。
ブーストされたシグナルとのポイントツーポイント接続を含む、1つの接続されたネットワークは、図7Bに示されるハブアーキテクチャであり、通信インターフェース146A、通信インターフェース146B、及び通信インターフェース146Cによってそれぞれ簡略化されて示されるデバイスA、デバイスB、及びデバイスCは、シグナルブースティングバス、すなわち「ハブ」148を介して相互に接続するために使用される。ハブは、データストリームを変更、フィルタリング、または解釈することなく、入力シグナルのコンテンツを忠実に再現し、その後、同じシグナルのブーストされたバージョンを、他のデバイスに接続された回線上に出力する。
各デバイスは、それ自体の専用通信回線、具体的には、周辺デバイス通信インターフェース146Aをハブ通信スタック150Aに接続する専用通信回線151A、周辺デバイス通信インターフェース146Bをハブ通信スタック150Bに接続する専用通信回線151B、及び周辺デバイス通信インターフェース146Cをハブ通信スタック150Cに接続する専用通信回線151Cを介してハブ148にそれぞれ接続する。次に、ハブ148内の通信スタックは、高速の内部データバス149に接続し、ハブ接続されたデバイスを相互接続する。PHYレイヤデータは全て、ハブ148及び内部データバス149を通って移動するが、レイヤ2のデータリンク147通信は、デバイスAの通信インターフェース146AのみがデバイスBの通信スタック246Bに対して独占的に通信し、デバイスCに対してはそうでないように操作される。しかし、PHYレイヤのデータは、ハブに接続された全てのデバイスに、等しい伝播遅延で配信される。また、どのデバイスが放送しており、そのデバイスが聴いているかを知る方法がないため、ハブデバイスは多方向通信をサポートしなければならない。イーサネット(登録商標)及びThunderbolt用のハブは、このように操作される。例えば「ユニバーサルシリアルバス」または「USB」などの他のハブでは、ハブは、1つの入力ポートと複数の出力ポート(通常は2〜6)を有し、異なる形状のUSBコネクタを使用して、データフローの2つのタイプ、及びデフォルトの方向を区別する。
シグナルブースティングを提供するためにデバイスを相互接続する他の方法は、図7Cに示される「デイジーチェーン」アーキテクチャであり、デバイスA、デバイスB、及びデバイスCは連続的に接続されている。デバイスAの通信スタック152Aは専用通信回線151Aを介してデバイスBの通信スタック152Bに接続され、デバイスBの通信スタック152Bは専用通信回線151Bを介してデバイスCの通信スタック152Cに接続され、デバイスCの通信スタック152Cは専用通信回線151Cを介して、もし存在するならば、デイジーチェーン内で接続された次のデバイスに接続される。物理的接続、言い換えれば有線システムにおける機械的コネクタ自体が異なるという事実を明確にするために、通信スタック152A、通信スタック152B、及び通信スタック152Cはそれぞれ、2つのレイヤ1の物理インターフェースを含むが、レイヤ2のデータリンクレイヤは1つのみである。
デイジーチェーン操作では、PHYデータは通信スタック152Aのデータリンクレイヤから通信スタック152AのPHYインターフェースに流れ、次に、専用通信回線151Aの構成要素となるケーブルを介して通信スタック152BのPHYインターフェースに流れ、データリンクレイヤに上がり、デバイスBの第2PHYインターフェースに下り、専用通信回線151Bの構成要素となるケーブルを介して通信スタック152CのPHYインターフェースに流れ、データリンクレイヤに上がる。したがって、物理的シグナルは示された3つのデバイス全てを通る経路を進むが、データリンクイレイヤは、デバイスAの通信スタック152AのみをデバイスCの通信スタック152Cに接続し、デバイスBは運ばれているデータを無視する。デイジーチェーンアーキテクチャに基づくネットワーク通信の例には、Firewire、すなわちIEEE1394、音楽デジタルインターフェース、すなわちMIDI、及び初期のウインドウベースのパーソナルコンピュータによって使用されている旧式のトークンリングが含まれる。デイジーチェーンデバイスのメリットは、追加のデバイス、すなわちハブ、またはそれに接続する全てのネットワーク配線が不要であることである。デイジーチェーンアーキテクチャの1つのデメリットは、データが各デバイスを通過することでデバイス間の伝播遅延が増大し、特に高速リアルタイムアプリケーションにおいて矛盾したパフォーマンスを引き起こすことである。
バスアーキテクチャ、ハブアーキテクチャ、及びデイジーチェーンアーキテクチャの3つの例全てにおいて、PHYレイヤデータは、意図された受信者でなくとも、ネットワークに接続された全てのデバイスに送信される。デバイス自体は、パケットの識別及びフィルタリングを実行し、受信したデータのアドレスを、デバイス内またはデバイスのICの1つに存在する不揮発性メモリ、マイクロメカニカルスイッチ、またはワイヤジャンパを使用して、通常は固定アドレスとして予めプログラムされた独自のアドレスを比較する。特定のデバイスが、そのアドレスと一致する宛先を含むデータパケットを認識すると応答し、そうでない場合はパケットを完全に無視する。パケットのデバイスアドレスは、使用されている通信プロトコル(MIDI、USB、IEEE1394、Thunderboltなど)に準拠していなければならない。パケットがデータリンクレイヤとしてインターネットプロトコルを使用する場合、このアドレスには、本開示で後述する「メディアアクセス」、すなわちMACアドレスと呼ばれる特定の名前が与えられる。
示されたバスアーキテクチャ、ハブアーキテクチャ、及びデイジーチェーンアーキテクチャの1つの重要な特性は、PHYレイヤ上で放送されているデータ、すなわち電気シグナル、RFシグナル、または光シグナルが全ての接続されたデバイスに送信されることである。この方法は、パケットを必要とせず、意図されていないデバイスに対しパケットを不必要に送信することにより、貴重なネットワーク帯域幅を消費する。イーサネット(登録商標)がローカルエリアネットワークすなわちLAN接続の基準として登場したため、この無駄なネットワーク帯域幅が特定され、ネットワーク「スイッチ」の導入によって最終的に排除された。
図8Aの3デバイスの例に示されるようなLAN実装では、デバイス145A、デバイス145B、及びデバイス145Cの間に含まれる通信インターフェース146A、通信インターフェース146B、及び通信インターフェース146Cの通信PHYレイヤの間に、LANスイッチ159が挿入される。先に図7Aに示したバス接続とは対照的に、デバイスを相互接続する単一の共有データバス144を有する場合、LANスイッチ159の追加により、バスは3つの別々のポイントツーポイント接続に分割される。すなわち、デバイス145AとLANスイッチ159との間のPHY接続148A、デバイス145BとLANスイッチ159との間のPHY接続148B、デバイス145CとLANスイッチ159との間のPHY接続148Cなどである。図示のように、各物理接続は、2つのデバイスのみの間にポイントツーポイントで発生し、シリアルデータストリームを、隣接する接続されたデバイスに渡す役割を担う中間デバイスを有する。
この原理は、任意の数のデバイスに拡張することができ、LANスイッチ159の動作は、単方向または双方向、及び半二重または全二重であってもよい。操作時には、ネットワークに接続されたデバイス145A及びデバイス145Bの、通信インターフェース146Aと通信インターフェース146Bとの間にのみデータリンク147を設けるために、LANスイッチ159は、2つの通信デバイスであるデバイス145A及びデバイス145Bの間にのみ、物理レイヤ接続を確立する。このように、PHYレイヤ接続は、2つの通信デバイス、すなわちデバイス145Aとデバイス145Bとの間でのみ確立され、他のデバイス、例えばデバイス145Cはネットワーク接続されない。LANスイッチ159を使用することの1つの利点は、デバイス145Cが、ネットワーク内で発生している他の通信のチャタリングを聞くことに悩まされず、デバイス145Cの通信インターフェース146Cは、要求されるまでフリーのままであることである。
LANスイッチ159を使用することの第2の利点は、LANスイッチ159に入力されるシグナルは、隣接し、ネットワーク接続されたデバイスに送られる前にブーストされ、より多くのデバイスがLANスイッチ159に接続することによるローディング、シグナル劣化、または速度影響が生じないようにすることである。したがって、LANスイッチ159からのファンアウトは本質的に無制限であり、LANスイッチ内の接続数によってのみ決定される。
図8Bには、物理回線160A〜物理回線160Fを含むLANスイッチ159の概略図が示されている。2つの回線の全ての組み合わせにおける交点にLANクロスポイント161が存在し、双方向スイッチ及び増幅器を示している。例えば、クロスポイントABはBの物理回線160BをAの物理回線160Aに相互接続させ、クロスポイントBEはBの物理回線160BをE回線160Eに相互接続させ、クロスポイントCEはCの物理回線160CをE回線160Eに相互接続させるなどである。通常の通信では、各回線は最大でも1つのみの他の回線に接続され、相互接続ペアを作る。デバイスが見つかると、LANスイッチを使用してレイヤ2MACアドレス(図示せず)のルーティングテーブルが維持され、どのデバイスがどのコネクタに接続されているかを記録する。この表は、MACアドレスをLANスイッチヘの物理接続に本質的にマッピングし、レイヤ2のデータリンクレイヤと、レイヤ1のPHYレイヤとの間の正確な関係を証明する。表は動的であるため、あるデバイスが接続されておらず、別のデバイスが接続されている場合、MACアドレスルーティングテーブルは、LANスイッチ159で自動的に更新される。
ネットワーク内の全てのデバイスにデータの放送が送信される特別な場合、例えば、あるデバイスが別のデバイスを探している可能性があるが、LANスイッチ上の、そのデバイスの位置を特定していない起動時には、データを放送する1つの送信元、及びそのデータを受信する残りのデバイスと同時に、全てのデバイスを相互接続することができる。アンプ内蔵であるため、放送モードであっても、全てのシグナルがバッファされ、速度またはシグナルの完全性は低下しない。
LANスイッチ159を使用する第3の、及び最も重要な利点は、ネットワーク全体の帯域幅を劇的に増加させることであり、図8Cに示すように、複数の会話が、デバイスのペア間で同時にかつ独立して発生することを可能にする。この例では、デバイス145A、デバイス145B、デバイス145C、及びデバイス145Fは、それぞれ物理回線160A、物理回線160B、物理回線160C、及び物理回線160FでLANスイッチ159に接続されている。データリンクレイヤ2を通じ、デバイス145A及びデバイス145Bは、ペアリング164を介して専用通信チャネルABを形成し、同時にデバイス145C及びデバイス145Fは、ペアリング165を介して専用通信チャネルCFを形成する。デバイス145Aからデバイス145Bへの通信では、データは、物理回線160Aに沿って送られ、「オン」LANクロスポイント162を介し、物理回線160Bを通ってデバイス145Bに送られる。同時に、デバイス145Cからデバイス145Fへの通信において、データは、物理回線160Cに沿って送られ、LANクロスポイント163を介し、物理回線160Fを通ってデバイス145Fに送られる。デバイスが他の回線に接続されていても、他のLANクロスポイント接続は全てオフのままである。
このようにして、2つの独立した通信チャネル、すなわち「会話」が、共通データバスを共有することを待つことなく、ABのペアリング164、及びCFのペアリング165において、全データレートで生じ得る。したがって、図示の例では、LANスイッチ159及びLANアーキテクチャを使用することによって、バス、ハブ、またはデイジーチェーンネットワークアーキテクチャを使用する場合と比較すると、4つのデバイスを接続するネットワークの帯域幅が2倍になる。「n」個の回線及び接続を有するLANスイッチでは、一度に1つの会話をサポート可能であるのみのシリアル接続と比較すると、同時会話の最大数は「n/2」である。
2つのデバイス、例えば、ABのペアリング164の、デバイス145A及びデバイス145Bが接続されている場合、1つのデバイスのみが一度に「話す」ことが可能であり、一方で他方は聞いているため、単一回線を使用する通信は半二重のみである。全二重通信が必要な場合には、LANスイッチ159内の回線及びクロスポイント接続の数を2倍にしなければならず、デバイス145Aの出力口はデバイス145Bの入力口に接続され、デバイス145Bの出力口はデバイス145Aの入力口に接続されている。したがって、デバイスAからデバイスBへの全二重通信は、同時に2つのペアリングを伴う。つまり、デバイスAがデバイスBにデータを送るABペアリングと、デバイスBがデバイスAにデータを送るBAペアリングとであり、それぞれのペアリングは異なる回線上に存在し、特有のクロスポイント接続を介している。
図8Cは、物理回線160A〜物理回線160Fが電気コネクタのワイヤ及びプラグを表すことを意味し得るが、回線が無線通信、または光通信を表す場合であっても、図の内容は同様に有効である。無線通信では、各回線は、例えば、1つの回線のデータを運ぶために使用される特有の周波数帯域、すなわち「サブチャネル」を表し、20の無線周波数、帯域、またはサブチャネルを使用して、最大10の異なる会話を同時に、かつ独立して運ぶことができる。各回線の光通信においては、異なる光の波長または特有の変調方式を表すことができる。無線または光インターフェースは、電磁通信を、通信するデバイス内の電気シグナルに変換する。このようにして、LANスイッチを使用して、任意のネットワーク構成された通信媒体の帯域幅を向上することができる。
パケット交換ネットワークにおいて、トラヒック及びデータの転送を指示する多数のプロトコル及び基準が明らかになったが、より十分な説明を保証する、いくつかの広範囲にわたる基準が明らかとなった。既存の古びた基準から広く採用されているか、発展しており、これらの通信プロトコル及び関連するハードウェアについては、以下に記述する。
・電気通信ネットワーク用イーサネット(登録商標)(IEEE802.3)
・近距離無線通信ネットワーク用WiFi(802.11)
・遠距離無線通信ネットワーク用4G/LTE
・ケーブル及び光ファイバベースの通信ネットワーク用DOCSIS3
[イーサネット(登録商標)(IEEE802.3)]
近代的なネットワークでLANを形成するために電気的接続が使用される場合、ほとんどの専用ネットワークは、イーサネット(登録商標)として知られる世界的に受け入れられた標準規格IEEE802.3に置き換えられている。イーサネット(登録商標)の仕様では、電気的接続、電圧、データレート、通信速度、及び物理的なコネクタプラグとコネクタソケットとが定義されるだけでなく、データリンクレイヤ2によって使用されるデータパケットも規定される。したがって、イーサネット(登録商標)は、データリンクレイヤ2及びPHYレイヤ1の仕様の両方の標準規格である。レイヤ1イーサネット(登録商標)パケット188、またはレイヤ2イーサネット(登録商標)パケット189のいずれかとしてのイーサネット(登録商標)データパケットのコンテンツの仕様は、増加時間86の方向に左から右に表される、図9の直列データとして図示されている。関連した表190は、イーサネット(登録商標)パケット内の各ブロックの機能、またはサブパケットの機能を説明している。
図示のように、レイヤ2イーサネット(登録商標)パケット189は、宛先MACアドレス182、送信元MACアドレス183、オプションのVLAN184ブロック、イーサタイプ185のブロック、フレームチェック186、及びペイロード187を含み、イーサネット(登録商標)パケットによって運ばれる実際のデータを表す。速度仕様を保証するため、レイヤ2イーサネット(登録商標)パケットのサイズは、42B〜1,500Bのペイロードを運ぶために、イーサネット(登録商標)仕様にしたがって64B〜1,518Bの範囲であってもよい。オプションのVLAN184ブロックがパケットに含まれている場合、パケット長は4B増加し、レイヤ2イーサネット(登録商標)の最大長は1,522Bになる。
レイヤ1イーサネット(登録商標)パケット188は、レイヤ2イーサネット(登録商標)パケット189のコンテンツ全体を、同期のためのSFD181、及びデータフレームヘッダーとしてのプリアンブル180を含むヘッダーと組み合わせる。レイヤ1イーサネット(登録商標)パケット188の最大長は、レイヤ2イーサネット(登録商標)パケット189より8B長く、VLANオプションなしの最小サイズ72Bから最大長1,526Bまで、またはVLAN184ブロックを含む1,530Bまでの範囲である。
操作における、レイヤ1データフレームヘッダーサブフィールドとしてのプリアンブル180の目的は、最初にデバイスがデータを送信しようとしていることを識別するハードウェアを助けることである。ヘッダーであるSFD181は、受信パケットデータをタイミングクロックに同期させるために使用され、データを確実に読み取ることができるようにする。これら2つのレイヤ1イーサネット(登録商標)パケット188のブロックが受信された後、レイヤ2イーサネット(登録商標)パケット189は、宛先MACアドレス182及び送信元MACアドレス183で始まり、どのLAN接続デバイスにデータが送信され、どこから受信しているのか説明する。LANスイッチは情報処理機能を持ち、これらのアドレスにしたがってデータをルーティングすることが可能である。VLAN184ブロックはオプションであり、もし存在する場合には、IEEE仕様802.1Qにしたがってパケットをサブネットワーク、または仮想ローカルエリアネットワークに分割することにより、パケットのフィルタリングを容易にする。イーサタイプ185は、データタイプ、またはデータ形式によって決まるデータの長さのいずれかのデータ形式を指定する。イーサタイプ185及びVLAN184は、オプションのVLAN184データが挿入されているか否かについての混乱を防ぐ形式にしたがう。
このヘッダーデータの全てが受信された後、ペイロード187は、イーサネット(登録商標)パケットによって送信される実際のデータを含む。このデータは、インターネットプロトコルに準拠していてもよく、OSIモデルに記載されているようにレイヤ3からレイヤ7のコンテンツをカプセル化したデータを含んでいてもよい。あるいは、カスタム設計されたシステムでは、ペイロード187は、特定のハードウェアまたは製造業者が所有するプロトコルを含んでいてもよい。イーサネット(登録商標)規格で許可されている1,500Bの最大パケットサイズで全ての必要なデータを送信できない場合、ペイロードを分割して、または代替プロトコル、例えば標準のイーサネット(登録商標)パケットの6倍である9,000Bのデータを運ぶことのできるジャンボフレーム、を使用して送信することができる。フレームチェック186は、レイヤ2イーサネット(登録商標)パケット189に対する基本的なエラーチェック関連情報を有するが、プリアンブル180またはSFD181のためのレイヤ1データに対しては有していない。フレームチェック186は、32ビットの巡回冗長検査アルゴリズムを利用し、レイヤ2イーサネット(登録商標)パケット189の生データにおける意図しない変化を検出することができる。
イーサネット(登録商標)の物理的規格には電気ケーブル及び光ファイバの両方が含まれているが、現在では電気ケーブルが最も一般的である。データ速度は、10Mbpsから100Mbpsまで、最近では「ギガビットイーサネット(登録商標)」と呼ばれる1Gbpsから100Gbpsまで進化している。イーサネット(登録商標)ケーブルは、容易に認識されるRJ−45コネクタを使用して、LANスイッチと、サーバ、デスクトップ、ノートブック、セットトップボックス、及びモデムなどのデバイスとの間の接続を保護する。いくつかの例では、イーサネット(登録商標)はデバイスに電力を供給するために使用され、「パワー・オーバー・イーサネット(登録商標)」すなわちPOEとして知られている。
[WiFi(802.11)]
多くの場合、イーサネット(登録商標)はモバイルデバイスとのワイヤレスネットワーク接続を確立するために採用され、短距離無線リンクを使用する。時間が経つにつれて、独自のワイヤレスリンクは、商業的にWiFiと呼ばれるIEEE802.11標準規格によって定義された、標準化された短距離通信プロトコルに置き換えられている。ルータ及びスイッチの機能をラジオレシーバ及びトランスミッタと合わせることで、WiFiルータは、家庭、オフィス、企業、カフェ、及び公共の場所で今では当たり前になっている。
図10に示された無線リンクは、2つの相互接続されたネットワークの組み合わせを示し、一方は「イーサネット(登録商標)MACアドレス」200Aを含み、他方は無線リンク、すなわち「無線アクセスポイント」200Bを含む。インターフェース回路、及び関連するファームウェアブロックは、イーサネット(登録商標)プロトコルと無線プロトコル、例えばWiFiとの間のレイヤ2データリンク205A及びレイヤ2データリンク205Bを容易にするだけでなく、レイヤ1PHYインターフェース、すなわち電気ネットワークと無線ネットワークとの間の物理ブリッジ204A及び物理ブリッジ204Bを提供する。操作中、イーサネット(登録商標)201からのデータは通信スタック203Aに入り、物理的シグナルはレイヤ1PHY接続の物理ブリッジ204Aを介してインターフェース202に接続し、レイヤ2データリンク情報はレイヤ2データリンク205Aを通過する。
処理後、データはインターフェース202から無線アクセスポイント200Bの通信スタック203Bに渡され、物理的シグナルはレイヤ1PHY接続の物理ブリッジ204Bを介して接続され、レイヤ2データリンク情報はレイヤ2データリンク205Bを通過する。この情報は、その後、接続204を通って無線トランシーバに送られ、無線アンテナ207の出力として無線機206A〜無線機206Nを介し、いくつかの「n」無線チャネルの任意の1つで放送される。無線シグナルを受信する場合、データ経路は同一であるが、前述の説明と反対方向である。
インターフェース202はまた、異なるイーサネット(登録商標)接続デバイスで同時に発生し得る、異なる無線チャネル上での同時通信をサポートするLANスイッチとしても機能することができ、この場合、2つ以上のイーサネット(登録商標)ケーブル201が無線リンクデバイスに差し込まれる。あるいは、単一のイーサネット(登録商標)接続を介して上流デバイスに複数の無線会話を順次送ることができ、レイヤ3及びレイヤ4を使用して様々な受信者へのパケットのルーティングを管理する。
近距離無線通信のための1つの標準化されたデバイス及びプロトコルは、IEEE802.11仕様に従って操作されるワイヤレスローカルエリアネットワーク、すなわちWLANデバイスである。WiFiとして商業的に知られているこのようなデバイスは、ワイヤレスインターネットアクセス、及びワイヤレス配信システムすなわちWDS、すなわち、配線が不便、困難、または配備に費用がかかる有線接続に代わる無線接続に使用される。マスタIEEE802.11仕様とは別に、802.11a、802.11n、802.11acなどのサブバージョンは、キャリア周波数、チャネル、変調方式、データレート、及びRF通信範囲を指定するために使用される。このアプリケーションの時点でIEEEによって承認された802.11規格のサブバージョンの概要を次の表に示す。
示されているように、WiFiは主に2.4GHz及び5GHzで操作し、遠距離WDSルーティングのために設計された3.7GHzは米国のみで採用されている。60GHzキャリアは、新たに採用され、ギガビットイーサネット(登録商標)、及びDOCSIS 3を使用したファイバ/ケーブルなどの他の高ビットレートネットワークへ接続するギガビットレート用に設計されている。カフェ、及び公共の場において一般的な複数のユーザの並列動作をサポートするために、802.11n及び802.11gは並行した5チャネル及び8チャネルのMIMO(Multiple-Input Multiple-Output)接続を提供する。高帯域幅を達成するために、WiFiは、複数の近接した直交サブキャリアチャネル上でデジタルデータをエンコードする方法として、主にOFDM、すなわち直交周波数多重変調を使用する。
操作時に、OFDMは単一のシグナルをサブキャリアに分割し、1つの超高速シグナルを多数の低速シグナルに分割する。この文脈において、直交性という用語は、隣接するサブキャリアチャネルが重ならないことを意味し、どのチャネルデータが意図されるかについての混乱を避ける。その後、多数のサブキャリアが受信機で収集され、再結合されて1つの高速伝送を再構成する。サブキャリアチャネル上のデータ速度は単一の高速チャネルより低いため、歪み及び干渉に対するシグナル感受性が低減され、この方法は、ノイズの多い周囲環境下であっても、または長距離にわたっていても信頼性の高いRF通信に適している。特別な3.7GHz帯を除き、WiFiは、より高い放送電力で屋内では70m、屋外では250mに制限されている。WiFiは、セルラーハンドオフ能力が不足しているため、長距離移動通信における使用は問題であり、以下に説明するLTE技術に委ねられている。
OFDM変調を使用するWiFiでは、伝送されたデータはデータタイプの一種である「シンボル」に編成され、多くのデジタル状態をより少ない数のシンボルへ、自然に圧縮する。その後、シンボルは低い「シンボルレート」で伝送され、キャリア輸送問題に関連するデータ損失から免除される。このアプローチは、低いエラー率、改善されたQoS、及びシグナル強度変動、RFのゴースト発生、及び周囲雑音またはEMIに対する感度の低下により、より高いビットレートを保証する。シンボルは、各特定のシンボルに相関する周波数、トーン、または特定のパルスパターンなどの任意の変調であってもよく、固定された持続時間内のシンボルのシーケンスは、シンボルレートより高いビットレートでデータストリームに変換され得る。この方法はセマフォフラグに類似しており、このフラグは、セット期間中、例えば1秒間に16個の固定位置のうち1つに移動することができる。「ボー」レートとしても知られているシンボルレートは、1秒当たり1シンボル、または1ボーであり、1ボーという用語は、「1秒あたりに伝送媒体に行われる別個のシンボル変更の数」として定義される。フラグは、16の異なる値を有することができ、バイナリ形式では、24=16の状態なので、8の状態は4ビットに相当する。次に、1秒あたりのシンボルレート、または1ボーは、シンボルレートの4倍の4bpsのデータビットレートに等しい。同様に、シンボルを表すために、16の異なるトーンを使用すると、毎秒10Mシンボルのシンボルレートは、40Mbpsのデジタルデータビットレートをもたらすことができる。
しかし、使用されるシンボルの数は、ビットレートだけでなくエラーレート及び通信QoSにも影響する。例えば、あまりにも多くのシンボルが使用される場合、無線のデジタルシグナルプロセッサすなわちDSPがノイズの多い環境でシンボルを正確に識別することは困難であり、データエラーレートは上昇し、パケットの動的CRCチェックにおいて有効なチェックサムを維持するためにデータの伝送を必要とする。任意のシンボルレートでより少ないシンボルを使用すると、別のシンボルレートを識別しやすくなるが、デジタルビットレート及び通信帯域幅が低下する。類推によると、セマフォフラグが16の代わりに4つの位置のうちの1つにしかできない場合、暴風の中で見ることが容易になり、通信エラーの機会、すなわち間違って読むことが大幅に減少する、しかし、4つのフラグ位置のうち1つのみを使用すると、ボーレートは依然として1秒あたり1シンボルであるが、22=4であるためビットデータレートはわずか2bpsに低下する。したがって、ビットレートとエラーレートとの間には、シンボルレートを動的に調整することによってWiFiが変調できる本質的なトレードオフが存在する。LTE無線通信においても同様のトレードオフが行われる。
802.11バージョンのa、g、及びnでは、新しいシンボルは、各サブキャリアチャネルに対して4μ秒ごとに、または250,000ボーで伝送され得る。WiFiは64のサブキャリアチャネルを使用するので、理論的には、最大シンボルレートはフルチャネル容量で16Mボーでなければならない。現代の無線通信では、シンボルは複数のレベルでビットに変換され、レベルは、以下の表に要約されている様々な位相変調方式を使用してRF通信条件で動的に変化する。
シンボルレートとビットレートとの間の関係は、以下の式によって定義される。
(ビットデータレート)/(シンボルレート)=ビット毎シグナル
ビットデータレートはビット毎秒、すなわちbpsで測定され、シンボルレートはシンボル毎秒、すなわち「ボー」で測定される。示されている位相変調方式のうち、バイナリ位相シフトキーイング、すなわちBPSKは、遠距離及び雑音の覆い無線環境で最も効果的であるが、低いデータレートに限定されているため、1シンボルあたり1ビットの純粋なバイナリメソッドを使用する。良好な無線状態では、データレートはシンボルレート、すなわち1シンボルあたりのビット数>1となり、無線のビットレートは、無線条件、EMIがない状態、トランシーバ間の距離の短縮、及び無線の放送電力に応じて、BPSKレートの2倍〜6倍に増加させることができる。例えば、良好な状態または中距離無線リンクの場合、「直交位相シフトキーイング」すなわちQPSKメソッドは、1シンボルあたり2ビットのBPSKのデータレートの2倍を提供する。短距離での動作に限定された非常に良好な状態では、16−QAMと呼ばれる「16レベル直交振幅変調」を使用して、WiFi通信で48Mbpsを提供するシンボルレートの4倍にビットレートを上げることができる。優れた雑音のない無線状況下では、データレートは、64−QAMすなわち64レベル直交振幅変調を使用して1シンボルあたり6ビットに増加することができる。通信における位相変調方式は当業者には周知であり、本開示でさらに説明はしない。
802.11a及び802.11gの場合、使用される別の変調方式は、直接拡散方式、すなわちDSSSであり、「拡散」という用語は、DSSSにおいて、キャリアシグナルが無線デバイスの送信周波数の全帯域幅、すなわちスペクトルにわたって生じるという事実を指す。DSSSでは、変調回路は、1つの情報ビットより短い擬似雑音符号シンボルの連続的な列を利用して、送信より先に擬似ランダムに正弦波を位相シフトし、受信シグナルから同じノイズを減じる。フィルタリングの結果、たとえ信号対雑音比が1未満であっても、無相関のノイズが完全に除去され、無線ノイズ及びEMIが存在する場合でも通信が確実に行われることがある。スペクトル拡散は全無線帯域を利用するため、このような方法は、現在ではODFMより優先されず、最新のWiFi実装には採用されない。
無線帯域及び変調方式に関するPHYレイヤの詳細を規定する以外に、802.11規格では、WiFi無線と通信する際に必要なシリアルデータパケットフォーマットも定義されている。イーサネット(登録商標)パケットと比較して、WiFiパケットヘッダーは、理由の1つとして、1つまたは2つのネットワークアドレスと同様に、無線受信及び送信ステーションアドレスを指定する必要があるため、より複雑である。WiFiパケットのデータ構造は図11に示されており、時間の増加方向86の左から右に示されるシリアルデータとして図示されている。関連付けられた表242は、WiFiパケット内の各ブロックまたはサブパケットの機能を説明する。イーサネット(登録商標)パケットと同様に、データフレームは、レイヤ1ヘッダーを有するレイヤ1データフレームにカプセル化されたレイヤ2データリンク情報を含む。
レイヤ1ヘッダーは、10B長のプリアンブル230、2B長のSFD231、及び2B長のPLCP232を含む。PLCPはレイヤ1及びレイヤ2の両方のデータを含んでいると見なされるが、本明細書ではレイヤ1データと見なす。全体として、レイヤ1ヘッダーは14Bの長さであると見なすことができ、残りのWiFiパケットは、空のペイロードの場合の34Bから最大ペイロードの場合の2,346Bまで、長さの変化するレイヤ2データを含む。2,312Bの最大ペイロード長では、WiFiパケットはイーサネット(登録商標)パケットより長く、標準形式ではわずか1,500Bの長さのペイロードに制限されている。図示のように、レイヤ2のWiFiパケットの構成要素は、フレーム制御233と、持続時間234と、各ブロックにそれぞれ示される無線基地局MACアドレスであるアドレス1 235及びアドレス2 236と、ブロックとして示される条件付きMACアドレスであるアドレス3 237及びオプションのブロックとして示される条件付きMACアドレスであるアドレス4 239と、シーケンス238と、フレームチェック240とを含む。
操作において、レイヤ1データフレームヘッダーサブフィールドとしてのプリアンブル230の目的は、デバイスがデータを送信しようとしていることを最初に識別するハードウェアを支援することである。別のレイヤ1アーチファクトであるスタートフレームヘッダーSFD231は、着信パケットデータをタイミングクロックに同期させるために使用され、データを確実に読み取ることができるようにする。これら2つのブロックの後に、物理レイヤ収束手続き、すなわちPLCP232が、パケットの長さ、データレート、及びヘッダーのデータチェックに関する情報を提供する。
フレーム制御233において、第1の純粋なデータリンクレイヤ2データが、WiFiパケットのバージョンタイプを定義する場合、すなわち、管理関連情報、制御コマンド、データ、または残りの特徴を含む場合、無線がアクセスポイントまたはワイヤレス配信システムとして動作するか否かを判断するために使用される「To DS/From DS」制御ビットを含む。「duration & ID」としても知られる持続時間234は、NAV(Network Allocation Vector Duration)持続時間、つまり、電力節約モードを除き、別のステーションが媒体と競合する前に、RF媒体がどれだけビジーであるかを定義し、アクティビティをチェックする際にビーコンを認識するために使用される「ステーションID」を識別する情報を含む。持続時間情報に続いて、アドレス1 235、及びアドレス2 236のブロックは、本質的に無線トランシーバのMACアドレスである基地局アドレスを定義する。
具体的には、アドレス1 235のブロックはBBS受信局アドレスを含み、アドレス2 236のブロックはBSS送信局アドレスを含む。無線のアドレスがアドレス1及びアドレス2にロードされる2つの無線の通信では、フレーム制御233で定義される「To DS/From DS」設定に依存する。アドレス3 237のブロックは、無線を物理ネットワークにリンクさせるために使用される。例えば、イーサネット(登録商標)を使用して、放送されているデータがどこから来ているのか、または受信しているデータがどこに向かうのかを本質的に記述する。そのため、アドレス3に存在するアドレスは、WiFiパケットで定義された「To DS/From DS」設定にも依存する。イーサネット(登録商標)接続との相互運用性を保証するために、WiFiアドレスは6B長であり、イーサネット(登録商標)LANで使用されるMACアドレスと同じである。
データの方向を定義し、順序の乱れた、すなわち無線位相遅延の影響を受けたパケットを再順序付けできるようにするために、シーケンス238のブロックは、パケットフレームを定義するシーケンス及びフラグメントナンバーを含む。WiFiパケットが、WDSすなわちワイヤレス配信システムパケットとして識別されない限り、オプションであるアドレス4 239は、WiFiパケットから除外される。アドレス及びシーケンス制御ブロックの後、ペイロード241は、OSIレイヤ3〜レイヤ7データを含むWiFiパケットによって配信される実際のコンテンツを含む。その後、32ビット(32b)巡回冗長検査アルゴリズムを利用するフレームチェック240が使用され、レイヤ2イーサネット(登録商標)パケットの生データにおける意図しない変化を検出する。
説明したように、WiFi無線機が「アクセスポイント」として使用される場合、例えば、インターネットへのモバイルデバイスの無線接続を提供する場合、送信無線機、受信無線機、及びイーサネット(登録商標)接続の3つのアドレスのみが必要とされる。アドレスの順序は、「To DS/From DS」設定により定義されたデータフローの方向に依存する。DSという用語は、無線が接続されている配電システム、有線ネットワーク、またはイーサネット(登録商標)接続の略語である。WiFiアクセスポイントの場合のWiFiパケット内のアドレスの順序が図12Aに示されており、上図は、この例ではノートブック260であるモバイル無線機がWiFiアクセスポイトにデータをワイヤレスで送信し、イーサネット(登録商標)265を介して配信システムにデータを送信する場合を表し、下図は、配信システムからのデータがイーサネット(登録商標)を介してWiFiアクセスポイント261にルーティングされ、その後ノートブック260にワイヤレスで送信される場合を表す。
再び上図を参照すると、動作データはアンテナ262Aから送信され、WiFiアクセスポイント261の基地局システム、すなわちBSSのアンテナ262Bによって受信されたRFシグナル264を使用してノートブック260内のWiFi無線機から送信され、イーサネット(登録商標)265を介してパケットを配信システムに順番に送信する。この場合、シーケンス238は、「To DS」ビットがバイナリ1に設定され、「From DS」ビットがバイナリ0にリセットされる、表263に示された「To DS/From DS」ビットを含む。このような場合、無線宛先MACアドレスであるアドレス1 235はWiFi BSS受信機のアドレスを含み、無線送信元MACアドレスであるアドレス2 236はノートブックの送信無線アドレスを含み、アドレス3 237はイーサネット(登録商標)265を使用する任意の配信システムに接続されたデバイスの宛先MACアドレスを含む。
データフローが反対方向である下図を参照すると、無線の送信元アドレス及び宛先MACアドレスが入れ替えられ、インターネットアドレスがMAC宛先アドレスからMAC送信元アドレスに変化する。この場合、シーケンス238は、「To DS」ビットがバイナリ0にリセットされ、「From DS」ビットがバイナリ1に設定される表263に示された「To DS/From DS」ビットを含み、アドレス1 235はノートブックの受信無線アドレスのアドレスを含み、アドレス2 236はWiFi BSS送信機アドレスを含み、アドレス3 237はイーサネット(登録商標)265を使用する任意の接続デバイスの送信元MACアドレスを含む。操作中、データパケットは、ネットワーク接続されたデバイスからイーサネット(登録商標)265を介して、WiFiアクセスポイント261の基地局システムBSSに、配信システムを越えて送信され、アンテナ262Bから送信されたRFシグナル264は順番に放送され、ノートブック260のWiFi無線機内のアンテナ262Aによって受信される。
WiFi仕様は、図12Bに示すように、ワイヤレス配信システム、すなわちWDSを実装する目的でのWiFi無線の使用も提供する。原則として、WDSは有線ネットワーク、すなわちネットワークケーブルのRFバージョンをワイヤレスで実現したものである。しかし、WDSを実装するためには、追加アドレスであるアドレス4 239がパケットルーティングに必要とされる。簡略化すると、WiFiワイヤレス配信システム上のパケットルーティングは、4つのMACアドレスを順番に使用する必要があり、(1)ネットワークMAC送信元アドレスからの受信パケットは、イーサネット(登録商標)を介して(2)送信無線送信元MACアドレスに接続され、(3)受信無線宛先MACアドレスに順番にワイヤレスで接続し、最後にイーサネット(登録商標)を介して(4)ネットワークMAC宛先アドレスに送信する。WDSモードでWiFi無線機を操作するために、WiFiパケットのシーケンス238ブロックは、表263に示すデータを含み、「To DS」及び「From DS」の両方がバイナリ1状態に設定される。
パケットのデータ方向は、4つのMACアドレスの使用によって容易に決定され、MACアドレスの2つは分配システムネットワーク用であり、2つはWiFi無線機用である。図12Bの一番上の図を参照すると、イーサネット(登録商標)269上Aで受信された入力パケットは、WiFi WDS A基地局268Aによって受信され、送信無線機のアンテナ262AからRFシグナル264として放送され、無線WiFi WDS B基地局268Bのアンテナ262Bによって受信され、イーサネット(登録商標)269Bを介して宛先MACアドレスに転送される。ルーティングを制御するために、アドレス1 235のブロックは無線リンクの宛先MACアドレス、すなわちWiFi WDS Bアドレスを表し、アドレス2 236のブロックは無線リンクの送信元アドレス、すなわちWiFi WDS Aアドレスを含み、アドレス3 237のブロックはイーサネット(登録商標)269B上に転送されたイーサネット(登録商標)宛先MACアドレスを表し、アドレス4 239のブロックはイーサネット(登録商標)269A上で受信されたイーサネット(登録商標)送信元アドレスを含む。
図12Bの下図に示されている、WiFi WDS B基地局からWiFi WDS A基地局に向かって反対方向に流れるデータについては、送信元アドレス及び宛先アドレスは単純に交換される。アドレス1 235のブロックは無線リンクの宛先MACアドレス、すなわちWiFi WDS Aアドレスを表し、アドレス2 236のブロックは無線リンクの送信元アドレス、すなわちWiFi WDS Bアドレスを含み、アドレス3 237のブロックはイーサネット(登録商標)269A上に転送されたイーサネット(登録商標)宛先アドレスを表し、アドレス4 239のブロックはイーサネット(登録商標)269B上で受信されたイーサネット(登録商標)送信元アドレスを含む。
このようにして、WiFiパケットは、アドレス3を宛先MACアドレスとして含み、アドレス4を送信元MACアドレスとして含むイーサネット(登録商標)データフレームを、無線リンクがルーティングに存在しないかのように反映する。このように、WiFi実装無線配信システムは、パケット交換ネットワークを介してパケットをルーティングする際に、有線ネットワークのように操作する。さらに、「To DS/From DS」制御ビットの機能は、同じWiFi無線機を、双方向データリンクすなわちWDSとして、または双方向にネットワークアクセスポイントとして操作することを可能にする。
[4G電話/ロングタームエボリューション(LTE)]
有線電話が回路交換電話ネットワークからパケット交換通信に移行したように、POTS及びPSTNの代わりにISDNなどの独自のハードウェアベースのデジタルネットワークを最初に使用し、その後、インターネットプロトコルベースのネットワークを私的管理のコンピュータクラウド上で実行することで、ワイヤレス通信も進化している。図13に示すように、デジタルセルラー通信の変化は、初めは「Groupe Special Mobile」の頭字語であるGSM(登録商標)と呼ばれる回線交換ネットワークを介して配信される音声及び単純なメッセージのサービス、すなわちSMSサービス290から始まり、結果的に「モバイル通信のためのグローバルシステム」を意味するよう変更された。第2世代または2Gのワイヤレス電話と見なされ、全二重音声通信用に最適化されたGSM(登録商標)は、時分割多元接続(TDMA)プロトコルを使用して、初期のアナログセルラーまたは1Gネットワークを置き換えた。ブロック291に示すように、電話の次の改良は、より高い帯域幅を提供し、マルチメデイアメッセージング(MMS)などの特徴を追加することによって、GSM(登録商標)の能力を増強するようになった。回線交換ネットワーク技術に依然として依拠し、強化されたネットワークは、2.5Gという通称で反映されるように、ハーフステップの改善と見なされた。
3G携帯電話への第一歩は、ワイヤレスインフラストラクチャと電話ソフトウェアの両者をパケット交換通信ネットワークに移行することにより、「汎用パケット無線サービス」、すなわちGPRSの導入とともに生じ、ブロック292に示すように、プッシュツートークすなわちPTTを有する音声、SMS、MMSサービス、常時インターネットサービス、ワイヤレスアプリケーションプロトコルすなわちWAPなどを強化する。符号分割多元接続、すなわちCDMAに基づいて、GPRSは通話品質を高め、ネットワーク容量を増やし、システム性能を向上させた。例えば、GPRSによるSMSメッセージは、GSM(登録商標)のレートの少なくとも3倍のメッセージを配信した。384kbpsでは、CDMAの性能は従来のGSM(登録商標)ソリューションより40倍高速であった。
CDMAへの移行は、世界中のモバイル通信インフラストラクチャを新しいトランシーバ及びアンテナに置き換えて再インストールすることを含む、重要なイベントであった。WCDMA(登録商標)が一度展開されると、UMTS、すなわち「ユニバーサル移動通信システム」の導入により、3G電話の第2の重要なステップを可能にした。第3世代パートナーシッププロジェクト、すなわち3GPPによって開発された規格は、よりグローバルかつ包括的なアプローチを含み、真にユニバーサルなネットワーク及び標準化されたプロトコルを定義し、展開する。機能を強化し、ネットワーク帯域幅を拡張するために、UMTSは新しいプロトコル、広帯域符号分割多元接続すなわちWCDMA(登録商標)無線アクセス技術を採用して、3Gハードウェアへの投資を取り替える必要なく、モバイルネットワーク事業者に高いスペクトル効率及び帯域幅を提供する。初期のネットワークは、3.6Mbpsのピークダウンリンクレートを提供した。
同時に、白色LED及び効率的な小型LED駆動回路の同時開発によって、モバイルデバイスでのカラーディスプレイの使用が初めて可能になり、スマートフォンが生み出された。スマートフォンは、ネットワーク帯域幅を商業的に推進する重要な触媒であったが、高品質のカラーディスプレイは、高速インターネットアクセス、映画のダウンロード、高解像度写真、マルチメディア放送、及び限られたリアルタイムのビデオストリーミングの急速な需要を生み出した。需要を満たすために、3.5Gとしても知られる高速パケットアクセス(HSPA)が、WCDMA(登録商標)変調技術を使用しながら、アップロード及びダウンリンク速度の両方を向上させるアップグレードされたネットワーク上に配備された。ロールアウトは、3GPPリリース5として最初にリリースされた高速ダウンロードパケットアクセス、すなわちHSDPA、及び高速アップロードパケット、すなわちHSUPAを使用して段階的に行われ、3GPPリリース6で間もなく利用可能になった。ピークデータレートは、ダウンリンクでは約14Mbps、アップリンクでは約5.8Mbpsに改善されたが、インフラストラクチャに応じ、地理的条件で劇的に変化する。
HSUPAが広く導入される前であっても、携帯事業者は、「3GPPロングタームエボリューション」すなわちLTEとしても知られる3GPPリリース8で最初に定義され、標準化されたHSPA+に移行した。この技術は、「直交周波数分割多元接続」すなわちOFDMAに基づくパケット交換専用ネットワークを表し、前述のようにWiFiで採用されているのと同じOFDM方式に基づいている。OFDMは単一ユーザのポイントツーポイント通信用に開発されたが、OFDMAはサブキャリアのサブセットを個々のユーザに動的に割り当てる能力を有するため、マルチユーザバージョンと見なすことができる。
初期のHSPA+ベースのLTE導入は、21Mbpsで開始された。2008年に、国際電気通信連合無線通信部門、すなわちITUR通信部門は、IMTA(International Mobile Telecommunications Advanced)仕様と呼ばれる4G規格のための一連の要件を規定し、電車や車などの高速移動通信では100Mbps、競歩者や歩行者のユーザなどの低速移動通信では1Gbpsの、4Gサービスのための最小ピーク速度要件を設定した。
初期のHSPA+ベースのLTEシステムは、IMTAの速度仕様を満たしていないため、このような初期の4Gの先例は、OFSMA変調及び完全なパケット交換ネットワークを利用しているにもかかわらず、4G電話として正式には認識されなかった。結果的に、HSPA+技術を3G後期または初期の4Gパケット交換電話として考慮するか否かについて、一致した意見は得られていない。3.9Gという名称さえ提案されている。名前付けの問題に関わらず、ブロック239に示される4G電話は、現在では、OFDMA変調及びその様々な実装に基づくパケット交換通信を指す。データプロトコルの技術的、及び歴史的な変種、及び不均質なワイヤレスネットワークの使用にもかかわらず、一般的な言葉では、4G、LTE、及び4G/LTEという用語は、曖昧で互換的に使用されている。
4G/LTE電話の高いデータ速度、及び相対的に堅牢な性能は、主に、変調方式及びデータフレーム構造によるものである。図14Aに示すように、4G変調は、一般的に700MHz〜2.6GHzの範囲の中心キャリア周波数付近で20MHzまでの帯域幅を含み、サブキャリア周波数帯域に細分され、ダウンリンク通信は、OFDMAによって必要とされるサブキャリアチャネルを実装するために必要な多くの狭帯域296Aから狭帯域296Nに細分される。モバイルデバイスで電力を節約するために、アップリンク通信はより少ない広帯域295Aから広帯域295Nに細分され、周波数分割多元接続技術、すなわちSC−FDMAの単一チャネルバージョンを採用している。様々な帯域である広帯域295A〜295Nは、複数のユーザを同時にサポートするために使用されるが、OFDMAとは異なり、1つの高速データストリームを多数に分割するために使用されない。その結果、SC−FDMAアップロードデータレートは、OFDMAベースのダウンロードデータレートより必然的に遅い。
グローバルローミング用に設計されたマルチバンドまたはワールドフォンが使用される場合を除き、次の表に示す認可されたキャリア周波数は地域によって異なり、ある国の電話が別の国では操作できないことがある。
上記の認可された周波数は、各地域の無線周波数ライセンスを管理する通信手数料に基づいて変更される場合がある。
図14Bに示すように、4GPHYレイヤは、長さ10ミリ秒のRFデータのバーストを含み、4Gパケットまたはフレーム300を形成する。各フレーム300は、7つのOFDMシンボル302を含む持続時間0.5ミリ秒の20のスロットに細分される。各シンボル304は、サイクリックプレフィックスによって他から分離され、0から49まで番号が付けられた50のリソースブロックを含み、各ブロック306は、7のシンボル及び12のサブキャリアを含む84のリソース要素を含む。このデータ構造は、高ビットレートを実現し、冗長性を提供し、エラーを緩和するために使用されるフレキシブルなエンコーディングをサポートする。
図15は、4Gデータダウンロードに使用されるOFDMA変調のための4Gデータフレーム299内のデータリンクレイヤ2コンテンツのカプセル化を示す。同様の4GデータパケットがSC−FDMAアップロードのために存在するが、示されたパケットと類似しているため、図15には含まれない。図示されているように、各PHYレイヤ1データパケット、すなわち「データフレーム」299は、データリンクレイヤ2をカプセル化する20の0.5ミリ秒のスロット301を有する10ミリ秒のフレーム300を含む。4Gパケットのレイヤ2データリンクコンテンツは、3層の入れ子になっており、以下を含む。
・メディアアクセス制御のためのMACサブレイヤ
・「無線リンク制御」のためのRLCサブレイヤ
・「パケットデータ収束プロトコル」のためのPDCPサブレイヤ
レイヤ2 MACサブレイヤは、MACヘッダー303、MAC SDUs304の単一フレーム、及びタイムパディング305を含み、SDUという用語はサービスデータユニットの頭字語である。MACヘッダー303は、無線接続に必要な送信元MACアドレス及び宛先MACアドレスを含む。MAC SDUs304の各単一フレームは、無線動作を制御するために使用される「無線リンク制御プロトコルデータユニット」の頭字語であるレイヤ2「RLC PDUs」306を含む。具体的には、RLC PDUs306は、無線動作及びプロトコルに関する情報を指定するRLCヘッダー307を含み、「無線リンク制御サービスデータユニット」情報、すなわち単一フレームRLC SUDs308を、入れ子状のペイロードとしてカプセル化する。時間309におけるRLC SDUs308が完了すると、続いてRLCヘッダー311を有する新しい無線リンク制御データ、及び別のRLC SDUsのセットが、短い遅延時間310の後に開始する。その結果、マルチフレームRLC SDUs319の連続的データストリームが得られ、K 313、K+1 314の各ブロックのデータは、シングルフレームRLC SDUs308によって排他的に搬送され、K+2 315のブロックは、現在のフレームからのブロック308、及び次のフレームからの312の両方から構成される。
レイヤ2パケットデータ交換プロトコルサブレイヤでは、各SDUブロックは、PDCPヘッダーとPDCP SDUとの組み合わせを含む。例えば、K 313のブロックは、PDCPヘッダー312A及びPDCP SDU323を含み、K+1 314のブロックは、PDCPヘッダー312B及びPDCP SDU324を含み、K+2 315のブロックは、PDCPヘッダー312C及びPDCP SDU325を含み、集合的にPDCP PDUs320を形成する。コンテンツPDCP SDU323、PDCP SDU324、及びPDCP SDU325は、4Gパケットのペイロード330、すなわち、ネットワークレイヤ、トランスポートレイヤ、及びアプリケーションレイヤのデータを含むデータブロック333、データブロック334、及びデータブロック335を含む。現在、4G/LTE通信をアセンブル、送信、受信、及びデコードするために必要な前述のプロセスは全て、単一の専用通信IC、すなわちデジタルシグナルプロセッサ(DSP)で実行される。
前述の4Gレイヤ2プロトコルを使用し、4Gは、以下のように、従来のネットワーク及び通信規格より多くの性能向上を提供する。
・マルチプルインプットマルチプルアウトプット、すなわちMIMO技術を利用してデータレートを最大化し、高いQoS接続性を保証する能力を有する。
・ソフトウェアベースの無線を使用して、複数の無線ネットワークに同時に接続し、例えば、特定のアプリケーションのコスト、QoS、及び能力などの最も適切なサービスパラメータを動的に識別する。
・技術内ハンドオーバ、及び技術間ハンドオーバをサポートする基地局を利用して、サービス品質が顕著に低下することなく、ゼロまたは最小限の中断でのサービス継続性を保証する。
・異なるモバイルモバイルネットワーク、及びワイヤレスネットワーク上のサービス及びアプリケーションに同時にアクセスする能力を有する。
4G/LTE通信のアプリケーションには、HD及びUHDビデオストリーミング、クラウドコンピューティング、大容量クラウドベースのストレージ及びオンラインバックアップ、高速なウェブアクセス、大容量の電子メールファイルを送受信する能力などが含まれる。
[DOCSIS3/ケーブル&ファイバネットワーク]
最近まで、パケット交換技術を用いたケーブルテレビ、及び光ファイバのビデオ配信システムは、デジタル放送及びパケット交換技術を採用する上で、通信業界の他のシステムに遅れを取っていた。しかし、第3世代の「ケーブルによるデータサービスインターフェース仕様」、すなわちDOCSIS3の急激な普及に伴い、ケーブルネットワーク能力が劇的に改善され、高帯域通信の複数のチャネルを多数のクライアントに同時にサービスする、特有の機能が提供された。DOCSIS3は、高速デジタル双方向通信及びインターネットアクセス、VoIPを同時に提供し、さらに、何百もの放送、プレミアムTVチャンネル、ペイ・パー・ビュー用のユニキャストTV、及びIPTVダウンロードを含む、高解像度ビデオストリーミングの複数のチャネルをサポートする。
複数の独立したユーザをサポートするDOCSIS3ベースのケーブル&ファイバネットワークの例を図16に示す。ケーブル配線では、コンテンツの放送及びクライアント通信の管理は、「ケーブルモデム終端システム」、すなわちCMTS350として知られる中央ケーブルヘッドエンドデバイスから送られる。CMTS350にコンテンツを供給する様々なデバイスは、ネットワークTVを配信するビデオヘッドエンド351と、IPTV及び映画ダウンロードだけでなくペイ・パー・ビューユニキャストを配信するIPTVシステム352と、電話用のVoIPシステム353と、ウェブ及びクラウド接続用のインターネット20とを含む。高速デジタル(HSD)、ボイスオーバーインターネットプロトコル(VoIP)、放送及びIPTVを含む集約された情報は、単一の同軸ケーブルまたは光ファイバ上で複数のチャネル354としてクライアントに送られる。
CMTS350から分配されたデータパケットは様々な加入者に接続され、セットトップボックスCM/STB357にマージされたケーブルモデムを含むデバイスが高解像度TV39に接続されるか、ケーブルモデムCM358が、電話機37への音声通信、及び、デスクトップ36及び家庭用のWiFiアクセスポイント26への高速デジタル接続性を供給するために使用される。バス及びハブネットワークと同様の方法で、チャネル354上に運ばれた、集約されたコンテンツは、全て同じケーブル上またはファイバ上に運ばれ、CMTSも接続された全てのデバイスによって受信される。
DOCSIS3を使用すると、ケーブルモデム終端システムCMTS350は交換ネットワークとなり、全てのコンテンツが必ずしも全ての加入者に配信されるわけではない。「バンドリング」として知られるこの特徴により、CMTS350は、様々な加入者の接続されたデバイスによってどのチャネルが受信できるかを制御できる。図示のように、バンドルチャネル355は、TV39及びIPTV用のコンテンツを運ぶが、バンドルチャネル356は、高デジタルコンテンツ及び音声を運ぶ。マージされたケーブルモデム、及びセットトップボックスCM/STB359は、TV39がスマートTVである場合に有用なバンドルチャネル355及びバンドルチャネル356の両者にアクセス可能であるが、デスクトップ36、電話機37、及びホームWiFi26に使用されるケーブルモデルCM360は、ビデオ接続性を必要としないため、HSD/VoIPのバンドルチャネル356にのみ接続される。
前述のイーサネット(登録商標)、WiFi、及び4G/LTEの例と同様に、DOCSIS3をケーブル及びファイバ上で使用するコンテンツ配信は、全二重動作が可能な双方向性であり、パケット交換技術を使用して全て実装されている。PHYレイヤに関する情報を伝送するために電気シグナル、またはマイクロ波シグナルの代わりに光を用いることにより、光ファイバは、特に、他の形態の通信と比較して優れた帯域幅を提供する。ケーブル配線システムでの、DOCSIS3のOSI通信スタックが図17に示され、ケーブルモデム終端デバイスCMTS101、及びケーブルモデムCM103またはセットトップボックスSTB102などのケーブル接続されたデバイスの例の両者の、レイヤ1PHY接続性、レイヤ2データリンク、及び上層のレイヤ3ネットワークが示されている。具体的には、ケーブルモデム終端デバイスCMTS101は、クラウド22のサーバ及びインターネット20、あるいは先の図に示されたビデオヘッドエンド351、IPTVシステム352、またはVoIPシステム353に接続されたレイヤ1のネットワークインターフェース361を含む。ネットワークインターフェース361及びデータリンクレイヤ366の組み合わせは、CMTS101のデバイスインターフェース通信スタックを含む。
データリンクレイヤ2では、データは、転送機能370を介して、ネットワークインターフェース通信スタックからケーブルネットワークインターフェース通信スタックに渡され、具体的にはリンクレベル制御LLCに送信される。リンクレベル制御LLC369は、IEEE標準規格802.2にしたがって定義されたハードウェアに依存しないプロトコルを含む。パケットデータはリンクセキュリティ368によって修正され、制限されたパケットセキュリティを提供して、主に、ペイ・パー・ビューユニキャスト放送などのコンテンツの不正な閲覧を防止する。データパケットは、DOCSIS3にしたがってフォーマットされ、図10のWiFi無線ブリッジによって示される例と同様の方法でケーブルMAC367アドレスを含む。レイヤ1PHYケーブルインターフェース362は、次に、同軸ケーブル104または光ファイバ91のいずれかを含む配信ネットワーク上のデータフレームをケーブルモデムCM103またはセットトップボックスSTB102内の対応するレイヤ1PHYのケーブルインターフェース363に送信する。ケーブルインターフェース363は、ケーブルモデムCM103またはセットトップボックスSTB102のケーブルネットワークインターフェース通信スタックのPHYレイヤを表す。
データパケットを受信すると、ケーブルMACインターフェース371は、そのペイロードを解読のためにリンクセキュリティ372に渡し、最終的には解釈のためにハードウェア独立レイヤリンク制御LLC373に渡す。CMまたはSTBケーブルネットワーク通信スタックへの入力データは、その後、トランスペアレントブリッジング374を介し、IEEE802.2の仕様に従って、CMまたはSTBデバイスインターフェース通信スタック、具体的にはデバイス独立リンクレイヤ制御LLC375に渡される。パケットは、次に、HSD&IPTV MACブロック376またはWiFi802.11MACブロック377のいずれかに渡され、パケットのMACアドレスを更新する。WiFi通信の場合、データパケットはその後802.11MACブロック377からWiFi PHYレイヤ1無線インターフェースに渡され、WiFiアクセスポイント26上で送信される。有線接続の場合、データパケットはその後HSD&IPTV MACブロック376からイーサネット(登録商標)またはHDMI(登録商標)インターフェースブロック364に渡され、TV39またはデスクトップ36に接続される。
WiFiで使用されるOFDM、または4G/LTE通信で使用されるOFDMAと同様に、DOCSIS3通信は、電磁放射のマイクロ波またはヒカリスペクトルのいずれかにおいて、複数の直交する、すなわち重複しない周波数を使用し、情報を符号化して送信する。DOCSIS3は、各チャネルに専用のコンテンツを割り当てるのではなく、利用可能な全ての周波数チャネルで、ビデオ、高速データ、及び音声を含むコンテンツを動的に割り当て、及び再割り当てすることができる「トレリスエンコーディング」をサポートしている。1〜6のチャネルを利用する図18のいくつかのエンコーディング例に示すように、予め定められたタイプのコンテンツを表すデータパケットは、単一のチャネルに割り当てられるか、または複数のチャネルにわたって割り当てられ得る。データは、チャネル385及びタイムスロット386の両者によって配置される。m=1(QPSK)とラベル付けされた例では、タイムスロットt0〜t8が単一チャネル上にエンコードされ、単一の送信元♯1からコンテンツを配信する。m=2(8−QAM)とラベル付けされた例では、8−QAMを用いてエンコードされた2つのチャネルが直交振幅変調すなわちQAMである変調方式は、先に説明したWiFiと同様に使用されるため、本明細書では繰り返さない。送信元♯1はタイムスロットt0〜t4のデータを配信し、次に送信元♯2からタイムスロットt4〜t8のデータが配信される。m=3(16−QAM)とラベル付けされた例では、16−QAMを用いてエンコードされた3つのチャネルが使用され、3つの送信元からコンテンツを配信する。タイムスロットt0〜t8のチャネルm=1上の送信元♯2配信コンテンツと同時に、送信元♯1はチャネルm=2上のタイムスロットt0〜t4のコンテンツ391aを配信するが、送信元♯2はタイムスロットt4〜t8のコンテンツ391bを配信する。
m=5(64M)とラベル付けされた例では、64QAMを用いてエンコードされた6つのチャネルが使用され、5つの送信元からコンテンツを配信する。例えば、m=2とラベル付けされたm=5の2つのサブチャネルでは、送信元♯3からのコンテンツがタイムスロットt0〜t4から配信され、かつ送信元♯3からのコンテンツがタイムスロットt4〜t8から配信される。一方、m=4とラベル付けされたサブチャネルでは、送信元♯1からのコンテンツは、タイムスロットt0〜t2の4つのチャネルで配信され、次にタイムスロットt2〜t3の3つのチャネルのみで配信される。送信元♯2からのコンテンツは、4つのチャネルのうちの1つのみでタイムスロットt2から始まり、その後タイムスロットt3でm=4に増加する。m=6(128M)とラベル付けされた例では、送信元♯3からのコンテンツ389はタイムスロットt0〜t4の6のチャネルのうち2つのチャネル上に配信されるが、他の4つのチャネルは、タイムスロットt0〜t2の送信元♯1からのコンテンツ388aを配信するため、及びタイムスロットt2〜t4の送信元♯2からのコンテンツ388bを配信するために使用される。示されている例では、トレリスエンコーディングにより、帯域幅管理及びコンテンツ割り当てにおいてケーブルオペレータは最大限フレキシブルになる。
図19に示された、DOCSIS3で使用される対応するデータパケットでは、PHYレイヤ1は、プリアンブル391、可変長ペイロード392またはコードワード、及びガードタイム393を含むデータリンクレイヤ2MACデータを有する、可変長及び持続時間の物理メディアデバイスフレーム390を含む。プリアンブル391は、通信の方向に応じて、アップストリームプリアンブルまたはダウンストリームプリアンブルのいずれかを含む。アップストリームプリアンブルの場合、プリアンブル391は、物理メディアデバイスPMDヘッダー398、MACヘッダー399、及びデータPDU400を含む。ダウンストリームプリアンブルの場合、プリアンブル391は、MPEGヘッダー401、MACヘッダー399、及びデータPDU400を含む。可変長ペイロード392のコンテンツは、ショートコードワード394またはロングコードワード397を含み得る。
ショートコードワード394は、データAを有するペイロード395A、及びFECAを有するエラーチェック396Aを含む。ロングコードワード397の場合、ペイロードは、データA〜Cのそれぞれを搬送する複数のペイロード395A〜395Cのブロックに分割され、各ペイロードは、対応するデータFEC A〜FEC Cを有するエラーチェック396A〜396Cのブロックを含む。エラーチェックの後、DOCSIS3から配信されたデータは、ロングコードワードの場合にはペイロード395A〜395Cを含み、ショートコードワードの場合にはペイロード395Aのデータブロックのみを含む。
このように、DOCSIS3はパケット交換データプロトコルを用いてケーブルネットワーク上でデータをフレキシブルに配信する。
OSIレイヤ3 ネットワーク(インターネット)レイヤ
前述したように、データペイロードは、様々なPHYレイヤ1ハードウェア構成、及びデータリンクレイヤ2インターフェースプロトコルで配信され得る。レイヤ1、及びレイヤ2はデバイス固有のレイヤであるが、ネットワークレイヤであるレイヤ3は、シグナル及びデータを伝送するために使用されるPHYネットワークに、ユビキタスかつ不可欠な、デバイスに依存しない通信の形式を提供する。図20には、レイヤ3通信が示されており、3つのネットワーク接続デバイス420A〜420Cが、全てレイヤ3ネットワーク421のインターネット接続を共有するコンピューティング及びデータ記憶機能423A、データ記憶機能423B、またはデータ記憶機能423Cを含む。したがって、各デバイスの対応する通信スタック422A〜422Cは、独占的なシステムを除いて一般的にインターネットを表すレイヤ3ネットワーク421を使用し、デバイスを相互に接続させる。
様々なハードウェアプラットフォーム、ネットワーク、及びシステムにわたって操作するパケット交換ネットワークにおける相互運用性を保証するため、OSIモデルは、図21に示すように7つのレイヤで編成された明確なプロトコルを規定する。前述したように、それぞれの木製の人形の中に別の小さな人形が入っているバブシュカ、すなわちロシアの入れ子人形のように、パケット交換ネットワークのためのデータパケット、すなわち「データグラム」は同様の方式で配置され、レイヤ1のPHYレイヤパケット、すなわち「フレーム」は、ペイロード内のレイヤ2リンクレイヤデータを含む他の全てのレイヤを含み、同様に、レイヤ4ネットワークパケットなどを含む、レイヤ3〜7を含むペイロードをカプセル化する。
より詳細には、レイヤ1フレーム430は、電気シグナル、無線シグナル、または光シグナルを含む物理レイヤ、すなわちPHYレイヤの全てのデータを含む。PHYレイヤ1フレーム430に埋め込まれているのは、MACヘッダー431、MACペイロード432、及びMACフッター433を含むレイヤ2上のメディアアクセス制御またはデータリンクレイヤ情報である。MACペイロード432は、インターネットプロトコルまたはIPヘッダー434、及びIPペイロード435を含むレイヤ3条のネットワーク(インターネット)レイヤまたはIPパケットをカプセル化する。IPペイロード435は、トランスポートヘッダー436及びトランスポートペイロード437を含むトランスポートレイヤデータグラム、すなわちレイヤ4データをカプセル化する。次に、トランスポートペイロード437は、図4に示したOSIモデルと一致するアプリケーションレイヤ5〜7の全てのアプリケーションデータ438をカプセル化する。
操作中、図21に示すIPデータパケットを受信すると、ネットワーク接続デバイス及びそのファームウェアは、レイヤ1及びレイヤ2のデータを解釈し、MACペイロード432内に含まれる情報を無視する。次に、ネットワークソフトウェアは、IPレイヤ3データ内に含まれるIPアドレス、ルーティング、及び制御を解釈するが、IPペイロード435の内容は無視する。次に、トランスポートレイヤ4ソフトウェアは、トランスポートヘッダー436及びトランスポートペイロード437を含むトランスポートレイヤ「データグラム」としてIPペイロード435内に含まれる情報を解釈して、通信パーティ間で任意のハンドシェーキングを提供し、IPパケットの確実な配信を保証する。トランスポートペイロード437は、セッションレイヤ5、プレゼンテーションレイヤ6、及びアプリケーションレイヤ7のデータを含むパケットを有する、残りの上位レイヤアプリケーションのためのアプリケーションデータ438を含む情報をカプセル化する。要約すると、レイヤ1及びレイヤ2は、ネットワーク接続されたデバイスのための物理的接続及びルールを確立することに関係し、レイヤ3及びレイヤ4は、IPパケットの受信者を識別し、その配信を確認することに関係し、レイヤ5〜8には、データペイロードとして配信される実際の情報が含まれている。したがって、レイヤ1及びレイヤ2のハードウェア及びファームウェアは、送信されるデータのコンテンツまたはそのアプリケーションには関係がなく、レイヤ3及びレイヤ4ネットワークソフトウェアは、どの物理デバイスがパケットを送信しているか、またパケットの内容が何であるのかということには関係がなく、レイヤ5〜7は、パケットの送信方法または受信が確認されたかということには関係がない。このようにして、未知のコンテンツのデータグラムのルーティングは、パケットを送信する際に使用されるハードウェアに関係なく、またパケットのデータの意図された使用で、パケット交換ネットワークにおいて管理され得る。
相互運用性を維持するために、ネットワーク経由で送信されるパケットは、実際のネットワークがインターネットに直接接続されていない場合であっても、インターネットプロトコル、すなわちIPとして知られる標準化された形式を使用する。レイヤ3接続は、IPパケットを使用して共通のパケット交換ネットワークに接続されたデバイスの任意の集合を含むことができ、(1)インターネットに直接接続された、ホストされたサーバまたはプライベートサーバ、(2)インターネットに接続されていないプライベートクローズトネットワーク、すなわち「イントラネット」、または(3)「ネットワークアドレストランスレータ」、すなわちNATを介してインターネットに接続されたクローズドネットワーク、が本出願において後述される。前者の場合、インターネット上で使用される任意のIPアドレスが、排他的かつ有効なインターネットアドレスとしてクライアントに登録及びライセンス及び認可されなければならない。後者の2つの場合、IPアドレスは独立したネットワークにおいてのみ意味を有し、使用は意図され、インターネットアドレスとして登録されていない。インターネット上で登録されていないIPアドレスを用いようとすると、接続エラーが発生する。
図22に示すように、全てのIPパケットは、IPヘッダー434、及びIPペイロード435の2つの要素を含む。IPヘッダー434は、「インターネットプロトコルバージョン4」すなわちIPv4用、及び「インターネットプロトコルバージョン6」すなわちIPv6用の2つの確立したバージョンのうち、1つを一般に含む。IPv4が選択された場合、プリアンブル440は12B長のフィールドを含み、バージョンビット447、その後に4B長の送信元アドレス441、4B長の宛先アドレス442、及び8B長のオプションフィールド443を含む。IPv6が選択された場合、プリアンブル444は8B長のフィールドを含み、バージョンビット448、その後に16B長の送信元IPアドレス445、及び16B長の宛先IPアドレス446を含む。IPv4とは異なり、バージョン6はオプションフィールドを有していない。
重要なことに、IPv4のプリアンブル440、及びIPv6のプリアンブル444は長さ、コンテンツ、及びフォーマットの点で異なり、別々に考慮されなければならない。さらに、IPv6のIPアドレスフィールドは16B長であり、ほとんど無数のIPアドレス、すなわち2128個のIPアドレスを一意に指定することができる。これと比較して、IPv4の長さはわずか4Bであり、232のアドレスしか指定できない。IPv4の組み合わせの数が限られているため、プリアンブル440で指定されているように、クライアントからネットワークを識別及び分離するための他の情報が必要である。IPv6では、このような区別をする必要はない。最新のネットワーク及びIPルータは、現在、IPv4及びIPv6の両者をサポートすることができる。
[インターネットプロトコルIPv4]
IPv4のパケット450データグラムのデータパケット構成をより詳細に見ると、図23は、列によって左から右へ、及び行によって上から下へ順番に配置された時間の2次元グラフ表示を示しており、具体的には、各列に対して、時間はバイト、すなわちオクテット0〜8(あるいは、0〜31のビットによって表される)で示され、上から下への各行はオフセットオクテットでラベル付けされ、「0」とラベル付けされた最も上の列に続いて、「4」、「8」、「12」などのラベル付けされた列が続く。パケット450のデータグラムから順次データを正しく読み取るために、パケットは、左から右へ「0」とラベル付けされたオフセットオクテット列で開始し、プリアンブル451を含む第1のデータは、前述の「バージョン」フィールドに続いて「IHL、DSCP、ECN」及び「全長」フィールドを含む。その直後に、「識別、フラグ、フラグオフセット」とラベル付けされたフィールドを含む、オフセットオクテット列「4」とラベル付けされた次の列オフセットからのデータが読み取られる。最後に、パケット450のプリアンブル内の「8」とラベル付けされた最後の列は、「生存時間、プロトコル、及びチェックサム」フィールドを含む。プリアンブルの後に、データグラムは、4B送信元IPアドレスを含み、4B宛先IPアドレス、及びオフセットオクテット20としてラベル付けされた列には、「オプション」フィールドが存在する。パケット450データグラムの最後のフィールドは、可変長のIPペイロードパケット435を含む。この例では4B長が示されているが、ペイロード長は可変である。
表451には、IPv4データグラムフィールドに含まれる情報の概要が示される。前述のように、4ビット長(4b)のバージョンフィールドは、インターネットプロトコルをバージョン4のバイナリ0100に設定する。IHLフィールドは、IPヘッダー434内の32bワードの数を指定し、IPペイロード435を除くIPv4のパケット450の長さは、20Bから62Bまでの値の範囲である。DSCPは、区別されたサービスを定義する6bフィールドを含み、通信のサービス品質、すなわちQoSを制御する。ECNは、明示的輻輳通知、すなわちECNのための4bフィールドを表し、ネットワークの負荷状態を表す。全長は、IPヘッダー434及びIPペイロード435の両者を含むIPv4パケットデータグラムの合計の長さを表し、最小長20Bから最大長65,535Bまでの範囲である。最大パケット長は、特定のPHY媒体についてのレイヤ2データリンクプロトコルによって、より小さいデータグラムに制限されてもよい。2B長の「識別」フィールドは、単一のIPデータグラムのフラグメントのグループを一意的に識別して、順序の乱されたセグメントを有するパケットの再組み立てを可能にし、パケット断片化を管理するために使用される3b「フラグ」及び13b「フラグオフセット」と共に使用される。1B長のTTL、すなわち「生存時間」フィールドは、ネットワーク内のデータグラムの存続時間を制限して永続することを防ぎ、意図した宛先に送信できないパケットが期限切れになるようにする。TTLフィールドは、特定のパケットが配信不能として破棄される前に、通過できるルータの最大数を指定する。パケットがルータを通過するたびに、TTLカウントは1カウント減少する。
1B長の「プロトコル」フィールドであるフィールド460は、IPv4パケットのIPペイロード435に含まれるデータのタイプを記述する。場合によっては、このデータは、例えばネットワーク状態または伝播遅延のチェックのような具体的な指示を提供し、レイヤ3パケットとして実行される。一方で、他の場合には、ペイロードがレイヤ4トランスポートプロトコルを含むものとして識別され、ICMP、IGMP、TCP、UDP標準転送プロトコル、または他の即時のフォーマットを含むパケット配信及び確認を管理するために使用されてもよい。本質的に、プロトコルフィールドは、レイヤ3IPv4パケット内のレイヤ4データグラム記述であり、OSIレイヤ3をインターネットプロトコルのレイヤ4に、密接にリンクさせる。ヘッダーチェックサムフィールドは、ヘッダーデータが正しいことを保証するために使用され、パケットが間違った宛先に配信されないようにする。ヘッダーチェックサムフィールドは16ビットのチェックサムを含み、エラー及びデータドロップを検出するために使用される。全体として、前述のフィールドはIPv4パケットのプリアンブル440を形成する。
送信元IPアドレス及び宛先IPアドレスである次の2つのフィールドは、4B長であり、複数の形式で表すことができる。ドット10進数形式と呼ばれる従来の形式は、ドットで区切られた4つの10進数、例えば192.0.2.235、すなわち0xC0.0x00.0x02.0xEBなどの、ドットのついた16進形式を含み、各バイト、すなわちオクテットは0xで始まり、16進形式に個々に変換される。32ビットアドレスは、ドット付きの16進形式からオクテットを連結したものとして、10進数に相当する3221226219、または1つの16進数0xC00002EBに変換することもできる。IPv4アドレス形式の更なる詳細は、http://en.wikipedia.org/wiki/IPv4または他の同様の参考文献を参照することで得られる。4B長の「オプション」フィールドは、IHLフィールドが6〜15に設定されているときにのみアクティブになり、セキュリティリスクを生み出すためほとんど使用されない。
[インターネットプロトコルIPv6]
IPアドレスが枯渇したため、インターネットプロトコルバージョン6と呼ばれる新たなIPアドレスのセットが開始された。図24に示すように、IPv6データグラム453のデータパケット構成は、バージョン4の前身と同様に、IPヘッダー434及びIPペイロード435の2つの要素を含むが、ヘッダーが著しく単純であり、かつIPアドレスが著しく長い点で異なる。具体的には、IPv6のプリアンブル444は長さが8バイト長のみであるが、IPv6の送信元IPアドレス445及びIPv6の宛先IPアドレス446は16バイト長である。
表454は、IPv6データグラムフィールドに含まれる情報の概要を示す。前述のように、4ビット長(4b)のバージョンフィールドは、インターネットプロトコルをバージョン6のバイナリ0110に設定する。1B長の「トラヒッククラス」フィールドは、区別されたサービスを指定する6bサブフィールド、及びバージョン4と同様のECN輻輳管理のための2bサブフィールドを含む。20bの「フローラベル」フィールドは、データパスを維持することによってフラグメンテーションを最小化し、リアルタイムアプリケーションでの再順序付けを避ける。2B長の「ペイロード長」は、IPペイロード435の長さをバイト(オクテット)で指定する。1B長の「ネクストヘッダー」であるフィールド460は、IPペイロード435内のコンテンツのタイプを指定する。IPv4の「プロトコル」フィールドと同様に、IPv6の「ネクストヘッダー」フィールドは、本質的に、IPペイロード435のコンテンツに関する情報を提供する。場合によっては、このコンテンツは、例えばネットワーク遅延をチェックするようなアクションを含み、レイヤ3データを含む。他の場合では、コンテンツは、ICMP、IGMP、TCP、UDP標準トランスポートプロトコル、または他の専用フォーマットを含む、パケット配信及び確認を管理するために使用されるレイヤ4トランスポートプロトコルを含む。IPv4の「生存時間」と同様に、IPv6パケットの1B「ホップリミット」は、パケットが永続的に破棄される前に通過できるルータの最大数を指定する。パケットがルータを通過するたびに、カウントは1だけ減少する。
各16B長の次の2つのフィールドは、送信元IPアドレス445及び宛先IPアドレス446を指定する。前述のように、より長いIPアドレスの目的は、IPv4で発生するIPの枯渇を克服することである。この問題は図25に示され、IPアドレス459は、4B長のIPv4アドレスのクラスを、クラスのない16B長のIPv6アドレス458と対比する。IPv6アドレスは、2128、すなわち3.403×1038の特有の組み合わせが可能であるため、ネットワーク及びクライアントに特別に割り当てられたクラスに、アドレスを分割する必要はない。対照的に、IPv4で利用可能な限定された組み合わせのため、アドレスは「クラス」に細分され、現在、クラスAからクラスCは依然として常用されている。
図示のように、クラスAは、0.0.0.0から127.255.255.255の範囲のIPv4アドレスを有する1B長のネットワークフィールド456A及び3B長のクライアントフィールド457Aを含み、128のネットワーク及び16,777,216(約224)のクライアントをサポートする。クラスAユーザは、大規模なIPプロバイダ、電気通信会社、またはビデオプロバイダを含み得る。クラスBアドレスは、128.0.0.0から191.255.255.255の範囲のIPv4アドレスを有する2B長のネットワークフィールド456B及び2B長のクライアントフィールド457Bを含み、16,384(約214)のネットワーク及び65,536(約216)のクライアントをサポートする。クラスBユーザは、多数のサイトを有する企業を含み得る。クラスCアドレスは、192.0.0.0から223.255.255.255の範囲のIPv4アドレスを有する3B長のネットワークフィールド456C及び2B長のクライアントフィールド457Cを含み、2,097,152(約221)のネットワーク及び256(すなわち28)のクライアントをサポートする。クラスCユーザは、通常、小規模事業体を含む。
ネットワークまたはインターネットを介したパケットのルーティング中、IPヘッダー434内の各フィールドの処理は、知る必要性に基づいて行われる。例えば、各ルータは、エラーをチェックするためにIPバージョン、パケット長、及びパケットのチェックサムを知る必要がある。同様に、ホップタイムまたは生存時間も、中間ルータによって必ず処理され、永続性を取り除く。しかし、中間ルータは、IPヘッダー434の各フィールドを解釈する必要はない。具体的には、IPv4の「プロトコル」フィールド、またはIPv6の「ネクストヘッダー」フィールド460は、送信及び宛先IPアドレスについてのみの意味を有する。中間ルータは、IPペイロード435のコンテンツを知る必要がないため、情報を処理しない。パケットが最終的にその宛先IPアドレスに到達すると、意図された受信側デバイスまたはサーバは、IPヘッダー434内のフィールド460の値を読み取り、どのような種類のデータがIPペイロード435内にカプセル化されているかを解釈する。図26に示すように、フィールド460内の任意の有効値は、レイヤ3ネットワークレイヤペイロード、あるいはレイヤ4トランスポートペイロードに関するアクションをもたらすことができる。フィールド460に含まれるコードが宛先IPアドレスによって認識されない場合、サーバまたは受信側デバイスは、パケットを不完全なものとして廃棄する。
フィールド460が実行可能命令としてレイヤ3ネットワークレイヤペイロードを含む場合、IPペイロード435は、実行すべきタスクをネットワークに指示する。例えば、フィールド460が、プロトコルまたはネクストヘッダーフィールドのデータ461または462として示された10進数1または2の均等物を含む場合、IPペイロード435は、ネットワークユーティリティICMPまたはIGMPのそれぞれに対応する命令を含む。フィールド460が、プロトコルまたはネクストヘッダーフィールド463として示された10進数6の均等物を代わりに含む場合、IPペイロード435は、TCPレイヤ4トランスポートプロトコルを使用するペイロードのデータ475を含む。同様に、フィールド460が、プロトコルまたはネクストヘッダーフィールド464として示された10進数6の均等物を代わりに含む場合、IPペイロード435は、UDPレイヤ4トランスポートプロトコルを使用するペイロードのデータ476を含む。レイヤ4ペイロードについては、本開示の次のセクションで説明する。より一般的でない、独自の他のコードも存在する。フィールド460が、標準化された登録コードであるプロトコル、またはネクストヘッダーを含む場合、公的ネットワークは少なくとも論理的にコードへ適切に応答し、ペイロードを正確に解釈すべきである。コードが独占的である場合、独占ネットワーク及びカスタマイズされたルータのみがコードを解釈し、解釈にしたがって適切なアクションをとることができる。
フィールド460が、プロトコルまたはネクストヘッダーフィールドとして示された10進数1の均等物を含む場合、IPペイロード435は、サーバ、ルータ、アクセスポイントのようなネットワークデバイスによって使用されるICMP、すなわち「インターネット制御メッセージプロトコル」と呼ばれる特定のネットワークユーティリティを運び、ネットワーク伝播遅延にアクセスして、要求されたサービスが利用できないことを示すか、ルータまたはホストに到達できないことを確認する。特定のネットワーク診断を実行する場合を除き、割り当てられたプロトコルまたはネクストヘッダー識別子である10進数1は、システムまたはエンドユーザアプリケーション間で情報を交換するために一般的に使用されないという点で、UDP及びTCPとは異なる。データ461に対応するIPパケットについて図26に示すように、ICMPパケットは、ICMPデータ469が後に続く、タイプ465、コード466、チェックサム467、及び残りのICMPヘッダー468を有する4つの部分のヘッダーを含む。
「タイプ」465フィールド及び「コード」466フィールドは、ともに、様々な制御メッセージの配信を容易にする。タイプ=3制御メッセージは、IP宛先が到達不能であることを意味し、到達できなかった理由をコードで入念に説明する。例えば、コード=0は宛先ネットワークに到達不能、コード=1は宛先ホストに到達不能、コード3は宛先ポートに到達不能、コード=9はネットワークが管理上禁止されている、などである。タイプ=5の場合、パケットはリダイレクト可能であり、コード=0はネットワークのデータグラムをリダイレクトすることを意味し、コード=1はホストのデータグラムをリダイレクトすることを意味する、などである。タイプ=0の「エコー応答」が後に続く、タイプ=8の「エコー要求」は、ネットワークの伝播遅延をチェックするために音を出している潜水艦ソナーと同様に、重要かつ周知の「ピン」機能を共に実行する。他の重要な機能には、「トレースルート」コード30、「ドメイン名要求」コード37、ドメイン名応答コード38、タイムスタンプ要求コード=13、及びタイムスタンプ応答コード=14が含まれる。配信の問題について、コード=11は配送の「時間超過」を意味し、コード=12は「不良IPヘッダー」を意味し、コード=4、すなわち「送信元抑制」は、輻輳制御の場合に使用される。ICMPデータ469のコンテンツはメッセージを含むことができ、また、より大きなパケットをネットワークにロードするために単に使用することができ、問題が特に大きなペイロード配信を悩ませる可能性があるか否かを調査する。
図26にも示されているように、フィールド460がプロトコルまたはネクストヘッダーフィールドとして示された10進数2の均等物を含むとき、IPペイロード435は、「インターネットグループ管理プロトコル」の頭字語であるIGMPと呼ばれる特定のネットワークユーティリティ435を運ぶ。IPv4及びIPv6の両者のネットワーク診断で使用されるICMPとは異なり、IGMPは、ゲームまたはオンラインストリーミングなどの1対多のネットワークアプリケーションのためのIPv4マルチキャストでのみ使用される。しかし、IGMPv4という用語は、IGMPの遺産が以前のインターネットの化身から進化したため、使用されない。代わりに、IGMPv2及びIGMPv3は、現在サポートされている唯一のプロトコルである。また、IPv6では、マルチキャストは、マルチキャストリスナ探索を使用し、直接的には空のIGMPカプセル化を使用せずに、ICMPv6上で運ばれる。IGMPパケットは、「タイプ」470、「MRT」471、「チェックサム」472、及び「IGMPグループアドレス」473を含み、IGMPデータ474が後に続く。
IGMPでは、タイプ470フィールドは、パケットの性質を「メンバシップクエリ、メンバシップレポート、または離脱グループ」コマンドとして記述し、「MRT」471、すなわち最大応答時間は、最大時間制限を設定して最大100ミリ秒のレポートを受信し、チェックサム472は、IGMPパッケージ全体の16ビットの1に対する補数の和である。放送の場合、IGMPv2は、メッセージ「タイプ」470の設定にしたがって、IGMPパケット及びそのペイロードのIGMPデータ474をIGMPグループアドレス473に送信し、「一般クエリ」は、全てのホスト、すなわち224.0.0.1にマルチキャストを送信し、「離脱グループ」は同様に全てのルータ、すなわち224.0.0.2にメッセージを送信する。IGMPv2の「グループ特有のクエリ」及び「メンバシップレポート」では、クエリまたはレポートされたグループのみが、コミュニケに関与する。IGMPv3では、より包括的なメンバシップクエリが、接続された全ての相手を定義することができる。ICMP及びIGMPの他に、他のデータグラムは独自のプロトコルを含み、送信元及び宛先IPアドレスが事前に設定され、特有の形式を使用して通信する必要がある。それ以外の場合には、IPペイロード435は、一般に、TCPまたはUDPトランスポートレイヤ4プロトコルに従うデータを含む。
OSIレイヤ4 トランスポートレイヤ
OSIトランスポートレイヤ4の機能は図27に示されており、対応する通信スタック482A〜482Cを有するコンピューティング、及びデータストレージブロック483A〜483Cを含む3つのネットワーク接続デバイス480A〜480Cが、共通のネットワーク481を共有する。トランスポートレイヤは、通信484が、デバイスA内の通信スタック482A、及びデバイスB内の通信スタック482Bの間でのみ生じることを保証する。トランスポートレイヤの目的は、2つの接続されたデバイス間の通信を制御し、IPパケット及び実行されるサービスによって配信されるアプリケーションデータのタイプのためのコンテキストを提供することである。したがって、本質的には、OSIレイヤ3のネットワーク481は、デバイスの任意の組み合わせの接続を可能にし、OSIレイヤ4のトランスポートレイヤは、2つの特定のデバイスの通信を保証する。
現在使用されている2つの主なプロトコルは、TCP及びUDPである。「送信制御プロトコル」すなわちTCPでは、デバイス間の通信接続はハンドシェイクのプロセスによって保証され、IPパケットが次のパケットに送信される前に、パケット交換ネットワークを介して確実かつ正確に配信されたことを確認する。TCPハンドシェイクを使用すると、ローカルエリアネットワーク、イントラネット、または公衆インターネットを含む「無接続の」パケット交換通信システムであっても、「接続」が保証される。TCPは、信頼性の高い、エラーチェックされた、適切な順序の一連のデジタルバイトの高精度配信を保証するが、タイムリーな配信は保証しない。TCPは、電子メール、ファイル転送、ウェブブラウザ、遠隔端末機能、及びセキュアシェルを含む、様々なコンピュータプログラム、ファイル、テキスト、ビデオ、及び音声通信を含む、時間的制約のないペイロードを配信するために使用される。時間的制約のあるペイロードの場合、UDPなどのリアルタイムアプリケーションに適した他のプロトコルが優先される。
[伝送制御プロトコル(TCP)]
OSIのレイヤ7で操作されるTCPは、ネットワークまたはインターネットレイヤ3及び上位アプリケーションレイヤの中間レベルで機能する。IPパケットの配信時、TCPは、ネットワーク輻輳、パケットの欠落、トラヒック負荷分散、及び順序の乱れた配信による予期しないネットワーク動作を修正することができる。TCPは、これらの問題及びその他の問題を検出し、必要に応じて紛失したデータの再送信を要求し、順序の乱れたデータを再配置し、中程度のネットワーク輻輳でさえ可能な限り緩和する。TCPトランスポートレイヤによって配信されるIPパケットを、TCP/IPデータグラムと呼ぶことができる。パケット配信中は、タイマーが使用され、配信時間を監視する。パケットが配信する前に時間が経過すると、パケットを再送する要求が行われる。TCPパケットは、IPパケットのパイロード内にカプセル化される。受信したTCPパケットはバッファリングされ、アプリケーションに配信するために再構成される。
TCPパケットが、意図されるアプリケーションまたはサービスを識別するために、TCPは「ポート」と呼ばれるデジタル識別を利用する。ポートは、ホスト及び実行されたサービスの両方を指定することによって、ネットワーク上のトランザクションを一意に識別するために使用される番号である。ポートは、TCPまたはUDPによって採用され、ウェブサービス(HTTP)、メールサービス(SMTP)、ファイル転送(FTP)など、様々なIPサービスと、アプリケーションとを区別する。通信デバイスは、レイヤ3IPアドレス及びレイヤ4ポートの両方の組み合わせを利用して、PHYレイヤ1及びデータリンクレイヤ2を含む物理ネットワークから上位OSIアプリケーションレイヤ5以上の情報交換を制御する。
図28Aに示す各TCPパケット500は、TCPヘッダー506及びそのTCPペイロード507を含む。TCPヘッダー506の機能の詳細は、図28に示す表508に要約されており、TCPヘッダー506は、「オフセット、予約、フラグ、ウィンドウサイズ、緊急ポインタ及びオプション」フィールドと同様に、送信元ポート501、宛先ポート502、シーケンス番号503、確認応答番号504を含む。また、パケットの整合性を確認するためのチェックサム505を含む。シーケンス番号503は、複数のパケットの順序を追跡するために使用され、TCPヘッダー506の「フラグ」フィールド内のSYNフラグの状態に依存する。「確認応答」フィールドは、ハンドシェイクプロセスで使用される。TCPヘッダー506の「フラグ」フィールドのACKフラグがバイナリ1に設定されている場合、確認応答フィールドは、受信機が予期している次のシーケンス番号であり、その後の全てのパケット受信を確認応答する。
データ「オフセット」は、TCPヘッダー506のサイズ、すなわちTCPパケット500のデータグラムの開始からTCPペイロード507の開始までのヘッダーの長さを、2B長の5つのワードから2B長の15のワードの範囲の、2B(32ビット)長のワードの数に指定する。予約ビットは、この時点では使用されない。フラグフィールドは、隠蔽、輻輳、緊急性、パケット確認応答、プッシュ機能、接続リセット、シーケンシング、及び送信者からのそれ以上ないデータに部分的に関連する9のバイナリフラグを含む。ウィンドウサイズは、送信者が1パケットで受信する最大バイト数を指定する。チェックサムは、TCPヘッダー506及びTCPペイロード507の両者のエラーチェックのための2B(16b)チェックサムを含む。URGフラグがバイナリ1にセットされている場合、「緊急ポインタ」フィールドは、送信される最後の緊急データバイトを示す。
TCP/IPに基づくパケット通信では、ハンドシェイクはデータの保全性を保証するための鍵となる特徴である。図29の時間t=0に示すように、ノートブック510は、ウェブサーバ511にTCP/IPパッケージを送信し、ウェブサーバ511は、ともに持続時間Δtaを必要とするTCPヘッダー512A、TCPペイロード513A、及びトラベルタイム514AにTCP/IPパッケージを送信する。その後、TCPヘッダー5123B、及びヌルフィールド513Bを含む、ウェブサーバ511からノートブック510への確認応答が続き、持続時間Δtbを必要とする。組み合わされたインターバルであるタイムスロットt1=Δta+Δtbは、TCP/IPパケットを送信して確認するための最小時間を表し、所期パケット配信の約2倍の時間である。そのとき初めて、TCPヘッダー512C及びTCPペイロード513Cを含む第2パケットを配信することができる。パケットが破損または失われた場合、パケットを再送信して確認し、配信持続時間をt1から2t1に増やす必要がある。パケットが複数「n」回再送される必要がある場合、ただ1つのパケット持続時間はnt1を含む。ビデオ及びVoIPなどの時間の影響を受けやすいパケットを配信する際、TCP転送を使用した可変時間遅延は、極めて問題点が多い。要約すると、TCP/IPパケットは次の特徴を有する。
・確実性 TCP/IPは、確認応答、エラーチェック、再送信要求、及びタイムアウトの特徴を管理することで配信を保証する。
・重量 TCP/IPは、長く複雑なヘッダーを有する大きなトランスポートレイヤパケットを使用し、ホスト及びクライアント間に接続「ソケット」を確立するために少なくとも3つのパケットを必要とする。
・可変/遅いレート ハンドシェイキングのために、TCP/IPのデータレートは可変であり、UDPより著しく遅く、ビデオ及びVoIPなどのリアルタイムアプリケーションにとってTCPは好ましくない。
・順序付け TCPは、順序通りに受信されなかった任意のパケットをバッファリングし、再順序付けする。
・輻輳制御 TCPはいくつかの特徴を提供し、UDPで使用できない輻輳を管理する。
・エラーチェック TCP/IPパケットは、受信された場合には整合性をチェックされ、パケットが破棄された場合や破損した場合には再送信される。
[ユーザデータグラムプロトコル(UDP)]
TCPの代替として、「ユーザデータグラムプロトコル」すなわちUDPは、コネクションレスの伝送モードを採用し、1つは最小限のプロトコルであり、パケット配信のハンドシェイク確認はない。ネットワークの基本的な不安定さに敏感であるため、UDPは、配信確認も、パケットの順序付けまたは複製の保護も提供しない。しかし、データの整合性を確認するためにチェックサムを使用する。UDPは、時間の影響を受けやすいアプリケーション、またはエラーチェック及び修正が不要であるか、事後にアプリケーションで実行される用途に最適であり、ネットワークレベルでこのようなプロセスのオーバーヘッドを回避する。
図30に示すUDP529パケットは、UDPヘッダー520及びUDPペイロード524を含む。表525で説明されるUDPヘッダー520は、2B長の送信元ポートアドレス521、2B長の宛先ポートアドレス522、UDPのパケット長フィールド523、及びチェックサム523の4つのフィールドのみを含む。UDPポートアドレスは、TCP/IPパケットと同じフォーマットを使用する。UDPのパケット長フィールド523は、IPv6における最小長8Bから最大長65,535Bまでの範囲である。実施上の配慮点として、最大のチェックサム長は、IPv4プロトコルではわずか65,507Bに制限されている。
2Bのチェックサム523は、UDPペイロード524とUDPヘッダー520からのデータとを組み合わせた長さのエラー検出に使用されて、擬似ヘッダーにアルゴリズム的に変更され、IPアドレス及びIPヘッダーから借りた他のフィールドを含む。擬似ヘッダーは、データグラムに明示的に存在することは決してないが、エラーチェックの目的のために、IPヘッダー及びUDPヘッダーで利用可能なデータから作成される、すなわちアルゴリズム的に合成される。擬似ヘッダー形式及びチェックサム値は、IPv4及びIPv6ベースのUDPパケットで異なる。チェックサム機能はIPv4ではオプションであるが、IPv6での使用は必須である。使用されていないときは、フィールドに0のデジタル値がロードされる。UDPヘッダー520の後、UDPペイロード524は、IPv4での0Bから65,507Bまでの可変長で続く。
要約すると、UDP及びTCP/IPの両者を、パケット交換通信ネットワークを横断するIPパケットのレイヤ4トランスポートに使用することができる。UDPパケットの特徴は以下の通りである。
・不確実性 UDPは、配信を保証するものではなく、失われたパケットを検出することもできない。UDPには、失われたパケットを識別するため、再送信を要求するため、または配信中のタイムアウト状態を監視するための仕組みが存在しない。
・軽量 UDPは、多くのTCP機能及び関連するパケットオーバーヘッドのない最小サイズのヘッダーを有する小さなトランスポートレイヤを使用する。
・遅さ サイズの小さいものとして、UDPパケットは急速に配信され、失われた、または破損したパッケージの配信または再送信のハンドシェイク確認を必要としない。データレートは最低でもTCPの2倍であり、TCPパケットの再送信を伴う場合より4倍高速である。不安定なネットワークでは、再送信要求はTCPパケットの配信を完全に妨害する可能性がある。
・順序不同 パッケージが受信された順序は、送信されたときの順序と同じではない可能性がある。アプリケーションは、シーケンス外のパケットを並べ替えるために十分スマートでなければならない。
・輻輳制御なし 小さなパケットオーバーヘッドのアーチファクト以外のUDPは、輻輳制御手段などがアプリケーションレベルで実装されていない限り、輻輳を回避しない。
・エラーチェック UDPパケットは、受信された場合に限り、整合性がチェックされる。エラーの場合、パケットは再送信の要求なしで廃棄される。
[レイヤ4ポートの使用]
ポートは、パケット交換ネットワーク通信におけるトランスポートレイヤであるレイヤ4の実装において重要な役割を果たす。中でも特に、ポートは、サーバまたはデバイスによって提供されるアプリケーションまたはサービスを識別するのに役立ち、個々のクライアントを混在させることなく複数のユーザが同じサーバで対話できるようにするのに役立ち、ホストツークライアント及びクライアントツーホスト交換のために異なるポートペアを使用する全二重通信をサポートする手段を提供し、NAT、つまりネットワークアドレストランスレータの操作を容易にして、ユーザの利用可能なIPアドレスの数を増やすが、インターネットに直接接続するコスト及び接続数を制限する。
データグラムのホストクライアント交換の例が図31Aに示されており、タブレットまたはノートブックのいずれかであるクライアントのデバイス526Bは、ホスト526A、一般的にはウェブサーバから、ウェブページを要求する。交換において、クライアントのデバイス526Bは、数値「IPアドレスB」を有するIPアドレス527Bを有するレイヤ3IPヘッダー529を含むIPデータグラムを、数値「IPアドレスA」を有するIPアドレス527Aのホストサーバに送信する。レイヤ3データグラムのペイロード内にカプセル化され、クライアントは、アドホック値9,999を有する自身の送信元ポート番号528Aを含むレイヤ4トランスポートヘッダー530も送信する。ポート要求は、ホストポートに送信され、予約されたHTTPポート538Aは、ウェブページのウェブブラウザのダウンロードに使用される。したがって、要求ポート番号9,999は、次のオープンポート番号からアドホリックな方法で任意に割り当てられるが、宛先ポートは、ウェブページ要求として、要求されたサービスに対する特定の意味を有する。
このウェブページ要求に使用されるIPデータグラムの簡略化バージョンが図31Aの下部に示され、レイヤ3IPヘッダー529、レイヤ4トランスポートヘッダー530、及びIPパケットペイロード536が含まれる。レイヤ3IPヘッダー529内では、送信元IPアドレス531は、数値「IPアドレスB」を有し、宛先IPアドレス532は、数値「IPアドレスA」を有する。レイヤ4トランスポートヘッダー530内の送信元ポート533は、ポート番号の数値「9,999」を有し、宛先ポート534は、ポート番号の数値「80」を有する。IPパケットペイロード536は、レイヤ5からレイヤ7のアプリケーションデータを含むペイロード(データ)フィールド535を含む。
図31Bは、クライアントのサービス要求に対する応答を示す。図示のように、矢印の全ての方向が反転され、全ての送信元及び宛先IPアドレス、及びポート番号が前の図から置き換えられる。交換時には、数値「IPアドレスA」を有する送信元IPアドレス531から、数値「IPアドレスB」を有する宛先IPアドレス532に、レイヤ3IPヘッダー537を含むIPデータグラムが送信される。レイヤ3データグラム内にカプセル化されると、レイヤ4トランスポートヘッダー538は、ポート番号の数値「80」を有する送信元ポート533、及びポート番号の数値「9,999」を有する宛先ポート534を含む。IPパケットペイロード539内に埋め込まれているとき、サービス要求に対する応答はペイロード(データ)536であり、ウェブページを作成するためのHTMLコードを含むことができる。
したがって、サーバの選択時に必要に応じて一部のポート番号が開かれ、割り当てられるが、他のポート番号は、UDPパケット、TCPパケット、またはその両者の使用のために予約されている。共通の公式予約ポート番号のリストが図31Cに表され、TCPのみを使用したHTTPウェブブラウジングのための周知のポート80、ファイル転送のためのポート20、ポート23のテルネット、ポート110のみのTCPのためのPOP3電子メール、ポート220のIMAP3電子メール、及びHTTPS、IMAPS、TSL/SSL経由のFTPなどの、様々なセキュリティを確保したバージョンを含む。しかし最近では、本質的なトランスポートレイヤのセキュリティ方法であるSSLセキュリティが、このアプリケーションの冒頭の見出しの1つに記載されているように、特定の種類の攻撃に対して脆弱であることが明らかになった。レイヤ4のエコー機能及びピン機能に使用されるポート7は、レイヤ3のICMP機能によって大きく書き換えられている。
図31Dの表は、ポート番号の範囲及びその用途を示している。図示のように、予約されたポート番号は、ポート番号が0から1,023の範囲では「システムポート」として一般的に発生するが、ポート番号が49,152より大きい場合には、ポートは、一般的にオープンかつ自由に利用可能である。中間範囲、つまりポート番号が1,024から49,151の間では、大きなブロックが開き動的ポート割り当てに使用できるが、一部の予約ポートも存在する。より一般的には、大企業はソフトウェアで特定のポートの専用使用を報告する可能性があるが、ポート番号を正式に登録することはない。「公式」及び予約ポート番号は厳格に管理されていないが、それにも関わらず、企業がインターネット及び他のビジネスとのシステム及びソフトウェアの相互運用性を保証したいため、幅広いサポートを受ける。
ポートは、「ファイアウォール」を容易にするためにも使用され、特定のサービスのコンピュータ、サーバ、またはデバイスへの不正アクセスを防止するか、少なくとも禁止する。例えば、イントラネット上、すなわちNATの背後に位置する専用ネットワーク上に位置するか、専用ネットワークセキュリティボックスによって保護されている任意のサーバは、インターネット開始される特定のタイプのサービス要求に限定することができる。例えば、ファイアウォールがポート80の要求をブロックし、HTTPサービス要求を無効にし、インターネットからのウェブページのダウンロードを妨げるように設定することができる。あるいは、ファイアウォールがインターネットからのポート25サービス要求のみを許可し、他のポートは有効にしないよう設定することができる。このような場合、ファイアウォールはシンプルメールトランスファプロトコル、すなわちSMTPサービス要求を許可し、イントラネットからインターネットへの電子メール送信を可能にするが、他の全てのタイプのトランザクションをブロックする。厳しいファイアウォール方法などの問題は、追加されたセキュリティが多くの有効なトランザクションをブロックし、現場の従業員及びベンダーが仕事を遂行するために必要な重要な情報にアクセスできないことである。
ポートのもう1つの用途は、IPv4 IPアドレスのポートが枯渇する日付を遅らせることである。全ての人が各個人のデバイスに複数の専用IPアドレスを割り当てるのではなく、ケーブルプロバイダ、パブリックWiFiオペレータ、携帯電話キャリアなどのインターネットサービスプロバイダすなわちISPは、インターネットIPアドレスを動的にリサイクルし、プライベートIPアドレスを使用してインターネットゲートウェイ及びプライベートクライアントの間で通信する機能を有する。このようにして、単一のインターネットIPアドレスは、アップストリームの接続帯域幅が十分速く、トラヒックをサポートすることができる場合、クラスBサブネットは65,534人のユーザ、クラスCサブネットは254人のユーザに利用され得る。
この1つのIPアドレスから複数のIPアドレスへの双方向変換及び通信を実行するデバイスは、「ネットワークアドレス交換プログラム」すなわちNATと呼ばれる。図32Aに示すように、NAT550は、IPアドレス及びポート番号変換ブロック554と、インターネット接続通信スタック553A及びインターネットの通信スタック553Bを含む2つの通信スタックとを含む。インターネット接続通信スタック533Aは、パブリックネットワーク551を介してサーバ21A、電子メールサーバ27、及びウェブサーバ511などの他の全てのインターネット接続デバイスに接続する。トランスポートレイヤ4では、インターネット接続通信スタック553Aは、557A及び557Bなどの複数のデバイスとの同時通信を管理する。図示の例では、非公開ネットワーク552は、ノートブック35、冷蔵庫などの家電製品34、デスクトップ36、及び家庭のWiFiルータ62Aなどの様々な家電機器をクラスCサブネットの通信スタック553Bに接続する。プライベートネットワークでは、レイヤ4トランスポートプロトコルは、例えばレイヤ4接続556A及び556Bのように、通信スタック553B及びネットワーク接続されたデバイスの間の通信を管理する。プライベートネットワーク及びパブリックネットワーク間の情報交換をサポートする上で、IPアドレス及びポート番号交換ブロック554は、アドホックな交換テーブル555を動的に構築して、各プライベートネットワークパケット送信をパブリックネットワークに、及びその逆にマッピングする。
NATの操作が図32Bに示されており、「NATの背後にある」プライベートネットワークに接続されたデスクトップ36及びノートブック35は、インターネットに接続された単一のパブリックIPアドレスのみを介してインターネット接続されたウェブのサーバ21A及び電子メールサーバ27と同時に通信しようとする。図示された例では、ノートブック35は、「NB」として示されたIPアドレス及び動的ポート割り当てを有し、デスクトップ36は、「DT」として示されたIPアドレス及び動的ポート割り当てを有し、ウェブのサーバ21Aは、「S1」として示されたIPアドレスを有し、HTTPベースのウェブページサービスのためにポート80を使用し、電子メールサーバ27は、「S2」として示されたIPアドレスを有し、IMAPベースの電子メールサービスのためにポート110を使用する。インターネット上では、NAT550は、パブリックIPアドレス「N」を共有し、動的ポート割り当てを使用する。
操作中、ノートブック35は、宛先IPアドレスS1及びポート80の送信元IPアドレス「NB」及び任意のポート番号9999からウェブのサーバ21AへのIPパケット560Aによるウェブページ要求を開始する。同時に、デスクトップ36は、宛先IPアドレスS2及びポート110の送信元IPアドレス「DT」及び任意のポート番号10200から電子メールサーバ27へのIPパケット561Aによる電子メール要求を開始する。これらの要求を受信すると、NAT550は着信メッセージを発信インターネット接続にマッピングし、アドレス変換を変換テーブル555にマッピングする。NATはその後、宛先IPアドレスS1及びポート番号9999を保持することによってノートブック35からの要求を転送するが、変換された送信元IPアドレス「N」及び送信元ポート番号20000を用いて、ノートブック35からNAT550へのソース情報を交換して、インターネットの要求IPパケット560Bを作成する。
同様に、NAT550は、宛先IPアドレスS2及びポート番号9999を保持することによってデスクトップ36から電子メールサーバ27への要求を転送するが、変換された送信元IPアドレス「N」及び送信元ポート番号20400を用いて、デスクトップ36からNAT550へのソース情報を交換して、インターネットIPパケット561Bを作成する。このようにして、ウェブのサーバ21A及び電子メールサーバ27の両者はNAT550と通信しているとみなしており、ノートブック35及びデスクトップ36からの要求について全く知らない。事実、NATサブネット上に接続されたアドレス「NB」または「DT」のようなデバイスによって使用されるIPアドレスは、インターネット上で有効なアドレスではなく、NAT550の介入なしに直接接続することはできない。
ウェブのサーバ21Aが要求IPパケット560Bを受信すると、ウェブページを構築するためのHTMLコードを送信することによって応答し、IPパッケージ560Cによって、送信元IPアドレス「S1」及びポート「80」から、宛先IPアドレス「N」及びポート番号20000にルーティングされる。変換テーブル555を参照することによって、NATは、ポート番号20000への応答がノートブック35からの要求に対応していることを知り、宛先IPアドレス及びポート番号をノートブックのIPアドレス及びポート番号、すなわちIPアドレス「NB」及びポート番号9999にスワップして応答IPパケット560Dを作成することによって、メッセージを転送する。
このトランザクションと平行して、NAT550からの要求IPパケット560Bを受信すると、電子メールサーバ27は電子メールを含む送信IMAPコードを応答し、IPパッケージ561Cによって送信元IPアドレス「S2」及びポート110から、宛先IPアドレス「N」及びポート番号20400にルーティングされる。変換テーブル555を参照することによって、NATは、ポート番号20400への応答がデスクトップ36からの要求に対応していることを知り、宛先IPアドレス及びポート番号をデスクトップのIPアドレス及びポート番号、すなわちIPアドレス「DT」及びポート番号10200にスワップして応答IPパケット561Dを作成することによって、メッセージを転送する。このようにして、複数のユーザは、単一のIPアドレスを介して複数のインターネット接続されたデバイス及びサイトに別々にアドレス指定することができる。
[その他のレイヤ4トランスポートプロトコル]
TCP及びUDPのレイヤ4スーパーセットとして操作する場合、またはUDP及びTCPの上位で実行されている単なる上位レイヤのアプリケーションプログラムである場合、TCP及びUDP以外に、他の共通トランスポートプロトコルが、独特かつ独立したレイヤ4プロトコルとして操作するか否かについてのコンセンサスは一般的にない。
このような1つのプロトコルである「データグラム輻輳制御プロトコル」、すなわちDCCPは、ストリーミングメディア及びマルチプレイヤオンラインゲームなどの、データ配信にタイミング制約のあるアプリケーションに役立つ輻輳制御を管理するためのメッセージ指向のトランスポートレイヤプロトコルであるが、TCPで利用可能な順序外のパケットの配列が欠けている。スタンドアローンベースで使用することもできるが、DCCPの別のアプリケーションは、UDPベースのアプリケーションに輻輳制御機能を提供するはずである。データトラヒックの搬送に加え、DCCPには、いつパケットが到着したか、及び「明示的輻輳通知」すなわちECNによってタグ付けされたか否かを送信者に知らせる肯定応答トラヒックが含まれる。
パケット、特にテキストのタイムリーな配信を管理する別の試みは、UDPのマルチキャストオプションに基づいたLCM(Lightweight Communication And Marshaling)である。UDPユニキャストとは対照的に、UDPマルチキャストの利点の1つは、複数のアプリケーションが単一のホスト上で一貫して動作すること、または複数のプラットフォームにまたがって動作することである。ネットワーク待ち時間を最小限に抑えるよう目指すこと以外に、他のレイヤ4プロトコルは、データを「トンネリング」して仮想プライベートネットワーク、すなわちVPNを作成するために使用され、インターネット上、及びインターネットを介して動作する。このようなUDPベースのプロトコルの1つは、GRE(Generic Routing Encapsulation)、PPTP(Point-To-Point Tunneling Protocol)、SSTM(Secure Socket Tunneling Mechanism)、SSH(Secure Shell)などである。いくつかのVPN実装はセキュリティを向上させる意味を有するが、実際にはネットワーク待ち時間が増加する。
UDP及びTCPの前述の標準化されたレイヤ4トランスポートプロトコル以外に、プロプライエタリ・プロトコルの採用率がどのようなものであるか、及びIPパケットの破損を犠牲にして待ち時間の低下を保証すること、または待ち時間の増加を犠牲にしてセキュリティを保証することで生じるトレードオフがどのようなものであるかは不明である。
OSIレイヤ5、6、及び7−アプリケーションレイヤ
ポート#が、要求されたサービスのタイプを特定している間、アプリケーションはレイヤ4ペイロードとしてカプセル化されたデータの性質を理解しなければならない。供給されたパッケージの内容に基づいてアクションを起こすことは、上位OSIアプリケーションレイヤ、すなわちレイヤ5、6、7の役割である。アプリケーションレイヤにおける複数のデバイスの相互接続は、図33のブロック図に図示されており、3つのデバイス570A、570B、及び570Cは、それぞれ別個のコンピューティング及びデータストレージ能力部573A、573B及び573Cを有し、共有アプリケーションレイヤ接続571を共有するそれぞれの対応する通信スタック572A、572B及び572Cによって接続される。実際には、デバイスには全てのOSIレイヤでの接続が含まれているが、簡単にするため、アプリケーションレイヤの接続のみが示されている。
パケット交換ネットワークへの接続の他に、デバイスがアプリケーションレイヤで通信を確立するための主なルールは、全ての通信デバイス上に同じまたは互換性のあるアプリケーションが存在しなければならない、ということである。例えば、銀行プログラムはビデオゲームプログラムを理解することができず、CADプログラムはHDビデオストリーミングを解釈できず、音楽プレイヤは株式市場取引を行うことができない。多くのアプリケーションプログラムは、ある企業またはベンダーにとってカスタム品または独自のものであるが、いくつかのアプリケーションとサービスはどこにでも存在し、場合によっては政府によってオープンソース環境でも動作することを要求されている。例えば、マイクロソフト(登録商標)社がOutlook(登録商標)メールサーバを明示的かつ排他的にマイクロソフト・ウィンドウズ(登録商標)にリンクしようとしたとき、欧州連合(EU)の裁判所はそのような行為が反トラスト法に違反していると裁定し、マイクロソフトにメールアプリケーションを、それが動作するオペレーティング環境への明確な接続を持つスタンドアロンプログラムとしてリリースするよう強制した。その後、マイクロソフト(登録商標)のメールプロトコルと機能を使用して、複数のコンピューティングプラットフォーム上に多数の競合するメールプログラムが登場した。
アプリケーションレイヤ5、6、7の区別は微細なものである。結果として、多くの人々は、7レイヤのOSIモデルでレイヤをまとめて「アプリケーションレイヤ」、「上位レイヤ」または単にレイヤ7と呼んでいる。後者の解釈では、レイヤ7は真のアプリケーションとみなされ、レイヤ5とレイヤ6はコンピュータプログラムのサブルーチンコールと同様にサービスを提供するためのレイヤとみなされる。問題をさらに混乱させる点としては、7レイヤOSIモデルと競合するパケット交換ネットワークの代替的な5レイヤ記述は、3つのアプリケーションレイヤ全てを1つのレイヤに統合し、これはレイヤ5と呼ばれるが、OSIモデルにおけるレイヤ7に近い構成である。
[セッションレイヤ5]
7レイヤOSIモデルでは、レイヤ5を「セッションレイヤ」と呼び、二重通信、半二重通信、または単信通信方式の管理を含む、アプリケーション間の対話を調整するとともに、チェックポイントの設定、リカバリ、及びTCPセッションの正常終了を提供する。セッションレイヤはまた、「リモートプロシージャコール」すなわちRPCを使用するアプリケーション環境で、リモートアプリケーションの接続を明示的に確立、管理及び終了する。レイヤ5は、1つのアプリケーションが他のアプリケーションのプロセスへのアクセスを要求したとき(例えば、Excel(登録商標)からPowerPoint(登録商標)にチャートをインポートするなど)のアプリケーション間セッションの管理も扱う。別のレイヤ5アプリケーション、「ソケット・セキュア」すなわちSOCKSは、プロキシ・サーバを介してサーバとクライアントの間でIPパケットをルーティングし、許可されたユーザのみにサーバ・アクセスを制限するための「認証」を実行するために使用されるインターネットプロトコルである。したがって、アクセスと権限を付与または拒否するユーザIDに依拠していることから、SOCKSセキュリティは採用された認証プロセスほど堅牢ではない。
動作中、SOCKSはプロキシとして動作し、任意のIPアドレスを介してTCP接続をルーティングし、UDPパケットの転送サービスを提供する。クライアントがSOCKSを使用してファイアウォールによってサーバ・アクセスからブロックされている場合、クライアントはSOCKSプロキシに接続して、そのクライアントがサーバに接続するために望む接続を要求する可能性がある。SOCKSプロキシは、サーバによって受け入れられると、ファイアウォールを介して接続を開き、ファイアウォールが存在しないかのようにサーバとクライアント間の通信を容易化する。SOCKSは、HTTPベースのプロキシより下のレイヤで動作し、ハンドシェイク方式を使用して、クライアントがパケットヘッダーを解釈または書き換えをせずに作成しようとしている接続についてプロキシソフトウェアに通知する。接続が確立されると、SOCKSはネットワークユーザに対してトランスペアレントに動作する。SOCKS4と呼ばれる新しいバージョンのSOCKSは、クライアントがIPアドレスを要求するのではなく宛先ドメイン名を指定できるようにソフトウェアを拡張した。
SOCKSは、許可されたユーザを識別するために使用される認証プロセスと同程度の堅牢さしかなく、ハッカーや犯罪者によってファイアウォールのセキュリティ対策を無効にする手段に変換される可能性がある。この脅威と戦うために、SOCKS5が、認証のためのより多くの選択肢を提供し、DNSルックアップを使用するUDP転送のサポートを追加するために開発された。SOCKS5は、IPv4とIPv6の両方のIPアドレスをサポートするようにアップデートされた。ハンドシェイクとセッションネゴシエーションの間、クライアントとサーバの両方は、認証に利用可能なメソッドを以下の番号で識別する。
・0x00:認証なし
・0x01:GSSAPIメソッド
・0x02:ユーザ名/パスワード
・0x03−0x7F:IANAの割り当てられたメソッド
・0x80−0xFE:私的使用のために予約されたメソッド
ネゴシエーションが完了し、認証方法が選択されると、通信が開始される。最も単純な認証手順、ユーザ名/パスワードは、特に4文字のPINタイプのパスワードでは、本質的に安全でなく、簡単に破られることが証明されている。代替の「汎用セキュリティ・サービス・アプリケーション・プログラム・インターフェース」すなわちGSSAPI自体はセキュリティ方法ではなく、主にセキュリティ・サービス・ベンダーが作成したセキュリティ・コードと認証方式を含むソフトウェア・ライブラリを呼び出すIETF標準インターフェースである。GSSAPIを使用すると、ユーザはアプリケーションコードを書き直す必要なく、セキュリティ方法を変更できる。プロシージャコールには、ユーザのID証明または秘密の暗号化鍵の取得、サーバに送信して応答トークンを受信するためのクライアントトークンまたはチャレンジの生成、アプリケーションデータの安全なまたは暗号化されたメッセージトークンへの変換及び復元などが含まれる。代替的に、非営利団体であるICANNの一部門であるIANA(Internet Assigned Numbers Authority)は、ネットワークの安定性とセキュリティを確保するために、そのチャーターで特定の方法を割り当てている。
[プレゼンテーションレイヤ6]
レイヤ6は、文字コーディング、オーディオ(音声)、ビデオ(映像)、グラフィカルフォーマットについての取り決め事の維持を含む、データとオブジェクトの構文表現を管理する。基本的には、シンタックスレイヤと呼ばれるプレゼンテーションレイヤは、ファイルと埋め込みオブジェクトを特定のアプリケーションで使用可能な形式に準備または変換し、アプリケーションレイヤ7に「提示(プレゼンテーション)」する。例えば、グラフィカルオブジェクトが所与のアプリケーションによって理解できないフォーマットで受信された場合、プレゼンテーションレイヤソフトウェアは、いつでも、そのフォーマットを所与のアプリケーションにとって受け入れ可能なものに転換または変換する。逆に、レイヤ6は、独自のフォーマットされたオブジェクトを標準フォーマットに変換し、カプセル化してセッションレイヤ5に渡すことができる。このように、レイヤ6は、データを通信及びプロトコルスタックの上下に移動させるための異なるアプリケーション間に構文的コンテキストを確立する。例えば、Adobe Illustrator(登録商標)またはAutoCAD(登録商標)で作成したグラフィックをインポートして、PowerPoint(登録商標)プレゼンテーションまたはHTTPベースの電子メールドキュメントに埋め込むことができる。
レイヤ6は、暗号化、すなわちネットワークを介して送信する前にデータをフォーマッティング及び暗号化し、逆にデータを解読し、それをアプリケーション層に提示する前に再フォーマッティングすることも担う。例えば、インターネットを介して暗号化されたフォーマットで送信されたタブ区切りのデータファイルを受信すると、レイヤ6は、ネゴシエートされた復号鍵に従ってファイルを復号化した後、行−列ベースのスプレッドシート(例えばExcel(登録商標)、またはOracle(登録商標)などのリレーショナル・データベース、)にインポートするためにデータを再フォーマッティングすることができる。セキュリティを強化するために、レイヤ6による暗号化と復号化を、レイヤ5認証手順によって事前に識別されている認証済みの送信者と受信者に限定することができる。このようなコミュニケのセキュリティは、データファイルを隠すために使用される暗号化や、データファイルにアクセスするユーザの権利を確認するために使用される認証プロセスと同程度の水準である。
プレゼンテーション層ソフトウェアは、特定のデバイスまたはオペレーティングシステムのフルカスタムベースで開発することができるが、転送可能性と相互運用性のために、「抽象構文表記法、バージョン1」すなわちASN.1の基本的なエンコーディングルール(EBCDICでコード化されたテキストファイルのASCIIコード化されたファイルへの変換、オブジェクトや他のデータ構造のXMLからのシリアル化などを含む)を使用してコードを構築できる。レイヤ5プレゼンテーションプロトコルとして、ASN.1は、構造化データを特定の符号化ルールに変換(例えば、整数の送信されるビット列への変換)し、同様にXERとしても知られる「XML符号化規則」を使用してビット列を復号する。
レイヤ6のオペレーションでカバーされる種々のフォーマットの例として、以下のもの、
・ASCII及びEBCDIC形式を含むテキスト、
・PNG、JPG、GIF、BMP、EPSを含むグラフィックス、
・MP4、WMV、MOV、AVI、MIDIを含むサウンドとビデオ、
・PDF、DOC、PPT、HTML、XML、MIME、圧縮(ZIPなど)を含む文書
・RTP、RTSP、RTMPを含むストリーミング、
・TLS/SSL、SSHなどの暗号化、
が挙げられる。
[アプリケーションレイヤ7]
レイヤ7の7レイヤOSIモデルでは、「アプリケーション」レイヤは、ユーザ、クライアント、またはデバイスとホスト、サーバ、またはシステムとの間のインターフェースを容易化する。アプリケーションレイヤはユーザに最も近いため、ユーザとホストの間のインターフェースを容易化する。ユーザが人間であり、ホストが携帯電話やコンピュータなどの電子デバイスである場合、このインターフェースは、キーストローク、キーボードまたはタッチスクリーンを使用するタッチまたはジェスチャ、または場合によっては音声によって容易化される。ももともとGUI、すなわちグラフィカル・ユーザー・インターフェースと呼ばれていたタッチスクリーン・インターフェースは、ヒューマン・マシン相互作用の研究に基づくインターフェース・デザインであるユーザ・インターフェース/ユーザ・エクスペリエンスという意味のUI/UXを意味していた。マシン・ツー・マシン(M2M)、マシン・ツー・インフラストラクチャ(M2X)では、ヒューマンインターフェースが、異なる機械語を話す異なるハードウェアデバイスに置き換えられる。
これらの相違にもかかわらず、アプリケーションレイヤは、人間と機械または複数の機械が認識可能な形で互いにトークすることを可能にしなければならない。OSIモデルは通信とプロトコルスタックを扱うため、これらのインターフェースはOSIモデルの範囲外であるが、通信パートナーの特定、リソースの可用性の決定、通信の同期化など、会話のネゴシエーションに重要な役割を果たす。通信パートナーを特定するとき、レイヤ7は、他の当事者に適切なソフトウェアがインストールされており、通信が許可されており、適切な資格情報を保持しているか否かを判断する必要がある。
場合によっては、データ交換を開始する前に相手方のIDを最初に認証する必要がある。この確認は、情報交換の要求時に行われるか、あるいは、ボンディングのプロセスを介してアプリオリに、または認証、認可、及び管理を意味する3段階の手順であるAAA検証を使用してネゴシエートされ得る。VoIPを使用する携帯電話などの通信用途では、アプリケーションソフトウェアは、許容可能なQoSレベルの会話をサポートするためにネットワーク内で許容可能な小さなレイテンシーで送受信される一連のIPパケットを確立するために利用可能であり、十分に安定していることを確認するためのテストも行わなければならない。通信の同期化では、アプリケーション間の全ての通信には、アプリケーションレイヤによって管理される連携が必要である。
アプリケーションレイヤ実装の例として、端末エミュレーション、電子メールサービス、ネットワーク管理、ウェブブラウザ、ファイル管理、バックアップ及びクラウドストレージサービス、及び周辺装置ドライバなどが挙げられ、具体的には、
・FTP、FTAM、SFTP、NNTP、IRC、SIP、ZIPなどのファイル管理、
・HTTPを含むWebブラウザ(Safari(登録商標)、Firefox(登録商標)、Chrome(登録商標)、Outlook(登録商標)、Netscape(登録商標)など)、
・Microsoft Outlook(登録商標)、Apple Mail(登録商標)、Google Gmail(登録商標)、Yahoo(登録商標)、Hotmail(登録商標)などとともに、SMTP、IMAP、POP3などの電子メールサービス、
・SIP、NNTP、IRC、及び「オーバー・ザ・トップ」(OTT)のカスタム実装を含む通信及びブロードキャストサービス、
・DNS、SNMP、DHCP、SNMP、BGP、LDAP、CMIPなどのネットワーク管理、
・Telnetを含む端末エミュレーション、
・NFS、商用バージョンのAndroid、iOS(登録商標)、Apple Time Machine(登録商標)、Apple iCloud(登録商標)、Carbonite(登録商標)、Barracuda(登録商標)、Dropbox(登録商標)、Google Drive(登録商標)、Microsoft One Drive(登録商標)、Boxなどのバックアップ及びクラウドストレージサービス、
・プリンタ、スキャナ、カメラ、フラッシュカードを含む周辺機器ドライバ、
・Symantec、Norton(登録商標)、AVGなどのセキュリティアプリケーション
などが挙げられる。コンピュータやスマートフォンアプリケーションでは、最も一般的なアプリケーションの例として、ファイル転送、Webブラウジング用のハイパーテキスト転送、電子メールサービス、ドメイン名をIPアドレスに変換するDNSルックアップなどが挙げられる。そのユビキタス性のため、これらの汎用アプリケーションには、そのようなサービスに割り当てられた専用ポートがある。
[ファイル管理アプリケーション]
ファイルの送信またはデータのダウンロードに使用される、1つの共通のレベル7アプリケーション、ファイル転送プログラムすなわちFTPである。ダウンロードされたファイルは、後で使用するために不揮発性ストレージドライブに「書き込み」される。ファイルに実行可能コードが含まれている場合は、デバイスのオペレーティングシステムと共にダウンロード及びインストールプログラムを開いて、ソフトウェアを開きコンピュータまたはモバイルデバイスのアプリケーションディレクトリにインストールする。
このプロセスは図34に示されており、この図では、数値IPアドレス「NB」及び動的ポート割り当てを有するノートブック35が、ファイルサーバ21Aのファイルを要求するが、この要求はTCP転送を使用するFTP要求としてIPパケット580をファイルサーバのFTP制御ポートであるポート#21に送信することによって行われる。結果として生じるIPパケット580は、宛先IPアドレス「S1」、宛先ポート#21、及びその発信元IPアドレス「NB」及びそのアドホックポート#9999を含む。ポート#21はファイル転送サービスを要求するための制御ポートを表すので、ファイルサーバ21Aは、ノートブック35がファイルを要求していることを知り、パケットの宛先IPアドレス及びポート番号を確認するためのログイン情報を予測する。
アクティブFTPセッションでは、ノートブック35は、SWIFTコードと口座番号を含む銀行振り込み転送のための配線命令を提供することに類似して、要求されたファイルの宛先アドレスと宛先ポート番号を送信する。結果として生じるIPパケット581は、ノートブックのIPアドレス「NB」及びそのポート#9999を発信元情報として、サーバのIPアドレス「S1」を宛先として含む。パケットの宛先ポート番号をポート#20に変更して、コマンド接続とは別のFTPデータチャネルをネゴシエートする。
これに応答して、ファイルサーバ21Aは、IPパケットのペイロードを開いて、ファイル名と、オプションで要求されているファイルパスとを決定し、ファイル583を見つけた後、それを応答IPパケット582にカプセル化し、IPアドレスとポートとを交換する、すなわち宛先がポート#9999でIPアドレス「NB」になり、発信元はIPアドレス「S1」及びポート#20になるように交換することによって、データをノート35に送り返す。前述の2つのトランザクションと同様に、IPパケットはTCPをその転送メカニズムとして使用する。
ノートブック35がファイルを受信すると、それはパケット582のペイロードから抽出され、場合によってはプレゼンテーションレイヤ6を使用してデータファイル583に変換され、ノートブックのオペレーティングシステム585に格納またはアップロードされる。そうである場合には、オペレーティングシステム内のユーティリティであるプログラムまたは別のプログラムが、実行可能コードをアップロード(583)してアプリケーションプログラム586を作成する。
アクティブFTPファイル転送のオリジナルの実装には、2つの問題がある。まず、FTPコマンドポート#21はオープンスタンダードなので、ハッカーは頻繁にそのIDを偽造して不正なファイルをダウンロードしようとするか、またはデバイスが妨害されて動作できなくなるサービス妨害攻撃を引き起こす。アクティブFTP転送に関する他の問題は、ファイルサーバから送信されたIPパケット582がNATあるいはファイアウォールによってブロックされ、ノートブック35へのその配信を遮断される可能性があることである。パッシブFTPと呼ばれるこの手順の改変は、ファイアウォールの問題を回避することができるが、現在ほとんどのNATルータはFTPを認識しており、適切な資格情報や認証でファイル転送をサポートしている。
ポート#20で利用可能なFTPサービスに加えて、またはそれに代えて、SSHファイル転送プロトコルとしても知られている「セキュアファイル転送プロトコル」がある。転送には、セキュアシェルまたはSSHポート#22(セキュアログインとセキュアポート転送に使用されるものと同じもの)を使用する。代替のファイル転送アプリケーションとしては、あまり採用されていない「ファイル転送アクセス・管理」(FTAM)や、ZIPやその他のアルゴリズムを使用したデータ圧縮などがある。
[WebブラウザとWebサーバ]
レイヤ7アプリケーションのもう1つの広いクラスは、「ハイパーテキスト」と呼ばれる特別なフォーマッティング技術を使用するプログラムで構成されている。これらのアプリケーションには、ハイパーテキスト文書を格納する「Webサーバ」、それらを読んで表示する「ウェブブラウザ」、及び迅速なアクセスを容易にするための専用の登録済みポート割り当てを用いる専用の通信転送プロトコルが含まれる。主要なコンポーネントであるWebブラウザは、インターネット、イントラネット、または他のパケット交換ネットワークからハイパーテキスト文書をダウンロードして表示するように設計された、映像指向の通信プログラムである。ブラウザのネットワークコンパニオンであるWebサーバは、ファイルへのアクセスを要求するブラウザにハイパーテキスト文書を配布するために使用される高速コンピュータである。ハイパーテキストは、単純な電子メールビューアからは利用できない埋め込みフォーマッティングされた電子メールを表示するためにも使用できる。
動作中、ブラウザは他のブラウザと直接接続するのではなく、両方でアクセス可能な1つ以上のウェブサーバを含む中間媒体を介して情報を交換する。文書を公開するために、ユーザは、インターネットに接続された任意のサーバ上にホストされている「ウェブページ」または他のプライベートネットワークまたは公衆ネットワークまたはクラウドに文書またはイメージを単に「投稿」する。文書を投稿するユーザは、投稿されたファイルに誰がアクセスできるか、読み取り専用または編集権限を持っているか否かを決定する。文書をホストするウェブサーバは、文書の発信者によって所有または管理されてもよいし、掲示されたコンテンツ及びウェブページ設計に関与しない非利害関係者が代表してもよい。
ハイパーテキストベースの文書は、HTMLまたは「ハイパーテキストマークアップ言語」と呼ばれる特殊な文書フォーマット言語を使用して、表示されるウィンドウに最も適合するように動的に調整されたテキスト、グラフィック及びビデオコンテンツを表示する。HTMLの機能は、表示される資料をダウンロードし、ページ単位で動的にフォーマッティングすることである。各ページは、ハードコードされたソフトウェアからロードされたテキスト、またはファイルまたはデータベースからダウンロードされたテキストを含む静的及び動的サイズのフィールドの両方を含むことができる。HTMLページコンテンツにデータベースを使用する利点は、データベースを頻繁に定期的に更新できることと、Webページが自動的に調整されることである。それ以外の場合は、コンテンツの変さらに合わせて全てのWebページを再設計しなければならない。HTMLでは、固定位置フッター、ヘッダー、サイドバー、フィールドなどのオブジェクトの位置と、テキストが動的に折り返されるフローティングオブジェクトが指定される。
オブジェクト自体は、静的なグラフィックオブジェクトや写真、アニメーショングラフィクス、フラッシュビデオ、オーディオファイル、ビデオやHDムービーなどを表すことができる。テキストのように、書式はハードコード化されていても動的にリンクされていてもよい。リンクされたオブジェクトは、1つのフォーマットまたはオブジェクトタイプから別のフォーマットまたはオブジェクトタイプへのプレゼンテーションレイヤ5の機能を使用して動的に変換され得る。例えば、スプレッドシート内の定義済みフィールドは、ページの描画時に静的スナップショットまたはグラフィックに変換される。他のオブジェクトはまた、他のサーバ及びウェブサイトへのライブリンクを含むことができ、クリックされると、ウェブページビューアのコンピュータに関する情報、個人及び連絡先情報、または好み及び興味を、ビューアの事前承認の有無にかかわらず転送することができる。本質的に、リンクをクリックすることは、リンクされたウェブページのホストの利用規約の暗黙の承認とみなされる。例えば、新しい車のバナー広告をクリックすると、新しい車の購入に関心のある人のためにデータベースに情報が送信され、新しい車のプロモーションの不要な「スパム」メールが視聴者の個人メールに送信される。動的なウェブページ上では、バナー広告フィールドの内容は、その時から自動的に自動車広告を表示することができるが、全てはビューアがリンクをクリックして広告を見るという単一のアクションに基づいている。インターネットマーケティング会社は、ビューアの行動の収集が真実か意図しないものであるか否かを知ることがなくても、業者及び広告主にそのような情報を販売する。
重要な点として、ハイパーテキストベースの文書では、要求されたウェブページを作成するために使用されるテキストやほとんど全てのオブジェクトは、ウェブページの最初のHTMLダウンロードには含まれず、最初のHTMLページがロードされた後に読み込まれる。文書及びオブジェクトは、前述のFTPプロトコルを使用してロードされるのではなく、代わりにHTTPまたは「ハイパーテキスト転送プロトコル」と呼ばれるより動的なプロセスを利用する。HTTPは、プレゼンテーションレイヤ6で動作し、ウェブブラウザなどのレイヤ7アプリケーションにサービスを提供するアプリケーション及びデータフォーマットを表す。
レイヤ4のトランスポートレイヤでは、HTTPはWebアクセスのための独自の予約ポート#、特にポート#80で動作する。ポート#80は、FTPポート21などのファイアウォールやセキュリティソフトウェアによって承認され、ブロックされないことが多いため、ポート80は、閲覧許可されていない文書やアクセスを取得したい、またはサーバ上の悪意のある攻撃により、ハッカーや敵対者からの無意味なFTP要求やHTTP要求をサービスするように強制することによって通常の機能のサポートを妨げる「サービス妨害」攻撃を開始しようとするハッカーにとって好都合なターゲットである。
HTTPを介してウェブページをダウンロードする手順は、図35Aに示されており、IPアドレス「NB」及びアドホックポート#9999を有するノートブック35が、IPアドレス「S1」においてIPパケット590を使用して、IPアドレス「S1」のウェブサーバ21AからのHTML文書を要求する。ウェブページを要求するために、IPパケット590はウェブサーバのポート#80を指定する。これに応答して、次にウェブサーバ21Aは、パケット591のアドレスとポート番号とを交換することによって、すなわち発信元がIPアドレス9999のポート#80になり、宛先がIPアドレス「NB」のポート#9999になるようにすることによって、HTMLペイロードを付加し、IPパケット591を返送する。HTMLデータは、高いペイロードの信頼性を保証するためにTCPベースの接続を使用して伝送される。
HTMLコードを受信した後、ノートブックのブラウザはHTMLファイルを読み取り、IP呼び出しを1つずつ特定してウェブページにコンテンツをダウンロードする。図示の例では、グラフィックスの最初の呼び出しは、最初のダウンロードと同じウェブサーバ21Aからコンテンツをダウンロードすることであるので、ノートブック35は宛先IPアドレス「S1」及びポート#80にIPパケット592を再び準備する。ノートブックのポートが動的に割り当てられるので、IPパケット592の発信元はアドホックポート#10001に変更されるが、IPアドレスは「NB」から変化しない。応答ウェブサーバ21Aは、IPパケット593のペイロードにJPEGをカプセル化し、発信元アドレスと宛先アドレスとを交換して、発信元がIPアドレス「S1」のポート#80であり、宛先がIPアドレス「NB」のポート10001となるようにする。ノートブック内のブラウザは、IPパケット593を受信すると、ペイロードをアンラップし、プレゼンテーションレイヤ6を使用してグラフィックスフォーマットをブラウザ互換フォーマットに変換し、次いで、ブラウザページ、すなわちレイヤ7アプリケーションに画像をサイズ決定してインストールする。
図示されているように、HTMLページにおける次のオブジェクトダウンロード要求は、ウェブサーバS1からではなく、全く異なるサーバ、具体的にはIPアドレス「S5」を有するメディアサーバ511からである。従って、ノートブック35内のウェブブラウザは、宛先ポート番号「80」への別のHTTP要求としてIPパケット594を準備するが、今回は宛先がIPアドレス「S5」である。発信元IPアドレスが「S1」のままであるとき、動的ポート割り当てでは、発信元ポート#が再び変更され、今回はポート#10020に変更される。それに応答して、メディアサーバ511は、そのIPアドレス「S5」及びポートアドレス80を有する発信元からのIPパケット595を、ノートブックの最新のIPアドレス「NB」及びポート#10030にして準備する。IPパケット595にカプセル化された添付されたペイロードは、MPEGを含む。パケットが受信されると、プレゼンテーションレイヤ6は、ファイルを準備してアプリケーションレイヤ7に供給し、レイヤ7では、ブラウザアプリケーションがそれらをインストールし、HTMLコードの読み取りとウェブページの作成を完了するまで継続する。
従って、HTMLを使用すると、ウェブページのコンテンツは、FTPを使用して送信されるファイルのように単一のダウンロードから構築されるのではなく、それぞれが特定のコンテンツを配信する異なるサーバへの呼び出しを連続して使用して構築される。この概念は図35Bに図解されており、HTML生成ページ591、テキスト及びJPEG593がウェブサーバ「S1」のポート番号80からダウンロードされ、MPEGビデオ595がメディアサーバ511のポート番号80からダウンロードされ、PNG写真596及びJPEG597は、ファイルサーバ27のポート80から入ってくる。このようにして、複数の発信元からウェブページが構築される。種々のテキスト、グラフィック、及びオーディオ・ビデオ要素を要求するHTMLコードの他に、文書の作成を担当する中心のコマンドまたはコントロールは存在しない。例えば、1つのサーバがトラヒック輻輳からのそれ自身のローディングのために応答が遅い場合、ウェブページ591の描画はハングアップし、完了する前にしばらく停止することがある。この中断は、例えばヤフー(登録商標)のようなウェブページのホストとは無縁かもしれないが、代わりにHTMLウェブページによって呼び出されたリンクされたサーバ(CNN(登録商標)やFOXニュース(登録商標)のサーバなど)から引き起こされる可能性がある。
HTMLウェブページのリスクの1つは、ハッカーやマルウェアがユーザに関する情報を収集する機会であり、特にユーザの自宅住所、クレジットカード番号、PIN、社会保障番号などを誠実に必要とする有効な倫理的ビジネスの体裁で個人情報のフィッシングを行うサイバーパイレーツサイトにリダイレクトする場合などである。
[ワールドワイドウェブ]
普遍的ではないにしても、非常に普及しているHTMLの1つは、ワールドワイドウェブ上で利用可能な文書、特に「www」で始まるアドレスをブラウザに入力することによって達成されるウェブアドレスに関するウェブブラウジングである。作業中に、ユーザがブラウザのアドレスバーへウェブアドレス(「ユニフォーム・リソース・ロケータ」またはURLとも呼ばれる)を入力、例えば、「http://www.yahoo.com」を入力すると、ブラウザはその直近にあるルータに問い合わせを送信して、ターゲットとなるIPアドレスを決定する。以前に図3に示したこのプロセスは、ノートブック60がIPパケットを、ポート#53要求でルータ62Aに送信することを含み、ポート番号はDNSルックアップに対するサービス要求を特定する。ルータ62AはDNS要求をドメインネームサーバルータ62Aに転送し、ドメインネームサーバルータ62Aはターゲットドメインの数値IPアドレスを供給する。例えば、サーバ66Aが数字のIPアドレス「S11」を有するヤフー(登録商標)のウェブサーバである場合、DNSサーバ71はそのIPアドレスをルータ62Aに返し、IPアドレス「S11」及びウェブページ宛先ポート#80を有するIPパケットが構築される。
多くの文書はワールドワイドウェブ上でアクセス可能であるが、全てのインターネット文書がウェブ上に投稿されるわけではないことに留意されたい。たとえば、パブリックネットワーク経由でアクセス可能なウェブページの中には、wwwプレフィックスを使用しないものがあり、これは主にハッカーがそれらを検索しないようにするためである。この他のウェブサーバには、ファイアウォールの背後に隠れているプライベートネットワークまたはイントラネットを利用しているものがあり、ファイアウォールの背後または「仮想プライベートネットワーク」すなわちVPNと呼ばれる暗号化されたパイプやトンネルを使用してアクセスできる。ワールドワイドウェブのユニークな特性を理解するためには、その利点と強み、欠点と脆弱性の両方に責任を担っている、開発と進化を理解することが重要である。
歴史的には、ワールドワイドウェブとブラウザの発明に先立ち、インターネットを介した通信は、主にFTPプロトコルを使用した電子メールとファイル転送に依存していた。その後1989年に、Tim Berners-Leeは、クライアントとサーバの間の最初の正常なインターネット通信のデモンストレーションを「ハイパーテキスト転送プロトコル」すなわちHTTPを使って行った。その後、イリノイ大学アーバナ・シャンペーン校のスーパーコンピューティングアプリケーションセンターのMarc Andreesenは先駆的な直感的なインターフェース、複数のインターネットプロトコルのサポート、マッキントッシュ(登録商標)及びマイクロソフト・ウィンドウズ(登録商標)環境との互換性で有名な最初のフル機能のブラウザであるモザイク(Mosaic)を開発し、これはFTP、NNTP、gopherなどの以前のプロトコルの下位互換性をサポートし、インストールが簡単で、堅牢な安定性と良好な信頼性を有していた。重要な意味として挙げられるのは、モザイクは、別のウィンドウでグラフィックスを開くのではなく、1ページに画像とテキストを一緒に表示する最初のブラウザであった。
モザイクは、ネットスケープ・ナビゲータ(登録商標)として商業化され、インターネット革命とパーソナル・ビジネス・アプリケーション用のウェブサイトの普及促進に貢献した。今日では無数のブラウザが存在するが、今日最も広く使われているブラウザは、Mozilla(登録商標)とネットスケープの直系の子孫であるFirefox(登録商標)の他、Microsoft Explorer(登録商標)、Apple Safari(登録商標)、Google Chrome(登録商標)等である。ウェブ検索エンジンである別のクラスのアプリケーションが同時に登場し、ワールドワイドウェブ上の文書やコンテンツの検索を容易化した。今日Google(登録商標)やYahoo(登録商標)などの検索エンジンが市場を支配している。
ビジネスがインターネットに集まるにつれて、Amazon(登録商標)、eBay(登録商標)、Barnes&Noble(登録商標)、Best Buy(登録商標)、Alibaba(登録商標)などの一般的なサイトでウェブベースの販売と購入が行われ、電子商取引が生まれた。まもなく、市場の断片化により、一般的な電子商取引ウェブサイトを提供するのではなく、特定のタイプの製品またはサービスに特化したベンダーが続いた。たとえば、Priceline(登録商標)、Expedia(登録商標)、Orbitz(登録商標)、Sabre(登録商標)などの旅行や輸送の比較ショッピングに基づく業者は、航空会社の専用eマーケットプレイスとともに急速に成長した。ユーザが音楽、ビデオ、電子書籍、ゲーム、ソフトウェアからなる「コンテンツ」をダウンロードしたい場合、AppleのiTunes(登録商標)やAppStore(登録商標)、Walmart(登録商標)、Amazon MP3(登録商標)、Google Play(登録商標)、Sony Unlimited Music(登録商標)、Kindle Fire(登録商標)、Windows Store(登録商標)などのプロバイダがオンラインサービスを提供する。iTunes(登録商標)、Google Play(登録商標)、Netfli(登録商標)、Hulu Plus(登録商標)、Amazon Prime(登録商標)などのオーディオ/ビデオストリーミングサービスと、iHeartラジオやComcast Xfinity(登録商標)などやケーブルプロバイダは、特に世界中の航空機、バス、リムジン、ターミナルやカフェで提供されているWiFiサービスの増加とともにますます人気が高まっている。
プライバシーとセキュリティに対する懸念にもかかわらず、今日の子供や若い成人は公のウェブサイトに膨大な個人情報を掲載している。「ソーシャルメディア」と呼ばれる業種は、個人が個人的な意見や経験を時系列に投稿した文書の便利な発信、更新、編集するウェブログすなわち「ブログ」をサポートするウェブサイトから始まった。その後、YouTube(登録商標)が、能力を有するアーティスト志望の人達がホームメイドの動画を投稿して配信することを可能にした。Facebook(登録商標)はこのトレンドをさらに発展させ、このサービスでは、ブログやビデオの投稿をインタラクティブなフォーマットで時系列に結合し、各人の「ホームページ」の視聴者は、読んだり見たりしたことが「お気に入り」であるときを含めてコメントを投稿する。Facebook(登録商標)は連絡先管理、Facebook(登録商標)への追加する友だちの連絡先リストの検索機能を拡張し、アカウントオーナーのホームページへアクセスを要求するか、無視することで誰かを「友人」にすることができるようにした。人々の個人的な連絡先管理機能を使用することによって、Facebook(登録商標)のユーザの数は指数関数的に増加し、古い連絡先情報をもつ人々がソーシャルメディア上でお互いを再発見できるようになった。その後、同様のソーシャルメディア手法が、デート、マッチングサービスや性的サービス(合法または違法)の利用のために、及び連絡先サービス業界のサービスを利用する(例えばLinkedIn(登録商標)を使用する)専門家の世界に適用された。
インターネットとOSIパケット交換ネットワークと同じオープンソースの考え方に基づいて、ワールドワイドウェブには中央の命令や制御がないため、従って規制されていない状態にあるため、政府や規制当局がコンテンツを管理、制限、検閲することは困難である。さらに、個人情報を公開することで、犯罪者が公開情報を収穫するターゲットを「調査」して、パスワードを推定したり、行動を監視したり、GPSや取引情報を使って捜し出すことさえ容易になった。場合によっては、例えばCraig's List(商標)と呼ばれるオープンソースの連絡先及び紹介サービスで、性犯罪者と殺人犯が、その犯罪の犠牲者を集めるために自分達の素性と意図を偽装することも起きた。犯罪者やハッカーがワールドワイドウェブやソーシャルメディアを使ってターゲットを監視することの他に、最近のニュースでは、政府が、そうすべき理由や令状もなく市民の電子メール、音声通話、ウェブサイト、ブログ、さらには日常の動きまで追跡し、監視する可能性が示されている。そのような侵入を正当化するために使用される一つの主張は、公共の場所や公共ネットワーク上で自由に配布される情報は「公正なゲーム」であり、人気映画「マイノリティ・リポート」の「将来の犯罪」と同様に犯罪やテロが起こる前に機先を制して予防する必要があることが、そのような積極的な監視やスパイの正当な理由であるというものである。
個人情報の盗難やそのような望ましくない政府の侵入に対する反応として、消費者は、Snapchat(登録商標)や、あなたが知っていて信用している相手として相手方の確認または「認証」を要求するセキュリティとプライバシーを強化した電話サービスのようなサイトに移行しつつある。しかし、今述べたような「信頼ゾーン」は、パケット交換通信ネットワークにおいて利用可能なセキュリティ方式に依存する。この出願の冒頭部の内容から明らかなように、これらのネットワーク、通信プロトコル、ウェブサイト、及びデータストレージは安全ではなく、仮に安全であるならば今日の報道でサイバー犯罪の事例が報告されることはない。
[Eメール(電子メール)アプリケーション]
パケット交換ネットワーク上で最も一般的で最も古い用途の1つは、電子メールまたは「Eメール」である。このプロセスが図36に示されており、数値IPアドレス「NB」及び動的ポート割り当てを有するノートブック35は電子メールIPパケット601を電子メールサーバ600にアップロードする。カプセル化されたSMTP電子メールペイロードに加えて、TCPベースの電子メールIPパケット601は、その発信元IPアドレス「NB」及びそのアドホックポート#10500とともに、その宛先IPアドレス「S9」及びその宛先ポート#21または代替的には宛先ポート#465を有する。ポート#21は、シンプルメール転送プロトコルすなわちSMTPを使用する電子メールサービスを表しているが、ポート#465は、SSL技術に基づく「安全な」バージョンのSMTPSを表す。しかし、最近のニュースでは、SSLが壊れやすく、ハッカーに対する完全に影響を受けないものでないことが判明したとの報告がある。
電子メールサーバ600は、電子メールIPパケット601を受信したことに応答して、ポート#21を使用するか、またはSSLポート#46を使用して発信元IPアドレス「S9」のメールサーバ600からポート10500で宛先IPアドレス「NB」に送信されたSMTP確認を含むIPパケット602を戻すことによってその受信を確認する。一方、電子メールサーバ600は同時に、発信元IPアドレス「S9」及びIMAPポート#220から宛先IPアドレス「DT」及びアドホックポート#12000のデスクトップ36に、IPパケット605のIMAPメッセージとして電子メールをプッシュする。電子メールメッセージを受信すると、デスクトップ36は、ポート12000の発信元IPアドレス「DT」から宛先IPアドレス「S9」及びポート220へIPパケット604を用いて電子メールサーバ600に対するIMAPメッセージを確認する。従って電子メール配信は、ノートブック35、電子メールサーバ600、及びデスクトップ36の受信者からの送信者を含む三者間取引を含む。通信では、送信者はSMTPプロトコルを使用し、メッセージ受信者はIMAPプロトコルを使用してメッセージを確認する。IMAP交換により、サーバとデスクトップのデータベースが更新され、ファイルレコードが一致することが保証される。電子メールサーバは仲介者として機能するので、ノートブックからサーバへのIPパケット601またはデスクトップへのIPパケット605をインターセプトすること、または電子メールサーバ600に格納されたファイル自体をハッキングすることのいずれかによって、コミュニケをインターセプトする機会が存在する。あるいは、メールの配信にはファイルサーバの同期を行わずに、「プレーン・オールド・ポストオフィス」すなわちPOP3アプリケーションを使用することもできる。
[その他のレイヤ7アプリケーション]
ファイル管理、Webブラウザ、DNSサーバ、電子メール機能の他に、通信及びブロードキャストアプリケーションとともに、Telnet、ネットワーク管理、周辺機器ドライバ、バックアップユーティリティ、セキュリティプログラムを使用したターミナルエミュレーションなど、数多くのアプリケーションが存在する。例えばバックアップアプリケーションとしては、TCPベースの「ネットワークファイルシステム」すなわちNFS(現在は4番目のインカーネーション)とともに、Android iOS(登録商標)、Apple Time Machine(登録商標)、Apple iCloud(登録商標)、Carbonite(登録商標)、Barracuda(登録商標)、Dropbox(登録商標)、Googleドライブ(登録商標)、Microsoft One Drive(登録商標)、Box(登録商標)のカスタムバージョンを含む商用バックアップソフトウェア等が挙げられる。動作中、クラウドストレージは、電子メールサーバと同様の方法で、ネットワークに接続されたドライブにデータを保存する。データは、ファイル所有者によって、または権限が許可されている場合は第三者によって取り出される。電子メールのトランザクションと同様に、送信中及びサーバに格納されたときにデータをハッキングする機会が数多く存在する。
通信及び放送アプリケーションとしては、「セッション開始プロトコル」すなわちSIP、音声やIP電話(VoIP)、「インターネットリレーチャット」すなわちIRCなどマルチメディア通信セッションを制御するために広く使用されるシグナリングプロトコル、「ネットワークニュース転送プロトコル」(NNTP)の他にテキストの形式でメッセージを転送するためのアプリケーション層プロトコル、及びニュースサーバ間でニュース記事を転送し、記事を投稿するために使用されるアプリケーションプロトコル等が挙げられる。Skype(登録商標)、Line(登録商標)、KakaoTalk(登録商標)、Viper(登録商標)、WhatsApp(登録商標)などのOTTキャリアは、カスタマイズされたアプリケーションを利用してVoIPを使用してインターネット上でテキスト、画像、音声を配信する。
その他のアプリケーションには、プリンタ、スキャナ、カメラなどのカスタマイズされた周辺機器ドライバも含まれる。ネットワークアプリケーションとしては、「シンプルネットワーク管理プロトコル」すなわちSNMPと、ルータ、スイッチ、モデム・アレイ、及びサーバを含むIPネットワーク上のデバイスを管理するためのインターネット標準プロトコル、自律したインターネットシステム間でルーティング及び到達可能性の情報を交換するための標準化された外部ゲートウェイとしての「境界ゲートウェイプロトコル」すなわちBGPアプリケーション、及びプライベートネットワーク及びイントラネットで利用可能なサービス、ユーザ、システム、ネットワーク、及びアプリケーションに関する情報の共有を許可することにより、ディレクトリを管理するための「軽量ディレクトリアクセスプロトコル」及びLDAP等が挙げられる。LDAP接続アプリケーションの1つの機能は、1つのログインが1つのイントラネットを介して接続された複数のデバイスにアクセス可能なことである。その他のネットワークアプリケーションには、CMIPすなわち「共通管理情報プロトコル」等がある。
もう1つの重要なネットワークアプリケーションは、DHCPすなわち「動的ホスト構成プロトコル」である。DHCPは、ホームネットワーク及びWiFiルータから企業ネットワーク、キャンパスネットワーク、及び地域ISPすなわちインターネットサービスプロバイダに及ぶネットワークサーバからIPアドレスを要求するために使用される。DHCPはIPv4とIPv6の両方に使用される。
サービスの質
ネットワークの性能を考えるとき、いくつかの要因が考えられ、すなわち、
・データレート、すなわち帯域幅、
・サービスの質、
・ネットワークとデータのセキュリティ、
・ユーザのプライバシー
が考えられる。
上記の考慮事項のうち、データレートは数百万バイト/秒、すなわちMbpsで容易に定量化される。一方、サービス品質またはQoSには、レイテンシー(待ち時間)、音質、ネットワーク安定性、断続的な動作または頻繁なサービス中断、同期や接続の失敗、信号強度の低下、アプリケーションの停止、緊急時の機能ネットワークの冗長性などを含むいくつかの要因を含まれる。
プログラム、ファイル、及びセキュリティ関連の検証では、データの正確さが重要な要素である。どの要素が重要かは、パケット交換ネットワークを介して運ばれるペイロードの性質によって決まる。対照的に、リアルタイムアプリケーションを含む音声及びビデオの場合、パケット配信時間に影響を及ぼす要因が重要である。品質要因と、それらがビデオ、音声、データ、テキストなどのさまざまなアプリケーションにどのように影響するかは、図37に示す表に定性的に示されている。一貫した高データレートIPパケット波形610Aによって代表される良好なネットワーク状態は、最小時間遅延、明確に強い信号強度、信号歪み、安定動作、及びパケット伝送損失がないものである。短期間の中断を伴うより低いデータレートのパケット波形610Bによって表される断続的なネットワークは、ビデオ機能に最も大きな影響を与え、不快なほど遅いビデオダウンロードを引き起こし、ビデオストリーミングを受け入れ難くする。IPパケット波形610Cによって例示される規則的な短時間の中断を伴いより低い実効データスループット速度を引き起こす輻輳したネットワークは、断続的な動き、ファジーな画像、及び不適切な着色及び輝度を伴ってビデオ映像をひどく劣化させるだけでなく、エコー、さらには会話やサウンドトラックから全体の削除さえ引き起こす。しかし、輻輳したネットワークでは、再ブロードキャストの要求を繰り返すことによってTCPを使用してデータが供給され得る。
IPパケット波形610Dによって示されるように、不安定なネットワークは、予測できない期間の多数のデータ停止を伴う低いデータスループット率を示す。不安定なネットワークはまた、波形610Dにおいて濃い影の付いたパケットによって表される破損したIPパッケージを含み、これは、TCPベースのトランスポートでは再送が必要であり、UDPトランスポートでは単に破損したデータや不適切なデータとして破棄される。ネットワークの一部のレベルでは電子メールも断続的になり、IMAPの同期は失敗する。軽量のデータフォーマットのため、ほとんどのSMS及びテキストメッセージは、ネットワークの輻輳が深刻な場合でも配信遅延が発生するものの転送されるが、添付情報はダウンロードされない。不安定なネットワークでは、全てのアプリケーションが失敗し、配信が予想されるファイルを待機するコンピュータまたは携帯電話の通常の動作フリーズすることさえある。このような場合、ビデオはフリーズし、音声が途切れて聞こえなくなり、数分以内に10回以上もVoIP接続が繰り返し落ち、場合によっては完全に接続できなくなる。同様に、電子メールは、コンピュータのアイコンがいつまでも回転し続ける形で、ストールまたはフリーズする。プログレスバーは完全に停止する。テキストメッセージもバウンスし、「配信不能」となる。
重要なサーバやスーパーPOPの停電、過負荷の通話量、巨大なデータファイルやUHDムービーの送信、一部のサーバやネットワークに対する重大なサービス拒否攻撃など、多くの要因がネットワークの不安定化につながる可能性があり、ネットワークのQoSを追跡する重要な要因には、そのパケット廃棄率とパケットラテンシー(待ち時間)がある。廃棄パケットは、IPパケットが配信されず、永久的なものとして「タイムアウト」した場合や、ルータまたはサーバがIPパケットのヘッダーのチェックサムエラーを検出した場合に発生する。UDPを使用するパケットの場合、パケットは失われ、レイヤ7アプリケーションは、何かが失われたことを知るべく十分にスマートでなければならない。TCPがレイヤ4トランスポートに使用される場合、パケットは再送信のために要求され、潜在的にすでにオーバーロードされている可能性のあるネットワークへのロードをさらに追加する。
QoS、伝搬遅延を決定する他の要因は、ノード間でのIPパケットの遅延として、または発信元から宛先への一方向に、あるいは発信元から宛先へ及び宛先から発信元への往復遅延として、いくつかの方法で定量的に測定することができる。図38では、UDPとTCPのトランスポートプロトコルを使用したパケット配信に対する伝搬遅延の影響を比較している。インターモーダルネットワーク伝播遅延が増加すると、VoIP会話のような往復通信を実行するために必要な時間が長くなる。UDPトランスポート621の場合、往復遅延は伝搬遅延とともに線形に増加する。長い伝播遅延はより高いビット誤り率と相関するので、失われたUDPパケットの数は増加するが、UDPは破棄されたパケットの再送を要求するので、往復時間は遅延の増加に対して線形のままである。TCPトランスポート620は、パケット配信を確認するために必要なハンドシェイクのために、UDPよりも送信される各パケットについて実質的により長い往復時間を示す。ビット誤り率が低いままであり、ほとんどのパケットが再送を必要としない場合、TCP伝播遅延は、インターモーダル伝播遅延に対して線形に増加するが、より高いレート、すなわちTCP620のラインの傾きで増加する。しかしながら、通信ネットワークが伝搬遅延の増大につれて不安定になると、廃棄されたパケットの再送信のためのプロトコルの必要性のために、ライン622によって示されるTCP転送から生じる往復時間は指数関数的に増加する。したがって、VoIPは、VoIPやビデオストリーミングなどの時間の影響を強く受けるアプリケーションに対しては禁忌である。
全てのパケット通信は統計的であり、同じ伝搬時間を有する2つのパケットがないので、ネットワークの単一方向の待ち時間を推定する最良の方法は、同様のサイズの多数のIPパケットの往復時間を測定し、割って単一方向レイテンシーを推定することによる方法である。100ms未満のレイテンシーは極めて良好であり、200msまでは非常に良いと考えられ、300msまでは許容可能と考えられる。インターネット上で実行されているOTTアプリケーションが容易に遭遇する500msの伝搬遅延に対して、その遅延はユーザにとって不快になり、通常の会話に干渉する。音声通信では、特に、そのような長い伝搬遅延は「悪いもの」として現れ、残響をもたらす可能性があり、「弦をはじいた様な」または金属的なサウンドの音声を作りだし、相手が相手の最後のコメントに応答するのを待っている間に通常の会話を中断し、壊れた理解できない音声を出力することがある。
明確化のために述べると、通信の片方向のレイテンシー(待ち時間)は、レイヤ3ICMPユーティリティ(http://www.speedtest.netの無料ネットワークスピードテストなど)によって実行されるpingテストとは異なるが、これらの相違する理由は、一つにはICMPパケットは実際のIPパケットに比べて一般的に軽量であるため、pingテストではTCPの「再送要求」機能を使用しないため、及びインターネット上パブリックネットワーク上でpingテストのルートが実際のパケットルートと一致する保証はないため、である。要するに、pingが長い遅延を経験する場合、ネットワークにまたはデバイスとネットワークとの間のいずれかのリンク(例えばWiFiルータまたはラストマイル)に何らかの問題があるのだが、良好なpingの結果がでても、それ自体では、実際のパケットの伝播遅延の小ささを保証することはできない。
ネットワークセキュリティを向上させるために、ハッキング、スニッフィング、またはスパイ行為を防ぐために、暗号化と検証のメソッドが採用されることが多い。しかし、重い暗号化と複数の鍵の暗号化プロトコルは、会話相手のIDを絶えず再確認し、追加の遅延を作り出し、有効なネットワーク待ち時間を増加させ、セキュリティ向上の代価としてQoSを低下させる。
サイバーセキュリティとサイバープライバシー
コミュニケーションにおける他の2つの主要な考慮すべき事項は、サイバーセキュリティとサイバープライバシーである。関連しているが、2つの問題は多少異なる。ネットワークセキュリティ、コンピュータセキュリティ、セキュリティを確保した通信を含む「サイバーセキュリティ」は、コンピュータまたは通信ネットワーク、ネットワークアクセス可能なリソース、またはネットワークに接続されたデバイスに含まれるデータへの不正アクセス、誤用、変更、または拒否を監視、インターセプト、及び防止するための方法を含む。そのようなデータは、個人情報、バイオメトリックデータ、財務記録、健康記録、私的な通信及び記録、並びに私的な写真画像やビデオ記録を含み得る。ネットワークに接続されたデバイスには、デスクトップ、ファイルサーバ、電子メールサーバ、ウェブサーバ、データベース、個人データストレージ、クラウドストレージ、インターネット接続アプライアンス、ネット接続された車、個人が使用する公的共有デバイス(POSターミナル、ガスポンプ、ATM等)が含まれる。
明らかに、機密情報への不正アクセスを試みるサイバー犯罪者やコンピュータハッカーが犯罪を起こしている。違法に入手したデータに個人的な個人情報が含まれている場合、その攻撃は被害者の個人情報の侵害にもなる。しかし、逆にサイバー犯罪を必要とすることなくプライバシー流出が発生し、実際には阻止できない可能性がある。今日のネットワークに接続された世界では、セキュリティ侵害を必要とせずに、個人情報の不正使用が発生する可能性がある。多くの場合、1つの目的のためにデータを収集する企業は、別の目的のためにデータを使用することに関心のある他のクライアントにデータベースを販売することを選択することがある。マイクロソフト社がHotmail(登録商標)を購入したときですら、潜在的な顧客をスパムすることに関心のある広告主にメールリストを販売したことはよく知られていた。そのような行動がサイバープライバシーの侵害とみなされるべきか否かは、依然として意見の問題とされている。
インターネットプライバシー、コンピュータプライバシー、及びプライベートコミュニケーションを含む「サイバープライバシー」は、各人の非公開情報及び個人情報及びその使用(情報の収集、保存、表示または他人との共有を含む)をコントロールする個人の個人的権利または義務を含む。非公開個人情報には、身長、体重、年齢、指紋、血液型、運転免許証番号、パスポート番号、社会保障番号、または名前を知らなくても個人を識別するのに役立つ個人情報などの個人のID情報が含まれる。将来、個人のDNAマップさえも法的記録の問題になる可能性がある。個人ID情報とは別に、いわゆる個人情報とは別の非公開の私的情報には、私たちが購入する服のブランド、頻繁にアクセスするウェブサイト、喫煙や飲酒の習慣の有無、銃の所有者か否か、運転する車の種類、それまでの病歴、家族には特定の病気や病気の病歴があるか否か、どんな種類の人に惹かれているかということさえ含まれる。
この個人情報は、個人の所得、税額、不動産訴訟、犯罪記録、交通違反、ソーシャルメディアサイトに掲載されたあらゆる情報に関連する公的記録と組み合わされて、利害関係者のための強力なデータセットを形成する。人口統計学的、個人的、財政的、生物医学的、行動傾向に関する情報を捕捉し、今日のパターン、傾向及び統計的相関関係のデータを採取する大規模なデータセットの意図的な収集を「ビッグデータ」という。保険会社、ヘルスケア、製薬会社、医療過誤弁護士などの医療業界は全て、ビッグデータとして保存されている個人情報に深い関心を持っている。自動車及び消費材製造企業は同様に、市場戦略及び広告予算の方向を決めるために、そのようなデータベースへのアクセスを望んでいる。最近の選挙では、投票者の意見や回避すべき政治的論争の争点をよりよく理解するために、政治家さえもビッグデータを参考にし始めている。
サイバープライバシーの問題は、今日のビッグデータが個人情報を取得しているか否かではなく、データセットがあなたの氏名を保持しているか否か、またはあなたの氏名が分からなくてもあなたを特定するための十分な個人情報を保持しているか否かではない。例えば、当初、米国政府は、民間医療アカウントが開設されると、医療費負担適正化法(ACA)に基づいて使用されたhealthcare.govウェブサイトによって収集された個人情報が破壊されると述べた。そして、最近発覚したこととして、米国政府のためのデータ収集を促進する第三者法人が、収集したデータを保持し使用する権利をもつという政府との契約に署名していたことが明らかになり、米国政府に預けられた非公開個人情報も実際に非公開ではないことが分かった。
最後に、同様の技術的手法を用いて政府と犯罪組織によって監視が行われていることを述べなければならない。犯罪者がそのようなデータを収集する法的権利を持っていないことは明らかであるが、権限のない政府の監視のケースは、国によって大幅に変わる。例えば米国のNSAは、アップル、グーグル、マイクロソフトなどにクラウドやデータベースへのアクセスを提供するように繰り返し圧力をかけてきた。政府関係者でさえ、会話とコミュニケが盗聴され、傍受されている。マイクロソフトの一部門であるSkype(登録商標)が発信者のコンテンツを監視するか否か尋ねられたとき、Skype(登録商標)のCIOは唐突に「ノーコメント」と答えた。
[サイバー犯罪とサイバー監視の方法]
サイバーセキュリティの関連に焦点を当てると、デバイス、ネットワーク、コンピュータデータへの不正アクセスを得るための多数の手段が存在する。一例として、図39は、サイバー犯罪を実行し、セキュリティを確保したネットワークに不正な侵入をするために使用されるさまざまなマルウェアとハッカーの技術を示している。
例えば、インターネットに接続されたタブレット33を使用する個人は、ビジネスオフィスの電話9に電話をかけたり、テレビ36にメッセージを送信したり、電話6で回線交換POTSネットワークを使用している国の友人に電話をかけたり、ウェブストレージ20からファイルをダウンロードしたり、電子メールサーバ21Aを介して電子メールを送信することができる。全てのアプリケーションがインターネットとグローバルな相互接続性を有する通常のアプリケーションを表しているが、ネットワーク全体を通じて監視、サイバー犯罪、詐欺、個人情報の盗難の機会が数多く存在する。
例えば、セルラー無線アンテナ18及びLTE基地局17を介して、または短距離無線アンテナ26及び公衆WiFi基地局100を介してネットワークに接続するタブレット33の場合には、不正侵入者は無線リンクを監視することができる。同様に、LTEコール28は、傍受用無線受信機またはスニファ632によって監視または「盗聴」することができる。同じスニファ632は、WiFi通信29、及びケーブルCMTS101とケーブルモデム103との間のケーブル105上の受信端をモニタするように調整することができる。
一部の例では、LTEコールが、サイバーパイレーツ偽タワー638によって傍受され、タブレット38とセルラータワー18との間に迂回通信経路639を確立することもできる。パケット交換ネットワークを介してルータ27、サーバ21A及びサーバ21B、及びクラウドストレージ20への送信を含む通信は、中間攻撃630においても他人による攻撃を受ける。盗聴器637は、PSTNゲートウェイ3から電話機6へのPOTS回線上のコール、及びPBXサーバ8からオフィス電話機9への企業PBX回線上のコールを傍受することができる。
一連のセキュリティ違反を行うことによって、スパイウェア631は、タブレット33、ルータ27、PSTNブリッジ3、クラウドストレージ20、ケーブルCMTS101、またはデスクトップ36にインストールできる。トロイの木馬634は、タブレット33またはデスクトップ36にインストールされ、パスワードをフィッシングする可能性がある。ワーム636も、特にコンピュータがアクティブX機能を有効にしたMicrosoftのオペレーティングシステムを実行している場合に、デスクトップ36を攻撃するために使用され得る。最後に、サービス拒否攻撃を開始するために、ウイルス633は、番号21A、21B、21Cのサーバ、デスクトップ36、タブレット33など、ネットワークに接続された任意の数のデバイスを攻撃することができる。
図40では、通信ネットワーク及びインフラストラクチャのどの部分に対して、各形態のマルウェアが動作するかを簡略化して表示したものが図示されている。サーバ21A、ファイバリンク23及びサーバ21Bが含まれた図示されたクラウド22において、サイバー攻撃は、ウイルス633、中間攻撃630、政府監視640、及びサービス拒否攻撃641を含み得る。通信ネットワークのラストマイルは、さらに広範はマルウェアやサイバー攻撃の機会を提供し、ローカルの電話会社/ネットワーク、ラストリンク、及びデバイスの3つのセクションに分かれている。図示されているローカルの電話/ネットワークは、高速ファイバ24、ルータ27、ケーブルCMTS101、ケーブル/ファイバ105、ケーブルモデム103、WiFiアンテナ26、及びLTE無線タワー25を含む。ネットワーク無線スニファ632のこの部分では、スパイウェア631、ウイルス633、及び人間による中間攻撃630が全て可能である。
ラストリンクのデバイスへのローカル接続では、ネットワーク接続は、スパイウェア631、無線スニファ632、盗聴637、及び偽タワー638の影響を受ける有線104リンク、WiFiリンク29、及びLTE/無線リンク28を含む。例えば、タブレット33、ノートブック35、デスクトップ36を含み、加えてスマートフォン、スマートテレビ、POS端末なども含むことができるデバイス本体は、スパイウェア631、トロイの木馬634、ウイルス633、及びワーム636を含む多種の攻撃の対象となる。
このような監視方法やスパイ装置は、市販されておりオンライン市場で容易に入手できる。図41Aは、イーサネット(登録商標)ローカルエリアネットワーク上のトラヒックを監視するために使用されるデバイス650と、WiFiデータをモニタするための同じ機能を提供するデバイス651との2つのデバイスを示す。セルラー通信を監視するために使用される2つの市販の装置652及び653が図41Bに示されている。図39のネットワークグラフィックでは、光ファイバクラウド接続23のスニッフィング632が脅威として特定されていないが、研究中に、光通信のための非侵襲的なデータスニファ、すなわちファイバを切断する必要ないか、または一時的にであっても正常な動作が損なわれずに使用できるスニファが現在存在していことが明らかとなった。図41Cに示すように、装置655は、光ファイバ656の急な湾曲部での光漏れを捕捉することによって光ファイバ通信スニッフィングを行う。保護外装が予め取り外されている場合には、光ファイバ656をデバイス655のクランプに挿入すると、ファイバ656が、小さい半径のUターン部で押し込まれ、そこで光657が光センサ659に漏れて、情報が解析のために電子ケーブル660によってラップトップ661に運ばれる。
ハッキングと監視方法の使用以外にも、携帯電話の会話やインターネット通信を監視するための多種多様な商用スパイウェアが容易に利用可能である。図42に示す表は、トップ10の評価スパイウェアプログラムの機能と、従業員、子供、及び配偶者の情報を有効利用するためにスパイする能力などの広告されている機能を比較している。この機能セットは驚くほど包括的であり、そこには電話、写真、ビデオ、SMS/MMSテキスト、サードパーティのインスタントメッセージング、電子メール、GPSロケーショントラッキング、インターネット利用、アドレス帳、カレンダーイベント、バグ、コントロールアプリ、さらにはリモートコントロール機能等、驚くほど説得力のある数のサイバープライバシーを侵害する方法が含まれている。
実際、サイバー攻撃は頻繁になり、毎日トラッキングされている。図43に示すようなトラッキングサイトの1つは、マウントされた攻撃の場所、期間、種類を含むセキュリティ違反とデジタル攻撃をグローバルマップに表示する。サイバー攻撃を開始するには、一般に次のようないくつかの段階または技術の組み合わせが必要である。すなわち
・IPパケットスニッフィング、
・ポートスキャン(ポート問い合わせ)、
・プロファイリング、
・詐欺、
・パケットハイジャック、
・サイバー感染、
・監視、
・サイバーパイレーツサイト管理
等が必要である。
[IPパケットスニッフィング]
サイバー犯罪者は、無線監視デバイスを使用して、ユーザ、そのトランザクション、及びそのアカウントに関する重要な情報を得ることができる。図44に示すように、IPパケットの内容は、2名のユーザ間のパスのどこでも取得すなわち「スニッフィング」できる。例えば、ユーザ675AがIPパケット670内のファイル(例えば写真またはテキスト)を自分のノートブック35から友人675Bの携帯電話32に送信すると、サイバーパイレーツ630は、送信者の最後のリンク673Aをインターセプトし、送信者のローカルネットワーク672Aをインターセプトし、クラウド671を監視し、受信者のローカル電話会社672Bをインターセプトするか、または受信機の最後のリンク673Bをインターセプトすることのいずれかによって、任意の数の場所でIPパケットを発見することができる。インターセプトされたIPパケット670に含まれる観測可能なデータは、通信で使用されるデバイスのレイヤ2MACアドレス、受信側の送信者のレイヤ3アドレス、すなわちパケットの宛先を含み、UDP、TCPなどのトランスポートプロトコルが使用される。IPパケットには、要求されているサービスのタイプを潜在的に定義している送受信デバイスのレイヤ4ポート番号と、データファイル自体も含まれており、ファイルが暗号化されていない場合には、ファイルに含まれるデータをサイバーパイレーツ630が直接読み取ることも可能となる。
ペイロードが暗号化されていない場合、口座番号、ログインシーケンス、パスワードなどのテキスト情報を読み取ることができ、それが価値あるものである場合、盗まれ、犯罪目的のために悪用されることがある。ペイロードにビデオや絵文字の情報が含まれている場合、コンテンツがどのレイヤ6アプリケーションフォーマットを採用しているかを判断するためにいくつかの追加作業が必要であるが、一度特定されれば、コンテンツを、閲覧、公開、またはおそらく通信相手の一方または両方を脅かすために使用することが可能となり得る。このようなサイバー攻撃は、サイバーパイレーツが個人的に通信相手を知ることはないため、「中間攻撃者」と呼ばれている。
前述したように、クラウド内のIPパケットルーティングは予測不可能なので、雲671を監視することはより困難となり、すなわち監視が困難になる理由は、サイバーパイレーツ630はIPパケットの重要な情報に最初に遭遇したときに補足しなければならず、かつ後続のパケットが同じ経路とスニッフィングされたパケットに従わないことがあるからである。ラストマイルのデータを傍受することは、同じ会話を構成する一連の関連するパケットを観察する確率が高くなるが、その理由は、ローカルルータは通常、少なくともパケットが顧客自身のキャリア外のPOPに到達するまで、所定のルーティングテーブルに従うからである。例えば、コムキャスト社のクライアントは、パケットがコムキャスト社の管理範囲及びカスタマーサービス領域を超えて地理的に移動するまで、完全にコムキャスト社が所有するネットワークを使用して、ルーティングチェーンの上にIPパケットを渡す可能性が高い。
同じ2つのIPアドレス間の連続したパケットが十分に長い間発生した場合、会話全体を細かく再現することができる。例えば、SMSテキストメッセージがラストマイルで同じネットワークを通過する場合、サイバーパイレーツ630は、IPアドレス及びポート#によって、テキストを運ぶ複数のIPパケットが、同じ2つのデバイス、すなわち携帯電話32とノートブック35の間の会話を表すことを特定することができる。従って、アカウント番号とパスワードが異なるメッセージでテキスト化されるか、または不完全に多くのパケットに送信されたとしても、パケット識別子の一貫性により、サイバーパイレーツは会話を再構築してアカウント情報を盗むことができる。アカウント情報を盗めば、オフショア銀行に送金することが可能となり、またはアカウントのパスワードとセキュリティに関する質問を変更することによって、つまり一時的にID盗難を使ってアカウント権限を奪うことさえできる。
ペイロードが暗号化されていても、IPアドレス及びポート番号を含む残りのIPパケット670は暗号化されない。十分なコンピューティングパワーにアクセスできるサイバーパイレーツは、多数のIPパケットを繰り返しスニッフィングした後、暗号のパスワードを破るまで組織的に全ての組み合わせを試みる。鍵が破られると、パケット及び全ての後続のパケットは、サイバーパイレーツ630が解読して使用することが可能となる。「パスワード推測」によるログインパスワードのクラックの確率は、パケットスニッフィングが以下に説明するユーザ及びアカウント「プロファイリング」と組み合わされると大幅に向上する。「中間攻撃者」では、サイバーパイレーツが彼らに直接アクセスできないため、通信デバイスは通常は関与していないことに注意されたい。
[ポートスキャン]
デバイスに侵入するもう1つの方法は、そのIPアドレスを使用して多くのレイヤ4ポートを調べ、全ての要求が応答を受信するかどうかを確認することである。図45に示すように、一旦サイバーパイレーツ680がパケットスニッフィングまたは他の手段からIPアドレス「CP」を有する携帯電話32をターゲットデバイスとして特定すると、サイバーパイレーツ680は、携帯電話32上のポートに対して一連の問い合わせを開始し、セキュリティの確保されていないポートすなわちオープンポート、サービス及び保守ポート、またはアプリケーションバックドアを探す。ハッカーの問い合わせプログラムは全てのポート番号を体系的に循環することができるが、攻撃は通常、pingのためのポート#7、FTPのためのポート#21、telnetターミナルエミュレーションのためのポート#23、シンプルメールのためのポート#25など、悪名高い脆弱なポートに焦点を当てて行われる。図示のように、パケット680A、680B、680C及び680Dを連続的に送信することによって、サイバーパイレーツ660は、この例では要求680Dの発生した携帯電話32からの応答を待つ。応答が送信されるたびに、サイバーパイレーツはターゲットデバイスのオペレーティングシステムに関する詳細を学習する。
ポートスキャンプロセスでは、サイバーパイレーツ630は本物のIDを公開したくないので、メッセージを受信するのに、図中「PA」という記号で記載されている、個人として追跡できない偽装疑似アドレスを使用する。また、サイバー犯罪者は盗まれたコンピュータとアカウントを使用する可能性があるため、他の誰かがターゲットデバイスをハッキングしようとしているように見え、追跡された場合、調査者は彼らではない無罪の人にそれを戻す。
[プロファイリング]
ユーザとアカウントのプロファイリングとは、サイバーパイレーツが、公開されている情報を使用してターゲット、アカウント、及び個人履歴を調べて、パスワードを解読し、アカウントを特定し、資産を判定するプロセスである。ハッカーは、スニッフィングなどの手段を使用してターゲットのIPアドレスを取得すると、トレースルート・ユーティリティを使用してデバイスのアカウントのDNSサーバを見つけることができる。その後、インターネット上の「Who is」機能を利用することにより、アカウント所有者の氏名を見いだすことができる。プロファイリングでは、サイバー犯罪者がインターネット上を検索し、アカウント所有者に関する利用可能な全ての情報を収集する。情報源には、不動産取引、自動車登録、結婚と離婚、租税先取特権、駐車券、交通違反、犯罪記録などの公的記録が含まれる。多くの場合、大学や専門家のウェブサイトには、自宅住所、電子メールアドレス、電話番号、個人の生年月日が含まれている。Facebook、LinkedIn、Twitterなどのソーシャルメディアサイトを調査することで、サイバー犯罪者は重要な詳細情報を収集することができ、このような情報には、家族や友人、ペットの名前、前の自宅の住所、同級生、個人的な大事な出来事、恥ずかしい出来事、家族の秘密、そして個人的な敵を含む写真やビデオのファイルが含まれる。
サイバーパイレーツの次のステップは、このプロファイルを使用して、プロファイルに基づいてユーザのパスワードを「推測」し、ターゲットデバイスと同じ個人の他のアカウントをハッキングすることである。一旦サイバー犯罪者が1つのデバイスのパスワードをクラッキングしてしまえば、人は記憶を容易にするためにパスワードを再利用する傾向があるため、サイバー犯罪者が他のアカウントに侵入する可能性は非常に高い。その時点で、人のIDを盗み、金銭を移動し、警察の捜査の対象にしてしまい、全ての資産を盗んで、その人の生活を本質的に破壊することが可能にもなり得る。例えば、本明細書の冒頭で説明したように、盗まれたアカウントから長いパスワードリストを収集するサイバー犯罪者は、同じパスワードとログイン情報を使用してコンサートやスポーツイベントへのプレミアムチケットを何百万ドルも違法に購入する。
[詐欺師]
サイバーパイレーツが誰かに偽装して、不正なサイバーセキュリティ資格情報を使用して通信やファイルにアクセスした場合、サイバーパイレーツは「詐欺師」として行動している。詐欺師タイプのサイバー攻撃は、サイバー犯罪者が個人アカウントに関する十分な情報またはアクセス権を所有して、被害者のアカウントを奪取し、不当に被害者の代理となって個人に対してメッセージを送信し、彼らがハッキングされたアカウントの所有者がそれを行ったと誤解させる形で発生し得る。最近、例えば、発明者の一人の個人的な友人が、彼女の「LINE」パーソナルメッセンジャーアカウントをハッキングされた。アカウントを引き継いだサイバー犯罪者は、「車の事故があり、緊急融資のための資金が必要だ」という虚偽のメッセージを友人に送った。アカウントがハッキングされていることを知らないので、彼女の友人はリクエストが本当であり、彼女に急いで資金援助を行った。疑われるのを避けるためか、各友人に送られたリクエストは1,000米ドル以下であった。幸運にも、送金する直前に、友人の一人が彼女に電話して送金情報を再確認したことで、詐欺が明らかになった。この電話がかけられなければ、これが詐欺師からのリクエストで、回線のアカウントの所有者がその名義で送金されたことも送金を要求されたことすら知らない状態だったと、誰も知ることはできなかったと思われる。
別の形式の虚偽表示は、デバイスがセキュリティ特権を与えられ、サーバまたは他のネットワーク接続されたデバイスと情報を交換できるようになっており、サイバーパイレーツのデバイスが何らかの手段によって自らを認証されたサーバとして偽装する場合に発生し、犠牲者のデバイスは、サイバーパイレーツサーバへ詐欺サーバとは知らずにファイルや情報を委ねてしまうことになる。この方法は、バックアップクラウドが詐欺師のものであったことを除いて、有名人に通常のようにiCloud(登録商標)を使ってプライベート画像ファイルをバックアップさせるために使用されたと言われている。
詐欺師の別の形態は、人の電話または開いているブラウザに物理的にアクセスしている人が、電子メールを送信や電話への応答を行ったり、そこからさらに他の人のアカウントやデバイスからテキストメッセージを送信したりするなどの詐欺行為を行った場合に発生する。受信側は、既知のデバイスまたはアカウントに接続されているため、そのデバイスまたはアカウントを操作している人物が所有者であることを前提としている。詐欺の内容は、Facebookに恥ずかしいコメントをフレンド投稿するといったいたずら的なもの、または誰かの配偶者が個人的な電話に返答するか、非公開にすべき性質の私的なテキストメッセージをインターセプトするような、より個人情報に関連する性質のものであり得る。この不正アクセスの結果が、嫉妬、離婚、報復的な訴訟につながる可能性がある。オフィスやカフェなどでトイレに行っている間にデバイスを一時的に監督しないままにすると、後の「感染」と題する部分で説明するように、詐欺師が個人情報や企業情報に素早くアクセスしたり、不正な電子メールを送信したり、ファイルを転送したり、マルウェアをデバイスにダウンロードする危険性がある。
詐欺をベースにしたサイバー攻撃は、デバイスが盗難された場合にも重要である。このような場合では、たとえデバイスがログアウトしていても、泥棒はログインコードを破るのに十分な時間を有している。「find my computer」機能、すなわちサイバーパイレーツがデバイスに初めてログオンすると、ネットワーク上の盗難されたデバイスの位置を特定し、コンピュータのファイルを消去する機能は、もはや有効でなくなる。ハイテクに精通した犯罪者は現在、携帯電話やWiFi接続がない場合にのみ、デバイスをアクティブにすれば良いことを知っているからである。このリスクは、パスラインセキュリティが単純な4桁の個人識別番号(PIN)または暗証番号である携帯電話の場合に特に高いものとなる。わずか9999通りの組み合わせしかないので、PINを破るのは時間の問題である。
デバイスを保護するための重要な問題は、詐欺師のアクセスを防止することである。詐欺を防ぐには、一定の間隔でユーザのIDを認証し、必要な情報と特権にアクセスする権限があることを保証するための堅牢な手段が必要である。デバイスセキュリティはチェーン内の最も弱いリンクであることが多い。デバイスのセキュリティが破られるならば、堅牢なネットワークセキュリティの必要性が疑わしいものとなる。
[パケットハイジャック]
パケットハイジャックは、ネットワークを通過するパケットの正常なフローを悪意のあるデバイスを介して迂回させるサイバー攻撃を含む。この例は図46に示されており、ここではIPアドレス「NB」及びアドホックポート#9999を有するノートブック35が、IPアドレス「CP」及びFTPデータポート#20を有する携帯電話(図示せず)にIPパケット670としてファイルを送信している。通常の状況下では、IPパケット670は、ノートブック35からWiFiルータ26への経路を通過し、高速有線接続24によってクラウド内のサーバ22Aに接続されたルータ27に達する。
しかし、ルータ27の完全性がサイバーパイレーツ630からのサイバー攻撃によって損なわれた場合、IPパケット670はIPパケット686Aに書き換えられる(図では、明確化のため、IPアドレスとポート番号のみが示されている簡略化された形式で図示されている)。IPパッケージを経路変更するために、宛先アドレス及びポート番号は、携帯電話のものからサイバーパイレーツ630のデバイスのもの、具体的にはIPアドレス「PA」及びポート#20000に変更される。次いで、サイバーパイレーツ630のデバイスは、IPパケットのペイロードから必要な情報を取得し、場合によってはIPパケットのペイロードの内容を変更する。不正なペイロードは、「感染」というトピックで後に説明するように、任意の数の種類の不正な犯罪を行ったり、情報を収集したり、マルウェアを携帯電話にダウンロードしたりするために使用される可能性がある。
ハイジャックされたパケット、すなわちIPパケット686Bは、ポート#9999からの発信元IPアドレス「NB」を有する元のIPパケット670のようにポート#20の携帯電話IPアドレス「CP」に送信されるように改変され、パケットが有線接続24の代わりに有線接続685B上を移動する点が異なってくる。あるいは、ハイジャックされたIPパケットは、損なわれたルータ27に返され、その後、有線接続24を介してクラウドに送られる。サイバーパイレーツ630は、パケットハイジャックの犯罪の効果を最大限にするためにパケットハイジャック時にそのIDを隠す必要があるため、レイヤ3ICMP機能「traceroute」でさえも通信の真の経路の特定が困難になるように、IPパケットの真のルーティングを隠す。ただし、ハイジャックによりパケットルーティングに著しい遅延が追加された場合、異常な遅延がネットワークオペレータによる調査を促す可能性がある。
[サイバー感染]
サイバー攻撃の最も狡猾なカテゴリの1つは、情報を収集し、詐欺を行い、トラヒックをリダイレクトし、他のデバイスを感染させ、悪化させたり、閉鎖したりするマルウェアを標的デバイスまたはネットワークにインストールする「サイバー感染」すなわちサービス妨害をさせなくする状態を引き起こすことである。サイバー感染は、電子メール、ファイル、ウェブサイト、システム機能拡張、アプリケーションプログラム、またはネットワークを通じて広がる。図42の表に記載されているマルウェアの1つの一般的なクラス「スパイウェア」は、あらゆる種類のトランザクション情報を収集し、それをサイバーパイレーツに渡す。「フィッシング」の場合には、慣れ親しんだログインページのように見えるウェブページやアプリケーションシェルがアカウントのログインや個人情報の入力を求め、得た情報をサイバーパイレーツに転送する。さらに他のマルウェア感染では、ハードウェアを制御することが可能で、例えば前述のパケットハイジャックを実行するようにルータを制御する等を行う。このような場合、サイバーパイレーツは自分の目的のために有益な情報や制御を得ようとする。
ウイルス、ワーム、トロイの木馬等のサイバー感染の別のクラスは、重要なファイルを上書きするか、または無意味な機能を繰り返し実行して、デバイスが通常の作業を行うのを防ぐように設計されている。基本的には、サービスを拒否したり、パフォーマンスを低下させたり、デバイスを完全に停止させたりする。これらの悪意のある感染は、本質的に破壊的であり、有害な目的、競合他社のビジネスにおいて通常の業務を行えなくする目的、または単純に可能であるかどうかを見たいと考えるハッカーの楽しみを動機として使用される。
[監視]
サイバー犯罪を超えた脅威と監視。そのような場合、私立探偵または知人を雇うかまたは強制して、音声の会話、データ交換、及び場所を監視するために、デバイスまたはプログラムをターゲットのパーソナルデバイスにインストールさせる。探偵は対象者がそれを知ることなくターゲットのデバイスに一時的にアクセスしなければならないので、捕まる危険性がより高い。例えば、SIMカードで、電話のネットワークアクセス特権をコピーすることができるが、同時にターゲットのコール及びデータトラヒックを監視するサイバー犯罪者に情報を送信させるものが市販されている。
他の形式の監視には、カジノにあるものと同様に、人の行動や電話を監視する秘密のビデオカメラの使用が含まれる。ビデオ監視により、デバイスのパスワードすなわちPINは、ログインプロセス中にユーザのキーストロークを観察するだけで学習できる。十分なカメラがあれば、最終的にログインプロセスが記録される。疑いを起こさせずにカメラネットワークにアクセスするためには、サイバーパイレーツが建物、店舗、または通りにある既存のカメラ監視システムをハックし、他人のネットワークモニタへのアクセスを介して疑いをもたない犠牲者の行動を監視することができる。ビデオ監視とパケットスニッフィングを組み合わせることで、その後サイバー攻撃を開始するためのさらに包括的なデータセットが得られる。
[サイバーパイレーツによる管理(侵入)]
サイバーパイレーツが情報を得ることのできるもう1つの手段は、ハッキングし、デバイス、サーバ、またはネットワークのシステム管理権限にアクセスすることである。従って、システム管理者のログインをハッキングすることによって、あるユーザのアカウントに無許可でアクセスするのではなく、システムを使用しているユーザに知られずに、重要なアクセスと特権がサイバーパイレーツに利用可能になる。システム管理者はシステムの警察として働くので、その犯罪活動を把握できる者はいない。本質的には、腐敗した管理システムやネットワークでは、警察の取り締まりできる者がいない。
[結論]
インターネット、パケット交換ネットワーク、7層のオープンソースイニシアチブネットワークモデルの普遍的な採用による普遍性と相互運用性は、過去20年にわたり、世界規模の通信が比類のない規模で拡大し、スマートフォンからタブレット、コンピュータ、スマートテレビ、車、さらには家電製品や電球に至るまで幅広く使用されることを可能にした。イーサネット(登録商標)、セルラー、WiFi、及びケーブルテレビの接続の基礎となるインターネットプロトコルすなわちIPの世界的な採用は、統一された通信が得られただけでなく、できる限り多くのデバイスやシステムに侵入しようとするハッカーやサイバー犯罪者の課題を大幅に簡素化した。今日の通信ネットワークを攻撃するために利用可能なソフトウェアとハードウェアの方法が大量にあることを考えると、唯一の防御として単一のセキュリティ方法を用いるのは十分ではない。代わりに、高度なサイバー攻撃からの保護を確実にするために、全てのデバイス、ラストリンク、ローカルの電話/ネットワーク、及びクラウドネットワークを保護する体系的なアプローチが必要である。利用される方法は、QoS、ネットワークレイテンシー、ビデオまたは音質を犠牲にすることなく、本質的なサイバーセキュリティとサイバープライバシーを提供するものでなければならない。暗号化は安全な通信とデータストレージでこの次世代を開発する上で重要な要素であるべきであるが、ネットワークのセキュリティは暗号化の方法論にのみ依存してはならない。
約1世紀半の回線交換電話の後、今日の通信システム及びネットワークは、全てこの10年以内に、イーサネット(登録商標)、WiFi、4G/LTE、及びDOCSIS3データをケーブルと光ファイバ経由で伝送するインターネットプロトコルを使用したパケット交換通信に移行した。音声、テキスト、画像、ビデオ、及びデータを一括する利点は、信頼性の高いIPパケット配信を保証するための冗長パスの使用(つまりインターネットが最初に作られた理由)とともに、比類のないレベルのシステム相互運用性及びグローバルなコネクティビティなど数多くある。しかし、どんなイノベーションでも、新技術が生み出す課題の大きさは、得られるメリットに同程度となることが多い。
既存の通信プロバイダの短所
本開示の背景技術の欄全体にわたって詳述されたように、今日の通信は多くの欠点を有する。AT&T(登録商標)、Verizon(登録商標)、NTT(登録商標)、Vodaphone(登録商標)など世界の主要な長距離通信事業者が所有するカスタムデジタルハードウェアで構成されている今日の最高性能の通信システムは、一般的に優れた音声品質を提供するがコストが高く、そのようなコストには、高価な月額取扱料、接続料金、長距離料金、複雑なデータレートプラン、長距離ローミング料金、及び多数のサービス料が含まれる。これらのネットワークはプライベートであるため、実際のデータセキュリティは一般に知られておらず、セキュリティ侵害、ハッキング、侵入は通常は一般には報告されない。今日のプレスで報道された盗聴とプライバシー侵害の数を考えると、プライベートキャリア通信セキュリティは、プライベートクラウドではないにせよ、少なくともラストマイル接続では疑わしいままである。
「インターネットサービスプロバイダ」すなわちISPは、グローバル・コミュニケーション・チェーンにおいて別のリンクを形成している。本発明の背景に記載されているように、VoIPまたは「ボイスオーバーインターネットプロトコル」を使用してインターネットを介して運ばれる音声は、サービス品質またはQoSの問題を抱えている。そのような問題としては、以下のものが挙げられる。
・パケット交換ネットワークであるインターネットは、適時にIPパケットを配信するように設計されておらず、低遅延で高QoSのリアルタイムアプリケーションをサポートするようには設計されていない。
・IPパケットのルーティングに予期しない経路が発生すると、遅延が絶えず変化し、データエラー率が高いバーストが発生し、予期しないコール切断が起こる。
・IPパケットルーティングは、インターネットサービスプロバイダ(IPS)の裁量で行われ、IPSは、パケットがルーティングされるネットワークを制御し、ネットワークを通過する一般的なトラヒック接続品質の低下を犠牲にして、自己のネットワークの負荷を分散するためのルーティングの調整や、VIPクライアントに対する適切なサービスを行うことがある。
・LINE(登録商標)、KakaoTalk(登録商標)、Viber(登録商標)などのオーバー・ザ・トップすなわちOTTプロバイダはインターネットにフリーライドし、インターネットのヒッチハイカーとして機能し、ネットワークやQoSに影響を与える要因を制御できない。
・適度なデータレートでも妥協のない音声品質の音声を提供できないヘビーウェイトオーディオCODECが使用される。
・TCPトランスポートプロトコルに基づくVoIPでは、ハンドシェーキングやIPパケットの再ブロードキャスト中に引き起こされる遅延のために遅延時間が大きくなり、音声が劣化する問題を生じる。補助無しのUDPトランスポートは、ペイロードの完全性を保証しない。
QoSの問題とは別に、現在のデバイスやネットワークのセキュリティは、グローバル通信の将来のニーズをサポートするにはまったく受け入れられないレベルである。背景技術の欄で詳述され、かつ図40に示されているように、ネットワークセキュリティは、通信するデバイスに対するサイバー攻撃(スパイウェア、トロイの木馬、感染、フィッシングなど)、ラストリンクに対するサイバー攻撃(スパイウェア、IPパケットスニッフィング、盗聴、サイバーパイレーツによる「偽」携帯電話タワーのコールインターセプトを含む)、及びラストマイル接続のローカルネットワークまた電話通信会社部分でのサイバー攻撃(スパイウェア、IPパケットスニッフィング、ウイルスなどの感染、及びサイバーパイレーツの「中間攻撃」が関与)などの大規模な攻撃を受けやすい。クラウド自体は、ウイルスなどの感染による攻撃、中間攻撃を開始するサイバーパイレーツからの攻撃、サービス拒否攻撃、及び権限のない政府監視からの攻撃によって任意のクラウドゲートウェイでセキュリティを破ることによって不正なアクセスを受ける可能性がある。要約すると、今日の通信セキュリティは、サイバー犯罪者によって容易に悪用され、サイバー犯罪やサイバープライバシー侵害に有用な多数の脆弱性によって損なわれるが、そのような脆弱性として以下のものが挙げられる。
・宛先IPアドレス、宛先ポート番号、及び宛先MACアドレスを含むIPパケットの宛先の開示。
・発信元IPアドレス、発信元ポート番号、及び発信元MACアドレスを含む、IPパケットの発信元の開示。
・採用されたレイヤ4トランスポートのタイプ、ポート番号によって要求されたサービスのタイプ、IPパケットのペイロードにカプセル化されたアプリケーションデータの開示。
・暗号化されていないファイルにおける、個人及び機密情報、ログイン情報、アプリケーションパスワード、財務記録、ビデオ、写真などを含む、IPパケットのペイロード
・サイバーパーティーが暗号化されたファイルを壊す機会を繰り返すことを可能にする通信のダイアログ。
・FTP、電子メール、及びウェブページベースの感染を使用して、スパイウェアやフィッシングプログラム、トロイの木馬を含むマルウェアを通信デバイスやルータにインストールする数多くの機会。
図44に示すインターネットプロトコルを使用するパケット交換通信ネットワークの根本的で本質的な弱点の要点を繰り返し述べると、任意の敵対者すなわちサイバーパイレーツがインターセプトしたIPパケット670からは、IPパケットに含まれるデータの作成にどのデバイスが関与していたか、IPパケットがどこから来たのか、IPパケットがどこに送られているか、どのようにデータが転送されているか(すなわちUDPまたはTCPのいずれか)、どのような種類のサービスが要求されているか(すなわちペイロード内にどのような種類のアプリケーションデータが含まれているか)を確認することができる。これに関して、サイバーパイレーツは、会話の「内容の前後関係」を判定し、暗号化を破る機会を高め、パスワードセキュリティを破り、ファイル、データ、及びペイロードコンテンツへの不正アクセスを得ることができる。
[暗号化]
前述のように様々なサイバー攻撃に対して防御するために、現在のネットワーク管理者、ITプロフェッショナル、及びアプリケーションプログラムは、主にただ一つの防衛手段−暗号化に依存している。暗号化とは、それにより「平文」とも呼ばれる認識可能なコンテンツ(可読テキスト、実行可能プログラム、可視ビデオ及び画像、または明瞭な音声)を、無意味な文字の文字列として表示される「暗号文」として知られる代替的ファイルタイプに変換する手段である。
保護されていないファイルを暗号化されたファイルに変換する暗号化プロセスでは、暗号化の変換プロセスの見かけのパターンを明らかにせず、データを同等のテキスト要素に変更するための暗号アルゴリズムと呼ばれる論理アルゴリズムが使用される。暗号化されたファイルは、宛先デバイスによって受信されるまで通信ネットワークまたは媒体を介して送信される。ファイルを受信すると、その後、受信デバイスは、「復号化」として知られるプロセスを使用して元のコンテンツを明らかにするために符号化されたメッセージを復号化する。暗号化と解読の研究は、広く「暗号学」と呼ばれ、数理理論、集合理論、アルゴリズム設計などの数学の要素をコンピュータサイエンスや電気工学と融合させる。
単純な「シングルキー」または「シンメトリックキー」暗号化技術では、ファイルの暗号化と復号化のプロセスでのロック解除のために、両者が前もって知っている単一のキーワードまたはフレーズを使用できる。例えば、第二次世界大戦では、公開された無線チャンネルで通信される潜水艦や海洋船は暗号化されたメッセージを使用していた。当初は、暗号化はシングルキーベースであった。連合国側の暗号学者は、コードパターンを分析することによって、暗号化キーワードまたはパターンを明らかにした後、知られることなく暗号化ファイルを読み取ることができた。暗号化の方法が複雑になるにつれて、手動でコードを破ることは困難になった。
コードは機械的な機械ベースの暗号に進化した。当時、コードを壊す唯一の方法は、暗号化機械を盗み、ファイルを暗号化するものと同じツールを使ってメッセージを解読することであった。その問題は、盗んだことを検知されることなく暗号化機械を盗む方法であった。コード機が盗まれたことが判明した場合、敵は単にコードを変更し、すでに動作中の暗号化機械を更新するだけで済む。この原則は今日でも有効であり、最も効果的なサイバー攻撃は、検知されないサイバー攻撃である。
コンピュータ化と冷戦の到来により、暗号化はより複雑になったが、暗号化コードを解読するために使用されるコンピュータの速度も向上した。セキュリティを確保した通信の開発における各ステップでは、情報を暗号化するための技術とノウハウと、暗号化コードを解読する能力がほぼ足並みを揃えて開発されてきた。暗号化における次の進化の大きなステップは、1970年代の、今日も使用されているデュアルキー暗号化技術の革新である。最もよく知られているデュアルキー暗号化方式の1つは、開発者のRivest、Shamir、Adlemanにちなんで命名されたRSA公開鍵暗号方式である。RSAの公開による認定にもかかわらず、同時代の開発者には同じ原則を独自に考案した者もいた。RSAは、公開されていない2つの大きな素数に基づいて2つの暗号鍵を使用する。この2つの素数を暗号鍵(ここではE鍵と呼ぶ)に変換するために1つのアルゴリズムが使用され、異なる2つの秘密素数を秘密復号鍵(ここではD鍵と呼ぶ)に変換するために異なる数学アルゴリズムが使用される。秘密素数を選択したRSAユーザ(本明細書では「鍵発行者」と呼ぶ)は、ファイルを暗号化しようとする者に典型的には1024bから4096bのアルゴリズムで生成されたE鍵を配布すなわち「公開」する。この鍵は暗号化されていない形式で多くの当事者に配布される可能性があるため、E鍵は「公開鍵」として知られている。
鍵発行者と通信したいと望む当事者は、一般に商用ソフトウェアの形で提供される公的に利用可能なアルゴリズムと共にこの公開E鍵を使用して、特定の鍵発行者に送信されるファイルを暗号化する。暗号化されたファイルを受信すると、鍵発行者は秘密のD鍵を使用してファイルを復号化し、平文に戻す。一般的なデュアルキー方式とRSAアルゴリズムの特有の特徴は、ファイルを暗号化するために使用された公開E鍵を復号化に使用できないことである。鍵発行者が所有する秘密のD鍵だけがファイルの復号化の能力を有する。
ファイル暗号化及び復号化におけるデュアルキー、スプリットキー、またはマルチキー交換の概念は、RSAまたはいずれかのアルゴリズム方法に特に限定されず、通信方法を一連のステップとして方法論的に特定する。図47は、例えばスイッチパケット通信ネットワークを介した通信を実現する際のデュアルキー交換を示す。図示のように、携帯電話32から安全なファイルを受信することを望むノートブック35は、まず、暗号化のためのE鍵690と、何らかのアルゴリズムを用いた復号化のためのD鍵691の2つの鍵を生成する。次に、ノート35は、IPパケット695を運ぶ公衆ネットワーク通信692を使用してE鍵690を携帯電話32に送る。IPパケット695は、暗号化されていない形式で、ノートブック35のMACアドレス、IPソースアドレス「NB」及びポートアドレス#9999とともに、携帯電話32の宛先IPアドレス「CP」、ポート#21、及びトランスポートプロトコルTCP、並びにそのペイロードとしてのE鍵690の暗号化されたコピーを含む。
次に、携帯電話32は、合意された暗号化アルゴリズムまたはソフトウェアパッケージを使用して、暗号アルゴリズム694A及び暗号化E鍵690を使用して平文ファイル697Aを処理して、セキュリティが確保された通信693におけるIPパケット696のペイロードとして運ばれる暗号化ファイルすなわち暗号文698を、携帯電話32からノートブック35に送信する。アルゴリズム694Bは、IPパケット696を受信すると、秘密復号鍵、すなわちD鍵691を用いてファイルを復号する。D鍵691はE鍵690に対応するので、本質的にアルゴリズム694Bは両方の鍵を認識し両鍵を用いて暗号文698を復号化し、暗号化されていない平文697Bに戻す。IPパケット696のペイロードは、暗号化されたファイル、すなわち暗号文698の形で保護されているが、残りのIPパケットは暗号化されず、スニッフィング可能で、サイバーパイレーツにより読み出し可能であり、その部分には、ソースIPアドレス「CP」及びポート#、宛先IPアドレス「NB」及び関連ポート#9999が含まれる。従って、ペイロード自体を開けない場合でも、通信を監視され得る。
[バーチャルプライベートネットワーク(VPN)]
暗号化に依存するもう1つのセキュリティ方法は、「仮想プライベートネットワーク」すなわちVPNのセキュリティ方法である。VPNでは、暗号化されたIPパケットを使用してネットワーク内にトンネルまたはセキュリティを確保したパイプ(セキュアパイプ)が形成される。ペイロードだけを暗号化するのではなく、IPパケット全体が暗号化され、カプセル化されたパケットをあるVPNゲートウェイから別のVPNゲートウェイに送信するミュールすなわちキャリアとして機能する別の暗号化されていないIPパケットにカプセル化される。もともとは、VPNは、遠隔地に分散されたローカルエリアネットワークを接続するために使用され、例えば、ニューヨーク、ロサンゼルス、及び東京のプライベートネットワークを運営する企業が、LANを相互接続して、1つのグローバルプライベートネットワークを共有しているかのように同じ機能を有するものとすることを望んでいる場合に使用されていた。
基本的なVPN概念が図48Aに示されており、ここではサーバ700が、無線のRF接続704及び有線接続701を介して多数のデバイスをサポートする1つのLANの一部として、「仮想プライベートネットワーク」すなわちコンテンツ706及びVPNトンネル705を含むVPNによって第2のサーバ707に接続され、第2のサーバ707はデスクトップ709A〜709Cへの、ノートブック711への、及びWiFi基地局710への無線接続708を有する。これらの比較的低い帯域幅のリンクに加えて、サーバ707はまた、高帯域幅接続712を介してスーパーコンピュータ713に接続する。動作中、発信元IPアドレス「S8」及びポート#500を指定するサーバAからの外部IPパケット714は、宛先IPアドレス「S9」及びポート#500でサーバBに送信される。この外部IPパケット714は、データが通過するためのサーバ700及び707が互いに暗号化されたトンネルをどのように形成するかを記述する。外部パケット714のVPNペイロードはラストマイルIPパケット715を含み、このパケットは、発信元IPアドレス「DT」及び対応するアドホックポート#17001を有するデスクトップ702Bと、発信元IPアドレス「NB」及び対応するアドホックポート#21を有するノートブック711との間の直接通信と、ファイル転送の要求とを提供する。
仮想プライベートネットワークを使用してこの転送を安全に確立するためには、VPNトンネル705が作成され、実際の通信が送信される前にセッションが開始された。企業の用途では、VPNトンネル705はインターネット上でアドホックに運ばれるのではなく、一般に専用のISPまたはキャリアが自社のファイバ及びハードウェアネットワークを所有して運営されている。このキャリアは、多くの場合一定のコストに対して特定の帯域幅を保証するべくVPNサービスを必要とする企業との年間または長期の契約を締結している。理想的には、高速専用リンクは、VPNの性能、QoS、またはセキュリティを妨げる中間すなわち「ラストマイル」接続なしで、サーバ700とサーバ707の両方に直接接続する。
動作中、従来のVPNでは、VPNを作成するすなわち「ログイン」する第1ステップと、セキュリティを確保したパイプまたはトンネル内でデータを転送する第2のステップの2段階プロセスが必要である。トンネリングの概念は、図48Bに階層的に示されており、ここでは通信スタック720及び721によって搬送される外部IPパケットは、レイヤ1からレイヤ4にVPN接続722を形成し、レイヤ5を利用して仮想VPセッション723を作成し、レイヤ6のプレゼンテーション層を利用して暗号化725を容易化し、サーバ700と707との間のゲートウェイ・パイプ705へのVPNゲートウェイを実現する。VPN接続722はインターネットプロトコルを使用してIPパケットを送信するが、VPNの物理レイヤ1及びVPNデータリンクレイヤ2は一般に専用キャリアによってサポートされ、インターネット上での予測不可能なルーティングを使用しない。例えば、デスクトップ702Cと709Aとの間のデバイス間通信706として転送されるアプリケーションレイヤ6データは、あたかもVPNが存在しないかのように通信を確立するために必要な7つのOSIレイヤを全て含むトンネリングデータ726として供給される。
動作中、通信スタック720からの外部IPパケットは、一旦サーバ707に渡されると、パケットの真のメッセージであるカプセル化データ726を開示するために開かれる。このようにして、VPNトンネルが通信の試みに先立って形成され、会話が終了した後に閉じなければならないことを除き、VPNトンネルの作成に使用される詳細とは無関係にエンドツーエンド通信が行われる。VPNトンネルを最初に開かないと、IPパケットの盗聴、ハイジャック、感染などの影響を受けやすいIPパケット715の暗号化されていない送信が発生する。会話が完了した後でVPNを閉じないと、サイバー犯罪者に対し他人のVPNトンネル内で違法行為を隠す機会を与え、インターセプトされた場合、罪のない人に対して刑事罰が科されることになる可能性がある。
VPNは、複数のプライベートローカルエリアネットワークが専用の容量と帯域幅でプライベート接続を使用して相互に接続する一般的な方法であるが、公衆ネットワークとインターネットを介したVPNの使用は両者間の通信に問題がある。VPNの1つの問題は、VPN接続をパケットごとにではなく、使用する前に事前に確立する必要があることである。例えば、パケット交換ネットワークを介して接続されたVoIPコールの例示である図48Cに示すように、携帯電話730が意図された通話受信者に携帯電話737で意図された通話受信者に連絡する前に、まず図に示すように簡略化されたアルゴリズムでのステップ740に従ってVPNセッションを確立しなければならない。このようにして、VPN接続アプリケーションを有する携帯電話730は、任意の利用可能なラストマイルルーティング(この場合は無線通信741AからWiFiベースステーション731へのルーティング)、続けて有線通信741Bからルータ732、次いで有線通信741Cを通して、IPパケットをVPNホスト733に送信する。携帯電話730とVPNホスト733との間のセッションが確立されると、携帯電話730はVPNホスト733に対し、VPNホスト734へのVPNトンネル741を作成するよう指示し、レイヤ5セッションはレイヤ6によって暗号化されたトンネルとネゴシエートされる。
VPN接続が設定されると、アプリケーション関連ステップ745に従って携帯電話730は、任意のVoIP電話アプリを介して電話をかける、すなわちコールを行う。このステップでは、アプリケーションは、VPNホスト734から携帯電話737へのラストマイルで「コールアウト」リンク(アプリのない電話にコールするためのリンク)を確立する必要がある。VoIPアプリケーションがそれを行えない、または行うことが許可されていない場合、コールは失敗し、速やかに終了する。そうでない場合、内部側IPパケットは、発呼側携帯電話730と宛先携帯電話737との間にアプリケーションレイヤ5セッションを確立し、IPテストパケットが適切に解読され、理解可能であることを確認する。
ステップ745に従ってコールを行う(電話をかける)には、電話機内の電話キャリアのSIMカードがVPNトンネルと互換性がないため、コールは、電話機の通常のダイヤルアップ機能からではなく、電話機で実行されているレイヤ7アプリケーションからである必要がある。コールが開始されると、携帯電話730は、その通信アプリケーションに従って音声の小片すなわち「スニペット」を表す一連のIPパケットを送信する。図示の例では、これらのパケットは、発呼者の携帯電話730内のアプリケーションからWiFiリンク746Aを介してWiFi基地局731に、次いで有線接続746Bを介してルータ732に、そして最後に有線接続746Cを介してVPNホスト733に送られる。次に、データは、VPNトンネル742を介してVPNホスト735への接続747によってセキュリティを確保した状態で送信される。一旦VPNトンネルを離れると、VPNホストはデータを有線接続748Aでルータ735に送り、有線接続748Bによって携帯電話システムに送り、タワー736は通常の電話呼出しとしてコール737を行う。携帯電話アプリから同じアプリを実行していない電話に電話をかける(コールする)プロセスをコールアウト機能と呼ぶ。
前述の例は、公衆ネットワークを介してVPNに接続する際の別の問題を浮き彫りにしている。すなわち携帯電話730の発呼者からVPNホスト733へのラストマイルリンク及びVPNホスト734から携帯電話737で呼び出されている人へのコールアウトは、VPNの一部ではないため、セキュリティ、パフォーマンス、コールQoSを保証するものではない。具体的には、接続746A、746B、及び746C、並びにコールアウト接続748A、748B、及び748Cを含む発呼者のラストマイルは、全て盗聴及びサイバー攻撃の対象となる。
コールが完了し、携帯電話737が電話を切ると、ステップ749に従ってVPN742は終了しなければならず、VPNレイヤ5はVPNセッションを終了し、携帯電話730はVPNホスト733との接続を断つ。
ただし、所定の手順を実行しても、VPNを介して電話をかけたり文書を送信したりすることは、以下の理由を含む何らかの理由で失敗しないという保証はない。
・VPNは、リアルタイムアプリケーション、VoIP、またはビデオをサポートために十分な低レイテンシーで動作しない可能性がある。
・発信者からVPNゲートウェイまたはVPNゲートウェイから通話受信者へのVPNラストマイル接続は、リアルタイムアプリケーション、VoIPまたはビデオをサポートするために十分な低レイテンシーで動作しない可能性がある。
・発呼者または意図された受信者への最も近いVPNゲートウェイまでの距離、すなわち「ラストマイル」が非常に遠い可能性、場合によってはVPNなしで通話受信者までの距離よりも遠く離れている可能性があり、これによりネットワークの不安定さ、未知のネットワークによる制御不能なルーティング、可変QoS、及び接続の保護されていない部分での中間者攻撃の機会を多数提供することがある。
・VPNゲートウェイからコール受信者へのVPNラストマイル接続では、「コールアウト」接続とパケット転送またはローカル電話会社へのサポートリンクをサポートしていない場合がある。
・地元の通信事業者または政府検閲官が、国家安全保障または法令遵守の理由で、既知のVPNゲートウェイに出入りする通話または接続をブロックする可能性がある。
・企業のVPNを使用すると、VoIP通話は会社の従業員と指定された許可されたユーザのみに限定され、金融取引やビデオストリーミングがブロックされたり、Yahoo、Googleなどのパブリックメールサーバへのプライベートメールがブロックされたり、YouTube(登録商標)、チャットプログラム、またはTwitterなどは企業のポリシーに従ってブロックされることがある。
・不安定なネットワークの場合、VPNオペレータによって手動でリセットされるまで、VPNが開かれ、発信者のデバイスに接続された常設セッションを保持することがある。これにより、後続の接続のための帯域幅が失われる、または接続料金が高額になる可能性がある。
[ネットワークの比較]
図49Aに示されている「オーバートップ」またはOTTプロバイダによって提供される通信を、公衆ネットワークを使用してアドホックVPNに接続する通信システム(図48Cに示されている)と比較すると、VPNリンクそれ自体では、両方の通信システムの大半はほぼ同じコンポーネントと接続を有している。具体的には、携帯電話730、WiFi無線接続746A、WiFi基地局731、有線接続746B及び746C、及びルータ732を含む発呼者の最後のマイルは、両方の実装において同じラストマイル接続を表す。同様に、相手方のラストマイルでは、携帯電話737、携帯電話接続748C、携帯電話基地局及びタワー736、有線接続748A及び748B、及びルータ735は、インターネットバージョン及びVPNバージョンの両方において同一である。主な相違点は、公衆ネットワークにおいて、VPNホスト733とVPNホスト734との間のセキュリティを確保された通信747を構成するVPNトンネル742が、セキュリティが確保されていない通信接続755を構成するサーバ/ルータ752及び754に置き換えられていることである。別の相違点は、OTT通信において、ステップ750で説明したようにコールが即座に利用可能であり、VPNをセットアップし、コールの前及び後にVPNセッションを終了するために、VPN追加ステップ740及び749を使用する必要があることである。
どちらの例でも、ラストマイル接続は、予期せぬコールQoS、パケットスニッフィングを受けること、サイバー攻撃のリスクをもたらす。サーバ/ルータ752及び774は、異なるロケール内の異なるISPによって管理される可能性が高いため、それらのサーバを既存の異なるクラウド、すなわちクラウド751及び753として解釈することができる。例えばGoogle、Yahoo、Amazon、及びMicrosoftが所有し運営している公開ネットワークは、インターネットによって相互にリンクされているにもかかわらず、例えば「Amazonクラウド」互いに異なるクラウドと見なすことができる。
図49Bに示す競合ネットワークトポロジー、ピアツーピアネットワーク(PPN)は、ルータまたはISPではなくPPNによって管理されるパケットルーティングを備えた多数のピアから構成されるネットワークを含む。ピアツーピアネットワークは数十年にわたってハードウェアに存在していたが、インターネットサービスプロバイダの管理、コスト、規制を回避する手段としてこの概念を普及させたのはNapsterであった。音楽著作権侵害のために米国政府の規制当局から訴えられたとき、Napsterの創設者はそれをやめて、初期のOTTキャリアSkypeに入った。その時、Skypeのネットワークは従来のOTTからナップスターのようなPPNに変換された。
PPN操作では、PPNへのログイン接続を行う全てのデバイスが、PPNに加わる1つのノードになる。例えば、地域761において、PPNソフトウェアがインストールされた携帯電話730がピアツーピアネットワークにログインすると、その地域の他の接続された全てのデバイスと同様にネットワークの一部となる。いずれかのデバイスによって呼び出されたコールは、1つのデバイスから別のデバイスに向かってホップして、目的地である別のPPN接続デバイスに到達する。例えば、携帯電話730がそのPPN接続を使用して別のPPN接続デバイス(例えば、携帯電話768)を呼び出す場合、コールは、2者間のPPNに物理的に配置された任意の装置を通る迂回経路に沿ってつながる。図示されているように、携帯電話730から発するコールは、WiFi731によってWiFi基地局731を介してデスクトップ765Aに、次にノートブック766Aに、デスクトップ765Bに、次にデスクトップ765Cに、最後に携帯電話基地局767及びタワー767を介して携帯電話768に接続する。このようにして、全てのルーティングはPPNによって制御され、インターネットはルーティングの管理に関与しないものであった。両方の当事者が利用するので、ネットワークに接続するために使用されるPPNソフトウェアは、VoIPベースの音声通信のアプリケーションとしても機能する。
携帯電話730が世界の反対側の非PPN装置の携帯電話737を呼び出そうとする場合、ルーティングは、特に海または山脈を越えてパケットを送信するために、いくつかのリンクでインターネットを必ず含むことがある。地域761におけるルーティングの第1の部分は、以前の例と同様に、携帯電話730から開始し、WiFi基地局731、デスクトップ765A、ノートブック766A、デスクトップ765B及び765Cを介してルーティングされる。この時点で、ノートブック766Bがネットワークに接続されている場合、コールはそれを介してルーティングされ、そうでない場合、コールは携帯電話基地局及びタワー767を介して携帯電話768にルーティングされ、次に携帯電話基地局及びタワー767に戻されてから、その先に送られる。
通話が太平洋横断の場合には、コンピュータ及び携帯電話は海上でトラヒックを移送することができないので、通話はクラウド763内のサードパーティのサーバ/ルータ770まで、及びクラウド764内のサードパーティmpサーバ/ルータ771への接続747を通ってインターネットまで必然的にルーティングされることになる。次に、コールはインターネットから出て、デスクトップ772を介して地域762に入り、WiFi773、ノートブック776、及び基地局736に接続する。WiFi733はPPNアプリを実行しないので、WiFi773に入る実際のパケットは、タブレット775または携帯電話774のいずれかに移動し、WiFi773に戻ってから有線接続を介して携帯電話基地局及びタワー736に送信されなければならない。最後に、携帯電話コール748Cは、PPN対応デバイスではない携帯電話737に接続する。これにより、PPN地域762を出るため、接続はPPNの「コールアウト」を構成する。このようなPPN方式を使用する場合、VPNのように、最初にPPNログインを完了することによって、ステップ760に従って発呼側デバイスのPPNネットワークへの登録を行う。その後、ステップ769に従ってPPNアプリを使用してコールを発信することができる。PPN方式の利点は、長距離通話を行うためにハードウェアがほとんどまたは全く必要ないことと、並びに、PPNに接続された全てのデバイスは、PPNオペレータをその状態、負荷及びレイテンシーに関して定期的に更新するので、PPNオペレータはパケットのルーティングを決定して遅延を最小限に抑えることができることである。
この方式の欠点は、潜在的なセキュリティに対する脅威となり、コールレイテンシ及びコールQoSに予測できない影響を及ぼす多くの未知ノードを含むネットワークをパケットが横断することである。そのため、パケット交換通信ネットワークでは、Skypeを除き、レイヤ3以上で動作するピアツーピアネットワークは一般的に採用されていない。
アドホックVPNプロバイダ、インターネットOTTプロバイダ、及びPPNピアネットワークの比較の概要を、対比させて以下の表に示す。
図示されているように、VPN及びインターネットは固定インフラストラクチャを構成するが、ピアツーピアネットワークのノードは、ログインしているユーザ及びPPNに接続されているデバイスによって異なる。この表の内容から、ネットワークの高速長距離接続(例えば、海洋及び山脈を横切るネットワーク)は、VPNの場合にのみ契約上保証され、それ以外の場合には予測不可能である。ラストマイルの帯域幅は、インターネットプロバイダーとVPNプロバイダの両方に依存するローカルプロバイダであり、PPNは誰がログインしているかによって全く異なる。
レイテンシー、すなわち連続して送信されるIPパケットの伝播遅延は、OTT及びVPNでは管理できないが、その理由は、プロバイダがラストマイルでのルーティングを制御するのではなく、ローカル通信会社またはネットワークプロバイダに依存しており、一方PPNは、特定の地域のその時間帯にオンラインになっているノード間でトラヒックを転送するためのベストエフォートを使用して、能力が限定されているからである。同様に、ネットワークの安定性については、PPNはネットワークを維持するためにトラヒックを再ルーティングする能力を有しているが、誰がログインしているかに左右される。一方、インターネットは本質的に冗長であり、配信を保証することはほぼ確実であるが、必ずしも適時に配信されない。アドホックVPNのネットワーク安定性は、VPNホストへの接続が許可されているノードの数によって異なる。これらのノードがオフラインになると、VPNは無効になる。
コールセットアップの観点からは、インターネットは常に利用可能であり、PPNはコールを行う前にPPNにログインする余分なステップを必要とし、VPNは複雑なログイン手順を伴うことがある。また、ほとんどのユーザは、VPNやPPNで使用される別のログインIDではなく、使いやすさに主たる有益な機能を見いだしてOTTの電話番号の使用を検討する。リストアップされた3つのネットワークは全て、一般に商用電話事業者を利用するよりはるかに遅れる可変VoIP QoSに悩まされている。
セキュリティの観点からは、3つの選択肢全てが悪く、ラストマイルは読み取り可能なアドレスとペイロードを有するパケットスニッフィングに完全にさらされている。VPNはクラウド接続の暗号化を提供するが、依然としてVPNホストのIPアドレスを公開している。そのため、示されているネットワークの選択肢はいずれもセキュリティが確保されているとはみなされない。従って、暗号化は、レイヤ6プロトコルとして、またはレイヤ7アプリケーション自体の埋め込み部分としてハッキングやサイバー攻撃を防止するためにさまざまなアプリケーションで使用されている。
[暗号化に対する過剰な信頼]
IPパケットを暗号化するかVPNを確立するかにかかわらず、現在のネットワークセキュリティは、暗号化のみに依存しており、これは現代のパケット交換型の通信ネットワークの弱点の1つである。例えば、RSA暗号化を攻撃する方法に関する多くの研究が行われている。素数を大きなサイズに制限することは、総当たり法を使用して解読D鍵コードを破る危険性を大幅に減少させるが、多項式因数分解法により、より小さな素数ベースの鍵に基づいて鍵を解くことに成功し得ることが実証された。「量子コンピューティング」の進化により、理にかなったサイバー攻撃においてRSAベースの暗号鍵や他の暗号鍵を破壊する実用的な方法につながる懸念がある。
これまでに存在していたコードの破損の危険に対抗するため、新しいアルゴリズムと、2001年に米国NISTが採択した「高度暗号化標準」(AES暗号)などの「より大きな鍵」による暗号化方式が登場した。ラインダール暗号に基づいて、換字置換ネットワークとして知られる設計原理は、異なる鍵及びブロックサイズを使用する換字及び置換の両方を組み合わせる。現在の形では、アルゴリズムは128ビットの固定ブロック長を採用し、鍵長は128ビット、192ビット、及び56ビットの可変長とし、それぞれに対応する、入力ファイル変換で使用されるラウンド回数は10、12、及び14回とされている。実際問題として、AES暗号化は、ソフトウェアまたはハードウェアにおいて、任意の長さの鍵に対して、効率的かつ迅速に実行することができる。暗号方式では、256ビット鍵を使用するAESベースの暗号化をAES256暗号化と呼ぶ。512ビット鍵を使用するAES512暗号化も利用可能である。
各新世代が、より良い暗号化方法を作り、より迅速にそれらを壊すべく暗号の水準を上げる一方、利益を得ようとするサイバー犯罪者は、暗号化されたファイルを破るために単にコンピューティングを使用するのではなく、目標に集中することが多い。前述のように、サイバーパイレーツは、パケットスニッフィングとポートスキャンを使用して、会話、企業サーバ、またはVPNゲートウェイに関する貴重な情報を得ることができる。サイバープロファイリングにより、ネットワーク自体を攻撃するのではなく、企業のCFOやCEOのパーソナルコンピュータ、ノートブック、及び携帯電話のサイバー攻撃を開始する方が容易とも考えられる。埋め込みリンクを開くとマルウェアやスパイウェアを自動的にインストールする電子メールを従業員に送信すると、その従業員が必ず接続して作業する必要のある「内部」からネットワークに入るので、ファイアウォールのセキュリティが完全に迂回されてしまう。
データが変化せず、すなわち静的にネットワークを通過する場合にも、暗号化を破る可能性が高まる。例えば、図50のネットワークでは、パケット790、792、794、及び799内の基礎となるデータは、パケットがネットワークを通って移動するときに変更されないままである。図示された各データパケットは、作成時の元の順序から変更されていない、時間的に連続的に並べられたデータまたは音声のシーケンスを含む。データパケットの内容がテキスト形式の場合、シーケンス1A−1B−1C−1D−1E−1Fの暗号化されていない平文ファイルを読むと、コミュニケ番号「1」の「読みやすい」テキストが得られる。データパケットの内容が音声である場合、シーケンス1A−1B−1C−1D−1E−1F内の暗号化されていない平文ファイルを、対応する音声コーデック(本質的にソフトウェアベースのD/A変換器)によって変換すなわち「再生」すると、オーディオファイル番号「1」の音声になる。
いずれの場合においても、本開示を通じて、固定サイズのボックスによって表される各データスロットは、所定の数のビット、例えば2バイト(2B)長を有する。スロット当たりの正確なビット数は、ネットワーク内の各通信ノードが各データスロットのサイズを知っている限り柔軟に変えることができる。各データスロットに含まれているのは、音声、ビデオ、またはテキストのデータであり、これらは図面においては、数字とそれに続く文字によって特定される。例えば、図示のように、データパケット790の第1のスロットは、コンテンツ1Aを含み、ここで数字「1」は特定の通信#1を示し、文字「A」は通信#1のデータの第1部分を表す。同様に、データパケット790の第2のスロットは、コンテンツ1Bを含み、ここで数字「1」は特定の通信#1を示し、文字「B」は通信#1のデータの第2部分を表す。
例えば、同じデータパケットが仮にコンテンツ「2A」を含んでいた場合、データは、通信#1とは無関係の異なる通信、具体的には通信#2における第1のパケット「A」を表す。同種の通信を含むデータパケット群である場合、例えば全てのデータが通信#1用である場合は、異なる通信を混合するデータパケットよりも分析及び読み取りが容易である。データを適切な順序で順番に並べることで、サイバー攻撃者は、音声、テキスト、グラフィックス、写真、ビデオ、実行可能なコードなどのデータの性質を容易に解釈できる。
さらに、図示された例では、パケットの発信元及び宛先IPアドレスは一定であるため、すなわち、ゲートウェイサーバ21A及び21Fに出入りするデータと同じ形式でネットワークを介して転送中にパケットが変更されないままであるため、ハッカーが、データパケットをインターセプトし、ファイルを分析して開くか、会話を聞く機会が増える。
リアルタイムのネットワークと接続されたデバイスのセキュリティ確保
今日のパケット交換ネットワークを悩ましている過度のセキュリティ脆弱性に対処しながら、電話、ビデオ、及びデータ通信のサービス品質(QoS)を向上させるために、IPパケットルーティングを制御するための新しく革新的で体系的なアプローチ、すなわち個別の技術を含むグローバルネットワークを管理し、同時にエンドツーエンドのセキュリティを促進するアプローチが必要である。このような本発明のパケット交換ネットワークの目標は、以下の基準を含む。
1.リアルタイムの音声、ビデオ、及びデータトラヒックルーティングをネットワーク全体で動的に管理することを含む、グローバルなネットワークまたは長距離通信事業者のセキュリティとQoSを保証すること。
2.通信ネットワークのラストマイルにおける「ローカルネットワークまたは電話会社」のセキュリティ及びQoSを保証すること。
3.セキュリティが確保されていない回線に対するセキュリティを確保した通信の提供を含む、通信ネットワークの「ラストリンク」のセキュリティとQoSを保証すること。
4.通信デバイスのセキュリティを保証し、不適格または不正なアクセスや使用を防ぐためにユーザを認証する。
5.不許可のアクセスを防止するために、デバイスまたはオンラインのネットワークまたはクラウドストレージにデータを格納する安全な手段の実現を容易化すること。
6.財務、個人、医療、バイオメトリックの全てのデータと記録を含む非公開の個人情報のセキュリティとプライバシーの保護を提供すること。
7.オンラインバンキング、ショッピング、クレジットカード、電子決済を含む全ての金融取引のセキュリティとプライバシーの保護を提供すること。
8.M2M(マシン・ツー・マシン)、V2V(ビークル・ツー・ビークル)、V2X(ビークル・ツー・インフラストラクチャ)通信を含む取引及び情報交換に、セキュリティ、プライバシー、及び必要に応じて匿名性を提供すること。
上記の目標のうち、本開示に含まれる発明主題は、項目#1に記載された第1のトピック、すなわち、「リアルタイムの音声、ビデオ、及びデータトラヒックルーティングをネットワーク全体で動的に管理することを含む、グローバルなネットワークまたは長距離通信事業者のセキュリティとQoSを保証すること」に関する。このトピックは、リアルタイム通信パフォーマンスを犠牲にすることなく、ネットワークまたはクラウドのセキュリティを実現することと考えることができる。
用語の説明
文脈上別の解釈を必要としない限り、セキュリティを確保した動的ネットワークとプロトコルの記述で使用される用語は、以下の意味を有する。
匿名データパケット:初めの発信元または最終宛先に関する情報が欠けているデータパケット。
復号(復号化):データパケットを暗号文から平文に変換するために使用される数学的演算。
DMZサーバ:セレクタ、シードジェネレータ、キージェネレータ(鍵発生器)及びその他の共有の秘密の格納に使用されるSDNPネットワークまたはインターネットから直接アクセスできないコンピュータサーバ。
動的暗号化/復号化:データパケットがSDNPネットワークを通過する際に動的に変化する鍵に依存する暗号化及び復号化。
動的混合(動的ミキシング):ミキシングアルゴリズム(スプリットアルゴリズムの逆)が、混合データパケットが作成されるときの時間、状態、及びゾーンなどの状態に基づいてシードの関数として動的に変化するミキシングのプロセス。
動的スクランブル化/アンスクランブル化:データパケットが作成された時間や作成されたゾーンなど、状態に応じて動的に変化するアルゴリズムに依存するスクランブル化とアンスクランブル化。
動的分割:データパケットが複数のサブパケットに分割されるときの時間、状態、ゾーンなどの状態に基づいて、分割アルゴリズムがシードの関数として動的に変化する分割プロセス。
暗号化:データパケットを平文から暗号文に変換するために使用される数学的演算。
断片化データ転送:分割されたデータと混合データのSDNPネットワークを介したルーティング。
ジャンクデータ削除(または「デジャンキング」):元のデータの復元のため、データパケットの元の長さを回復するために、データパケットからジャンクデータを削除すること。
ジャンクデータ挿入(または「ジャンキング」):実際のデータ内容を難読化するため、またはデータパケットの長さを管理するために、意味のないデータをデータパケットに意図的に導入すること。
鍵:秘密アルゴリズムを使用して鍵を生成する鍵生成器に時間などの状態を入力することによって生成される、偽装されたデジタル値。鍵は、セレクタからパケット内のデータを暗号化するアルゴリズムを選択するために使用される。鍵は、公的またはセキュリティを確保されていないラインを介して状態に関する情報を安全に渡すために使用できる。
鍵交換サーバ:ネットワークオペレータのスパイ行為の可能性を防止するために、公開暗号鍵をクライアントに(特にクライアントが管理する鍵管理のため、すなわちクライアントベースのエンドツーエンド暗号化のため)、選択に応じて対称鍵暗号化を使用するサーバに配布するために使用される、SDNPネットワークオペレータから独立したサードパーティにホストされるコンピュータサーバ。
ラストリンク:クライアントのデバイスと、それが通信するネットワーク内の最初のデバイス(通常は無線タワー、WiFiルータ、ケーブルモデム、セットトップボックス、またはイーサネット(登録商標)接続)との間のネットワーク接続。
ラストマイル:ラストリンクを含むSDNPゲートウェイとクライアント間のネットワーク接続。
混合(ミキシング):異なるソース及びデータタイプからのデータの結合により、認識できないコンテンツを有する1つの長いデータパケット(または一連のより短いサブパケット)を生成すること。以前に分割されたデータパケットをミキシングさせて元のデータコンテンツを復元する場合もある。ミキシング操作には、ジャンクデータの挿入、削除、及び解析も含まれ得る。
パース(構文解析):データパケットを格納または送信のために短いサブパケットに分割する数値演算。
スクランブル化:データパケット内のデータセグメントの順序またはシーケンスがその自然順序から認識不可能な形式に変更される操作。
分割:データパケット(または一連のシリアルデータパケット)が複数の宛先にルーティングされる複数のサブパケットに分割される操作。分割操作には、ジャンクデータの挿入や削除も含まれ得る。
ソフトスイッチ:通信スイッチ及びルータの機能を実行する実行可能コードを含むソフトウェア。
SDNP:本発明に従って作られた高セキュリティの通信ネットワークを意味する「Secure Dynamic Network and Protocol(セキュリティを確保した動的ネットワーク及びプロトコル)」の頭字語。
SDNP管理サーバ:実行可能コードと共有秘密をグローバルに、または特定のゾーンに分散するために使用されるコンピュータサーバ。
SDNPブリッジノード:SDNPクラウドを1つのSDNPクラウドと、異なるゾーンおよびセキュリティ資格情報を持つ別のクラウドに接続するSDNPノード。
SDNPクライアントまたはクライアントデバイス:一般的にネットワークのラストマイルを介して接続するSDNPクラウドに接続するために、SDNPアプリケーションを実行するネットワーク接続デバイス(通常は携帯電話、タブレット、ノートブック、デスクトップ、またはIoTデバイス)。
SDNPクラウド:SDNP通信ノード操作を実行するためのソフトスイッチ実行可能コードを実行している相互接続されたSDNPサーバのネットワーク。
SDNPゲートウェイノード:SDNPクラウドをSDNPラストマイルとクライアントに接続するSDNPノード。SDNPゲートウェイノードは、SDNPクラウドとラストマイルの少なくとも2つのゾーンにアクセスする必要がある。
SDNPメディアノード:シグナリングサーバすなわちシグナリング機能(暗号化/復号、スクランブル化/アンスクランブル化、ミキシング/スプリット、タグ付け、およびSDNPヘッダー及びサブヘッダーの生成を含む)を実行する別のコンピュータからの命令に従って、特定の識別タグを有する着信データパケットを処理するソフトスイッチ実行可能コード。SDNPメディアノードは、特定のタグを有する着信データパケットを識別し、新たに生成されたデータパケットを次の宛先に転送する役割を果たす。
SDNPメディアサーバ:SDNPメディアノードの機能をデュアルチャネル及びトライチャネル通信で実行し、シングルチャネル通信でSDNPシグナリングノード及びSDNPネームサーバノードのタスクを実行するソフトスイッチをホストするコンピュータサーバ。
SDNPネームサーバ:トライチャネル通信でSDNPネームサーバノードの機能を実行するソフトスイッチをホストするコンピュータサーバ。
SDNPネームサーバノード:SDNPクラウドに接続された全てのSDNPデバイスの動的リストを管理するソフトスイッチ実行可能コード。
SDNPネットワーク:SDNPクラウドだけでなく、ラストリンクとラストマイル通信を含む、クライアント−クライアント間の高セキュリティの通信ネットワーク全体。
SDNPノード:コンピュータサーバ上で動作するソフトウェアベースの「ソフトスイッチ」を含むSDNP通信ノード、あるいはSDNPネットワークに接続され、メディアノード、シグナリングノード、またはネームサーバノードのいずれかのSDNPノードとして機能するハードウェアデバイス。
SDNPサーバ:SDNPメディアサーバ、SDNPシグナリングサーバ、またはSDNPネームサーバのいずれかを備え、適切なソフトスイッチ機能をホストしてSDNPノードとして動作するコンピュータサーバ。
SDNPシグナリングノード:当事者間のコールまたは通信を開始し、コール元(発呼元)基準及びノード間伝播遅延の動的テーブルに基づいて、断片化されたデータ転送の複数のルートの全てまたは一部を決定し、SDNPメディアの着信および発信データパケットの管理方法。
SDNPシグナリングサーバ:デュアルチャネルおよびトライチャネルSDNP通信でSDNPシグナリングノードの機能を実行し、デュアルチャネル通信でSDNPネームサーバノードの任務を実行するソフトスイッチをホストするコンピュータサーバ。
セキュリティ設定:シードジェネレータやキージェネレータが、秘密アルゴリズムを、常に変化するネットワーク時間などの入力状態と共に使用して生成し、従ってパブリックまたはセキュリティが確保されていないラインを介して安全に送信することが可能な、シードや鍵などのデジタル値。
シード(Seed):秘密アルゴリズムを使用してシードを生成するシードジェネレータに、時間などの状態を入力することによって生成される偽装デジタル値。シードは、セレクタからパケット内のデータをスクランブル化または分割するためのアルゴリズムを選択するために使用される。シードは、パブリックまたはセキュリティが確保されていないラインを介して状態に関する情報を安全に渡すために使用できる。
セレクタ:共有秘密情報の一部であるとともに、1つまたは複数のパケットのスクランブル化、アンスクランブル化、暗号化、復号、分割、またはミキシングのための特定のアルゴリズムを選択するためにシードまたは鍵と共に使用される可能性のある、スクランブル化、暗号化または分割アルゴリズムのリストまたはテーブル。
共有秘密(情報):SDNPネットワークまたはインターネット経由でアクセスできないDMZサーバにローカルに保存されるシードジェネレータ、キージェネレータ、ゾーン情報、およびアルゴリズムシャッフルプロセスで使用されるアルゴリズムのみならず、スクランブル化/アンスクランブル化、暗号化/復号化、および混合/分割アルゴリズムのテーブルまたはセレクタを含む、SDNPノード操作に関する機密情報。
ステート(状態):シードや鍵などのセキュリティ設定を動的に生成するために、また混合、分割、スクランブル化、暗号化などの特定のSDNP操作のアルゴリズムを選択するために使用される、ロケーション、ゾーン、またはネットワーク時間などの入力。
時間(Time):SDNPネットワークを介して通信を同期させるために使用されるユニバーサルネットワーク時間。
アンスクランブル化:スクランブル化されたデータパケット内のデータセグメントを元の順序またはシーケンスに復元するために使用されるプロセス。アンスクランブル化はスクランブル化の逆関数である。
ゾーン:共通のセキュリティ資格情報と共有秘密を共有する特定の相互接続されたサーバのネットワーク。ラストマイル接続は、SDNPクラウドとは別のゾーンを含む。
セキュア動的ネットワーク及びプロトコル(Secure Dynamic Network And Protocol :SDNP)の設計
リアルタイムでのパケット遅延を最小限に抑え、安定した呼接続を確実にし、かつ高信頼性の音声通信及び映像ストリーミングを伝送すると共に、パケット交換通信に対するサイバー攻撃及びハッキングを防止するために、本開示に係るセキュリティが確保された(以降、「セキュア」とも称する)動的ネットワーク及びプロトコル、すなわちSDNPは、下記の複数の処理原則に基づいて設計した。
・リアルタイム通信は、常に、遅延時間が最も短い経路を使用して行うべきである。
・データパケットの不正な検査またはスニッフィングによって、パケットの送信元、送信先、及びその内容が分からないようにすべきである。
・データパケットのペイロードは、適当な期間にハッキングされる危険を冒さずに、別個の暗号化アルゴリズムを使用して動的に再暗号化(すなわち、復号及びその後の再度の暗号化)するべきである。
・復号された後であっても、全てのデータパケットのペイロードは、依然として判読不能なペイロード、例えば、複数の会話と、無関係なデータと、ジャンクパケットフィラーとの組み合わせを動的にスクランブル化したものを含む。
上記のガイドラインの実施は、下記の様々な実施形態のいくつかまたは全てに含まれる様々なユニークかつ発明的な方法、機能、特徴、及び実行を含む。
・SDNPは、インターネットを介してアクセスできないプロプライエタリコマンド及び制御ソフトウェアを使用して実現される通信会社(すなわち通信システム)のソフトスイッチ機能を含む、1または複数の専用クラウドを使用する。
・全てのクラウド内通信は、IPアドレスではなく、SDNPアドレス及び動的ポート(すなわちプロプライエタリNATアドレス)に基づいて、プロプライエタリクラウド内の専用のSDNPパケットルーティングを使用して行われる。SDNPアドレスは、インターネットを通じてまたはSDNPクラウドの外部では、使用またはルーティングすることはできない。
・SDNPネットワークは、全てのリアルタイム通信を、頻繁に識別し、遅延時間が最も短い経路を使用して動的にルーティングする。
・クラウドツークラウド及びラストマイル通信を除いては、セキュアまたはリアルタイム通信はSDNPクラウドの外部またはインターネットを介してルーティングされず、一般的に不可視アドレスによるシングルホップルーティングを使用する。
・データパケット内に含まれるルーティングデータは、互いに隣接する2つのデバイス間のシングルホップのためのルーティングを識別し、前の及び次のサーバのSDNPまたはIPアドレスのみを識別する。
・発呼者または着呼者の電話番号またはIPアドレス、すなわちクライアントの各ソースアドレス及び送信先アドレスは、IPパケットのヘッダー内にも、暗号化されたペイロード内にも存在しない。
・命令及び制御に関連する共有秘密は、インターネットを介してアクセスできないセキュアDMZサーバ内にインストールされたシステムソフトウェア内に存在する。
・SDNPパケット通信は、互いに異なる3つのチャンネル、すなわち、SDNPクラウド内のエレメントの識別に使用される「ネームサーバ」、コンテンツ及びデータのルーティングに使用される「メディアサーバ」、及びにパケット及び発呼の命令及び制御に使用される「シグナリングサーバ」を通じて行うことができる。
・ルーティング情報が、鍵及び数値シード(必要に応じて)と共に、発呼または通信の前に、かつコンテンツとは別個に、独立的なシグナリングチャンネルを通じて全ての参加メディアサーバに供給される。シグナリングサーバは、メディアサーバに対して、ネットワークを横断するパケットの前の及び次の送信先のみを提供する。
・メディアパケットは、他のソースからの断片化されたデータ種類が異なるデータを含む他のパケットと動的に混合及び再混合された、会話、ドキュメント、テキスト、またはファイルの一部しか表さない断片化されたデータを含む。
・ファースト及びラストマイル通信を保護するために、シグナリングサーバ関連通信をメディア及びコンテンツ関連パケットから分離することを含む特別なセキュリティ方法が用いられる。
・パケット伝送は、コンテンツ種類依存性であり、音声及びリアルタイム映像またはストリーミングは改良型UDPに基づくが、パケット損失または遅延の影響を受けやすいシグナリングパケット、命令及び制御パケット、データファイル、アプリケーションファイル、システムファイル、及び他のファイルは、TCP伝送を用いる。
・デバイスが本当のクライアントでありクローンではないことを確認すると共に、通信を行っている者がそのデバイスの真のオーナーであり偽者ではないことを認証するために、特定のセキュリティ及び認証方法が用いられる。
VoIP及びリアルタイムアプリケーションにおいて低遅延及び高QoSを有するセキュア通信を確実にするために、本開示に係る「セキュア動的ネットワーク及びプロトコル(Secure Dynamic Network And Protocol)」すなわちSDNPは、下記の構成要素を含む本発明に係る「動的メッシュ」ネットワークを使用する。
・動的に適合可能なマルチパス、及び遅延を最小化したメッシュルーティング
・動的なパケットスクランブル化
・パケット分割、混合、パース、及びジャンクビットパケットフィラー(junk bit packet fillers)を使用した動的な断片化
・ネットワークまたはクラウドの全体に渡っての動的なノード内ペイロード暗号化
・アドレス偽装及びニーズツーノウ(need-to-know)ルーティング情報による動的ネットワークプロトコル
・メディア及びコンテンツを、シグナリング、命令及び制御、及びネットワークアドレスから分離した複数チャンネル通信
・データ種類に特有のフィーチャ及びコンテキスチュアルルーティングによる動的に適合可能なリアルタイム通信プロトコル
・ユーザ鍵管理によるクライアント暗号化ペイロードのサポート
・混雑したネットワークでの高QoSのための軽量音声CODEC
上述したように、SDNP通信は、マルチルートまたはメッシュ伝送に依存して、データパケットを動的にルーティングする。本発明に係るSDNP通信では、インターネットOTT及びVoIPに使用される単一経路のパケット通信とは対照的に、データパケットのコンテンツは、情報を含んでいるコヒーレントパケットによって共通のソースまたは発呼者から直列的に搬送されるのではなく、断片化された形態で搬送される。複数のソース及び発呼者から送信されたコンテンツを動的に混合及び再混合することにより、データ種類が互いに異なるデータ、コンテンツ、音声、映像、及びファイルとジャンクデータフィラーとを組み合わせた不完全な断片が生成される。本開示に係るデータ断片化及び通信の利点は、暗号化及びスクランブル化されていないデータパケットであっても、それらはデータ種類が互いに異なる互いに無関係なデータの組み合わせであるため、解読するのはほぼ不可能だということである。
断片化されたパケットの混合及び分割を、パケットスクランブル化及び動的暗号化と組み合わせることにより、動的に暗号化、スクランブル化、フラグメント化されたデータのハイブイリッド化されたパケットは、そのデータの生成、パケット化、及び動的再パケット化に使用された共有秘密、鍵、数値シード、時間、及びステート変数を持っていない任意の者または観察者には全く判読及び解読不能な意味を持たないパケットとなる。
さらに、各パケットの断片化コンテンツと、それの生成に使用された秘密情報は、新しい断片及び新しいセキュリティ要素(例えば、変更されたシード、鍵、アルゴリズム、及び秘密情報)によりパケットが再構成されるまでの一秒足らずの間でのみ有効である。このように、サイバーパイレーツがステート依存性SDNPデータパケットを解読するのに要する時間が制限されることにより、SDNPのセキュリティはさらに高められる。サイバーパイレーツは、十分の1秒で何万年分(解読に要する時間の12乗)もの計算を実行しなくてはならないためである。
上述した方法の組み合わせは、静的な暗号化により実現されるセキュリティよりもはるかに高いレベルの多次元的なセキュリティを可能にする。したがって、本開示に係るセキュア動的ネットワーク及びプロトコルは、本明細書中では、「ハイパーセキュア(hyper-secure)」ネットワークとも称す。
[デバイスパケットのスクランブル化]
本発明によれば、パケット交換網ネットワークを介したセキュア(セキュリティが確保された)通信は、ハッキング防止及びセキュリティ確保のいくつかの要素に依存し、そのうちの1つはSDNPパケットのスクランブル化を含む。SDNPパケットのスクランブル化は、データセグメントの配列を並べ替えて、情報を判読不能で無益なものにすることを含む。図51Aに示すように、スクランブル化されていないデータパケット923を、スクランブル化操作924(Scrambling Process)により処理し、スクランブル化データパケット925を生成する。このスクランブル化操作924は、任意のアルゴリズム、数値的手法、またはシーケンシング手法を使用することができる。アルゴリズムは、静的な方程式であり得、例えばスクランブル化が実施された時間(time)920などの「ステート(State)」に基づく動的変数または数値シード、または、シード生成器(Seed Generator)921により例えばスクランブル化が実施された時間920などのステートに基づくアルゴリズムを使用して生成された数値シード(seed)929を含み得る。例えば、各データが、単調増加するユニークな数に変換される場合は、全てのシード929はユニークなものとなる。時間920及びシード929は、特定のアルゴリズムを選択及び識別するのに使用され、また、利用可能なスクランブル化方法、すなわちスクランブル化方法リスト922(Scrambling Algorithms)から特定のスクランブル化操作924を選択するのにも使用される。データフロー図では、図示の便宜上、このパケットスクランブル化操作及びシーケンスは、パケットスクランブル化操作926(Packet Scrambling)として概略的または記号的に表示する。
図51Bは、スクランブル化操作924と逆の操作であるアンスクランブル化操作927(Unscrambling Process)を示す。このアンスクランブル化操作927は、スクランブル化データパケット925の生成に使用されたステート(時間)920及びそれに対応するシード929を再使用してスクランブル化を解除し、スクランブル化が解除されたデータである、スクランブル化されていないデータパケット923を生成する。パケットスクランブル化に使用されたものと同一のステート(時間)920を使用して、アンスクランブル化操作927では、スクランブル化方法リスト922から選択される、スクランブル化に使用されたものと同一のスクランブル化方法を再び使用しなければならない。スクランブル化アルゴリズムリスト922では「スクランブル化」という用語が用いられているが、このアルゴリズムテーブルは、「アンスクランブル化」の実施に必要とされる、スクランブル化と逆の操作を識別して選択するのに使用される。すなわち、スクランブル化アルゴリズムリスト922は、データパケットのスクランブル化及びアンスクランブル化の両方に必要な情報を含んでいる。この2つの操作は、互いに逆の順番で実施される同一のステップを含むので、スクランブル化アルゴリズムリスト922は、「スクランブル化/アンスクランブル化」アルゴリズムリスト922と称することもできる。しかしながら、明確にするために、このテーブル(リスト)は、スクランブル化の機能についてのみ称し、それと逆の機能(アンスクランブル化)については称さないものとする。
アンスクランブル化操作927の実施のために選択されたスクランブル化アルゴリズムが、パケットスクランブル化に使用されたアルゴリズムと一致しない場合、あるいは、シード929またはステート(時間)920が、スクランブル化が実施された時間と一致しない場合、アンスクランブル化操作は、元のスクランブル化されていないデータパケットの923の復号に失敗し、パケットデータが失われることとなる。データフローズ図では、図示の便宜上、このパケットアンスクランブル化操作及びシーケンスは、パケットアンスクランブル化操作928(Packet Unscrambling)として概略的または記号的に表示した。
本発明によれば、スクランブル化操作が可逆的である限り、すなわち、各ステップを元の処理のときと逆の順番で繰り返すことにより、データパケット内の各データセグメントをその元の適切な位置に戻すことができる限り、スクランブル化操作の実施に数値アルゴリズムが使用される。数学的には、許容可能なスクランブル化アルゴリズムは、可逆的なものである。すなわち、例えば下記のように、関数F(A)がその逆関数F−1(A)を有するか、またはその逆関数に変換できる。
F−1[F(A)]=A
これは、関数Fにより処理されたデータファイル、配列、文字列、ファイル、またはベクターAは、その後、逆関数F−1を使用して処理することにより、数値及び配列が壊れていない元の入力Aに復号できることを意味する。
このような可逆操作の例は、図51Cに示す静的スクランブル化アルゴリズムであり、ミラーリングアルゴリズム及び位相シフトアルゴリズムを含む。ミラーリングアルゴリズムでは、あるデータセグメントは、ミラーリング処理の係数すなわち「Mod」により定義された対称線を中心とした鏡像となるように、他のデータセグメントとスワップ(位置交換)される。図示したMod−2ミラーリング(Mod-2 Mirroring)では、元の入力データパケット930の互いに連続する2つのデータセグメント毎にスワップされる。つまり、1番目及び2番目のデータセグメント間、3番目及び4番目のデータセグメント間、5番目及び6番目のデータセグメント間(以下同様)の位置、すなわち数学的には、1.5番目、3.5番目、5.5番目、・・・、(1.5+2n)の位置に位置する対称線を中心として、データセグメント1A及び1Bの位置が交換され、データセグメント1C及び1Dの位置が交換され、データセグメント1E及び1Fの位置が交換され(以下同様)、これにより、スクランブル化された出力データパケット935が生成される。
Mod−3ミラーリング(Mod-3 Mirroring)では、互いに連続する3つのデータセグメント毎に、その1番目及び3番目のデータセグメントの位置が交換され、それらの中間の2番目のパケットは元の位置から変更されない。したがって、データセグメント1A及び1Cの位置が交換されるが、データセグメント1Bは元の位置(互いに連続する3つのデータセグメントにおける真ん中の位置)から変更されない。同様に、データセグメント1D及び1Fの位置が交換されるが、データセグメント1Eは元の位置(互いに連続する3つのデータセグメントにおける真ん中の位置)から変更されない。このようにして、スクランブル化されたデータパケット出力936が生成される。Mod−3ミラーリングでは、ミラーリングの対称線は、2番目、5番目、8番目、・・・、(2+3n)番目の位置に位置する。
Mod−4ミラーリング(Mod-4 Mirroring)では、互いに連続する4つのデータセグメント毎に、1番目及び4番目のデータセグメントの位置が交換され、かつ2番目及び3番目のデータセグメントの位置が交換され、これにより、入力データパケット931からスクランブル化された出力データパケット937が生成される。したがって、データセグメント1Aはデータセグメント1Dと位置が交換され、データセグメント1Bはデータセグメント1Cと位置が交換される。Mod−4ミラーリングでは、ミラーリングの対称線は、互いに連続する4つのデータセグメントにおける2番目のデータセグメントと3番目のデータセグメントとの間(例えば、2番目のデータセグメントと3番目のデータセグメントとの間、6番目のデータセグメントと7番目のデータセグメントとの間)の位置、すなわち数学的には、2.5番目、6.5番目、......、(2.5+4n)番目の位置に位置する。Mod−mミラーリング(Mod-m Mirroring)では、入力データパケット932のm番目のデータセグメントが、最初の、すなわち0番目のデータセグメントと位置が交換され、n番目のデータセグメントが(m−n)番目のデータセグメントと位置が交換され、これにより、スクランブル化された出力データパケット938が生成される。
図51Cには、フレームシフトと呼ばれる別のスクランブル化方法がさらに示されている。このフレームシフトでは、各データセグメントは、左側または右側に、1フレーム、2フレーム、またはそれ以上のフレームだけ位置がシフトされる。例えば、単一フレーム位相シフト(1-Frame Phase Shift)では、各データセグメントは、1フレームだけ位置がシフトされる。具体的には、1番目のデータセグメントは、2番目のデータセグメントの位置に位置がシフトされ、2番目のデータセグメントは、3番目のデータセグメントの位置に位置がシフトされ(以下同様)、これにより、スクランブル化された出力データパケット940が生成される。なお、入力データパケット930の最後のフレーム(図示した例では、フレーム1F)は、1番目のデータセグメント1Aの位置に位置がシフトされる。
2フレーム位相シフト(2-Frame Phase Shift)では、入力データパケット930の1番目のデータセグメント1Aは、3番目のデータセグメント1Cの位置に2フレーム分位置がシフトされ、4番目のデータセグメント1Dは、スクランブル化された出力データパケット941の最後(6番目)のデータセグメントの位置に位置がシフトされる。そして、最後から2番目(5番目)のデータセグメント1Eは、1番目のデータセグメントの位置に位置がシフトされ、最後(6番目)のデータセグメントFは、2番目のデータセグメントの位置に位置がシフトされる。同様に、4フレーム位相シフト(4-Frame Phase Shift)では、入力データパケット930の各データセグメントは4フレーム分位置がシフトされ、1番目のフレーム1Aはフレーム1Eと位置が交換され、フレーム1Bはフレーム1Fと位置が交換され、フレーム1Cはフレーム1Aと位置が交換され(以下同様)、これにより、スクランブル化された出力データパケット942が生成される。最大フレーム位相シフト(Maximum Phase Shift)の場合、1番目のフレームAは最後のフレームと位置が交換され、2番目のフレーム1Bは1番目のフレームの位置に位置がシフトされ(すなわち、出力データパケット432の最初のフレームとなり)、3番目のフレームは2番目のフレームの位置に位置がシフトされる(以下同様)。1つのフレームが最大位相を超えて位相シフトされると、出力データは入力データから変化しない。図示した例は、位相シフトのシフト方向は右側である。このアルゴリズムでは、位相シフトのシフト方向は左側であってもよいが、その場合は、結果は異なるものとなる。
本開示に係る上述したアルゴリズム及び同様の方法は、本明細書では、静的スクランブル化アルゴリズムと称する。スクランブル化操作が1回だけ行われ、それにより、入力データセットをユニークな出力に変換するからである。さらに、上述したアルゴリズムでは、スクランブル化の実施方法の決定は、データパケットの値に依存しない。図51Dに示すように、本発明によれば、パラメータ的なスクランブル化は、スクランブル化方法が、データパケット自体に含まれているデータに由来する値に基づいて、可能性があるスクランブル化アルゴリズム(例えば、Sort#A、Sort#Bなど)のテーブルから選択されることを意味する。例えば、各データセグメントを、そのデータセグメントに含まれるデータの計算に基づいて、数値に変換することができると仮定する。データセグメントの数値を決定するための1つの可能性があるアプローチは、データセグメント内のビットデータの10進数または16進数相当値を用いることである。データセグメントが多重項を含む場合、数値相当値は、データセグメント中の数字を合計することにより求められる。データセグメントのデータはその後単一の数字または「パラメータ」に組み合わされ、その後、使用するスクランブル化方法の選択に用いられる。
図示した例では、スクランブル化されていないデータパケット930は、ステップ950において、各データセグメントについての数値を含んでいるデータテーブル951にパラメータ的に変換される。図示のように、0番目のフレームであるデータセグメント1Aは、数値「23」を有し、1番目のフレームであるデータセグメント1Bは、数値「125」を有する(以下同様)。その後、ステップ952において、データパケット930全体についての単一のデータパケット値が抽出される。図示した例では、合計値953(Sum)の「1002」は、テーブル951からの全データセグメント値の線形合計、すなわちパラメータ値を合算したものを示す。ステップ954では、このパラメータ値(すなわち合計値953)を条件テーブル(すなわち、ソフトウェアでは予め規定された条件付実行構文(if-then-else statements))のセットと比較して、つまり、合計値953をテーブル955における多数の非重複数値範囲と比較して、使用するべきソートルーチンを決定する。この例では、パラメータ値「1200」は、1000から1499の範囲に入るので、ソート#C(Sort#C)を使用するべきであると決定される。ソートルーチンが選択されると、パラメータ値はもはや不要となる。スクランブル化されていない入力データ930はその後、ステップ956において、選択された方法でスクランブル化され、スクランブル化されたデータパケット出力959が生成される。図示した例では、テーブル957に要約されたソート#Cは、各データセグメントの相対移動のセットを含む。このセットでは、スクランブル化されたデータパケット959の第1のデータセグメント、すなわち0番目のフレームは、左側に3フレーム分移動(3つシフト)するように定義されている。1番目のフレームは、元の位置から変更されない(すなわち移動しない)データセグメント1Bを含む。2番目のフレームは、元の位置から左側に2つシフトしたデータセグメント1Eを含む。3番目のフレームも同様であり、3番目のフレームは、元の位置から左側に2つシフトしたデータセグメント1Fを含む。スクランブル化されたデータパケット出力959の4番目のフレームは、元の位置から右側に2つシフトした(すなわち+2移動した)データセグメント1Cを含む。5番目のフレームは、元の位置から右側に5つ位置がシフトした(すなわち+5移動した)データセグメント1Aを含む。
このようにして、テーブル957に要約されたソート#Cにより、各データセグメントは新しい位置に一意的に移動し、これにより、パラメータ的に決定されたスクランブル化データパケット959が生成される。スクランブル化データパケットをアンスクランブル化するときは、同一のソート方法(ソート#C)を使用して、上記の処理を逆の順番で行う。アンスクランブル化操作を実施するために同一のアルゴリズムが選択されることを確実にするために、データパケットのパラメータ値953は、スクランブル化操作により変更されない。例えば、各データセグメントのパラメータ値の線形合計を用いて、数の順番に関係なく、同一の数値が生成される。
動的スクランブル化方法は、システムのステート(例えば、時間)を使用して、データパケットがスクランブル化されたときの条件を識別し、これにより、アンスクランブル化操作を実行するときに、スクランブル化のときと同一の方法を選択することが可能となる。図51Bに示したシステムでは、ステートを使用して、偽装数値シードが生成される。偽装数値シードは、パッケージの送信側または受信側デバイスに送信され、スクランブル化アルゴリズムをテーブルから選択するのに使用される。あるいは、ステート自体が送信側または受信側デバイスに送信され、送信側または受信側デバイスに配置された隠し数字生成器で、スクランブル化/アンスクランブル化アルゴリズムの選択に使用される隠し数字を生成するのに使用される。図51Eに示すこのような構成では、ステート(例えば時間)920は、隠し数字生成器960(Hidden Number Generator)により隠し数字961(Hidden Number:HN)を生成し、スクランブル化アルゴリズムリスト962からスクランブル化方法を選択するのに使用される。隠し数字961を使用してスクランブル化アルゴリズムテーブル962から選択されたアルゴリズムが使用して、スクランブル化操作963(Scrambling)により、スクランブル化されていないデータパケット930をスクランブル化データパケット964に変換する。図51Eに示すように、ステート920は、隠し数字生成器960に、直接的に送信してもよいし、シード生成器921を経由して送信してもよい。
スクランブル化アルゴリズムを選択するのに、数値シードのみを使用するのではなく、隠し数字を使用することの利点は、データストリームの分析により、すなわちスクランブル化データの繰り返しセットをそれに対応する数値シードと統計的に相関させることにより、スクランブル化テーブルがサイバー犯罪的に再構成される可能性を排除できることである。シードは、データストリーム中で可視的であり、それ故にスパイされることあるが、隠し数字生成器は、共有秘密に基づいて隠し数字「HN」を生成することができる。そのため、隠し数字HNは、データストリーム中に存在せず、スパイまたはスニッフィングをされない。すなわち、隠し数字は、ネットワークを通じて送信されず、数値シードに基づきローカルで生成される。数値シードの目的は偽装であるため、隠し数字生成器でのこの数学的操作により、ハッカーを阻止するための追加的なセキュリティ層が得られる。
アルゴリズムが選択されると、数値シードは、スクランブル化操作963のアルゴリズムにおける入力変数としても使用される。このように数値シードを2回使用することにより、ハッカーによる分析をさらに混乱させることができる。シードは、アルゴリズムを直接的に選択しないが、アルゴリズムと協働して、スクランブル化されたデータセグメントの最終的な配列を決定するからである。同様に、動的スクランブル化データパケットをアンスクランブル化するときは、シード929(またはステート(時間)920)を、スクランブル化を実施した通信ノード、デバイス、またはソフトウェアから、アンスクランブル化を実施するノードまたはデバイスに送信しなければならない。
本発明によれば、シード生成器921のアルゴリズム、隠し数字生成器960、及びスクランブル化アルゴリズムリスト962は、DMZサーバ(後述する)に格納された「共有秘密」情報を意味し、データパケットの送信者または受信者のいずれにも知られていない。共有秘密は、事前に設定されており、送信される通信データパケットには関連せず、例えば、共有秘密の漏出防止を確実にするために様々な認証手続きが行われるコードのインストール時に設定される。後述するように、1セットの盗まれた共有秘密によって、ハッカーが全通信ネットワークにアクセスしたり、リアルタイム通信を妨害したりすることができないように、共有秘密は「ゾーン」に限定される。
任意の共有秘密に加えて、スクランブル化アルゴリズムがデータパケットの通過間で変化する動的スクランブル化では、「ステート」に基づくシードが、データのスクランブル化またはアンスクランブル化に必要とされる。シードの生成に使用されるステートに関する曖昧さが存在せず、かつデータパケットの前回のスクランブル化のときに使用されたステートを次のノードに知らせる何らかの手段が存在すれば、シードに基づくこのステートは、時間、通信ノード番号、ネットワーク識別子、さらにはGPS位置などの任意の物理的パラメータを含むことができる。シード生成器でシードを生成するのに使用されるアルゴリズムは共有秘密の一部であるので、ハッカーは、シードの情報から、そのシードがどのステートに基づいているかを知ることはできない。シードは、それ自体をデータパケットに埋め込むことにより、別のチャンネルまたは経路を通じて送信することにより、またはそれらの組み合わせなどにより、ある通信ノードから次の通信ノードに送信される。例えば、シードの生成に使用されたステートは、最初は乱数であり、その後は、データパケットが通信ノードを通過するたびに固定された数だけ増加するカウンタを含む。各カウントは、特定のスクランブル化アルゴリズムを表す。
動的スクランブル化の一実施形態では、スクランブル化の第1のステップでは、乱数が、使用されるスクランブル化方法を選択するために生成される。この乱数は、データパケットのヘッダー、またはデータパケットにおける命令及び制御のために確保された、スクランブル化の影響を受けない部分に埋め込まれる。データパケットが次のノードに到着すると、データパケットに埋め込まれた数字は、通信ノードにより読み取られ、入力データパケットをアンスクランブル化するための適切なアルゴリズムを選択するためにソフトウェアで使用される。数字、すなわち「カウント」は、その後、1または予め定められた整数ずつ増やされ、パケットは、この新しい数字に関連するアルゴリズムに従ってスクランブル化される。そして、新しいカウントが、出力データパケットに格納され、前のカウントを上書きする。次の通信ノードでは、この処理が繰り返される。
スクランブル化アルゴリズムを選択するための本開示に係るカウンタベース方法の別の実施形態では、最初のスクランブル化アルゴリズムを選択するために、乱数が生成され、この乱数は、「共有秘密」として、特定のデータパケットを送信するのに使用される全ての通信ノードに送信される。カウント(例えば0から始まる)が、データパケットのヘッダー、またはデータパケットにおける命令及び制御のために確保された、スクランブル化の影響を受けない部分に埋め込まれる。データパケットはその後、次の通信ノードに送信される。パケットが次の通信ノードに到着すると、そのサーバはカウントの数値を読み取り、そのカウントに初期の乱数を追加し、データパケットの前回のスクランブル化に使用されたスクランブル化アルゴリズムを識別し、それに従ってパケットをアンスクランブル化する。カウントはその後、その後、1または予め定められた整数ずつ増やされ、そのカウントは再び、データパケットのヘッダー、またはデータパケットにおける命令及び制御のために確保された、スクランブル化の影響を受けない部分に埋め込まれ、前のカウントを上書きする。共有秘密としての役割を果たす乱数は、通信データパケットに埋め込まれて送信されない。データパケットが次の通信ノードに到着すると、サーバは、乱数(共有秘密)を、データパケットから抽出した更新されたカウントの数値に追加する。この新しい数字は、前の通信ノードで入力パケットをスクランブル化するのに使用されたスクランブル化アルゴリズムを一意的に識別する。この方法では、意味を持たないカウント数のみが、サイバーパイレーツによりデータパケットのスクランブル化されていない部分から傍受され得るが、サイバーパイレーツにはそのデータが何を意味するか分からない。
別の方法では、パケットのステート及びパケットのスクランブル化に使用されたアルゴリズムを知らせるのに、隠し数字が使用される。隠し数字は、経時的に変化するステートまたはシードを、一般的に数値アルゴリズムを含む共有秘密と組み合わせ、通信ノード間では送信されず、それ故に中間者攻撃またはサイバーパイレーツからスニッフィングまたは見つかることがない秘密の数字、すなわち「隠し数字」を生成するのに使用される。この隠し数字はその後、スクランブル化に用いられるスクランブル化アルゴリズムを選択するのに使用される。ステートまたはシードは、隠し数字の計算に使用されるアルゴリズムを知らなければ意味を持たず、また、共有秘密アルゴリズムは、ネットワークまたはインターネットを介してアクセス不能なファイアウォールの背後に格納されるので、ネットワークトラヒックのモニタリングによってパターンが明らかになることはない。さらに複雑なことには、シードの位置により、共有秘密を表すことができる。一実施形態では、データパケットのスクランブル化されていない部分により伝送される、データスニッフィング可能な数字、例えば27482567822552213は、その一部のみがシードを示す長い数字を含む。例えば、3番目から8番目までの数字がシードを示す場合、実際のシードは、27482567822552213の全体の数字ではなく、一部の数字、すなわち48256である。このシードは、その後、隠し数字を生成するために、共有秘密アルゴリズムと組み合わされる。そして、隠し数字は、ネットワークを通じて動的に変化するスクランブル化アルゴリズムを選択するのに使用される。
また、本発明によれば、さらなる別の可能な動的スクランブル化アルゴリズムは、通信においてデータストリームに予測可能なノイズを意図的に導入する、ディザリングのプロセスを含む。ディザリングの1つの可能な方法は、パケットがネットワークを伝送されるに従って、2つの互いに隣接するデータセグメントの位置を繰り返し入れ替えること含む。図51Fに示すように、動的ステート990に対応する時間t0で、スクランブル化されていないデータパケット930はパケットスクランブル化操作926によりスクランブル化され、これにより、動的ステート991に対応する時間t1で、スクランブル化データパケット1001が生成される。サーバ971にホストされた通信ノードN1、1に入力されたデータパケット1001は、1D、1B、1E、1F、1C、1Aの順番に並んだ一連のデータセグメントを含む。データパケット1001は、時間t2で、通信ノードN1、1により変更され、データセグメント1E及び1Bの位置を入れ替えることによりデータセグメントの順番が変更される。この結果生成された、1D、1E、1B、1F、1C、1Aの配列のデータセグメントを含むデータパケット1002は、その後、時間t3で、サーバ972にホストされた通信ノードN1、2で処理され、1D、1B、1E、1F、1C、1Aの配列に戻される。一連の各ノードにおいて、データセグメント1B及び1Eの相対的位置が互いに入れ替えられ、すなわちディザリングされ、これにより、互いに連続する2つのデータパケットを互いに異なるものにする。これにより、時間t1、t3、t5、及びt7では、元のスクランブル化された配列を有するデータパケット1001、1003、1005、及び1007を含み、時間t2、t4、及びt6では、データセグメントの配列が変更されたデータパケット1002、1004、及び1006を含む。サーバ976にホストされた通信ノードN1、6から出力されたデータパケット1007はその後、時間tfで、パケットアンスクランブル化操作928によりアンスクランブル化され、それにより、元のデータセグメント配列を有するデータパケット930が復号される。
本開示に係るセキュア動的通信ネットワーク及びプロトコルによる静的スクランブル化を、一連の通信サーバ1010−1015を横断するデータパケット930に適用した一例を図52に示す。この例では、サーバ1010にホストされた通信ノードN0、0は、パケットスクランブル化操作926(Scramble)を含み、これにより、スクランブル化データパケット1008が生成される。スクランブル化されたデータパケット1008はその後、データセグメント配列をさらに変更することなくパケット交換通信ネットワークを横断する。そして、サーバ1015にホストされた通信ノードN0、fで、パケットアンスクランブル化操作928(Unscramble)を最終的に実施し、データパケットのデータセグメント配列をその元の配列に戻す。このデータ伝送の形態を、静的スクランブル化と称する。データパケットは、最初にスクランブル化された後は、最後のサーバに到着するまでは、変更されることなくネットワークを横断するからである。
ネットワークを横断するデータは、スクランブル化されたにも関わらず、「プレーンテキスト」(Unchanged Plaintext)と呼ぶことができる。実データがデータパケット中に存在している、すなわち、データパケットがサイファテキストに暗号化されていないからである。対照的に、サイファテキストでは、元のデータを含む文字列は、スクランブル化の有無に関わらず、暗号化鍵を使用して意味を持たない文字列に変換され、復号鍵を使用しない限りは、その元のプレーンテキストの形態には復元されない。本開示に係るSDNPベース通信における暗号化の役割は、下記の「パケット暗号化」のセクションにおいてさらに説明する。
図53に示すように、ネットワークを通じた伝送中にデータパケットのデータセグメント配列を変更するためには、パケットの「再スクランブル化」が必要となる。このパケット再スクランブル化のプロセスは、スクランブル化データを新しいスクランブル化アルゴリズムにより再びスクランブル化する前に、スクランブル化データをそのアンスクランブル化状態に戻す。したがって、本明細書で使用される「再スクランブル化」という用語は、データパケットをアンスクランブル化した後に、一般的には別のスクランブル化アルゴリズムまたは方法により再びスクランブル化することを意味する。このアプローチにより、既にスクランブル化されているパッケージを再びスクランブル化することにより元のデータの復元に必要なデータセグメント配列が分からなくなることによって生じ得るデータ破損のリスクが避けられる。図示のように、パケットスクランブル化操作926により最初にスクランブル化された後に、スクランブル化データパケット1008が「再スクランブル化」される。つまり、スクランブル化データパケット1008は、まず、そのデータのスクランブル化に使用されたスクランブル化アルゴリズムと逆の処理を用いてアンスクランブル化操作928によりアンスクランブル化され、その後、スクランブル化操作926により、前回のスクランブル化操作926で使用されたものとは別のスクランブル化アルゴリズムを使用して、再びスクランブル化される。この結果生成された再スクランブル化データパケット1009は、その前のスクランブル化データパケット1008とは異なる。再スクランブル化操作1017は、アンスクランブル化とそれに続くスクランブル化との連続的な実施を含み、これを本明細書中では「US再スクランブル化(US Rescrambling)」と称する(USは、アンスクランブル化・スクランブル化(unscrambling-scrambling)の略語である)。元のデータパケット930を復元するためには、最終的なパケットアンスクランブル化操作928は、データパケットの最後の再スクランブル化に使用されたアルゴリズムと逆の処理の実施を必要とする。
本発明に係るSDNPベースパケット交換通信ネットワークにおけるUS再スクランブル化の適用を図54に示す。図示のように、データパケット930は、まず、サーバ1011におけるスクランブル化操作926によりスクランブル化され、その後、データパケットがパケット交換通信サーバ1012−1015のネットワークを横断するに従って、US再スクランブル化操作1017により連続的に変更される。そして、サーバ1016で最終的なアンスクランブル化操作928が行われ、データパケット930のデータセグメント配列をその元の配列に復元する。再スクランブル化は、時間t0からtfまでの互いに異なる時間で繰り返し行われるので、このネットワークを動的スクランブル化通信ネットワークと称する。実施においては、スクランブル化されていないデータパケット930は、サーバ1011にホストされた通信ノードN0、0に実装されたスクランブル化操作926によりスクランブル化される。時間t2で、データパケットは、サーバ1012にホストされた通信ノードN0、1に実装されたUS再スクランブル化操作1017によりスクランブル化データパケット1008に変更される。各時間で同じ処理を繰り返して、データパケットは、残りの通信ノードを通じて伝送される。例えば、サーバ1013にホストされた通信ノードN0、2では、US再スクランブル化操作1017により、再スクランブル化データパケット1008は新しい再スクランブル化データパケット1009に変換される。
各再スクランブル化操作1017では、まず、通信ノードに入力されたパケットの前のステートに基づき(例えば、データパケット1008が時間t2に対応するステートに基づいてスクランブル化されている場合には、そのステートに基づいて)、そのパケットの前のスクランブル化を元に戻す(アンスクランブル化する)。そして、そのデータパケットを時間t3に対応する新しいステートに基づいてスクランブル化して、再スクランブル化データパケット1009を生成する。上述したように、実施するスクランブル化の決定に使用されるステートは、最後のスクランブル化がどのようにして行われたが曖昧ではない限り、シード、時間、または任意の物理的パラメータ(例えば、時間、通信ノードの数、ネットワーク識別子、さらにはGPS位置など)に基づく数を含み得る。したがって、サーバ1012にホストされた通信ノードN0、1に入力されたデータパケットのアンスクランブル化は、そのデータパケットのスクランブル化に使用された前のサーバのステート、すなわち、サーバ1011にホストされた通信ノードN0、0のステートに依存し、サーバ1013にホストされた通信ノードN0、2に入力されたデータパケットのアンスクランブル化は、サーバ1012にホストされた通信ノードN0、1のスクランブル化のときステートに依存し、サーバ1014にホストされた通信ノードN0、3に入力されたデータパケットのアンスクランブル化は、サーバ1034にホストされた通信ノードN0、2のスクランブル化のときステートに依存する(以下同様)。通信ネットワークにおける最後の通信ノード、この例では、サーバ1016にホストされた通信ノードN0、fは、US再スクランブル化を行わず、その代わりに、アンスクランブル化操作928のみを行い、それにより、データパケットのデータセグメント配列を、その元のスクランブル化されていない配列に復元する。
本発明によれば、データの静的及び動的スクランブル化により、スクランブル化されていないデータを判読不能な無意味な(意味を持たない)ものに変更し、音声を認識不能なノイズに並べ換え、テキストを無意味なものに並べ替え、画像を真っ白な画像(video snow)に変換し、コードを復元不能にスクランブル化することができる。スクランブル化だけによって、高いセキュリティを提供することができる。そして、本開示に係るSDNP法では、スクランブル化は、ハッキング、サイバー攻撃、サイバーパイラシー、及び中間者攻撃から逃れるセキュア通信(セキュリティが確保された通信)を提供及び確保することができる唯一の要素である。
[パケット暗号化]
本発明によれば、パケット交換ネットワークを介したセキュア通信は、ハッキング防止及びセグメント確保のためのいくつかの要素に依存し、そのうちの1つはSDNP暗号化を含む。上述したように、「隠す」、「秘密にする」、「見えなくする」を意味するギリシャ語に由来する暗号化は、一般的に「プレーンテキスト」と呼ばれる通常の情報またはデータを、秘密情報を使用しない限りは判読することはできない判読不能なフォーマットの「サイファテキスト」に変換する手段を表す。最近の通信では、この秘密情報は、一般的に、データの暗号化及び復号に使用される1またはそれ以上の「鍵」を共有することを含む。この鍵は、一般的に、アルゴリズム的に生成された擬似乱数を含む。「Cryptonomicon」などの様々な暗号化技術のメリット及びデメリットについて論じた様々な文献または文章としては、現在、例えば、「Neal Stephenson (C) 1999」、「The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography、by Simon Singh (C) 1999」、「Practical Cryptography、by Niels Ferguson (C) 2013」、及び「Cryptanalysis: A Study of Ciphers and Their Solution、first published in 1939」などが入手可能である。
暗号化または暗号のコンセプトは古くからあり当業者には公知であるが、本開示に係るセキュア動的ネットワーク及びプロトコルにおける暗号化法の応用はユニークなものであり、クライアント自体の暗号化から独立しており、ネットワークアーキテクチャ自体に対するエンドツーエンド暗号化(end-to-end encryption)及びシングルホップノードツーノード動的暗号化(single-hop node-to-node dynamic encryption)の両方を容易にする。SDNP通信は、暗号をどれだけ複雑にしても、十分な時間さえあれば、あらゆる静的暗号化ファイルまたはメッセージは最終的には破られてその情報が盗まれる、という基本的教訓に基づいて設計されている。この仮定は実際には不正確であるが、この仮定を証明または反証する必要はない。なぜならば、特定の暗号化法が失敗するまで待つと、許容不能な及び取り戻せない結果的被害が生じるからである。
この代わりに、SDNP通信は、全ての暗号化ファイルは限られた「保存可能期間」を有するという前提に基づいている。これは、暗号化されたデータは有限の期間においてのみセキュリティが確保されており、秘密データは、所定の間隔で、理想的には最新式コンピュータで暗号を破るのに必要とされる時間の最も正確な見積もりよりもはるかに高い頻度で、動的に再暗号化しなければならないことを暗喩的に意味する。例えば、暗号処理装置の大きなサーバファームが所定の暗号を1年で破ることができると暗号学者により推測される場合は、SDNP通信では、データパケットを1秒毎または100ミリ秒毎、すなわち暗号を破るための最高の技術よりも何桁も短い間隔で再暗号化する。したがって、SDNP暗号化は必然的に、動的すなわち経時変化的であり、また空間的にも、すなわちパケット交換ネットワークまたは地図上における通信ノードの位置に依存して変化し得る。このため、「再暗号化」または「再暗号化法」という用語は、データパケットを復元し、その後に、別の暗号化アルゴリズムまたは方法を用いて再び暗号化することを指す。
このため、SDNP暗号化は、データを、暗号化されていないプレーンテキストからサイファテキストに繰り返し及び頻繁に変換し、情報を判読不能で無意味なものに改変することを含む。もし、所定のパケットのデータ暗号化が奇跡的に破られたとしても、SDNP動的暗号化方法を用いることにより、次のデータパケットでは全く異なる暗号化鍵または暗号が使用されるので、その暗号を破るためには、全く新しい労力が必要となる。個別に暗号化された各データパケットに含まれるコンテンツを制限することにより、不正アクセスのダメージの可能性を減らすことができる。破られたデータパケットに含まれるデータファイルの大きさを、サイバーパイレーツにとって意味をなすまたは有用となるには小さすぎるようにすることができるからである。さらに、動的暗号化を上述したSDNPスクランブル化方法と組み合わせることにより、通信のセキュリティを大幅に高めることができる。暗号化されていない形態でも、傍受されたデータファイルには、データセグメントの順番が無意味で判読不能となるようにスクランブル化されたデータ、音声、または映像の小さい断片しか含まれていない。
本開示によれば、SDNP暗号化は、動的であり、かつステート依存性である。図55Aに示すように、プレーンテキスト930(Plaintext)を含む暗号化されていないデータパケットは、暗号化操作1020(Encryption Process)により処理され、これにより、サイファテキスト1024及び1025(Ciphertext)を含む暗号化データパケットが生成される。サイファテキスト1024については、プレーンテキスト930のデータパケットは全体として暗号化され、データセグメント1A−1Fは、単一のデータファイルとして扱われる。一方、サイファテキスト1025については、プレーンテキスト930のデータセグメント1A−1Fは個別に暗号化され、他のデータセグメントと混合されない。プレーンテキストの第1のデータセグメント1Aは、それに対応する第1のサイファテキストセグメント(説明目的のために図示した「7$」で始まる長い文字列であり、図示しない長い文字列または数字を含む)に暗号化される。同様に、プレーンテキストの第2のデータセグメント1Bは、第2のサイファテキストセグメント(説明目的のために図示した「*^」で始まる長い文字列)に暗号化される。文字「7$」及び「*^」は、記号、数字、アルファベットなどの無意味な文字列の先頭を意味しており、プレーンテキストソースの特定のデータまたは暗号化された文字列の長さについて限定または暗示するものではない。
暗号化操作1020(Encryption Process)は、利用可能な任意のアルゴリズム、暗号化方式、または暗号化方法を用いることができる。暗号化アルゴリズムは静的な方程式を示すが、一実施形態では、暗号化操作は、暗号化を行うときに、例えば時間920などの動的変数または「ステート」を使用する。また、暗号鍵生成器1021を使用して、暗号化を実施したときの時間920などのステートに依存する暗号化鍵(E鍵)1022を生成する。例えば、暗号化の日付及び時間が、ハッカー等が暗号化アルゴリズムを見つけた場合でも再生成することはできないE鍵を生成するための数値シードとして使用される。時間920または他の「ステート」はまた、利用可能な暗号化アルゴリズムのリストである暗号化アルゴリズムリスト1023(Encryption Algorithms)から特定のアルゴリズムを選択するのに使用される。データフロー図では、図示の便宜上、このパケット暗号化操作及びシーケンスは、暗号化操作1026(Encryption)として概略的または記号的に表示する。本開示を通じて、セキュア及び暗号化データは、パドロック(南京錠)によっても記号的に表される。特に、時計の文字盤が上側に配置されたパドロックは、セキュア送信メカニズム、例えば、特定の時間間隔以内または特定の時間までに受信しなかった場合には暗号化ファイルは自己破壊され永久に失われることを示す。
図55Bは、暗号化操作1020と逆の操作である復号操作2031を示す。この復号操作2031では、サイファテキスト1024(Ciphertext)の生成に使用されたステート(時間または他のステート)920を再使用し、復号鍵生成器1021により生成された復号鍵(D鍵)1030と協働して暗号化を解除し、すなわちファイルを復号し、元のプレーンテキストデータパケット990(Plaintext)を含む暗号化されていないデータを生成する。復号操作1031(Decryption Process)では、パケットの暗号化のときに使用されたものと同一のステート(時間)920を使用して、暗号化のときに暗号化アルゴリズムリスト1023から選択されたものと同一の暗号化アルゴリズムを再び選択して使用する。暗号化アルゴリズムリスト1023では「暗号化」という用語が用いられているが、このアルゴリズムテーブルは、「復号」の実施に必要とされる、暗号化と逆の操作を識別して選択するのに使用される。すなわち、暗号化アルゴリズムリスト1023は、データパケットの暗号化及び復号の両方に必要な情報を含んでいる。この2つの操作は、互いに逆の順番で実施される同一のステップを含むので、このテーブル1023は、「暗号化/復号」アルゴリズムテーブル1023とも称することもできる。しかしながら、明確にするために、このテーブルは、暗号化の機能についてのみ称し、その反対の機能(復号)については称さないものとする。
復号操作1031の実施のために選択された暗号化アルゴリズムが、パケット暗号化操作1020に使用されたアルゴリズムと逆のものと一致しない場合、ステート(時間)920が、暗号化のときの時間と一致しない場合、または、D鍵1030が、暗号化のときに使用されたE鍵1022に対して予め定められた数値関係を有さない場合、復号操作1031は、暗号化されていない元のデータ990の復元に失敗し、パケットデータは失われることとなる。データフロー図では、図示の便宜上、このパケット復号操作及びシーケンスは、暗号化操作1026(Encryption)として概略的または記号的に表示する。
上述したように、暗号化及び一般的な暗号化アルゴリズムにおける暗号化鍵及び復号鍵の使用に関する知識、とりわけ対称公開鍵暗号化、RSA暗号化、AES256暗号化などは、当業者には一般的であり公知である。しかしながら、このような公知の暗号化方法を本開示に係るSDNP通信システムへの適用にすると、本開示に係るSDNP通信に特有の隠された情報、共有秘密、及び時間依存性の動的変数及びステートによって、ハッキングまたは暗号解読は困難になる。
したがって、サイバーパイレーツがロバストな暗号化方法を最終的に破ることができるコンピュータ処理能力を有しているという、あり得そうにない場合でも、サイバーパイレーツは、復号操作の実施に必要な非公開または共有秘密としてSDNPネットワークに埋め込まれたいくつかの情報を欠いており、また、暗号が変更される前に、暗号を1秒足らずの間に破らなければならない。さらに、本開示に係るSDNPネットワークを横断する全てのデータパケットは、固有の鍵及び動的ステートに基づき決定される互いに異なる暗号化方法を使用する。欠けた情報、動的ステート、及び任意のパケットに含まれた限定された情報コンテンツの組み合わせにより、任意のデータパケットから盗まれた意味も持つデータを、サイバーパイレーツにとって困難で報われないものにする。
文章、動画ストリーム、または音声会話の全体を傍受して、コヒーレントデータシーケンスを再構成するためには、サイバー攻撃者は、1つだけではなく数千もの一連のSDNPパケットを連続的に破って復号しなければならない。動的な暗号化を、上述したデータパケットスクランブル化に関する方法と組み合わせることにより、一連のSDNPパケットを連続的にハッキングするという困難な作業がさらに困難になる。図56に示すように、暗号化及びスクランブル化されたデータパケット1024(Ciphertext of Scrambled Data Packet)は、スクランブル化操作926と暗号化操作1026との連続的な組み合わせにより生成される。まず、スクランブル化操作926によりスクランブル化されていないプレーンテキストデータパケット990(Un-scrambled Plaintext)をスクランブル化プレーンテキストデータパケット1008(Scrambled Plaintext)に変換し、その後に、暗号化操作1026によりスクランブル化データパケットのサイファテキスト1024に変換する。スクランブル化パッケージの暗号化を繰り返すためには、上記と逆の操作を上記と逆の順番で行う。まず、復号操作1032によりスクランブル化プレーンテキストデータパケット1035(Scrambled Plaintext)に復号し、その後に、アンスクランブル化操作928によりスクランブル化されていないプレーンテキストデータパケット990(Unscrambled Plaintext)を復元する。
図示のように、スクランブル化及び暗号化は、セキュア通信を実現するための相補的な技術を表す。ネットワークを横断する暗号化されていないスクランブル化データは、データパケット内に実データが存在するので、すなわちパケットはサイファテキストに暗号化されていないので、「プレーンテキスト」と呼ばれる。暗号化データパケット、すなわちサイファテキストは、暗号化鍵を使用して無意味な文字列に変換され、対応する復号鍵を使用しない限りは元のプレーンテキストに復元することはできない、スクランブル化されたまたはスクランブル化されていない文字列を含む。使用されるアルゴリズムに依存して、暗号化鍵及び復号鍵は、同一の鍵、または予め定められた数学的関係で数学的に関連する別個の鍵であり得る。したがって、スクランブル化及び暗号化は、SDNP通信のための本発明に係るセキュア通信を実現するための相補的な技術を表す。
スクランブル化及び暗号化の2つの方法は、暗号化されたスクランブル化データパケットから元のデータパケットを復元するときの順番が暗号化のときと逆の順番で行われることを除いて、互いに組み合わせて使用する場合でも別個のものとして見なすことができる。例えば、データパケット990をスクランブル化操作926によりスクランブル化した後に暗号化操作1026により暗号化した場合は、元のデータパケットに復元するためには、暗号化及びスクランブル化されたデータパケット1024を復号操作1032により復号した後にアンスクランブル化操作928によりアンスクランブル化する。数学的には、スクランブル化操作Fにより、ビットまたは文字の列を、それに対応するスクランブル化バーションにスクランブル化し、アンスクランブル化操作F−1により、スクランブル化を解除することは、下記のように表される。
F−1[F(A)]=A
同様に、暗号化操作Gにより、一連のプレーンテキストをそれに対応するサイファテキストに暗号化し、復号操作G−1により、暗号化を解除することは、下記のように表される。
G−1[G(A)]=A
したがって、
F−1{G−1[G(F(A))]}=A
と表すことができる。各操作の順番が逆の順番で行われ、具体的には、暗号化及びスクランブル化されたパケット[G(F(A))]を復号[G−1]することにより、スクランブル化されたプレーンテキストデータパケットF(A)が復元され、その後、スクランブル化されたプレーンテキストパケットF(A)のアンスクランブル化操作F−1により、元のデータパケットAが復元されるからである。
線形的方法を用いると仮定すると、各操作の順番は可逆的である。例えば、データパケットを暗号化した後にスクランブル化した場合は、元のデータパケットに復元するためには、スクランブル化サイファテキストをアンスクランブル化した後に複合される。すなわち、下記のように表される。
G−1{F−1[F(G(A))]}=A
各操作の順番を変更すると、元のデータパケットを復元することはできない。つまり、暗号化した後にスクランブル化したデータパケットを、アンスクランブル化する前に復号すると、元のデータパケットを復元することはできない。すなわち、下記のように表される。
F−1{G−1[F(G(A))]}≠A
同様に、スクランブル化した後に暗号化したパケットを、復号する前にアンスクランブル化すると、元のデータパケットを復元することはできない。すなわち、下記のように表される。
G−1{F−1[G(F(A))]}≠A
要約すると、プレーンテキストパケットを暗号化の前にスクランブル化した場合は、アンスクランブル化の前に復号しなければならない。また、プレーンテキストパケットをスクランブル化の前に暗号化した場合は、復号の前にアンスクランブル化しなければならない。
スクランブル化及び暗号化はどの順番で行ってもよいが、本発明に係るSDNP方法の一実施形態では、暗号化及び復号は、ネットワーク転送中にスクランブル化よりも頻繁に行われる。このため、図56に示すように、暗号化は、スクランブル化の後に行うべきであり、復号はアンスクランブル化の後に行うべきである。便宜上、パケットスクランブル化操作926と、それに続く暗号化操作1026との組み合わせを、スクランブル化・暗号化操作1041(Scramble & Encypt)と定義する。また、それと逆の、復号操作1032と、それに続くパケットアンスクランブル化操作928との組み合わせを、復号・アンスクランブル化操作1042(Decrypt & Unscramble)と定義する。これらの組み合わされた操作は、本発明に係る静的及び動的SDNP通信に用いられる。
図57は、プレーンテキスト990が、パケット交換通信ネットワークの一連の通信ノード1011−1016を、ノード間でまたは経時的に変更されないサイファテキストデータパケット1040で表される、静的に暗号化及びスクランブル化された形態で横断するSDNP通信を示す。図示のように、第1のサーバ1011の通信ノードN0、0では、スクランブル化・暗号化操作1041により、元のプレーンテキストデータパケット990を、暗号化及びスクランブル化されたデータであるサイファテキストデータパケット1040(Ciphertext of Scrambled Data)に変換する。時間t1及びそれに対応するステート991で変換された後は、ネットワークを横断して最終的にサーバ1016の通信ノードN0、fに到着するまでは変更されず、暗号化及びスクランブル化されたデータパケットは静的に保たれる。そして、通信ノードN0、fに到着したデータパケットは、時間tfで、復号・アンスクランブル化操作1042により元のプレーンテキストデータパケット990の形態に復元される。スクランブル化及び暗号化の組み合わせはセキュリティを大幅に向上させるが、データパケットが経時的に及びネットワーク転送中に変更されないので、動的なセキュリティを表さない。
静的スクランブル化暗号化を用いて、任意の実装においてセキュリティを高める方法の1つは、各データパケットを、別個のスクランブル化及び/または暗号化方法(例えば、各データパケットが通信ネットワークに入るときの時間t1でのステート、シード、及び/または鍵の変更を含む)を用いてスクランブル化及び/または暗号化を実施することである。
しかしながら、よりロバストな別な方法は、データパケットがネットワークを横断するときに、データパケットの暗号化またはスクランブル化、あるいはその両方を動的に変更することを含む。SDNPの完全な動的バージョンの実現に必要なデータ処理を容易にするためには、パケット交換通信ネットワークの各通信ノードを通過する各パケットを「再スクランブル化(すなわち、アンスクランブル化及びそれに続くスクランブル化)」及び「再暗号化(すなわち、復号及びそれに続く暗号化)」するために、上記に定義した処理を組み合わせる必要がある。本明細書において使用される「再パケット」または「再パケット化」という用語は、パケットがアンスクランブル化の前に復号されるか、または復号された後にアンスクランブル化されるかに関わらず、「再スクランブル化」及び「再暗号化」の組み合わせを指すのに用いられる。いずれの場合でも、あるノードでのアンスクランブル化操作及び復号操作は、その前のノードでパケットをスクランブル化及び暗号化したときの順番と逆の順番で行わなければならない。すなわち、前のノードでパケットをスクランブル化した後に暗号化した場合は、現在のノードでは、パケットを復号した後にアンスクランブル化しなければならない。一般的に、パケットは、現在のノードから出力されるときに、スクランブル化した後に暗号化される。
通信ノードでの「再パケット化」操作を図58に示す。通信ノードに入力されたサイファテキストデータパケット1040は、まず、復号操作1032により復号され、その後に、アンスクランブル化操作928によりアンスクランブル化される。これにより、元のパケットのコンテンツを含む、スクランブル化されていないプレーンテキストデータパケット990(Unscrambled Plaintext (content))が復元される。パケット内の任意の情報を検査、解析、分割、またはリダイレクトする必要がある場合、スクランブル化されていないプレーンテキストファイルは、そのような操作を行うのに最適なフォーマットである。そして、プレーンテキストデータパケット990は、スクランブル化操作926により再びスクランブル化された後、暗号化操作1026により再び暗号化され、これにより、新しいスクランブル化サイファテキストデータパケット1043が生成される。通信ノードに入力されたサイファテキストデータパケット1040の再パケット化操作では、復号、アンスクランブル化、スクランブル化、暗号化が連続的に行われるので、その頭文字を並べて、本発明に係る技術をDUSE再パケット化操作1045(DUSE Re-Packet)と称する。動的なセキュアネットワークでは、復号操作1032及びアンスクランブル化操作928を実施するために使用されるステート(時間)、復号鍵、及びシードは、スクランブル化操作926及び暗号化操作1026を実施するために使用されるステート(時間)、暗号鍵、及びシードとは異なることが好ましい。
上述したDUSE再パケット化操作1045は、通信ノードに、ソフトウェア、ファームウェア、またはハードウェアとして実装される。一般的に、上記の操作の実装にはソフトウェアを用いることが好ましい。ソフトウェアコードは、経時的にアップデートまたは修正することができるからである。動的ネットワークにおけるDUSE再パケット化操作1045を図59に示す。図示のように、サーバ1011にホストされた通信ノードN0、0ではスクランブル化・暗号化操作1041が実施され、サーバ1016にホストされた通信ノードN0、fで復号・アンスクランブル化操作1042が実施される。そして、これらの間に位置する、サーバ1012−1015にホストされた通信ノードN0、1−N0、4では、DUSE再パケット化操作1045がそれぞれ実施される。実施においては、プレーンテキストデータパケット990は、通信ノードN0、0でのスクランブル化・暗号化操作1041により処理された後、通信ノードN0、0でのDUSE再パケット化操作1045により処理され、これにより、復号、パケットアンスクランブル化、スクランブル化、及び暗号化がその順番に行われたパケットを表す再パケット化・スクランブル化プレーンテキスト1008(Re-packeted Plaintext)が生成される。スクランブル化されたプレーンテキスト1008はその後、時間t2及びそれに対応するステート992で暗号化され、これにより、サイファテキスト1040が生成される。このプロセスは、通信ノードN0、2及び通信ノードN0、3で再び繰り返され、そのたびに、再パケット化スクランブル化プレーンテキスト1009(Re-packeted Plaintext)が生成される。再パケット化スクランブル化プレーンテキスト1009はその後、時間t4及びそれに対応するステート994で暗号化され、これにより、サイファテキスト1048(Re-packeted Ciphertext)が生成される。そして最終的に、通信ノードN0、fで復号・アンスクランブル化操作1042が行われ、時間tfで、スクランブル化されていないプレーンテキスト990が復元される。
[パケットの混合及び分割]
本開示に係る動的なセキュア通信ネットワーク及びプロトコルの別のキー要素は、データパケットをサブパケットに分割して複数のルートに送信し、サブパケットを組み合わせて再構成し、完全なデータパケットを再構成する機能である。データパケット1054を分割操作1051(Splitting (Un-mixing) Process)により分割するプロセスを図60Aに示す。分割操作1051は、アルゴリズム的なパース操作1052(Parse)をジャンク操作1053(Junk)と組み合わせた操作であり、非データの「ジャンク」データセグメントを挿入または除去する機能を有する。ヒトゲノム内に存在するジャンクDNAと同様に、ジャンクデータセグメントは、ジャンク操作1053により、データパケットの長さを延長または調節するために挿入され、また必要に応じて除去される。ジャンク操作1053は、パケットを満たすデータの量が不十分である場合に、とりわけ重要である。また、データパケットに挿入されたジャンクデータセグメントの存在は、サイバーパイレーツが実データをノイズと区別することを困難にする。本明細書で使用される「ジャンク」パケットまたはデータセグメントは、意味を持たないデータ(ビット)だけで構成されるパケットまたはデータセグメントである。このようなジャンクビットをデータパケットのストリーム中に導入することにより、実データを多数の無意味なビットの中に埋没させることができる。
パース操作1052の目的は、各構成要素を処理するために、データパケット1054をより小さなデータパケット(例えば、サブパケット1055及び1056)に分割することである。データパケット1054をより小さな部分に分割することにより、例えば、マルチパス伝送をサポートすること、すなわちデータパケットを複数の別個の経路を通じて伝送すること、及び別個の暗号化方法を用いたサブパケットの個別の暗号化を容易にすることなどの、固有の利点を提供することができる。
分割操作は、任意のアルゴリズム、数値的方法、またはパース(parsing)方法を用いることができる。アルゴリズムは、静的方程式で表すか、または、動的変数または数値シードまたは「ステート」、例えば入力データパケット1054が多数のサブパケットにより最初に形成されたときの時間920、及びシード生成器921で生成された数値シード929(このシードもデータパケットの生成時の時間920などのステートに依存する)を含むことができる。例えば、各データが、単調増加する固有の数に変換される場合、各シード929は固有のものとなる。時間920及びシード929は、利用可能な方法のリスト、すなわち混合アルゴリズム1050(Mixing Algorithms)から選択される特定のアルゴリズムを識別するのに使用される。パケット分割操作は、混合操作と逆の処理を含み、混合操作で特定のパケットの生成に使用されたアルゴリズムと正反対の順番で実行されるアルゴリズムを使用する。つまり、実施された操作は全て元に戻すことができるが、全てを1つのステップで行う必要はない。例えば、スクランブル化及び暗号化されたデータパケットは、復号しても、スクランブル化が保たれるようにしてもよい。分割操作1051で処理することにより、非分割データパケット1054は、複数のデータパケット、例えば固定長パケット1055及び1056に変換される。この操作をアルゴリズム的に実施するのに、パース操作1052が用いられる。データフロー図では、図示の便宜上、パース操作1052及びジャンク操作1053を含むこのパケット分割操作1051は、分割操作1057として概略的または記号的に表示する。
したがって、本明細書で使用される「分割」という用語は、1つのパケットを2以上のパケットすなわちサブパケットに分割するパースを含む。また、「分割」という用語は、「パースされた」パケットまたはサブパケットにジャンクパケットまたはサブパケットを挿入すること、または、「パースされた」パケットまたはサブパケットからジャンクパケットまたはサブパケットを除去することを含む。
分割操作と逆の操作であり、複数のパケット1055及び1056を混合して混合パケット1054を生成するパケット混合操作1060(Mixing Process)を図60Bに示す。パケット分割操作と同様に、このパケット混合操作は、任意のアルゴリズム、数値的方法、または混合方法を用いることができる。アルゴリズムは、静的方程式で表すか、または、動的変数または数値シードまたは「ステート」、例えば入力データパケット1055及び1056が生成されたときの条件を特定するのに使用される時間920を含むことができる。データパケットの生成に使用される混合操作は、シード生成器921で生成された数値シード929(このシードも時間920などのステートに依存する)を使用することができる。時間920及びシード929は、利用可能な混合方法のリスト、すなわち混合アルゴリズム1050から選択される特定の混合アルゴリズムを識別するのに使用される。データフロー図では、図示の便宜上、このパケット混合操作1060を、混合操作1061として概略的または記号的に表示する。
本発明によれば、パケット混合及びパケット分割は、可能性がある様々なアルゴリズムのうちの任意のものを用いて行うことができる。図61Aは、可能性がある3つの混合技術、連結方法(Concatenation)、交互配置方法(Interleaved)、アルゴリズム的方法(Algorithmic)を示す。連結方法では、データパケット1056のデータセグメント配列を、データパケット1055の末端に追加して、混合パケット1054を生成する。交互配置方法では、データパケット1055及び1056のデータセグメントが交互に、すなわち、1A、2A、1B、2Bの順番で互い違いとなるように混合して、混合パケット1056を生成する。パケット混合に用いられる他の方法は、アルゴリズム的方法である。図示した例では、アルゴリズムは、交互的な鏡映対称(インターリーブ鏡映対称)を含み、データセグメントを、混合パケット1066の前半部分では、1A、2A、1B、2B、1C、2Cの順番で配置し、混合パケット1066の後半部分では、前半部分とは逆の順番で、すなわち2D、1D、2E、1E、2F、1Fの順番で配置する。
本発明に係る連結方法を用いたパケット混合を適用した例を図61Bに示す。図示のように、時間t0では、非混合データパケット1055及び1056が、サーバ1011にホストされた通信ノードN0,0で、混合操作1061(Mix)により混合される。これにより、シーケンス1A−1Fと2A−2Fとをその順番で含むデータパケット1066(Unchanged plaintext)が生成される。生成されたデータパケット1066は、その後、サーバ1011−1016のネットワークを通じて伝送され、サーバ1016にホストされた通信ノードN0、fに到着するまでは全ての時間998に渡って、その構成要素が静的である変更されないプレーンテキストを含む。そして、通信ノードN0、fでは、パケット分割操作1057(Un-mix)により、混合データパケット1066の構成要素を元のデータパケット1055及び1056に分割する。
同様に、本発明に係る交互配置方法を用いたパケット混合を適用した例を図61Cに示す。上記の例と同様に、混合パケット1066は、1A、1B、2A、2B、3A、3Bのデータセグメント配列を有する。混合されたパケットは上記の連結方法の例とは異なるが、パケットデータ分割操作1057により、元の非混合データパケット1055、1056を復元することが可能である。時間t0でのパケット通信の前に、混合アルゴリズムの情報、及び混合操作に使用された時間、ステート、またはシードが、データパケット1066の一部として、サーバ1016にホストされた通信ノードN0、fに伝送されるからである。
[スクランブル化混合]
データパケットをデータセグメントの様々な組み合わせに分割及び混合する方法を用いる本開示に係るパケット通信方法は、本発明によれば、パケットスクランブル化と様々な方法で組み合わせることができる。図62Aでは、スクランブル化されていないプレーンテキストデータパケット1055、1056(Input 1, Input 2)は混合操作1061により混合され、これにより、混合されたデータパケット1067、図示した例では交互配置されたプレーンテキスト(Interleaved Plaintext)が生成される。混合後、データパケット1067は、スクランブル化操作926によりスクランブル化され、これにより、スクランブル化されたプレーンテキストデータパケット1068(Output)が生成される。パケット混合操作1061とパケットスクランブル化操作926とを組み合わせたシーケンスにより、混合とそれに続くスクランブル化とを含む混合・スクランブル化操作1070が形成される。
本発明に係る別の実施形態では、図62Bに示すように、個々のデータパケットは、まずスクランブル化され、その後に混合される。この実施形態では、アンスクランブル化プレーンテキストデータパケット1055及び1056は、まず、別個のスクランブル化操作926により別個にスクランブル化され、これにより、アンスクランブル化パケット1055及び1056に対応する、スクランブル化プレーンテキストデータパケット1008及び1009(Scrambled Plaintext)が生成される。これらのスクランブル化パケットは、その後、混合操作1061により混合され、これにより、スクランブル化混合データパケット1069が生成される。
本開示に係る上記の混合操作及びスクランブル化操作の組み合わせは、静的または動的SDNP通信ネットワークに組み込むことができる。図63では、プレーンテキストデータパケット1055及び1056は、サーバ1011にホストされた通信ノードN0,0に入力される。そして、通信ノードN0,0では、混合操作1061とそれに続くスクランブル化操作926とを含む混合・スクランブル化操作1070(Mix & Scramble)が行われ、これにより、混合及びスクランブル化されたパケット1068(Unchanged plaintext)が生成される。生成されたパケットコンテンツは、混合及びスクランブル化されたパケット1068がサーバ1011から1016に伝送されるまで、全ての時間tnで維持される。サーバ1016にホストされた最終的な通信ノードN0,fでは、アンスクランブル化操作928及び分割操作1057がその順番で実施される。このアンスクランブル化操作928及び分割操作1057は、アンスクランブル化・分割操作1044(Unscramble & Split)として表される。
図64は、SDNP通信ネットワークにおける動的なスクランブル化・混合操作の一例を示す。上述の静的なSDNPの例と同様に、プレーンテキストデータパケット1055及び1056は、サーバ1011にホストされた通信ノードN0,0に入力される。通信ノードN0,0では、混合操作1061とそれに続くスクランブル化操作926とを含む混合・スクランブル化操作1070が実施される。これにより生成された混合スクランブル化パケットは、サーバ1012でUS再スクランブル化操作1017(US Rescrambling)を施され、これにより、時間t2及びそれに対応するステート992で、混合スクランブル化パケット1072(Rescrambed plaintext)が生成される。その後、サーバ1013及び1014でUS再スクランブル化操作1017が実施され、データパケットのアンスクランブル化及び再スクランブル化が繰り返される。US再スクランブル化操作1017は、サーバ1015にホストされた通信ノードN0,4でも繰り返され、これにより、時間t5及びそれに対応するステート995で、新しい再スクランブル化データパケット1073が生成される。そして、サーバ1016にホストされた最終的な通信ノードN0,fでアンスクランブル化・分割操作1044(Unscramble & Un-mix)が実施され、これにより、パケット1055及び1056が復元される。図示した動的ネットワークの実施形態では、各US再スクランブル化操作1017で用いられるアンスクランブル化操作は、前のサーバで生成されたデータパケットの時間またはステートを使用する。そして、データパケットは、現在の時間で再スクランブル化される。例えば、サーバ1012において時間t2で生成されたデータパケット1072は、サーバ1013で再スクランブル化される。すなわち、データパケット1072は、時間t2に関連するステートを使用してアンスクランブル化され、その後に、現在の時間(図示せず)に関連するステートを使用して再びスクランブル化される。したがって、図64に一例として示すように、混合操作及び分割操作は、繰り返して連続して行われるスクランブル化及びアンスクランブル化操作をネスト化することができる。
[暗号化スクランブル化混合]
データパケットをサブパケットの様々な組み合わせに分割及び混合する方法と、パケットスクランブル化とを組み合わせて用いる本開示に係るパケット通信方法は、本発明によれば、暗号化と組み合わせることができる。図65は、混合、スクランブル化、及び暗号化を組み合わせた操作と、それと逆の操作とのいくつかの例を示す。1つ例は、混合操作1061、スクランブル化操作926、及び暗号化操作1026をその順番で含む混合・スクランブル化・暗号化操作、すなわちMSE操作1075(Mixed Scrambled Encryption (MSE))である。これと逆の操作である、復号・アンスクランブル化・分割操作、すなわちDSU操作1076(Decrypted Unscrambled Splitting (DUS))は、MSE操作と逆の順番の操作、すなわち復号操作1032、アンスクランブル化操作928、及び分割操作1057を含む。MES操作1075の出力及びDSU操作1076の入力は、サイファテキストを含む。元のコンテンツを送信し復元するためには(たとえその一部でも)、サイファテキストパケットの生成のときに使用したものと同一の共有秘密、数値シード、及び暗号化/復号鍵を使用して元のコンテンツを復元しなければならない。
中間ノードでは、復号操作1032と暗号化操作1026との組み合わせを含む再暗号化操作1077(Re-Encryption)のみが実施されるか、または、復号操作1032、アンスクランブル化操作928、スクランブル化操作926、及び暗号化操作1026をその順番で含むDUSE操作1045(DUSE Re-Packet)が実施される。再暗号化操作1077及びDUSE操作1045では、復号操作1032及びアンスクランブル化操作928の機能は、それらに、前の時間またはステートでパケットを送信した通信ノードのシードまたは鍵を必要とする。暗号化操作1026及び再スクランブル化操作926の機能は両方とも、現在の時間またはステート(すなわち、通信ノードがデータパケットを「リフレッシュ」した時間)で生成された情報、シード、及び鍵を使用する。データパケットのリフレッシュは、パケットデータを新たに難読化し、コードを破るのに利用可能な時間がより短くなるので、サイバー攻撃者がデータパケット内の情報にアクセスすることをより困難にする。
混合、スクランブル化、及び暗号化の動的な組み合わせ及びそれらと逆の操作の実施の一例を図66Aに示す。この例では、2つのデータパケット1055及び1056が、時間t0で、サーバ1011にホストされた通信ノードN0,0に入力される。この2つのパケットは同じ種類のデータ(例えば、2つの音声パケット、2つのテキストメッセージファイル、2つのドキュメント、2つのソフトウェア)、または2つの互いに異なる種類の情報(例えば、1つの音声パケットと1つのテキストファイル、1つのテキストパケットと1つの動画または写真画像)であり得る。そして、サーバ1011にホストされた通信ノードN0,0は、時間t1で、鍵、数値シード、または他の秘密情報を生成するためのステート991を使用して、混合・スクランブル化・暗号化(MSE)操作1075(Mix, Scramble, & Encrypt)を実施する。これにより、それを生成するのに使用されたステート情報を有していないものには判読不能な、サイファテキストフォーマットのスクランブル化データパケットが生成される。また、時間t1では、パケット混合が実施された時間またはステートを示す数値シードが生成され、生成された数値シードは最終ノードN0,fに送信される。数値シードは、混合データパケットよりも先に送信されるか、または混合データパケットのヘッダーに埋め込まれて送信される(詳細は後述する)。
このデータは、次に、サーバ1012にホストされた通信ノードN0,1に送信され、時間t1に対応するステート情報991に基づき受信データを復号及びアンスクランブル化した後に、時間t2に対応するステート情報992に基づきデータのスクランブル化及び暗号化を再び行うことによりセキュリティをリフレッシュするDUSE操作1045が実施される。ステート情報991が、データパケットまたはそのヘッダーに埋め込まれて最終ノードN0,fに送信される場合、ステート情報の2つのコピーが必要となる。一方のコピーは、最終ノードN0,fで使用され、混合が行われたときの情報991を含む。他方のコピーは、あるノードから次のノードへ(すなわち、例えばステート991から992、992へ)ホップするたびにデータパケットを変更するDUSE操作で使用される。入力データパケットに対して行われた前回の操作のステートを使用し、DUSE操作1045は、復号、再スクランブル化、及び再暗号化をその順番で行うことにより、データの再スクランブル化を行う。すなわち、再スクランブル化操作は、再暗号化操作内にネスト化される。この結果生成されたデータパケットは、サイファテキスト1080Bと、基礎となるプレーンテキスト1080Aで表される暗号化されていないコンテンツとを含む。DUSE操作1045は、サーバ1013、1014、及び1015で連続的に繰り返され、これにより、時間t5で、サイファテキスト1081Bと、基礎となるプレーンテキスト1081Aで表される暗号化されていないコンテンツが生成される。通信は、サーバ1016にホストされた通信ノードN0,fで完了する。通信ノードN0,fでは復号・アンスクランブル化・分割(DUS)操作1076(Decrypt Unscramble & Un-mix)が行われ、入力データパケットを前回のリフレッシュで使用された時間t5に対応する情報であるステート995に基づいて復号及びアンスクランブル化した後、そのパケットを最初に混合が行われたときのステート991に基づいて分割する。中間ノードは混合条件を知らないので、中間ノードにアクセスしたネットワークオペレータでさえも混合件を知ることはできない。時間tfで生成されたプレーンテキスト出力1055及び1056は、時間t0でネットワークを通じて送信されたデータに復元される。パケットが各ノード0、x(x=0、1、2、・・・、f)を通過するときに、パケットのコンテンツは再スクランブル化及び再暗号化されるので、伝送されるデータパケットを傍受して解読する機会は極めて複雑になり、またハッキングに利用できる時間は非常に短くなる。
セキュア通信を確立するためのより簡単な方法は、通信の開始時に、パケットを混合及びスクランブル化することを含む。ただし、再暗号化のステップの繰り返しが用いられる。上述した、完全に動的な暗号化・スクランブル化・混合の例とは異なり、図66Bの例では、サーバ1011での静的な混合及びスクランブル化と、サーバ1011−1015での動的な暗号化とが組み合わされる。これは、暗号のみが経時的に変更されることを意味する。通信は、時間t0で、サーバ1011にホストされた通信ノードN0,0がデータパケット1055及び1056を受信したときに開始される。上記の例と同様に、2つのパケットは、音声パケット、テキストメッセージ、ドキュメント、ソフトウェア、動画または写真画像などの様々な種類のデータの組み合わせであり得る。
続いて、時間t1では、通信ノードN0,0は、鍵、数値シード、または他の秘密情報を生成するためのステート991情報を使用して、混合・スクランブル化・暗号化(MSE)操作1075を実施する。この結果生成されたサイファテキスト1082Bは、その生成に使用されたステート情報を有していないものには判読不能(解読不能)なサイファテキストフォーマットのスクランブル化データパケットである。プレーンテキスト1082Aを含む基礎となるデータパケットはスクランブル化されており、たとえ暗号化されていない場合であっても、ステート情報、鍵、シード、及び秘密情報を使用しない限りは、ソースデータ、テキスト、画像、または音声を復元しようと試みるサイバーパイレーツにとっては理解することはできない。
このデータは、次に、サーバ1012にホストされた通信ノードN0,1に送信される。通信ノードN0,1では、上記の例のようにDUSE操作を実施するのではなく、入力データの再暗号化のみを実施する。すなわち、入力データを、時間t1に対応するステート991情報に基づいて復号し、その後に、時間t2に対応するステート992情報に基づいて再び暗号化する。このプロセスは、再暗号化操作1077として示されている。出力されるデータパケットは、サイファテキスト1083Bと、基礎となるスクランブル化プレーンテキスト1083A(先のプレーンテキスト1082と同一である)とを含む。再暗号化操作1077は、サーバ1013、1014、及び1015で連続的に繰り返され、そのたびに新たなサイファテキストが生成される。例えば、サイファテキスト1084B及び変更されていない基礎となるプレーンテキスト1084Aは、サーバ1013及び1014間で送信されたデータを表す。基礎となるプレーンテキスト1084は、時間t1で通信ノードN0,0でのMSE操作1075によりスクランブル化された状態から変更されない。しかし、サイファテキストは、通信ノードN0,1及び通信ノードN0,2での再暗号化により、通信ノードN0,0から出た後に2回変更される。
静的な混合・スクランブル化及び動的な暗号化の実施と、このプロセスの逆のプロセスの実施に使用される共有秘密は、2つの時間またはステートを必要とする。一方は、サーバ1011での静的な混合・スクランブル化と、サーバ1016での最終的なDUS操作1076におけるアンスクランブル化・分割とに使用される時間t1及びそれに対応するステート991である。他方は、サーバ1012−1015の各通信ノードでの再暗号化操作1077に使用される動的な時間及びそれに対応するステートである。ステートは、データパケットがパケット交換通信ネットワーク中で転送されるたびに、動的に頻繁に変更される。最後のステップでは、サーバ1016にホストされた通信ノードN0,fにより、通信は完了される。通信ノードN0,fでは、DUS操作1045が実施され、入力データパケットを復号、アンスクランブル化、及び分割し、時間t0でネットワークに送信された元のデータと同一のデータであるプレーンテキスト出力1055、1056を生成する。
パケットはノードN0,0で暗号化され、その後、各ノードN0,1、・・・、N0,f−1を通過するたびに再暗号化されるので、データの混合及びスクランブル化が一度だけであるのにも関わらず、通信されるデータパケットを傍受して解読する機会は極めて複雑になり、またハッキングに使用できる時間は非常に短くなる。さらに、上述したように複数のデータソースを混合することにより、ハッキングやサイバーパイラシーなどの不正行為をさらに困難にする。不正アクセス者には、多数のデータ断片について、それが何のデータであるか、それがどこから送信されたのか、またはそれがどこに送信されるのか分からないからである。つまり、データパケットの性質の詳細及びコンテキストが分からないからである。
転送中のデータパケットコンテンツを管理する別の方法は、シングルホップ毎に、「正常に戻す」ことである。この方法を図66Cに示す。ゲートウェイノードを除いて、各ノードで、DUS操作1076とその直後に続くMSE操作1075とが連続的に実施される。すなわち、シングルホップ毎に、データパケットは完全に再構成される。図示のように、入力データパケット1055及び1056は、まず、時間t1で、ノードN0、0によりステート991(Incoming State)を使用して混合される。これにより、プレーンテキスト1080Yに対応するサイファテキスト1080Zが生成され、生成されたサイファテキスト1080Zはその後ノードN0,1に送信される。ノードN0,1では、DUS操作1076により、時間t1に対応するステート991を使用して生成された入力パケットを識別し、その後、図66Dに詳細に示すように、識別された入力パケットを復号して入力サイファテキスト1080Zをプレーンテキスト1080Yに変換する。変換されたプレーンテキスト1080Yはその後アンスクランブル化及び分割され、これにより、元のデータパケット1055及び1056が復元される。
次のネットワークホップに備えて、2つの元のデータパケットは、ステート992(Outgoing State)に対応する時間t2に基づき選択されたアルゴリズムを使用して再び混合及びスクランブル化され、これによりプレーンテキスト1080Aが生成される。このプレーンテキスト1080Aはその後暗号化され、これにより生成されたサイファテキスト1080BはノードN0,2に送信される。この方法を用いることにより、入力データパケットは、ノードに入力されるたびに、最初の正常な状態に戻される。そして、現在のステートに対応する全く新しい「リフレッシュされた」状態でノードから出力される。この方法では、各ノードは、入力パケットのステートだけ分かればよく、データ転送中に使用された前のステートの情報は必要としない。
[混合&分割操作]
図60A及び図60Bを参照して上述した、パケットを混合及び分割して互いに異なる種類のデータに混合または分割する処理では、固定長パケットが、長いデータパケット1054のデータセグメント数はそれから生成されたより短いデータパケット1055及び1056のデータセグメントの総数と同数であるという「データセグメントの保存」の原理に従うことを説明した。すなわち、データセグメントの保存は、連続的な混合及び分割操作中に、データセグメントが生成または破壊されないことを意味する。この単純な原理は、通信においては問題がある。実時間データの量がわずかであり、単一パケットでさえも満たすことはできない恐れがあるからである。
これとは正反対に、ネットワークが非常に混雑している場合、サーバは、遅延時間が長くなる伝搬遅延を生じさせずには、長いパケットを処理することはできない恐れがある。この理由及び他の理由により、本発明に係るデータパケットの動的な混合及び分割は、可変長データパケットを管理、混合、及び分割し、入力データパケットまたは出力データパケットの長さ及び個数を管理する手段を提供する。様々な送信先(宛先)のコンテンツを含む可変長パケットを使用することにより、ハッカーのハッキングをさらに困難にし、これにより、ネットワークのセキュリティが高まる。図67Aに示すように、ジャンクを挿入または削除するためのパース操作1087(Parse)及びジャンク操作1088(Junk)は、混合化データパケットにおけるデータパケットの長さを調節及び管理するために協働的に使用され、単一出力混合操作または複数出力混合操作のいずれにも適用可能である。
図67Aは、複数の可変長入力を混合する単一出力パケット混合の一例を示す。図示した例では、混合操作1086(Mixing Process)により、4個のデータセグメントを有するパケット1090A及び1090Cと、3個のデータセグメントを有するパケット1090Bとを混合し、1つの長いデータパケット1091を生成する。この混合操作1086は、シード生成器921により生成された数値シード929を使用して混合を実施するときに、現在時間またはステート920に基づいて、混合アルゴリズムのリスト1085(Mixing Algorithms)から選択される。混合操作1086の実施中は、ジャンク操作1088により、選択されたアルゴリズムに従ってジャンクデータセグメントがデータパケット出力1091に挿入される。
混合後、長いデータパケット1091またはパース操作1092により生成されたサブパケットが、ローカルに保存されるか(例えば、他のデータパケットの到着を待つために)、または通信ネットワーク中の他の通信ノードに送信される。各パケットまたはサブパケットは、保存またはルーティングされる前に、パケットを識別するヘッダーまたはサブヘッダーにより「タグ付け」される。入力パケットは、そのデータに対する処理(例えば、データパケットのコンテンツをどのように混合、スクランブル化、暗号化、分割、復号するのか)に関する事前に受信した命令に従って処理されるので、タグは、入力パケットを認識するために重要である。データパケットを識別及びタグ付けするためのデータパケットのヘッダー及びサブヘッダーの使用については、後で詳細に説明する。
このように、サイバー攻撃を困難にすることに加えて、パース、ジャンク、及びデジャンク操作の別の役割は、データパケットの長さを調節することである。例えば、生成された長いデータパケット1091が長すぎる場合は、選択されたアルゴリズムに従って、パース操作1097により長いデータパケット1091を切断して複数のより短いパケットを生成する。より短いパケットの長さは、選択されたアルゴリズムにより規定されている。例えば、混合により生成された長いパケットは、所定の間隔1092で、すなわちn個のサブパケット毎に切断(分割)される。長いパケットを切断する間隔(パケット長さ)は、事前に規定してもよいし、ネットワークの状態に基づいて決定してもよい。例えば、許容可能な最大長さは、ネットワーク遅延に基づき算出することができる。例えば、2つのノード間の伝搬遅延Δtpropが所定値を超えた場合に、データパケットをパース(切断)して短くする。例えば、長いデータパケット1091は、パース操作1092により、所定の間隔で、「n個」のサブパケットに切断される。
長いパケットをどのようにパース(切断)するかに関わらず、図67Bに示すように、複数出力混合操作では、複数のデータパケット出力、すなわちデータパケット1093A、1093B、1093Cが生成される。図示した処理では、ジャンクデータをサブパケットに挿入することにより、調節された固定長さのサブパケットが生成される。データパケットまたはサブパケットの各セグメント、例えば1A、1B、1C・・・は、その値やコンテンツではなく、パケット中の「スロット」位置により識別される。例えば、長いデータパケット1091は18個のデータスロットを含んでおり、データは、スロット1、4、7、8、9、11、12、13、15、及び17に存在する。一方、サブパケット1093Aは、わずか6個のスロット長であり、実データコンテンツまたは音声を1番目及び4番目のスロットに含んでいる。
便宜上、図60Aに示したより理想的な例と同様に、複数入力単一出力(MISO)混合操作を記号1089で、複数入力複数出力(MIMO)混合操作を記号1094で記号的に表している。本開示に係る本発明によれば、複数入力単一出力(MISO)混合操作1089は、セキュアラストマイル接続に有用であり、複数入力複数出力(MIMO)混合操作1094は、後述するマルチパス及びメッシュルーティングネットワークの実現に有用である。本開示に係るSDNPネットワークの構成要素及び操作の分類では、MISO混合操作1089は、MIMO混合操作1095の特別な場合と見なすことができる。
複数入力一複数出力(MISO)混合操作と逆の操作は、単一入力複数出力(SIMO)分割操作である。一実施形態では、図67Cに示すように、単一の長いデータパケット1091が、分割操作1100(Splitting Process)により、固定長または可変長のサブパケットを含む複数のデータサブパケット1103A、1103B、及び1103Cに分割される。この図示例では、サブパケット1103Aは4個のデータスロットを含み、サブパケット1103B及び1103Cは各々3個のデータスロットを含む。
図67Dに示した第2の実施形態では、単一の長いデータパケット1091が、分割操作1105(Splitting Process)により、データパケット全体を満たすデータが不足する場合はジャンクデータセグメントをフィラーとして使用して、同一の固定長の複数のデータサブパケット1108A、1108B、及び1108Cに分割される。上記の両方の実施形態において、入力データパケットを生成したときに使用された時間(ステート)920及び数値シード929が、混合アルゴリズムテーブル1085からの混合アルゴリズムの選択、及び分割操作1100及び1105を実行するのに必要なパラメータの設定に必要とされる。混合アルゴリズムテーブル1085では「混合」という用語が用いられているが、このアルゴリズムテーブルは「分割」の実施に必要とされる、混合と逆の操作を識別して選択するのにも使用される。すなわち、混合アルゴリズムテーブル1085は、データパケットの混合及び分割の両方に必要な情報を含んでいる。この2つの操作は、互いに逆の順番で実施される同一のステップを含むので、テーブル1085は、「混合/分割」アルゴリズムテーブル1085と称することもできる。しかしながら、明確にするために、このテーブルは、混合の操作についてのみ称し、それと逆の操作(分割)については称さないものとする。データパケットの混合及び分割に使用される方法としては、入力または出力として一般的に2以上のデータパケットを含むことを除けば、上述したスクランブル化アルゴリズムと同様に、アルゴリズム的な方法及び他の様々な方法を用いることができる。混合または分割操作が単一のデータパケットに対して実施される場合の1つの除外例は、ジャンクデータの挿入または除去中である。
図67Eは、3つの入力データパケット1090A(Sub-packet A)、1090B(Sub-packet B)、及び1090C(Sub-packet C)を混合して1つの長いデータパケット1091を生成し、その後に長いデータパケット1091をパース(分割)して3つの出力サブパケット1093D(Sub-packet D)、1093E(Sub-packet E)、及び1093F(Sub-packet F)を生成する、ある特定の混合アルゴリズムを示す。図示のように、混合操作1094(Mixing)では、入力データパケットの各スロットからのデータコンテンツを長いパケットの所定のスロットに再配置すると共に、それらの間に介在するスロットにジャンクデータを挿入する。例えば、図示のように、サブパケット1090Aの3番目のスロットに含まれているデータセグメント1Cは、長いデータパケット1091の7番目のスロットに移動させられ、サブパケット1090Bの3番目のスロットに含まれているデータセグメント2Fは、長いデータパケット1091の17番目のスロットに移動させられ、サブパケット1090Cの2番目のスロットに含まれているデータセグメント3Dは、長いデータパケット1091の12番目のスロットに移動させられる。そのため、完全な混合アルゴリズムは、下記に示す置換テーブルを有する。
このように、一般的に、混合操作での処理は、混合パケット(すなわち長いパケット)のどのスロットに入力データを挿入し、どのスロットにジャンクを挿入するかを規定することである。
混合アルゴリズムを示すこの置換テーブルは一例であり、入力データサブパケットを再配置して長いデータを生成する任意の再配置方法を用いていることができる。混合操作1094の一部としてパース操作1087が次に実施され、長いデータパケット1091を切断することにより、同一の長さを有する3つの出力サブパケット1093D(Sub-packet D)、1093E(Sub-packet E)、及び1093F(Sub-packet F)が生成される。
図67Fは、分割操作1101(Splitting)を実施するアルゴリズムを示す。上記のパース操作1087により生成された同一の長さを有する3つのサブパケット1093D、1093E、及び1093Fの各データセグメントを再配置して、長さが互いに異なる新しいサブパケット1103A、1103B、及び1103Cを生成する(下記のテーブルに詳細に示す)。上記のパース操作の目的は、長いパケットを、より小さいサイズ(これにより、ローカル保存のための時間がより短くなる)の複数のパケットに分割すること、またはデータ送信のためにデータを分割することである。
図示のように、サブパケット1103A(Sub-packet G)は4つのスロットを含み、スロット1には、長いパケット1091のスロット1に対応するサブパケットDのスロット1に入っていたデータセグメント1Aが挿入され、スロット2には、長いパケット1091のスロット4に対応するサブパケットDのスロット4に入っていたデータセグメント1Bが挿入され、スロット3には、長いパケット1091のスロット7に対応するサブパケットEのスロット1に入っていたデータセグメント1Cが挿入され、スロット4には、長いパケット1091のスロット13に対応するサブパケットFのスロット1に入っていたデータセグメント1Eが挿入される。同様に、サブパケット1103B(Sub-packet H)は3つのスロットを含み、スロット1には、サブパケットEの2番目のスロットに入っていたデータセグメント2Cが挿入され、スロット2には、サブパケットEの5番目のスロットに入っていたデータセグメント2Dが挿入され、スロット3には、サブパケットFの5番目のスロットに入っていたデータセグメント2Fが挿入される。同様に、サブパケット1103C(Sub-packet J)は3つのスロットを含み、スロット1には、サブパケットEの3番目のスロットに入っていたデータセグメント3Cが挿入され、スロット2には、サブパケットEの6番目のスロットに入っていたデータセグメント3Dが挿入され、スロット3には、サブパケットFの3番目のスロットに入っていたデータセグメント3Fが挿入される。
このような分割アルゴリズムは、(a)分割されたサブパケットをいくつ生成するか、(b)分割された各サブパケットがいくつのスロットを有するか、(c)分割されたサブパケットのどのスロットに、長いパケットのどのデータを挿入するか、(d)どのスロットを除去するか(そのスロットがジャンクデータを含む場合)、(e)特定の長さのサブパケットの生成を容易にするために、ジャンクデータを含む新しいスロットを導入するか、を定義する。分割操作が混合操作の後に行われる場合、ジャンクデータが除去または挿入されない限り、分割されたパケットにおけるサブパケットの数は、それらが混合される前のパケットにおけるサブパケットの数と等しくする必要がある。
本発明に係る混合及び分割操作の役割は、任意のネットワークを通じて伝送された断片データにより通知を実行し、ネットワーク中の全てのノードにどの操作をどの順番で実施するべきかを知らせるように構成され得る。上記の図61Bに示したような単一ルート伝送では、データパケット1055及び1056は、様々な発呼者またはソースからの様々な会話または通信を表す。混合後は、長いデータパケット、またはそれをパースして生成したパケットは、ネットワークを通じて伝送される。このような操作は、複数入力単一出力(MISO)通信ノードで行うことができる。
元のデータパケットは、単一入力複数出力(SIMO)通信ノードで、混合と逆の操作である分割を実施することにより復元される。単一ルート通信においてデータパケットがそれの最終的な送信先に到着すると、長いデータパケットの最後の分割が行われ、ジャンクデータが除去され、これにより元のデータパケットが再構成される。混合データは、必ずしも同一種類のデータである必要はない。例えば、ある発呼者が電話で話すのとテキストメッセージを送信するのとを同時に行った場合は、互いに異なる2つのデータストリームが同時に生成され送受信される。しかし、分割データパケットを、非混合状態で、ネットワーク内で送信先に向けてルーティングすることを望む場合は、データパケット中にジャンクデータを挿入することにより、データのスニッフィングを防止することができる。
同一種類のデータを伝送する場合、セキュリティは主に、図64に示したスクランブル化、または図66Aに示したスクランブル化と暗号化との組み合わせによって実現することができる。両方の例で使用された混合とそれに続くスクランブル化との組み合わせを、図67Gに示す例によってさらに詳細に説明する。この例では、混合操作1094により、入力データサブパケット1090A、1090B、及び1090Cを混合して、スクランブル化されていない長いデータパケット1091を生成する。続いて、スクランブル化操作926により、線形位相シフトを実施し、各データスロットを右方向に移動させ、例えば、スクランブル化されていないパケットのスロット1のデータ1Aをスクランブル化パケットのスロット2に移動させ、スクランブル化されていないパケットのスロット7のデータ1Cをスクランブル化パケットのスロット8に移動させ(以下同様)、これにより、スクランブル化された長いデータパケット1107を生成する。
その後、パース操作1087により、スクランブル化された長いデータパケット1107を、6番目及び12番目のスロットの後側に位置する切断線1092に沿って切断し、これにより、出力サブパケット1093G、1093H、及び1093Jを生成する。位相シフトの結果、出力サブパケット中のデータの位置が変更されるだけでなく、そのパケットのコンテンツが実際に変更される。例えば、スクランブル化されていない長いデータパケット1091のスロット位置12に入っているデータセグメント3Dは、スクランブル化後のデータパケット1107ではスロット位置13に移動する。そして、スクランブル化後のデータパケット1107は、パース操作1087により12番目のスロットの後側の切断線1092で切断され、これにより、データセグメント3Dはデータサブパケット1093Jに含まれる、すなわち、データサブパケット1093Hから1093Jに位置が変更されることとなる。これは、データセグメントの順番がJ−1C−2C−3C−J−2D(Jはジャンクデータを示す)であるサブパケット1093Hを、図67Eに示したデータセグメントの順番が1C−2C−3C−J−2D−3Dであるサブパケット1093Eと比較することにより明らかである。
図67Hは、アルゴリズム的混合(すなわち、サブパケットからの入力データを再配置して長いデータパケットを生成すること)と、それに続くスクランブル化アルゴリズムとを組み合わせた例を示す。再配置アルゴリズムを変更するだけで、混合操作とスクランブル化操作とを単一のステップに統合することができ、これにより、上記のアルゴリズム的混合とスクランブル化アルゴリズムとの組み合わせが実現される。この混合・スクランブル化操作1094A(Mixing & Scrambling)は、データ再配置中に、長いデータパケット1107においてデータを右方向に1つだけ移動させること以外は、上記の混合アルゴリズムと同一である。例えば、サブパケット1090Aのデータセグメント1Aは、長いデータパケット1107のスロット2に移動させられ、サブパケット1090Cのデータセグメント3Dは、長いデータパケット1107のスロット12ではなくスロット13に移動させられる。これにより、出力サブパケット1093G、1093H、1093Jは、図67Gに示す混合後にスクランブル化して生成した出力サブパケットと同一になる。つまり、混合及びそれに続くスクランブル化のアルゴリズムは、別の混合アルゴリズムを表す。生成される出力に差異はないので、本明細書全体を通じて、本開示では、混合とスクランブル化とを組み合わせた操作は、混合及びスクランブル化を統合した単一ステップの操作と同一に見なすものとする。同様に、データパケットをアンスクランブル化した後に分割するという逆の操作を、アンスクランブル化及び分割を単一のステップで実施する単一の組み合わされた操作に置き換えることができることを理解されたい。
単一ルートデータ伝送では、データパケットは、並列経路を取ることはできず、メディアサーバ間またはクライアントデバイス及びクラウドゲートウェイ間の単一ルートを直列的に進むしかない。すなわち、データは、ラストマイルを通じて伝送される。データサブパケットは、ネットワークに送信される前に、該パケットの識別のために1または複数のヘッダーによりタグ付けしなければならない。これにより、該パケットを受信した通信ノードは、そのパケットに対して行う操作に関する命令を受信することができる。これらのヘッダーに含まれているフォーマット及び情報の詳細については後述する。明確にするために、パケットのタグ付けの簡略化した実現例を図67Iに示す。図示のように、一連のデータパケット1099A、1099B、1099C、及び1099Zは、通信ノードに順番に到着する。各データパケットは、ヘッダー(例えば1102A)と、それに対応するデータ(例えば1090A)とを含む。
データパケットがノードに到着すると、その後の処理のために、操作1600により、データからヘッダーを分離する(Strip header from Data)。図示のように、最初に入力されたパケット1099Aのヘッダー1102A(HdrA)は、データパケット1099Aから分離された後に、タグ読取操作1602(Tag Reader)に送られる。タグ読取操作1602では、通信ノードが、パケット1099Aに関連する命令を受信したか否かを判断する。もし、通信ノードがパケット1099Aに関連する命令を受信していなければ、対応するデータは廃棄(Discard)される。この場合の例は、通信ノードが受信した命令のいずれにも関連しない会話データ6、7、8、9を含むサブパケット1092Zにより示されている。一方、もし、データパケットが、「期待通り」である場合、すなわち、タグが、通信ノードが別のサーバから事前に受信した命令と一致すれば、認識されたデータパケット、この例ではサブパケット1090A、1090B、及び1090Cは、混合操作1089に送られる(1603:Identify & Sort)。その後、入力データパケットのために選択された適切なアルゴリズムが、混合アルゴリズムテーブル1050から混合操作1089にロードされる。換言すれば、通信ノードは、HdrA、HdrB、及びHdrCによってそれぞれ識別される3つのパケットを受信したときに、この3つのパケットをテーブル1050内の特定の混合アルゴリズムに従って混合するという命令を事前に受けている。上述したように、この混合アルゴリズムは、スクランブル化操作を含み得る。
この開示によれば、その後、混合操作1089により、サブパケット1093D、1093E、及び1093Fが順次出力される。各パケットは、新しい識別ヘッダー(すなわち、HdrD、HdrE、及びHdrF)でタグ付けされ(1604:Add Header to Data)、これにより、ネットワークの次の通信ノードに伝送する準備ができたデータパケット1099D、1099E、及び1099Fが生成される。単一ルート通信では、これらのデータパケットは、同一ルートを通ってその送信先まで順次送信される。このフロー図では、タグは、混合操作されるパケットの識別に使用されているが、このタグによる識別方法は、特定のスクランブル化及び暗号化操作、またはそれらと逆の操作である復号、アンスクランブル化、及び分割の操作を実施する場合にも同様にも用いることができる。
混合及び分割操作は、複数出力混合・分割操作を使用して、後述するマルチルート伝送及びメッシュ伝送にも適用することができる。図67FのSIMO分割操作を表す記号1101における外側に向かう矢印で表されている様々な出力が、データパケットをネットワークにおける様々な方向、経路、及びルートに伝送するのに使用され得る。通信ノードが受信した命令は、分割された各パケットにヘッダーとして付加されるタグと、分割された各パケットの送信先ノードとを規定する。また、命令を受信したノードは、そのパケットを待つように命令される。同様に、図67Bに示した複数出力混合操作1094は、マルチルート通信にも適用される。後述するが、MISO及びMIMOデータパケット混合操作及びSIMOデータパケット分割操作は、マルチルート伝送及びメッシュルート伝送の実現における重要な要素である。パケットのスクランブル化及び暗号化を行わない場合でも、マルチルート伝送及びメッシュ伝送でのデータパケットのルーティングは、サイバーパイレーツによる意味を持つデータの傍受、パケットスニッフィング、及びネットワークの中間者攻撃のリスクを大幅に軽減する。どの通信ノードも、会話全体またはデータセット全体の送受信を行わないからである。添付図面に示されたサブパケットの数は、説明のみを目的としている。通信されるサブパケットの実際の数は、数十、数百、さらには数千であり得る。
[パケットルーティング]
上述したように、単一ルートは、例えばインターネットなどのパケット交換ベースネットワーク通信に使用されるデータパケットの直列ストリームを伝送する。この単一ルートは経時的に変更されるが、データストリームをパケットスニッフィングで傍受することにより、少なくともある時間区間については、サイバーパイレーツは、コヒーレントシリアル情報の完全なデータパケットを得ることができる。本発明に係るSDNP通信で使用されるスクランブル化及び暗号化を用いない限り、データパケットのデータセグメント配列は、一旦傍受されると中間者攻撃により容易に解読され、効果的な及び繰り返してのサイバー攻撃が可能となる。
このような、単一ルート通信は、インターネット、VoIP、及びOTT通信の基礎であり、現在のインターネットベースの通信のセキュリティが非常に低い理由の1つである。連続的なパケット送信は様々なルートを取ることができるが、ソース及び送信先の通信ノードの近傍では、一連のパケットが同一ルートを通り同一のサーバにより転送される機会が増加する。これは、おそらくは、インターネットでのパケットルーティングは、地理的に寡占的なサービスプロバイダにより決定されるからである。パケットのルーティングをそのソースに向かって遡り、ソースの近傍でパケットスニッフィングするだけで、同一の会話及びデータストリームの多数のパケットを傍受する機会が劇的に増加する。通信は、単一の地理的ベースインターネットサービスプロバイダ(ISP)によってのみ行われるからである。
図68Aに示すように、単一ルート(Single Route)通信1110は、通信ノードNU,Vから別の通信ノード(この例では通信ノードNw,Z)への直列データフロー1111を表す。いかなる場合でも、経路は経時的に変更されるが、各コヒーレントパケットは、ネットワークに順次伝送され、単一ルートを通ってその送信先に伝送される。表記についてだが、通信ノードNU,V、ネットワーク「u」にけるサーバ「v」にホストされた通信ノードを示す。また、通信ノードNw,Zは、ネットワーク「w」にけるサーバ「z」にホストされた通信ノードを示す。ネットワーク「u」及び「w」は、互いに異なるIPSにより所有及び運営されるクラウドを示す。インターネットルーティングの中間においてルーティングされるデータパケットは任意の数のISPにより伝送されるが、データパケットは、その送信先の近傍では、必ず所定のISP及びネットワークにより伝送されることとなるので、同一の会話を含む一連のデータパケットの追跡及びパケットスニッフィングが容易となる。このことは、図68Bに例示的に示されており、単一ルート通信1111は、単一ルート通信ネットワーク1110を表す一連のサーバ1118を介して行われる。図示のように、通信は、通信ノードN0,0で開始され、ネットワーク「0」の通信ノードN0,1、N0,2を介して連続的に伝送され、別のISPにより運営される別のネットワーク「2」の通信ノードN2,3に到着する。その後、データは、最終ノード、すなわちネットワーク「1」上のN1,4、N1,fに送信される。したがって、ネットワーク0に伝送されたパケットデータは、別のISPネットワークに伝送されるまでは、ネットワーク0中に存在する。そして、データパケットがその送信先に接近すると、一連のパケットが、ISPネットワーク1上に存在する同一ノードを通過する可能性が増加する。
インターネットOTT及びVoIP通信に使用される単一ルートパケット通信とは大きく異なり、本発明に係るSDNP通信の一実施形態では、データパケットのコンテンツは、共通のソースまたは発呼者からの情報を含むコヒーレントパケットにより直列的に伝送されるのではなく、複数のソース及び発呼者から断片化された形態で伝送され、動的に混合及び再混合される。これにより生成されたデータは、データ種類が異なるデータ、コンテンツ、音声、映像、及びファイルと、フィラーとしてのジャンクデータとを含む、不完全なデータ断片である。本開示のデータ断片化及び伝送の利点は、暗号化及びスクランブル化が行われていないデータパケットであっても、該データパケットは無関係なデータ及びデータ種類の組み合わせであるので、解読するのがほぼ不可能であることである。
図68Aに示すように、断片化データパケットのSDNP通信は、単一ルート伝送1100のように直列ではなく、マルチルート(multiroute)伝送1112または「メッシュルート(meshed route)」伝送1114を使用して並列に行われる。5つのルートが示されているが、伝送は、2つのルートから最大で数十のルート、または必要に応じてそれ以上のルートを使用して行われる。重要なので強調するが、この通信ネットワークは、インターネット及びパケット交換ネットワークで一般的に用いられる単一の冗長ルーティングではない。すなわち、同一のデータが、任意の単一の経路または複数の経路を通じて、同時に送信される。複数チャンネルを介した完全にコヒーレントなデータパケットの冗長的な伝送及び通信では、ハッキングされるリスクが実際に増加する。サイバーパイレーツによる、同一データの複数のソースのスニッフィング、分析、及び解読が可能であるからである。
一方、SDNP通信では、情報は断片化され、断片化されたデータは、例えば、ルート1113A、1113B、及び1113Dを通じて送信され、ルート1113C及び1113Eにはデータは送信されない。そして、その後の時間では、断片化されたデータは別の方法で分割及び混合され、ルート1113A、1113C、及び1113Eを通じて送信され、ルート1113B及び1113Dにはデータは送信されない。マルチルート伝送112の例を図68Cに示す。この例では、ネットワークは、通信ノードN0,0及びNf、f間の通信を確立するマルチデータパスを構成するよう配置された多数の通信サーバ1118を含む。図示のように、マルチパス伝送は、ネットワーク1−4を表す4つの相互接続サーバ群により行われる。データパス(経路)の1つのルート1113Aは、通信ノードN1,1、N1,2、N1,3、及びN1,4を含む。それと並列のデータパスのルート1113Bは、通信ノードN2,1、N2,2、N2,3、及びN2,4を含む。同様、並列のデータルート1113Cは、通信ノードN3,1、N3,2、N3,3、及びN3,4を含み、並列のデータルート1113Dは、通信ノードN4,1、N4,2、N4,3、及びN4,4を含む。
「メッシュルート」伝送1114の例を図68Dに示す。この例では、通信は、上記のルート1113A−1113Eと、ルート1113A−1113D間を交差接続する交差接続ルート1115A−1115Dとを含む複数の相互作用ルートを通じて送信される。ルートを互いに接続して「メッシュ」を形成することにより、データパケットを、任意の組み合わせのルートを通じて伝送することができ、またさらには、別のルートを通じて送信されたデータパケットと動的に混合または再混合させることもできる。メッシュ伝送1114では、ネットワークは、通信ノードN0,0及びNf、f間の通信を確立するメッシュデータパスを構成するよう配置された多数の通信サーバ1118を含む。図示のように、メッシュ伝送は、水平方向及び垂直方向のデータパスの両方によって相互接続されたサーバにより実施される。水平方向のルートでは、ルート1113Aは、相互接続通信ノードN1,1、N1,2、N1,3、及びN1,4を含み、ルート1113Bは、相互接続通信ノードN2,1、N2,2、N2,3、及びN2,4を含み、ルート1113Cは、相互接続通信ノードN3,1、N3,2、N3,3、及びN3,4を含み、ルート1113Dは、相互接続通信ノードN4,1、N4,2、N4,3、及びN4,4を含む。垂直方向のルートでは、ルート1115Aは、相互接続通信ノードN1,1、N2,1、N3,1、及びN4,1を含み、ルート1115Bは、相互接続通信ノードN1,2、N2,2、N3,2、及びN4,2を含み、ルート1115Cは、相互接続通信ノードN1,3、N2,3、N3,3、及びN4,3を含み、ルート1115Dは、相互接続通信ノードN1,4、N2,4、N3,4、及びN4,4を含む。図68Eに示すように、ネットワークは、斜め方向相互接続1119によって、さらに増補することができる。
マルチルート伝送は、スクランブル化及び暗号化と、様々な方法で組み合わせることができる。スクランブル化を行わないマルチルート伝送の一例を図69に示す。この例では、通信サーバ1118のネットワークにより、データパケット1055を時間t0での通信ノードN0,0から時間tfでの通信ノードNf,fに伝送する。伝送1112の実施時は、通信ノードN0,0は、分割操作1106(Split)を実施し、データセグメント1C及び1Eを含むデータパケット1125Aをデータルート1113Aに送信し、データセグメント1Bを含むデータパケット1125Bをデータルート1113Bに送信し、データセグメント1Dを含むデータパケット1125Cをデータルート1113Cに送信し、データセグメント1A及び1Fを含むデータパケット1125Dをデータルート1113Dに送信する。サブパケットは、データと、それに関連しないサブパケットまたはジャンクデータとの組み合わせを含む。サブパケットはスクランブル化されていないので、データセグメント1125Aにおけるデータセグメント1C及び1Eの順番は、その間、前、または後に別のデータセグメントが挿入された場合でも維持される。最終的に、通信ノードNf,fにおいて、混合操作1089(Mix)が行われ、時間tfで元のデータパケットが再構成される。時間t0及び時間tf間の全時間tnで、データパケット1125A−1125Dのコンテンツは不変に保たれる。
上述したスクランブル化を行わないマルチルート伝送の簡単な変形例を図70に示す。この変形例では、マルチルート伝送は、静的なスクランブル化を含む。これは、入力データパケット1055をスクランブル化した後に分割し、ネットワーク中のマルチルートを通じて伝送することを意味する。具体的には、通信ノードN0,0は、上記の図69の例では分割操作のみを行ったが、この図70の例ではスクランブル化・分割操作1071(Scrambled & Split)を行う。これにより、上記の例と同様に、スクランブル化及び分割されたデータパケット1126A−1126Dが生成される。データパケット1126A−1126Dは、ネットワークのデータパス1113A−1113Dを独立的に伝送される間は、静的及び時不変であり、全時間tnで変更されない。そして、データパケット1126A−1126Dは、最終通信ノードNf,fに到着すると、混合・アンスクランブル化操作1070(Mix & Unscramble)により混合及びアンスクランブル化され、これにより、元のデータパケット1055が復元される。上記の図69の例と比較すると、図70のデータパケット1126A−1126Dの唯一の大きな違いは、スクランブル化されていること、すなわちデータパケットに含まれるデータセグメントの順番が元の順番に維持されていないである。例えば、データパケット1126Aでは、データセグメント1Eがデータセグメント1Bの前に位置しており、データパケット1126Dでは、データセグメント1Dがデータセグメント1Aの前に位置している。静的なパケット通信の短所は、単純なパケットスニッフィングは受けないが、サイバーパイレーツによる、変更されていないデータの分析が可能であることである。しかしながら、任意のルートを通じて伝送される任意のデータパケット中に存在するデータは、不完全であり、断片化されており、スクランブル化されており、かつ、他の無関係なデータソース及び会話と混合されているので、インターネットのOTT通信に対して依然として非常に優れている。
静的スクランブル化を改良するために動的スクランブル化を用いた例を図71Aに示す。この例では、データパケットがネットワークを横断するに従って、パケットスクランブル化、すなわちUS再スクランブル化操作1017が繰り返され、データパケット中のデータセグメントの順番を変更する。これは、所定のルートを伝送される任意のデータパケットにおけるデータセグメント間の位置関係(順番)が、経時的に変化することを意味する。例えば、データパケット伝送ルート1113Aに関しては、通信ノードN1,3でのUS再スクランブル化操作1017の実施直後の時間t3でのデータパケット1126Aにおいては、データセグメント1Eは2番目のスロットに配置されており、4番目のスロットに配置されたデータセグメント1Bよりも前に位置している。そして、通信ノードN1,4でのUSスクランブル化操作107の実施後の時間t4では、データパケット1127Aにおいて、データセグメント1Bは3番目のスロットに配置されており、4番目のスロットに配置されたデータセグメント1Eよりも前に位置している。また、データパケット1126Dを1127Dと比較すると、データセグメント1D及び1Aの位置が変更されているが、前後の順番は変更されていない。この方法は、特定のソースまたは会話からのデータだけでなく、データパケット中の全てのデータセグメントを動的にスクランブル化する技術を用いる。パケットのアンスクランブル化の直後、かつパケットの再スクランブル化の前に、例えばジャンクデータを挿入または削除することにより、パケットの長さを変更することができる。しかしながら、図示した例では、パケットの長さは固定されており、パケット中のデータセグメントの順番だけが変更されている。
図示のように、第1の通信ノードN0,0では、スクランブル化・分割操作1071が実施され、最後の通信ノードNf,fでは、混合・アンスクランブル化操作1070が実施され、それらの間に介在する全ての通信ノードでは、US再スクランブル化操作1017が実施される。各場合で、アンスクランブル化操作は、入力パケットの時間またはステートに依存し、スクランブル化操作は、出力パケットの時間またはステートを使用する。並列マルチルート伝送では、分割は、通信ノードN0,0において一度だけ行われ、混合も、伝送の終端の通信ノードNf,fにおいて一度だけ行われる。方法論的に、この操作順は、「スクランブル化とそれに続く分割操作」と分類される。ここでは順次的または線形的スクランブル化として知られている、図71Aに示したような動的スクランブル化の実施形態では、操作順に関わらず、前の操作を解除するためには、その操作を行った順番と逆の順番で行う必要があり、これにより、コンテンツが何であれ、またはコンテンツの送信元または送信先に関わらず、データパケット中の各データセグメントの位置の再配置をアルゴリズム的に行われる。このようにして、分割後の最初の通信ノード、すなわち通信ノードN1,1、N2,1、N3,1、N4,1は全て、同一のアンスクランブル化操作を実施し、これにより、スクランブル化・分割操作1071によるスクランブル化を解除し、再スクランブル化の前に、データを含む各データセグメントを元の位置に戻す。分割プロセスでは、パケットの位置は、ジャンクデータが入れられた使用しないスロットによって、その元の位置と同じ位置に保たれる。例えば、スクランブル化・分割操作1118により、データセグメント1Bがパケット中の5番目の位置に移動した場合、データセグメント1Bを含んでいる分割後のパケットは、データセグメント1Bを5番目の位置に保つ。パケットのアンスクランブル化により、全ての他のスロットにジャンクデータが入れられるとしても、データセグメント1Bはその元の位置である2番目のスロットに戻される。その後のデータ復元プロセスにおいて、ジャンクデータパケットは除去(デジャンク)されるので、ジャンクデータの配置変更は意味がない。アンスクランブル化操作により特定のデータセグメントのスロット位置が元の位置に戻されると、再びスクランブル化され、そのデータセグメントは新しい位置に移動する。データセグメントの位置をその元の位置に戻すのと、その後のスクランブル化により新しい位置に移動させることの組み合わせは、アンスクランブル化及びそれに続くスクランブル化を含む「再スクランブル化」プロセスを意味するので、US再スクランブル化1017と称す。
図71Bに示した、上述した「線形スクランブル化及びそれに続く分割(線形スクランブル化・分割)」方法(Linear Scramble then Split)の単純化した説明を、本発明の2つの別の実施形態、本明細書では「ネスト化したスクランブル化及びそれに続く分割(ネスト化スクランブル化・分割)」(Nested Scramble & Split)及び「線形分割及びそれに続くスクランブル化(線形分割・スクランブル化)」(Linear Split then Scramble)と称する、と比較する。線形スクランブル化・分割方法では、全てのデータパケットを連続的にかつ繰り返してスクランブル化及びアンスクランブル化することにより、データパケットのセキュリティをリフレッシュする。したがって、スクランブル化・分割操作1071で最初に実施されたスクランブル化は、各データパス(括弧によって記号的に示された複数の並列なデータパスまたはルート)において別々に、US再スクランブル化操作1017により解除しなくてはならない。これは、US再スクランブル化操作1017においてアンスクランブル化を実施できるように、全ての通信ルートにおける最初の通信ノードに、スクランブル化・分割操作1071において分割操作の前のスクランブル化操作を選択及び実施するのに使用された時間、ステート、または数値シードが伝送されることを意味する。その後、各ルートで個別に、そのルートを通るデータパケットのスクランブル化及びアンスクランブル化が行われる。US再スクランブル化操作1017では常に、前のスクランブル化を実行するのに用いられた時間、ステート、または数値シードが使用され、その後、現在時間、ステート、または数値シードを使用して新しいスクランブル化が実施される。最後のステップの混合・アンスクランブル化操作1070では、スクランブル化された構成要素をスクランブル化形態で再合体させ、その後最終的に、最後にスクランブル化のときのステート及び時間を使用してアンスクランブル化し、これにより、元のデータを復元する。
また図71Bに示すように、「ネスト化スクランブル化・分割」では、スクランブル化・分割操作1071により、まず、最初の時間またはステートを使用してデータパケットをスクランブル化し、その後、データを分割して複数のルートに送信する。そして、各データパスにおいて、第1のスクランブル化操作とは無関係に、また、第1のスクランブル化操作を元に戻すことなく、第2のスクランブル化操作926を個別に実施する。スクランブル化操作は、スクランブル化済みのデータパケットに対して実施されるので、スクランブル化は、「ネスト化されている」(すなわち、一方のスクランブル化が、他方のスクランブル化の中に組み込まれている)と見なすことができる。ネスト化されたオブジェクトまたはソフトウェアコードについてのプログラミング用語では、スクランブル化・分割操作1071により実施される最初のスクランブル化は、「外側」のスクランブル化ループを含むが、第2の及び全ての連続的なスクランブル化、US再スクランブル化操作1017は、内側スクランブル化ループである。これは、ネットワークを通るデータは2回スクランブル化され、元のデータを復元するためには2回アンスクランブル化する必要があることを意味する。内側スクランブル化ループの最終的なステップは、各ルートのデータパケットを最初のパケット分割の直後と同一の状態、すなわち同一のデータセグメントシーケンスに復元するアンスクランブル化928を含む。その後、混合・アンスクランブル化操作1070により、データパケットは単一のデータパケットに再構成され、アンスクランブル化される。
上記のネスト化操作と同じコンセプトを、図71Cに示すネスト化分割・混合操作に用いることができる。クライアントのSDNPアプリケーション1335により、テキスト、映像、音声、データファイル(text, video, voice, data)などの様々なデータソースを、混合し、並べ替え、ジャンクデータを挿入し、スクランブル化し、その後に、MSE操作1075により暗号化することができる。鍵1030W及びシード929Wを含むセキュリティ認証情報は、コンテンツを転送するメディアノードを使用することなく、クライアント・セルフォン32からクライアント・タブレット33に直接的に送信することができる。例えば、この情報は、「シグナリングサーバ」ネットワーク(後述する)を使用して、受信側クライアントに送信することができる。シード及び鍵は部外者に対して有用な情報を含まないので、このような情報は、インターネットを介して受信側クライアントに送信してもよい。クライアントのデバイスまたはアプリケーションで実施されるこの最初の操作は、SDNPネットワークから独立してクライアントのセキュリティを実現するのに使用される外側ループ(Outer Loop (Clients Security))の開始を表す。
混合、ジャンク化、スクランブル化、及び暗号化が行われた後、判読不能なクライアントサイファテキスト1080(Client Ciphertex)は、SDNPゲートウェイサーバN0,0に送信され、別の共有秘密、別のアルゴリズム、ステート、及びネットワーク固有セキュリティ認証情報(SDNPクラウドを通じて伝送されるシード929U、鍵1030Uなど)を使用して再度処理される。この内側ループ(Innerr Loop (Network Security))は、クラウドサーバのセキュリティを容易にし、また、クライアントセキュリティループから完全に独立している。入力データパケットに対するゲートウェイSSE操作1140の一部として、データパケットは、マルチルート伝送またはメッシュ伝送のために、2回目のスクランブル化を施され、別個のサブパケットに分割され、サイファテキスト1080U及び1080Vに暗号化される。
最終的には、複数のサブパケットは、送信先のゲートウェイNf,fに到着し、そこで、DMU操作1141により処理され、最初のゲートウェイでの分割操作による変更が元に戻される。すなわち、DMU操作1141は、内側セキュリティループ操作を完了するSSE操作1149による変更を元に戻す。したがって、ゲートウェイNf,fは、入力ゲートウェイN0,0により実施された全てのネットワーク関連セキュリティ対策を元に戻し、元のファイルを復元する。この場合では、サイファテキスト1080Wを、SDNPクラウドに入力されたときと同じ状態に戻す。
このデータパケットは、混合・スクランブル化・暗号化が済んでいるので、サイファテキスト1080Wを含んでいる。したがって、SDNPゲートウェイから出力され、受信側クライアントに送信されるデータパケットは、依然として暗号化されており、受信側クライアントアプリケーション1335以外には解読不能である。復元されたサイファテキストは、その後、時間t0で生成された送信側クライアントステート990(Outgoing State 990)に従って、DUS操作1076により復号及びアンスクランブル化される。そして、最終的には、テキスト、映像、音声、データファイルなどの様々なデータソースを復元するために分割され、これにより、外側セキュリティループは終了する。
したがって、ネットワーク破壊、すなわちサイバー犯罪者がSDNPネットワークのオペレータを装ってSDNPセキュリティを「内側」から破壊することを阻止するために、外側ループセキュリティの認証情報、すなわち共有秘密、シード、鍵、セキュリティゾーンなどは、意図的に、内側セキュリティループの認証情報とは異なるように作成される。
図71Bに示す本発明の別の実施形態では、「線形分割・スクランブル化」のプロセスにおいては、データを分割した後、各データルートにおいて個別にスクランブル化する。つまり、データ分割操作1057の後、データルート毎に、スクランブル化操作926が行われる。そして、各ルートを伝送されるスクランブル化されたデータパケットは、US再スクランブル化操作1017により再スクランブル化される。US再スクランブル化操作1017では、入力パケットは、スクランブル化操作926で入力パケットの生成に使用されたのと同一の時間、ステート、または数値シードを使用してアンスクランブル化される。その後、各ルートで個別に、そのルートを通るデータパケットのスクランブル化及びアンスクランブル化が行われる。US再スクランブル化操作1017では常に、前のスクランブル化を実行するのに用いられた時間、ステート、または数値シードが使用され、その後、現在の時間、ステート、または数値シードを使用して新しいスクランブル化が実施される。最後のステップのアンスクランブル化操作928では、各ルートのデータパケットをその元の状態に、すなわち、最初のパケット分割の直後と同一のデータセグメント配列に復元する。データパケットはその後、混合操作1061により、単一のアンスクランブル化データパケットに再構成される。
混合及びスクランブル化の実施順に関わらず、高いセキュリティを容易にするために、処理されたデータパケットの静的または動的な暗号化が行われる。この組み合わせの一例を図72に示す。図72に示す「静的なスクランブル化及びそれに続く分割並びに動的な暗号化」方法は、下記のステップを含む。
(1)スクランブル化されていないプレーンテキストの入力により開始される。
(2)時間t1で、静的パケットスクランブル化926により、スクランブル化されていないプレーンテキスト(Unscrambled Plaintext)1055をスクランブル化する。
(3)時間t2で、分割操作1106により、スクランブル化されたプレーンテキスト(Scrambled Plaintext)1130を複数の分割化データパケット1131A、1133A・・・に分割する。
(4)時間t3で、分割されたデータパケット1131Aを、互いに異なりかつ互いに重複しない複数の並列ルートに出力する(Split Scrambled Plaintext)。図72では、これらの並列ルートのうちの2つのみを図示していることに留意されたい。
(5)時間t4で、暗号化操作1026により、ステート994に対応する数値シード及び暗号化鍵を使用してデータパケット1131A、1133A・・・を個別に暗号化し、サイファテキスト(Ciphertext)1132A、1134A・・・を生成する。
(6)時間t5で、復号操作1032により、共有秘密、鍵、数値シードなどのステート994情報を使用してデータパケット1132A、1134A・・・を個別に復号し、復号されたプレーンテキスト1131B、1133B...を生成する。
(7)時間t6で、暗号化操作1026により、ステート996に対応する数値シード及び暗号化鍵を使用して復号されたプレーンテキスト1131B、1133B・・・を個別に再暗号化し、サイファテキスト(Ciphertext)1132B、1134B・・・を生成する。
(8)復号操作1032により、共有秘密、鍵、数値シードなどのステート996情報を使用してデータパケット1132B、1134・・・を個別に復号し、復号されたプレーンテキスト1131C、1133C...を生成する。
(9)時間t7で、混合操作1089により、復号されたプレーンテキスト1131C、1133C・・・を混合し、スクランブル化プレーンテキスト1130を生成する。
(10)時間t8で、最初のスクランブル化を実施した時間t1に対応するステート991を使用して、スクランブル化されたプレーンテキスト1130をアンスクランブル化し、スクランブル化されていない元のプレーンテキスト1055を生成する。
図示した例では、最初のデータパケット操作は、スクランブル化、分割、及び暗号化の順の操作(操作1140)を含む。最後の操作は、復号、混合、アンスクランブル化の順の操作(操作1141)を含む。全ての中間ステップは、復号、暗号化の順の操作からなる再暗号化の操作を含む。
この方法をマルチルート伝送に用いた例を図73に示す。この例では、通信ノードN0,0は、スクランブル化・分割・暗号化操作1140A(Scramble Split & Encrypt)を実施し、通信ノードNf,fは、混合・アンスクランブル化・復号操作1141A(Mix & Unscramble、Decrypt)を実施し、他の全ての中間ノードは、再暗号化操作1077を実施する。本発明に係るマルチルート伝送では、静的及び動的なスクランブル化と、静的及び動的な暗号化との様々な組み合わせが可能である。
スクランブル化・分割・暗号化操作に対するオプションとして、本発明の別の実施形態では、図74に示すように、分割・スクランブル化・暗号化操作1140Bにより、データパケットは、分割された後にスクランブル化及び暗号化される。この方法では、まず、入力データパケットは、分割操作1106により分割される。続いて、各ルートにおいて、データパケットは、スクランブル化操作926により個別にスクランブル化され、その後、暗号化操作1026により暗号化される。このようにして生成されたデータパケットはその後個別に、再暗号化操作(Re-Encryption)1077により復号及び再暗号化されるか、またはDUSE再パケット化操作(DUSE Re-Packet)1045により復号・アンスクランブル化・再スクランブル化・再暗号化される。
後述するメッシュルーティングとは対照的に、図69−図73に例示したマルチルート伝送では、ネットワークを横断する各データパケットは、所定の通信ノードで一度だけ処理され、どの通信ノードも、関連するデータまたは一般的な会話を伝送する1以上のデータパケットを処理しない。すなわち、データルート1113A、1113B、1113C、及び1113Dは互いに別個であり、重複していない。
[メッシュルーティング]
再び図68Aに戻り、本開示に係るメッシュルーティング及び伝送は、並列マルチルート伝送と同様であるが、様々なデータパスを通ってネットワークを横断するデータパケットが同一サーバのデータパスを通過する点が異なる。本開示に係る静的なメッシュルーティングでは、データパケットは、まるで他の会話または通信データが存在さえしないかのように、共通サーバを相互作用することなく通過する。しかし、動的なメッシュルーティングでは、データパケットは、通信ノードに入ったときに、そのサーバ内に存在する他のデータパケットと相互作用する。
上述した分割・混合方法を用いて、あるデータパケットからデータセグメントのグループを分割または除去し、別のデータパケットと組み合わせ(混合し)、そのデータパケットの送信元とは異なる送信先に向けて送信することができる。本発明に係るメッシュルーティングは、可変長または固定長データパケットを使用することができる。可変長パケットでは、データパケットに含まれるデータセグメントの数は、所定の通信ノードを通過するトラヒック量に基づいて変更される。固定長パケットのメッシュ伝送では、完全なデータパケットを構成するのに使用されるデータセグメントの数は、ある定数に固定されるか、または、量子化整数インクリメントにより調節された所定のデータセグメント数に固定される。
可変長データパケット及び固定長データパケットの使用における主な違いは、パケットフィラーとしてのジャンクデータの使い方である。可変長データパケットでは、ジャンクデータの使用は、純粋に任意選択であり、主に、セキュリティの観点に基づいて、またはネットワーク伝搬遅延をモニタするために未使用のデータパスを用いるために使用される。一方、固定長データパケットでは、ジャンクデータの使用は必須である。ジャンクデータを使用しないと、通信ノードから出力されるパケットに充填するに用いられる適切な数のデータセグメントを確保することはできないからである。したがって、ジャンクデータは、サーバから出力される各データパケットが、ネットワークを通じて送信先に向けて送信される前に特定の長さに充填されていることを確実にするために、パケットフィラーとして頻繁に使用される。
通信ネットワーク1112を介した静的メッシュデータ伝送の一例を図75に示す。この例では、データパケット1055は、時間t0で通信ノードN0,0により、4つの可変長パケット、具体的には、データセグメント1Fを含むデータパケット1128A、データセグメント1Cを含むデータパケット1128B、データセグメント1A及び1Dを含むデータパケット1128C、及びデータセグメント1B及び1Eを含むデータパケット1128Dに分割される。これらのデータセグメントは、別の可変長パケット及び会話からの別のデータセグメントと組み合わされる。明確にするために、別の会話からのデータセグメントは意図的に省略している。
静的伝送中は、データパケットのコンテンツ、すなわちデータセグメントは、ネットワークを横断しても変更されない。例えば、データセグメント1Fを含むデータパケット1128Aは、通信ノードN0,0から、通信ノードN1、1、N2,1、N3,2、N3,3、N4,3、N4,4の順に伝送されて最終通信ノードNf,fに到着し、最終的には、時間tfで、最終通信ノードNf,fにおいて、パケット1128B、1128C、及び1128Dと混合されてデータパケット1055が再生成(復元)される。同様に、データセグメント1A及び1Dを含むデータパケット1128Cは、通信ノードN0,0から、通信ノードN3、1、N2,3、N1,4の順に伝送されて最終通信ノードNf,fに到着し、最終的には、時間tfで、最終通信ノードNf,fにおいて、パケット1128A、1128B、及び1128Dと混合される。静的メッシュ伝送中は、複数のデータパケットは、混合または相互作用することなく、共通のサーバを通過する。例えば、通信ノードN2、1を通過するデータパケット1128A及び1128B、通信ノードN2、3を通過するデータパケット1128B及び1128C、及び通信ノードN3、3を通過するデータパケット1128A及び1128Dは、互いに阻害したり、コンテンツが変更されたり、またはデータセグメントが交換されたりすることはない。
データパスは、様々な長さであり得、互いに異なる遅延時間を有し得るので、あるデータパケットが、別のデータパケットよりも先に、最終通信ノードNf,fに、到着する場合がある。このような場合、本発明では、通信ノードNf,fは、先に到着したデータパケットを、それに関連する別のデータパケットが到着するまで一時的に保持しなければならない。また、図示した例では、元のデータパケット1055の最終的な混合及び復元が、通信ノードNf,fで行われることが示されているが、実際には、最終的なパケットの再構成、すなわち混合は、ネットワークに接続された、デスクトップ(デスクトップ型コンピュータ)、ノートブック(ノート型コンピュータ)、タブレット、セットトップボックス、セルフォン(スマートフォン)、自動車、冷蔵庫、または他のハードウェアなどのデバイスにおいて行うことができる。換言すれば、メッシュ伝送に関しては、通信ノードと、それに接続されたデバイスとの間の区別はない。すなわち、通信ノードNf,fは、本物の大容量サーバの代わりに、デスクトップコンピュータであってもよい。本開示に係るSDNPクラウドへのデバイスの接続、すなわちラストマイル接続の詳細については後述する。
上述した静的ルーティングは、スクランブル化、暗号化、またはそれらの組み合わせを含む上述した本開示のSDNP方法のいずれかと組み合わせることができる。例えば、図76に示す例では、可変長静的メッシュルーティングは、静的スクランブル化と組み合わされる。図示したように、スクランブル化されていないデータパケット1055は、時間t1で、スクランブル化されたプレーンテキストデータパケット1130に変換され、その後、通信ノードN0,0により分割される(Split)。分割されたパケットはその後、ジャンクデータと混合され、ネットワーク1122を通じて送信される。ルーティングは、上述の例と同様であるが、ルーティングの前にデータセグメント配列が意図的に変更され、ジャンクデータセグメントと混合される点が異なる。例えば、ジャンクパケットを介在させることにより互いに離間されたデータセグメント1D及び1Aを含むデータパケット1132Cは、通信ノードN0,0から、通信ノードN3,1、N2,3、N1,4の順に伝送されて最終通信ノードNf,fに到着し、最終的には、時間tfで、最終通信ノードNf,fにおいて、パケット1128A、1128B、及び1128Dと混合されてデータパケット1055が再生成(復元)される(Mix)。同様に、データセグメント1E及び1Bをその順番で含むデータパケット1132Dは、通信ノードN0,0から、通信ノードN4,1、N4,2、N3,3、N2,4の順に伝送されて最終通信ノードNf,fに到着し、最終的には、時間tfで、最終通信ノードNf,fにおいて、パケット1128A、1128B、及び1128Cと混合される。この最終ノードでは、混合・デジャンク操作中は、ジャンクデータの除去を行うことにより、元のスクランブル化データ1130が生成される。そして、アンスクランブル化後に、元のデータ1055が復元される。
本発明に係る動的メッシュ伝送を実施するためには、各通信ノードにおいてパケットを処理して、各パラメータのコンテンツ及び伝送方向を変更しなければならない。この処理は、複数の入力データパケットを合体させ、単一の長いデータパケットを生成するか、または同一のサブパケットを含むデータバッファを使用してあたかも長いデータパケットが生成されたかのようにし、その後、これらのパケットを互いに異なる組み合わせに分割し、互いに異なる送信先に送信することを含む。このプロセスは、上述したように、可変長または固定長パケットを使用することができる。図77Aは、通信ノードNa,b、Na,d、Na,f、Na,hを含むSDNP通信ネットワークを示す。上記の各通信ノードは、ネットワーク「A」内に存在し、可変長パケット1128B、1128D、1128F、及び1128Hを通信ノードNa,jに送信する。通信ノードNa,jでは、混合操作1089が行われ、パケットを合体させて、短いまたは長いデータパケット1055を生成する。パケット1055はその後、通信ノードNa,jにおいて分割操作1106により分割され、これにより生成された新しい可変長データパケット1135N、1135Q、及び1135Sが、通信ノードa,n、Na,q、Na,sに送信される。通信ノードNa,vには、データが送信されないか、またはジャンクデータ1135Vが送信される(none/junk)。いずれの場合でも、入力データの長さは可変であり、パケットは、図示しない他の通信、会話、コミュケからのジャンクデータを含み得る。図示のように、混合操作1089と分割操作1106との組み合わせは、通信ノードNa,jにより実施され、これにより、データ混合・分割操作1148による動的なメッシュルーティングが容易になる。後述する方法によって、新しい分割パケット1135N、1135Q、1135S、及び1135V(ジャンクデータを含むと仮定する)及びそれらのルーティングは、SDNPネットワークによりまたは予め定められたアルゴリズムを使用して通信ノードNa,vに送信された動的な命令、またはそのような入力命令及び入力信号が存在しない場合は静的な命令によって決定される。
入力パケットを処理(すなわち混合)した後に分割して様々な組み合わせの新しいパケットを生成するためには、通信ノードNa,jは、入力データが到着する前に、処理するべきデータパケットをどのようにして識別し、どのような処理を行うかという命令を受信しなければならない。これらの命令は、共有秘密としてローカルに保管された所定のアルゴリズム、すなわち予め定められたアルゴリズムまたは命令のセットを含む。または、操作シーケンスは、理想的にはデータを伝送するサーバではなくルーティングを制御する別のサーバからノードに事前に送信された「動的な」制御命令に明示的に定義されている。入力データに対して何をするべきかという命令がデータストリーム中に(メディアまたはコンテンツの一部として)埋め込まれている場合、ルーティングは、「単一チャンネル」通信と称される。データパケットのルーティングが別のサーバにより決定され、メディアサーバに通信される場合、データルーティングは、「デュアルチャンネル」(または、場合によってはトリチャンネル)通信と称される。単一及びデュアル/トリチャンネル通信の操作の詳細については後述する。
命令が伝送される方法に関わらず、メディアノードは、入力データを認識し、特定のデータパケットに関する命令を取得しなければならない。この識別情報または「タグ」は、対象となるパケットを識別するための、郵便番号または宅配便のルーティングバーコードのような役割を果たす。しかしながら、図77Aに示した入力データパケット1128B、1128D、1128F、及び1128Hは、パケットの音声またはテキストのコンテンツのみを示し、タグは示さない。パケットヘッダー内に存在するタグ付けされたデータを使用して、特定のデータパケットを識別し、入力データパケットの混合方法を決定する処理は、図67Iを参照して上述した。データパケット内に含まれるタグ及びルーティング情報の特定の例については、後述する。通信ノードNa,jは、処理対象のデータパケットを識別するための情報、並びに、混合操作1089及び分割操作1106で使用するアルゴリズムについての情報を取得した後に、入力データの処理が可能となる。
固定長データパケットの場合の、図77Aと同等の操作例を図77Bに示す。この例では、通信ノードNa,b、Na,d、Na,f、及びNa,hは全てネットワーク「A」中に存在しており、固定長データパケット1150B、1150D、1150F、及び1150Hを通信ノードNa,jに送信する。通信ノードNa,jでは、混合・分割操作1148が実施され、これにより、新しい固定長データパケット1151N、11512Q、及び1151Sが生成され、生成された各データパケットは、通信ノードa,n、Na,q、Na,sに送信される。通信ノードNa,vには、データが送信されないか、またはジャンクデータ1151Vが送信される(none/junk)。いずれの場合でも、入力データの長さは固定されており、データパケットの固定長を維持するために、入力データは、必然的に、ジャンクデータフィラーまたは図示しない他の会話または通信からのデータを含む。すなわち、入力データは、予め定められた数のデータセグメントを含む。
ネットワークレイヤ3プロトコルにおいて説明したサーバの相互接続は、無数の接続を含み、各通信ノードの出力は、別の通信ノードの入力に接続される。例えば、図77Cに示すように、通信ノードNa,bの出力は、通信ノードNa,j、Na,q、Na,v、及びNa,fの入力に接続される。混合・分割操作1149Qを実施する通信ノードNa,qの出力は、通信ノードNa,b、Na,j、Na,f、及び図示しない別の通信ノードの入力に接続される。同様に、混合・分割操作1149Fを実施する通信ノードNa,fの出力は、通信ノードNa,q、Na,j、Na,v、及び図示しない別の通信ノードの入力に接続され、混合・分割操作1149Jを実施する通信ノードNa,jの出力は、通信ノードNa,q、Na,v、及び図示しない別の通信ノードの入力に接続され、混合・分割操作1149Vを実施する通信ノードNa,Vの出力は、通信ノードNa,f、及び図示しない別の通信ノードの入力に接続される。
出力・入力接続はネットワーク記述であり、単なるPHYレイヤ1接続または回路ではないので、デバイス間のこれらのネットワーク接続は、上述したネットワークまたはクラウドに対するレイヤ1PHY接続及びレイヤ2データリンクを有する任意のデータについて随意に確立及び解除することができる。また、この接続は、可能性があるネットワーク通信パスを表し、固定された恒久的な電気回路ではないので、通信ノードNa,bの出力が通信ノードa,qの入力に接続され、通信ノードa,qの出力が通信ノードa,bの入力に接続されるという事実は、電気回路の場合のようにフィードバックまたは競合状態を形成しない。
実際、ネットワークに電気的に接続された任意のコンピュータを、ソフトウェアを使用して、随意に、通信ノードとして動的に追加または除去することができる。ネットワークへのコンピュータの接続は、ネームサーバまたはネームサーバ機能を実施する任意のサーバに通信ノードを「登録」することを含む。背景技術の欄で説明したように、インターネットでは、ネームサーバは、IPv4またはIPv6フォーマットを使用したネットワークアドレスとしての電気的識別子を識別するコンピュータネットワークである。最上位のインターネットネームサーバは、グローバルDNS(ドメインネームサーバ)である。いくつかのコンピュータは、リアルインターネットアドレスを使用せず、その代わりにNAT(ネットワークアドレストランスレータ)により割り当てられたアドレスを有する。
同様に、本開示のセキュア動的ネットワーク及びプロトコルは、ネームサーバ機能を使用して、SDNPネットワーク中の各デバイスを追跡する。SDNP通信ノードが起動されるたびに、またはコンピュータ用語では、SDNPノードのソフトウェアがブートアップされるたびに、新しいデバイスは、それがオンラインであり通信可能であることを他のSDNPノードに知らせるために、該デバイスをネットワークのネームサーバに動的に登録する。トリチャンネル通信では、SDNPネームサーバは、命令及び制御に使用されたサーバ(すなわちシグナリングサーバ)、及び実際の通信コンテンツを伝送するメディアサーバから分離される。単一チャンネル通信では、一連のサーバは、ネームサーバのタスクと、制御ルーティング及びコンテンツ伝送との両方を実施しなければならない。したがって、本明細書中に説明した3種類のSDNPシステム、単一チャンネル、デュアルチャンネル、トリチャンネルは、伝送、シグナリング、及びネーミング機能に使用されるサーバによって互いに区別される。単一チャンネルシステムでは、通信ノードサーバは、3つの機能を全て実施する。デュアルチャンネルシステムでは、シグナリング及びネーミング機能は、伝送機能から分離され、シグナリングサーバにより実施される。トリチャンネルシステムでは、ネーミング機能は、伝送及びシグナリング機能から分離され、ネームサーバにより実施される。実際には、所定のSDNPネットワークは、一様である必要はなく、単一チャンネルの部分、デュアルチャンネルの部分、及びトリチャンネルの部分などの複数の部分に細分されていてもよい。
オンラインになった任意の新しいSDNP通信ノードは、そのSDNPアドレスをネームサーバに通知することにより、該ノードを登録する。このアドレスは、インターネットアドレスではなくSDNPネットワークのみが知るアドレスであり、インターネットを通じてアクセスすることはできない。NATアドレスと同様に、SDNPアドレスは、インターネットプロトコルに従うにも関わらず、インターネットにとっては意味を持たないためである。したがって、本開示に係るセキュア動的ネットワーク及びプロトコルを使用する通信は、「アノニマス」通信と称することができる。インターネット上でIPアドレスが認識されず、前のSDNPアドレスと次のSDNPアドレス(すなわち、パケットの次の送信先)のみが、所定のパケット中に存在するからである。
SDNPネットワークの重要な実施形態は、一日の任意の時間でのトラヒックの増減に応じて、クラウドの利用可能な帯域幅の総量を自動的に調節する機能である。トラヒックが増加したときにはSDNP通信ノードがネットワークに追加され、トラヒックが減少したときにはSDNP通信ノードがネットワークから削除され、これにより、安定性及び性能を損なうことなしにネットワークコストが最小化される。
この特徴は、本開示に係るSDNPネットワークの帯域幅及び広がりが、操作コストが最小となるように動的に調節されること、すなわち、利用されないノードの使用されないコンピュートサイクルには支払わず、需要がそれを要求したときに能力を増加させることを意味する。SDNPネットワークのソフトウェアにより実施される、すなわち「ソフトスイッチ」実施形態の利点は、現在依然として一般的な、ハードウェアにより実施されるパケット交換通信ネットワークの固定ハードウェア及び高コストと対して著しく対照的である。ソフトスイッチにより実現されたネットワークでは、SDNP通信ソフトウェアがロードされ、ネットワークまたはインターネットに接続された任意の通信ノードは、必要に応じてSDNPに追加することができる。例えば、図77Dに示すように、例ノードまたはその接続部を横断する通信についてのトラヒックの要求が生じたときに、コンピュータサーバ1149D、1149B、1149F、1149Q、1149H、1149N、1149J、1149S、及び1149Vを、対応する通信ノードNa,d、Na,b、Na,f、Na,q、Na,h、Na,n、Na,j、Na,s、及びNa,vに追加することができる。
したがって、SDNPクラウドの各リンクは、レイヤ1PHYとそれに対応するデータリンクレイヤ2との常にオンの物理的接続であると見なすことができ、SDNPが新しい通信ノードを必要に応じて起動(すなわち駆動)するときにのみ確立されるレイヤ3ネットワーク接続と組み合わされる。したがって、ソフトスイッチベースSDNPクラウド自体は調節可能及び動的であり、要求に応じて変更される。帯域幅及び信頼性が未知ですらある任意のデバイスまたはコンピュータを通じてデータがリレーされるピアツーピアネットワークとは異なり、各SDNP通信ノードは、事前に選択されたデバイスであり、SDNPソフトスイッチソフトウェアがロードされており、SDNPクラウドへの参加を完全に認証されており、情報コンテンツ(例えば共有秘密)及びシンタックス(例えばヘッダーの特定のフォーマット)を含む、それの予め設定されたセキュア通信プロトコルを使用してデータを伝送する。共有秘密は、アルゴリズム、シード生成器、スクランブル化方法、暗号化方法、及び混合方法を表すが、SDNPデータパケット全体のフォーマットは規定しない。セキュリティ設定、すなわち特定の時間及び特定の通信に使用される設定は、共有秘密の種類であるが、共有秘密は、未使用のものも含むアルゴリズムの全リストも含む。ソフトウェアは暗号化されており、暗号化及び共有秘密は動的に処理されるので、SDNPコードが例えばAmazon(登録商標)やMicrosoft(登録商標)などの公的なクラウドにホストされている場合でも、サーバのオペレータは、伝送される全データ量以外は、SDNP通信ノードをトラヒックするデータのコンテンツをモニタする手段がない。
動的ネットワークの自然な延長として、セルフォン、タブレット、ノートブック(ノート型パソコン)などの新しいSDNPクライアントも、その起動時に、SDNPネームサーバまたはゲートウェイに自動的に登録される。したがって、SDNPクラウドだけでなく、接続に利用可能な様々なクラウドも、接続されたネットワーク及びアクティブなユーザの数を正確に反映して、常に自動的に調節される。
[スクランブル化または暗号化されたメッシュルーティング]
動的な自律的機能をサポートするために、各SDNP通信ノードは、データの混合・分割、スクランブル化・アンスクランブル化、暗号化・復号の予め定められた組み合わせを並列に実行し、これにより、複数の会話、通信、及びセキュリティのセッションを同時にサポートする。SDNPネットワークのソフトスイッチ実施形態では、全ての操作が実施され、それらの操作を実施する順番は、データパケットにより伝送された共有秘密により定義された、またはメディアの伝送に使用されるSDNP通信ノードから独立した別個の命令及び制御用の並列信号チャンネルにより定義されたソフトウェアベース命令を通じて完全に設定されている。様々な順番及び組み合わせ可能であるが、ここに示した例は、SDNPベース通信のフレキシビリティを表すことを意図しており、説明された様々なSDNP操作の適用を、データ処理ステップの特定の順番に限定するものではない。例えば、スクランブル化は、混合または分割の前または後に実施することができる。また、暗号化は、全操作における最初、最後、または中間に実施することができる。
このような操作の例として、再スクランブル化・混合・分割操作1115を図78Aに示す。この例では、一連の特定のSDNP操作が、通信ノードNa,b、Na,d、Na,f、及びNa,hから入力された、スクランブル化されていない複数の入力データパケットに対して実施される。各入力データパケットは、混合・分割操作1148により混合された後に分割され、これにより生成された新しいデータパケットは、その後、スクランブル化操作926により再スクランブル化される。これにより生成された生成されるパケットは、メッシュ通信ネットワークに送信される。図78Bに示すように、各入力に対する複数の独立したアンスクランブル化操作928と、それに続く混合操作1089との組み合わせのシーケンスを「メッシュ入力のアンスクランブル化・混合」操作1156Aと称する。便宜上、このシーケンスを、アンスクランブル化・混合操作1161によって記号的に表す。
図78Cに示す、アンスクランブル化・混合操作と逆の操作である「メッシュ出力のための分割・スクランブル化」操作1156Bは、分割操作1106によりデータパケットを分割した後に、各出力に対して、複数の独立したスクランブル化操作926を実施することを含む。便宜上、このシーケンスは、分割・スクランブル化操作1162によって記号的に表す。図78Dに示すように、この2つのシーケンスの組み合わせ、すなわち、メッシュ入力のアンスクランブル化・混合操作1156Aと、それに続くメッシュ出力のため分割・スクランブル化操作1156Bとの組み合わせを、メッシュ伝送のための「再スクランブル化及び再混合」操作1163として記号的に示す。
上述した、メッシュ入力のアンスクランブル化・混合操作1161と、それに続くメッシュ出力のため分割・スクランブル化操作1162を図79Aに示す。図示のように、通信ノードNa,b、Na,d、Na,f、及びNa,hから入力された固定長データパケット入力1157B、1157D、1157F、及び1157Hは、通信ノードNa,jにおいてメッシュ入力のアンスクランブル化・混合操作1161により処理され、これにより長いデータパケット1160が生成される。操作1161は、入力データパケットを混合操作の前に個別にアンスクランブル化する操作を含むが、このステップは不要なのでスキップした。固定長データパケット入力1157B、1157D、1157F、及び1157Hは、スクランブル化されないためである。長いデータパケット1160は、次に、分割・スクランブル化操作1162により処理され、これにより生成された混合・スクランブル化されたデータパケット1158N、1158Q、1158S、及び1158Vは、メッシュ伝送のために、対応する通信ノードにNa,n、Na,q、Na,s、及びNa,vに送信される。
スクランブル化された固定長入力データパケット1165B、1165D、1165F、及び1165Hに対しての、図79Aに示した上記の例と同一のメッシュ伝送のための同一の混合・分割操作を図78Bに示す。これらのデータパケットは、識別番号を持たないデータセグメントにより示されるジャンクデータセグメントを含んでいる。通信ノードNa,jでのアンスクランブル化・混合操作1161により、図79Aに示した上記の例よりも短いパケット1166が生成される。これは、ジャンクデータが意図的に除去されたためである。本発明の別の実施形態では、ジャンクパケットは維持される。長いパケット1166は、次に、分割・スクランブル化操作1162により処理され、これにより生成された複数のデータパケット出力1165N、1165Q、1165S、及び1165Vは、メッシュ伝送のために、対応する通信ノードにNa,n、Na,q、Na,s、及びNa,vに送信される。これらのデータパケット出力は、データパケットを所定数のデータセグメントで満たすために、ジャンクデータが再挿入されている。一般的には、データパケット1165N及び1165Sに示すように、ジャンクデータセグメントはデータパケットの末端に挿入することが好まくかつ容易であるが、アルゴリズムの規定に応じて、ジャンクパケットは、データパケットにおける任意の位置、例えば、データパケット1165Vに示すように、データパケットの先端に挿入してもよい。
本発明による、SDNP通信ソフトウェアを実行する相互接続されたコンピュータサーバ1118を含む通信ネットワーク1114における静的スクランブル化による動的メッシュデータ伝送の例を図80に示す。通信ノードN0,0は、スクランブル化・分割操作1162(Scramble & Split)を実施し、通信ノードNf,fは、混合・アンスクランブル化操作1161(Mix & Unscramble)を実施し、他の全ての通信ノードは、再スクランブル化・再混合操作1163を実施する。この例では各サーバは単一の操作のみを実施することが示されているが、コンピュータサーバ1118にインストールされたSDNPソフトウェアは必要に応じて、スクランブル化・分割操作1162、アンスクランブル化・混合操作1161、再スクランブル化・再混合操作1163、及び本明細書中に開示した他の操作を含む任意のSDNP機能を実施できることを理解されたい。
実施においては、まず、入力データパケット1055が、時間t1で、通信ノードN0,0によりスクランブル化され、これにより、スクランブル化データパケット1130が生成される。生成されたスクランブル化データパケット1130は、可変長の4つのパケット、具体的には、データセグメント1Fを含み、1番目のスロットにジャンクデータを含むデータパケット1170A、データセグメント1Cを含むデータパケット1170B、データセグメント1A、1Dをその逆の順番(すなわち、1D、1Aの順番)で含むデータパケット1170C、及びデータセグメント1B、1Eをその順番(すなわち、1B、1Eの順番)で含むデータパケット1170Dに分割される。データセグメントは、可変長の別のデータパケットまたは会話からの別のデータセグメントと組み合わされる。別の会話からのデータセグメントは、明確にするために意図的に省略している。データパケットがネットワークを横断しそれらのコンテンツが分割及び再混合されるに従って、時間が経過することを理解されたい。しかし、説明を明確にするために、通信プロセスの開始及び完了を示す例示的な時間を除いて、時間の図示は意図的に省略している。
データパケットコンテンツの動的メッシュ伝送中は、データセグメントは、ネットワークを横断するに従って変更される。例えば、ジャンクデータセグメント及びデータセグメント1Fを含むデータパケット1170Aは、まず、通信ノードN0,0から通信ノードN1,1に送信され、その後、通信ノードN1,1から通信ノードN2,1に送信される。そして、通信ノードN2,1において、データセグメント1Cを含むデータパケット1170Bと混合され、これにより、データセグメント1C、1F及びジャンクデータセグメントをその順番で含むデータパケット1171Aが生成される。生成されたデータパケット1171Aは、通信ノードN1,2に送信され、その後、通信ノードN1,2から通信ノードN2,3に送信される。同じ期間に、データセグメント1D、1Aをその順に含むデータパケット1170Cは、通信ノードN0,0から通信ノードN3,1に送信され、そのまま変更されずに、データパケット1171Cとして通信ノードN3,1から通信ノードN3,2に送信される。通信ノードN3,1で実施される混合・分割操作の一部として、コンテンツを含まずジャンクデータだけを含むデータパケット1171Bが生成され、通信ノードN2,1に送信される。コンテンツを含まないジャンクパケットをルーティングする理由は2つある。第1の理由は、通信ノードN3,1から複数のデータパケットを出力することによりサイバーパイレーツを混乱させるためであり、第2の理由は、未使用のリンクまたはルートからネットワーク内の最新の伝搬遅延データを得るためである。
通信ノードN3,2に入力されたデータパケット1171Cは、2つのデータパケット、データパケット1172C及びデータパケット1172Bに分割される。データパケット1172Cは、データセグメント1Dを含んでおり、通信ノードN3,3に送信される。データパケット1172Bは、データセグメント1Aと、ジャンクデータを含む先頭のデータセグメントとを含んでおり、通信ノードN2,3に送信される。通信ノードN2,3に到着したデータパケット1172Bは、入力パケット1171Aと混合され、データセグメント1F、1Aを含み通信ノードN1,4に送信されるデータパケット1173Aと、データセグメント1Cを含み通信ノードN3,4に送信されるデータパケット1173Bとに分割される。通信ノードN1,4に到着したデータパケット1173Aは、末尾にジャンクデータが追加される。これにより生成されたデータパケット1174Aは、時間t4で、最終通信ノードNf,fに送信される。通信ノードN3,4に到着したデータパケット1173Bは、データセグメント1Cの末尾にジャンクデータが追加され、その後、時間t16(図示せず)で最終通信ノードNf,fに送信される。
一方、データセグメント1E及び1Bを含むデータパケット1170Dが、通信ノードN0,0から通信ノードN4,1に送信され、その後、通信ノードN4,1から通信ノードN4,2に送信される。そして、通信ノードN4,2において、再スクランブル化され、データセグメント1B及び1Eをその逆の順(すなわち、1E、1Bの順)で含むデータパケット1172Dが生成される。生成されたデータパケット1172Dは、通信ノードN3,3に送信され、データパケット1172Cと混合した後に分割され、これにより新しいデータパケット1173C及び1173Dが生成される。データセグメント1Bを含むデータパケット1173Cは、通信ノードN2,4に送信され、その後、時間t15で、データパケット1174Bとして最終サーバNf,fに送信される。データパケット1173C及び1174Bは互いに同一であり、各々データセグメント1Bのみを含んでいる。すなわち、パケット1173Cは通信ノードN2,4により実際には変更されない。これは、通信ノードN2,4における、時間t15及びそれに対応するステート(例えば、シード、鍵、共有秘密、アルゴリズムなど)と一致する。他方のデータパケット、すなわち通信ノードN3,3から出力されたデータパケット1173Dは通信ノードN4,3に送信され、その後、通信ノードN4,3から通信ノードN4,4に送信される。そして、通信ノードN4,4において、時間t17でそれに対応するステート1137を使用して、データセグメント1Eとデータセグメント1Dとの間にジャンクデータセグメントが挿入される。互いに異なる時間(t14、t15、t16、及びt17)で互いに異なるステートを使用して各々生成されたデータパケット1174A、1174B、1174C、及び1174Dはその後通信ノードNf,fで、アンスクランブル化・混合操作1161によりアンスクランブル化された後に混合され、これにより、時間tfで、スクランブル化されていない元のデータパケット1055が再生成される。全てのノードは入力データパケットに対してどのような処理を行うべきかを知っている。ノードが、パケットのステートまたは他の識別子に対応する一連の共有秘密を知っているか、または、ノードが、特定のパケットを受信したときにどのような処理を行うかを、シグナリングサーバと呼ばれる別のサーバから事前に知らされているためである。
静的メッシュ伝送の場合と同様に、動的メッシュ伝送では、データパスの長さは互いに異なり得るため、互いに異なる伝搬遅延を示し得る。この結果、あるデータパケットが、他のデータパケットよりも先に、最終通信ノードNf,fに到着する場合がある。このような場合、本発明では、最終通信ノードNf,fは、先に到着したデータパケットを、それに関連する別のデータパケットが到着するまで一時的に保持しなければならない。また、図示した例では、元のデータパケット1055の最終的な集合及び復元が通信ノードNf,fで実施されることを示しているが、実際には、最終的な再構成は、ネットワークに接続された、デスクトップ、ノートブック、セルフォン、タブレット、セットトップボックス、自動車、冷蔵庫、または他のハードウェアなどのデバイスにおいて行うことができる。換言すれば、メッシュ伝送に関しては、通信ノードと、それに接続されたデバイスとの間の区別はない。すなわち、通信ノードNf,fは、本物の大容量サーバの代わりに、デスクトップコンピュータであってもよい。本開示に係るSDNPクラウドへのデバイスの接続、すなわちラストマイル接続の詳細については後述する。
上述したように、上記の動的なルーティングは、1または複数の本開示のSDNP方法(上述したように、スクランブル化、暗号化、またはその組み合わせを含む)と組み合わせることができる。そのような操作の一例である、図81Aに示す暗号化・混合・分割操作1180は、通信ノードNa,b、Na,d、Na,f、及びNa,hから入力された複数の入力データパケットに対して、特定の順番のSDNP操作を行う。このSDNP操作は、各入力データパケットに対する復号操作1032、混合・分割操作1148によるデータパケットを混合及び分割、暗号化操作1026による新しいデータパケットの再暗号化、及びそれらのパケットをメッシュ通信ネットワークを通じて送信することを含む。図示のように、入力データパケットは事前に暗号化されており、判読不能なサイファテキスト1181A、1183A・・・を含む。サイファテキストの復号に必要な、各入力パケットの生成に使用された時間、ステート、及び暗号化アルゴリズムに対して特有の復号鍵は、復号を実施する前に、復号操作1032に伝送されなければならない。復号鍵は、特定のデータパケットまたは通信と共に送信される暗号化されていないデータパケット内に存在する共有秘密または鍵として、あるい、別の通信チャンネルから提供される鍵として伝送される。後述するが、鍵は、対称的または非対称的であり得る。鍵の伝送については、後述する。
復号後は、データパケットは、プレーンテキストパケット1182A、1184A・・・に変換され、その後、通信ノードNa,jで混合され、プレーンテキストを含む長いパケット1185が生成される。長いパケット1185は、その後、新しいプレーンテキストパケット1182A、1182B・・・に分割される。特定の時間またはステートに基づく個別の新しい暗号化鍵を使用して、データパケットはその後暗号化される。これにより生成された新しいサイファテキスト1181B、1183B・・・は、その後、別の通信ノードに送信される。図81Bに示すように、各入力に対して個別の復号操作1032を実施した後に混合操作1089により混合するシーケンスは、復号・混合操作1090によって記号的に表示される「メッシュ入力の復号・混合」を含む。図81Cに示した、メッシュ出力のための「分割・暗号化」操作は、分割操作1106によりデータパケットを分割し、その各出力に対して暗号化操作1026を個別に行うシーケンスを含む。便宜上、このシーケンスを、分割・暗号化操作1091によって記号的に表示する。
図82Aは、本発明に係るメッシュ伝送のための、複数の通信ノードNa,b、Na,d、Na,f、及びNa,hから入力されたデータパケットの再暗号化、再スクランブル化、及び再分割の例を示す。通信ノードa,jに入力された入力データパケットに対して、再暗号化・再スクランブル化・混合・分割操作1201が実施される。各入力データパケットは個別に、復号操作1032により復号され、アンスクランブル化操作928によりアンスクランブル化され、その後、混合操作1089により混合され、分割操作1106により複数の新しいデータパケットに分割される。各データパケットはその後、スクランブル化操作926により個別に再びスクランブル化された後、メッシュ通信ネットワークを用いて送信先に伝送される。図示したように、入力データパケットは、予め暗号化されており、判読不能なサイファテキスト1194A、1197A・・・を含む。
サイファテキスト入力のアンスクランブル化及び復号に必要とされる、各入力パケットの生成に使用された時間、ステート、及び暗号化アルゴリズムに対応する時間及びステート情報、共有秘密、数値シード、アルゴリズム、及び復号鍵は、復号及びアンスクランブル化操作928を実施する前に、復号操作1032に送信しなければならない。復号鍵は、特定のデータパケットまたは通信と共に送信される暗号化されていないデータパケット内に存在する共有秘密、鍵、または数値シードとして、あるいは、別の通信チャンネルから提供される鍵または数値シードとして伝送される。鍵は、対称的または非対称的であり得る。鍵及び数値シードの伝送については、後述する。全てのノードは入力データパケットに対してどのような処理を行うべきかを知っている。ノードが、パケットのステートまたは他の識別子(例えばシード)に対応する一連の共有秘密を知っているか、または、ノードが、特定のパケットを受信したときにどのような処理を行うかを、シグナリングサーバと呼ばれる別のサーバから事前に知らされているためである。
復号後、プレーンテキストパケット1195A、1198A・・・は、アンスクランブル化操作928によりアンスクランブル化され、アンスクランブル化プレーンテキストパケット1196A、1199A・・・が生成される。アンスクランブル化プレーンテキストは、通信ノードNa,jにおいて混合操作1089により混合され、これにより長いパケット1220が生成される。長いパケット1220はその後、分割操作1106により新しいアンスクランブル化プレーンテキスト1196B、1199B・・・に分割された後、スクランブル化操作926により、現在の時間またはシードに対応する新しい数値シードを使用して再びスクランブル化される。これにより生成されたスクランブル化されたプレーンテキスト1195B、1198・・・は、次に、暗号化操作1026により、特定の時間またはステートに基づく新しい個別の暗号化鍵を使用して再び暗号化される。これにより生成された新しいサイファテキスト1194B、1197B・・・はその後、別の通信ノードに送信される。
上述したように、本発明に係るSDNP通信は、暗号化、スクランブル化、混合、分割、アンスクランブル化、及び復号の任意のシーケンスを含むことができる。少なくとも理論的には、実行されるシーケンスが既知の順番で行われる場合、数学的には下記の式で表される。
y=H{G[F(x)]}
上記の式において、最内側の操作Fが最初に行われ、最外側の操作Hが最後に行われる。そして、元のデータxを復元するためには、元の操作と逆の操作を、元の操作と逆の順番で行わなければならない。すなわち、下記の式で表される。H−1は最初に行われ、F−1は最後に行われる。
x=F−1{G−1[H−1(y)]}
このファーストイン・ラストアウト(first-in last-out)方法の操作シーケンスは、変更を元に戻して元のコンテンツを復元するが、これは、このプロセスの過程にパケットからのデータの除去またはパケットへのデータの挿入が行われない場合に限る。パケットからのデータの除去またはパケットへのデータの挿入が行われた場合、暗号化されたファイルは汚染され、復元することはできない。例えば、様々な暗号化方法を用いて暗号化されたデータを混合することにより、まずは元の構成要素に復元しない限りは復号することはできないデータが生成される。SDNP伝送を用いた動的メッシュ通信の主な利点の1つである、複数の会話を動的に混合、分割、及びルーティングすることにより全てのコンテンツを隠すことができるという利点は、所定の通信ノードが必要に応じたパケットの混合及び分割ができない場合には失われる。
そのため、SDNP通信の一実施形態では、スクランブル化・暗号化操作の前にデータを混合するのではなく、通信ノードから出力される各出力データパケット出力に対してスクランブル化及び暗号化を個別に実施する。同様に、通信ノードに入力された入力データパケットが、暗号化、スクランブル化、またはその両方がなされている場合、入力データパケットは、混合する前に、すなわち長い混合パケットを生成する前に、個別にアンスクランブル化及び復号する必要がある。したがって、入力パケットに対する好ましい操作シーケンスは、通信ノードの各入力に対して、入力データの復号、アンスクランブル化、及び混合をその順番で行うか、または、別の操作シーケンスでは、入力データのアンスクランブル化、復号、及び混合をその順番で行うことである。
前者の場合を図82Bに示す。図示のように、各入力に対して個別に行われる復号操作1032及びアンスクランブル化操作928と、それにより生成されたデータパケットを混合する混合操作1089とを含む復号・アンスクランブル化・混合操作が、DUM操作1209として概略的に、また、DUM操作1210として記号的に示されている。各入力上に存在するスイッチ1208A及び1208Bは、必要に応じて、データパケットを、復号操作1032またはアンスクランブル化操作928を迂回させるのに使用される。例えば、特定の入力において両方のスイッチが「開」である場合、全てのデータパケットは、復号操作1032及びアンスクランブル化操作928の両方を通らなければならない。そのため、データパケットは、必然的に、復号及びアンスクランブル化されることとなる。両方のスイッチが閉である場合、操作は「ショートアウト(shorted out)」され、データは、復号操作1032またはアンスクランブル化操作928のいずれによっても処理されない。すなわち、入力データは、変更されず、混合操作1089に伝送される。
スイッチ1208Aが閉であり、スイッチ1208Bが開である場合、データは、復号操作1032は迂回するが、アンスクランブル化操作928は通る。これは、入力データパケットは、アンスクランブル化されるが、復号されないことを意味する。一方、スイッチ1208Aが開であり、スイッチ1208Bが閉である場合、データは、復号操作1032は通るが、アンスクランブル化操作928は迂回する。これは、入力データパケットは、復号されるが、アンスクランブル化されないことを意味する。復号操作1032及びアンスクランブル化操作928は一般的にソフトウェアにより実現されるので、信号を迂回させる物理的なスイッチは存在しない。スイッチ1208A及び1208Bは、ソフトウェアの操作を記号的に示したものである。具体的には、ある操作に対して平行なスイッチが開である場合、適用されたソフトウェアはその操作を実行する。そして、ある操作に対して平行なスイッチが閉である場合、適用されたソフトウェアはその操作を実行しないので、入力データは変更されない。電気的なメタファでは、スイッチを閉じることによりその操作は「ショートアウト」され、信号は処理されずに通過する。スイッチの開閉の組み合わせは、下記の真理値表に要約されている。下記の表では、復号操作1032に対して平行なスイッチ1208AをスイッチAと称し、アンスクランブル化操作928に対して平行なスイッチ1208BをスイッチBと称する。
DUM操作と逆の操作であり、分割操作1106と、その各出力に対して個別に行われるアンスクランブル化操作926及び暗号化操作1206とを含む分割・スクランブル化・暗号化操作が、図82Cに、SSE操作1212として概略的に、また、SSE操作1213として記号的に示されている。各入力上に存在するスイッチ1211B及び1211Aは、必要に応じて、データパケットを、スクランブル化操作926または暗号化操作1026を迂回させるのに使用される。例えば、特定の入力においてスイッチ1211B及び1211Aの両方が「開」である場合、全てのデータパケットは、スクランブル化操作926及び暗号化操作1026の両方を通らなければならない。そのため、データパケットは、必然的に、スクランブル化及び暗号化されることとなる。両方のスイッチが閉である場合、操作は「ショートアウト」され、データは、スクランブル化操作926または暗号化操作1026のいずれによっても処理されない。すなわち、分割操作1106からの出力データは変更されずに、SSE操作から出力される。
スイッチ1211Bが閉であり、スイッチ1211Aが開である場合、データは、スクランブル化操作926は迂回するが、暗号化操作1026により処理される。これは、出力データパケットは、暗号化されているが、スクランブル化されていないことを意味する。一方、スイッチ1211Bが開であり、スイッチ1211Aが閉である場合、データは、スクランブル化操作926により処理されるが、暗号化操作1026は迂回する。これは、出力されるデータパケットは、スクランブル化されているが、暗号化されていないことを意味する。
上述したように、スクランブル化操作926及び暗号化操作1026は一般的にソフトウェアにより実現されるので、信号を迂回させる物理的なスイッチは存在しない。スイッチ1211B及び1211Aは、ソフトウェアの操作を記号的に示したものである。具体的には、ある操作に対して平行なスイッチが開である場合、適用されたソフトウェアはその操作を実行する。そして、ある操作に対して平行なスイッチが閉である場合、適用されたソフトウェアはその操作を実行せず、入力データは変更されない。電気的なメタファでは、スイッチを閉じることによりその操作は「ショートアウト」され、信号は処理されずに通過する。スイッチの開閉の組み合わせは、下記の真理値表に要約されている。下記の表では、スクランブル化操作926に対して平行なスイッチ1211BをスイッチBと称し、暗号化操作1026に対して平行なスイッチ1211AをスイッチAと称する。
図83Aに示すように、複数入力DUM1209と複数出力SSE1212との組み合わせは、本明細書ではSDNPメディアノード1201と称する、本発明に係るセキュア通信を実現するための非常に多用途な要素を構成する。図示のように、複数入力のいずれか1つに入力されたデータは、まず、復号操作1032により復号されるか、または復号操作1032を迂回(バイパス)する。データパケットはその後、アンスクランブル化操作928によりアンスクランブル化されるか、またはアンスクランブル化操作928を迂回した後、混合操作1089により混合された後、分割操作1116により新しいパケットに分割される。この分割により出力された個々のデータパケットは、次に、スクランブル化操作926によりスクランブル化されるか、またはスクランブル化操作926を迂回した後、暗号化操作1026により暗号化されるか、または暗号化操作1026を迂回する。
「メディアノード」の名称は、具体的にはリアルタイムの音声、テキスト、音楽、映像、ファイル、コードなど、すなわちメディアコンテンツであるコンテンツを伝送、ルーティング、及び処理するための、この通信ノードの通信ソフトウェア、または本発明に係る「ソフトスイッチ」を反映する。図83Bに示すように、SDNPメディアノードは便宜上、サーバ1215にホストされるメディアノードMa,jとして記号的にも表示される。同一のコードを使用することにより、本開示のSDNPメディアノードを使用して、下記の例を含む、信号処理の全ての組み合わせが可能である。
「単一ルートパススルー」
単一入力は、「現状のままで(as is)」、すなわち、ジャンクパケットの挿入または除去、あるいは入力データを複数のより短いデータパケットにパース(分割)することにより変更されて、単一出力に送られる。この操作は、図83Cに概略的及び記号的(単一ルートパススルー操作1217A)に示すように、メディアノードが単にシグナルリピータとして動作する場合に有用である。図示したジャンク操作1053及びパース操作1052は、パケット混合操作1061及びパケット分割操作1057の一部を構成する要素であり、ここでは単に便宜上含まれているにすぎない。
「冗長ルート複製」
単一入力は、複製され、「現状のままで」、すなわち、ジャンクパケットの挿入または除去、あるいは入力データを複数のより短いデータパケットにパース(分割)することにより変更されて、同一のコピー及び/またはデータシーケンスを2以上の出力に送信する前に、2以上の出力に送信される。この操作は、図83Dに概略的及び記号的(冗長ルートレプリケーション操作1217B)に示すように、VIPクライアントまたは緊急通信のための「レースルーティング(race routing)」を実施する場合、すなわち、2つのコピーを互いに異なる経路を通じて送信し、送信先に先に到着したコピーを使用する場合に有用である。ジャンク操作1053及びパース操作1052は、パケット混合操作1061及びパケット分割操作1英語057の一部を構成する要素であり、ここでは単に便宜上含まれているにすぎない。
「単一ルートスクランブル化」
単一入力は、そのパケットが事前に暗号化されているか否かに関わらず、スクランブル化され単一出力に送られる。図83Eに示すように、単一ルートスクランブル化は、クライアントとクラウドと間のファーストマイル通信、またはマルチルート伝送またはメッシュ伝送のためにデータパケットを分割または混合する前の通信に有用である。この操作は、図83Eに概略的及び記号的(単一ルートスクランブル化操作1217C)に示されており、単一入力パケット分割操作1057(この場合はジャンク挿入/除去及びパースのためにのみ使用される)とスクランブル化のみの操作1226Bとを含む。
「単一ルートアンスクランブル化」
単一ルートスクランブル化と逆の操作であり、図83Fに、記号的に示した単一ルートアンスクランブル化操作1217Dは、そのパケットがスクランブル化の前に暗号化されているか否かに関わらず、スクランブル化されたパケットをスクランブル化されていない状態に戻すのに使用される。この操作は、アンスクランブル化のみの操作1226Aと、それに続く、ジャンクの挿入/除去及びパケットのパースに使用される単一ルート混合操作1061との組み合わせを含む。
上記の単一ルートアンスクランブル化操作及びスクランブル化操作の2つの操作をその順番に行うことにより実現される「単一ルート再スクランブル化」が、図83Gに、概略的及び記号的(単一ルート再スクランブル化操作1216C)に示されている。この操作は、単一ルート伝送におけるパケットスクランブル化を動的にリフレッシュするのに有用である。
「単一ルート暗号化」
単一入力は、そのパケットが事前にスクランブル化されているか否かに関わらず、暗号化され、単一出力に送られる。図83Hに、概略的及び記号的(単一ルート暗号化操作1217E)に示したこの操作は、クラウドの外部のファーストマイル通信、または、マルチルート伝送またはメッシュ伝送のためにデータパケットを分割または混合する前の通信に有用である。この操作は、単一入力パケット分割操作1057(この場合はジャンク挿入/除去及びパースのためにのみに使用される)と、それに続く、暗号化のみの操作1226Dとを含む。
「単一ルート復号」
単一ルート暗号化と逆の操作であり、図83Iに、単一ルート復号操作1217Fとして記号的に示した「単一ルート復号」は、そのパケットが暗号化の前にスクランブル化されているか否かに関わらず、暗号化されたパケットをその元の暗号化されていない状態に戻すのに使用される。この操作は、復号のみの操作1226Cと、それに続く単一ルート混合操作1061(ジャンク挿入/除去及びパケットのパースのために使用される)との組み合わせを含む。
「単一ルート再暗号化」
上記の単一ルート復号操作及び単一ルート暗号化操作の2つの機能をその順番に行うことにより実現される「単一ルート再暗号化」が、図83Jに概略的及び記号的(単一ルート再暗号化1216D)に示されている。この操作は、単一ルート伝送におけるパケットスクランブル化を動的にリフレッシュするのに有用である。
「単一ルートスクランブル化暗号化」
単一入力は、スクランブル化及び暗号化の両方が施され、単一出力に送られる。図83Kに、概略的及び記号的(単一ルートスクランブル化・暗号化操作1217G)に示したこの操作は、クラウドの外部のファーストマイル通信、または、マルチルート伝送またはメッシュ伝送のためにデータパケットを分割または混合する前の通信に有用である。この操作は、単一入力パケット分割操作1057(この場合はジャンク挿入/除去及びパースのためにのみに使用される)と、それに続く、スクランブル化・暗号化操作1226Eとを含む。
「単一ルートアンスクランブル化・復号」
単一ルートスクランブル化暗号化と逆の操作であり、図83Lに、単一ルートアンスクランブル化・復号操作1217Gとして記号的に示されている「単一ルートアンスクランブル化・復号」操作は、スクランブル化及び暗号化されたパケットをその元のスクランブル化及び暗号化されていない状態に戻すのに使用される。この操作は、復号・アンスクランブル化操作1226Dと、それに続く単一ルート混合操作1061(ジャンク挿入/除去及びパケットのパースのために使用される)とを含む。
「単一ルート再パケット化」
上記の単一ルート復号・アンスクランブル化操作と、単一ルートスクランブル化・暗号化操作とをその順番に行うことにより実現される「単一ルート再パケット化」が、図83Mに概略的及び記号的(単一ルート再パケット化操作1216E)に示されている。この操作は、単一ルート伝送におけるパケットスクランブル化及び暗号化を動的にリフレッシュするのに有用である。
「メッシュSDNPゲートウェイ入力」
「メッシュSDNPゲートウェイ入力」、別名「単一入力複数出力SDNPゲートウェイ」が、図83Nに、概略的及び記号的(単一入力複数出力操作1216F)に示されている。この操作では、そのパケットが事前にスクランブル化または暗号化されているか否かに関わらず、単一入力は分割され、マルチルート伝送またはメッシュ伝送のための複数の出力に送られる。この操作は、パケット分割操作の構成要素としてジャンク操作1053及びパース操作1052を含むSDNPゲートウェイにおいて、スクランブル化及び暗号化を行わないメッシュルーティングを開始するのに有用である。
「メッシュSDNPゲートウェイ出力」
上記の単一入力複数出力操作と逆の操作である「メッシュSDNPゲートウェイ出力」、別名「複数入力単一出力SDNPゲートウェイ」が、図83Oに、概略的及び記号的(複数入力単一出力操作1216G)に示されている。この操作では、そのパケットが事前にスクランブル化または暗号化されているか否かに関わらず、単一入力は分割され、マルチルート伝送またはメッシュ伝送のための複数の出力に送られる。この操作は、SDNPゲートウェイにおいてラストマイル通信またはクラウドツークラウドホップ(cloud-to-cloud hops)のためにメッセージの構成パケットを再合体させるために、すなわち、SDNPメッシュルーティングを完了させるために使用され、任意選択で、そのパケット混合操作の構成要素としてのジャンク操作1053及びパース操作1052を含む。
「スクランブル化SDNPゲートウェイ入力」
「スクランブル化SDNPゲートウェイ入力」が、図83Pに、複数出力スクランブル化操作1217Hとして記号的に示されている。この操作では、そのパケットが事前に暗号化されているか否かに関わらず、単一入力は分割され、その各出力は個別にスクランブル化された後、マルチルート伝送またはメッシュ伝送のための複数の出力に送られる。この操作は、パケット分割操作の構成要素として図示しないジャンク操作及びパース操作を含むSDNPゲートウェイにおいて、スクランブル化メッシュルーティングを開始するのに有用である。
「アンスクランブル化SDNPゲートウェイ出力」
上記のスクランブル化SDNPゲートウェイ入力操作と逆の操作である、「アンスクランブル化SDNPゲートウェイ出力」、別名「アンスクランブル化複数入力単一出力SDNPゲートウェイ」が、図83Pに、複数入力単一出力アンスクランブル化操作1217Jとして記号的に示されている。この操作では、そのパケットが暗号化されているか否かに関わらず、複数のメッシュ入力は、個別にアンスクランブル化された後に混合され、単一出力またはクライアントに送られる。この操作は、SDNPゲートウェイにおいてラストマイル通信またはクラウドツークラウドホップのためにメッセージの構成パケットを再合体させアンスクランブル化するために、すなわち、SDNPメッシュルーティングを完了させるために使用され、任意選択で、そのパケット分割操作の構成要素として図示しないジャンク操作及びパース操作を含む。
「暗号化SDNPゲートウェイ入力」
「暗号化SDNPゲートウェイ入力」が、図83Qに、単一入力複数出力暗号化操作1217Kとして記号的に示されている。この操作では、そのパケットが事前にスクランブル化されているか否かに関わらず、単一入力は個別に暗号化された後に、マルチルート伝送またはメッシュ伝送のための複数の出力に送られる。この操作は、パケット分割操作の構成要素として図示しないジャンク操作及びパース操作を含むSDNPゲートウェイにおいて、暗号化メッシュルーティングを開始するのに有用である。
上記の暗号化SDNPゲートウェイ入力操作と逆の操作である「復号SDNPゲートウェイ出力」が、図83Qに、複数入力単一出力復号操作1217Lとして記号的に示されている。この操作では、そのパケットが事前にスクランブル化されているか否かに関わらず、複数のメッシュ入力は個別に復号され、その各出力は混合された後に単一出力またはクライアントに送られる。この操作は、SDNPゲートウェイにおいてラストマイル通信またはクラウドツークラウドホップのためにメッセージの構成パケットを再合体させ復号するために、すなわち、任意選択でそのパケット混合操作の構成要素として図示しないジャンク操作及びパース操作を含むSDNPメッシュルーティングを完了させるために使用される。
「スクランブル化・暗号化SDNPゲートウェイ入力」
「スクランブル化・暗号化SDNPゲートウェイ入力」が、図83Rに、単一入力複数出力復号スクランブル化暗号化操作1217Mとして記号的に示されている。この操作では、まず、単一入力が分割及びスクランブル化され、その各出力が個別に暗号化され、そして最終的に、マルチルート伝送またはメッシュ伝送のための複数の出力に送られる。この操作は、パケット分割操作の構成要素として図示しないジャンク操作及びパース操作を含むSDNPゲートウェイにおいて、暗号化メッシュルーティングを開始するのに有用である。
「アンスクランブル化・復号SDNPゲートウェイ出力」
上記のスクランブル化・暗号SDNPゲートウェイ入力操作と逆の操作である「アンスクランブル化・復号SDNPゲートウェイ出力」が、図83Rに、複数入力単一出力アンスクランブル化復号操作1217Nとして記号的に示されている。この操作では、まず、複数のメッシュ入力が復号され、その各出力が個別にアンスクランブル化された後、混合されて単一出力またはクライアントに送られる。この操作は、SDNPゲートウェイにおいてラストマイル通信またはクラウドツークラウドホップのためにメッセージの構成パケットを再合体、復号、及びアンスクランブル化するために、すなわち、任意選択でそのパケット混合操作の構成要素として図示しないジャンク操作及びパース操作を含むSDNPメッシュルーティングを完了させるために使用される。
「メッシュ再スクランブル化」
「メッシュ再スクランブル化(Meshed Rescrambling)」が、図83Sに、複数入力複数出力アンスクランブル化・スクランブル化操作1216Aとして記号的に示されている。この操作では、そのパケットが暗号化されているか否かに関わらず、マルチルート入力またはメッシュ入力の各入力を個別にアンスクランブル化した後、長いデータパケットまたはその同等物に統合し、必要に応じてジャンクパケットを除去する。長いデータパケットは、次に、複数の新しいデータパケットに分割され、必要に応じてジャンクデータが挿入される。各データパケットはその後、個別にスクランブル化され、最終的には、マルチルート伝送またはメッシュ伝送のための複数の出力に送られる。この操作は、スクランブル化を新しいステートまたは時間の条件にリフレッシュするのに、すなわち、データパケットがSDNPクラウドを横断するときのデータパケットの「再スクランブル化」を容易にするのに使用される。
「メッシュ再暗号化」
「メッシュ再暗号化(Meshed Re-encryption)」が、図83Sに、複数入力複数出力復号・暗号化操作1216Bとして記号的に示されている。この操作では、そのパケットがスクランブル化されているか否かに関わらず、マルチルート入力またはメッシュ入力の各入力を個別に復号した後、長いデータパケットまたはその同等物に統合し、必要に応じてジャンクパケットを除去する。長いデータパケットは、次に、複数の新しいデータパケットに分割され、必要に応じてジャンクデータが挿入される。各データパケットはその後、個別に暗号化され、最終的には、マルチルート伝送またはメッシュ伝送のための複数の出力に送られる。この操作は、暗号化を新しいステートまたは時間の条件にリフレッシュするのに、すなわち、データパケットがSDNPクラウドを横断するときのデータパケットの「再暗号化」を容易にするのに使用される。
図83Aに概略的な形態で、図83Bに記号的な形態で示した上記の「メッシュ再パケット化」操作では、マルチルート入力またはメッシュ入力を復号し、その各出力を個別にアンスクランブル化した後、長いデータパケットまたはその同等物に統合し、必要に応じてジャンクデータを除去する。一実施形態では、長いパケットは、クライアントから送信された、暗号化されていないプレーンテキストまたはデータのフォーマットを含む。その後、長いデータパケットは、複数の新しいデータパケットに分割され、必要に応じてジャンクデータが挿入される。各データパケットはその後個別にスクランブル化され、最終的には、マルチルート伝送またはメッシュ伝送のための複数の出力に送られる。この操作は、スクランブル化及び暗号化の両方を新しいステートまたは時間の条件にリフレッシュするのに、すなわち、データパケットがSDNPクラウドを横断するときのデータパケットの「再パケット化」を容易にするのに使用される。
上記の各例は、本開示のSDNPメディアノードが使用できる操作の順番や組み合わせの可能性を制限することは意図していない。例えば、入力チャンネルまたは出力チャンネルの数、すなわち、任意の特定のSDNPメディアノードに接続されるSDNPメディアノードの数は、1デバイスあたり、1から数十であり得る。便宜上、4つの入力及び出力が示されている。信号の流れを示す概略図である図84Aは、SDNP通信ソフトウェアを実行しているコンピュータサーバ1220B、1220J、及び1220Hをそれぞれ含むメディアノードMa,b、Ma,j、及びMa,hの任意のノード間の通信を示す。この図は、任意の2つのメディアノード間の2つの通信、すなわち、メディアノード(例えばMa,b)の出力と別のメディアノード(例えばMa,j)の入力との間の第1の通信と、その後者のメディアノード(例えばMa,j)の出力から前者のメディアノード(例えばMa,b)の入力との間の第2の通信を示す。この図示例は、実際には通信メディアノード間の単一ファイバ、同軸リンク、ツイストペア、イーサネット(登録商標)、またはサテライトリンクを含み得るPHYまたはデータリンクレイヤではなく、レイヤ3ネットワーク接続であることを意図している。この図示例はネットワークレベルであるので、第1のデバイスの出力が第2のデバイスの入力に接続され、第2のデバイスの出力が第1のデバイスの入力に接続されることにより、電気的帰還、競合状態、または不安定が発生する危険はない。すなわち、図示したネットワークは、電気的帰還ネットワークを示すものではない。
図84Bに示すような、本発明に係る通信ネットワークまたはSDNPクラウド1114を実現するために、SDNPメディアノード1215を実現するソフトウェアを各々実行するサーバ1220B、1220D、1220F、1220H、1220J、1220S、及び1220Qを含む一連のコンピュータサーバにより、メディアノードMa,b、Ma,d、Ma,f、Ma,h、Ma,j、Ma,s、及びMa,q(これらは、より大きなセキュアクラウドのノードの一部であり得る)によりセキュアネットワークを構成する。
各コンピュータサーバは、SDNPメディアノード1215で実行されるソフトウェアがハードウェアのオペレーティングシステム(OS)と一致する実行コードを含む限り、互いに同一のオペレーティングシステム(OS)を実行する必要はない。実行コードは、特定のアプリケーション機能を実施する所定のハードウェアプラットフォーム上で実行されるコンピュータソフトウェアである。実行コードは、「ソースコード」をコンパイルすることにより生成される。ソースコードは、論理的に構成された順次操作、アルゴリズム、及び命令として認識可能であるが、実行コードに変換された後は、プログラムの実際の機能を認識するのは困難または不可能である。この処理は一方向性であり、ソースコードは実行コードを生成することができるが、実行コードは、ソースコードがどこから来たかを判断するのに使用することはできない。このことは、オペレーティングシステムの盗難、すなわちハッカーによる実際のコードの逆行解析を防止するために重要である。
ソースコードは、プログラマにより使用される言語及び構文であり、特定のオペレーティングシステム上で実行されることを目的としたマシンコードではないので、実行可能ではない。オペレーションのコンパイル中は、生成された実行可能なコードは、あるオペレーティングシステム、iSOAndroid(登録商標)、ウィンドウズ(登録商標)7、ウィンドウズ(登録商標)10、MacOS(登録商標)に対して特有である。あるオペレーティングシステムで実行可能なコードは、別のオペレーティングシステム上で実行できるとは限らないが、ソースコードは、実行コードの生成に使用することができる。そのため、SDNPネットワークのソースコードは、そのソースコードの開発者のみが入手可能であり、SDNP実行コードを実行するネットワークオペレータは入手することはできない。
一般的に本明細書の背景技術の欄で説明した標準的プロトコル(例えば、イーサネット(登録商標)、WiFi、4G、及びDOCSIS)に従うネットワークの接続性は、デバイスをその製造業者またはOSと全く無関係な態様で相互接続するための共通のフレームワークをインターネットに提供する。実施においては、ネットワーク接続により、コンピュータのOS上で実行されるSDNPソフトウェアとの間でデータパケットを送受信するコンピュータサーバのオペレーティングシステムとの間でデータパケットの送受信が行われる。このようにして、ソフトスイッチ通信機能に基づくSDNPメディアノードを、どのデバイスにおいてもその製造業者に関わらず実現することができ、また、どの主要なオペレーティングシステム(例えば、UNIX(登録商標)、LINUX(登録商標)、MacOS10(登録商標)、ウィンドウズ(登録商標)7、ウィンドウズ(登録商標)8など)にも適合させることができる。
別の原理は、SDNPにより実現化されたクラウドが、中央管理ポイント、パッケージのルーティングを決定する単一デバイス、及び送信されるデータパケットの完全な情報(そのデータパケットの内容、行き先、混合、分割、スクランブル化暗号化方法)を有する共通ポイントを持たないことである。ネットワークオペレータでさえも、ネットワークにおけるデータトラヒックの全体像が分からない。上述したように、図84Bは、同一クラウド中のコンピュータネットワークを示す。同一クラウド中にあるという意味は、主観的及び恣意的な用語であり、本発明の普遍性を限定することを意図するものではない。メディアノードMb,b、Mb,e、Mb,f、Mb,g、Mb,j、Mb,s、及びMb,t(図示せず)を含む第2のクラウドは、別の地理的領域を含むか、または別のサーバプロバイダによりホストされる。例えば、Amazon(登録商標)により「クラウドA」がホストされ、Microsoft(登録商標)により「クラウドB」がホストされ、民間企業またはIPSにより「クラウドC」がホストされる。一般的に、あるクラウド内でのノード間の接続性は、クラウドツークラウド接続よりも高く、かつ高密度である。クラウドツークラウド接続は、数がより少なく、通信を行うのに、ネットワークアドレス変換器(NAT)により割り当てられた一時的なパケットルーティング数字ではなく、Trueインターネット互換性IPアドレスを使用する必要があるからである。
所定のSDNPにより実施される操作の説明に関して、仮想スイッチによってある操作を含めるかまたは迂回する原理(その操作を実施するか、またはデータを変更せずに通過させる)と同一の原理が、上記の説明、またはスクランブル化及び暗号化操作の順番が入れ替えられる(すなわち、復号の前にアンスクランブル化し、スクランブル化の前に暗号化する)別の実施形態に等しく適用可能である。簡潔にするために、各操作の順番はそれと逆の操作が逆の操作順番で実施される限りは変更可能であるという理解により、これらの別のデータフローは個別に図示しない。データパケットの処理はソフトウェアにより行われるので、各操作の順番の変更は、必要に応じてまたは定期的に(例えば、毎月、毎日、毎時間、コールバイコール(call-by-call)、時間、またはステートに基づき)、単にアルゴリズムの順番を変更することにより行うことができる。
上述したように、同一データセットに対して逆の順番で正確に実施され、元のデータを正確に復元できる限り、どのようなスクランブル化、暗号化、混合のシーケンスでも使用可能である。アンスクランブル化、復号、または混合の前に変更を元に戻さないで、操作間でコンテンツを変更すると、取消不能なデータ損失及び恒久的なデータ破損が生じることとなる。したがって、元のデータを復元するために逆の順番で処理できる限り、パケットは、ネスト化した順番で2回以上スクランブル化または2回以上暗号化することもできる。例えば、クライアントアプリケーションは、それ自体の独自方法を用いて、メッセージを暗号化してサイファテキストを生成することができ、そのパケットがSDNPゲートウェイに入ったときに、ゲートウェイメディアノードにおいてそのパケットをネットワーク転送のために再度暗号化することができる。この方法は、クライアントアプリケーションでの復号が行われる前に、最終ゲートが完全にパケット毎にネットワークの暗号化を復号する限りは、うまくいく。クライアントベースでの暗号化の場合は別として、データ破損及びパケット損失のリスクを避けるために、本発明の一実施形態では、SDNPベース通信の実施には下記のガイドラインが有益である。
・SDNPパケットのスクランブル化は、クライアントのSDNPイネーブルアプリケーションで、またはSDNPクラウドに入ったときにSDNPメディアノードゲートウェイで実施するべきである。
・理想的には、SDNP暗号化は、SDNPメディアノード間の各ホップで行うべきである。すなわち、データパケットは、ルーティングされる前に暗号化され、次のSDNPメディアノードに入るとすぐに復号される。
・最低でも、再スクランブル化は、データパケットがSDNPクラウドに入るときまたはSDNPクラウドから出るときに(ラストマイル通信またはクラウドツークラウドホップのために)毎回行うべきである。データパケットがSDNP暗号化されている場合、そのデータパケットは、アンスクランブル化する前に復号し、そして、再度暗号化する前に再びスクランブル化するべきである。
・入力データパケットは、混合する前に、復号及びアンスクランブル化することが好ましい。混合された長いパケットの復号及びアンスクランブルは、データ破損をもたらす。同様に、分割した後に、データをスクランブル化及び暗号化することが好ましい。混合された長いパケットの復号及びスクランブル化は、データ破損をもたらす。
・復号及びアンスクランブル化の後、かつ混合の前に、入力データパケットからジャンクパケットを除去するべきである。混合された長いパケットからのジャンク除去は、データ破損をもたらす。同様に、分割後、かつスクランブル化及び暗号化の前に、ジャンクデータを挿入することが好ましい。混合された長いパケットへのジャンク挿入は、データ破損をもたらす。
・ユーザアプリケーションでの暗号化は別にして、再スクランブル化(すなわち、アンスクランブル化及びそれに続くスクランブル化)は、好ましくは暗号化データに対して行うべきではない。
・ジャンクデータの挿入は、挿入及び除去を容易にするために、一定の方法で行うべきである。
・入力データパケットは、それらの暗号化及びスクランブル化を行った時間、ステート、及びアルゴリズムに従って、復号及びアンスクランブル化するべきである。出力データパケットは、現在の時間、それに関連するステート、それに関連するアルゴリズムに従って暗号化及びスクランブル化するべきである。
・プレーンテキストパケットは、メディアノードでのみ再生成されることが好ましい。全てのパケットは、メディアノード間で伝送される間は、スクランブル化され、暗号化され、混合され、分割され、及びジャンクデータセグメントを含む。
上記の方法は本発明に従った可能な方法を示しているが、これらは、SDNP操作の可能な組み合わせまたは順番を限定することを意図するものではない。例えば、暗号化されたパッケージは、それと同一のデータパケットが復号前にアンスクランブル化される限りは、その後にスクランブル化することができる。
一実施形態では、スクランブル化は、クライアントのSDNPアプリケーションでのみ実施され、SDNPクラウド中のメディアノードでは実施されない。このような場合、セキュアノード内通信は、単に、図84Cに示すような暗号化及び復号の操作シーケンスにより行われる。図示のように、メディアノードMa,hのSDNP操作の構成要素は、分割操作1106、暗号化操作1225A(Encryption Only)、混合操作1089、及び復号操作1225B(Decryption Only)を含む。また、SDNPメディアノードMa,f及びMa,jでは、SDNPメディアノード操作のメッシュ再暗号化1216が実施される。
実施においては、別のメディアノード(図示せず)からメディアノードMa,jに入力されたデータは、まず、メディアノードMa,hの入力のうちの1つの復号操作1225Bに送られ、その後、混合操作1089に送られる。このパケットに加えて、メディアノードMa,fから別のパケットが同時に入力された場合、この別のパケットは、メディアノードMa,hから別個に入力され、別の復号操作1225Bにより処理された後、ディアノードMa,jから入力されたデータパケットと混合される。混合されたデータパケットは、分割操作1106で実行される分割アルゴリズムに基づいて、送信先が互いに異なる、新しい別の組み合わせに分割される。各出力はその後、個別の暗号化操作1225Aにより個別に暗号化され、その後、メディアノードMa,f及びMa,j、及びネットワーク中の別のメディアノードに送信される。
このルーティング中は、混合操作1089及び分割操作1106間で瞬間的に存在する長いパケットは、実際には、同一の会話からのデータパケットであり、メディアノードMa,hを介してメディアノードMa,fからメディアノードMa,jに伝送されるデータパケットと、それと同時に、メディアノードMa,hを介してメディアノードMa,jからメディアノードMa,fに逆方向に伝送されるデータパケットとを含み得る。本発明に係るSDNPネットワークでは正確なルーティング制御が可能なので、長いデータパケットは、同一の全二重会話からのデータまたは音声の断片が互いに逆の方向に送信される場合であっても、いつでも、それに関連するコンテンツとそれに関連しないコンテンツとの組み合わせを含むことができる。メディアノードMa,hにデータが同時に到着しない場合、データパケットは、同一の長いパケットを共有することなく、順次、メディアノードを反対方向に通過する。いずれの場合でも、複数の会話を全二重モードで伝送するSDNPメディアノードにおける相互作用または性能低下は生じない。
このユニークな形態のネットワーク通信は、最初は困惑するかもしれないが、図84Dに示すように、この態様のデータ伝送により、メディアノードが全二重通信の両方向を同時にサポートする場合でも、SDNPメディアノードにおけるデータ通信が簡潔に行われることは明らかである。例えば、影付きの線として示した、メディアノードMa,jに入ったデータパケットは、復号操作1032、混合操作1089、分割操作1106、暗号化操作1026をその順に通過し、最終的にはメディアノードMa,jを出て、新しい暗号化された状態でメディアノードMa,hに入る。そして、その後、新しい時間及び状態で、同じ操作手順が繰り返される。最終的には、データパケットは、メディアノードMa,hからメディアノードMa,fに入力され、そこで復号、分割、及び再暗号化され、そして最終的には、クラウド内の次のメディアノードに送信される。同時に、影が付いていない線で示す別の方向に伝送されるデータは、メディアノードMa,fに入力され、そこで復号、混合、分割、及び再暗号化された後、メディアノードMa,hに伝送される。そして最終的には、メディアノードMa,jを介して、SDNPクラウド内の別のメディアノードに送信される。
[ラストマイル通信]
クライアントとSDNPクラウドと間のデータリンクを、本明細書では、ラストマイル通信と称する。全ての通信は常に双方向であり、メッセージ送信及び返信または場合によっては全二重会話を含むので、「ラストマイル(last mile)」という用語は、発呼者及びクラウド間の接続である「ファーストマイル(first mile)」を含む。したがって、クライアントが発呼者であるかまたは着呼者であるか否かに関わらず、本明細書で使用される「ラストマイル」という用語は、クライアントとSDNPクラウドとの間のあらゆる接続を意味するものとする。ラストマイル通信の一例を図85Aに示す。図示のように、SDNPクラウド1114は、ソフトウェアの実行により、セキュリティが確保されたクラウドのノードの少なくとも一部を構成するSDNPメディアノードMa,b、Ma,d、Ma,f、Ma,h、Ma,j、Ma,s、及びMa,qとして動作するコンピュータサーバ1118のネットワークを含む。具体的には、図示した例では、SDNPメディアノードMa,hをホストするコンピュータサーバ1220Hは、LTE基地局17に直接的または間接的に接続されたSDNPゲートウェイメディアノードとして動作し、セルラータワー(通信塔)18及び無線リンク28を介して、クライアントであるセルフォン32に接続される。本明細書で使用される「ゲートウェイノード」または「ゲートウェイメディアノード」という用語は、ゲートウェイノードとクライアントデバイスとの接続が「ラストマイル」接続である場合に、SDNPネットワークの外部に位置するノード(一般的には、例えばセルフォンまたはコンピュータなどのクライアントデバイス)に接続されるメディアノードを指す。
SDNPゲートウェイノードが、セキュリティが確保されていないラストマイルに接続される場合、例えば、SDNPゲートウェイノードが、SDNPアプリケーションがインストールされていないセルフォンに接続される場合の一例が、図85Bに示されている。図示のように、セルフォン32は、無線リンク28によってセルラータワー18に接続されている。セルラータワー18はセルフォン32との間でデータパケットの送受信を行い、そのデータパケットは、LTE基地局17により、イーサネット(登録商標)、ファイバ、同軸ケーブル、銅ケーブルなどの有線通信に変換される。データパケットは、PHYレイヤ1接続、ワイヤ、ケーブル、無線または衛星リンク上により双方向で伝送されるが、セルフォン32からSDNPメディアノードMa,hに送信される(その逆も同様)パケットについてのデータフローは別個に示す。図示のように、セルフォンで使用されているアプリケーションが暗号化機能を内蔵しており、かつ着呼者がそれと同一の暗号化機能を有していない限り、ラストマイルでのセキュリティは確保されない。
実施においては、セルフォン32からSDNPゲートウェイメディアノードMa,hに送信されたオープンデータパケットの復号及びアンスクランブル化は所望されないため行われない、すなわちショートアウトされる。したがって、これらの操作は図示しない。その代わりに、入力データパケットは、混合操作1089に直接送信され別のパケットと混合された後、分割操作1106によりメッシュ伝送のための複数の出力に分割される。各出力はその後、伝送前にスクランブル化操作926及び暗号化操作1026が施され、これによりセキュリティが確保される。一例として図示した出力は、サーバ1220FのメディアノードMa,fに送信される。このメッセージは、上述したクラウド内通信のためにメディアノードMa,fで処理され、その後、別のメディアノード、例えばコンピュータサーバ1220JのメディアノードMa,jに送信される。
クラウドから(例えばサーバ1220FのメディアノードMa,fまたは他のメディアノードから)セルフォン32へのデータフローは、逆の順に処理される。すなわち、復号操作1032から開始され、アンスクランブル化操作928によりアンスクランブル化され、混合操作1089により別の入力パケットと混合され一時的な長いパケットが生成される。長いパケットはその後、分割操作1106により複数の断片に分割され、その一部はネットワークを介してセルフォン32に送信される。分割されたパケットは、一緒に送信されるか、または、パースされLTE基地局17を介してセルフォン32に伝送されるデータパケットに含めて送信される。
上述したように、ネットワークを横断するデータパケットは、繰り返し再暗号化及び再スクランブル化される。あるいは、一実施形態では、データパケットは、クラウドの横断中に、再スクランブル化されることなくスクランブル化された状態に保たれるが、各メディアノードで繰り返し再暗号化される。このような、一度だけスクランブル化し、一度だけアンスクランブル化するシステムでは、スクランブル化は、パケットがクラウドに入るゲートウェイノードで行われ、アンスクランブル化は、パケットがクラウドから出るゲートウェイノードで行われる。すなわち、スクランブル化及びアンスクランブル化は、ファーストマイル及びラストマイルに接続された最初及び最後のゲートウェイメディアノードで行われる。上述したように、ファーストマイル及びラストマイルに接続されたメディアノードはゲートウェイノードとも呼ばれ、実際にはクラウド内の他のメディアノードと同一のSDNPメディアノードソフトウェア及び機能を含むが、クライアントに接続するために機能をさらに含んでいる。
一度だけスクランブル化し、一度だけアンスクランブル化するSDNP通信を実施するための別のオプションは、スクランブル化を、ソフトウェアを使用してクライアントのデバイスで実施することである。図85Cに示すように、セルフォン32とコンピュータサーバ1220FのSDNPメディアノードMa,fとの間の通信では、SDNPメディアノードMa,hが、クライアント及びSDNPクラウド間のゲートウェイメディアノードとしての役割を果たし、SDNPメディアノードMa,hは、混合操作1089、分割操作1106、暗号化操作1225A(Encryption Only)、スクランブル化操作1226B、及び復号操作1225B(Decryption Only)を含む。上述したように、Mノードの名称で示した任意のメディアノードまたは通信ノードは、上記した全てのセキュリティ確保操作(すなわち、混合及び分割、暗号化及び復号、スクランブル化及びアンスクランブル化)の任意の組み合わせを実施可能である。実施においては、データパケットは、セルフォン32においてSDNPソフトウェアによりスクランブル化され、無線リンク28を介してLTEタワー18に伝送される。そして、LTE基地局17により、信号は、SDNPゲートウェイノードと通信するために、イーサネット(登録商標)、ファイバ、または他の有線通信に変換される。ローカルキャリアに応じて、セルフォン32とLTE基地局17との間の無線リンク28の部分は、プライベートNATを介したトラヒックを含むか、またはインターネットを介したデータ転送を含む。データパケットはその後、LTE基地局17から、SDNPゲートウェイノードとしての役割を果たすSDNPメディアノードMa,hに送信される。
入力データパケットはその後、パススルー操作1216H(Pass Through Only)に送信され、混合操作1089により別の入力データパケットと混合され、分割操作1106により分割される。そして、セルフォン32からのデータパケットは、暗号化操作1225Aにより暗号化された後に、メディアノードMa,fに送信される。このように、クラウドを横断するデータパケットは、ゲートウェイノードにより暗号化されるが、スクランブル化はクライアントのSDNPアプリケーションにより行われる。この逆に、SDNPクラウドからの暗号化及びスクランブル化されたデータトラヒックは、メディアノードMa,fを介してルーティングされ、復号操作1225Bにより復号され、混合操作1089により混合され、分割操作1106により新しいパケットに分割される。そして、データパケットからその送信先(セルフォン32)の情報が抽出され、データパケットは、パススルー操作1216Hを通過して(すなわち、データパケットは変更されず)、その送信先のセルフォン32に送信される。このようにして、全ての通信は終端間(End-to-End)でスクランブル化されるが、暗号化だけはSDNPクラウド内で行われる。
上記の方法の変形例では、ラストマイル及びクラウドの両方でのスクランブル化を依然として提供するが、ラストマイルでのスクランブル化方法は、クラウドで用いられるスクランブル化方法とは異なる。図85Dに示すように、セルフォン32とコンピュータサーバ1220FのSDNPメディアノードMa,fとの間の通信では、SDNPメディアノードMa,hが、クライアント及びSDNPクラウド間のゲートウェイメディアノードとしての役割を果たし、SDNPメディアノードMa,hは、混合操作1089、分割操作1106、スクランブル化・暗号化操作1226C(Scrambling & Encryption)、復号・アンスクランブル化操作1226D(Decryption & Unscrambling)、スクランブル化操作1226B(Scrambling Only)、及びアンスクランブル化操作1226A(Unscrambling Only)を含む。実施においては、データパケットは、セルフォン32においてSDNPイネーブルソフトウェアによりスクランブル化され、無線リンク28を介してLTEタワー18に伝送される。そして、LTE基地局17により、信号は、SDNPゲートウェイノードと通信するために、イーサネット(登録商標)、ファイバ、または他の有線通信に変換される。ローカルキャリアに応じて、セルフォン32とLTE基地局との間の無線リンク28の部分は、プライベートNATを介したトラヒックを含むか、またはインターネットを介したデータ転送を含む。データパケットはその後、LTE基地局17から、SDNPゲートウェイノードとしての役割を果たすSDNPメディアノードMa,hに送信される。
入力データパケットはその後、アンスクランブル化操作1226Aによりアンスクランブル化され、混合操作1089により別の入力データパケットと混合され、分割操作1106により分割される。そして、セルフォン32からのデータパケットは、スクランブル化・暗号化操作1226Cによりスクランブル化及び暗号化された後に、メディアノードMa,fに送信される。このように、クラウドを横断するデータパケットは、ゲートウェイノードにより暗号化及びスクランブル化されるが、このスクランブル化は、ラストマイルでのセキュリティ確保のためにクライアントのSDNPアプリケーションで用いられたスクランブル化方法とは異なるスクランブル化方法で行われる。この逆に、SDNPクラウドからの暗号化及びスクランブル化されたデータトラヒックは、メディアノードMa,fを介してルーティングされ、復号・アンスクランブル化操作1226Dにより復号及びアンスクランブル化され、混合操作1089により混合され、分割操作1106により新しいパケットに分割される。そして、データパケットから送信先(セルフォン32)の情報が抽出され、データパケットは、スクランブル化操作1226Bによりスクランブル化された後に、その送信先のセルフォン32に送信される。セルフォン32に入ったデータパケットは、SDNPイネーブルアプリケーションによりアンスクランブル化される。このようにして、クラウド内の通信はメディアノードにより暗号化及びスクランブル化されるが、ラストマイルにおいては、ゲートウェイノード及びセルフォンのアプリケーションにより、クラウド内でのスクランブル化方法とは異なるスクランブル化方法でスクランブル化される。セルフォンでのデータパケットのスクランブル化及びアンスクランブル化の1つの重要な側面は、クラウド及びクライアント間でステート情報、数値鍵、または共有秘密を伝送するのに用いられる方法である。このことについては後述する。
[断片化データの伝送]
本発明によれば、SDNPメディアノード機能を実施するソフトウェアを実行するコンピュータサーバのネットワークは、パケット交換通信におけるデータ断片化に基づく、様々なデバイスとのグローバル通信を容易にする。図86に示すように、SDNPクラウド1114は、ソフトウェアの実行により、下記の(a)−(h)などの様々なデバイス及びクライアントに接続されるSDNPメディアノードMa,b、Ma,d、Ma,f、Ma,h、Ma,j、Ma,s、Ma,q、及び図示しない他のノードとして動作するコンピュータサーバ1118のネットワークを含む。
(a)セルフォン32及びタブレット33との無線リンク28を有するLTE基地局17。LTE基地局17は、他のいかなるLTEイネーブルデバイスにも無線接続され得る。
(b)ノートブック35またはタブレット、セルフォン、電子書籍リーダー、及び他のWiFiに接続されたデバイス(インターネット家電を含む)に対するWiFi無線リンク29を提供するWiFiアンテナ26を有する公衆WiFiシステム100(public WiFi)。
(c)光ファイバまたは同軸ケーブルによりケーブルモデム103(cable modem)に接続され、ケーブルモデム103を介してデスクトップコンピュータ36、ホームWiFi基地局、イーサネット(登録商標)に接続されたデバイスなどに接続されたケーブルCMTS101(cable CMTS)。
(d)光ファイバまたは同軸ケーブルにセットトップボックス102(TV STB)に接続され、セットトップボックス102を介してHDTV39に接続されたケーブルCMTS101。
(e)有線接続されたインターネットルータ66A、66B、66C(Internet)。
(f)無線塔15によりトランシーバ16B、基地局16A、業務用車両40などに接続された、例えばTETRAやEDACSなどの業務用無線ネットワーク14。
(g)構内電話交換機PBX8(corp PBX)及び卓上電話機9。
(h)従来の電話ネットワーク及びPOTに対するPSTNブリッジ3(PSTN bridge)。
図示のように、いずれのSDNPメディアノードも、ゲートウェイノードとして動作することができる。
データパケット伝送の概略図を図87に示す。この例のSDNPクラウドベース通信では、タブレット33及び自動車1255間でデータパケット1056(データセグメント2A、2B、2C、2D、2E、2Fをその順で含む)を伝送し、ノートブック35及びセルフォン32間でデータパケット1055(データセグメント1A、1B、1C、1D、1E、1Fをその順で含む)を伝送する。また、別のデータパケット1250(データセグメント3A、3B、3C、3D、3E、3Fをその順で含む)、データパケット1252(データセグメント4A、4B、4C、4D、4E、4Fをその順で含む)、及びデータパケット1251(データセグメント5A、5B、5C、5D、5E、5Fをその順で含む)が、このネットワークを通じて、データパケット1255及び1256と共に伝送される。より短いパケットは、伝送中の様々な時間での構成要素を示し、ネットワーク伝送の動的特性を示すために、まとめて表示した。
図示した例では、全てのデータパケットのデータはスクランブル化されており、データセグメントの順番が、ランダムに、または偶然にその順番に変更されている。また、ある会話のデータセグメントに、無関係なデータセグメントが分散して組み入れられている。実際には、SDNPクラウドに一旦入ったデータパケットが、別の無関係なデータパケットと混合されないことは、ほとんどありえない。実際、2つのSDNPメディアノード間で伝送される任意のデータパケットにおいては、無関係なデータセグメントの混合、及びパケットの順番のスクランブル化が行われるのが正常な状態である。多数の会話またはデータパケットがクラウドを同時に横断するときに、全てのデータが同一のデータパケット内に保たれる可能性は、統計的にごくわずかである。十分なデータが存在しないときは、メディアノードでの混合操作によりジャンクデータを導入する。図示した、無関係なデータの様々なデータセグメントを含めることは、SDNP伝送中のデータパケット内の通信または会話の混合の原理を示す。ただし、データパケット内に存在する無関係なデータセグメントまたはジャンクデータセグメント、及びフィラーの実際の量及び頻度は正確に示していない。
図88Aは、時間t0及びそれに対応するステート990での、ノートブック35からセルフォン32への通信の開始を示す。通信は、データパケット1055及びそれと無関係なデータパケット1056、1250−1252が、様々なゲートウェイノードMa,q、Ma,h、Ma,b、Ma,sを通ってネットワークに入ることにより開始される。図88Bに示すように、時間t1及びそれに対応するステート991では、データパケット1055は、複数のデータパケットに分割される。データセグメント1A及び1Bをその順番で含み、かつ無関係なデータセグメントが混合されたデータパケット1261AがメディアノードMa,bに送信される。データセグメント1D、1C、及び1Fをスクランブル化された順番で含み、かつ無関係なデータセグメントが混合されたデータパケット1261Bが、メディアノードMa,jに送信され、データセグメント1Eを含むデータパケット1261CがメディアノードMa,hに送信される。
図88Cに示すように、時間t2及びそれに対応するステート992では、データは、新しいデータパケットの組み合わせに分割される。具体的には、データパケット1261Aは、データパケット1262A及び1262Bに分割され、データセグメント1A及び他のデータセグメントを含むデータパケット1262AはメディアノードMa,sに送信され、データセグメント1Bを含むデータパケット1262BはメディアノードMa,dに送信される。また、データパケット1261Bは、データパケット1262C及び1262Dに分割され、データセグメント1C及び1Fをその順番に含み、かつ無関係なデータセグメントが混合されたデータパケット1262CはメディアノードMa,dに送信され、データセグメント1Dを含むデータパケット1262DはメディアノードMa,fに送信される。また、データセグメント1Eを含むデータパケット1262Eが、単独でまたは無関係なデータパケット(図示せず)と混合されて、メディアノードMa,fに送信される。
図88Dに示すように、時間t3及びそれに対応するステート993では、データセグメント1Aを含むデータパケット1263A、及びデータセグメント1D、1Eを含むデータパケット1263CはメディアノードMa,dに送信され、データセグメント1B、1C、1Fを含むデータパケット1263Bは、メディアノードMa,dで、データパケット1263A、1263Bの到着を待つ。図88Eに示すように、時間t4及びそれに対応するステート994では、メディアノードMa,dは、データパケット1263A、1263B、及び1263Cを混合して元のデータパケット1055を復元し、そのデータパケット1055を一体的または断片的な形態でセルフォン32に送信する。ノートブック35及びセルフォン32間でのデータパケット伝送の概要を図88Fに示す。
図89Aに示すように、ノートブック35及びセルフォン32間の通信とは別個にかつ同時に、タブレット33及び自動車1255間の通信が、データパケット1056が、セキュアクラウド1114に入る時間t0及びそれに対応するステート990で開始される。図89Bに示すように、時間t0及びそれに対応するステート990では、入力データパケット1056は、データパケット1261D及び1261Eに分割される。そして、データセグメント2B及び2Cをスクランブル化された順番で、しかし偶然にもその順番で含むデータパケット1261Dは、メディアノードMa,qに送信され、データセグメント2E、2F、2A、及び2Dをスクランブル化された順番で含むデータパケット1261Eは、メディアノードMa,jに送信される。
図89Cに示すように、時間t2及びそれに対応するステート992では、データセグメントの順番をスクランブル化し、別のソースからのデータセグメントを挿入することによりデータパケット1261Dは変更され、データパケット1262Fが生成される。同様に、データパケット1261Eは、メディアノードMa,jより、データパケット1262G、1262H、及び1262Jに分割される。データセグメント2Aを含むデータパケット1262Jは、メディアノードMa,fに送信される。データセグメント2D及び2Eを含み、複数の無関係なデータセグメントと混合されたスクランブル化データパケット1262Hは、メディアノードMa,dに送信される。データセグメント2Fを含むデータパケット1262Gは、メディアノードMa,sに送信される。
図89Dに示すように、時間t3及びそれに対応するステート993では、データセグメント2B及び2Cをその順番で含むデータパケット1263Dが、メディアノードMa,Sに送信される。メディアノードMa,Sでは、データセグメント2Fを含むデータパケット1263が、他のデータパケットが到着するのを待っている。同時に、データパケット1263Gが、データセグメント2D及び2Eをその順番で含むデータパケット1263Fが待っているメディアノードMa,dに送信される。この状況は、SDNPネットワークでは、データパケットは即座に伝送されるか、または一時的に保持されることを強調する。図89Eに示すように、時間t4及びそれに対応するステート994では、データセグメント2D、2A、及び2Eを含み、それらの順番がスクランブル化されたデータパケット1264Bが、メディアノードMa,sに送信される。メディアノードMa,sでは、データセグメント2B、2C、及び2Fを含むデータパケット1264が待機している。図89Fに示すように、時間ttでは、データセグメント2A−2Fを組み合わせて最終的なデータパケット1056が生成され、自動車1255に送信されるか、または最終的なデータパケット1056の全てのデータセグメント構成要素が、分割された形態で自動車1255に送信され、そこで再び組み合わされる。タブレット33及び自動車1255間でのデータパケット1056のルーティングの概要を図89Gに示す。
図示のように、SDNPクラウドを通過するデータパケットは、同時に行われた複数の会話を、SDNPメディアノード間でコンテンツを動的に変更しながら、互いに異なる送信先に伝送する。無関係なデータセグメントとの混合または分割に起因する、悪影響、データ損失、または会話漏洩は生じない。例えば、図87に示すように、データパケット1257は、セルフォン32に送信されるデータセグメント1C及び1F、自動車1255に送信されるデータセグメント2D及び2E、及び他の無関係なデータセグメント及びジャンクデータを含み、様々な送信先に送信されるこれらのデータセグメントは全て、データパケットを別の無関係なデータセグメントと一時的に共有することにより影響を受けない。
さらには、どのデータパケットも、完全な文章、音声、または会話を含まないので、本発明に係るSDNPメディアノードで用いられるデータ断片化及びメッシュルーティングは、データパケットのコンテンツを判読不能に、かつ中間者攻撃に耐えられるように改変する。図90に示すように、時間t1では、メディアノードMa,jを出入りする伝送中のデータパケットをスニッフィングする中間者攻撃者は、サイファテキストパケット1470A、1271A、1272A、及び1273Aしか見ることはできない。万一、暗号化されたファイルが破られても、パケット1270B、1271B、1272B、及び1273Bの基礎となるプレーンテキストコンテンツは、スクランブル化された、データセグメントの不完全な組み合わせを含む。このデータ状態は、新しいデータパケットが同一のメディアノードを通過するまで、1秒足らずの間だけ持続する。スクランブル化及び混合がされていなくても、データパケットの復号に利用可能な時間は再暗号化、再スクランブル化、再分割、または再パケット化するまでの時間に限られているので、スーパーコンピュータによって攻撃しても効果がない。
図91Aは、データ伝送を表すための基準として時間を使用したSDNPメディア伝送の動的特性を示す図である。ここに示したデータは、図87のネットワークグラフに示したデータオーバーレイと同一である。時間ベースの表示では、ノートブック35から送信されたデータパケット1055は、データパケット1261A、1261B、及び1261Cに分割される。時間t2では、パケット1261Aは、新しいデータパケット1262A及び1262Bに分割され、パケット1261Bは、新しいデータパケット1262C及び1262Dに分割され、パケット1261Cは、コンテンツが変更されることなく新しいデータパケット1262Eに更新される。時間t3では、データパケット1262Aは、そのコンテンツが変更されることなく新しいデータパケット1263Aに更新され、パケット1262B及び1262Cは混合されてデータパケット1263Bが生成され、パケット1262D及び1262Eは混合されてデータパケット1263Cが生成される。そして、時間t4では、データパケット1263A、1263B、及び1263Cは混合されて、データパケット1055が復元される。
SDNPデータ伝送は、表の形式で表すこともできる。例えば、図91Bに示す表1279は、時間t3でのデータパケットの処理を説明するためのものであり、メディアノードのソース、入力パケット、入力パケットが暗号化された時間、入力パケットがスクランブル化された時間、データパケットが混合及び分割された、すなわちメッシュされた最後の時間、及びその結果生成された出力パケットを示す。メディアノードは、この情報を使用して、入力データパケットに対して何の処理を行うか、データの再パケット化の仕方、データの再暗号化または再スクランブル化(所望される場合)の仕方を知ることができる。
図91Cに示すように、動的なSDNPメディア伝送の特徴の別の側面は、他のパケットの到着を待つために、あるメディアノードでパケットを一時的に保持する機能である。図87に示したものと同一のデータを用いて、このメカニズムを、パケット1056の時間ベース表示で説明する。時間t1では、入力データパケット1056は、スクランブル化された後、データセグメント2B及び2Cを含むデータパケット1261Dと、データセグメント2A,2D、2E、及び2Fを含むデータパケット1261Eとに分割される。時間t2では、データパケット1216D及び1216Eは、4つのデータパケット、すなわちデータパケット1262F、1262G、1262H、及び1262Jに分割される。具体的には、データパケット1261Eが、データセグメント2Fを含むデータパケット1262G、データセグメント2D及び2Eを含むデータパケット1262Hと、データセグメント2Aを含むデータパケット1262Jとに分割される。データセグメント2B及び2Cを含むデータパケット1261Dは、そのコンテンツが変更されないまま、時間t2ではデータパケット1262Fとして、時間t3ではデータパケット1263Dとしてネットワークを通過する。同様に、時間t3では、データセグメント2Aを含むデータパケット1263Jは、そのコンテンツが変更されないまま、データパケット1263Gとしてネットワークを通過する。
図91Cでは、データパケットがあるメディアノードで一時的に保持されることを、データパケットが時間の経過に伴いあるメディアノードからそれと同一のメディアノードに移動することにより示した。例えば、時間t3及び時間t4間では、その前のデータパケット1262Gと同一であり、データセグメント2Fを含むデータパケット1263Eが、メディアノードMa,sからメディアノードMa,sに移動することが、すなわちデータパケットが移動しないことが示されている。データパケットは静止した状態であるが、暗号化及びスクランブル化は、更新時間を反映するために変更される。時間t4でメディアノードMa,sからそれと同一のメディアノードMa,sに移動するデータパケット1263Eのコンテンツを示すこの概略図は、データパケット1263EがメディアノードMa,sに保持されていることを意味する。
同様に、時間t3及び時間t4間では、その前のデータパケット1262Hと同一であり、データセグメント2D及び2Eを含むデータパケット1263Fが、メディアノードMa,dからメディアノードMa,dに移動することが示されている。この場合も、データパケット1263Fが静止状態であり、メモリに一時的に保持されていることを意味する。時間t4では、メディアノードMa,sにおいて、入力データパケット1263Dが、該ノードのメモリに時間t3から保持されていたデータパケット1263Eと混合され、データセグメント2B、2C、及び2Fを含む新しい混合データパケット1264Aが生成される。この新しいデータパケット1264Aは、メディアノードMa,sに保持され、別の入力データが到着するのを待つ。また一方、時間t4で、メディアノードMa,dにおいて、データパケット1263F及び1263Gが混合され、データセグメント2A、2D、及び2Eを含むデータパケット1264Bが生成され、メディアノードMa,sに送信される。時間tfでは、メディアノードMa,sにおいて、入力データパケット1264Bが、時間t4から待っていたデータパケット1264Aと混合され、元のデータパケット1056が生成される。
上述したように、本発明に係る方法では、データは、SDNPクラウドを通じて伝送されるか、または前方に進む前に特定のメディアノードに一時的に保持され入力データの到着を待つ。
[伝送命令及び制御]
メディアノードが、入力データパケットをどのように処理するかを知るためには、スクランブル化、アンスクランブル化、暗号化、復号、混合、分割、ジャンクの挿入/除去、データパケットのパースに使用されるアルゴリズム、数値シード、及び鍵に関する情報を、何らかの方法を用いて取得する必要がある。重要な情報は、例えば下記に挙げるような、様々な手段またはそれらの様々な組み合わせを用いて伝達することができる。
・共有秘密を、SDNPソフトウェアのインストールまたはリビジョンの一部としてメディアノードに伝達する。
・コンテンツの送信前にメディアノードを介して制御データを伝達する。
・データパケットの一部としてメディアノードを介して制御データを伝達する。
・例えばメディアノードと並列に動作する「シグナリングサーバ」ネットワークを介して情報を通信する、メディアノードとは別個のデータチャンネルを介して制御データを伝達する。
・SDNPネットワークに接続されたデバイスの識別子、及びそれに対応する、シグナリングサーバまたはコンテンツを転送するメディアノードとして動作するサーバとは異なるSDNPネームサーバ上のIPまたはSDNPアドレスに関する情報を保管する。
例えば、図92Aに示すように、ステート993に対応する時間t3では、データセグメント1Bを含むデータパケット1262B、データセグメント1C及び1Fを含むデータパケット1262C、及び無関係なデータセグメントを含むデータパケット1262Hが、メディアノードMa,dに入る。メディアノードMa,dに入ると、入力データパケット1262B、1262C、及び1262H(明確にするために暗号化されていない形態で示す)はまず、復号・アンスクランブル化操作により処理される。データパケット1262B、1262C、及び1262Hはその後混合され(デジャンク、すなわちジャンクビットの除去を含む)、これにより、データセグメント1B、1C、及び1Fを含む出力データパケット1263Bが生成される。このタスクを実行するためには、メディアノードMa,bをホストするコンピュータサーバ1220Dはまず、入力データパケットの生成に使用された時間及びそれに対応するステートに関する特定の情報を取得しなければならない。この情報は、ヘッダーとしてデータパケットに含めてもよいし、シグナリングノードまたは別のメディアノードから事前に受信してもよい。図91Bの表に示したように、これらの入力データパケットは、時間t2で最後に暗号化されている。また、これらの入力データパケットは、ステート1301Aに対応する時間t1、または場合によってはステート1301Bに対応する時間t2で最後にスクランブル化されている。この情報は、入力データパケットをそれの生成に使用されたステートに従って適切に処理するために、メディアノードMa,dに伝達される必要がある。時間t1及びt2でのステート情報は、D1鍵生成器1305A(D1 Key Generator)及びD2鍵生成器1305B(D2 Key Generator)を用いて、入力パケットの復号に必要とされるD1鍵1306A及びD2鍵1306Bを生成するのに使用される。復号鍵生成器は、通信ノードMa,dに接続されたDMZサーバに保管されたソフトウェアを使用することにより実現される。暗号化鍵及び復号鍵の動作及び生成の概略については、本明細書の背景技術の欄で説明した。静的暗号化とは異なり、SDNPネットワークにおける暗号化は動的であり、これは、適切な復号キーを生成する唯一の方法が、ファイルが暗号化された時間を知ることであることを意味する。この情報は、時間またはステートとして、入力データパケットと共に、またはパケットの到着前に伝達され、関連する復号キーを生成するのに適切な暗号化アルゴリズムを選択するのに使用される。暗号化アルゴリズム及びそれに関連する復号鍵の生成器は、共有秘密として、通信ノードMa,dに接続されたセキュアDMZサーバに保管されている。
データパケットは暗号化され得るが、図示を明確にするために、データパケットは暗号化されていない形態で示されている。また、同一のステート情報が、時間t1及び時間t2で使用されたアルゴリズムを特定するのに使用される数値シード1304A及び1304Bを生成するのに、数値シード生成器1303(Numeric Seed Generator)で使用される。数値シードは、2つの方法で生成することができる。第1の方法は、通信データパケットのスクランブル化、混合、及び暗号化が行われるメディアノードに接続されたDMZサーバに保管されたソフトウェアを使用して、シードを生成する。この場合、シードは、データパケットが到着する前に、通信ノードMa,dに伝達されなければならない。
第2の方法は、入力データパケットを生成した時間が、入力データパケットのヘッダーの一部として、またはそのデータパケットよりも先に到着する別個のパケットに含められて、通信ノードMa,dに伝達される。時間はその後、通信ノードMa,dに接続されたDMZサーバ内に設けられた数値シード生成器1302に供給される。数値シード生成器1302により生成された数値シードは、それがローカルで生成されたか、またはソースで生成されて送信されたかに関わらず、スクランブル化アルゴリズム1308A(Scrambling Algorithms)、混合アルゴリズム1308B(Mixing Algorithms)、及び暗号化アルゴリズム1308C(Encryption Algorithms)のテーブルを含むセレクタ1307(Selector)に供給される。データパケットによって(すなわち、パケットのヘッダーに含めて)、またはデータパケットよりも先に伝達されるシードまたはステート情報とは異なり、入力データパケットの生成に使用されたアルゴリズムは、パケットによって、またはパケットに含めて伝送されず、メディアノードMa,d内、またはメディアノードMa,dがアクセス可能なセキュアサーバ内にローカルに存在する。特定の領域1302A、この例ではゾーンZ1(Zone Z1)に関する共有秘密としてローカルに保管されたこれらのアルゴリズムは、同一ゾーン(領域)内の全てのメディアノードで共有される。データパケットが生成されたときの時間及びステートを知ることにより、メディアノードMa,dは、各データパケット1262B、1262C、及び1262Hがどのような処理により生成されたか、また、その処理をどのようにして元に戻して各データパケット1262B、1262C、及び1262Hのプレーンテキストデータを復元するか(例えば、暗号化されたパケットをどのようにして復号し、スクランブル化されたパケットをどのようにしてアンスクランブル化するか)を認識及び決定することができる。共有秘密の使用、及びその配布方法については、後述する。
復号鍵1306A及び1306Bは、選択された暗号化アルゴリズム1309C(Selected Encryption Algorithm)と協働して、サイファテキストをプレーンテキストに復号する。具体的には、暗号化アルゴリズム1309Cは、データパケットをサイファテキストからプレーンテキストに変換するのに用いられる一連の数学的ステップを表す。復号鍵1306A及び1306Bはその後、入力データパケットが最後に暗号化されたときのステートまたは時間に各々対応し、パケットの復号に使用される上記ステップの特定の組み合わせを選択する。両方の入力パケットが同一時間で暗号化された場合は、単一の復号鍵のみが必要とされることとなる。上記では「暗号化アルゴリズム1309C」と称したが、暗号化アルゴリズムは、それと逆の処理である復号アルゴリズムも定義することを理解されたい。「非対象」鍵を使用する特定の種類の暗号化を除いては、ほとんどのアルゴリズムは対称的であり、これは、データパケットの暗号化またはスクランブル化に使用されたアルゴリズムと逆の処理が、そのデータパケットの復号またはアンスクランブル化、すなわち元のコンテンツの復元に使用できることを意味する。図92Aに示した特定の例では、入力データパケット1262B、1262C、及び1262Hに対応する各時間及びステートについて、セレクタ1307は、入力パケットの復号に必要な選択された暗号化アルゴリズム1309C、入力パケットのアンスクランブル化に必要な選択されたスクランブル化アルゴリズム1309A(Selected Scrambling Algorithm)、及びパケットを特定の順番に組み合わせ、ジャンクデータを除去するのに必要な選択された混合アルゴリズム1309B(Selected Mixing Algorithm)を出力する。したがって、セレクタ1307により選択された暗号化アルゴリズム、スクランブル化アルゴリズム、及び混合アルゴリズムは、メディアノードMa,dで、コンピュータサーバ1220Dによりデータパケット1262B、1262C、及び1262Hの復号操作、アンスクランブル化操作、及び混合操作をそれぞれ実施するのに使用される。したがって、データがメディアノードでどのように処理されるかは、入力データパケットの時間及びステートと、選択されたアルゴリズムの両方に依存する。例えば、選択された混合アルゴリズム1309Bは、長いパケットに混合される入力データパケットを、そのパケットが生成された時間に基づいて、時間の古い順に配置することができる。例えば、一番古いパケットはパケットの先頭に配置され、一番新しいパケットは長いパケットの末尾に配置される。あるいは、データパケット1263Bに示すように、データは、データセグメントの時系列順に配置される。すなわち、データセグメント1Bはデータセグメント1Cの前に、データセグメント1Cはデータセグメント1Fの前に配置される。そのため、入力データパケットの処理は、現在の時間またはステートではなく、入力パケットの生成に関する時間及びステート情報を必要とする。入力データパケットのステート及び時間情報を事前に傍受されない限りは、ハッカーは、たとえアルゴリズムテーブル及び現在のステートにアクセスできたとしても、メディアノードの入力データを復号、解読、読み取り、または判読することはできない。上述したように、セレクタ1307によるアルゴリズムの選択、及び鍵生成器1305A及び1305Bによる鍵の生成は、この例ではゾーン情報1302Aまたは「Zone Z1」として示す、データパケットが生成された場所である地理的領域または「サブネット(subnet)」に依存する。このゾーン(領域)の使用については、後述する。
入力データパケットの制御を示す前述の説明とは対照的に、図92Bに示す出力データパケットの制御は、過去の時間及びステートではなく、現在の時間及びそれに対応するステートに依存する。図示のように、時間t3及びそれに対応するステート1301Cでは、数値シード生成器1303は、セレクタ1307が、スクランブル化アルゴリズム1308A、混合アルゴリズム1308B、暗号化アルゴリズム1308Cのテーブルから、分割、スクランブル化、及び暗号化にそれぞれ対応するアルゴリズムを選択するのに使用する数値シード1304Cを生成する。混合アルゴリズム1308Bは一般的に、対象的な処理なので、混合に使用されたアルゴリズムと逆の処理は、分割の操作、この例では、長いデータパケットを伝送するための複数のパケットに分割するのに使用される。デュアルチャンネルまたはトリチャンネル通信では、全ての生成されたパケットの送信先は、パケットルーティングを管理するシグナリングサーバからノードに伝達される。単一チャンネル通信では、メディアノード自体が、シグナリングサーバの機能を模倣し、それら自体のルートを発呼者間にマッピングする必要がある。
同一のステート情報1301Cが、出力データパケットの暗号化に必要とされるE3鍵1306Cを生成するためにE3鍵生成器1305C(E3 Key Generator)と、テーブル1308Cから暗号化アルゴリズム1309Cを選択するのに使用されるシード1304Cを生成するためにシード生成器1303に供給される。E3鍵は、選択された暗号化アルゴリズム1308Cと協働して、プレーンテキストをサイファテキストに暗号化する。具体的には、暗号化アルゴリズムは、プレーンテキストからのデータパケットを変換して、何百万、何十億、何兆のうちの1つの可能性があるサイファテキストを生成するのに用いられる一連の数学的ステップを表す。その後、暗号化鍵により、パケットの暗号化に使用される上記のステップの特定の組み合わせが選択する。
例えばhttp://en.wikipedia.org/wiki/advanced_encryption_standardに記載されているAEC(Advanced Encryption Standard)などの対称鍵暗号化法では、ファイルの暗号化に使用される鍵は、ファイルの復号に使用される鍵と同一である。このような場合、鍵は、例えばE3鍵生成器1305Cを使用して、ローカルで、各メディアノード内に含まれる共有秘密として生成することが望ましい。対称鍵を、ネットワークを介してメディアノードに提供しなければならない場合、鍵は、メディア、すなわちデータパケット及びコンテンツが使用するチャンネルとは異なる通信チャンネルを使用して伝送することが望ましい。複数チャンネル通信については後述する。
対称鍵のセキュア伝送を向上させるための別の方法は、その通信自体と無関係な時間に(例えば1週間前に)、対称鍵をメディアノードに供給して別の暗号化レイヤで暗号化するか、または対称鍵を互いに異なる2つの時間に伝送される2つの部分に分割することである。別の方法では、E3鍵生成器1305Cで鍵分割アルゴリズムを使用して鍵を分割し、鍵の一部を共有秘密として各メディアノードにローカルに保存し(すなわちネットワーク上にはけっして存在しない)、鍵の残りの部分をオープンに伝送する。サイバーパイレーツは、鍵の一部しか見ることができず、実際の鍵が何ビットであるか分からないので、セキュリティが向上する。鍵の長さが分からないことにより、鍵の長さ及び鍵の各構成要素を推測しなければならないため、正しい鍵の推測は事実上不可能となる。
非対称または公開鍵アルゴリズムの場合、E3鍵生成器1305Cは、一対の鍵を同時に生成する。一方の鍵は、暗号化用であり、他方の鍵は、ステート1301Cまたは時間t3に基づく復号用である。復号鍵は、共有秘密としてメディアノードに保管され、暗号鍵は、データパケットを送信する準備をしているメディアノードに安全にかつオープンに送信される。実時間ネットワークで対称鍵を使用することの複雑さの1つは、コンテンツを含むデータパケットをメディアチャンネルに送り出す前に暗号化鍵を生成して、全てのメディアノードに送信する必要があることである。データパケットが、それを復号するための鍵の前に到着した場合、データは陳腐化(go stale)、すなわち使用できなくなる。非対称及び公開暗号化鍵の使用及び管理の説明は、様々な文献及びオンライン出版物、例えば、http://en.wikipedia.org/wiki/public-key_cryptographyから入手可能である。公開暗号化鍵は公知の技術であるが、本開示のアプリケーションは、実時間ネットワーク及び通信システムへの暗号化法のユニークな統合を含む。
アルゴリズム、数値シード、及び暗号化鍵の全ては、現在のサブネットゾーン1307A、この例ではゾーンZ1(Zone Z1)について生成される。このゾーン及び現在時間t3に基づいて、暗号化鍵1306Cは、選択された分割アルゴリズム1309B、選択されたスクランブル化アルゴリズム1309A、及び選択された暗号化アルゴリズム1309Cと共に、コンピュータサーバ1220DにホストされたメディアノードMa,dに供給される。これにより、無関係なデータセグメントを含み、時間t3で送信される(SEND at t3)出力データパケット1263Cと、データセグメント1B、1C、及び1Fを含み、次のメディアノードにルーティングされる前に時間t4まで保持される(HOLD for t4)出力データパケット1263Bとの2つの出力が生成される。データパケットまたはデータセグメントを一時的に保持するか、または次のメディアノードに即座に送信するかの命令は、メディアノードに様々な方法により伝達される。1つの方法では、入力データパケットに、いつまでまたは何の条件まで保持するかという保持の命令が埋め込まれる。別の方法では、シグナリングサーバ、すなわち別の通信チャンネルにより、メディアノードに対して該ノードがするべきことの命令を伝達することができる。セキュア複数チャンネル通信におけるシグナリングサーバの使用については、後述する。
図93に示すように、アルゴリズムのテーブルからアルゴリズム(スクランブル化/アンスクランブル化アルゴリズム、暗号化/復号アルゴリズム、または混合/分割アルゴリズム)を選択するために、セレクタ1307は、アルゴリズム及びメモリアドレスのリスト1308Dを検索し(search addresses)、時間tx及びそれに対応する現在のステート1301Dに基づきシード生成器1302で生成されたアドレス1304D(Seed(tx))と比較する。ステートに基づき生成されたアドレス1304Dが、アルゴリズムテーブル1308D内のアルゴリズムと一致した場合、一致したアルゴリズムが選択され、選択されたアルゴリズム1309D(Selected Algorithm)が使用のために選択ルーチンから出力される。例えば、シード生成器1303が、「356」の値を有するアドレス1304Dを生成した場合、セレクタ1307は、それに一致するアルゴリズムをテーブルから特定する。すなわち、「位相シフトmod2」(phase shift mod 2)が、選択されたアルゴリズム1309Dとして出力される。
系統的な追跡を防止するため、たとえ偶然に繰り返された場合であっても、同一のアドレスによって同一のアルゴリズムを呼び出されないように、アルゴリズムとそれに対応するメモリアドレスのリストは定期的に(例えば毎日または毎時間)リフレッシュされる。図94に示すように、ゾーンZ1の日318についてのアルゴリズムテーブルは、ゾーンZ1の日318でのスクランブル化及びアンスクランブル化に使用されるアルゴリズムアドレステーブル1308D(Z1 Scrambling on Day 318)、ゾーンZ1の日318での分割及び混合に使用されるアルゴリズムアドレステーブル1308E(Z1 Mixing on Day 318)、及びゾーンZ1の日318での暗号化及び復号に使用されるアルゴリズムアドレステーブル1308F(Z1 Encryption on Day 318)を含む。そして、所定のイベント日1311(Event Date)及び時間1310(Schedule Time)に、アドレス再割り当て操作1312(Reassign Address(SDNP List Shuffling))により、アルゴリズム及びアドレスのリストをシャッフルし(すなわち、混ぜ合わせ)、ゾーンZ1の日319でのスクランブル化及びアンスクランブル化に使用されるアルゴリズムアドレステーブル1308G(Z1 Scrambling on Day 319)、ゾーンZ1の日319での分割及び混合に使用されるアルゴリズムアドレステーブル1308H(Z1 Mixing on Day 319)、及びゾーンZ1の日319での暗号化及び復号に使用されるアルゴリズムアドレステーブル1308J(Z1 Encryption on Day 319)を含む3つの新しいアルゴリズムテーブルを作成する。例えば図示のように、アルゴリズム「transpose mod 5」に対応するメモリアドレスは、日318では359であるが、日319では424に変更されている。このようにして、アドレスとアルゴリズムとの対応テーブルは、ハッキングを防止するためにシャッフルされる。
[ゾーン及びブリッジ]
ハッカーまたはサイバーパイレーツがSDNPクラウド及びネットワークの全体にアクセスすることを防止しつつ、グローバルに通信するために、本発明の別の実施形態では、SDNP通信ネットワークは、「ゾーン(zones)」に細分される。ここでは、ゾーンは、ネットワークを細分領域(sub-division)、すなわち「サブネット(subnet)」を表す。各ゾーンは、個別のアルゴリズム、ゾーンで使用される混合/分割、スクランブル化/アンスクランブル化、及び暗号化/復号を定義する個別のアルゴリズムテーブル、個別の暗号化鍵、及び個別の数値シードを含む、独自のユニークな命令、制御、及びセキュリティの設定を有する。当然ながら、同一のゾーン内に存在し、SDNPソフトウェアを実行する通信サーバは、同一のゾーン設定を共有し、該サーバがどのゾーン内に存在するかには全くとらわれない態様で動作する。
各サブネットは、互いに異なるIPSまたはホスティング会社、例えば、Microsoft(登録商標)、Amazon(登録商標)、Yahoo(登録商標)によりホストされたSDNPソフトウェアを実行する互いに異なるサーバクラウド、またはプライベートにホストされたクラウドまたはネットワークアドレストランスレータ(NAT)、例えばダークファイバ専用帯域を有するレンタルされたプライベートクラウドを含むことができる。また、コムキャスト・ノーザンカリフォルニア(Comcast northern California)、ローカルPSTN、またはローカルセルフォン通信などのラストマイルサービスを提供するキャリアを別個のゾーンとして扱うことも有益である。ゾーンを用いることも主な利点は、天才的なサイバーパイレーツがSDNPセキュリティ対策を一時的に破ったという最悪の場合に、サイバーパイレーツの攻撃の地理的範囲を小さいサブネットに限定し、それにより、エンドツーエンド通信に対するアクセスを防ぐことである。本質的に、ゾーンは、サイバー攻撃による被害を受ける可能性を有している。
図95Aに示すゾーンの使用の例では、SDNPソフトウェアを実行するコンピュータサーバ1118を含むクラウド1114は、「ゾーンZ1(Zone Z1)」を含むサブネット1318Aと、「ゾーンZ2(Zone Z2)」を含むサブネット1318Cとの2つのサブネットに分割されている。図示のように、サブネット1318Aは、SDNPメディアノードMa,w、Ma,s、Ma,j、Ma,b、Ma,q、及びMa,fを、Mb,d及びMb,hと共に含み、サブネット1318Cは、Mc,j、Mc,n、Mc,v、Mc,u、及びMc,zを、Mb,d及びMb,hと共に含む。すなわち、コンピュータサーバ1220DにホストされたMb,dと、コンピュータサーバ1220HにホストされたMb,hは、サブネット1318及びサブネット1318Cの両方に共有されている。コンピュータサーバ1220D及び1220H上で実行されるSDNPソフトウェアは、ゾーンZ1及びゾーンZ2内の他のメディアノードとどのように通信するかを理解している必要がある。このようなデバイスは、2つのサブネット間の「ブリッジ(bridge)」としての役割を果たし、必然的に、ゾーンZ1からのデータ(セキュアファイル)を、ゾーンZ2に従ったデータフォーマット(セキュアファイル)に変換しなければならない(逆の場合も同じ)。
例えばブリッジメディアノードMb,dなどのブリッジメディアノードで実施される変換操作を図95Bに示す。図示のように、ゾーンZ1からゾーンZ2へのデータフローは、ブリッジメディアノードMb,dをホストするブリッジコンピュータサーバ1220DでのDUM操作1210により、アルゴリズムテーブル1308K(Zone Z1 DUM Algorithms)を使用して、復号、アンスクランブル化、及び混合が施され、これにより、長いパケットが生成される。生成された長いパケットは、メディアノードMb,d内で、SSE操作1213により、アルゴリズムテーブル1308L(Zone Z2
SSE Algorithms)を使用して、分割、スクランブル化、及びサブネット1318C(ゾーンZ2)のための暗号化が施される。ブリッジメディアノードMb,dの全二重バージョンを図95Cに示す。図示のように、ブリッジメディアノードMb,dは、ゾーンZ1からゾーンZ2の方向とそれと逆の方向との双方向のデータ伝送及び変換を実施する。ゾーンZ1からゾーンZ2へのデータ変換については、ブリッジメディアノードMb,dをホストするSDNPブリッジコンピュータサーバ1220Dは、データパケットがゾーンZ1(サブネット1318A)から出るときに該データパケットに対してDUM操作1210を実施し、そのデータパケットがゾーンZ2(サブネット1318C)に入るときに該データパケットに対してSSE操作1213を実施する。これとは逆に、ゾーンZ2からゾーンZ1へのデータ変換については、SDNPブリッジコンピュータサーバ1220Dは、データパケットがゾーンZ2(サブネット1318C)から出るときに該データパケットに対してDUM操作1210を実施し、そのデータパケットがゾーンZ1(サブネット1318A)に入るときに該データパケットに対してSSE操作1213を実施する。
図95Cに示す完全に統合されたSDNPブリッジメディアノードMb,dは、互いに異なる2つのゾーン、すなわちゾーンZ1及びゾーンZ2に対して、DUM操作及びSSE操作の両方を実施する。両操作は、共通のコンピュータサーバ1220D内で行われる。このような、完全に統合された実施形態は、互いに接続された2つのサブネットが、同一のISPまたはクラウド内にホストされている場合にのみ実現される。一方、図95Dに示すサブネット1318A及び1318Cのように、サブネットが互いに異なるクラウド内に存在し、互いに異なるサービスプロバイダによりホストされている場合は、通信ブリッジは、同一のクラウド内に存在しない2つのコンピュータサーバ間で実現しなければならない。図示のように、ブリッジ通信リンク1316B(bridge)により、クラウド1114内のゾーンZ1で動作しているSDNPブリッジメディアノードMb,hを、クラウド1315内のゾーンZ2で動作しているSDNPブリッジメディアノードMb,Uに接続する。複数のクラウド間で通信する場合、クラウド間を接続するブリッジ通信リンク1316Bは、セキュリティが確保されておらず、スニッフィング及びサイバー攻撃に対して脆弱であるため、図95Cに示した方法と同一の方法を用いると問題が生じる。図95Eは、そのような場合、つまり、サブネット1318A内のコンピュータサーバ1220HによりホストされたブリッジメディアノードMb,hによりDUM操作が行われ、データパケットが、ゾーンZ1から、ブリッジ通信リンク1316Bを介して、サブネット1318C(ゾーンZ2)内のコンピュータサーバ1220UによりホストされたブリッジメディアノードMb,Uに送信される場合を示す。しかし、通信は、ブリッジメディアノードMb,hのDUM操作から出力された暗号化及びスクランブル化がされていない長いパケットであるため、クラウドツークラウドホップはセキュリティが確保されておらず、サイバー攻撃に曝される。
この問題に対する解決策は、図95Fに示すように、各クラウドに全二重ブリッジインターフェースメディアノードを設け、インターフェース間の通信伝送のセキュリティを確保することである。ゾーンZ1からゾーンZ2への通信では、サブネット1318A内のゾーンZ1から入力されるデータパケットは、スクランブル化及び暗号化され、単一チャンネルゾーンZ2データに変換される。この操作は、メディアノードMb,dが、ゾーンZ1及びゾーンZ2の両方、数値シード、暗号化鍵、アルゴリズムテーブル、及び他のセキュリティ情報にアクセスできることを必要とする。全ての処理は、ゾーンZ2(送信先クラウド)ではなく、サブネット1318A内に位置するコンピュータサーバ1220Dで実施される。セキュアデータはその後、セキュアブリッジ通信リンク1316Aを使用して、サブネット1318A内のブリッジインターフェースメディアノードMb,dから、サブネット1318C内のブリッジインターフェースメディアノードMb,Uに送信される。ブリッジインターフェースメディアノードMb,Uに到着したデータパケットは、ゾーンZ2の情報に従って処理された後、サブネット1318C内に送信される。
これとは逆に、ゾーンZ2からゾーンZ1への通信では、サブネット1318C内のゾーンZ2から入力されるデータパケットは、スクランブル化及び暗号化され、単一チャンネルゾーンZ1データに変換される。この操作は、メディアノードMb,dが、ゾーンZ1及びゾーンZ2の両方、数値シード、暗号化鍵、アルゴリズムテーブル、及び他のセキュリティ情報にアクセスできることを必要とする。全ての処理は、ゾーンZ1(送信先クラウド)ではなく、サブネット1318C内に位置するコンピュータサーバ1220Uで実施される。セキュアデータはその後、セキュアブリッジ通信リンク1316Cを使用して、サブネット1318C内のブリッジインターフェースメディアノードMb,Uから、サブネット1318A内のブリッジインターフェースメディアノードMb,dに送信される。ブリッジインターフェースメディアノードMb,dに到着したデータパケットは、ゾーンZ1の情報に従って処理された後、サブネット1318A内に送信される。セキュアブリッジ通信リンク1316A及び1316Cは、別個のラインとして説明されているが、両ラインはネットワークレイヤ3での別個の通信チャンネルを示すものであり、ハードウェアまたはPHYレイヤ1ディスクリプションでの別個のワイヤ、ケーブル、またはデータリンクを示すことを意図するものではない。あるいは、受信側のブリッジノードは、Z1ゾーン及びZ2ゾーンの両方の共有秘密を保持している限り、データを送信側のZ1ゾーンから受信側のZ2ゾーンに伝送させることができる。
[SDNPゲートウェイ操作]
上記セクションでは、「ブリッジ」は、別個のサブネット、ベットワーク、またはクラウド間で通信する任意のメディアノードまたは一対のメディアノードとして説明した。同様に、本明細書で開示されるSDNP「ゲートウェイメディアノード」は、SDNPクラウドとクライアントのデバイス、例えば、携帯電話、自動車、タブレット、ノートブック、またはIoTデバイス等との間の通信リンクを提供する。ゲートウェイメディアノード操作は図96Aに示されており、SDNPメディアノードMb,fをホストするSDNPクラウド1114内のコンピュータサーバ1220Fは、サブネット1318Aとタブレット33へのラストマイル接続1318Dとの間のSDNPゲートウェイメディアノードとして機能する。サブネット1318Aとは異なり、ラストマイル接続1318Dは、インターネット、プライベートクラウド、ケーブルTV接続、またはセルラーリンクを介して行われる場合がある。ラストマイル接続では、サブネット1318Aにあるようにルーティングを正確に制御することはできない。例えば、ゲートウェイメディアノードMb,fは、接続1317によってサーバ65Aにリンクするが、その点を超えて、パブリックWiFiベースステーション100へのルーティングは、ローカルインターネットルータによって制御される。WiFiアンテナ26からタブレット33へのWiFi無線リンク29は、空港、ホテル、コーヒーショップ、コンベンションセンター、劇場、または他の公共の場所に配置されることが多いローカルデバイスによっても制御される。
代わりに、ラストマイル接続には、アンテナ18からタブレット33への無線リンク28と共に、LTE基地局17への有線リンクを含む場合がある。そのような不確定なルーティングやアクセスがあるため、SDNPクラウドで使用されるセキュリティ設定や秘密情報を、ラストマイルにおいて、クライアントにルーティングするデバイスと共有しないことが望ましい。そのため、ラストマイルリンク1318DはゾーンZ1情報にアクセスすることはできず、代わりにセキュリティ設定を管理するために別個のゾーンU2を使用する。クラウド1114とラストマイルゲートウェイメディアノードMb,fとをリンクさせるために、ノードMb,fはゾーンZ1とゾーンU2のセキュリティ設定の両方にアクセスし、クラウドインターフェース1320とクライアントインターフェース1312との間の通信を容易にする。セキュリティを確保したラストマイル通信を提供するために、クライアント、図中のタブレット33では、SDNPクライアントソフトウェアプリケーション1322も実行していなければならない。
SDNPゲートウェイノードMb,fは、クラウド1114内のメディアノード間の通信を容易にするクラウドインターフェース1320と、ラストマイルに渡る通信を容易にするクライアントインターフェース1321とを含む。図96Bに示すように、クラウドインターフェース1320は、2つのデータパス、すなわちSSE1213、及びDUM1210を含む。図96Cに示すように、クライアントインターフェース1321はまたゲートウェイからクライアントへのデータフローのためのものと、クライアントからゲートウェイへの逆方向のデータフローのためのものとの、2つのデータパスを含む。具体的には、ゲートウェイからクライアントへのデータフローには、ジャンクデータをデータストリームに挿入するために用いられるシングルルート分割操作1106と、それに続くパケットスクランブル化926と、最後の暗号化1026とを順に含む。すなわち、クライアントからゲートウェイへのデータフローは、復号1032、パケットアンスクランブル化928、及びデータストリームからジャンクデータを除去するために用いられるシングルルート混合操作1089を順に含む。
ラストマイルのようなシングルルート通信における混合及び分割操作の役割は2つある。一つ目は、リアルタイムデータストリームは、容易に検出することができないように、それぞれが独自の識別タグを有し、場合によっては様々な長さの多数の連続したサブパケットに分割される点が重要である。したがって、結果として得られるシリアルデータストリームは、最初のパケットが送信されている間に一時的に保持されるべきいくつかのデータサブパケットを必要とする。通信データレートはSDNPクラウドでは数百ギガビット/秒となることがあるため、シリアル化はほぼ瞬時に行われ、ナノ秒で行われる必要がある。ラストマイル通信では、データレートはより遅く、例えば毎秒2ギガビットとなる(しかし、現代のシステムではまだ非常に速い)。WiFi、4G/LTE、DOCSIS 3、及びイーサネット(登録商標)は、いずれもデータを連続的に送信するため、遅延が発生しない。
シングルチャネル混合の二つ目の役割は、シングルルート混合操作が、図67Jにおいて上述した手法に基づく、解析を困難にする様々な方法で、ジャンクデータをサブパケットに挿入するために用いられるということである。
図96Dに示すように、ラストマイルにおいて安全に通信を行うために、クライアント1322はクライアントソフトウェアを実行しなければならない。携帯電話やタブレットでは、このクライアントソフトウェアは、デバイスのオペレーティングシステム、例えば、アンドロイド(登録商標)やiOS上で動作しなければならない。デスクトップまたはノートブックコンピュータでは、クライアントソフトウェアはコンピュータのオペレーティングシステム、例えばMacOS(登録商標)、Windows(登録商標)、Linux(登録商標)、Unix上で動作しなければならない。SDNPクライアントソフトウェアをホストすることができないIoTなどのコンシューマデバイスと通信が行われる場合には、埋め込まれたクライアントファームウエアを備えたハードウェアデバイスをインターフェースとして使用される場合がある。クライアント1322によって実行される通信に関連するファンクションには、復号操作1032による受信データパケットの処理、パケットアンスクランブル化928、及びパケットペイロードを回復するための、シングルルート混合操作1089を用いたデジャンクキングを含まれる。その後、アプリケーション1336で使用されるコンテンツには、オーディオコーデック、MPEGファイル、画像、非メディアファイル、及びソフトウェアに使用されるデータが含まれる。
データパケットを送信するためにクライアント1322によって実行される通信に関連するファンクションには、シングルルート分割操作1026におけるジャンクデータの挿入と、パケットスクランブル化926と、ゲートウェイへのラストマイル通信に必要となるデータパケットを用意するために最後に実行される暗号化動作1106とが含まれる。
セキュリティを確保したSDNPゲートウェイノードMb,fの操作は、より詳細には図97Aに示されており、まず、クラウドインターフェース1320及びクライアントインターフェース1321は、メディアノードMa、hから送信されたデータパケットを受信し、ゾーンZ1セキュリティ設定に従ってDUM操作1210を用いて復号、アンスクランブル化、及び混合を実行し、スクランブルされていない平文を表す典型的なデータパケット1330を生成する。次いで、データパケット1330は、ゲートウェイメディアノードMb,fの内部で動作するクライアントインターフェース1321に転送され、クライアントインターフェース1321は、シングルルート分割操作1106の際に、クラウドによって用いられるゾーンZ1セキュリティ設定ではなく、ゾーンU2セキュリティ設定を基づいて、ジャンクデータ1053をデータパケットに挿入する。そのデータパケットが次に、再びラストマイル特有のゾーンU2セキュリティ設定に基づいたスクランブル化操作926によってスクランブルされて、データパケット1329が生成される。
図97Aに示された例では、スクランブル化操作926は、実際のデータを含むものをスクランブルし、ジャンクデータを含むものをスクランブルしないアルゴリズムが採用されている。次に、クライアントインターフェース1321において、再びゾーンU2のセキュリティ設定に基づいて暗号化操作1026が実行され、発信暗号文1328が生成される。(図示されているように)データ領域がジャンクデータとは別個に個別に暗号化されてもよく、あるいは、全データパケット1329が暗号化され、一つの長い暗号文を生成してもよい。暗号化されたデータパケットは最終的に、シングル通信チャンネルを介して、クライアントに転送、すなわち、「エクスポート」される。
同時に、スクランブルされた暗号文1327を含むデータがクライアントからルーティングされ、ラストマイルシングルチャネルを介して受信され、アルゴリズム、復号鍵等を含むゾーンU2のセキュリティ設定に基づいて、解読操作1032によって解読され、ジャンクデータとスクランブルされたデータセグメントとが混在したスクランブルされた平文データソケット1326が生成される。本発明の一実施形態では、インポート側のデータパケット1326におけるジャンクデータの配置は、エクスポート側のスクランブル平文データパケット1329のジャンクパケットの配置とは同じではない。例えば、エクスポート側のパケット1329では、1つおきにジャンクデータが含まれているのに対して、インポート側のパケットには、1番目、2番目にスクランブルされたデータが含まれ、3番目、4番目にジャンクデータが含まれる4つのスロットを1セットとし、そのセットが繰り返された形態となっている。
スクランブルされた平文データパケット1326は次に、ゾーンU2セキュリティ設定に基づいてパケットアンスクランブル化操作928、及び、その後、混合操作1089によって処理されることによって、元のデータの順序を復元され、ジャンクパケットを削除、すなわち、データがデジャンク1053されて、復号され、かつ、アンスクランブルされたデータパケット1325となる。次に、このデータパケットは、クライアントインターフェース1321からクラウドインターフェース1320に渡され、メッシュルーティングを目的として異なるデータパケットにフラグメント化されたデータをメディアノードMb,hや他のノードに送信する前に、SSE操作1213に基づいて、クラウド特有の分割、スクランブル化、暗号化を実行する。
図97Bにさらに示すように、SDNPゲートウェイメディアノードMb,fは、ソフトウェアを用いて、ゾーンZ1セキュリティ設定に従うクラウドインターフェース1320及びゾーンU2セキュリティ設定に従うクライアントインターフェース1320との双方に全二重通信を実行している。LTE基地局27、LTE無線タワー18及び無線リンク28を介したクライアントインターフェース1321からタブレット33へのラストマイル接続1355は、通信がスクランブル化され、暗号化され、かつ、データパケットにジャンクデータが挿入されているため、セキュリティが確保されている。受信データパケットを解釈し、セキュリティを確保して応答できるように、クライアント装置、この場合のタブレット1322は、SDNP対応のデバイスアプリケーションソフトウェア1322を実行していなければならない。
SDNPクライアントインターフェースにおけるデータパケットの処理は、図98により詳細に示されており、クライアントノードC2,1は、共にセキュリティゾーンU2にあるクライアントインターフェース1321、及びSDNPクライアント1322との間で全2重データ交換することによって、SDNPゲートウェイメディアノードMb,dとセキュリティを確保して通信する。その処理では、クライアントインターフェース1321から到着したデータパケットは、復号操作1032によって復号され、アンスクランブル操作928によってアンスクランブルされ、分割操作1089によってデジャンクされた後に、アプリケーション1336によって処理される。逆に、アプリケーション1336の出力は、混合操作1026によってジャンクが挿入され、その後、スクランブル化操作926においてスクランブルされ、暗号化操作1106おいて暗号化された後に、クライアントインターフェース1321に転送される。
本明細書で開示される方法に基づけば、メッシュネットワークを介して静的または動的にルーティングされる2以上のクライアント間のセキュリティを確保した通信が、別々のゾーンに管理され、別々のキー、別々の数値シード、別々のセキュリティに関連する秘密を用いた混合、暗号化、スクランブル化のアルゴリズムを任意に組み合わせることによって実現される。図99Aに示すように、ソフトウェアベースのSDNPメディアノードを実行するコンピュータサーバ1118を含むメッシュネットワークには、ゲートウェイメディアノードMb,f及びMb,dをホストするコンピュータサーバ1220F及び1220Dが含まれる。サブネット1318Aの内部のセキュリティは、ゾーンZ1のセキュリティ設定によって管理されている。ゲートメディアノードMb,dは、ラストマイルリンク1318Eを介してアクセスされる外部のデバイス、この場合は、携帯電話32にホストされたクライアントノードC1,1に接続する。ラストマイルリンク1318Eのセキュリティは、ゾーンU1のセキュリティ設定によって管理されている。同様に、ゲートウェイメディアノードMb,fは、タブレット33にホストされ、ラストマイルリンク1318Dを介して接続されたクライアントノードC2,1に接続している。ラストマイルリンク1318Dのセキュリティは、ゾーンU2のセキュリティ設定によって管理されている。
図示するように、パッドロックによってシンボル化された暗号化処理1339を用いたコミュニケーションによって、ネットワーク全体及びラストマイルリンクに渡るセキュリティが提供される。ラストマイルにおいてセキュリティを確保するため、クライアントデバイスの内部にて暗号化が行われることが必要である。必要に応じて、パケットは、ゲートウェイメディアノードによって再暗号化、または、二重に暗号化されてもよく、または別の実施形態では、メッシュ転送ネットワーク内のすべてのメディアノードによって復号及び再暗号化されてもよい。本明細書に記載の発明の一つの実施形態では、マルチレベルのセキュリティを容易に実現することができる。例えば、図99Aにおいて、ラストマイルコネクションリンク1318D及び1318Eが暗号化、すなわち、単一レベルあるいは1次元のセキュリティにのみ依存する。ネットワーク1318Aでは、暗号化を、静的分割、マルチルートトランスポート及び混合を含むメッシュネットワークと組み合わせることによって、2次元あるいは2重レベルのセキュリティが実現されている。データパケットのネットワーク内での通過に応じて、セキュリティ設定を時間に応じて、すなわち、動的に変化させることによって、セキュリティレベルを増加させることができ、すなわち、ラストマイルに渡る2次元または2重のセキュリティ、及びSDNPクラウドにおける3次元セキュリティを実現することができる。
図99Bに示すように、ネットワーク1318Aにスクランブル化を追加することにより、スクランブル化によるメッシュ転送及び暗号化を組み合わせた、より高いグレードのマルチレベルセキュリティへ、セキュリティが強化される。具体的には、このアプローチでは、クライアントノードC2,1からクライアントノードC1,1への通信に、追加された、ゲートウェイメディアノードMb,fにスクランブル化処理926及びゲートウェイメディアノードMb,dにアンスクランブル化処理928が含まれる。クライアントノードC1,1からクライアントノードC2,1への通信において、クライアントノードC1,1からの暗号化されたデータパケットがまず復号され、その後、マルチルートトランスポートのために分割され、スクランブル処理926によってスクランブル化され、ゲートウェイメディアノードMb,dにおいて暗号化される。ネットワーク1318Aを通過した後、データパケットは復号され、アンスクランブル化処理928を用いてアンスクランブル化され、その後、混合される。このアプローチは、ネットワーク1318Aの内部の多次元セキュリティを提供することができるが、ラストマイルでは、スクランブル化処理を伴わないシングルチャネルトランスポートを採用し、その安全性が暗号化に完全に依存しているため、ラストマイルにおいてはマルチレベルのセキュリティが提供されていない。
本発明の他の実施形態は、図99Cに示すように、マルチレベルのセキュリティ技術を、暗号化とスクランブル化を組み合わせて、ネットワーク1318A、及び、クライアントノードC2,1へのラストマイル接続1318Bをカバーするように拡張するものである。そのため、クライアントノードC2,1からクライアントノードC1,1への通信には、クライアントノードC2,1内のスクランブル化操作926と、ゲートウェイメディアノードMb,d内のスクランブル解除動作928とが含まれる。クライアントノードC1,1からクライアントノードC2,1への通信には、ゲートウェイメディアノードMb,dにおけるスクランブル処理926と、クライアントノードC2,1でホストされるアンスクランブル処理928とが用いられる。しかしながら、クライアントノードC1,1とゲートウェイメディアノードMb,dとの間のラストマイルコネクション1318Eは暗号化に完全に依存する。そのとき、クライアントノードC2,1はSDNPセキュリティ対応のソフトウェアプリケーションを使用しているが、クライアントノードC1,1は容易に入手できる暗号化のみを採用している場合がある。
発明の別実施形態は、図99Dに示すように、クライアントからクライアント、すなわち、端から端までの多次元のセキュリティを実現するために、スクランブル化と暗号化を拡張するものである。そのため、クライアントノードC2,1からクライアントノードC1,1への通信には、追加された、クライアントノードC2,1におけるスクランブル処理926、及び、クライアントノードC1,1におけるアンスクランブル処理928が含まれる。クライアントノードC1,1からクライアントノードC2,1への通信には、クライアントノードC1,1内の追加されたスクランブル化処理926、及びクライアントノードC2,1にホストされたスクランブル解除処理928が含まれている。その処理において、クライアントノードC1,1は、任意の発信データパケットをスクランブル化及び暗号化し、携帯電話32において実行されているSDNP対応ソフトウェアを介して着信データの復号、及びアンスクランブル化を行う。同様に、クライアントノードC2,1は、発信データパケットをスクランブル化及び暗号化し、タブレット33で実行されているSDNP対応ソフトウェアを介して、受信データの復号、及びアンクランブル化を実行する。同時に、それらによって、ラストマイル接続1318D及び1318Eでの2層または2次元セキュリティ、すなわち、暗号化及びスクランブル化を含むエンドツーエンドのセキュリティを確保した通信と、メッシュ化され、かつマルチルートのトランスポートを介する、メッシュ化されたネットワーク1318Aにおける3次元、または3層のセキュリティとが容易に実現される。データパケットがネットワークを通過する際に、セキュリティ設定が「動的に」変化する場合には、より高いレベルのセキュリティ、すなわち、ラストマイルにおける3次元または3層レベルのセキュリティ、及びSDNPクラウド内の4次元のセキュリティが実現される。
本実装方法における考え得る弱点は、クライアントが使用するのと同じスクランブル化方法と数値シードがSDNPクラウドを保護するためにも使用される点である。その結果、ゾーンU2、Z1、及びU1のセキュリティ設定が共有されなければならず、それにより、全ネットワーク及びルーティングがラストマイルサイバー攻撃によって外部に晒されるリスクがある。クラウドセキュリティ設定を公開しないようにするために利用することのできる一つの方法としては、図99Eに示されるように、ラストマイル接続1318Dにおいては、スクランブル化にゾーンU2のセキュリティ設定を用い、クラウドではスクランブル化にゾーンZ1のセキュリティ設定を用いる方法がある。コンピュータサーバ1220FによってホストされるゲートウェイメディアノードMb,fは、ゾーンU2のセキュリティ設定を使用して、受信データパケットをアンスクランブルし、次に、ゾーンZ1のセキュリティ設定を使用して、そのデータパケットをスクランブル化し、メッシュ化されたネットワーク1318Aに送信する。このように、クラウドのゾーンZ1のセキュリティ設定は、ラストマイル接続1318Dにおいて、漏れることがない。
マルチレベルセキュリティのさらなる改善が、図99Fに示されており、そこでは、スクランブル化、及び暗号化には、クライアントノードC2,1をゲートウェイメディアノードMb、fに接続するラストマイル接続1318DにおいてはゾーンU2のセキュリティ設定が用いられ、ゲートウェイメディアノードMb、f及びMb、dを含むメッシュ化されたネットワーク1318Aでは、ゾーンZ1のセキュリティ設定が用いられ、ゲートウェイノードMb、dをクライアントノードC1,1に接続するラストマイル接続1318EにおいてはゾーンU2のセキュリティ設定が用いられることによって、3つの異なるゾーンにおいて異なるセキュリティ設定が用いられている。このアプローチによって、ラストマイル、ラストマイルにおける2層または2次元のセキュリティ、及び、クラウドにおける3層または3次元のセキュリティに相当する、エンドツーエンドのセキュリティにエンドツーエンドの暗号化を付加することができる。データパケットがネットワークを通過する際にセキュリティ設定が時間とともに動的に変化する場合には、ラストマイルにおける3次元または2重レベルのセキュリティ、及びSDNPクラウド内で4次元のセキュリティを提供する、より高いレベルのセキュリティが実現される。
クライアントノードC2,1からクライアントノードC1,1、すなわちタブレット33から携帯電話32への通信では、クライアントノードC2,1上で実行されているSDNPアプリケーションが、ゾーンU2セキュリティ設定を用いて、スクランブル化926し、その後、暗号化してデータパケットを発信する。ラストマイル接続1318Dを横断するシングルチャネルデータパケットは、まず、復号され、次に、ゾーンU2のセキュリティ設定を用いたゲートウェイメディアノードMb,fによって実行されるアンスクランブル処理928によってアンスクランブルされる。次に、ゲートウェイメディアノードMb、fはゾーンZ1のセキュリティ設定を用いてそのデータを分割し、スクランブル化し、そして、ゾーンZ1のセキュリティ設定を用いて暗号化して、ネットワーク1318Aにメッシュ転送する。ゲートウェイメディアノードMb,dでは、そのデータパケットは、復号され、アンスクランブル処理928によってアンスクランブルされて、その後、ゾーンZ1のセキュリティ設定を用いて、シングルチャネル通信のためのデータパケットに混合される。次に、ゲートウェイメディアノードMb,dはスクランブルし、次に、ゾーンU1のセキュリティ設定を用いて、そのシングルチャネルデータパケットを暗号化して、そのデータをクライアントC1,1に転送する。そのパケットは最終的にその宛先となる携帯電話32に到達し、携帯電話32上で実行されているSDNP対応のアプリケーションによって、復号され、その後、ゾーンU1のセキュリティ設定を用いて、アンスクランブル化される。
同様に、反対方向、すなわち、クライアントノードC1,1からクライアントノードC2,1、換言すれば、携帯電話32からタブレット33への通信において、クライアントノードC1,1上で実行されているSDNPアプリケーションは、ゾーンU1のセキュリティ設定に基づくスクランブル化操作926を用いて、発信データパケットをスクランブルし、続いて暗号化する。ラストマイル接続1318Eを横断するシングルチャネルデータパケットはまず復号され、次に、ゲートウェイメディアノードMb,dによって実行されるアンスクランブル処理928によってアンスクランブルされる。ゲートウェイメディアノードMb,dは次に、ネットワーク1318Aにメッシュ転送するために、ゾーンZ1のセキュリティ設定を用いてデータを分離し、スクランブルし、ゾーンZ1のセキュリティ設定を用いてデータを暗号化する。ゲートウェイメディアノードMb,fにおいて、データパケットは復号され、アンスクランブル処理928によってアンスクランブルされ、ゾーンZ1のセキュリティ設定を用いて、シングルチャネル通信のためのデータパケットに混合される。次に、ゲートウェイメディアノードMb,fは、ゾーンU2セキュリティ設定を用いて、シングルチャネルデータパケットをスクランブル化、及び、暗号化し、クライアントノードC2,1にデータを転送する。タブレット33上で実行されるSDNP対応のアプリケーションがゾーンU2のセキュリティ設定に基づくアンスクランブル処理928によって、そのデータを復号し、その後、アンスクランブル化する。次に、データパケットは、クライアント、本実施形態の場合は、タブレット33に送信される。
前述したように、図示されたすべての通信リンクは、パッドロックアイコン1339によって示されるように、スクランブル化及び混合に依らず、暗号化されたデータを転送する。本発明を明確化するために、暗号化及び復号のステップの詳細は示されていない。一実施形態では、データパケットは、データが新しいメディアノードを横断するたびに、復号され、暗号化(すなわち、再暗号化)される。少なくとも、再スクランブル化を実行するすべてのメディアノードにおいて、受信データパケットはアンスクランブル化前に復号され、その後、スクランブルされ、暗号化される。メッシュ転送、暗号化、及びスクランブル化−すべてのゾーン固有のセキュリティ設定を使用−によって達成することのできる多層セキュリティの概要を次の表に示す。
上の表に示すように、データが転送される間に、暗号化とスクランブル化に動的な変更を加えると、サイバー犯罪者がパケットを盗聴し、データパケットを読み取るために「コードを壊す」ための時間に制限することができるため、セキュリティレベルが向上する。動的な変更は1日毎に、1時間毎に、または、スケジュールされた時間毎に行われてもよく、また、パケットベース単位で、概ね100ミリ秒毎に行われてもよい。上の表から、クラウド上の転送に比べて、ラストマイルはセキュリティが確保されていないことも明らかである。
ラストマイルのセキュリティを強化する一つの手段は、ジャンクデータセグメントをデータストリームに動的に挿入し、完全にジャンクからなるパケットをおとりとして送信することであり、これによって、サイバー犯罪者に無益なデータを復号させ、サイバー犯罪者のコンピュータリソースを浪費することができる。この改善はセキュリティレベルの3次元から3.5次元への変更として表すことができ、これはジャンクデータの挿入は、暗号化、スクランブル化、及びマルチルート転送によって達成されるほどのセキュリティ強化ではないことを示しているが、特にジャンクデータの挿入が時間の経過とともに変化し、送受信のパケットが異なる場合には有効である。本発明によるSDNPセキュリティを改善するための別の重要な態様としては、本明細書で後述される一つのトピック、「ミスダイレクション」を用いること、すなわち、パケットルーティング中に実際の発信元及び宛先を隠す方法がある。
[秘密、キー、及びシードの転送]
SDNPベースのセキュリティを確保した通信は、外部当事者が関与しないか、認識できないか、または、その意味や目的の理解することのできない情報を通信に関与する当事者の間で交換することに依存している。実際に送信されるデータの内容とは別に、この情報には、共有秘密と、アルゴリズムと、暗号化及び復号鍵と、数値シードとが含まれ得る。本明細書で使用される「共有秘密」とは特定の通信相手のみが知っているか、または共有している情報であって、例えば、混合、スクランブル化、及び/または暗号化アルゴリズム、暗号化及び/または復号鍵、及び/または、シード生成器、番号生成器、あるいは時間によらず特定のものを選択するための別の方法等のリストである。例えば、図92Bにおいて、セレクタ1307は共有秘密である。
共有キー、数値シードは、時間やステートに基づき得るものであり、これらを用いて、特定のアルゴリズムの選択、様々なオプションの呼び出し、または、プログラムの実行等が行われる。如何なる特定の数値シードも意味をなさないが、数値シードは共有秘密と組み合わせることによって、ネットワーク上で動的なメッセージや条件を、たとえ遮断された場合であっても、その意味や機能を明らかにすることなく、伝達することが可能となる。
同様に、暗号化された通信を実行するために、暗号化には通信相手によって合意された特定のアルゴリズム、すなわち共有キーと、暗号化及び復号に使用される1つまたは2つのキーの交換が必要となる。対称キー方式では、暗号鍵と復号鍵は同一である。 対称キーの交換は、鍵が長い、すなわち、34ビットまたは36ビットであり、暗号を破るために利用可能な時間が短い、すなわち、1秒以下である場合には、攻撃に対する耐性がある。任意の暗号化アルゴリズムに対して、対称暗号鍵において使用されるビット数を、その鍵が有効である時間で割った比は、暗号化のロバスト性の尺度となる。そのため、対称キーが長く、かつ、暗号化を破るのに利用できる時間が短い動的なネットワークでは、対称キーを使用することができる。代わりに、暗号化アルゴリズムは、暗号鍵と復号鍵とが別個であるか、または、暗号化のための1つのキーと復号のための1つのキーとを用いて、暗号鍵と復号鍵とが「非対称」であるように構成されていてもよい。オープンな通信チャネルでは、非対称キーは、暗号キーのみが通信され、暗号キーが解読キーに関する情報を持っていないため、有利である。時間の経過と共に動的に変化する、対称キー、非対称暗号キー、数値シード、及び、共有秘密を組み合わせることによって、それらが協働して、SDNP通信に優れた多次元のセキュリティが提供される。暗号に関しては、例えば、「Alan G. Konheim「Computer Security and Cryptography」(Wiley、2007)」等の多くの参考文献を利用することができる。しかし、リアルタイム通信に暗号化を適用することは容易ではなく、今までの文献では予期されていない。多くの場合、データ通信に暗号化を付加すると、待ち時間と伝搬遅延が増加し、ネットワークのQoSが低下する。
共有秘密は、実際の通信、メッセージ、呼び出し(コール)、またはデータ交換の前に、クライアントノードとメディアノード間で交換される。図100Aは、共有秘密がSDNP実行可能なコードのインストールに合わせて、どのように分散されるかを示している。ゾーンZ1において、ソフトウェアパッケージ1352Aは、実行可能なコード1351と、シード生成器921、数字生成器960、アルゴリズム1340、暗号鍵1022、及び、複合キーを含むか、または、それらのいくつかの組み合わせからなるゾーンZ1共有秘密とを含んでいる。実行可能なコード1351及び共有秘密1350Aを含むゾーンZ1のためのセキュリティを確保したソフトウェアパッケージ1352Aは、クラウド1114内のメディアサーバ1118と、「DMZ」サーバ1353A及び1353Bとに配信される。メディアノードMa,b、Ma,fにおける実行可能なコード1351、及び、DMZサーバとは分離したコンピュータ、例えば、サーバ1118における他のホストされたコードのインストールにおいて、ゾーンZ1の共有秘密、すなわち、Z1秘密1350Aのインストールが同時に行われる。
DMZという用語は、通常、非武装地帯の頭字語を示すが、この場合、インターネットを通じて直接アクセスできないコンピュータサーバを意味する。DMZサーバは、メディアノードとして機能する1つまたは多数のネットワーク接続されたサーバを制御することができるが、メディアサーバ1118はいかなるDMZサーバ、例えば、DMZサーバ1353A、1353B及びその他のもの(図示せず)にもアクセスすることはできない。すべてのソフトウェア及び共有秘密の配信は、タイムクロック付きパドロック1354によって示されるように短時間にのみ有効なセキュリティを確保した通信において行われる。ソフトウェア配信が遅延している場合、SDNP管理者は、直接アカウント所有者の身元と資格情報を確認した後に、ゾーンZ1のためのセキュリティを確保したソフトウェアパッケージ1352Aのダウンロードを再認証しなければならない。
詳述すると、DMZサーバが「インターネットを通じて直接接続されていない(直接アクセスできない)コンピュータサーバ」であるとの記載は、インターネットとそのサーバとの間に直接的な電子的リンクが存在しないことを意味する。実際には、Z1ファイル1352Aのインストールには、インターネットを通じたサーバのアカウント管理者、またはアカウント所有者と協働するサーバファームの介入が必要である。DMZにファイルをインストールする前に、アカウント管理者がアカウント所有者のIDと、インストールが有効であることを確認する必要がある。
インストールを確認した後、管理者は、管理者のコンピュータを直接DMZサーバにリンクするローカルエリアネットワーク(LAN)を用いて、Z1秘密を含むファイルをDMZサーバにロードする。したがって、LANは直接インターネットに接続されないが、厳密な認証プロセス後に、管理者のコンピュータを介して、認証された転送を行える必要がある。共有秘密のインストールは単方向であり、ファイルはインターネットからの読み取りアクセスされることなく、DMZサーバにダウンロードされる。DMZコンテンツをインターネットにアップロードすることも同様に禁止されており、それゆえ、オンラインアクセスやハッキングを防ぐことができる。
共有秘密のインストールプロセスは、オンラインバンキングを利用することができず、顧客の承認によってのみ、銀行員が手動で電信送金を行う銀行口座と類似している。インターネットからのアクセスを拒否することによって、共有秘密を傍受するためには、物理的な介入と、サーバファームでのオンサイトの攻撃とが必要であり、その際には、転送時のLAN上のファイバを正確な識別、接続、傍受することが必要となる。その場合であっても、インストールされるファイルは暗号化され、短時間しか利用することができない。
同じ概念を図100Bに示すマルチゾーンソフトウェア展開に拡張することができ、SDNP管理サーバ1355を使用して、ゾーンZ1用の秘密1350Aとして、DMZサーバ1353Aに、実行可能コード1351として、クラウド1114内のメディアサーバ1118にそれぞれ、ゾーンZ1用のセキュリティを確保したソフトウェアパッケージ1352Aが送信される。同様に、SDNP管理サーバ1355を用いて、ゾーンZ2用の共有秘密1350BとしてDMZサーバ1353Bに、実行可能コード1351としてクラウド1315内のメディアサーバにそれぞれ、ゾーンZ2用のセキュリティを確保したソフトウェアパッケージ1352Bが配布される。SDNP管理サーバ1355はまた、実行可能コード1351を含むセキュリティを確保したソフトウェアパッケージ1352Cを、SDNPクラウド1114のブリッジメディアノードMb,f、及びSDNPクラウド1315のノードMb,nに送信し、ゾーンZ1及びZ2の両方の共有秘密1350CをDMZサーバ1353Cに送信する。SDNPクラウド1114のブリッジメディアノードMb,f及びSDNPクラウド1315のMb,nは、管理サーバ1355から実行可能コード1351を直接受信し、DMZサーバ1353CからゾーンZ1及びゾーンZ2の共有秘密を受信する。ブリッジメディアノードMb,fは、Z1とZ2の秘密間の変換を実行するため、それ(及び図示されていない他のブリッジサーバ)のみが、Z1とZ2の両方の共有秘密にアクセスする必要がある。それ以外のゾーンZ1のノードはゾーンZ1の共有秘密にのみアクセスし、それ以外のゾーンZ2のノードはゾーンZ2の共有秘密にのみアクセスするように構成される。
特筆すべきことに、SDNP管理サーバ1355は、共有秘密をDMZサーバ1353A、1353B、及び1353Cに提供するが、SDNP管理サーバ1355は、配信後に共有秘密に何が起こるかについての知ることがなく、一旦配信された共有秘密にいかなるコマンドもいかなるコントロールや影響も与えることがない。例えば、アルゴリズムのリストがシャッフルされ、すなわち、並べ替えられて、特定のアルゴリズムのアドレスが変更される場合、SDNP管理サーバ1355は、シャッフルがどのように行われるかについて知ることがない。同様に、SDNP管理サーバ1355は、通信相手間の数値シードまたはキー交換の受信者でもなく、したがって、いかなる制御も行わない。実際、開示されているように、SDNPネットワーク全体において、パッケージ、そのルーティング、セキュリティ設定、またはそのコンテンツに関するすべての情報を持っているサーバは存在しない。したがって、SDNPネットワークは、セキュリティを確保したグローバル通信のための完全に分散されたシステムであり、比類のないものである。
図101Aに示すように、DMZサーバへの共有秘密の配信は、SDNP管理サーバ1355がDMZサーバ1353Aとの通信を確立し、そのコンピュータが実際にSDNP認証されたDMZサーバであるかの認証プロセスを経る厳密に定義されたプロセスにおいて行われる。そのプロセスは自動化されていても、銀行の送金と同様に、人とのやりとりやアカウント所有者の認証を含められていてもよい。いずれの場合でも、その認証において、DMZサーバ1353Aの信頼性を確認した場合にのみ、SDNP管理サーバ1355がその秘密、及びコードをDMZサーバ1353Aに転送することを許可する電子認可証明書1357が生成される。いったんロードされると、これらの設定は、メディアノード1361,1362,1363に送信され、メディアノードM1,M2,及びM3にそれぞれ、送受信されたデータパケットをどのように処理するかを指示する。
同じDMZサーバ1353Aは、例えばメディアサーバアレイ1360のように、1つ以上のメディアサーバを管理してもよく、または、代わりに、複数のDMZサーバが同じセキュリティ設定及び共有秘密を伝送してもよい。メディアノードは全て、タイムシェアリング及びロードバランシングを使用して、メディア、コンテンツ、及びデータを協働して伝送するように動作していてもよい。メディアサーバアレイ1360上の通信負荷が低下したときには、クローズドスイッチ1364A及び1364Bによって示されるように、メディアノードM2は依然として動作させたまま、オープンスイッチ1365A及び1365Bによって記号的に示されるように、メディアノードM3をオフラインにしてもよい。スイッチは、特定のサーバの入力と出力が物理的に切断されていることを示すものではなく、サーバがメディアノードアプリケーションをもはや実行していないことを示しており、これにより、電力が節約され、不要なサーバに対するホスティング費用を省くことができる。図示されるように、1つのDMZサーバ1353Aは、命令、コマンド、及び秘密をDMZサーバ1353Aからサーバアレイ1360内の任意のサーバにダウンロードすることによって、複数のメディアサーバの動作を制御することができるが、その逆はできない。メディアサーバからのDMZサーバ1353Aのコンテンツの書き込み、クエリ、または、インスペクト等、情報を得ようとする試みは、すべてファイアウォール1366によってブロックされ、メディアノードを介したインターネットを通じて、DMZサーバ1353Aのコンテンツを調査したり、取り出したりすることはできない。
共有秘密を基礎とした本発明に基づくセキュリティを確保した通信の例が図101Bに図示されており、ここでは、全ての通信の前に、ゾーンZ1の共有秘密1350Aが管理サーバ(図示せず)によって、DMZサーバ1353A及び1353Bを含むゾーンZ1のすべてのDMZサーバに供給されている。このような共有秘密には、シード生成器921、数字生成器960、アルゴリズム1340、暗号鍵1022、及び復号鍵1030が含まれるが、これらに限定されない。送信メディアノードMSとメディアサーバ1118がホストする受信メディアノードMRとの間の通信中に、DMZサーバ1353Aは、ペイロードパケット1342が作成された時間を示すデータ1341及びステート920とを含むペイロードパケット1342を用意するため、共有秘密を送信メディアノードMSに渡す。メディアノードMSから送信される前に、ペイロードパケット1342もまた、パドロックによって記号的に表された暗号化処理1339を用いて暗号化される。
セキュリティを確保したペイロードパケット1342を受信すると、受信メディアノードMRは、DMZサーバ1353Bによって供給される共有秘密1350A内に含まれる復号鍵1030を用いて、パケット1342を復号し、次に、データパケット1342に固有のステート情報920を用いて、データ1341を回復する。別の実施形態としては、数値シード929は、事前に、送信メディアノードMSから受信メディアノードMRに、一時的な寿命を有する数値シード929として送信されてもよい。数値シード929が一定期間内に使用されない場合、または、ペイロードパケット1342が遅延した場合には、シードの寿命が切れ、数値シード929は自己破壊し、メディアノードMRがペイロードパケット1342を開けなくなる。
伝送されるパケットにシード及びキーを収め、そのシード及びキーを組み合わせた共有秘密を用いた本発明のセキュリティを確保した通信の他の例が図101Cに示されている。この例では、全ての通信の前に、ゾーンZ1の共有秘密1350Aがサーバ1353A及び1353Bを含む全てのゾーンZ1のDMZサーバに供給される。このような共有秘密には、シード生成器921、数字生成器960、及びアルゴリズム1340が含まれ、これらに限定されないが、暗号鍵1022及び復号鍵1030などのキーは含まれない。送信メディアノードMS及びメディアサーバ1118にホストされた受信メディアノードMRとの間の通信の間、DMZサーバ1353Aは、データ1341、(ペイロードパケット1342が作成された時間を記述する)ステート920、及び暗号鍵1022(後にペイロードパケットの暗号化に用いられる)を含むペイロードパケット1342を準備するために、送信メディアノードMSに共有秘密を送信する。ペイロードパケット1342は、ルーティング前に、パドロックによって記号的に表された暗号化処理1339によって暗号化される。
セキュリティを確保したペイロードパケット1342を受信すると、受信メディアノードMRは、一時的な寿命を有し、事前に、すなわち、ペイロード1342の通信の前に、送信メディアノードMsと受信メディアノードとの間の別個の通信によって供給された復号鍵1030を用いて、パケット1342を復号する。この先のデータパケットは、別の復号、動的アルゴリズム、数値シード、またはそれらの組み合わせなどの共有キーによって保護されてもよい。復号鍵1030が一定期間内に使用されない場合、または、データパケット1342が遅延した場合、復号鍵1030の寿命が切れ、自己破壊し、メディアノードMRがペイロードパケット1342を開けなくなる。別の方法として、復号鍵1030をペイロードパケット1342に含めことが考えられるが、この方法は好ましくない。
コンテンツに全てのセキュリティ関連情報を配信することを回避する1つの方法は、コンテンツを配信するために用いられるメディア通信チャネルから、コマンド及び制御信号を配信するために用いられるチャネルを分割し、かつ分離することである。本発明によれば、図102に示す「デュアルチャネル」通信システムは、メディアサーバによって伝送されるメディア用チャネルと、本明細書ではシグナリングサーバと呼ばれる第2のコンピュータネットワークによって伝送されるコマンド及び制御用チャネルとを備える。通信中、インストールされたSDNPソフトウェアを実行するシグナリングサーバ1365は、コマンド及び制御信号を伝送するためのシグナリングノードS1として動作し、インストールされたSDNPソフトウェアを実行するメディアサーバ1361,1362,及び1363は、それぞれコンテンツ、及びメディアを伝送するためのメディアノードM1、M2、及びM3として動作する。このように、メディア用チャネルはコマンド及び制御信号を伝送せず、コマンド及び制御信号は、ペイロードと組み合わされるか、または、個別にメッセージを含むデータパケットよりも前に事前に伝送されるデータとして、メディア用チャネルを介して伝送される必要がない。
動作中、サーバアレイ1360に到達するメディアパケットのためのルーティング及びセキュリティ設定を記載したパケットがシグナリングノードS1に伝送される。これらの専用パケットは、ここでは「コマンド及び制御用パケット」と呼ぶ。通信の間、コマンドパケット及び制御用パケットはメディアノード1321,1362及び1363に送信されて、メディアノードM1、M2、及びM3に、それぞれ、送受信データパケットをどのように処理するかを指示する。これらの指示は、DMZサーバ1353A内に存在する情報と組み合わされる。前述したように、同じDMZサーバ1353Aは、複数のメディアサーバ、例えば、メディアサーバアレイ1360を管理してもよい。メディアノードは、タイムシェアリング、及びロードバランシングを使用して、メディア、コンテンツ、及びデータを協働して伝送するように動作してもよい。メディアサーバアレイ1360上の通信負荷が低下すると、クローズドスイッチ1364A及び1364Bによって示すように、メディアノードM1及びM2が依然として動作したまま、オープンスイッチ1365A及び1365Bによって記号的に示すように、メディアノードM3をオフラインにすることができる。スイッチは、特定のサーバの入力と出力が物理的に切断されていることを示すものではなく、サーバがメディアノードアプリケーションをもはや実行していないことを示しており、これにより、電力が節約され、不要なサーバに対するホスティング費用を省くことができる。
図示されているように、シグナリングサーバ1365と共に動作する1つのDMZサーバ1353Aは、指示、コマンド、及び秘密をDMZサーバ1353Aからサーバアレイ1360内の任意のサーバにダウンロードすることによって、複数のメディアサーバの動作を制御することができるが、その逆はできない。シグナリングサーバ1365から、または、メディアサーバ1361,1362、及び1362からのDMZサーバ1353Aのコンテンツの書き込み、クエリ、またはインスペクトすることによって、情報を得ようとする試みは、全てファイアウォール1366によってブロックされ、メディアノードを介したインターネットを通じて、DMZサーバ1353Aのコンテンツをインスペクトしたり、取り出したりすることはできない。
このように、デュアルチャネル通信システムでは、通信ネットワークのコマンド及び制御は、別個の異なる通信チャネル、すなわちメッセージの内容とは分離した固有のルーティングを使用する。シグナリングサーバのネットワークは、ネットワークのためのコマンド及び制御情報を全て伝送し、メディアサーバはメッセージの実際の内容を伝送する。コマンド及びコントロール用のパケットには、シード、キー、ルーティングの指示、優先度設定等を含んでもよく、一方、メディア用のパケットには、声、テキスト、ビデオ、電子メール等を含んでいてもよい。
デュアルチャネル通信の一つの利点としては、データパケットに、その起源や最終的な宛先等の情報を含まないことがある。シグナリングサーバは、メディアサーバに「知る必要性」に基づいて、各受信データパケットに対する処理、すなわち、送信したノードのアドレスによる受信パケットの識別方法、または、SDNP「郵便番号」に基づく処理、及び送信先を、各メディアサーバに通知する。このように、パケットには、クラウド上の直前のステップ及び次のステップで必要となる以上のルーティング情報が含まれない。同様に、シグナリングサーバはコマンドやコントロール情報を伝送し、メディアチャネル内で行われているデータパケットの中身やいかなる通信にもアクセスすることがない。このようなコンテンツを含まない制御用チャネルと、ルーティングを含まないコンテンツ用チャネルに分割することによって、デュアルチャネルのSDNPベースのネットワークに、より高いレベルのセキュリティを与えることができる。
本発明におけるデュアルチャネルのセキュリティを確保した通信の一例が図103Aに示されており、そこでは、シード929及び復号鍵1080を含むコマンド及び制御データパケットがシグナリングサーバ1365によって通信され、一方、メディア及びコンテンツがメディアサーバ1118間で通信される。例えば、全ての通信の前に、ゾーンZ1の秘密1350Aが、サーバ1353A及び1353Bを含む全ゾーンZ1のDMZサーバに供給され、その共有秘密には、シード生成器921、数字生成器950、及びアルゴリズム1340が含まれ、これらには限定されないが、復号鍵1030のようなキーを含まない。通信が開始される前に、シグナリングサーバ1365を送信することによってホストされるシグナリングノードSsは、数値シード929及び復号鍵1030または他のセキュリティ設定を含むコマンド及び制御パケットをデスティネーションシグナリングノードSdに送信する。次に、DMZサーバ1353A及び1353B内に含まれる共有秘密、及びセキュリティ設定と組み合わされたこの情報は、メディアノードMSがどのようにして暗号化されたペイロード1342を受信メディアノードMRに転送すべきかを指示するために使用される。ペイロード1342の情報の暗号化は、パドロック1339によって示されている。
このように、通信中のデータ1341とは別に、ペイロードパケット1342内に含まれる唯一のセキュリティに関連するデータは、ペイロードパケット1342が作成された時間を記述するステート920である。一旦、ペイロードパケット1342が受信メディアノードMRに受信されると、それは復号鍵1030によって復号される。復号された後、シード929は、ステート情報920及びDMZサーバ1353Bから供給される共有秘密1350Aと共に、上に開示した方法に基づいて、ペイロードパケット1342、及び他の受信パケットのアンスクランブル化、混合、及び分割に用いられる。データパケットは、最後に修正された時間の情報、すなわち、復号鍵を局所的に生成するために特に有用なステート情報を伝送することができるが、コマンド及びコントロール用チャネルを介して転送されたシードと共に用いることによって、受信したデータパケットにたとえ直前のノードで必ずしも実行されたものでない場合であっても、以前に行われた分割、及び、アンスクランブル化の処理を割り出すことができる。
図103Bに示されるように他の実施例において、数値シード929はメディアチャネルを介して、事前、すなわち、ペイロードパケット1342の前に送信されるが、復号鍵はシグナルチャネルを介して送信される。そのように、セキュリティを確保した通信を行うため、送信方法の組み合わせや変更が可能である。他の実施形態としては、シード、キー、及び動的なセキュリティ設定が時間と共に変化しながら送信されていてもよい。
上述したエンドツーエンドのセキュリティを容易に実現するために、実行可能なコード、共有秘密、キーは、クライアントにインストールされるか、典型的にはアプリケーションとしてダウンロードされる必要がある。SDNPネットワークでセキュリティ設定が開示されることを防止するため、このようなダウンロードは、クライアント、及び、クライアントが通信できるクラウドゲートウェイノードによってのみアクセス可能な別のゾーンにおいて定義される。図104に示すように、携帯電話32のようなモバイルデバイスを、SDNPクラウドを用いて通信可能とするためには、まず、認証されたSDNPクライアントとならなければならない。このステップには、ゾーンU1のソフトウェアパッケージ1352DをSDNP管理サーバ1355からクライアントノードC1,1、すなわち、携帯電話32に、限られた時間内においてのみ有効となるセキュリティを確保したダウンロードリンク1354を用いてダウンロードすることが含まれる。ダウンロードが完了するのに時間がかかりすぎるか、または、ユーザがリアルなデバイスであり、クライアントであると偽るハッカーのコンピュータではないことを認証する特定の認証基準を満たさない場合には、ファイルは復号されることはないか、または、携帯電話32にインストールされない。ゾーンU1ソフトウェアパッケージ1352Dには、実行可能コード1351及びゾーンU1秘密1350が含まれ、実行可能コード1351は携帯電話32またはコードをインストール可能な他のデバイスのOS、例えば、iOS、Android、Windows(登録商標)、Mac OS(登録商標)などにカスタマイズされ、ゾーンU1秘密1350はシード生成器921、数字生成器960、アルゴリズム1340、暗号鍵1022及び復号鍵1030など、あらゆるゾーンU1クライアントにカスタマイズされたものの組み合わせを含んでいてもよい。
ゾーンU1外部のクライアントノードC1,1がゾーンZ1 SDNPクラウド1114と通信するためには、メディアノードMa,dのようなゲートウェイノードが、ゾーンU1,Z1ダウンロードパッケージ1352Eに含まれるゾーンZ1及びU1のセキュリティ設定を含む情報を受け取らなければならない。パドロック1354によって示される時間制限されたセキュリティを確保したダウンロード方法を使用して、ゾーンZ1及びゾーンU1秘密が共に、リンク1350Cを介してDMZサーバ1353Cにダウンロードされ、実行可能コード1351がリンク1351を介してダウンロードされ、SDNPメディアノードMa,d、及び、クラウド1114と外部クライアントとの間のゲートウェイ接続、すなわち、ラストマイル接続をサポートする接続を実行するために必要な他のゾーンZ1メディアノードにインストールされる。一旦、ダウンロードパッケージ1352E及び1352DがそれぞれゾーンZ1のメディアノードMa,d及びゾーンU1のクライアントノードC1,1にロードされると、暗号化処理1339を含めたセキュリティを確保した通信1306が実行可能となる。
メディアサーバ1118にホストされるゾーンZ1内のセキュリティを確保したクラウドから、ゾーンU1内の携帯電話32のような外部デバイスにホストされるクライアントノードC1,1への通信はシングル通信チャネルを介して行われ得るため、クラウド1114において行われるデュアルチャネルの通信をラストマイルにおいて必要となるシングルチャネルの通信に変換する手段が必要となる。デュアルチャネルからシングルチャネルへ変換する際のSDNPゲートウェイノードの役割の一例が図105Aに示されており、ゲートウェイメディアノードMRはシグナリングサーバ1365内のシグナリングノードSdに入るゾーンZ1コマンド及び制御パケットをメディアコンテンツと結合し、データ1341と、データパケット1342が作成された時間を提供するステート920を含むゾーンU2セキュリティ設定と、数値シード929と、次のパケット、すなわち、ノードC1,1によって作成されるパケットの暗号化に用いられる暗号鍵1022とを含むペイロードパケット1342を用いて、シングルチャネル通信を行う。
ペイロードパケット1342は、暗号化処理1339を用いて暗号化される。ペイロードパケットの復号のためには、復号鍵1030を用いる必要があり、その復号鍵1030には、共にセキュリティを確保したアプリケーション及びデータボルト1359に以前ダウンロードされた、共有ゾーンU1秘密1350Dのひとつと、シード生成器921、数字生成器960、及びアルゴリズム1340といった他のゾーンU1秘密とが含まれる。他の実施形態としては、図105Bに示すように、まず、事前にシード929が送信され、スクランブルされた復号鍵1030をアンスクランブルするために用いられ、次に、ペイロード1342を復号するために用いられる。次にステート920を用いて、ラストマイル通信におけるセキュリティブレイクに対抗するための複数のバリアを提供するデータ1341を復号、またはアンスクランブルする。
本発明によれば、クライアントによって繰り返し使用されるアルゴリズムの認識を防止するため、クライアントにインストールされたアルゴリズムのリストからアルゴリズムを選択するために用いられるアドレス、またはコードは、例えば、毎週、毎日、毎時間、変更される。「シャッフル」と呼ばれるこの機能は、デッキ内のカードの順序の入れ替えと類似であり、かつ、ネットワーク内で実行されるシャッフルと同様の方法で行われる。シャッフルは、そのアルゴリズムテーブルがスクランブル化、混合、または暗号化のための方法を含むかどうかに関わらず、アルゴリズムのテーブル内の任意のアルゴリズムを識別するために使用される番号を並び替える。図106に示すように、クライアントノードC1,1内、例えば、携帯電話32にホストされたアルゴリズムテーブルをシャッフルするために、シグナリングノードSsをホスティングしているシグナリングサーバ1365は、SDNPクラウドが新しいアルゴリズムアドレスを解釈できることを保証すると共に、シードをゾーンU1数字生成器960に供給するための数値シード929をクライアントノードC1,1に送信する。与えられた数値はシャッフルアルゴリズム1312のトリガとなり、ゾーンU1のアルゴリズムテーブル1368Aが新しいゾーンU1アルゴリズムテーブル1368Fに変換され、変更されたテーブルがクライアントノードC1,1内にあるセキュリティを確保したアプリケーション及びデータレジスタ1359にストアされる。シグナリングサーバ(図示せず)は、スケジュール時間1310から導出されたステート情報と、シャッフルプロセスをスケジュールするために使用されるイベント日付1311とに基づいて数値シード929を生成する。同じステート及び日付の情報がDMZサーバ内のテーブルをシャッフルするために使用されているため、クラウド及びクライアントのアルゴリズムテーブルが同一かつ同期されることが保証される。
クラウドからクライアントノードC1,1にセキュリティ設定を伝える改良された方法としては、図107に示すように、デュアルチャネル通信を用いる方法があり、その場合には、メディアサーバ1118にホストされたメディアノードMRがクライアントノードC1,1に数値シード929に送信し、別のシグナリングサーバ1365にホストされたシグナリングノードSdがクライアントノードC1,1に復号鍵1030を送信する。この方法の利点は、復号鍵1030が数値シード929及びペイロードパケット1342の場合とは異なるSDNPパケットアドレスを有する異なるソースから送信されるということである。考え得る欠点は、通信経路が異なるという事実にもかかわらず、両方のネットワークチャネルが同じ物理媒体、例えば携帯電話32への単一のWiFiまたはLTE接続を介して伝送されることが多い点である。シグナリングサーバ1365からクライアントノードC1,1への伝送される前に、復号鍵1030がスクランブルまたは暗号化されることによって、この欠陥が大幅に修正され、パケットスニッフィングによって傍受または読み取ることができなくなる。
動作中、メディアノードMRからクライアントノードC1,1へメディアチャネルを介して渡される数値シード929は、アルゴリズムテーブル1340から復号アルゴリズムを選択し、パドロック1339Cによって示される復号鍵1030のセキュリティをアンロックするために用いられる。一旦アンロックされると、復号鍵1030は、暗号化処理1339Bによってペイロードパケット1342に対して実行された暗号化をアンロックするために用いられる。次に、数値シード929は、ゾーンU1秘密1350Dと共に、クライアントノードC1,1が使用するデータ1341を復元するために用いられる。
図108に示すように、非対称キー交換が使用される場合には、DMZサーバ1353Aは、秘密復号鍵1030A及び公開暗号鍵1370Aを含む一対の非対称キーを生成する。復号鍵1030Aは、ゾーンZ1秘密としてDMZサーバ内に秘密のままであり、公開暗号キー1370Aは、シグナリングノードSdを介してキー交換サーバ1369に渡される。キー交換サーバ1369は、必要になるまで暗号キー1370Aを保持し、その後、必要に応じてクライアントデバイス1335に渡す。クライアントノードC1,1がメディアノードMRに送信されるペイロードデータパケット1342を準備する際には、まず、ゾーンZ1暗号鍵1370Aをキー交換サーバ1369からダウンロードする。シグナリングサーバが暗号鍵をクライアントノードC1,1に直接渡すことができるため、キー交換サーバ1369を使用することに多くの利点が存在する。公開キー交換サーバを用いることの最初の利点は、よく見える状態であっても隠された状態にある、すなわち、「数が多いことによる安全性」があるという利点がある。公開キーサーバは何百万もの暗号キーを発行し得るため、会話を不正に盗聴するために、どのキーを入手すればよいのかを侵入者が知ることができない。たとえ、奇跡的に侵入者が正しいキーを選択した場合でも、侵入者は暗号鍵を用いて暗号化することはできるが、復号することはできない。第3に、公開キーの配布は、シグナリングサーバが鍵を配布し、その配布を確認する必要がない。最後に、キー交換サーバを用いることによって、サイバー犯罪者にとって暗号鍵がどこから来たかを追跡する方法がなくなり、シグナリングサーバを介して発信者(呼び出し側)を追跡することが困難となる。
暗号鍵1370を取得した後、クライアントサーバ1335のノードC1,1は、選択された暗号化アルゴリズム及び暗号鍵1371Bを用いて、ペイロードパケット1342を暗号化する。メディアノードMRはDMZサーバ1353Aから復号鍵1030にアクセスすることができるため、ペイロードパケット1342をアンロックすることができ、かつ、そのファイルを読み取ることができる。逆にゾーンU1秘密1350Dは、クライアントノードC1,1からキー交換サーバ1369に渡される暗号鍵(図示せず)に対応する復号鍵1030を含む。メディアノードMRがクライアントノードC1,1のデータパケットを準備すると、ゾーンU1の暗号鍵1370Aをダウンロードし、次に、ペイロードパケット1342を暗号化して、クライアントノードC1,1に送信する。携帯電話32は、ゾーンU1復号鍵1030を含むゾーンU1秘密にアクセスできるため、ペイロードパケット1342を復号し、読み出すことができる。
上述した特定の方法、及び、他のそれらの組み合わせによって、ソフトウェア、共有秘密、アルゴリズム、数字生成器、数値シード、非対称または対称暗号鍵の配布を含むセキュリティを確保した通信を、本発明に従って、実現することができる。
[SDNPパケット転送]
本発明に基づくセキュリティを確保した通信の別側面は、サイバーアタッカーが、シングルホップの発信元及び宛先を明らかにすることによって、データパケットまたはコマンド、及び制御パケットがどこから来て、どこに到着するのか、すなわち、真の発信元と最終送信先を判断することが難しいということである。さらに、一つのSDNPクラウド内で用いられるSDNPアドレスは、インターネット上で有効な実際のIPアドレスではなく、NATアドレスと類似した方法でSDNPクラウドにおいて意味を持つローカルなアドレスのみである。NATネットワークにおけるデータ転送とは異なり、SDNPネットワークを通過するデータのルーティングにおいて、データパケットヘッダー内のSDNPアドレスは、各ノードツーノードのホップの後、書き換えられる。さらに、メディアノードは、データパケットを送信してきた直前のメディアノード、及び、転送先の次のメディアノード以外のルーティングを知ることがない。そのプロトコルは、上述したシングルチャネル及びデュアルチャネルの通信の例に基づくものとは異なるが、ルーティングのコンセプトは共通である。
[シングルチャネル転送]
シングルチャネル通信の一例が図109に示されており、そこでは、データパケットはそれぞれがSDNP対応のアプリケーション1335が実行しているタブレット33及び携帯電話32を接続するSDNPメッシュネットワークを介して転送される。クライアントノードC2,1からクライアントノードC1,1へのセキュリティを確保した通信において、データはゾーンU2においてクライアントノードC2,1からメディアノードMa,fへのシングルチャネルラストマイルルーティングを通過し、次に、ゾーンZ1のSDNPクラウドにおいて、ゲートウェイメディアノードMa,fからゲートウェイメディアノードMa,dへのメッシュルーティングを通過し、最終的にゾーンU1においてメディアノードMa,dからクライアントノードC1,1へシングルラストルーテイングを通過する。データパケット1374Bは、パケットが発信元IP Addr TBからメディアサーバ1220FのIPアドレス、IP Addr MFに送信されることを示すIPアドレス指定を表している。
これらのラストマイルアドレスは、実際のIPアドレスを表している。一旦、ゾーンZ1クラウドに入ると、SDNPパケット1374Fの発信元IPアドレスは、インターネット上では意味をなさないNATタイプのアドレスである擬似IPアドレス SDNP Addr MPに変更される。単純化のため、ネットワークルーティングがシングルホップを含むと仮定すると、送付先のアドレスはまた、擬似IPアドレスであり、この場合は、SDNP Addr MDである。ゾーンU1のラストマイル通信を通過した後、SDNPパケット1374に示されるアドレスは、発信元のアドレス IP Addr MD及び送付先のアドレス IP Addr CPを含む実際のIPアドレスに戻る。リアルタイムのパケット転送においては、全てのSDNPメディアパケットにはTCPではなく、UDPが用いられる。上述したように、ペイロードはゾーン毎に変化する―ラストマイルゾーンU2においては、SDNPメディアパケット1374BのペイロードはU2 SDNPパケットを含み、メッシュネットワーク及びSDNPクラウドゾーンZ1においては、SDNPメディアパケット1374DのペイロードはZ1 SDNPパケットを含み、ラストマイルゾーンU1においては、SDNPメディアパケット1374GはU1 SDNPパケットを含む。したがって、インターネット通信とは異なり、SDNPメディアパケットは、アドレス、フォーマット、及びコンテンツが変化しながら、ネットワークを横断する発展的なペイロードである。
図110A−110Fには、どのようにシングルチャネルSDNP通信が行われるかを示す一連のフローチャートが含まれる。シングルチャネルのアドホックな通信においては、通信者同士が、セッションを生成し、その後、データまたは音声を転送するシーケンスによって、シングルチャネル、すなわち、メディアチャネルを介して情報を交換する。図110Aのステップ1380Aに示すように、クライアントはSDNP対応のアプリケーション1335を開き、デフォルトのSDNPサーバテーブル1375にリストされた任意のSDNPデフォルトのメディアサーバとのダイアログを開始する。認証済みのクライアントがSDNPネットワークを用いて、呼び出し(コール)やセッションを確立したい場合には、デフォルトのSDNPサーバのいずれか1つ、この場合は、メディアノードMa,sにホストするメディアサーバ1120Sが最初のコンタクトナンバーとして示される。シングルチャネル通信において、サーバ1220Sは2つの機能−新しい発信者(呼び出し側)からのコンタクトを最初に受けるデフォルトサーバとしての機能、及び、同時に既に開始された通信を転送するメディアサーバとしての機能を果たす。別の実施形態では、別個の専用の「ネームサーバ」が、通信が開始されるときではなく、デバイスが最初に接続する、すなわち、ネットワーク上に登録するときに、最初のコンタクト先として動作する。本発明におけるネームサーバの使用については、本明細書において後述される。
クライアントのSDNP対応のアプリケーション1335は、携帯電話、タブレット、またはノートブック等において実行される個人用のプライベートなメッセンジャやセキュリティを確保した電子メールのようなSDNP対応のセキュリティを確保したアプリケーションであってもよい。あるいは、クライアントは、埋め込まれたSDNPソフトウェアを実行するセキュリティを確保したハードウェアデバイスを含んでいてもよい。SDNPが埋め込まれたデバイスには自動車用のテレマティックス端末、例えば、クレジットカード取引のためのPOS端末、専用のSDNP対応のIoTクライアント、または、SDNPルータ等であってもよい。本明細書に記載のSDNPルータは、SDNPソフトウェアが実行されていないデバイスを、セキュリティを確保したSDNPクラウドに接続するために使用される汎用のハードウエア周辺機器であり、例えば、ノートブック、タブレット、電子ブック、携帯電話、ゲーム、イーサネット(登録商標)、WiFi、または、Bluetooth(登録商標)を介して接続することのできるガジェットであってよい。
クライアントアプリケーション1335がデフォルトSDNPサーバの一つにコンタクトすると、続いてSDNPゲートウェイノードにリダイレクトされる。ゲートウェイノードは、クライアントの位置とサーバとの間の物理的な近接度、ネットワークトラフィックが最も低いもの、または、最も伝送遅延が小さく、最も待ち時間が少なくなるパスに基づいて選択されてもよい。ステップ1380Bにおいて、デフォルトSDNPサーバ1220Sは、クライアントの接続を、最善の選択であるSDNPゲートウェイメディアノードMa,fをホストするSDNPゲートウェイメディアサーバ1220Fにリダイレクトする。ゲートウェイメディアノードMa,fは、次に、両通信者の証明書を認証し、ユーザを確認し、呼び出し(コール)が無料であるかプレミアム機能であるかを確認し、必要に応じてアカウントの支払い状況を確認し、SDNPセッションを確立する。
ステップ1380Cにおいて、クライアントアプリケーション1335は、ゲートウェイメディアサーバ1220Fに向けられたルートクエリ1371を用いて、アドレス、及びコール先、すなわち、呼び出される側またはデバイスのルーティング情報を要求する最初のSDNPパケット1374Aを送信する。ルートクエリ1371を含むSDNPパケット1374Aはリアルタイム通信(すなわち、データパケット)よりもコマンド及び制御パケットを表すため、UDPよりもTCPを用いて配信される。ルートクエリ1371は、コンタクト情報がクライアントアプリケーション1335に電話番号、SDNPアドレス、IPアドレス、URL、またはSDNPコード、例えば、宛先となるデバイス、この場合、携帯電話32のSDNP zipコードを含む、任意の数のフォーマットで供給されるように指定してもよい。したがって、ルートクエリ1371は呼び出される当事者についての情報、すなわち、そのSDNP zipコード、そのIPアドレス、または、そのSDNPアドレスを含む呼び出しを行うために要する情報を要求するものである。
図110Bのステップ1380Dにおいて、SDNPゲートウェイメディアノードMa,fはSDNPクラウド1114を検索し、宛先を要求、すなわち、メディアノードMa,fは呼び出された当事者を確認し、例えば、呼び出された当事者のSDNP zipコード、IPアドレス、または、SDNPアドレスを含む、呼び出しを行うために要する情報を取得し、その後、ステップ1380Eにおいて、SDNPゲートウェイメディアノードMa,fはクライアントアプリケーション1335に、ルーティング情報、その呼び出し(コール)が辿るパス、及び特定のゾーンを横断するために要する暗号鍵を提供する。ステップ1380Fにおいて、クライアント、すなわちタブレット33が宛先を取得すると、タブレット33はSDNPデータパケット1374Bを用いて、呼び出しを開始する。マイクロホン1383Aによってキャプチャされた音声1384Aは、オーディオCODEC(図示せず)によってデジタル情報に変換され、アプリケーション1335に送られる。オーディオデータをSDNPヘッダーにアッセンブルされるアドレスルーティング、及び他の情報と組み合わせることによって、アプリケーション1335は「IP Addr TB」から「IP Addr MF」へのファーストマイルルーティングのためのSDNPデータパケット1374Bを構築し、メディアノードMa,fへのパケット送信を開始する。データパケット1374Bのペイロード1372に埋め込まれるSDNPヘッダーには、緊急度、配信設定、セキュリティプロトコル、及び、データタイプの仕様が含まれていてもよい。SDNPデータパケット1374BのファーストマイルルーティングがIPアドレスを用いて行われた場合には、データパケットの転送は、実際のデータコンテンツがスクランブルされ、かつ、SDNPゾーンU2セキュリティ設定を用いて暗号化され、データをカプセル化するU2 SDNPペイロード1372に含まれるSDNPヘッダーもまた、ゾーンU2のためのセキュリティを確保した動的なネットワークプロトコルを用いて特別にフォーマットされている点を除いて、従来のインターネットのトラフィックと同様である。ゾーンU2のセキュリティを確保した動的なネットワークプロトコルは、特定のゾーンを横断する通信に特に適用可能な共有秘密のセットであり、例えば、ゾーンU2特有のシード生成器、すなわち、図51Aの例に上述されたアルゴリズムと、ゾーンU2に特有のセキュリティ設定、テーブル等を用いたシード生成方法を用いて計算されるゾーンU2のシードを含む。同様に、ゾーンU2の暗号化及びスクランブル化のアルゴリズムは、ゾーンU2に固有のセキュリティ設定に基づく。したがって、タブレット33によって送信されるパケットはステート(時間)に基づいて上述された方法によってスクランブル化、及び暗号化され、これらのパケットはそれらが作られたステート(時間)を識別するための復号鍵及びシードを含み、その復号鍵及びシードによって、ゾーンU2固有のセキュリティ設定を用いてメディアノードMa,fがパケットをアンスクランブル化し、復号することが可能となる。
要約すると、各ノードはタグによって受信した各パケットを識別する。ノードが一旦パケットを識別すると、そのパケットに対して、指定された順序で、シグナリングサーバが実行するように指示した復号、アンスクランブル化、混合、スクランブル化、暗号化及び分割の処理を実行する。この処理に用いられるアルゴリズムまたは他の方法は、ステート、例えば、パケットが生成された時間、または、ステートによって決定されたアルゴリズムに従って生成されたシードに基づいてもよい。各処理を実行するときに、ノードはメモリにあるテーブルから特定のアルゴリズムまたは方法を選択するために、そのステートまたはシードを用いてもよい。シグナリングサーバの指示に従って、ノードは各パケットにタグを付与し、その後、パケットを次のノードにルートし、SDNPネットワークを通過させる。勿論、受信するパケットは混合され、かつ/または、分割されているため、ノードによって送信されるパケットは受信するパケットと通常同一ではないと考えられ、いくつかのデータセグメントが他のパケットに移動され、他のパケットからデータセグメントが加わっている場合もある。このように、一旦、パケットが分割されると、それぞれの分割されたパケットにはタグが付与され、その「兄弟」がどのようにして同じ最終目的地にたどり着くかに全く依存することなく、それ自身のルートに基づいて移動する。ノードは、次のホップを除いて、各パケットのルートを感知しない。
シングルチャネルSDNPシステムにおいて、ゲートウェイ及び他のメディアノードは、ネームサーバ、及び、シグナリングサーバの仕事をエミュレートする3つの義務を実行しなければならない。実際、シングルチャネル、デュアルチャネル、トリチャネルシステムは、3つの機能―パケット転送、シグナリング、「ネーミング」−が、シングルチャネルシステムでは同一のサーバで実行され、デュアルチャネルでは2つのタイプのサーバで実行され、トリチャネルシステムでは3つのタイプのサーバによって実行されるという点で異なる。その機能自体は、3種類のシステムすべてにおいて、同一である。
分散されたシステムでは、シグナリング機能を実行するサーバ群がパケットの最終的な宛先を知っているが、単一のサーバがパケットの全てのルートを知っているわけではない。例えば、最初のシグナルサーバは、ルートの一部を知り得るが、パケットがあるメディアノードに到達したときに、シグナリング機能は、その時点からルートの決定を行う他のシグナリングサーバに引き継がれる。
大まかな例示をすれば、ニューヨークシティにある携帯電話からサンフランシスコのラップトップにパケットが送信されるときには、最初のシグナリングサーバ(または、シグナリング機能を実行する最初のサーバ)は、携帯電話からのパケットをニューヨークのローカルサーバ(エントリーゲートウェイノード)に転送し、そこからフィラデルフィア、クリーブランド、インディアナポリス、及びシカゴにあるサーバに転送し、第2のシグナリングサーバがシカゴのサーバからカンザスシティ、及びデンバーにあるサーバに転送し、第3のシグナリングサーバがデンバーのサーバからソルトレイクシティ、リノ、サンフランシスコ(エグジットゲートウェイノード)に転送し、最終的にラップトップに到達し、その際に、各シグナリングサーバは、伝送遅延、及び、その時の他のSDNPネットワークのトラフィック状況に基づいて、担当するルートの一部を決定する。最初のシグナリングサーバは、第2のシグナリングサーバにパケットがシカゴのサーバにあることを伝え、第2のシグナリングサーバは第3のシグナリングサーバにパケットがデンバーのサーバにあることを伝えることがあり得るが、いかなるシグナリングサーバ(または、シグナリング機能を実行するいかなるサーバ)も、パケットの全てのルートを感知することがない。
上述したように、勿論、パケットはそのルート上で、混合され、分割されてもよい。例えば、フィラデルフィアのサーバからクリーブランドのサーバへパケットが単純にルーティングされる代わりに、シグナリングサーバはフィラデルフィアのサーバにそのパケットを3つに分割し、それらをそれぞれ、シンシナティ、デトロイト、及びクリーブランドに転送するように指示してもよい。そのとき、シグナリングサーバは、フィラデルフィアのサーバに3つのパケットそれぞれに指定されたタグを付与するように指示してもよく、パケットを認識できるように、シンシナティ、デトロイト、及びクリーブランドのサーバにタグを通知してもよい。
図110Cのステップ1380Gは、メディアサーバ1220FにホストされたゲートウェイメディアノードMa,fからメディアサーバ1220JにホストされたSDNPメディアノードMa,jにルーティングされるSDNPデータパケット1374Cを示している。シングルチャネル通信においては、データのルーティングは、ゲートウェイがステップ1380Dにおいて呼び出されたアドレスを取得したときに、最初に決定される。IPデータパケット1374Bのファーストマイルルーティングとは異なり、このクラウド内のSDNPパケット1374Cの最初のホップは、インターネット上で認識することのできない「SDNP Addr MF」及び「SDNP Addr MJ」のSDNPアドレスを用いて行われる。シングルチャネル通信においては、ゲートウェイノード(ここでは、ノードMa,f)が最初に呼び出されたアドレスを取得したとき(ここでは、ステップ1380D)に、データのルーティング、すなわち、各パケットが宛先に達するまでにその経路上において通過するノードのシーケンスが決定される。
SDNPデータパケット1374Cのペイロード1373Aは、SDNPゾーンZ1セキュリティ設定を用いて、スクランブル化、及び暗号化され、ペイロード1373Aにデータをカプセル化するSDNPデータパケット1374Cに含まれるSDNPヘッダーもまた、ゾーンZ1のセキュリティを確保した動的ネットワークプロトコルに従って、特別にフォーマットされる。任意のゾーンにおけるセキュリティを確保した動的ネットワークプロトコルは、その特定のゾーンを横切る通信に特別に適用可能な共有秘密のセットであり、この場合は、ゾーンZ1のシードアルゴリズムに基づいて計算されたゾーンZ1のシード、ゾーンZ1の暗号化アルゴリズムなどである。セキュリティ上の理由から、ゾーンZ1セキュリティ設定はゾーンU2に伝えられることはなく、ゾーンU2セキュリティ設定がゾーンZ1に伝えられることもない。
ステップ1380Hは、メディアサーバ1220JにホストされたメディアノードMa,jからメディアサーバ1220SにホストされたSDNPメディアノードMa,sに転送されるSDNPデータパケット1374Dを示している。SDNPパケット1374Dのクラウドホップもまた、インターネット上で認識できないSDNPアドレス「SDNP Addr MJ」及び「SDNP Addr MS」を用いて実行される。SDNPデータパケット1374Dのペイロード1373Bは、SDNPゾーンZ1セキュリティ設定を用いて、スクランブル化及び暗号化され、ペイロード1373Bにデータをカプセル化するSDNPデータパケット1374Dに含まれるSDNPヘッダーもまた、ゾーンZ1のセキュリティを確保した動的ネットワークプロトコルに従って、特別にフォーマットされる。
SDNPクラウド内のノード間においてパケットを送信するこのプロセスは一度に行われてもよく、それぞれ再パケット化、及び再ルーティング化処理1373を行うことにより、複数回繰り返されてもよい。
SDNPパケット1374Eの最後のクラウドホップは、図110Dのステップ1380Jに示すように、インターネット上では認識できないSDNPアドレス「SDNP Addr MS」及び「SDNP Addr MD」を用いて同様に行われる。SDNPデータパケット1374Eは、メディアサーバ1220SにホストされるメディアノードMa,sからメディアサーバ1220DにホストされるSDNPゲートウェイメディアノードMa,dに転送される。SDNPデータパケット1374Eに含まれるペイロードパケット1373Cは、ゾーンZ1セキュリティ設定を用いて、スクランブル化及び暗号化され、ペイロード1373Cにデータをカプセル化するSDNPデータパケット1374Eに含まれるSDNPヘッダーもまた、ゾーンZ1のセキュリティを確保した動的ネットワークプロトコルに従って、特別にフォーマットされる。
ステップ1380Kにおいて、データパケット1374Gはセキュリティを確保したクラウド外、すなわち、メディアサーバ1220DにホストされたゲートウェイメディアノードMa,dから携帯電話32上のアプリケーション1335にホストされたクライアントノードC1,1へ転送される。IPパケット1374G内のペイロード1374がSDNPゾーンU1セキュリティ設定を用いてスクランブル化、及び暗号化され、ペイロード1374内にデータをカプセル化するSDNPデータパケットに含まれるSDNPヘッダーもまた、ゾーンU1のセキュリティを確保した動的ネットワークプロトコルに従って、特別にフォーマットされることを除き、IPパケット1374Gのラストマイルルーティングは、インターネット上で認識することのできるIPアドレス「IP Addr MD」及び「IP Addr CP」を用いて行われる。携帯電話32のアプリケーション1335にペイロード1374のデータコンテンツが引き渡されると、スピーカ1388Bは、オーディオCODEC(図示せず)を用いて、デジタルコードを音声1384Aに変換する。
ステップ1380Lにおいて、図110Eに示すように、呼び出された人は、元の通信とは逆の方向に音声を発することによって応答する。それにより、音声1384Aはマイクロホン1383Bによってキャプチャされ、携帯電話32のアプリケーション1335に実装された音声CODEC(図示せず)によってデジタルコードに変換される。ゾーンU1 SDNPセキュリティ設定を用いて、音声データはペイロード1375を生成するため、ゾーンU1 SDNPヘッダーに結合され、IPデータパケット1374Hを用いて、「IP Addr CP」から 「IP Addr MD」に送られる。データパケット1374Hの中のペイロード1375がゾーンU1 SDNPセキュリティ設定を用いてスクランブル化、及び暗号化され、ペイロード1375にデータをカプセル化するSDNPパケット1374Hに含まれるSDNPヘッダーもまた、ゾーンU1のセキュリティを確保した動的ネットワークプロトコルに従って特別にフォーマットされていることを除き、このIPパケット1374Hのファーストマイルルーティングはインターネット上で認識することのできるIPアドレスを用いて行われる。
ステップ1380Mに示すように、IPパケット1374Hを受信するときに、サーバ1220DにホストされるゲートウェイメディアノードMa,dは、そのアドレスをSDNPルーティングに変換し、SDNPデータパケット1374J及びそのペイロード1376AをメディアノードMa,jに送信する。このSDNPノードツーノードの通信は、単一のノードツーノードのホップを含んでもよく、また、各ホップに再パケット化及び再ルーティング処理1373を含む複数のメディアノードを介した転送を含んでいてもよい。
図110Fのステップ1380Nにおいて、SDNPデータパケット1374K及びゾーンZ1固有のペイロード1376Bは、コンピュータサーバ1220JにホストされたメディアノードMa,jからコンピュータサーバ1220FにホストされたゲートウェイメディアノードMa,fに送信される。SDNPパケット1374内で用いられるSDNPアドレス「SDNP Addr MJ」及び「SDNP Addr MF」は、NATアドレスと同様のSDNP固有アドレスであり、有効なインターネット上のルーティングを表さない。ステップ1380Pにおいて、ゲートウェイメディアノードMa,fは、受信したデータパケットの内容をゾーンZ1固有のペイロード1376BからゾーンU2ペイロード1377に変換し、図109に示すように、IPアドレス「IP Addr MF」及び 「IP Addr TB」を用いて、IPパケット1374Lをタブレット33にホストされるクライアントノードC2,1に転送する。次に、アプリケーション1335はペイロード1377のデータを抽出し、復号及びアンスクランブル化した後、そのデジタルコードは、オーディオCODECを用いて、スピーカ1388Aによって再生される音声1384Bに変換される。
呼び出しを開始し、呼び出し側(発信者)、すなわちタブレット33から、呼び出される側、すなわち携帯電話32まで音声を転送するアドホックな通信のシーケンス全体が、図111Aに要約されている。図111Aに示すように、IPコマンド及び制御パケット1374Aが、ルーティングを決定するためのコンタクト情報を取得するために使用され、IPデータパケット1374Bが、IPアドレスを用いて、「IP Addr MF」のIPアドレス上にあるSDNPゲートウェイノードMa,fに到達するファーストマイルルーティングを開始するために用いられる。タブレット33とSDNPクラウド1114との間のファーストマイル通信には全て、ゾーンU2のセキュリティ設定が用いられる。
次に、ゲートウェイメディアノードMa,fは、SDNP固有のルーティングアドレスへのルーティングを変換し、全てゾーンZ1セキュリティ設定に基づいて、SDNPパケット1374C、1374D及び1374Eを用いて、「SDNP Addr MF」から、「SDNP Addr MJ」、「SDNP Addr MS」、「SDNP Addr MD」へと、順にSDNPクラウド1114を介して通信を移動させる。このシークセンスは、通信パケットを「SDNP Addr MF」から直接、「SDNP Addr MD」に送信するSDNPデータパケット1374Fと機能的に同等である。アドホックな通信において、パケットの配信を監督するルーティング管理者が存在しないため、SDNPクラウド1114のコマンド及び制御パケットのルーティングは、2つの方法の一方によって達成されるとよい。一実施形態としては、SDNPデータパケット1374C,1374D,及び1374Eの発信元及び宛先のアドレスはそれぞれSDNPネットワークを通過するパケットのホップ毎のパスを明確にかつ厳密に定義し、それらのパスはシングルチャネル通信において、転送中の全体的な伝送遅延が最善となるように事前にゲートウェイメディアノードによって選択される。他の実施形態としては、SDNPクラウドの入口、及び出口となるSDNPノーダルゲートウェイを定義し、正確なルーティングを指定しない一つの「ゲートウェイからゲートウェイ」へのパケットのみが用いられる。この実施形態では、SDNPメディアノードにパケットが到着する毎に、メディアノードはインターネット上のルーティングとほぼ同じ方法で次のホップを指示するが、SDNPメディアノードは自動的に最も遅延が短くなるようにパスを選択するのに対して、インターネットではそのようなことは行われていない。
最後に、パケット1374Eが「SDNP Addr MD」のゲートウェイメディアノードMa,dに到着すると、ゲートウェイメディアノードMa,dは入力されたデータパケットをIPアドレス「IP Addr MD」及び「IP Addr CP」に変更し、セキュリティ設定をゾーンU1のものに変更して、IPデータパケット1374Gを生成する。
このルーティングの別の要約が図111Bに示されており、3つのクラウド内のホップ1441C、1441D、及び1441Eと、2つのラストマイルルーティング1441B及び1441Fとが含まれている。クラウドマップの下に示されるパケットアドレスは、通信中における2つの形式のパケットアドレス−IPアドレスルーティング及び、NATアドレスと類似のSDNPアドレスルーティングの組み合わせが示されている。特に、パケットアドレス1442A及び1442FはインターネットIPアドレスを表すのに対して、パケットアドレス1442C及び1442DはSDNPのIPアドレスを表している。パケットアドレス1442B及び1442Eはゲートウェイメディアノードによって用いられ、IPアドレスとSDNPアドレスとを共に含んでおり、これは、SDNPゲートウェイノードがアドレスを変換し、ゾーンU2のセキュリティ設定をゾーンZ1のセキュリティ設定に変換し、ゾーンZ1の設定をゾーンのU1セキュリティ設定に変換する役割を担うことを示している。
同様に、図112Aは通信の返信部分を要約しており、IPアドレス「IP Addr CP」及び「IP Addr MD」を用いたファーストマイルゾーンU1データパケット1374Jと、ゾーンZ1固有のデータパケット1374K及び1374L内のSDNPアドレス「SDNP Addr MD」及び「SDNP Addr MJ」及び「SDNP Addr MF」を用いたSDNPクラウドルーティングと、IPアドレス「IP Addr CP」及び「IP Addr MD」を用いたラストマイルゾーンU2のデータパケット1374Jと、を示している。対応するクラウドルーティングマップが図112Bに示されており、そこでは、ファーストマイルホップ1441H及びラストマイルホップ1441LはIPアドレス1422G及び1442Lのみを用い、クラウド管のホップ1441J及び1441KはSDNPアドレスのみを用い、ゲートウェイメディアノードMa,d及びMa,fはIP及びSDNPアドレス1442H及び1442Kの間の変換を実行する。
図113AはSDNPパケットがどのように準備されるかを示す概略図である。音声またはビデオ通信の間、音、声、またはビデオシグナル1384Aは、マイクロホン1383Aによってアナログの電気信号に変換され、その後、オーディオビデオCODEC1385によってデジタル化される。アルファベット順に順序通りに表された一連のデータセグメント(9A、9B等)を含む得られたデジタルデータストリング1387は、解析処理1386にかけられて、オーディオまたはビデオコンテンツを含むより小さなデータパケット1388となり、次にシングルチャネル分割処理1106によってジャンク1389が挿入される。シングルチャネル分割処理1106には、長いパケット1387をより短いパケット1388に解析し、ジャンクデータ1389を挿入し、最終的に2つのセクション−一方はヘッダーHdr9を有し、他方はジャンクヘッダーJを有する、を含む延長されたデータパケットを生成することを含む。Hdr9及びHdrJとの間に含まれるデータセグメントのストリングには、末尾にいくつかのジャンクデータセグメントを備えたパケット1388のオーディオまたはビデオデータが含まれる。HdrJに続くデータセグメントには、有用なデータが含まれていない。次に、SSE処理1213は以前のパケット1388をスクランブルしてデータストリング1391を生成し、SDNPプリアンブル1399Aを付加してSDNPパケット1392を生成し、次にSDNPプリアンブルを除く全パケットを暗号化して、スクランブル化され暗号化されたペイロード1393Aを生成し、次にペイロード1393Aは発信元アドレス「IP Addr TB」及び宛先アドレス「IP Addr MF」を含むSDNPパケット1374Bにロードされて、ルーティングの準備が完了する。ヘッダーHdr9及びHdrJによって、ペイロードにおいて各構成部分を認識することが可能となる。ヘッダー及びSDNPプリアンブルの機能及びフォーマットについては本明細書において後に説明される。
データストリング1387におけるデータセグメント9G以下は、同様にして、更なるSDNPパケットを構成する。
図113Bは、元のシリアルデータからペイロードを生成する際に使用可能な他の様々な方法を示している。例えば、CODEC1385からのデータストリング1387は、異なる方法によって解析され、分割されてもよい。図示するように、データセグメント9A,9B,9D,及び9Fはジャンクデータに置き換えられた欠落データセグメントと共にHdr91セクションにアッセンブルされ、データセグメント9C及び9DはHdr92にアッセンブルされて、共にデータパケット1394を生成する。次に、各ヘッダーセクションのデータセグメントは、Hdr91に続くデータフィールド1399C内の個々のデータセグメントが、Hdr92に続くデータフィールド1399E内の個々のデータセグメントとは混合されないように、スクランブルされる。得られたSDNPパケット1395はSDNPプリアンブル、Hdr91とラベル付けられたファーストヘッダー1399B、ファーストデータフィールド1399C、セカンドデータヘッダー1399D(Hdr92)及びセカンドデータフィールド1399Eとを含む。データストリング1387のデータセグメント9A−9Fを様々なデータフィールドに渡って広げるように構成してもよい。ここで示されている方法は単なる例示に過ぎない。
次に複数のデータフィールドを含み、複数のヘッダーによって分割されたSDNPパケット1395は、いくつかの方法の一つによって暗号化することができる。全パケット暗号化では、SDNPプリアンブル1399Aのデータを除いた全てのデータが暗号化、すなわち、ファーストヘッダー1399B、ファーストデータフィールド1399C、セカンドデータヘッダー1399D、及びセカンドデータフィールド1399Eの中身全てが暗号化され、暗号化されていないSDNPプレアンブル1399A及び暗号文1393Aとを含むSDNPパケット1396を生成する。他の実施形態としては、メッセージの暗号化において、SDNPパケット1397を、独立して暗号化された2つのストリング−データヘッダー1399B及びデータフィールド1399Cが暗号化されたストリング1393B、及び、データヘッダー1399D及びデータフィールド1399Eが暗号化されたストリング1393Cを含むように構成してもよい。本発明の他の実施形態としては、データのみ暗号化するものであって、データフィールド1399C及び1399Eが暗号化されたストリング1393D及び1393Eに暗号化されるが、データヘッダー1399B及び1399Dは乱されない。得られたSDNPパケット1398は、SDNPプリアンブル1399A、ファーストデータヘッダー1399B及びセカンドデータヘッダー1399Dに対応するプレーンテキストと、それぞれデータフィールド1399C及び1399Eが独立に暗号化されたものに対応する暗号化されたストリング1393D及び1393Eとを含む。
シングルチャネル通信においては、次のメディアノードに必要となるルーティング及び優先順位に関する情報を伝えるため、SDNPペイロード1400は図114に示すように、必要な情報を所持する必要がある。このデータは、SDNPプリアンブル1401またはデータフィールドヘッダー1402のいずれかに含まれる。SDNPプリアンブル1401にはパケット全体に関する情報が含まれており、最大8までのデータフィールドの数「Fld #」、各データフィールドの長さ「L Fld X」(本実施形態ではXは1から8まで)、SDNPパケットが生成されたSDNPゾーン(例えば、ゾーンZ1)、2つの数値シード、及び共有秘密によって生成された2つのキーが含まれる。
データフィールドヘッダー1402は規定のフォーマットに従って、各データXフィールドに対して用意される。データフィールドヘッダー1402は宛先のアドレスタイプと、データフィールド固有の宛先、すなわち、クラウド上のこの固有のホップの宛先のアドレス(フィールド宛先アドレス)を含む。パケットは次のメディアノードに到着するまで変更されないため、所定のパケット中の各データフィールドの宛先のアドレスは常に同一である。しかし、パケットが複数のパケットに分割され、分割されたパケットが異なるメディアノードに転送される場合には、分割されたパケットのフィールド宛先アドレスは他のパケットのものとは異なる。
マルチルート及びメッシュ転送では、フィールド宛先アドレスは、動的ルーティングで用いられる様々なフィールドの分割及び混合に使用される。
次のホップのアドレスタイプは、パケットがネットワークを通過するときに変化することがある。例えば、そのアドレスタイプには、クライアントとゲートウェイの間のIPアドレスと、一旦SDNPクラウドに入った場合には、SDNPアドレスまたはSDNP zipとを含んでいてもよい。宛先には、SDNP固有のルーティングコード、すなわち、SDNPアドレス、SDNP Zip、または、IPv4若しくはIPv6アドレス、 NATアドレス、 電話番号等が含まれていてもよい。
「フィールドゾーン」とラベル付けられたパケットフィールドは、特定のフィールドが生成されたゾーン、すなわち、過去の暗号化またはスクランブル化がU1、Z1,U2等のどのゾーンの設定に基づいて行われたかを示す。データパケットのアンスクランブル化または復号に追加の情報、例えば、鍵、シード時間またはステートが必要となる場合には、フィールド「フィールドその他」とラベル付けされたパケットフィールドがそのフィールド固有の情報を付与するために用いられてもよい。「データタイプ」とラベル付けられたパケットフィールドによって、コンテキスト固有のルーティングが容易となり、ビデオやライブビデオのような時間に敏感な情報を含むデータパケットから、リアルタイムの通信を要求することなく、データ、録画、テキスト、及びコンピュータファイルを区別する、すなわち、リアルタイムルーティングと非リアルタイムルーティングとを区別することができる。データタイプには、音声、テキスト、リアルタイムビデオ、データ、ソフトウェア等が含まれる。
「緊急性」及び「デリバリ」とラベル付けられたパケットフィールドは共に、特定のデータフィールドのデータをルーティングする最良な方法を決定するために用いられる。緊急性には、遅い(snail)、普通、優先、及び、緊急のカテゴリが含まれる。デリバリには、通常、冗長、特別、及びVIPのカテゴリを示すQoSマーカが含まれる。本発明の一つの実施形態では、表1403に示すような様々なデータフィールドのバイナリサイズは、通信に必要となる帯域幅が最小となるように選択される。例えば、データパケットが図示するように0〜200Bの範囲であり、データフィールドには200Bの8パケットを含むことができるため、SDNPパケットは1600Bのデータを運ぶことができる。
[デュアルチャネル通信]
デュアルチャネルSDNPデータ転送の一つの実施形態としては、図115に示すように、コンテンツはテーブル33にホストされたクライアントノードC2,1からゾーンU2のファーストマイルルーティングを介してゲートウェイメディアノードMa,fに到着し、次に、コンピュータサーバ1118にホストされたゾーンZ1メッシュルーティングを通過し、ゲートウェイメディアノードMa,dからゾーンU1ラストマイルルーティングを介して携帯電話32にホストされるクライアントC1,1に転送される。ルーティングは、ファーストマイルIPパケット1374B、SDNPSDNPメッシュネットワークを通過するSDNPパケット1374F、及び、ラストマイルIPパケット1374Gによって制御される。
並行して、メディア及びコンテンツ転送に対して、シグナリングサーバ1365によってホストされるシグナリングノードSsと通信するクライアントC2,1は、シグナリングサーバSd、シード929及び復号鍵を介して、クライアントC2,1がそれらを送信した時間またはステートに基づいて決定される数値シード929、及び復号鍵1030をクライアントC1,1に送信する。キー、シードといったセキュリティ設定(または、セキュリティ証明書)を、ゾーンZ1を介してではなく、シグナリングルート1405を介してクライアント間で直接交換することによって、エンドツーエンドのセキュリティが実現され、ゾーンZ1のネットワークオペレータがセキュリティ情報にアクセスし、ゾーンU1またはゾーンU2のセキュリティを侵害するリスクを有益的に排除することができる。本実施形態では、SDNPネットワーク通信におけるさらに別の次元のセキュリティを示す。例えば、シード929、クライアントのアプリケーションにおけるデータパケットのスクランブル化、及びアンスクランブル化に用いられてもよい。同様に、図示するように、復号鍵1030によってクライアントC1,1のみが暗号化されたメッセージを開くことができるように構成してもよい。キー1030及び数値シード929がゾーンZ1内に渡ることがないため、ネットワークオペレータはそのネットワークのセキュリティを侵害することがない。クライアントC2,1からゲートウェイメディアノードMa,fにデータパケットが入るときには、そのデータパケットは既に暗号化され、スクランブルされている。ゲートウェイノードMa,dからクライアントC1,1によって受信されたパケットは、クライアントC2,1から送信されゲートウェイノードMa,fに到着するパケットと同じように形式によって、スクランブル、及び/または、暗号化されている。各ノードに存在するネットワークの動的なスクランブル化と暗号化(図115には明示的に示されていない)は、SDNPクラウドによって容易に実現できる第2のセキュリティレイヤに対応する。クライアント間での直接的なセキュリティ証明書の交換を含む、この外部でのエンドツーエンドのセキュリティレイヤが、SDNPクラウド自身の動的なスクランブル化及び暗号化に付与されているということもできる。
したがって、図115に示すように、シグナリングノードSs、及びSdは、メディアノードMa,f及びMa,dに、IPパケット1374Bを使用して、ゾーンU2内の「IP Addr TB」から「IP Addr MF」に、SDNPパケット1374Fを使用してゾーンZ1の「SDNP AddrMF」から「SDNP Addr MD」に、IPパケット1374Gを使用してゾーンU1の「IP Addr MD」から「IP Addr CP」に、それぞれデータをルーティングするよう指示する。この実施形態では、シグナリングノードSs、及びSdはクライアントノードC2,1及びC1,1と直接通信し、ゲートウェイメディアノードMa、f及びMa、dとメディア通信チャネル上のデータパケットを介して間接的に通信するため、メッシュネットワークへのルーティング接続は、SDNPパケット1374Fを使用して、ゲートウェイ間で行われる。シグナリングサーバSs及びSdは、メッシュネットワーク内の中間のメディアノードに通信することはできない。そのため、図115に示す実施形態では、メディアノードはシングルチャネル通信システムとしてのクラウド内の動的なセキュリティを管理し、シグナリングノードはSDNPクラウド、すなわち、ゾーンZ1を超えたエンドツーエンドのセキュリティを実現するために用いられている。
デュアルチャネルSDNPデータ転送の別の実施形態では、図116に示すように、サーバ1365によってホストされるシグナリングノードSs及びSdは、クライアントのエンドツーエンドセキュリティを容易にし、同時にSDNPクラウド内の動的ルーティング及びセキュリティを管理する。したがって、シグナリングノードSs及びSdは、シグナルルート1405を用いて、クライアントノードC2,1及びC1,1のエンドツーエンド間において、数値シード929及び復号鍵1030を伝送するだけでなく、シグナルルート1406によって運ばれる動的SDNPパケット1374Zを用いて、ゾーン固有のシード929、復号鍵1030、シングルホップルーティング指令を通信パケット及びコンテンツが移動するメッシュネットワーク内の全メディアノードに送信する。このようにして、シグナリングノードSs及びSdはルーティング及びセキュリティを制御し、ネットワーク内のメディアノードはコンテンツを運び、シグナリングノードSs及びSdからの指令を実行する。そのように実装された場合には、メディアノード、及び、シグナリングノードSs及びSdのいずれかが、どのメディアサーバがオンラインでどのメディアサーバがそうでないか、及び、それらの動的IPアドレスがその時点で何であるかを追跡する役割を担う。
[トリチャネル通信]
実際のデータ転送からネットワークのノードを追跡する役割を分離することによって、より強固なセキュリティとより高いネットワークのパフォーマンスを実現することができる。このアプローチでは、「ネームサーバ」と呼ばれるサーバの冗長なネットワークによって、絶えずネットワークとメディアノードをモニタし、シグナリングサーバを解放してルーティング及びセキュリティデータ交換のジョブをさせ、メディアサーバにシグナリングノードから受信したルーティングの指示の実行に専念させる。これによって、本明細書では「トリチャネルシステム」と呼ばれ、図117に図示されるものが得られ、ここでは、ネームサーバノードNSをホストするネームサーバ1408はネットワークノードリスト1410を含むネットワーク上のアクティブなSDNPノードのリストを保持している。シグナリングサーバ1365によってホストされるシグナリングノードSからの要求に対して、ネームサーバ1408にホストされるネームサーバノードNSはネットワーク記述をシグナリングサーバ1365に渡し、それに基づいて、シグナリングサーバはゾーンU2,Z1,U1,及びその他を含むネットワークコンディションテーブル1409に示されるように、SDNPクラウド1114上の全てのメディアノード間の通信状況及び伝送遅延を追跡し、記録する。コールを生成するプロセスにおいて、シグナリングノードSは、ゾーンU2のファーストマイルルーティングのためのタブレット33にホストされたクライアントノードC2,1への指示、ラストマイルルーティングのための携帯電話32にホストされたクライアントノードC1,1への指示、及びSDNPデータパケットにおけるメディアコンテンツの転送に用いられるセキュリティを確保したSDNPクラウド1114上の全ての中間のメディアノードへのゾーンZ1ルーティングのための指示を含む、データパケットがネットワーク上において通過する経路に含まれるすべてのノードへのルーティング指示を行う。
更新されたネットワークの記述を維持するため、デバイスがネットワークにログオンする度に、その状態、IPアドレスのSDNPアドレスの少なくとも一方を含むデータが、図118に示すように、ネームサーバに転送される。ネットワークの状態、及び/またはアドレスデータは、その後、タブレット33または携帯電話32上で実行されるアプリケーション1335、ノートブック35またはデスクトップ(図示せず)上で実行されるアプリケーション、または、自動車1255、または、冷蔵庫によって図式的に示されるIoTデバイスにおいて実行されるアプリケーションにストアされたネットワークアドレス表1415にストアされる。ネットワークアドレス表1415はまた、全てのクラウド上のメディアサーバ、例えば、コンピュータ1220FにホストされたメディアノードMa,f及びコンピュータ1220DにホストされたメディアノードMa,dの状態を追跡する。ネットワークアドレス表1415は、ネットワークに接続された全てのデバイスのルーティングアドレスを記録する。ほぼ全ての場合において、接続されたデバイスのIPアドレスまたはSDNPアドレスはネットワークアドレス表1415に記録され、追跡される。SDNP対応の通信アプリケーションが実行されるメディアサーバ、及び、任意のパーソナルなモバイルデバイスは、ゲートウェイメディアノードのアドレス変換に必要となるIPアドレス及びSDNPアドレスの両方を記録してもよい。
ネームサーバノードNSがネットワークの完全な記述を維持し、図119に示すように、シグナリングサーバ1365にホストされるシグナリングノードSは、ネットワーク上の利用可能なメディアノードの全ての組み合わせについて、伝送遅延の表1416を維持する。伝送遅延の表1416は、ネットワークメディアノードを介したデータパケットの通常の移動から導き出される遅延予測によってアップデートされ、遅延予測は、メディアサーバ1220D及び1220Fと、1220F及び1220Hと、1220D及び1220Hとの間の伝送遅延をモニタするストップウォッチ1415A、1415B、及び1415Cによってそれぞれ記号的に図示されている。進行中のトラフィックが少ないかまたは稀な場合には、SDNPネットワークはネットワークの健全性をチェックするためにテストパケットを利用する。テストパケットの一方法が図120に示されており、そこでは、シグナリングサーバがメディアサーバによって遅延が検知されるまで送られるデータパケットの長さ、または頻度が増加する一連のパケットのバーストを送信するように指示される。曲線1417によって示された負荷グラフの結果によって、特定の通信ルートまたは通信リンクの最大負荷が線1418によって示される最大負荷を超えないように、サイズまたはレートにおいて制限されるべきであることが示されている。
ネットワーク、そのノードアドレス、伝送遅延に関する上述の情報が既に、ネームサーバ及びシグナリングサーバにおいて利用可能であることを前提とすると、図121で描写される3チャネル通信を用いることで、高QoS通信を最善に実施することが可能である。図示されるように、シグナリングサーバ1365にホストされるシグナリングノードSは、ノードツーノードのルーティングデータ1374Z、ゾーン固有の数値シード929、及び、復号鍵1030を含む特徴あるSDNPパケット1420によって、メディアサーバ1118を通り、クライアント1335に到着するデータのルーティングを、完全にコントロールする。呼び出し(コール)を確立するときに、クライアントノードC2,1、この場合はタブレット33のアプリケーション1335がネームサーバ1406上のネームサーバノードNSにコンタクトし、ネットワーク上に自らを登録し、最近接のシグナリングサーバを見つけて、それにより、呼び出しを開始するためシグナリングサーバ1365上のシグナリングノードSにコンタクトする。その後、シグナリングノードSはルーティングを管理し、メディアサーバはそれに従ってデータをルーティングし、ゾーンU2、Z1及びU1それぞれのセキュリティ設定を変更する。
ネームサーバは更新されたネットワークノードリスト1410を維持するという点で重要であるため、図122に示すように、ネームサーバ1408にホストされたネームサーバノードNSは、バックアップメディアサーバ1421で実行されているバックアップメディアサーバノードNS2によって図示される1または複数の予備サーバと協力して動作する。クライアントノード及びメディアノードがネームサーバ1408に到達することができない場合には、情報のクエリが自動的かつシームレスにバックアップメディアサーバ1421に転送される。シグナリングサーバが呼び出しを実行するか、またはパケットをルーティングするための一定の利用可能性を保証するために、同一の予備を用いる方法が用いられる。図123に示すように、シグナリングサーバ1365にホストされるシグナリングノードSはバックアップシグナリングサーバ1422にホストされ、シグナリングサーバ1365が落ちる、または攻撃された場合には、自動的に代役となるシグナリングノードS2を有している。
本発明による3チャンネルSDNPパケットルーティングを用いた通信が図124Aに示されており、そこではステップ1430Aにおいて、デバイスまたは呼び出し側(発信者)がネットワークにログインする。このとき、タブレット33のクライアントアプリケーション1335は自動的にネームサーバ1408にホストされたネームサーバノードNSにコンタクトし、自らを登録する。この動作はクライアントをネットワークにログインさせるために行われるため、必ずしも呼び出し(コール)を行う必要はない。登録のプロセスにおいて、ネームサーバノードNSはネームサーバリスト、すなわち、SDNPネームサーバリスト1431、及び、任意でシグナリングサーバのリストを、クライアントアプリケーション1335に引き渡す。その情報によって、デバイスはSDNPコールを実行できる準備ができ、SDNPコールの実行が可能となる。
実際に呼び出しが行われる際の最初のステップでは、タブレット33はネームサーバノードNSにIPパケット1450Aを送り、ルーティング、及び、送信先または呼び出される人のコンタクト情報を要求する。コンタクト情報の要求、すなわちルートクエリ1431は、IPアドレス、SDNPアドレス、電話番号、URL、または他の通信識別子の形式で送信されてもよい。ステップ1480Cでは、ネームサーバ1408にホストされるネームサーバノードNSは、クライアントのSDNPアプリケーション1335に意図された受信者のアドレスを供給する。その返答は、TCP転送レイヤを介したIPパケット1450Bによって転送される。他の実施形態では、クライアントはシグナリングサーバhにルーティング情報を要求し、そのシグナリングサーバがネームサーバに情報を要求する。
図124Bに示されるように、ステップ1430Dにおいて、クライアントは、最終的に、「IP Addr TB」からシグナリングノードSをホストしているシグナリングサーバ1365のIPアドレス、「IP Addr S」へのIPパケット1450Cを用いて呼び出しを開始することができる。IPパケット1450Cは受信者のアドレスを運搬するので、IPパケット1450Cは通信レイヤとしてTCPを用いることが好ましい。テーブル1416に示されるネットワークのノードツーノードの伝送遅延の知識に基づいて、シグナリングサーバSはSDNPゲートウェイサーバへのラストマイル接続を含むSDNPネットワーク1114のネットワークルーティングを立案し、ステップ1430Eにおいて、このルーティング情報をSDNPクラウド1114に伝える。シグナリングサーバは各メディアノードに、受信するデータパケットの処理方法を指示するコマンド及び制御データパケットを送信する。制御及びコントロールデータパケットは、そのペイロードが、音声コンテンツを運搬するのではなく、新しい宛先の固有の識別タグ、SDNPアドレス、またはSDNP zipコードを持つパケットをルーティングする方法をメディアノードに通知する一連の指示が含むという点を除き、通常のデータパケットと同様である。あるいは、上述したように、変形実施形態としては、単一のシグナリングサーバによって全ルーティングが立案されるのではなく、一連のシグナリングサーバが、パケットがSDNPネットワークを通過するときに、連続的にルーティング計画の部分を立案するようにしてもよい。
その後、ステップ1430Fにおいて、最初のパケットを、セキュリティを確保してファーストマイルに渡って送信させるために必要となるゲートウェイメディアノードアドレス、ゾーンU2の復号鍵1030、シード929及び他のセキュリティ設定を、タブレット33のアプリケーション1335に送信する。
タブレット33がステップ1430Fにおいてセキュリティ設定を取得すると、図124Cに示すように、SDNPパケット1450を用いて呼び出しを開始する。音波1384Aによって表される音声は、マイクロホン1383Aによってキャプチャされ、オーディオCODECによってデジタル情報に変換されて、タブレット33のアプリケーション1335に送られる。オーディオデータは、SDNPヘッダーにアッセンブルされたアドレスルーティング、及び他の情報と結合することによって、アプリケーション1335は「IP Addr TB」から「IP Addr MF」へのファーストマイルルーティングのためのSDNPパケット1450Dを生成し、ゲートウェイメディアノードMa,fにパケットの転送を開始する。データパケットペイロード1432に埋め込まれたSDNPヘッダーには、緊急性、デリバリプリファレンス、セキュリティプロトコル、及び、データタイプ仕様を含んでいてもよい。SDNPヘッダーはまた、SDNPプリアンブルに加えて、MACアドレス、発信元及び送信先のIPアドレス、及び、基本的にはSDNPヘッダーをカプセル化するペイロードに含まれるレイヤ2,3及び4の情報であるプロトコルフィールドを含み、全てのデータパケットにはSDNPヘッダーを有している。SDNPパケット1450DはIPアドレスを用いて行われているため、実際のデータコンテンツがゾーンU2のセキュリティ情報を用いてスクランブル化及び暗号化され、データを含むSDNPペイロードに含まれたSDNPヘッダーがゾーンU2のセキュリティを確保した動的なネットワークプロトコルに従って特別にフォーマットされていることを除いて、パケットの転送は従来のインターネットのトラフィックと同様である。
ステップ1430Hは、図124Cにも示すように、メディアサーバ1220FにホストされたゲートウェイメディアノードMa,fからSDNPクラウドのメディアサーバ1220JにホストされたメディアノードMa,jにルーティングされるデータパケット1450Eを示している。IPデータパケット1450Dのファーストマイルルーティングとは異なり、SDNPパケット1450Dのこの最初のクラウド内のホップは、インターネットでは認識できないSDNPアドレス「SDNP Addr MF」及び「SDNP Addr MJ」を用いて行われる。さらに、ペイロード1433は、SDNPゾーンZ1のセキュリティ設定を用いて暗号化され、データをカプセル化するそのZ1 SDNPパケットに含まれるSDNPヘッダーはまた、ゾーンZ1の共有秘密に従って、特別にフォーマットされる。セキュリティを目的として、ゾーンZ1のセキュリティ設定は、ゾーンU2に伝えられることはなく、ゾーンU2のセキュリティ設定もまたゾーンZ1に伝えられることもない。
図124Dに示すように、ステップ1430Jにおいて、データパケット1450Fはセキュリティを確保したSDNPクラウド外のメディアサーバ1220DにホストされたゲートウェイメディアノードMa,dから、携帯電話32上のアプリケーション1335によってホストされたクライアントノードC1,1にルーティングされる。このIPパケット1450Fのラストマイルルーティングは、インターネット上で認識できるIPアドレス「IP Addr MD」及び「IP Addr CP」を用いて行われるが、ペイロード1434はSDNPのゾーンU1の共有秘密を用いて暗号化され、ペイロード1434に含まれるSDNPヘッダーは共有秘密に従って特別にフォーマットされる。ペイロード1434のデータコンテンツを携帯電話32のアプリケーション1335に転送するときに、スピーカ1388Bはデジタルコードを、オーディオCODEC(図示せず)を用いて音波1384Aに変換する。
入力されたSDNPパケット1450Fを携帯電話32のアプリケーションが受け取ったときに、データパケットがSDNPクラウドを離脱した最後のメディアノードMa、dだけをそのアドレスから見ることができる。SDNPペイロードが発信者に関する情報を運搬していないか、または、シグナリングノードがこの情報を供給しないため、呼び出し(コール)を受け取った、またはデータを受信した者はその起源または発生源を追跡することができない。この「匿名」の通信及び追跡不可能なデータ配信は、SDNP通信の独特な側面であり、本発明によるシングルホップの動的なルーティングに特有な成果である。SDNPネットワークは発信者(呼び出し側)が希望したときのみ、発信者または発信元の情報を転送し、それ以外は利用可能な情報を転送しない−よって、匿名性は、SDNPパケット転送にとって、デフォルトの状態である。事実、送信側のクライアントのSDNPアプリケーションが、呼び出される側、または、メッセージを受信する者に、特別な送信者から情報が届いたことを伝えるメッセージを意図して送信する必要がある。シグナリングサーバは発信者及びパケットルーティングを知っているため、発信者の身元を一切明らかにすることなく、応答データパケットのためのルートを決定することができる。
代わりに、シグナリングサーバは偽りや化身の身元を明らかにするか、または、発信者(呼び出し側)の身元へのアクセスを、ごく親しい友人、または、認証された接触先にのみ明らかにするように制限する。匿名性は、プレイヤが、特に、知らない相手と、本当の身元を共有する必要のない、ゲームのようなアプリケーションにおいて奥に有効である。匿名の通信が必要となる別の形態としては、クライアントにとって、機械、ガジェット、及びデバイスを、敵対するデバイス、諜報員、または、サイバー犯罪者のデバイスと潜在的になり得るものに、コンタクト及び個人情報を引き渡しさせたくないマシン・ツー・マシンまたはM2M、IoTまたはモノのインターネット、車車間またはV2V、路車間またはV2X通信がある。考えすぎるユーザにとっては、声を電子的に偽装することもできるので、声でのコミュニケーションでさえも匿名で行うことができる。
図124Dのステップ1430Kに示すように、入力されたパケットへの応答として、携帯電話32にホストされるアプリケーション1335は、シグナリングサーバ1365にホストされたシグナリングノードSにIPパケット1450Gを送信する。出力されるパケットには、応答用のルーティング情報が必要である。一実施形態では、シグナリングノードSは、次に、呼び出された者に発信者(呼び出し側)の真の身元を提供し、それによって、呼び出された者のSDNPアプリケーションのプログラムは、両者を接続するために用いられた全接続プロセス、すなわち、ネームサーバに接続し、それらのSDNPまたはIPアドレスを見つけ、シグナリングサーバに接続し、応答をルーティングする等を逆向きに繰り返すことで応答するようにしてもよい。他の実施形態では、シグナリングサーバはパケットが送信された場所を知っており、発信者(呼び出し側)にコンタクト情報を開示することなく、送られるべき返信のパケットのルートを設計することができる。
使用された返信方法に依らず、図124Eのステップ1430Lにおいて、返信IPパケットはマイクロホン1384Bによってキャプチャされ、アナログシグナルに変換された後、オーディオCODEC(図示せず)によってデジタルコードに変換された音波1384Bを含むオーディオデータと結合される。一度処理され、スクランブル化され、暗号化され、パッケージ化されたオーディオコンテンツは、「IP Addr CP」から「IP Addr MF」のSDNPゲートウェイメディアノードにルーティングされるIPパケット1450Hのセキュリティを確保したペイロード1435となる。これらのIPアドレスは、ペイロード1435がSDNPゾーンU1のセキュリティ設定を用いてスクランブル化され、かつ暗号化されたコンテンツを含み、ペイロード1435に含まれるSDNPヘッダーがゾーンU1の共有秘密に従って特別にフォーマットされている点を除いて、インターネット上で認識可能である。
ステップ1430Mにおいて、返信用のパケットはSDNPクラウド内においていかなるノードツーノードのホップを実行することなく、セキュリティを確保したSDNPから出る。この場合、メディアサーバ1220FにホストされたゲートウェイメディアノードMa,fはSDNPパケット1450HをゾーンZ1固有のペイロード1435からゾーンU1固有のペイロード1436に変換し、IPアドレス「IP Addr MF」及び「IP Addr TB」を用いて、IPパケット1450Jをタブレット33にホストされたクライアントノードC2,1に移動させる。このIPパケット1450Jのラストマイルルーティングは、インターネット上で認識可能なIPアドレス「IP Addr MF」及び「IP Addr TB」を用いて行われるが、ペイロード1436はSDNPゾーンU2のセキュリティ設定を用いされて暗号化され、ペイロード1436に含まれるSDNPヘッダーはゾーンU2のセキュリティを確保した動的ネットワークプロトコルに従って特別にフォーマットされている。携帯電話33によって受信されると、SDNP対応のアプリケーション1335は次にペイロードデータを引き出し、復号及びアンスクランブル化した後にデジタルコードはオーディオCODEC(図示せず)によって、スピーカ1388Aから発せられる音声1384Bに変換する。ステップ1430K〜1430Mのステップに示されるシーケンスにおいて、通信に一つのゲートウェイメディアノードのみが関与しているため、「ファーストマイル」の直後に「ラストマイル」が続いている。
本発明の3チャネル通信を用いた呼び出しシーケンスの概要が図125Aに示されており、そこでは、IPパケット1450A及び1450Bに基づいたTCP転送を用いて、タブレット33上で実行されるアプリケーション1335及びネームサーバノードNSは通信を確立し、そこではコンタクト情報または接続された者のIPアドレスを一度受信すると、タブレット33はTCP転送ベースのIPパケット1450Cを用いて、呼び出し(コールを行い)、参加者とのセッションを確立するように、シグナリングノードSに指示する。その後、音波1384Aはキャプチャされ、パッケージされ、ファーストマイル及びラストマイルのためにIPパケット1450D及び1450Fに、SDNPクラウド上の転送のためにSDNPパケット1450Eに、それぞれ結合されて、それぞれの行き先にルーティングされる。タブレット33からゲートウェイメディアノードMa,f、第2ゲートウェイマディアノードMa,dから携帯電話32へのルーティングの結果が図125Bに示されている。ノードツーノードのホップ1453Bを除く全ての伝送において、SDNPアドレスではなくIPアドレスが使用されている。このシーケンスは、図125Bの下部のフローチャートに示されている。
返信シーケンスが図126Aに示されており、IPパケット1452Gを用いた携帯電話32のアプリケーション1335は、シグナリングノードSに返信パケットをタブレット32に送るように要求し、ゲートウェイメディアノードはIPパケット1452H及び1452Jを用いて、その音声の返信をルーティングする。パケットの伝送の結果は、図126Bに示すようにほとんどが極めて短く、なぜなら、伝送が、発信元及び送信先のIPアドレスを上書きし、データパケットのセキュリティ設定をゾーンU1からゾーンU2に変換することのみによって、セキュリティを向上さえるゲートウェイメディアノードMa,fを介するルーティングを除いて、全てインターネット上で行われるからである。その例として、SDNPクラウド内のノードツーノードのホップは行われないが、それは、シングルノード、この場合はメディアサーバ1220F内外のデータパケットの追跡及び関連付けが容易になるという欠点がある。
そのような場合には、図126Cに示すように、サイバー犯罪者が間違いを引き起こし易くなるように、データの転送パスにダミーノードを挿入することが有益である。その場合には、ルーティングはアドレス「IP Addr MF」と同じサーバ、または、同じサーバファームのどちらかにセカンドサーバアドレス「IP Addr MF2」を含むように変更され、入力されるIPパケット1452Hは「IP Addr CP」から「IP Addr MF」に変更され、「IP Addr MF」から「IP Addr MF2」への中間パケット1452Kを挿入され、出力されるIPパケット1462Lは「IP Addr MF2」から「IP Addr TB」に変更され、また、ルーティングはパケット1452Kを「IP Addr MF」から「IP Addr MF2」を「干渉しない」か、または、「SDNP Addr MF」から「SDNP Addr MF2」へのパケットを生成してもよい。変換処理中にポートの割り当てを変更してもよい。その場合は、データパケット1452Kがサーバまたはサーバファームから離れない、すなわち、内部において引き渡し及び移動をしている場合には、そのアドレスがインターネットのIPアドレスか、NATアドレスか、またはSDNPアドレスかは問題ではない。
[ペイロード「フィールド」]
ゲートウェイメディアノードを介してSDNPクライアントに入る入力データパケットのペイロード処理が、図127に図示されており、そこでは、入力されたIPパケットが最初にアンパックされて、暗号文1393を含む暗号化ペイロードが抽出され、その後、暗号化が行われたゾーンの適切なキーと、必要に応じて暗号化が行われた時間またはステートとを用いて復号される。得られたペイロードはプレーンテキスト1392を含み、もしプレーンテキスト1392がスクランブル化されていない場合には、適切なゾーン及びステートのセキュリティ設定を用いて、再びアンスクランブルされなければならない。次に、SDNPプリアンブルを除去することによって、さまざまなフィールド、今回は、対応するヘッダーHdr Jを備えたヘッダー9と、ヘッダーHdrJに対応するファンクフィールドとを備えたコンテンツデータパケット1391が現れる。
別の実施形態では、図127に示すように、入力されるIPパケット1460が復号され、アンスクランブル化され、そのプリアンブルが除去され、解析されて、2つの有効なデータフィールド−対応するヘッダーHdr6を備えたフィールド6、及び対応するヘッダーHdr8を備えたフィールド8が生成される。これらのパケットは後に、異なるフィールドとマージされて、適切に新しいIPパケット及びSDNPパケットを生成してもよい。
ネストされたフィールドのデータ構造を使用して、独自のヘッダーを持つ複数のフィールドのデータを1つのパケットのペイロードにまとめることは、複数のボックスを大きなボックスの中に配置するのと同じである。データをSDNPにおいて再パッキングするプロセス、すなわち、ボックスを開け、小さい箱を取り出し、それらを新しいボックスに収める、というプロセスでは、データセグメントのルーティングにおいて多くの選択肢が含まれる。パケットのロスを避けるために、同じ起源を有するデータセグメントは、他のデータ、会話、声名のデータセグメントと同じフィールドに混合されず、ヘッダーによって見分けることができるか、または、送信者によって整理されたように、独自に分離されたままであることが好ましい。例えば、図128に示すように、SDNPまたはIPデータパケット(図示せず)から入力されるペイロード1461及び1393は、おそらく異なるステートまたはゾーンからの復号鍵を用いた復号処理1032によって復号され、プレーンテキストのペイロード1392及び1462となる。混合処理1061では、ペイロード1392及び1462は結合され、解析後、3つのフィールドーパケット1464を含むフィールド6、パケット1463を含むフィールド8、及び、パケット1459を含むフィールド9を持つコンテンツを生成し、それらはまとめてデータコンテンツ1470を形成する。3つのパケット1459、1463、及び1464は、独自にストアされるか、または、一つの長いパケットに併合されてもよい。SDNPヘッダーによって、運搬のために使用されたSDNPまたはIPパケットから取り外された場合であっても、各データのフィールドは容易に見分けることができる。集合してデータコンテンツ1470はその特定の瞬間にメディアノードにあるデータを表す。そのプロセスは動的であり、パケットがSDNPネットワークを通過するときに、データが絶えず変化している。上述した時間の経過後、入力されるデータをさらに待つ必要がなくなると、データコンテンツ1470は分割処理1057によって新しい組み合わせに分割され、それによって、ペイロード1472は3つのフィールドそれぞれからのデータセグメントの一部、すなわち、フィールド9からのデータセグメント9C、9D、フィールド8からのデータセグメント8B、及びフィールド6からのデータセグメント6C、6Dを含む。これらのフィールドの数はペイロード1472に引き継がれる。プレーンテキストは必要に応じてスクランブル化され、その後、そのときのステート及びそのときのゾーンにおける暗号化処理1026によって暗号化され、ペイロード1474が生成され、SDNPパケットまたはIPパケットにアッセンブルされて、各方向へルーティング可能となる。
分割処理1057はまた、3つのフィールド、すなわちデータセグメント9B、9A、9F及び9Eを含むフィールド9、データセグメント8Fのみを含むフィールド8、及びデータセグメント6Fを含むフィールド6のデータセグメントを含む第2ペイロード1471を生成する。
図示するように、ペイロード1471及び1472の全てのフィールドにはまた、1つまたは複数のジャンクデータセグメントが含まれる。再スクランブルが実行されない場合には、その後、スクランブルされたペイロード1471はそのときの状態またはそのときのゾーンにおける暗号化処理1026を用いて暗号化されて、ペイロード1473が生成され、SDNPパケットまたはIPパケットにアッセンブル可能となる。同様に、ペイロード1472は、そのときのステートまたはそのときのゾーンにおける暗号化処理1026を用いて暗号化されて、ペイロード1474が生成され、SDNPパケットまたはIPパケットにアッセンブル可能となる。ペイロード1473はペイロード1474とは異なるメディアノードにルーティングされる。この図では、分かり易くするため、IPまたはSDNPアドレスとデータパケットの残りとが、図から除外されている。
再パケット化の動的性質が図129Aに示されており、時間t4及び対応するステート994において、フィールドFld91及びFld92からのデータセグメントデータを含むペイロード1483A及び1483Bがそれぞれ混合処理1061を使用して混合され、ハイブリッドペイロード1484Aを形成する。時間t5及び対応するステート995において、混合処理1061は、ハイブリッドペイロード1484Aを、Fld93のためのデータを含むペイロード1484Bと組み合わせて、ヘッダーHdr91が付されたフィールドにスクランブルされた順序で配置されたデータセグメント9B、9A、9F、及び9Eと、Hdr92が付されたフィールド92にデータセグメント9Cと、Hdr93が付されたフィールド93にデータセグメント9Dを含む長いハイブリッドペイロード1485Aを生成する。時間tf、及びステート999において、携帯電話32によってホストされるアプリケーション1335は、ハイブリッドマルチフィールドペイロード1485Aを処理して再アッセンブル化し、データセグメント9A?9Fが順序通り配置されたオリジナルデータシーケンス1489Aを生成する。
本明細書で上述したいくつかの例では、他のデータセグメントまたはデータフィールドの到着を待っている間に、一部のデータセグメントまたはフィールドを一時的にストアする必要がある場合がある。このようなストア処理は、内部のメディアノードまたはゲートウェイメディアノードを含むSDNPネットワーク内のいかなる所与のノード内で行われてもよい。あるいは、ストア処理が携帯電話、タブレット、ノートブック等にホストされたクライアントアプリケーションにおいて行われてもよい。そのような例が図129Bに示されており、時間t4において、フィールド91及び92からのデータセグメントを含むペイロード1483A及び1483Bが混合処理1061によって混合されて、ハイブリッドペイロード1484Aが生成される。この新しいペイロードは、そのコンポーネントフィールド1485A及び1485Bとして、または、長いハイブリッドペイロード1484Aとして、ネットワークキャッシュ1550に静的に保持される。最後に、ペイロード1485Dが到着する時に、ネットワークキャッシュ1550のコンテンツは混合処理1061に開放され、時間t6においてフィールドFld91、Fld92、及びFld93に渡って分割されたデータセグメント9Aから9Fを含む、対応するハイブリッドペイロード1486Aが生成される。時間tf及びステート999において、携帯電話32にホストされたアプリケーション1335はハイブリッドマルチフィールドペイロード1486Aを処理して、再アッセンブル化し、データセグメント9A?9Fが順序通り配置されたオリジナルデータシーケンス1489Aを生成する。
本発明の別の実施形態では、携帯電話32上のアプリケーション1335内、すなわち、SDNPクラウドではなく、クライアントのアプリケーション内で、フィールドの最終的なアッセンブリ及びキャッシングが行われる。図129Cに示すように、時間t4において、フィールド91及び92からのデータセグメントを含むペイロード1483A及び1483Bは混合処理1061によって混合されて、ハイブリッドペイロード1484Aを生成し、ハイブリッドペイロード1484Aは直ちに携帯電話32のアプリケーション1335に転送され、ペイロード1484C及び1484Dとしてセキュリティを確保したクライアントアプリケーションキャッシュ1551に保持される。ペイロード1485Eが時間t4に到着し、時間t5において、対応するステート995と共に、携帯電話32のアプリケーション1335に直ちに転送されて、次に、時間tfにおいて、アプリケーション1335は順番に配置されたデータセグメント9Aから9Fを含むオリジナルデータパケット1484に再アッセンブルする。
図129Dには、クライアントによるSDNPパケットの再構成を要約したフローチャートが示されており、1つまたは複数の暗号文ブロックを含む単一チャネルのデータパケット1480が復号処理1032によって復号されてマルチフィールドプレーンテキスト1491を生成し、マルチフィールドプレーンテキスト1491はアンスクランブル化処理928によってアンスクランブルされてマルチフィールドプレーンテキストストリング1492A、1492B及び1492Cを生成し、その後、パース処理1087及びデジャンキング(図示せず)を含む混合処理1061によってマージされて、オリジナルデータパケット1493が生成される。最終的に、データパケット1493はオーディオCODEC1385によって音または音声1384Aに変換される。
[コマンド及び制御]
本発明によるSDNP通信の最後の要素である、シグナリングノードによるメディアノードのコマンド及び制御は、セキュリティまたは音声の忠実度を犠牲にすることなく、高いQoS、及びリアルタイムパケットの小さな伝送遅延を保証するときの重要な要素である。クライアント、会話、及びデータパケットのルーティング及び優先度の処理を決定するために使用される基本的な決定木の例が図130に示されている。示されるように、タブレット33に表されるクライアントノードC2,1は、シグナリングサーバ1365上のシグナリングノードSに呼び出し(コール)を実行することを要求すると、呼び出しする側がコンタクトしたい人だけではなく、呼び出し(コール)の性質、例えば、それが音声コール、ビデオコールなどであるかどうか、その緊急性、例えば、通常のベストエフォート、保証された伝送、VIP伝送等の好ましい伝送方法を、コマンド及び制御パケットにおいて指定する。シグナリングノードSは、その要求、そのクライアントの経営状態、支払履歴、または、任意の数のビジネス上の考慮事項に基づく「伝送方法決定」(ステップ1500)を用いて、伝送要求1499Aを解釈する。いくつかの結果が生じることがある。顧客がVIPであるか、または、その出来高または収益のポテンシャルに基づいて、好ましい顧客であると判断される場合には、その通信セッションは、VIPとタグ付される。VIP伝送はまた、本明細書で後ほど記述されるレースルーティングと呼ばれる特別な性能向上方法を利用してもよい。
伝送時にファイルが保証されることが最も重要な要素である場合には、パケット保証伝送、すなわち、パケットの複数の予備のコピーを送信し、リアルタイムのパフォーマンスが犠牲になったとしても、パケットのロスのリスクを最小にすべく、ノードツーノードのホップの数を最小化する方法を採用するとよい。それ以外の場合には、通常のSDNPルーティングが採用されるとよい。図130に示すように、呼び出される(コールされる)者のアドレス及び電話番号1499Bに基づいて行われる伝送方法の決定(ステップ1500)の結果が、「ルーティングオプションの決定及びランク付け」(ステップ1501)の処理に影響を及ぼすルーティングを管理するために用いられる。一度、ルートオプションがランク付けされると、緊急性要求1499C、及び、ラッシュ料金等の特別料金が、通常、優先、緊急、及び、オーディオ品質が犠牲にならない条件でより低コストの「遅い(snail)」等のオプションを含む出力を行う「パケット緊急度の選択」に基づいて決定される。
ルーティングオプション(ステップ1501)、及び、緊急性選択(ステップ1502)を組み合わせることによって、シグナリングノードは各パケット、フレーム、またはデータセグメントにとって最善のルーティングの選択(ステップ1503)を行うことができる。選択されたルートが複数のゾーンを通過する場合には、各ゾーンに対する様々なセキュリティ設定(ステップ1504)が含まれる。シード、復号鍵1030、及び、他のセキュリティに関する情報を含むこのデータはメッシュネットワークの伝送において、ノード毎のルーティング、分割、及び、混合の際に使用され、SDNPゾーンU2プリアンブル1505A、SDNPゾーンU1プロアンブル1505C、及び、まとめてプリアンブル1505Bと表されるSDNP内のメッシュネットワークの伝送ための複数のSDNPゾーンZ1プロアンブルから成り、ファースト及びラストマイルのIPパケットを含む全てのデータパケットのプリアンブルを生成するために用いされる。プリアンブル1505A、1505B、1505C及びその他のプリアンブルは、その後、IPアドレス及びSDNPと結合されて、様々なIP(インターネットプロトコル)及びSDNPパケットを生成する。このようなルーティングの指示には、タブレット33に送信され、クライアントノードC2,1から呼び出しまたは通信のためのルーティングを記述するIPパケット1506Aと、メディアサーバ1118に送信され、SDNPクラウド上のメディアノードMi,j間の呼び出しまたは通信のルーティングに使用される複数のSDNPパケット1506Bと、携帯電話32に送信され、SDNPゲートウェイノードから携帯電話32に示されるクライアントノードC1,1への呼び出しまたは通信のためのルーティングを記述するIPパケット1506Cとが含まれる。このように、メディアノードは、シグナリングサーバから受け取る指示に基づいて、入力されるペイロードを指示する必要がなく、インターネットベースのOOT通信で用いられるルーティング手順のメカニズムとは全く逆である。
例えば、先に述べたように、インターネットルータは、パケットを最も遅い伝送遅延または最短遅延時間でルーティングすることによるクライアントの利益に関心を持つ必要のない多くの異なるISP及び電話会社によってホストされている。実際、本発明によるSDNP通信でなければ、インターネットルータはリアルタイムオーディオまたはビデオを運搬するデータパケットと、ジャンクメールとを区別することさえできない。リアルタイム通信において、遅延は致命的である。数百ミリ秒の遅延はQoSに著しく影響を与え、500ミリ秒を超える遅延は、同期した音声会話を維持することが極めて困難となる。このような、また、他の様々な理由によって、本明細書に記載されたSDNPネットワークでは伝送遅延が絶えずモニタされ、各リアルタイムデータパケットが伝送されるときに、各リアルタイムデータパケットに対して最善のルートが選択される。
図131に示されるように、「IP Addr TB」、すなわち、タブレット33から、「IP Addr CP」、すなわち、携帯電話32へルーティングが要求されたときには、採用され得るルーティングが多数存在する。各ノードツーノードの伝送遅延は、絶えず変化し、追跡され、かつ、伝送遅延テーブル1416に記録されている。さらに、呼び出しを最も少ない数のメディアサーバを介するようにルーティングした場合であっても、必ずしも、最も遅延が小さな通信となるわけではない。例えば、呼び出しをクライアントノードC2,1からメディアノードMa,fへ、その後、クライアントノードC2,1へのルーティングした場合、全伝送遅延は55+60=115ミリ秒となるのに対して、影付きのパス、及び、図132Aに示すように、メディアノードMa,fからメディアノードC1,1へ直接伝送する代わりに、メディアノードMa,fを介する場合には、全伝送遅延は55+15+15=85ミリ秒となり、追加のメディアノードを介して伝送された場合であっても20%早くなる。SDNP動的ルーティングにおいて、シグナリングサーバは最も遅延を小さくするだけではなく、よりセキュリティを高めるため、メッシュ伝送を用いてデータを断片化し、コンテンツを送信するのに、パスの最適な組み合わせを常に検討する。図示するように、図132に示されているメディアノードMa,hを介した影付きのパスは遅延時間が短く、累積される伝送遅延が25+20+15+15+15=105ミリ秒となる―よって、より多くのホップを含むにも関わらず、他の場合に比べて優れている。
コマンド及び制御の他の重要な機能としては、パケットの再構成を指示することがある。この機能は、クラウド上のSDNPパケットの混合、分割、及び再ルーティングのキーとなる。図132Cは、シグナリングノードSがメディアノード、この例では、ホスティングメディアノードMa,qと通信し、特定のノードへのデータパケットの出入りを管理する方法の一実施形態を示している。入力されるSDNPパケットとそのペイロードフレームに対する全ての関連するセキュリティ設定1504に関する全ての知識を用いて、コマンド及び制御データパケット1496に基づいて、シグナリングノードSはメディアノードMa,qに入力されるSDNPパケット1497Aを処理して出力するデータパケット1497Bを生成する方法を指示する。図示するように、複数のフレームを含むペイロード1511Aを抽出した後、DUM操作1210において、メディアノードMa、qは、それぞれが生成されたときに用いられたステート情報920、シード929、及び復号鍵1030に基づいて、ペイロード1511Aから全フレーム及び他の入力されたパケットのペイロードから全フレームを復号し、かつ、アンスクランブルし、その後、すべての受信したフィールドを混合して、この場合は、集合的にはデータフレーム1512として、また、個別的にはデータフレーム1、6、9、12、23、及び31としてそれぞれ示される全ての独立したフレームによって示されるロングパケットを生成する。
次に、このデータはSDNP zipソータ1310に送られ、シグナリングノードSによって既に提供されたSDNPパケット1506B、または、コマンド及び制御パケット1495Aにおいて特定された呼び出し(コール)情報への応答としてのSDNPパケットにおけるルーティング情報に全て従って、フレームはSDNPクラウドにおいて次のホップが同じ宛先であるフレームのグループにソートされる。次に、SSE処理1213によって、そのフレームは現在のステート920の情報、アップデートされたシード929、及び新しい復号鍵1030を用いて、同じ宛先を持つグループに分割される。前のペイロード1511Aがフレーム1、6、及び9のデータを含んでいたのに対して、フレーム1、9、及び23のデータを含むそのような1つのペイロード、ペイロード1511BはメディアノードMa、jに宛てられている。したがって、シグナリングノードSによって指示されるように、メディアノードMa、qはフレーム6のデータを除去し、それをフレーム23のデータと置き換えて、ペイロード1511Bを生成し、出力されるSDNPパケット1487Bにアッセンブルして、メディアノードMa、jに対して送信する。
7層のOSIモデルを用いると、図133Aに示すSDNP通信はセキュリティを確保したゲートウェイ間のトンネル1522を示し、2つのクライアントのみ、この場合は、タブレット33及び携帯電話32のみでホストされる個別のSDNPアプリケーション1335間でのエンドツーエンドのセキュリティを確保した通信1529をサポートする。本発明の実施形態では、物理層及びデータリンク層1525は、SDNP動作を実現するためのいかなる特別な設計も必要としない。しかし、ネットワーク層3は、SDNPがセキュリティ、遅延を短くする、また、最善のQoSを実現するため、SDNPクラウドにおいて各シングルホップのルーティングを制御するため、各インターネットと完全に異なる動作をする。トランスポート層4は、制御にTCPを使い、リアルタイムデータに拡張されたバージョンのUDPを使用しているため、SDNPパケット、ペイロード、またはフレームが何であるか、及び、どのような優先順位であるかの情報に基づいて、その方法及び優先順位を変更するコンテキスト伝送が採用されている。セッション層5はSDNP動作においても特有なものであり、コマンド及び制御情報−メディアチャネル上またはシングルチャネル上を伝送されるコマンド及びコントロールパケットのいずれかを介して通信される―によって、ルーティング、品質、伝送状態、及び優先度を含む、全てのセッションの管理が決定される。
SDNP通信では、プレゼンテーション層6はクライアント独自の暗号化とは無関係なネットワークのホップ毎の暗号化及びスクランブル化を実行する。
アプリケーション層7は、SDNP通信では、いかなるSDNP対応のアプリケーションも断片化されたデータを混合し、リストアし、断片化されたペイロードが到着しない場合に、すべきことを知ることができなければならないため特有なものであり、コンテキスト伝送が採用されている。
開示されたSDNPネットワークの上述のセキュリティ及びパフォーマンスは全てクライアント暗号化及びプライベートキーマネジメントを使うことなく達成することができる。クライアントのアプリケーションもまた、例えば民間会社のセキュリティによって、暗号化されている場合には、VPN的なトンネリングがデータ断片化と共に実行されることによって、図133Bに示すような、断片化されたトンネリングされたデータ、プレゼンテーション層6及びアプリケーション層7のハイブリッドによる、新しいタイプのセキュリティを確保した通信が実現される。
本発明によるSDNP通信特有な一側面は、図134に示す「レースルーティング」に例示される。SDNPネットワークが断片化されたデータのメッシュ伝送上に作り上げられているため、メッシュネットワークを介して、断片化されたデータフィールドを2重または3重に送ることによってオーバーヘッドが生じない。セキュリティを犠牲にすることなく、概念上は可能な限り遅延を最小とするために、ペイロードはサブパケットに分割され、2つの補完フレームに編成される。レースルーティングにおいて、第1のフレームが1つのルートで、第2のフレームが他のルートを介して送信されるのではなく、各フレームの複数のコピーが異なるルートを介して送信され、宛先に最初に到着したフレームが使用される。後に到着したコピーは単に破棄される。例えば、図示するように、フレーム91は、2つの経路、すなわち経路1540及び1541を介して送られ、一方、フレーム92もまた複数の経路、すなわち経路1541及び1543によって送られる。フレーム91ペイロード及びフレーム92ペイロードを最初に運搬する経路の組み合わせがどのような場合であっても、使用される組み合わせはその組み合わせである。
[要約]
上記の開示によって、本発明によるSDNP通信によって達成される性能、遅延、品質、セキュリティ、及びプライバシーにおける多数の利点が説明されている。表135では、開示されたセキュリティを確保した動的ネットワーク及びプロトコル(SDNP)と、Over−the−topまたはOTTキャリアとの、仮想プライベートネットワークまたはVPNとの、及び、ピアツーピアまたはPTPネットワークとの比較が示されている。表に示すように、すべての競合し、かつ、先行する技術の通信方法は、一度に1つの経路上で行われる伝送に依存し、通信の内容の保護のための暗号化に完全に依存している。VPN内での暗号化を除いて、既存の通信方法は全て、通信相手の発信元のアドレスと宛先のアドレスが公開されるため、サイバー攻撃に対する脆弱性となるフィッシング、スニッフィング、プロファイリングが可能となる。それらすべてにおいて、セキュリティは静的であり、パケットがネットワークを横断するときに変化しない。どの先行技術も通信のルーティングを制御しないため、通信がハイジャックされたかどうかを検出することができず、ネットワークの遅延、または、リアルタイムのパフォーマンスを制御することができない。さらに、さらに、OTTとPTPネットワークでは、高帯域幅のルータが呼び出し(コール)をサポートすることが保証されていないため、音質の変化及びコールドロップが定常的に発生する。最後に、開示されたSDNP通信方法及びメッシュネットワークを除く全ての場合では、ハッカーが暗号化コードを破った場合、ハッカーはセキュリティの侵害が発覚する前に重大な被害を負わせるためにその知識を使うことができ、したがって、個人的な、または、公にされていない通信内容を全て傍受可能となり得る。
開示されたSDNPネットワークでは、サイバー攻撃者が暗号を破った場合でも、全ての1つのパケットが文字化けし、不完全で、他のメッセージと混合され、かつ、順浮動でスクランブルされている―基本的には、いかなるSDNPパケットの中身も、意図された人以外には無益である。さらに、たとえ、ネットワークの暗号が破られた場合、完了までに量子コンピューティングを用いても年を要する挑戦であり、10分の1秒後には、全SDNPクラウドを横断する各パケットの動的な暗号は変化している。これは、ハッキングしようとするハッカーは100ミリ秒毎にハッキングを開始しなければならないことを意味している。そのような動的な方法を用いることによって、5分の会話、たとえ、それが単一のデータストリングで完全に利用可能であったとしても、解読するのに何百年を要する。これ以外にも、データ断片化、動的スクランブル化、動的な混合、及び再ルーティングが使用されているため、暗号を破ることによって得られる利益は完全に幻想的なものとなる。
動的スクランブル化、断片化データ転送、匿名データパケット、動的暗号化を含む、本明細書に記載されたセキュリティを確保した動的ネットワークとプロトコルによって実現される複数レベルのセキュリティの組み合わせは、単純な静的暗号化によって提供されるセキュリティをはるかに上回る。本明細書に開示されたSDNP通信において、会話、ダイアログ、または他の通信からのデータパケットは、シングルルートを通って移動するのではなく、無意味なデータフラグメントの解読不能な断片に分割され、順不動でスクランブルされ、混合され、データの基礎となるセキュリティ認証に基づいて、絶えず変化する複数の経路に送信される。その結果、その通信方法は、初めての「ハイパーセキュア」通信システムを表している。