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

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

▶ テレフオンアクチーボラゲット エル エム エリクソン(パブル)の特許一覧

特表2024-541821ストリーム制御伝送プロトコル(SCTP)上で並列のデータグラムトランスポート層セキュリティ(DTLS)コネクションを使用するための方法及びシステム
<>
  • 特表-ストリーム制御伝送プロトコル(SCTP)上で並列のデータグラムトランスポート層セキュリティ(DTLS)コネクションを使用するための方法及びシステム 図1
  • 特表-ストリーム制御伝送プロトコル(SCTP)上で並列のデータグラムトランスポート層セキュリティ(DTLS)コネクションを使用するための方法及びシステム 図2
  • 特表-ストリーム制御伝送プロトコル(SCTP)上で並列のデータグラムトランスポート層セキュリティ(DTLS)コネクションを使用するための方法及びシステム 図3
  • 特表-ストリーム制御伝送プロトコル(SCTP)上で並列のデータグラムトランスポート層セキュリティ(DTLS)コネクションを使用するための方法及びシステム 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-13
(54)【発明の名称】ストリーム制御伝送プロトコル(SCTP)上で並列のデータグラムトランスポート層セキュリティ(DTLS)コネクションを使用するための方法及びシステム
(51)【国際特許分類】
   H04L 9/08 20060101AFI20241106BHJP
   H04L 9/32 20060101ALI20241106BHJP
   H04L 69/326 20220101ALI20241106BHJP
   H04L 65/1101 20220101ALI20241106BHJP
   H04L 65/1069 20220101ALI20241106BHJP
【FI】
H04L9/08 C
H04L9/32 200A
H04L69/326
H04L65/1101
H04L65/1069
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024520798
(86)(22)【出願日】2022-08-17
(85)【翻訳文提出日】2024-06-04
(86)【国際出願番号】 IB2022057712
(87)【国際公開番号】W WO2023067400
(87)【国際公開日】2023-04-27
(31)【優先権主張番号】63/270,064
(32)【優先日】2021-10-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】598036300
【氏名又は名称】テレフオンアクチーボラゲット エルエム エリクソン(パブル)
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】ウェスタールンド, マグナス
(72)【発明者】
【氏名】マットソン, ジョン
(72)【発明者】
【氏名】ポルフィーニ, クラウディオ
(57)【要約】
実施形態は、SCTP(ストリーム制御伝送プロトコル)アソシエーション上で並列のDTLS(データグラムプロトコルトランスポート層セキュリティ)コネクションを実装するための方法、電子デバイス、記憶媒体、及びコンピュータプログラムを含む。一実施形態では、第2のネットワークノードへのセキュア伝送のためにユーザメッセージを符号化するための、第1のネットワークノードにおける方法は、ユーザメッセージを送信するSCTP(ストリーム制御伝送プロトコル)アソシエーション上の既存のDTLS(データグラムトランスポート層セキュリティ)コネクションからの既存のSCTP-AUTH(SCTPのための認証されたチャンク)キーを使用したDTLSハンドシェイクを通じて、当該SCTPアソシエーション上でDTLSコネクションを開始することと、開始されたDTLSコネクションから新規のSCTP-AUTHキーを導出することと、新規のSCTP-AUTHキーを用いて、開始されたDTLSコネクションを通じて更なるユーザメッセージを送信することと、既存のDTLSコネクションで暗号化されたSCTPパケットと、既存のSCTP-AUTHキーによって認証されたSCTPパケットとが配信されたことの確認に応じて、SCTPアソシエーション上の既存のDTLSコネクションをクローズすることと、を含む。
【特許請求の範囲】
【請求項1】
第2のネットワークノードへのセキュア伝送のためにユーザメッセージを符号化するための、第1のネットワークノードにおける方法であって、
ユーザメッセージを送信するSCTP(ストリーム制御伝送プロトコル)アソシエーション上の既存のDTLS(データグラムトランスポート層セキュリティ)コネクションからの既存のSCTP-AUTH(SCTPのための認証されたチャンク)キーを使用したDTLSハンドシェイクを通じて、前記SCTPアソシエーション上でDTLSコネクションを開始すること(204)と、
前記開始されたDTLSコネクションから新規のSCTP-AUTHキーを導出すること(206)と、
前記新規のSCTP-AUTHキーを用いて、前記開始されたDTLSコネクションを通じて更なるユーザメッセージを送信すること(210)と、
前記既存のDTLSコネクションで暗号化されたSCTPパケットと、前記既存のSCTP-AUTHキーによって認証されたSCTPパケットとが配信されたことの確認に応じて、前記SCTPアソシエーション上の前記既存のDTLSコネクションをクローズすること(212)と、
を含む、方法。
【請求項2】
請求項1に記載の方法であって、
前記開始されたDLTSコネクションによって保護されているが前記既存のSCTP-AUTHキーで認証されているユーザメッセージの更なる部分を含む、進行中のSCTPパケットを送信すること(208)を更に含む、方法。
【請求項3】
請求項1又は2に記載の方法であって、
前記SCTPアソシエーション上の前記既存のDTLSコネクションをクローズすることは、第1のDTLSコネクションクローズ通知を前記第2のネットワークノードへ送信することを含む、方法。
【請求項4】
請求項1乃至3のいずれか一項に記載の方法であって、
前記SCTPアソシエーション上の前記既存のDTLSコネクションをクローズすることは、第2のDTLSコネクションクローズ通知を前記第2のネットワークノードから受信することを更に含む、方法。
【請求項5】
請求項1乃至4のいずれか一項に記載の方法であって、
前記第1のDTLSコネクションクローズ通知を送信することは、前記第1のDTLSコネクションクローズ通知を送信する前に、前記既存のDTLSコネクションにおける送信データが非再現可能な方法で前記第2のネットワークノードによって確認応答されたことを確認することを含む、方法。
【請求項6】
請求項1乃至5のいずれか一項に記載の方法であって、
前記既存のSCTP-AUTHキー及び前記新規のSCTP-AUTHキーは、対応する既存の及び新規のキー識別子(ID)によって識別され、前記新規のキー識別子は、前記既存のキー識別子から1だけ増加した値である、方法。
【請求項7】
請求項1乃至6のいずれか一項に記載の方法であって、
前記DTLSコネクションは、前記SCTPアソシエーション上の前記既存のDTLSコネクションの1つ以上の証明書が失効する前に確立される、方法。
【請求項8】
請求項1乃至7のいずれか一項に記載の方法であって、
前記DTLSハンドシェイクを通じて前記SCTPアソシエーション上で前記DTLSコネクションを開始することは、前記1つ以上の証明書内のタイムスタンプを含む前記既存のDTLSコネクションの前記1つ以上の証明書を維持することを含む、方法。
【請求項9】
請求項1乃至8のいずれか一項に記載の方法であって、
前記第1のネットワークノードと前記第2のネットワークノードとの間で前記ハンドシェイクを実行することは、
前記ハンドシェイクを開始し、かつ、前記ハンドシェイクのイニシエーションを受信したことに応答して、前記第1のネットワークノードが前記DTLSコネクションのDTLSクライアントとして機能する場合に前記開始されたハンドシェイクを継続することを含む、方法。
【請求項10】
請求項1乃至9のいずれか一項に記載の方法であって、
前記既存のSCTP-AUTHキーは、前記既存のDTLSコネクションのクローズに応じて削除される、方法。
【請求項11】
ネットワークノード(402)であって、
プロセッサ(442)と、命令を提供する非一時的なマシン読取可能読記憶媒体(449)と、を備え、前記命令は、前記プロセッサ(442)によって実行されると前記プロセッサ(442)に、
ユーザメッセージを送信するSCTP(ストリーム制御伝送プロトコル)アソシエーション上の既存のDTLS(データグラムトランスポート層セキュリティ)コネクションからの既存のSCTP-AUTH(SCTPのための認証されたチャンク)キーを使用したDTLSハンドシェイクを通じて、前記SCTPアソシエーション上でDTLSコネクションを開始すること(204)と、
前記開始されたDTLSコネクションから新規のSCTP-AUTHキーを導出すること(206)と、
前記新規のSCTP-AUTHキーを用いて、前記開始されたDTLSコネクションを通じて更なるユーザメッセージを送信すること(210)と、
前記既存のDTLSコネクションで暗号化されたSCTPパケットと、前記既存のSCTP-AUTHキーによって認証されたSCTPパケットとが配信されたことの確認に応じて、前記SCTPアソシエーション上の前記既存のDTLSコネクションをクローズすること(212)と、
を実行させることができる、ネットワークノード。
【請求項12】
請求項11に記載のネットワークノード(402)であって、
前記非一時的なマシン読取可能読記憶媒体は、前記プロセッサ(442)によって実行されると前記プロセッサ(442)に、
前記開始されたDLTSコネクションによって保護されているが前記既存のSCTP-AUTHキーで認証されているユーザメッセージの更なる部分を含む、進行中のSCTPパケットを送信すること(208)、
を更に実行させることができる命令を提供する、ネットワークノード。
【請求項13】
請求項11又は12に記載のネットワークノード(402)であって、
前記SCTPアソシエーション上の前記既存のDTLSコネクションをクローズすることは、第1のDTLSコネクションクローズ通知を前記第2のネットワークノードへ送信することを含む、ネットワークノード。
【請求項14】
請求項11乃至13のいずれか一項に記載のネットワークノード(402)であって、
前記SCTPアソシエーション上の前記既存のDTLSコネクションをクローズすることは、第2のDTLSコネクションクローズ通知を前記第2のネットワークノードから受信することを更に含む、ネットワークノード。
【請求項15】
請求項11乃至14のいずれか一項に記載のネットワークノード(402)であって、
前記第1のDTLSコネクションクローズ通知を送信することは、前記第1のDTLSコネクションクローズ通知を送信する前に、前記既存のDTLSコネクションにおける送信データが非再現可能な方法で前記第2のネットワークノードによって確認応答されたことを確認することを含む、ネットワークノード。
【請求項16】
請求項11乃至15のいずれか一項に記載のネットワークノード(402)であって、
前記既存のSCTP-AUTHキー及び前記新規のSCTP-AUTHキーは、対応する既存の及び新規のキー識別子(ID)によって識別され、前記新規のキー識別子は、前記既存のキー識別子から1だけ増加した値である、ネットワークノード。
【請求項17】
請求項11乃至16のいずれか一項に記載のネットワークノード(402)であって、
前記DTLSコネクションは、前記SCTPアソシエーション上の前記既存のDTLSコネクションの1つ以上の証明書が失効する前に確立される、ネットワークノード。
【請求項18】
請求項11乃至17のいずれか一項に記載のネットワークノード(402)であって、
前記DTLSハンドシェイクを通じて前記SCTPアソシエーション上で前記DTLSコネクションを開始することは、前記1つ以上の証明書内のタイムスタンプを含む前記既存のDTLSコネクションの前記1つ以上の証明書を維持することを含む、ネットワークノード。
【請求項19】
請求項11乃至18のいずれか一項に記載のネットワークノード(402)であって、
前記第1のネットワークノードと前記第2のネットワークノードとの間で前記ハンドシェイクを実行することは、
前記ハンドシェイクを開始し、かつ、前記ハンドシェイクのイニシエーションを受信したことに応答して、前記第1のネットワークノードが前記DTLSコネクションのDTLSクライアントとして機能する場合に前記開始されたハンドシェイクを継続することを含む、ネットワークノード。
【請求項20】
請求項11乃至19のいずれか一項に記載のネットワークノード(402)であって、
前記既存のSCTP-AUTHキーは、前記既存のDTLSコネクションのクローズに応じて削除される、ネットワークノード。
【請求項21】
非一時的なマシン読取可能記憶媒体(449)であって、プロセッサ(442)によって実行されると前記プロセッサ(442)に、方法1乃至10のいずれかを実行させることができる命令を提供する、マシン読取可能記憶媒体。
【請求項22】
コンピュータプログラムであって、前記コンピュータプログラムがネットワークノード(402)によって実行されると前記デバイスに、方法1乃至10のいずれかを実行させることができる命令を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年10月21日に提出された米国仮出願第63/270,064号の利益を主張し、当該仮出願は本明細書で援用される。
【0002】
本発明の実施形態は、ネットワーキングの分野に関するものであり、より具体的には、ストリーム制御伝送プロトコル(SCTP)上で並列のデータグラムトランスポート層セキュリティ(DTLS)コネクションを使用することに関するものである。
【背景技術】
【0003】
第5世代(5G)ネットワークにおけるシグナリングプロトコルは、モバイル機器、それらの位置及び同様のもの情報を取得するために活用されうる、感知可能なデータをトランスポートするために、5G無線アクセスネットワーク(RAN)における次世代制御プレーンインタフェース(NG-C)、Xn、E1、及びF1等のインタフェースを使用する。シグナリングデータは、抽象構文表記法1(ASN.1:Abstract Syntax Notation One)で符号化され、ノード間でストリーム制御伝送プロトコル(SCTP:Stream Control Transmission Protocol)を介して転送される。第3世代パートナーシッププロジェクト(3GPP(登録商標))は、セキュリティ及び機密性のためにインターネットプロトコルセキュリティ(IPSec:Internet Protocol Security)でデータを保護することを推奨する。信号のサイズは任意の長さであり、144Kバイトまでの信号が存在する場合もある。
【0004】
IPSecゲートウェイとノードとの間のコネクションは保護されないので、3GPPは、エンド・ツー・エンド保護のためにDTLS/SCTPを採用することも推奨する。3GPPによれば、DTLS/SCTP保護は、ノード実装者にとって必須であり、アクティブ化するためにオペレータにとってはオプションである。しかし、SCTPアソシエーションは非常に長寿命(long lived)であることがあり、場合によっては数週間又は数ヶ月で測定される存続期間(lifetime)を有することがあり、エンド・ツー・エンドのノードコネクションにおけるピアノードは、大きなSCTPメッセージをサポートする長寿命SCTPアソシエーションのためのソリューションを有する必要がある。
【発明の概要】
【0005】
実施形態は、ストリーム制御伝送プロトコル(SCTP)アソシエーション上で並列のデータグラムトランスポート層セキュリティ(DTLS)コネクションを実装するための方法、ネットワークノード、記憶媒体、及びコンピュータプログラムを含む。一実施形態において、第2のネットワークノードへのセキュア伝送のためにユーザメッセージを符号化するための、第1のネットワークノードにおける方法は、ユーザメッセージを送信するSCTP(ストリーム制御伝送プロトコル)アソシエーション上の既存のDTLS(データグラムトランスポート層セキュリティ)コネクションからの既存のSCTP-AUTH(SCTPのための認証されたチャンク)キーを使用したDTLSハンドシェイクを通じて、SCTPアソシエーション上でDTLSコネクションを開始することと、開始されたDTLSコネクションから新規のSCTP-AUTHキーを導出することと、新規のSCTP-AUTHキーを用いて、開始されたDTLSコネクションを通じて更なるユーザメッセージを送信すること(210)と、既存のDTLSコネクションで暗号化されたSCTPパケットと、既存のSCTP-AUTHキーによって認証されたSCTPパケットとが配信されたことの確認に応じて、SCTPアソシエーション上の既存のDTLSコネクションをクローズすることと、を含む。
【0006】
実施形態は、ストリーム制御伝送プロトコル(SCTP)アソシエーション上で並列のデータグラムトランスポート層セキュリティ(DTLS)コネクションを実装するためのネットワークノードを含む。一実施形態において、ネットワークノードは、プロセッサと、命令を提供する非一時的なマシン読取可能読記憶媒体と、を備え、命令は、プロセッサによって実行されるとネットワークノードに、ユーザメッセージを送信するSCTP(ストリーム制御伝送プロトコル)アソシエーション上の既存のDTLS(データグラムトランスポート層セキュリティ)コネクションからの既存のSCTP-AUTH(SCTPのための認証されたチャンク)キーを使用したDTLSハンドシェイクを通じて、SCTPアソシエーション上でDTLSコネクションを開始することと、開始されたDTLSコネクションから新規のSCTP-AUTHキーを導出することと、新規のSCTP-AUTHキーを用いて、開始されたDTLSコネクションを通じて更なるユーザメッセージを送信することと、既存のDTLSコネクションで暗号化されたSCTPパケットと、既存のSCTP-AUTHキーによって認証されたSCTPパケットとが配信されたことの確認に応じて、SCTPアソシエーション上の既存のDTLSコネクションをクローズすることと、を実行させることができる。
【0007】
実施形態は、ストリーム制御伝送プロトコル(SCTP)アソシエーション上で並列のデータグラムトランスポート層セキュリティ(DTLS)コネクションを実装するためのマシン読取可能記憶媒体を含む。一実施形態において、マシン読取可能記憶媒体は、命令を提供し、当該命令は、実行されるネットワークノードに、ユーザメッセージを送信するSCTP(ストリーム制御伝送プロトコル)アソシエーション上の既存のDTLS(データグラムトランスポート層セキュリティ)コネクションからの既存のSCTP-AUTH(SCTPのための認証されたチャンク)キーを使用したDTLSハンドシェイクを通じて、SCTPアソシエーション上でDTLSコネクションを開始することと、開始されたDTLSコネクションから新規のSCTP-AUTHキーを導出することと、新規のSCTP-AUTHキーを用いて、開始されたDTLSコネクションを通じて更なるユーザメッセージを送信することと、既存のDTLSコネクションで暗号化されたSCTPパケットと、既存のSCTP-AUTHキーによって認証されたSCTPパケットとが配信されたことの確認に応じて、SCTPアソシエーション上の既存のDTLSコネクションをクローズすることと、を実行させることができる。
【0008】
本発明の実施形態は、既存のソリューションによるキー変更時のデータドレイニング(draining)ドレインフェーズ中に、DTLS/SCTPセッションにおいてデータ送信をアプリケーションが一時停止又は少なくとも遅延させる、アプリケーションの影響を回避する。DTLS保護レコードは自己記述型(self-describing)であり、かつ、共存しうるので、ドレイニングフェーズは回避される。更に、独立DTLSコネクション管理は、このキーを使用する全データが最初に配信されたことをそれぞれのサイドが知っている場合に、明示的な非同期クローズシグナリングを可能にし、その結果、コネクションをクローズダウンし、秘密キーマテリアルを廃棄する。
【図面の簡単な説明】
【0009】
本発明は、本発明の実施形態を例示するために使用される以下の説明及び添付の図面を参照することによって最もよく理解されうる。図面において:
図1図1は、いくつかの実施形態による、拡張DTLS/SCTPシグナリング及びメッセージングを提供するためのシステム図を示す。
図2図2は、いくつかの実施形態による、SCTPアソシエーション上で並列のDTLSコネクションを確立する動作を示す。
図3図3は、本開示のいくつかの実施形態による、第1のノードと第2のノードとの間のシグナリングダイアグラム300を示す。
図4図4は、いくつかの実施形態による、SCTPアソシエーション上で並列のDTLSコネクションを実装するネットワークノードを示す。
【発明を実施するための形態】
【0010】
一般に、本明細書で使用される全ての用語は、異なる意味が明確に与えられ、及び/又は、それが使用される文脈から暗示されない限り、関連する技術分野におけるそれらの通常の意味に従って解釈されるべきである。エレメント、装置、コンポーネント、手段、ステップ等へのあらゆる言及は、特に明記しない限り、エレメント、装置、コンポーネント、手段、ステップ等の少なくとも1つのインスタンスを指すものとしてオープンに解釈されるべきである。本明細書に開示される任意の方法のステップは、ステップが別のステップの後又は前として明示的に説明されている場合、及び/又はステップが別のステップの後又は前になければならないことが黙示的でる場合を除き、開示される正確な順序で実行される必要はない。本明細書に開示される実施形態のいずれかの任意の特徴は、適切な場合には、任意の他の実施形態に適用されてもよい。同様に、任意の実施形態の任意の利点は、任意の他の実施形態に適用されることができ、その逆も同様である。包含される実施形態の他の目的、特徴、及び利点は、以下の説明から明らかになる。
【0011】
1. 導入
既存の技術において長寿命のストリーム制御伝送プロトコル(SCTP)アソシエーションを実装することは困難である。例えば、データグラムトランスポート層セキュリティ(DTLS:Datagram Transport Layer Security)1.3は、相互再認証をサポートしておらず、また、DTLS自体の(Diffie-Hellmanを用いた)再キーイング(rekeying)を有効にしておらず、これにより、モバイルネットワークで使用される基本形式のような長寿命(数週間及び数ヶ月)のSCTPアソシエーションの保護には適していない。キーの変更を扱う、IETF(Internet Engineering Task Force)RFC(Request for Comment)6083によるDTLS(1.0及び1.2)再ネゴシエーションのための手順は、キー変更の前に、ドレイニング、即ち、全データが受信されるまで送信を停止することを必要とするので、アプリケーションに影響を及ぼす可能性がある。「アソシエーション」及び「SCTPアソシエーション」との用語は、本明細書において互換的に使用されることに留意されたい。
【0012】
1.1 概要
そのような課題を克服するために、本発明の実施形態は、同じSCTPアソシエーション上の既存のDTLSコネクションと並列に新たなDTLSコネクションを確立し、これにより、長寿命SCTPアソシエーションのためのアプリケーションへの最小限の影響で、DTLS保護されたSCTPアソシエーションのための再キーイング、相互再認証、及び更新された証明書を実現にする。
【0013】
これは、DTLSハンドシェイクにおける相互認証と、既存のDTLSコネクションによってキーイングされたSCTP-AUTHが提供する、完全性(integrity)及びソース認証とによって、安全に行われうる。新たなハンドシェイクが実行され、かつ、セキュリティコンテキスト及びキーが配置されている場合、両方のネットワークノード・エンドポイントは、両方のDTLSレコードについての新たなキーと、SCTP-AUTHについてのエクスポートされたキーとを使用するように切り替える。DTLSレコードは、DTLSコネクション識別子(ID)機能を使用し、SCTP-AUTHは、正しいコンテキストを識別するためにそのkey-id機構を使用する。
【0014】
各送信者が、古いSCTP-AUTHキーによって保護された全てのDTLSレコード及びSCTPパケットが正常に配信されたことを保証した場合、古いDTLSコネクションは一方向に閉じられる。両方のエンドポイントがDTLSコネクションを閉じた場合、このDTLSコネクションに関連する全てのキーが削除されうる。このため、本発明の実施形態は、2つのDTLSコネクションの並存がアプリケーションに対して最小限の影響を及ぼすことを可能にし、確実に配信されるべき任意のSCTPメッセージに対して、仮定されたトランスポートセマンティクス(transport semantics)を維持し続ける。
【0015】
いくつかの実施形態では、SCTP上のDTLSが、SCTPのための認証されたチャンク(SCTP-AUTH:Authenticated Chunks for SCTP)とともに使用される。DTLSは、DTLS 1.2[IETF RFC 6347]又はDTLS 1.3[IETF RFC 9147]に規定されるように実装されうる一方、SCTPは、SCTP-AUTH[IETF RFC 4895]とともに[IETF RFC 4960]に規定されるように実装されうる。トランスポートプロトコルとしてSCTPを使用するアプリケーションは、エンドポイントの相互認証、機密性、完全性保護、及びユーザメッセージの再生保護を提供するために、これらの実施形態及び他の実施形態を使用してもよい。
【0016】
DTLS/SCTPは、ユーザメッセージの完全性保護及び再生保護のためにSCTPとSCTP-AUTHとを使用する。DTLS over SCTPを使用するアプリケーションは、SCTP及びその拡張によって提供されるほぼ全てのトランスポート機能を使用できる。DTLS/SCTPは、1)メッセージ境界の保存、2)多数の単方向及び双方向ストリーム、3)SCTPユーザメッセージの順序付き及び非順序付き配信、4)[IETF RFC 3758]に規定される部分信頼性拡張、5)[IETF RFC 5061]に規定される動的アドレス再構成拡張、及び、6)最大2^64-1のユーザメッセージサイズ、を含む機能をサポートする。特記されない限り、本明細書におけるストリームは、SCTPアソシエーションの単方向ストリームであり、ストリーム識別子によって一意に識別される。
【0017】
いくつかの実施形態は、SCTP実装が[IETF RFC 4960]に規定されるSCTPユーザメッセージのフラグメンテーションのオプション機能をサポートすることを要求しうる。 当該実装は、部分的なユーザメッセージ配信をサポートするSCTP API(例えば、[IETF RFC 6458]に記載のもの)を有することを要求されるとともに、[IETF RFC 8260]に規定されるI-DATAチャンクが、より大きなユーザメッセージを効率的に実装及びサポートするために使用されることを推奨する。
【0018】
図1は、いくつかの実施形態による、拡張DTLS/SCTPシグナリング及びメッセージングを提供するためのシステム図を示す。図1は、トラフィックフローを実装するノード100を示し、アプリケーションプログラミングインタフェース(API)101は、SCTP機能ブロック(又はモジュール)120と、メッセージが受信又は復元される上位層プロトコルとの間のインタフェースである。API 101とSCTP機能ブロック120との間には、DTLS/SCTP機能ブロック(又はモジュール)110が介在する。いくつかの実施形態では、API 101は、DTLS API及びSCTP APIを含む。
【0019】
DTLS/SCTP機能ブロック110は、ユーザメッセージ及びSCTP-AUTHキーを保護するためにDTLS及びSCTPを一緒に使用する。DTLS/SCTP機能ブロック110は、本発明の実施形態を実装する並列DTLSコネクションコーディネータモジュール112を含む。いくつかの実施形態では、DTLS/SCTP機能ブロック110は、上位層プロトコルからのメッセージをフラグメンテーションし、そのフラグメントをSCTP 120に提供し、SCTP 120からのメッセージ(SCTPパケット)をデフラグし、それらをアセンブルし、アセンブルされたメッセージを上位層プロトコルに提供する。
【0020】
DTLS/SCTP機能ブロック110は、DTLSモジュール115を含み、当該モジュールは、DTLSプロトコルを実装し、かつ、最大2^14バイトのサイズのDTLSレコードを提供する。DTLSモジュール115は、いくつかの実施形態ではTLSエクスポータ114を含み、TLSエクスポータ114は、DTLSコネクションから共有認証キーをエクスポートする。共有認証キーは、参照番号116においてkey-idとペアにされ、キー及び対応するkey-idをSCTP120へ提供する。
【0021】
SCTP120は、例えば、IETF RFC 4960及び種々の拡張又は他のIETF標準提案に従って、SCTPプロトコルを実装する機能ブロックである。いくつかの実施形態では、SCTP機能ブロック120は、以下のセクション4.7に詳述されるように、共有認証キー及び完全性保護のために使用される対応するkey-idを受け入れるための、SCTP-AUTHモジュール124を含む。
【0022】
実装を単純化し、セキュリティホールのリスクを低減するために、[IETF RFC 3788]に規定されるようなSTARTTLSがいくつかの実施形態においてもはやサポートされないように、制限が規定されている。
【0023】
1.1.1. SCTPのためのTLSとの比較
TLSからDTLSが導出された場合の当該TLSは、信頼できるインシーケンス配信を提供するバイトストリーム指向トランスポートプロトコルの上で動作するように設計される。[IETF RFC 3436]に記述されているようなTLS over SCTPにはいくつかの重大な制限がある:
‐SCTPユーザメッセージの非順序付け配信をサポートしないこと;
‐[IETF RFC 3758]に規定されているような部分信頼性をサポートしないこと;
‐双方向で同じ数のストリームの使用をサポートするだけであること;及び
‐双方向ストリームごとにTLSコネクションを使用し、これは、多数のストリームが使用される場合にかなりの量のリソース及びメッセージ交換を必要とすること。
【0024】
1.1.2. IETF RFC 6083からの変更点
IETF RFC 6083に規定されているDTLS over SCTPソリューションには、以下の制限があった: 最大ユーザメッセージサイズが2^14 (16384) バイトであり、これは単一のDTLSレコード限界である。
【0025】
本発明の実施形態は、IETF RFC 6083を置き換えうるとともに、以下の変更を含みうる:
‐セキュアなフラグメンテーション機構を規定することによって、ユーザメッセージサイズの制限を削除する;
‐より最新のDTLSバージョンが必要とされることを必須にする(DTLS 1.2又は1.3);
‐SCTP認証拡張[IETF RFC 4895]における最新のハッシュベースのメッセージ認証コード(HMAC:hash-based message authentication code) アルゴリズム(SHA-256)の使用を必須にする;
‐スケジューリングの問題を回避するために、大きなSCTPユーザメッセージのインタリーブを可能にする[IETF RFC 8260]のサポートを推奨する;
‐SCTPアソシエーション内の全てのユーザメッセージに対してDTLSを常に使用することに対して、より厳しい要件を適用する;
‐認証が行われることが可能な全てのSCTPチャンクに対してSCTP-AUTHが適用されることを要求する;及び
‐ユーザメッセージの部分配信のサポートを要求する。
【0026】
1.2. DTLSバージョン
本書において定義されるDTLS/SCTPは、DTLS 1.2[IETF RFC 6347]又はDTLS 1.3[IETF RFC 9147] のいずれかを使用しうる。一般に、DTLS 1.3は、既知の脆弱性に対処し、かつ、公開時に既知の主要な弱点を有しない強力なアルゴリズムのみを定義する、より新しいプロトコルであることが好ましい。
【0027】
DTLS 1.0 を使用する代わりにDTLS 1.2を使用すると、DTLSコネクションの存続期間(lifetime)と、DTLSコネクションを介して転送できるデータ量とが制限される。これは以下に起因する:
‐DTLS 1.2における再ネゴシエーションの回数が、DTLS 1.0 の無制限と比較して65534 に制限されている;及び
‐DTLS 1.3の関連データ付き認証暗号化(AEAD:authenticated encryption with associated data)限界は、DTLS 1.2には正式に適用されないが、数学的制限は、DTLS 1.2にも同様に適用される。
【0028】
DTLS 1.3には以下の多数の重要な変更がある:
‐再ネゴシエーションはサポートされておらず、その代わりに部分的にKeyUpdatesに置き換えられる。KeyUpdatesの個数は2^64に制限されている。
‐厳格なAEADでは、再キーイング前に送信できるパケットの個数が大幅に制限されている。
【0029】
DTLS/SCTPを使用する多くのアプリケーションは、半永続的な性質のものであり、数ヶ月又は数年の予想される存続期間を有するSCTPアソシエーションを使用し、SCTPアソシエーションを再開するためにSCTPアソシエーションをダウンさせるのはかなりのコストがある。そのようなDTLS/SCTPの使用が必要である:
‐(DTLSクライアントだけでなく)両方のエンドポイントの定期的な再認証;
‐あらゆるキー開示の影響を低減するための、Diffie-Hellmanキー交換の定期的な再実行によるPFS(Perfect Forward Secrecy)の提供;及び
‐SCTP-AUTH再キーイングを実行する。
【0030】
公開時にはDTLS 1.3はこれらのいずれもサポートしていないが、DTLS 1.2の再ネゴシエーション機能は、DTLS/SCTPのコンテキストにおいてこの機能を提供しうる。半永続的なアプリケーションからのこれらの要件に対処するために、本発明の実施形態は、DTLS 1.2又は1.3のいずれかとの、いくつかの重複するDTLSコネクションを使用する。統一した手順を有することで、1.2から1.3へのアップグレード時の影響が軽減され、多くのDTLS実装でデフォルトで無効になっている再ネゴシエーションメカニズムの使用が回避される。
【0031】
DTLS 1.2における既知の脆弱性に対処するために、本明細書では、暗号、プロトコルオプション、及びDTLS再ネゴシエーションメカニズムの使用方法に関する実装制約を記述及び要求している。
【0032】
本明細書の残りの部分では、DTLSのバージョンが特に宣言されない限り、本テキストはDTLSの両方のバージョンに適用される。
【0033】
2. 慣例
本文書中のキーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「NOT RECOMMENDED」、「MAY」、及び「OPTIONAL」は、以下に示されるように、全て大文字で表記される場合に限り、BCP 14[IETF RFC 2119][IETF RFC 8174]に記載されているように解釈されるものとする。
【0034】
3. DTLS留意事項
3.1. DTLSのバージョン
本文書は、DTLS 1.3[I-D.ietf-tls-dtls13]又はDTLS 1.2[IETF RFC 6347]の使用を定義する。以前のバージョンのDTLSは使用されてはならない(MUST NOT)([IETF RFC 8996]を参照)。本文書に記載のDTLS/SCTPは、DTLSの将来のバージョンで動作することが期待される。
【0035】
3.2. 暗号スイート及び暗号パラメータ
DTLS 1.2の場合、[IETF RFC 7540]によって禁止されている暗号スイートは使用されてはならない(MUST NOT)。DTLSの全てのバージョンについて、機密性と完全前方秘匿性(PFS:Perfect Forward Secrecy)を与える暗号パラメータが使用されなければならない(MUST)。
【0036】
3.3. メッセージサイズ
DTLS/SCTPは、自動的にユーザメッセージをフラグメンテーションし、再アセンブルする。本明細書では、ユーザメッセージをDTLSレコードに分割する方法を定義し、各DTLS 1.3レコードは最大2^14 個の保護バイトを使用できる。各DTLSレコードは、いくらかのオーバヘッドを付加し、このため、可能性のある最大サイズのレコードを使用することが、送信されるオーバヘッドを最小限に抑えるために推奨される。
【0037】
次に、DTLSレコードのシーケンスは、SCTPによってパスMTUにフィットするようにデータ又はI-データチャンクにフラグメンテーションされる。本明細書で定義されているメカニズムを使用して可能な最大のユーザメッセージは、2^64-1バイトである。
【0038】
セキュリティ動作及びリアセンブリ・プロセスは、保護されたユーザメッセージ、即ち、DTLSレコードオーバヘッドを伴うメッセージが、受信機においてバッファリングされることを必要とする。このため、このバッファ空間は、安全に転送可能なプレーンテキストユーザメッセージの最大サイズに制限を課すことになる。しかし、SCTPからのユーザメッセージの部分配信の使用を要求し、かつ、同じストリーム上で受信された2つのメッセージがインタリーブされないと仮定することによって([IETF RFC 6458]で定義されるAPIを使用する場合のように)、DTLS処理の前に必要とされるバッファリングは、使用される着信ストリームごとに単一のDTLSレコードに制限されうる。
【0039】
これにより、DTLS/SCTP実装は、復号されてその完全性が検証された際に、各DTLSレコードのコンテンツを上位層プロトコル(ULP:Upper Layer Protocol)に提供し、ULPへの部分的なユーザメッセージ配信を可能にすることができる。実装は、より小さいDTLSレコードを使用することによって、DTLS層におけるバッファメモリ要件とトランスポートオーバヘッドとをトレードオフとしうる。
【0040】
DTLS/SCTP実装は、ユーザメッセージの処理、大規模なユーザメッセージの処理、及びそれらのリアセンブリ及び処理に関して、単にSCTPと非常に似た振る舞いをすることが期待される。ULPに、大規模なユーザメッセージに関連するリソース競合を処理することに関与させる。
【0041】
3.4. 再生保護(Replay Protection)
SCTP-AUTH [IETF RFC 4895]は、明示的な再生保護を有していない。しかし、SCTP-AUTHのDATA又はI-DATAチャンクの保護とSCTPユーザメッセージ処理の組み合わせは、第三者がSCTPパケットを注入又は再生しようとする試みを防ぎ、受信された保護ユーザメッセージに影響を与える。実際、この文書のソリューションは、各保護ユーザメッセージ内のDTLSレコードの並べ替え、複製、及び削除を防止するために、SCTP-AUTH及びSCTPに依存する。これには、どのDTLSレコードがSCTPユーザメッセージを開始及び終了するかの変更の検出、及びエポックへのインクリメント前のDTLSレコードの削除が含まれる。SCTP-AUTHがない場合、これらは全て明示的な処理を必要とする。
【0042】
DTLSは、レコード再生検出をオプションでサポートしている。そのような再生検出は、DTLS層がDTLS再生ウィンドウ外で受信された有効なメッセージをドロップすることをもたらしうる。DTLS/SCTPは、DTLS再生保護なしでも再生保護を提供するので、DTLSの再生検出は使用されてはならない(MUST NOT)。
【0043】
3.5. パスMTUディスカバリ
DTLSパスMTUディスカバリ(DTLS Path MTU Discovery)は使用されてはならない(MUST NOT)。SCTPがユーザメッセージのためのパスMTUディスカバリ及びフラグメンテーション/リアセンブリ(reassembly)を提供するので、セクション3.3に従って、DTLSは最大サイズのDTLSレコードを送信しうる。
【0044】
3.6. メッセージの再送信
SCTPは、信頼性の高いインシーケンス(in-sequence)トランスポートサービスを、それを必要とするDTLS メッセージに対して提供する。セクション4.4を参照。したがって、再送信のためのDTLS手順は使用されてはならない(MUST NOT)。
【0045】
4. SCTP留意事項
4.1. DTLSレコードのマッピング
SCTP実装は、DATA[IETF RFC 4960]と、オプションでI-DATA[IETF RFC 8260]チャンクを使用するユーザメッセージのフラグメンテーションをサポートしなければならない(MUST)。
【0046】
DTLS/SCTPは、ユーザメッセージAPIとSCTPとの間のシムレイヤ(shim layer)として機能する。フラグメンテーションは、ハンドシェイクメッセージのDTLSフラグメンテーションと同様に機能する。送信側では、ユーザメッセージはフラグメントm0、m1、m2にフラグメンテーションされ、それぞれ2^14=16384バイト以下である。
m0 | m1 | m2 | ... = user_message
結果として生じるフラグメントはDTLSで保護され、レコードは連結される
user_message' = DTLS( m0 ) | DTLS( m1 ) | DTLS( m2 ) ...
新たなuser_message'、即ち、保護されたユーザメッセージは、SCTPへの入力である。
受信側では、DTLSが、個々のレコードを解読するために使用される。
実装によって検出し、その後にアクションを行う必要がある3つの障害ケースがある:
【0047】
1.DTLSレコードの復号及び完全性検証プロセスの障害。SCTP-AUTHが、保護されたユーザメッセージの注入(injected)又は破損(corrupt)フラグメントの配信を防ぐことに起因して、これは、実装エラー又は内部ハードウェア障害の場合、又は必要なセキュリティコンテキストが時期尚早に破棄された場合にのみ発生するはずである。
【0048】
2.SCTP層が、例えば、[IETF RFC 6458]に記載のAPIを使用するときにrecvmsg()コールでMSG_EORを受信する場合に、ユーザメッセージの終わりを示し、最後にバッファリングされたDTLSレコード長フィールドが一致しない、即ち、DTLSレコードが不完全である場合。
【0049】
3.メモリ等のリソースが不足していることに起因して、復号プロセスを実行できず、ユーザメッセージフラグメントを破棄する必要がある。本明細書は、DTLS/SCTP動作に必要なリソースが、所与の数の、同時送信されるSCTPストリーム又は順序付けられていないユーザメッセージに対して制限されるように、定義される。
【0050】
上記の障害のケースは全て、受信機が完全なユーザメッセージを再現できないという結果につながる。これは、DTLS/SCTP層において復元することが不可能なトランスポートサービスの障害であり、送信者は完全なメッセージが配信されたと考えうる。このエラーは無視されてはならず(MUST NOT)、これは、SCTPが、特定のストリーム又はユーザメッセージで障害を宣言する機能を欠いているためであり、DTLSコネクションとSCTPアソシエーションは終了されるべきである(SHOULD)。SCTPアソシエーションの終了(termination)に対する有効な例外は、受信機が配信の障害についてULPに通知することができ、ULPがこの障害から回復することができる場合である。
【0051】
部分的信頼性のためのSCTP拡張(PR-SCTP:SCTP extension for Partial Reliability)[IETF RFC 3758]がユーザメッセージのために使用される場合、ユーザメッセージは、部分的に配信又は放棄されうることに留意されたい。これらの障害は、DTLSコネクション及びSCTPアソシエーションを終了する理由ではない。
【0052】
DTLSコネクションIDは、ネゴシエーションされなければならない(MUST)([draft-ietf-tls-dtls-connection-id]又は[I-D.ietf-tls-dtls13]のセクション9)。DTLS 1.3が使用される場合、長さフィールドが含まれなければならず(MUST)、16ビットシーケンス番号が使用されるべきである(SHOULD)。
【0053】
[draft-ietf-tls-dtls-connection-id]のセクション4は、「しかし、実装が、異なる長さのCIDを受信することを選択する場合、どのコネクション(及びそれ故に、どのCID長)が使用されているかを判定するために利用可能な他のメカニズムが存在しないので、割り当てられたCID値は自己描写型(self-delineating)でなければならない」と述べている。このソリューションは複数のコネクションIDを必要とするため、長さゼロのCIDを使用すると、長さゼロのCIDを有するDTLSレコードが別のDTLSコネクションコンテキストになり、解読及び完全性検証に失敗する可能性があるため、非常に問題になる。その場合、DTLSレコードを失わないようにするために、DTLSコネクションを使用してゼロ長CIDへ転送されなければならず、復号及び検証が試みられなければならない。リソース使用率が向上する。したがって、ゼロ長のCID値を使用せず、代わりにCID値に対して単一の共通長を使用することが推奨される(RECOMMENDED)。古いCIDの再利用は、その実装が以前の使用と近い時期に使用されないことを保証する限り可能であるため、1バイトで十分であるはずである。
【0054】
4.2 DTLSコネクションの取り扱い
DTLSコネクションは、SCTPアソシエーションの開始時に確立されなければならない(MUST)。SCTPアソシエーションが終了された場合、全てのDTLSコネクションが終了される。DTLSコネクションは、複数のSCTPアソシエーションにまたがってはならない(MUST NOT)。
【0055】
SCTPアソシエーションの開始時にDTLS接続を確立することが要求されるので、いずれのピアも、DTLSによって保護されていないSCTPユーザメッセージを送信すべきではない。したがって、エンドポイントが、ストリーム0上のDTLSメッセージでも、任意のストリーム上のDTLSレコードのシーケンスの形式で保護されたユーザメッセージでもないデータを受信するケースは、プロトコル違反である。受信者は、このプロトコル違反に起因してSCTPアソシエーションを終了してもよい(MAY)。
【0056】
相互認証、更新されたセキュリティパラメータ、Diffie-Hellmanキー交換の再実行、又はSCTP-AUTH再キーイングが必要とされる場合にはいつでも、新たなDTLSコネクションが、古いコネクションと並列にセットアップされる(即ち、1つのアソシエーション内に最大2つの同時DTLSコネクションが存在しうる)。
【0057】
4.3 ペイロードプロトコル識別子の使用
SCTPペイロードプロトコル識別子は、IANAによって割り当てられる。DTLS over SCTPを使用するアプリケーションプロトコルは、別個のペイロードプロトコル識別子(PPID)を登録及び使用すべきであり(SHOULD)、SCTP上で直接実行するために登録されたPPIDを再利用すべきではない(SHOULD NOT)。
【0058】
アプリケーションが、DTLSが使用されるか否かを判定できる限り、同じPPIDを使用することに害はない。しかし、例えば、プロトコルアナライザの場合、別個のPPIDが使用される場合にははるかに容易である。
【0059】
これは、特に、DTLSのための固有のPPIDが存在しないことを意味する。
【0060】
4.4 ストリームの使用
全てのDTLSハンドシェイク、アラート、又はChangeCipherSpec(DTLS 1.2のみ)メッセージは、無制限の信頼性と、順序付けられた配信の機能とを有するストリーム0で転送されなければならない(MUST)。
【0061】
保護されたユーザメッセージを運ぶ、レコードプロトコルのDTLSメッセージは、ストリーム0以外の複数のストリームを使うべきであり(SHOULD)、それらはストリーム0を使ってもよい(MAY)。ストリーム0では、保護されたユーザメッセージと、プロトコルを記録しないDTLSメッセージとが混在するため、ヘッドオブラインブロッキングが(head of line blocking)が発生しうる。
【0062】
4.5 チャンクの取り扱い
SCTPのDATAチャンクは、[IETF RFC 4895]に記述されているように、認証された方法で送信されなければならない(MUST)。認証されうる他の全てのチャンク、即ち、チャンクリストパラメータ(Chunk List Parameter)[IETF RFC 4895]にリストされうる全てのチャンクタイプも、認証された方法で送信しなければならない(MUST)。これにより、攻撃者が、メッセージが送信されるストリームを変更したり、メッセージの順序付けられた/順序付けられていない配信に影響を与えることができなくなる。
【0063】
[IETF RFC 3758]で定義されている、部分信頼性のあるSCTP(PR-SCTP:partial reliable SCTP)が使用される場合、FORWARD-TSNチャンクもまた、[IETF RFC 4895]で説明されているように認証された方法で送信されなければならない(MUST)。これは、攻撃者が、メッセージをドロップし、偽造されたFORWARD-TSN、SACK、及び/又はSHUTDOWNチャンクを使用して、このドロップを隠すことが不可能になることを確実にする。
【0064】
[IETF RFC 8260]で定義されているI-DATAチャンクタイプは、大きなユーザメッセージが、後に到着する高優先度のユーザメッセージの送信をブロックする際に有する下向きの側面のいくつかを避けるためにサポートされることが推奨される(RECOMMENDED)。ただし、サポートは、DTLS/SCTPとは独立して必須ではなく、ネゴシエーションされない。I-DATAチャンクが使用される場合、それらは、[IETF RFC 4895]に記述されているように認証された方法で送られなければならない。
【0065】
4.6 SCTP-AUTHハッシュ関数
DTLS/SCTPを使用する場合、SHA-256メッセージダイジェストアルゴリズムは、SCTP-AUTH[IETF RFC 4895]実装でサポートされなければならない(MUST)。DTLS/SCTPを使用する場合にはSHA-1は使用されてはならない(MUST NOT)。[IETF RFC 4895]は、HMAC-ALGOパラメータのサポート及びそれを含めることを要求し、それ故に、両方の要件を満たすために、HMAC-ALGOパラメータは、SHA-256と、優先度を示すためにSHA-1の前にリストされたSHA-256を有するSHA-1との両方を含む。
【0066】
4.7 並列DTLSコネクション
SCTP-AUTHの再キーイング、両方のエンドポイントの定期的な認証、及び攻撃者に動的キー抽出を強制することを有効にするために、この明細書によるDTLS/SCTPは、同じSCTPアソシエーション上での並列DTLSコネクションの使用を定義する。このソリューションは、DTLSによるSCTPアソシエーションの存続期間に制限がないことを保証し、また、DTLS再ネゴシエーション(DTLS 1.2 のみ)、又は相互エンドポイント再認証を許可しないDTLS 1.3のキー更新のプロパティへの依存も回避する。既存のDTLSがそのまま維持される一方で、並列DTLSコネクションは、フルハンドシェイクを実行する新たなDTLSコネクションを開くことを可能にし、再開を使用しうる。ハンドシェイク完了時に、新たなDTLSコネクションのセキュリティコンテキストに切り替え、古いDTLSコネクションのセキュリティコンテキストを使用して全てのSCTPチャンクの配信を確実にする。これが達成されると、古いDTLSコネクションを閉じ、関連するセキュリティコンテキストを破棄する。
【0067】
セクション4.1に規定されているように、DTLSコネクションIDの使用は、その保護解除(de-protection)動作を実行する場合に、受信機が、DTLSコネクション及びそのセキュリティコンテキストを正しく識別できることを保証するために必要とされる。また、DTLS 1.2の再ネゴシエーションが、複数のキーがエクスポートされうる場合に使用されない限り、各key-idに対してDTLSコネクションとSCTP-AUTH セキュリティコンテキストとの間に明確なマッピングがあることを保証するDTLSコネクションごとにエクスポートされるSCTP-AUTHキーは、1つだけである。
【0068】
アプリケーションライターは、新たなDTLSコネクションを確立することによってセキュリティパラメータが変更される可能性があることに注意する必要がある。再キーイングに関するセキュリティの留意事項についてはセクション8を参照のこと。
【0069】
DTLS/SCTPエンドポイントは、同時に2つ以上のDTLSコネクションを開いてはならない(MUST NOT)。いずれのエンドポイントも、完全なDTLSハンドシェイクを実行することによって新たなDTLSコネクションを開始してもよく(MAY)、該当する場合、DTLS再開を使用してもよい(MAY)。いずれのエンドポイントも、同時に両側でDTLSハンドシェイクを開始しうるので、いずれのエンドポイントも、独自のClientHelloを送信した際にDTLS ClientHelloを受信しうる。この場合、既存のDTLSコネクションの確立においてDTLSクライアントの役割を有するエンドポイントからのClientHelloは処理され続けられるべきであり、他方はドロップされる。
【0070】
DTLSハンドシェイクを実行する際、エンドポイントは、ピアが、以前のDTLSコネクションと同じアイデンティティを使用して識別することを検証しなければならない(MUST)。
【0071】
DTLSハンドシェイクが完了すると、(図1に示されるような)新たなSCTP-AUTHキーが、セクション4.9に従ってエクスポートされ、新たなDTLSコネクションが、将来の保護SCTPメッセージのDTLS保護動作のために使用されなければならない(MUST)。エンドポイントは、ハンドシェイクが完了した後に発生するDTLS保護動作のために新たなDTLSコネクションのセキュリティコンテキストを使用することを推奨される(RECOMMENDED)。新たなSCTP-AUTHキーは、DTLSハンドシェイクが完了した後に送信される任意のSCTPメッセージのために使用されるべきである(SHALL)。新たなDTLSハンドシェイクの完了前に開始されたがまだ完全には送信されていないSCTPメッセージの任意のSCTPパケット部分に対して、新たなSCTP-AUTHキーを使用する可能性があるが、[IETF RFC 6458]において定義されたAPIは、セクション6の拡張がサポートされない限り、これをサポートしない。
【0072】
SCTPエンドポイントは、以前のDTLSコネクション及びそのコンテキストが、いつ、このエンドポイントからそれ以上のデータを受信するためにもはや必要とされなくなるのかを、そのピアに知らせる。これは、DTLSに、DTLS close_notifyアラートを送信させることによって行われる。エンドポイントは、以下の2つの条件が満たされるまではclose_notifyを送信してはならない(MUST NOT):
‐このDTLSコネクションのセキュリティコンテキストを使用して保護された任意のDTLSレコード又はメッセージの一部を含む全てのSCTPパケットが、非再現可能な方法で確認応答される;及び
‐このDTLSコネクションのセキュリティコンテキストと関連付けられたSCTP-AUTHキーを使用する全てのSCTPパケットが、非再現可能な方法で確認応答される。
【0073】
保護される全ての将来のDTLSレコードに対して新たなDTLSコネクションのセキュリティコンテキストを使用し、関連付けられた新たなSCTP-AUTHキーを同時に有効にし、将来の保護動作のために古いコンテキストを使用しないことを可能にする実装について、上記の条件を決定する非常に基本的な方法がある。新たなセキュリティコンテキストを使用する最初の(部分的な)SCTPメッセージ送信コールの一部である最初のSCTPチャンクが送信された時刻をマークする。そのSCTPチャンク、及び、それ故に古いセキュリティコンテキストを使用する全ての以前のチャンクは、エンドポイント障害検出([IETF RFC 4960]のセクション8.1を参照)が、SCTPアソシエーションをトリガ及び終了する前に、ピアへ配信されていなければならない。このタイムアウト期間の上限を算出し、これは、2つの設定変更可能なパラメータに依存する。最大エンドポイント障害タイムアウト期間は、'Association.Max.Retrans'とRTO.Maxパラメータとの積である。RTO.Max=60秒で10回試行の時間(即ち、10分)[IETF RFC 4960]ごとのデフォルト値の場合。
【0074】
[IETF RFC 6458]のようなAPIを公開するSCTP実装の場合、セキュリティコンテキストの変更前に開始された部分的なSCTPメッセージのSCTP-AUTHキーを変更することが不可能であるため、SCTPメッセージを追跡して、古いセキュリティコンテキストを使用する全てのメッセージが送信されたタイミングを判定することを余儀なくされる。これは、DTLS/SCTP層とSCTP実装との間のより緊密な統合無で、完全に信頼性があるようにすることは不可能でありうる。このタイプの実装は更に、それがサポートすることができるSCTPメッセージの大きさにも暗黙の制限を有する。各SCTPメッセージは、更に別のDTLSコネクションを作成する必要がある前に、配信を完了し、以前のDTLSコネクションをクローズすることを可能にする必要がある。このため、SCTPメッセージは、このSCTPアソシエーションのための再キーイング又は再認証の間の持続時間よりも短い時間で送信が完了するよりも、大きくされることはできない。
【0075】
DTLS/SCTP実装が、SCTPスタックとより緊密に統合されるか、又はDTLS/SCTP実装が、SCPTメッセージがいつ配信されたかを知ることを可能にするより完全なAPIを有する場合、古いDTLSコネクションをよりタイムリーにクローズすることができ、それ故に、必要に応じて、より頻繁な再キーイング等をサポートする。
【0076】
受信機がデータを受信するより前に古いDTLSコネクションでDTLS close_notifyアラートを送信した結果、セクション4.1に記載の障害ケース1が発生する可能性があり、これはSCTPアソシエーションの終了につながる可能性がある。
【0077】
4.7b. 再ネゴシエーションとKeyUpdate
DTLS 1.2の再ネゴシエーションにより、DTLS 1.2コネクション内での相互再認証と同様に、DTLSの(短期(ephemeral)Diffie-Hellmanを用いた)再キーイングが可能になる。再ネゴシエーションは、DTLS 1.3から削除され、一部はKeyUpdate等のハンドシェイク後のメッセージに置き換えられている。並列DTLSコネクション・ソリューションは、相互再認証だけでなく(短期Diffie-Hellmanを用いた)再キーイング等、長寿命SCTPアソシエーションに必要と考えられる、DTLS 1.3に必要な機能が存在しないために規定された。
【0078】
本明細書では、これらのメカニズムのいずれかを使用せず、代わりに並列DTLSコネクションに依存することを推奨する。DTLS 1.3の場合、機能パリティはない。両方とも、IETF RFCを含む標準規格に従うDTLS実装は、以前のエポックのセキュリティコンテキストが維持され、それ故にエポック処理(セクション4.8)への変更が必要であるSCTPに対して、あまりに制限されたウィンドウを仮定しうるという問題を有する。したがって、ドレイニングに影響を及ぼす、以下で規定されるより多くのアプリケーションが使用されない限り、送信者が、確実に配信されたと想定されるデータを失うリスクが存在する。
【0079】
4.7b.1 DTLS 1.2の留意事項
エンドポイントは、このSCTPアソシエーションで新たな並列DTLSコネクションの確立を開始した後、既存の/古いDTLSコネクションでDTLS再ネゴシエーションを開始してはならない(MUST NOT)。エンドポイントが既存のDTLSコネクションでDTLS再ネゴシエーションを開始した後に新たなDTLSコネクション・ハンドシェイクが受信される場合、両パーティは、再ネゴシエーションを完了する必要があり、SCPT-AUTHキー識別子はn+1であるべきであり、新たなDTLSコネクションはn+2を使用すべきである。これは、最初に再ネゴシエーションを終了し、再ネゴシエーションが完了するまで新たなDTLSハンドシェイク処理を保持することによって達成されうる。
【0080】
再ネゴシエーション中にClientHelloメッセージ又はServerHelloメッセージを送信する前に、DTLSエンドポイントは、以前のエポックを使用する全てのDTLSメッセージが、取り消し不可能な方法でSCTPピアによって確認応答されていることを保証なければならない(MUST)。
【0081】
受信されたClientHelloメッセージ又はServerHelloメッセージを処理する前に、SCTP層にバッファリングされ、DTLS層に配信されうる、他の全ての受信されたSCTPユーザメッセージは、DTLSによって読み出されて処理されなければならない(MUST)。
【0082】
4.7b.2 DTLS 1.3の留意事項
KeyUpdateメッセージを送信する前に、DTLSエンドポイントは、全てのDTLSメッセージが取り消し不可能な方法でSCTPピアによって確認応答されていることを保証しなければならない。KeyUpdateメッセージの送信後、対応するAckメッセージが処理されるまでDTLSメッセージの送信を停止する。
【0083】
受信されたKeyUpdateメッセージを処理する前に、SCTP層にバッファリングされ、DTLS層に配信されうる、他の全ての受信されたSCTPユーザメッセージは、DTLSによって読み出されて処理されなければならない(MUST)。
【0084】
4.7c 動作フロー
いくつかの実施形態では、SCTPアソシエーション上で2つの並列DTLSコネクションを確立することは、以下の動作を含む:
【0085】
1. 既存のSCTP-AUTHキーによって保護された新たなDTLSハンドシェイクを開始する。
2. DTLSハンドシェイクを完了し、新たなセキュリティコンテキストを確立し、キー識別子を与えられた新たなSCTP-AUTHキーをエクスポートする。
3. 新たなDTLSコネクション及び確立されたセキュリティコンテキストの使用を開始することで、メッセージの全体又はフラグメントを上位層プロトコルから保護し、任意の新たなULPメッセージを保護するために以前のDTLSコネクションを使用することを停止する。
4. 任意の将来のSCTPパケット又はSCTPメッセージで新たなSCPT-AUTHキーの使用を開始し、任意の新たなSCTPメッセージに対して古いキーを使用しない。
5. 各エンドポイントは、全ての保護されたメッセージフラグメントとSCTPパケットとがいつ配信されたかを判定し、古いDTLSコネクションの方向をクローズする。
6. DTLSコネクションがクローズした場合、セキュリティコンテキストと、このDTLSコネクションにエクスポートされたSCTP-AUTHキーを削除する。
【0086】
図2は、いくつかの実施形態による、SCTPアソシエーション上で並列のDTLSコネクションを確立する動作を示す。本動作は、並列DTLSコネクションコーディネータ112を実装するネットワークノードによって実行されうる。ネットワークノードは、いくつかの実施形態において、第2のネットワークノードへのセキュア伝送(secure transmission)のためにユーザメッセージを符号化する、第1のネットワークノードである。
【0087】
リファレンス202において、ネットワークノードは、1つ以上のアプリケーションのためのユーザメッセージを送信するために、SCTP(ストリーム制御伝送プロトコル)アソシエーション上でDTLS(データグラムトランスポート層セキュリティ)コネクションを確立する。このDTLSコネクションは、同じSCTPアソシエーション上の2つの並列DTLSコネクションのうちの第1のDTLSコネクションであり、既存のDTLSコネクションとも称されうる。
【0088】
リファレンス204において、ネットワークノードは、ユーザメッセージを送信するSCTPアソシエーション上の既存のDTLSコネクションからの、既存のSCTP-AUTH(SCTPのための認証されたチャンク、Authenticated Chunks for SCTP)キーを使用したDTLSハンドシェイクを通じて、SCTP(ストリーム制御伝送プロトコル)アソシエーション上でDTLS(データグラムトランスポート層セキュリティ)コネクションを開始する。開始されたDTLSコネクションは、同じSCTPアソシエーション上の2つの並列DTLSコネクションのうちの第2のDTLSコネクションである。
【0089】
リファレンス206において、ネットワークノードは、開始されたDTLSコネクションから新規のSCTP-AUTHキーを導出する。オプションとしてリファレンス208において、ネットワークノードは、いくつかの実施形態において、開始されたDLTSコネクションによって保護されているが既存のSCTP-AUTHキーで認証されているユーザメッセージの更なる部分を含む、進行中のSCTPパケットを送信する。あるいは、ネットワークノードは、既存のDTLSコネクションによって保護され、かつ、既存のSCTP-AUTHキーで認証されるべきユーザメッセージの更なる部分を含む、進行中のSCTPパケットを送信してもよい。
【0090】
リファレンス210において、ネットワークノードは、新規のSCTP-AUTHキーを用いて、開始されたDTLSコネクションを通じて更なるユーザメッセージを送信する。リファレンス212において、ネットワークノードは、既存のDTLSコネクションで暗号化されたSCTPパケットと、既存のSCTP-AUTHキーによって認証されたSCTPパケットとが配信されたことを確認すると、SCTPアソシエーション上の既存のDTLSコネクションをクローズする。
【0091】
いくつかの実施形態では、SCTPアソシエーション上の既存のDTLSコネクションをクローズすることは、第1のDTLSコネクションクローズ通知を第2のネットワークノードへ送信することを含む。第1のDTLSコネクションクローズ通知は、上述のDTLS close_notifyアラートであってもよい。
【0092】
いくつかの実施形態では、SCTPアソシエーション上の既存のDTLSコネクションをクローズすることは、第2のDTLSコネクションクローズ通知を第2のネットワークノードから受信することを更に含む。
【0093】
いくつかの実施形態では、第1のDTLSコネクションクローズ通知を送信することは、第1のDTLSコネクションクローズ通知を送信する前に、既存のDTLSコネクションにおける送信データが非再現可能な方法で(in a non-renegable way)第2のネットワークノードによって確認応答されたことを確認することを含む。例えば、当該確認は、1)このDTLSコネクションのセキュリティコンテキストを使用して保護された任意のDTLSレコード又はメッセージの一部を含む、全てのSCTPパケットが、非再現可能な方法で確認応答されたこと、及び/又は、2)このDTLSコネクションのセキュリティコンテキストと関連付けられたSCTP-AUTHキーを使用する全てのSCTPパケットが、非再現可能な方法で確認応答されたこと、を確認することを含む。
【0094】
いくつかの実施形態では、既存の及び新規のSCTP-AUTHキーは、対応する既存の新規のキー識別子(ID)によって識別され、新規の識別子は、既存のキー識別子から1だけ増加させた値である。上記の例が示すように、以前の共有シークレット(shared secret)が、共有キー識別子nを使用した場合、新規のものは共有キー識別子n+1を使用する。いくつかの実施形態では、モジュロ演算が実行されてもよく、例えば、新規の共有キー識別子は、16ビット実装の場合には(n+1)mod 65535である(結果=0の場合、1に設定される;例えば、n=65534、n+1=65535、及び(n+1)mod(65535)=0の場合、それ故に新規のキーIDは1である)。キーIDが別のビット幅で実装された場合、除数も変更される。例えば、キーIDが8ビットで実装される場合、除数は255である。
【0095】
いくつかの実施形態では、DTLSコネクションは、SCTPアソシエーション上の既存のDTLSコネクションの1つ以上の証明書が失効する前に確立される。いくつかの実施形態では、DTLSハンドシェイクを通じてSCTPアソシエーション上でDTLSコネクションを開始することは、1つ以上の証明書内のタイムスタンプを含む既存のDTLSコネクションの1つ以上の証明書を維持することを含む。
【0096】
いくつかの実施形態では、第1のネットワークノードと第2のネットワークノードとの間でハンドシェイクを実行することは、ハンドシェイクを開始し、かつ、当該ハンドシェイクのイニシエーションを受信したことに応答して、第1のネットワークノードがDTLSコネクションのDTLSクライアントとして機能する場合に、開始されたハンドシェイクを継続することを含む。
【0097】
いくつかの実施形態では、既存のSCTP-AUTHキーは、既存のDTLSコネクションのクローズに応じて削除される。
【0098】
本発明の実施形態は、既存のソリューションによるキー変更時のデータドレイニングドレインフェーズ中に、DTLS/SCTPセッションにおいてデータ送信をアプリケーションが一時停止又は少なくとも遅延させる、アプリケーションの影響を回避する。DTLS保護レコードは、自己記述型であり(DTLS 1.3の機能及びDTLS 1.2の拡張)、セッションIDが有効になっている場合に共存しうるため、ドレインフェーズが回避される。更に、独立DTLSコネクション管理は、このキーを使用する全データが最初に配信されたことをそれぞれのサイドが知っている場合に、明示的な非同期クローズシグナリングを可能にし、その結果、コネクションをクローズダウンし、秘密キーマテリアルを廃棄する。したがって、並列DTLSコネクションは、再ネゴシエーションでDTLS 1.2を使用するいくつかの問題を回避する。また、DTLS 1.3を使用した場合にも、重要な機能が実現されうることが保証される。
【0099】
4.8 DTLSエポック
一般に、DTLSの実装は、以前のエポックからのレコードを破棄すべきである(SHOULD)。しかし、信頼性のある通信のコンテキストではこれは適切ではない。
【0100】
4.8.1 DTLS 1.2の留意事項
[IETF RFC 6347]のセクション4.1の手順に従うべきではない(MUST NOT)。
【0101】
その代わりに、エポックnを現在使用している場合、n>1について、エポックn-1とnからのDTLSパケットが処理されなければならない(MUST)。
【0102】
4.8.2. DTLS 1.3の留意事項
[I-D.ietf-tls-dtls13]のセクション4.2.1の手順は無関係である。エポックnを使用してDTLSパケットを受信する場合、以前のエポックからのDTLSパケットは受信されない。
【0103】
4.9. エンドポイントペア共有シークレットの処理
SCTP-AUTH[IETF RFC 4895]は、エンドポイントペア共有シークレットを使用してキーイングされる。DTLSが使用されるSCTPアソシエーションでは、これらのシークレットを確立するためにDTLSが使用される。エンドポイントは、SCTP-AUTHの共有シークレットを確立するために別のメカニズムを使用してはならない(MUST NOT)。共有キー識別子0についてのエンドポイントペア共有シークレットは空であり、第1のDTLSコネクションを確立する際に使用されなければならない(MUST)。
【0104】
イニシャルDTLSコネクションが、以下のDTLSバージョンに従って規定された新規の共有シークレットを確立するために使用され、共有キー識別子1を使用しなければならない(MUST)。DTLS Finishedメッセージを送信した後、アクティブなSCTP-AUTHキーは、新しいものに切り替えられなければならない(MUST)。ピアからのイニシャルFinishedメッセージが、DTLSによって処理されると、共有キー識別子0を有するSCTP-AUTHキーは削除されなければならない(MUST)。
【0105】
後続のDTLSコネクションがセットアップされた場合、TLS-Exporterを使用して新規の64バイトの共有シークレットが導出される。共有シークレット識別子は、シーケンスを形成する。以前の共有シークレットが共有キー識別子nを使用した場合、新規のものは共有キー識別子n+1を使用しなければならない(MUST)。
【0106】
DTLS Finishedメッセージを送信した後、アクティブなSCTP-AUTHキーは、新しいものに切り替えられなければならない(MUST)。エンドポイントが、古いDTLSコネクションでcloseNotifyの送信及び受信の両方を行った場合、エンドポイントは、古いDTLSコネクションに関連する(1つ以上の)共有シークレットを削除する必要がある。
【0107】
4.9.1. DTLS 1.2の留意事項
マスターシークレットが変更されるごとに、即ち、DTLS再ネゴシエーション又は新たなDTLSコネクションの確立のいずれかに起因して、64バイトの共有シークレットが、全てのマスターシークレットから導出され、[IETF RFC 5705]に記載のされているTLSエクスポータ(TLS-Exporter)を使用することによって、新たなエンドポイントペア共有シークレットとして提供される。
【0108】
64バイトの共有シークレットは、演算が可能であればすぐにSCTPスタックに提供されなければならない(MUST)。エクスポータは、セクション7で与えられたラベルを使用し、かつ、コンテキストを使用してはならない(MUST)。共有キー識別子は、再ネゴシエーションに起因したエポック変更に対してもn+1となるように、上記に従って選択される。
【0109】
m>2のDTLSエポックmを使用するFinishedメッセージがDTLSによって処理されると、このDTLSコネクションとエポックm-2のための共有キー識別子を有するSCTP-AUTHキーは削除されなければならない。
【0110】
DTLSコネクションがクローズし、かつ、それが再ネゴシエーションを使用する場合、新たなDTLSコネクションがn+1を作成したとき、未削除の全ての共有キーが削除されなければならず(MUST)、これは、nとn-1であるべきである。
【0111】
4.9.2. DTLS 1.3の留意事項
exporter_secretが演算されうる場合、64 バイトの共有シークレットがそれから導出され、[IETF RFC 8446]に記載のTLSエクスポータを使用することによって新たなエンドポイントペア共有シークレットとして提供される。64バイトの共有シークレットは、演算が可能であればすぐにSCTPスタックに提供されなければならない(MUST)。エクスポータは、セクション7で与えられたラベルを使用し、かつ、コンテキストを使用してはならない(MUST)。
【0112】
4.10. シャットダウン
DTLSが、シャットダウン中にDTLSユーザメッセージを破棄しないようにするために、CloseNotifyメッセージは、全ての未処理のSCTPユーザメッセージが取り消し不可能な方法でSCTPピアによって確認応答された後にのみ送信されなければならない(MUST)。
【0113】
受信されたCloseNotifyを処理する前に、SCTP層にバッファリングされている他の全ての受信されたSCTPユーザメッセージは、DTLSによって読み出されて処理されなければならない(MUST)。
【0114】
5. DTLS over SCTPサービス
現在の記述に従ってDTLS over SCTPを採用することは、暗号化されたデータを転送するためのオプションをSCTPに追加することを意味する。
【0115】
DTLS over SCTPが使用される場合、転送される全てのデータはチャンク認証とDTLS暗号化によって保護されなければならない(MUST)。認証された方法で受信される必要があるチャンクは、[IETF RFC 4895]に従ってCHUNKリストパラメータで規定される。認証されたチャンクのエラー処理は、[IETF RFC 4895]に従う。
【0116】
5.1. INIT/INIT-ACKにおけるアダプテーション層インジケーション
アソシエーションの初期化時に、この明細書において規定されたDTLS/SCTPを使用しようとするINIT又はINIT ACKチャンクの送信者は、この明細書に従ってDTLS over SCTPをサポートできることをピアに知らせなけれるために、IANA割り当て値TBD(セクション7.2)を有するアダプテーション層インジケーションパラメータ(Adaptation Layer Indication Parameter)を含めなければならない(MUST)。
【0117】
5.2. DTLS over SCTPの初期化
図3は、本開示のいくつかの実施形態による、第1のノードと第2のノードとの間のシグナリングダイアグラム300を示す。ダイアグラム300は、第1のノード(ネットワークノード1)310と第2のノード(ネットワークノード2)320との間の初期化を示す。ネットワークノード1及びネットワークノード2は、通信ネットワーク内のノード等の、互いに通信する任意のタイプのノードでありうる。
【0118】
DTLS/SCTPの初期化は、INIT/INIT-ACKハンドシェイクの一部として、以下の全てのオプションを必要とする:
‐RANDOM: [IETF RFC 4895]で定義されている
‐CHUNKS: [IETF RFC 4895]で定義されている、許可されたチャンクのリスト
‐HMAC-ALGO: [IETF RFC 4895]で定義されている
‐ADAPTATION-LAYER-INDICATION: [IETF RFC 5061]で定義されている
【0119】
上記の全てのオプションが存在する場合、アソシエーションは、DTLS/SCTPのサポートから開始する。示されているオプションのセットは、DTLS/SCTP必須オプションである。DTLSハンドシェイクが完了する前にはデータ転送は許可されない。チャンクバンドリングは、[[IETF RFC 4960]に従って許可される。DTLSハンドシェイクは、両方のピアの認証を可能にするとともに、更に、それらのサポートメッセージサイズを宣言する。
【0120】
他のオプション又は代替技術が実装されうることが理解されるべきである。上記のオプションが存在する場合、アソシエーションは、ノード320がシグナリングを開始することから始まる。INIT S301におけるDTLSサポートインジケーション(又は同様の代替のもの)は、ノード320が拡張DTLS/SCTPをサポートすることをノード310に通知する。いくつかの実施形態では、DTLSサポートインジケーションは、DTLS/SCTP機能を示す値を有するアダプテーション層インジケーション(Adaptation-Layer-Indication)である。DTLSハンドシェイクが完了する前にはデータ転送は許可されない。DTLSハンドシェイクの前に受信されたデータチャンクは、サイレントに破棄されうる。チャンクバンドリングは、IETF RFC 4960に従って許可される。DTLSハンドシェイクは、両方のピアの認証を可能にするとともに、それらのサポートされるメッセージサイズも有する。
【0121】
SCTPクライアントノード320がアソシエーションS301を開始すると、DTLS-Supportedインジケーションは、クライアントが拡張DTLS/SCTPオプションをサポートしていることをノード310にシグナリングし、、DTLS-Supportedは更に、それが受信することができるメッセージのサイズ、又は代替的には、それが受信することができるDTLSフラグメントの数をインジケーションしうる。種々のファクタによって、受信できるメッセージサイズ又はフラグメントの数が制限されうる。それに応じて、サーバノード310は、拡張DTLS/SCTPオプションも含むINIT-ACK S302を送信することで、ノード310が、拡張が可能であり、かつ、単一のDTLSセグメントのみのレガシー使用に格下げされないことを示す。いくつかの実施形態では、DTLS-Supportedは、拡張DTLS/SCTPを実装する能力に関連する情報のみを含みうる。その場合、メッセージ/フラグメントサイズに関する情報は、後述するように、後のハンドシェイク信号において交換されうる。DTLS-Supportedシグナリングは、2つのノード間の転送のための他の情報も同様に含みうる。
【0122】
ノード320は、拡張DTLS/SCTPオプションも含むINIT-ACK S302を送信することで、ノード310が、拡張が可能であり、かつ、単一のDTLSセグメントのみのレガシー使用に格下げされないことを示しうる。「オプション」との用語は、いくつかの実施形態ではレガシー技術又は拡張技術を使用するオプションが存在するインスタンスを指す。いくつかの実施形態では、拡張技術は必須要件とされうる。ノード310が、拡張DTLS/SCTPオプションを含まないINIT-ACKで応答する場合、ノード320は、レガシーIETF RFC 6083(例えば、単一DTLS)で動作し続けること、プレーンデータのみで動作し続けること、又はアソシエーションを中止することを決定しうる。
【0123】
ノード310(例えば、SCTPサーバ)は、拡張DTLS/SCTPをサポートする場合、DTLS/SCTPオプションを有するINITシグナリングS301を受信すると、拡張DTLS/SCTPオプションも含むINIT-ACKシグナリングS302で応答することで、ノード310が拡張DTLS/SCTPを送信できることを示しうる。ノード310は、DTLS初期化のためのシーケンス及び関連するトラフィックケースに従いうる。SCTP COOKIE-ECHO S303及びCOOKIE-ACK S304シグナリングの転送後、ノード320は、DTLSハンドシェイクS305を送信することで、DTLS転送を開始する。それに応じて、ノード310は、S306において、ノード320によってインジケーションされたサイズ制限に基づいて、拡張DTLS/SCTPでメッセージを送信する。
【0124】
上記のように、いくつかの実施形態では、ノード320が受信することができるメッセージサイズ又はフラグメントの数のシグナリングが、S301においてDTLS-Supportedインジケーションとともに含まれうる。しかしながら、いくつかの実施形態では、この情報は、DTLS-Supportedに代えて、DTLSハンドシェイクS305のイニシエーション中に送信されうる。更に、他の実施形態は、他のシグナリングにおいてこの情報を提供しうる。
【0125】
5.3 クライアントユースケース
クライアントがDTLS保護を伴うSCTPアソシエーション、即ち、DTSL/SCTP必須オプションを含むSCTP INITを開始する場合、クライアントはDTLS/SCTP必須オプションも含むINIT-ACKを受信することができ、その場合、アソシエーションは前のセクション5.2で規定されるように進む。ピアが、全てのDTLS/SCTP必須オプションを含まないINIT-ACKで応答する場合、クライアントは、SCTP ABORTで応答するべきである(SHOULD)。
【0126】
5.4. サーバのユースケース
SCTPサーバがDTLS/SCTPをサポートする場合、即ち、この明細書によれば、全てのDTLS/SCTP必須オプションを有するINITチャンクを受信するとき、DTLS初期化セクション5.2のシーケンス及び関連するトラフィックケースに続いて、全てのDTLS/SCTP必須オプションも含むINIT-ACKで応答する。DTLSをサポートし、かつ、それを使用するように構成されたSCTPサーバが、全てのDTLS/SCTP必須オプション無しのINITチャンクを受信する場合、SCTP ABORTで応答するべきである(SHOULD)。
【0127】
5.5 IETF RFC 6083フォールバック
このセクションでは、この明細書をサポートするエンドポイントが、IETF RFC 6083のDTLS/SCTP動作にフォールバックする方法について説明する。フォールバックを許可するか否かを示す設定を定義することが推奨される。しかしながら、フォールバックを使用する可能性は、ULPが16384バイト以下のユーザメッセージを使用して動作することができ、セキュリティ問題が緩和されうるか又は許容可能と見なされうることに基づく。
【0128】
considered acceptable.フォールバックは、DTLSのより弱いアルゴリズム及びバージョンへのダウングレードを可能にするため、有効にすることが推奨されない(NOT RECOMMENDED)。
【0129】
DTLS/SCTPアダプテーション層コードポイントを有するSCTPアダプテーションインジケーションパラメータを含まないINITチャンク又はINIT-ACKチャンクを受信するSCTPエンドポイント(セクション7.2を参照)は、あるケースでは、IETF RFC 6083の挙動へのフォールバックを潜在的に実行しうる。ただし、フォールバックの試行は、ポリシーがそれを受け入れ可能であると述べている場合にのみ実行される必要がある。
【0130】
フォールバックが許可される場合、クライアントは、IETF RFC 6083に従って許可されるように、DTLSハンドシェイクの前にプレーンテキストユーザメッセージを送信することが可能である。そのため、それは、フォールバックを許可するポリシーの留意事項の一部とされる必要がある。
【0131】
6. ソケットAPIの留意事項
このセクションでは、[IETF RFC6458]で定義されたソケットAPIを、AUTHチャンクの送受信に使用されるHMACアルゴリズムをアプリケーションが観察する方法を提供するためにどのように拡張するかについて説明する。
【0132】
このセクションは、情報提供のみを目的としている。
【0133】
[IETF RFC 6458]に基づくソケットAPI実装は、既存のSCTP_AUTHENTICATION_EVENTイベントによって、受信されたAUTHチャンクにおいて新たなHMACアルゴリズムが使用される場合にはいつでもイベント通知を提供するように拡張される。
【0134】
更に、レベルIPPROTO_SCTPと、名称SCTP_SEND_HMAC_IDENT及びSCTP_EXPOSE_HMAC_IDENT_CHANGESとのための2つの新たなソケットオプションが、以下で説明されるように定義される。第1のソケットオプションは、AUTHチャンクを送信するために使用されるHMACアルゴリズムを問い合わせるために使用される。第2のソケットオプションは、SCTP_AUTHENTICATION_EVENTイベントを介して受信されたAUTH チャンクで使用されるHMACアルゴリズムのモニタリングを有効にする。
【0135】
SCTP_SEND_HMAC_IDENT及びSCTP_EXPOSE_HMAC_IDENT_CHANGESソケットオプションのサポートも、関数sctp_opt_info()に追加される必要がある。
【0136】
6.1. 送信されるHMAC識別子を取得するソケットオプション(SCTP_SEND_HMAC_IDENT)
SCTPアソシエーション確立中に、AUTHチャンクを送信する場合にSCTPエンドポイントによって使用されるHMAC識別子が選択される。
【0137】
アプリケーションは、レベルIPPROTO_SCTP及び名称SCTP_SEND_HMAC_IDENT.Devicesを使用する、この読み出し専用のソケットオプションを使用することによって、この選択の結果にアクセスできる。
【0138】
以下の構成は、AUTHチャンクを送信するために使用されるHMAC識別子にアクセスするために使用される:
struct sctp_assoc_value {
sctp_assoc_t assoc_id;
uint32_t assoc_value;
};
【0139】
assoc_id: このパラメータは、1対1スタイルのソケットでは無視される。
【0140】
1対多スタイルのソケットの場合、アプリケーションは、アソシエーション識別子を入力する。assoc_idにおいてSCTP_{FUTURE|CURRENT|ALL}_ASSOCを使用することは誤りである。
【0141】
assoc_value: このパラメータは、AUTHチャンクを送信するために使用されるHMAC識別子を含む。
【0142】
6.2. 受信されるHMAC識別子の公開
[IETF RFC 6458]のセクション6.1.8は、SCTP_AUTHENTICATION_EVENTイベントを定義し、これは以下の構造を使用する:
struct sctp_authkey_event {
uint16_t auth_type;
uint16_t auth_flags;
uint32_t auth_length;
uint16_t auth_keynumber;
uint32_t auth_indication;
sctp_assoc_t auth_assoc_id;
};
【0143】
本明細書は、
struct sctp_authkey_event {
uint16_t auth_type;
uint16_t auth_flags;
uint32_t auth_length;
uint16_t auth_identifier; /* 以前のauth_keynumber */
uint32_t auth_indication;
sctp_assoc_t auth_assoc_id;
};
に対して、auth_keynumberをauth_identifierに名称変更することによって、この構造を更新する。auth_keynumberをauth_identifierに名称変更すると、auth_identifierは、単に[IETF RFC 6458]のコンテキストでauth_keynumberを置き換える。それに加えて、SCTP_AUTHENTICATION_EVENTイベントは更に、新たなHMAC識別子がいつ受信されるかを示すように拡張され、そのような報告は、セクション6.3に記載のように明示的に有効化される。この場合、auth_indicationは、SCTP_AUTH_NEW_HMACであり、新たなHMAC識別子はauth_identifierで報告される。
【0144】
6.3. HMAC識別子の使用を公開するソケットオプション(SCTP_EXPOSE_HMAC_IDENT_CHANGES)
このオプションを使用すると、アプリケーションが、AUTHチャンクで新たなHMAC 識別子を受信された場合に、SCTP_AUTHENTICATION_EVENTイベントの受信を有効化又は無効化することが可能になる(セクション6.2を参照)。
【0145】
この読み書きソケットオプションは、レベルIPPROTO_SCTPと名称SCTP_EXPOSE_HMAC_IDENT_CHANGESとを使用する。後方互換性を提供する必要があり、デフォルトではこれらのイベントは報告されない。
【0146】
以下の構造は、AUTHチャンクで新たに受信されたHMAC識別子の報告を有効化又は無効化するために使用される:
struct sctp_assoc_value {
sctp_assoc_t assoc_id;
uint32_t assoc_value;
};
【0147】
assoc_id: このパラメータは、1対1スタイルのソケットに対して無視される。
【0148】
1対多スタイルソケットの場合、アプリケーションは、アソシエーション識別子又はSCTP_{FUTURE|CURRENT|ALL}_ASSOCを入力しうる。
【0149】
assoc_value: 新たに受信したHMAC識別子は、このパラメータがゼロ以外の場合に、及びその場合にのみ報告される。
【0150】
7. IANAの留意事項
7.1. TLSエクスポータラベル
IETF RFC 6083は、[IETF RFC 5705]に記載のようにTLSエクスポータラベルレジストリを定義した。IANAは、この仕様へのラベル「EXPORTER_DTLS_OVER_SCTP」のリファレンスを更新するように要求される。
【0151】
7.2. SCTPアダプテーション層インジケーションコードポイント
[IETF RFC 5061]は、アダプテーション層インジケーションパラメータで使用されるアダプテーションコードポイントのためのIANAレジストリを定義した。
【0152】
8. セキュリティの留意事項
[I-D.ietf-tls-dtls13]、[IETF RFC 4895]、及びIETF RFC 4960]において与えられているセキュリティの留意事項も、この文書に適用される。
【0153】
8.1. 暗号化の留意事項
長年にわたって、最も一般的に使用される暗号及び動作のモードに対する攻撃を含む、トランスポート層セキュリティ(TLS)の以前のバージョンに対するいくつかの深刻な攻撃があった。[IETF RFC 7457]は、公開時に知られていた攻撃を要約し、BCP 195[IETF RFC 7525][IETF RFC 8996]は、TLSを使用する、展開されたサービスのセキュリティを改善するための推奨事項を提供する。
【0154】
DTLS 1.2[IETF RFC 6347]でDTLS/SCTPが使用される場合、DTLS 1.2は、不十分なセキュリティを提供することが知られているオプションを無効にするように構成されなければならない(MUST)。
【0155】
HTTP/2[IETF RFC 7540]は、2015年に公に知られた攻撃に基づいて、良好な最低限の要件を与えている。DTLS 1.3[I-D.ietf-tls-dtls13]は、公開時に主要な弱点を有しない強力なアルゴリズムを定義するのみである。TLSレジストの多くは、「推奨された」列(column)を有する。
【0156】
「Y」とマークされていないパラメータは、サポートすることが推奨されない(NOT RECOMMENDED)。DTLS 1.3は、既知の脆弱性に対処し、かつ、公開時に既知の主要な弱点を有しない強力なアルゴリズムのみを定義する、より新しいプロトコルであることが好ましい。
【0157】
DTLS 1.3は、アルゴリズム固有のAEAD限界に達する前に、再キーイングを必要とする。AEAD限界式は、DTLS 1.2に対しても等しく有効であり、DTLS/SCTPに対しては従うべきであるが(SHOULD)、DTLS 1.2仕様によって必須とされていない。
【0158】
SCTP-AUTHで使用されるHMAC-SHA-256は、非常に大きいタグ長及び非常に良好な完全性特性を有する。SCTP-AUTHキーは、TLSレコード層の現在のアルゴリズムよりも長く使用されうる。SCTP-AUTHキーは、TLSエクスポータを使用して新たなSCTP-AUTHキーが導出される時点で新たなコネクションがセットアップされる場合に、再キーイングされる。
【0159】
DTLS/SCTPは、IPsecに代わって多くの導入が進んでいる。IPsecについては、NIST(US)、BSI(ドイツ)、及びANSSI(フランス)は、Diffie-Hellmanを頻繁に再実行することで、完全前方秘匿性(Perfect Forward Secrecy)を提供し、かつ、攻撃者に動的キー抽出を強制することを推奨している。ANSSIは、「キー漏洩の影響を抑えるために、キーの定期的な更新(例えば、1時間ごと、及び100GBのデータごと)を強制することが推奨される。」と記述している[ANSSI-DAT-NT-003]。
【0160】
多くのDTLS/SCTP展開では、DTLSコネクションは数ヶ月又は数年の非常に長い存続期間を有することが期待される。そのような長い存続期間を有するコネクションについては、クライアントとサーバとの両方を頻繁に再認証する必要がある。TLS証明書の存続期間は、1年未満が一般的であるが、これは多くの予想されるDTLS/SCTPアソシエーションよりも短い。
【0161】
SCTP-AUTHの再キーイング、両方のエンドポイントの定期的な認証、及び攻撃者に動的キー抽出を強制するためのDiffie-Hellmanの頻繁な再実行は、同じSCTPアソシエーション上で新たなDTLSコネクションをセットアップすることによって達成される、本明細書によるDTLS/SCTPにおけるものである。実装は、攻撃者に動的キー抽出を強制するために、頻繁に新たなコネクションをセットアップすべきである(SHOULD)。実装は、証明書のいずれかが失効する前に新たなコネクションをセットアップしなければならない(MUST)。証明書が新しい場合、当該証明書におけるタイムスタンプを除き、ネゴシエーション及び交換された全てのパラメータは同じであることが推奨される(RECOMMENDED)。いくつかのパラメータは、典型的には、乱数及びコネクションid等、新たなハンドシェイクにおいて変更されることに留意されたい。一部のパラメータは、典型的には、シリアル番号等、新たな証明書で変更されることに留意されたい。クライアントとサーバは、新たなコネクションのセットアップ中にアイデンティティの変更を受け入れてはならないが(MUST NOT)、より強力なアルゴリズム及びセキュリティパラメータのネゴシエーションを受け入れてもよく(MAY)、これは新たな攻撃によって動機づけられうる。
【0162】
DTLS 1.2[IETF RFC 6347]を使用する場合、AEAD限界、頻繁な再認証、及びDiffie-Hellmanの頻繁な再実行も、再ネゴシエーションで実現されうる(TLS 1.2[IETF RFC 5246]を参照)。再ネゴシエーションが使用される場合、クライアントとサーバの両方は、再ネゴシエーション情報(renegotiation_info)拡張[IETF RFC 5746]を使用しなければならず(MUST)、BCP 195[IETF RFC 7525]の再ネゴシエーションガイドラインに従わなければならない(MUST)。特に、クライアントとサーバの両方は、再ネゴシエーション中にアイデンティティの変更を受け入れてはならない(MUST NOT)。多くのDTLS実装では、デフォルトで再ネゴシエーションは無効化されている。再ネゴシエーションがexporter_secretを更新する間に、本明細書によるDTLS/SCTPは、新たなコネクションがセットアップされた場合に新たなSCTP-AUTHキーを導出するだけである。
【0163】
DTLS 1.3では、再ネゴシエーションは、DTLS 1.3から削除され、一部はPost-Handshake KeyUpdate(ハンドシェイク後のKeyUpdate)に置き換えられた。DTLS 1.3 [I-D.ietf-tls-dtls13]を使用する場合、AEAD限界(AEAD limits)は、頻繁なハンドシェイク後のKeyUpdateメッセージを送信することによっても実現できる。
【0164】
対称再キーイングは、Diffie-Hellmanを再実行するよりも、キー漏洩に対する保護が大幅に低くなる。application_traffic_secret_Nの漏洩後、パッシブ攻撃者は、
【0165】
application_traffic_secret_N+1、application_traffic_secret_N+2等で暗号化されたアプリケーションデータを含む、コネクション上で送信された全ての将来のアプリケーションデータをパッシブに傍受しうる。
【0166】
KeyUpdateはexporter_secretを更新しないことに留意されたい。
【0167】
クライアントが開始した再ネゴシエーション及びクライアントが開始した新しいコネクションを許可することで、サービス拒否攻撃を有効にすることができる。サーバは、クライアントが開始した再ネゴシエーションと新たなコネクションの頻度を制限する必要がある。
【0168】
DTLS 1.2[IETF RFC 6347]でDTLS/SCTPが使用される場合、攻撃者が複数のコネクションで同じキーを確立する未知のキー共有攻撃を防ぐために、TLSセッションハッシュと拡張マスターシークレット拡張[IETF RFC 7627]とが使用されなければならない(MUST)。DTLS 1.3は、常にこれらの種類の攻撃を防ぐ。SCTP-AUTHの使用により、新たなコネクションが古いコネクションに暗号でバインドされる。これは、(DTLS層上の)強制的な相互認証と、新たなアイデンティティを受け入れないという要件と共に、再ネゴシエーション[3SHAKE]が悩まされたMITM攻撃を軽減する。
【0169】
8.2. ダウングレード攻撃
本明細書によるDTLS/SCTP、[IETF RFC 6083]によるDTLS/SCTP、及び/又はDTLS無しのSCTPをサポートするピアは、オンパス攻撃者がセキュリティを低下又は無効化するためにプロトコルセットアップに干渉するダウングレード攻撃に対して脆弱である可能性がある。可能な場合には、ピアは、本明細書によるDTLS/SCTPのみを許可するポリシーを有することが推奨される(RECOMMENDED)。
【0170】
8.3. 認証及びポリシーの決定
DTLS/SCTPは、相互に認証されなければならない(MUST)。DTLS/SCTPが証明書ベースの認証で使用されることが推奨される(RECOMMENDED)。全てのセキュリティ決定は、そのトランスポート層アイデンティティではなく、ピアの認証されたアイデンティティに基づいていなければならない(MUST)。
【0171】
証明書におけるIP アドレスに基づいてDTLS エンドポイントを認証することが可能である。SCTPアソシエーションは、SCTP エンドポイントごとに複数のIPアドレスを使用できる。したがって、DTLSレコードは、最初に認証されたものとは異なる、送信元IPアドレスから、又は異なる宛先IPアドレスへ、送信される可能性がある。これは、送信元IPアドレス又は宛先IPアドレスに基づいてセキュリティ決定が行われない限り、問題にはならない。
【0172】
8.4. プライバシーの留意事項
[IETF RFC 6973]は、IETFプロトコルのプライバシーに関する留意事項を文書化することを提案している。
【0173】
各SCTPユーザメッセージについて、ユーザは、ストリーム識別子、メッセージが順序付けられているか順序付けられていないかを示すフラグ、及びペイロードプロトコル識別子も提供する。DTLS/SCTPは実際のユーザメッセージに対してプライバシーを提供するが、他の3つの情報フィールドは機密性保護がなされない。これらは、SCTP DATAチャンクヘッダの一部であるため、クリアテキストとして送信される。
【0174】
DTLS/SCTPは、アイデンティティ保護を提供するために、DTLS 1.3[I-D.ietf-tls-dtls13]における証明書ベースの認証とともに使用されることが推奨される(RECOMMENDED)。DTLS/SCTPは、完全前方秘匿性を提供するキー交換方法とともに使用されなければならない(MUST)。完全前方秘匿性は、キー漏洩に起因して漏洩されうるデータの量を大幅に制限する。
【0175】
8.5. パーベイシブ・モニタリング(Pervasive Monitoring)
[IETF RFC 7258]で要求されているように、IETFプロトコルに関する作業は、パーベイシブ・モニタリングの影響を考慮し、かつ、可能な場合にはそれらを軽減する必要がある。
【0176】
パーベイシブ・モニタリングは、ユーザの広範な監視である。ユーザアイデンティティを含む、より多くの情報を暗号化することにより、DTLS 1.3は、広範なモニタリングに対してはるかに優れた保護を提供する。
【0177】
前方秘匿性なしのキー交換に依存する大規模パーベイシブ・モニタリング攻撃が報告されている。完全前方秘匿性を必須にすることによって、DTLS/SCTPは、多くの形態のパッシブ・パーベイシブ・モニタリングを効果的に軽減し、キー漏洩に起因して漏洩するデータの量を制限する。
【0178】
パーベイシブ・モニタリングの重要な軽減は、静的キー抽出に代えて動的キー抽出の実行を強制することである。動的キー抽出は、攻撃者の発見のリスクを増加させる[IETF RFC 7624]。本明細書によるDTLS/SCTPは、動的キー抽出を攻撃者に強制するために、同じSCTPアソシエーション上で新たなDTLSコネクションを頻繁にセットアップすることを、実装に奨励する。
【0179】
上述のプライバシー攻撃に加えて、大規模な監視は、より広い地理的エリアで、及び異なるアクセスネットワークにわたって、ユーザの追跡を可能にしうる。DTLS/SCTPからの情報を、他のプロトコルから収集された情報とともに使用することにより、個々のユーザを識別するリスクが増加する。
【0180】
9. 本発明の実施形態の実装
図4は、いくつかの実施形態による、SCTPアソシエーション上で並列のDTLSコネクションを実装するネットワークノードを示す。ネットワークノード402は、プロセッサ及び専用オペレーティングシステム(OS)、又はコモン・オフ・ザ・シェルフ(COTS:common off-the-shelf)プロセッサ及び標準OSとして、カスタム特定用途向け集積回路(ASIC)を使用して実装されうる。
【0181】
ネットワークノード402は、(典型的にはCOTSプロセッサ又はプロセッサコア又はASICである)1つ以上のプロセッサ442及び物理NI446のセットを備えるハードウェア440と、内部に格納されたソフトウェア450を有する非一時的なマシン読取可能記憶媒体449とを含む。動作中、1つ以上のプロセッサ442は、ソフトウェア450を実行することで、1つ以上のアプリケーション464A~Rのうちの1つ以上のセットをインスタンス化しうる。一実施形態は仮想化を実装しないが、代替の実施形態は異なる形態の仮想化を使用しうる。例えば、1つのそのような代替の実施形態では、仮想化レイヤ454は、アプリケーション464A~Rのセットのうちの1つ(又は複数)を実行するためにそれぞれ使用されうるソフトウェアコンテナと称される複数のインスタンス462A~Rの作成を可能にする、オペレーティングシステム(又は基本オペレーティングシステム上で実行されるシム)のカーネルを表す。複数のソフトウェアコンテナ(仮想化エンジン、仮想プライベートサーバ、又はジェイルとも称される)は、オペレーティングシステムが実行されるカーネルスペースとは別個の、ユーザスペース(典型的には仮想メモリスペース)である。所与のユーザ空間で実行されているアプリケーションのセットは、明示的に許可されていない限り、他のプロセスのメモリにアクセスできない。別のそのような代替の実施形態では、仮想化レイヤ454は、ハイパーバイザ(仮想マシンモニタ(VMM)と称されることもある)又はホストオペレーティングシステムの上で実行されるハイパーバイザを表し、アプリケーション464A~Rのセットの各々は、ハイパーバイザの上で実行される仮想マシン462A~Rと称されるインスタンス内のゲストオペレーティングシステムの上で実行され(場合によってはソフトウェアコンテナの厳密に隔離された形態とみなされうる)‐ ゲストオペレーティングシステム及びアプリケーションは、「ベアメタル」ホスト電子デバイス上で実行されるのとは対照的に、仮想マシン上で実行されることを知らない可能性があり、または、準仮想化によって、オペレーティングシステム及び/又はアプリケーションは、最適化の目的で仮想化の存在を認識する可能性がある。更に他の代替の実施形態では、アプリケーションのうちの1つ、一部又は全部は、(1つ以上の)ユニカーネルとして実装され、ユニカーネルは、アプリケーションによって必要とされる特定のOSサービスを提供する(例えば、OSサービスのドライバ/ライブラリを含むライブラリオペレーティングシステム(LibOS)からの)限られたライブラリのセットのみを用いてアプリケーションを直接コンパイルすることによって生成されうる。ユニカーネルは、ハードウェア440上で直接、ハイパーバイザ上で直接(この場合、ユニカーネルは時にはLibOS仮想マシン内で実行されるものとして説明される)、又はソフトウェアコンテナ内で実行されるように実装されうるため、実施形態は、仮想化レイヤ454によって表されるハイパーバイザ上で直接実行されるユニカーネル、インスタンス462A~Rによって表されるソフトウェアコンテナ内で実行されるユニカーネル、ま又はユニカーネルと上述の技術の組み合わせとして(例えば、ユニカーネルと仮想マシンの両方がハイパーバイザ上で直接実行される、ユニカーネル、及び異なるソフトウェアコンテナ内で実行されるアプリケーションのセット)、完全に実装されうる。
【0182】
ソフトウェア450は、本明細書で上述した動作を実行する、並列DTLSコネクションコーディネータ112を含む。並列DTLSコネクション続コーディネータ112は、アプリケーション464A~R内にインスタンス化されうる。1つ以上のアプリケーション464A~Rののうちの1つ以上のセットのインスタンス化、及び実装される場合の仮想化は、まとめて(1つ以上の)ソフトウェアインスタンス452と称される。アプリケーション464A~Rの各セット、実装される場合の対応する仮想化構築物(例えば、インスタンス462A~R)、及びそれらを実行するハードウェア440のその部分(時間的に共有されるハードウェアのその実行及び/又は時間スライスに専用のハードウェアである)は、別個の仮想電子デバイス460A~Rを形成する。
【0183】
ネットワークインタフェース(NI)は、物理的又は仮想的でありうる。IPのコンテキストでは、インタフェースアドレスは、NIに割り当てられたIPアドレスであり、物理NI又は仮想NIである。仮想NIは、物理NIと関連付けられるか、別の仮想インタフェースと関連付けられるか、又はそれ自体(例えば、ループバックインタフェース、ポイントツーポイントプロトコルインタフェース)上にありうる。NI(物理的又は仮想的)は、ナンバリングされていてもよいし(IPアドレスを有するNI)、ナンバリングされていなくてもよい(IPアドレスを有しないNI)。
【0184】
用語
一般に、本明細書で使用される全ての用語は、異なる意味が明確に与えられ、及び/又は、それが使用される文脈から暗示されない限り、関連する技術分野におけるそれらの通常の意味に従って解釈されるべきである。エレメント、装置、コンポーネント、手段、ステップ等へのあらゆる言及は、特に明記しない限り、エレメント、装置、コンポーネント、手段、ステップ等の少なくとも1つのインスタンスを指すものとしてオープンに解釈されるべきである。本明細書に開示される任意の方法のステップは、ステップが別のステップの後又は前として明示的に説明されている場合、及び/又はステップが別のステップの後又は前になければならないことが黙示的でる場合を除き、開示される正確な順序で実行される必要はない。本明細書に開示される実施形態のいずれかの任意の特徴は、適切な場合には、任意の他の実施形態に適用されてもよい。同様に、任意の実施形態の任意の利点は、任意の他の実施形態に適用されることができ、その逆も同様である。包含される実施形態の他の目的、特徴、及び利点は、以下の説明から明らかになる。
【0185】
本明細書において、「一実施形態」、「実施形態」、「例示的な実施形態」等への言及は、記載される実施形態が特定の特徴、構造、又は特性を含みうることを示すが、全ての実施形態が必ずしも当該特定の特徴、構造、又は特性を含まなくてもよい。更に、そのようなフレーズは、必ずしも同じ実施形態を参照するものではない。更に、特定の特徴、構造、又は特性が実施形態に関連して説明される場合、明示的に説明されているか否かにかかわらず、他の実施形態に関連してそのような特徴、構造、又は特性に影響を及ぼすことは、当業者の知識の範囲内であると言える。
【0186】
本明細書及び特許請求の範囲は、「結合された(coupled)」及び「接続された(connected)」との用語を、それらの派生語とともに使用することがある。これらの用語は、互いに同義語としては意図されていない。「結合された」は、2つ以上の要素が互いに協働又は相互作用することを示すために使用され、これらは互いに直接物理的又は電気的に接触していてもいなくてもよい。「接続された」は、互いに結合された2つ以上の要素間の無線又は有線通信の確立を示すために使用される。本明細書で使用される「セット」は、1つの項目を含む任意の正の整数の項目を指す。
【0187】
電子デバイスは、マシン読取可能記憶媒体(例えば、磁気ディスク、光ディスク、ソリッドステートドライブ、リードオンリーメモリ(ROM)、フラッシュメモリデバイス、相変化メモリ)、及び(キャリアとも称される)マシン読取可能伝送媒体(例えば、電気、光、無線、音響、又は搬送波、赤外線信号等の他の形態の伝搬信号)等のマシン読取可能媒体(コンピュータ読取可能媒体とも呼ばれる)を使用して、(ソフトウェア命令から構成され、コンピュータプログラムコード又はコンピュータプログラムと称されうる)コード及び/又はデータを(内部的に、及び/又はネットワークを介して他の電子デバイスとともに)記憶及び送信する。このため、電子デバイス(例えば、コンピュータ)は、プロセッサのセット上で実行するためのコードを記憶する、及び/又はデータを記憶するための1つ以上のマシン読取可能記憶媒体に結合された、1つ以上のプロセッサのセット(例えば、そのうちの1つが、マイクロプロセッサ、コントローラ、マイクロコントローラ、中央演算処理装置、デジタルシグナルプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、他の電子回路、又は先行のもののうちの1つ以上の組み合わせである)等の、ハードウェア及びソフトウェアを含む。例えば、電子デバイスは、コードを含む不揮発性メモリを含み、これは、電子デバイスが(電源が取り除かれたときに)オフにされた場合であっても不揮発性メモリがコード/データを持続することができるためである。電子デバイスがオンにされると、電子デバイスの(1つ以上の)プロセッサによって実行されるコードのその部分は、典型的には、より遅い不揮発性メモリから電子デバイスの揮発性メモリ(例えば、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM))にコピーされる。典型的な電子デバイスは更に、他の電子デバイスとの(伝搬信号を使用してコード及び/又はデータを送信及び/又は受信するための)ネットワークコネクションを確立するための、1つ以上の物理ネットワークインタフェース(NI)のセットを含む。例えば、物理NIのセット(又はコードを実行するプロセッサのセットと組み合わせた物理NIのセット)は、電子デバイスが有線及び/又は無線コネクション上でデータを送信及び受信することを可能にするために、任意のフォーマット、コーディング、又は変換を実行しうる。いくつかの実施形態では、物理NIは、(1)無線コネクション上で他の電子デバイスからデータを受信すること、及び/又は(2)無線コネクションを通じて他のデバイスにデータを送信すること、を行うことが可能な無線回路を含みうる。この無線回路は、無線周波数通信に適した(1つ以上の)送信機、(1つ以上の)受信機、及び/又は(1つ以上の)トランシーバを含みうる。無線回路は、デジタルデータを、適切なパラメータ(例えば、周波数、タイミング、チャネル、帯域幅等)を有する無線信号に変換しうる。その後、無線信号は、アンテナを通じて適切な(1つ以上の)受信者へ送信されうる。いくつかの実施形態では、(1つ以上の)物理NIのセットは、ネットワークインタフェースコントローラカード、ネットワークアダプタ、又はローカルエリアネットワーク(LAN)アダプタとしても知られる、(1つ以上の)ネットワークインタフェースコントローラ(NIC)を含みうる。(1つ以上の)NICは、電子デバイスを他の電子デバイスに接続することを容易にすることができ、NICに接続された物理ポートへのケーブルの差し込みを通して、電子デバイスが有線で通信することを可能にする。本発明の実施形態の1つ以上の部分は、ソフトウェア、ファームウェア、及び/又はハードウェアの異なる組み合わせを使用して実装されうる。
【0188】
ネットワークノード(ネットワークデバイス又は単にノードとも称される)は、ネットワーク上の他の電子デバイス(例えば、他のネットワークデバイス、エンドユーザデバイス)を通信可能に相互接続する電子デバイスである。いくつかのネットワークノードは、複数のネットワーキング機能(例えば、ルーティング、ブリッジング、スイッチング、レイヤ2アグリゲーション、セッション境界制御、サービス品質、及び/又は加入者管理)のサポートを提供する、及び/又は、複数のアプリケーションサービス(例えば、データ、音声、及びビデオ)のサポートを提供する、「マルチサービスネットワークノード(multiple services network nodes)」である。
【0189】
本出願で使用される「モジュール」、「ロジック」、及び「ユニット」との用語は、規定された機能を実行するための回路を指しうる。いくつかの実施形態では、規定された機能は、汎用プロセッサによって実行されるソフトウェアによって等、ソフトウェアと組み合わせて回路によって実行されうる。
【0190】
本明細書で開示される任意の適切なステップ、方法、特徴、機能、又は効果は、1つ以上の仮想装置の1つ以上の機能ユニット又はモジュールを通じて実行されうる。各仮想装置は、いくつかのこれらの機能ユニットを含みうる。これらの機能ユニットは、1つ以上のマイクロプロセッサ又はマイクロコントローラを含みうる処理回路と、デジタルシグナルプロセッサ(DSP)、専用デジタルロジック等を含みうる他のデジタルハードウェアを用いて実装されてもよい。処理回路は、メモリに格納されたプログラムコードを実行するように構成されてもよく、当該メモリは、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、キャッシュメモリ、フラッシュメモリデバイス、光ストレージデバイス等の、1つ以上のタイプのメモリを含んでもよい。メモリに格納されたプログラムコードは、1つ以上の遠隔通信及び/又はデータ通信プロトコルを実行するためのプログラム命令と、本明細書で説明される技術のうちの1つ以上を実行するための命令とを含む。いくつかの実装において、処理回路は、本開示の1つ以上の実施形態に従って、個別の機能ユニットに、対応する機能を実行させるために使用されてもよい。
【0191】
ユニットとの用語は、電子機器、電気デバイス、及び/又は電子デバイスの分野において従来の意味を有してもよく、例えば、本明細書で説明されるような、電気回路及び/又は電子回路、デバイス、モジュール、プロセッサ、メモリ、ロジックソリッドステート及び/又はディスクリートデバイス、それぞれのタスク、手順、計算、出力及び/又は表示機能等を実行するためのコンピュータプログラム又は命令を含んでもよい。
図1
図2
図3
図4
【手続補正書】
【提出日】2024-06-04
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
第2のネットワークノードへのセキュア伝送のためにユーザメッセージを符号化するための、第1のネットワークノードにおける方法であって、
ユーザメッセージを送信するSCTP(ストリーム制御伝送プロトコル)アソシエーション上の既存のDTLS(データグラムトランスポート層セキュリティ)コネクションからの既存のSCTP-AUTH(SCTPのための認証されたチャンク)キーを使用したDTLSハンドシェイクを通じて、前記SCTPアソシエーション上でDTLSコネクションを開始すること(204)と、
前記開始されたDTLSコネクションから新規のSCTP-AUTHキーを導出すること(206)と、
前記新規のSCTP-AUTHキーを用いて、前記開始されたDTLSコネクションを通じて更なるユーザメッセージを送信すること(210)と、
前記既存のDTLSコネクションで暗号化されたSCTPパケットと、前記既存のSCTP-AUTHキーによって認証されたSCTPパケットとが配信されたことの確認に応じて、前記SCTPアソシエーション上の前記既存のDTLSコネクションをクローズすること(212)と、
を含む、方法。
【請求項2】
請求項1に記載の方法であって、
前記開始されたDLTSコネクションによって保護されているが前記既存のSCTP-AUTHキーで認証されているユーザメッセージの更なる部分を含む、進行中のSCTPパケットを送信すること(208)を更に含む、方法。
【請求項3】
請求項に記載の方法であって、
前記SCTPアソシエーション上の前記既存のDTLSコネクションをクローズすることは、第1のDTLSコネクションクローズ通知を前記第2のネットワークノードへ送信することを含む、方法。
【請求項4】
請求項に記載の方法であって、
前記SCTPアソシエーション上の前記既存のDTLSコネクションをクローズすることは、第2のDTLSコネクションクローズ通知を前記第2のネットワークノードから受信することを更に含む、方法。
【請求項5】
請求項に記載の方法であって、
前記第1のDTLSコネクションクローズ通知を送信することは、前記第1のDTLSコネクションクローズ通知を送信する前に、前記既存のDTLSコネクションにおける送信データが非再現可能な方法で前記第2のネットワークノードによって確認応答されたことを確認することを含む、方法。
【請求項6】
請求項に記載の方法であって、
前記既存のSCTP-AUTHキー及び前記新規のSCTP-AUTHキーは、対応する既存の及び新規のキー識別子(ID)によって識別され、前記新規のキー識別子は、前記既存のキー識別子から1だけ増加した値である、方法。
【請求項7】
請求項に記載の方法であって、
前記DTLSコネクションは、前記SCTPアソシエーション上の前記既存のDTLSコネクションの1つ以上の証明書が失効する前に確立される、方法。
【請求項8】
請求項に記載の方法であって、
前記DTLSハンドシェイクを通じて前記SCTPアソシエーション上で前記DTLSコネクションを開始することは、前記1つ以上の証明書内のタイムスタンプを含む前記既存のDTLSコネクションの前記1つ以上の証明書を維持することを含む、方法。
【請求項9】
請求項に記載の方法であって、
前記第1のネットワークノードと前記第2のネットワークノードとの間で前記DTLSハンドシェイクを実行することは、
前記DTLSハンドシェイクを開始し、かつ、前記DTLSハンドシェイクのイニシエーションを受信したことに応答して、前記第1のネットワークノードが前記DTLSコネクションのDTLSクライアントとして機能する場合に前記開始されたDTLSハンドシェイクを継続することを含む、方法。
【請求項10】
請求項に記載の方法であって、
前記既存のSCTP-AUTHキーは、前記既存のDTLSコネクションのクローズに応じて削除される、方法。
【請求項11】
ネットワークノード(402)であって、
プロセッサ(442)と、命令を提供する非一時的なマシン読取可能読記憶媒体(449)と、を備え、前記命令は、前記プロセッサ(442)によって実行されると前記プロセッサ(442)に、
ユーザメッセージを送信するSCTP(ストリーム制御伝送プロトコル)アソシエーション上の既存のDTLS(データグラムトランスポート層セキュリティ)コネクションからの既存のSCTP-AUTH(SCTPのための認証されたチャンク)キーを使用したDTLSハンドシェイクを通じて、前記SCTPアソシエーション上でDTLSコネクションを開始すること(204)と、
前記開始されたDTLSコネクションから新規のSCTP-AUTHキーを導出すること(206)と、
前記新規のSCTP-AUTHキーを用いて、前記開始されたDTLSコネクションを通じて更なるユーザメッセージを送信すること(210)と、
前記既存のDTLSコネクションで暗号化されたSCTPパケットと、前記既存のSCTP-AUTHキーによって認証されたSCTPパケットとが配信されたことの確認に応じて、前記SCTPアソシエーション上の前記既存のDTLSコネクションをクローズすること(212)と、
を実行させることができる、ネットワークノード。
【請求項12】
請求項11に記載のネットワークノード(402)であって、
前記非一時的なマシン読取可能読記憶媒体は、前記プロセッサ(442)によって実行されると前記プロセッサ(442)に、
前記開始されたDLTSコネクションによって保護されているが前記既存のSCTP-AUTHキーで認証されているユーザメッセージの更なる部分を含む、進行中のSCTPパケットを送信すること(208)、
を更に実行させることができる命令を提供する、ネットワークノード。
【請求項13】
請求項11に記載のネットワークノード(402)であって、
前記SCTPアソシエーション上の前記既存のDTLSコネクションをクローズすることは、第1のDTLSコネクションクローズ通知を第2のネットワークノードへ送信することを含む、ネットワークノード。
【請求項14】
請求項11に記載のネットワークノード(402)であって、
前記SCTPアソシエーション上の前記既存のDTLSコネクションをクローズすることは、第2のDTLSコネクションクローズ通知を第2のネットワークノードから受信することを更に含む、ネットワークノード。
【請求項15】
請求項13に記載のネットワークノード(402)であって、
前記第1のDTLSコネクションクローズ通知を送信することは、前記第1のDTLSコネクションクローズ通知を送信する前に、前記既存のDTLSコネクションにおける送信データが非再現可能な方法で前記第2のネットワークノードによって確認応答されたことを確認することを含む、ネットワークノード。
【請求項16】
請求項11に記載のネットワークノード(402)であって、
前記既存のSCTP-AUTHキー及び前記新規のSCTP-AUTHキーは、対応する既存の及び新規のキー識別子(ID)によって識別され、前記新規のキー識別子は、前記既存のキー識別子から1だけ増加した値である、ネットワークノード。
【請求項17】
請求項11に記載のネットワークノード(402)であって、
前記DTLSコネクションは、前記SCTPアソシエーション上の前記既存のDTLSコネクションの1つ以上の証明書が失効する前に確立される、ネットワークノード。
【請求項18】
請求項17に記載のネットワークノード(402)であって、
前記DTLSハンドシェイクを通じて前記SCTPアソシエーション上で前記DTLSコネクションを開始することは、前記1つ以上の証明書内のタイムスタンプを含む前記既存のDTLSコネクションの前記1つ以上の証明書を維持することを含む、ネットワークノード。
【請求項19】
請求項11に記載のネットワークノード(402)であって、
記ネットワークノードと第2のネットワークノードとの間で前記DTLSハンドシェイクを実行することは、
前記DTLSハンドシェイクを開始し、かつ、前記DTLSハンドシェイクのイニシエーションを受信したことに応答して、前記ネットワークノードが前記DTLSコネクションのDTLSクライアントとして機能する場合に前記開始されたDTLSハンドシェイクを継続することを含む、ネットワークノード。
【請求項20】
請求項11に記載のネットワークノード(402)であって、
前記既存のSCTP-AUTHキーは、前記既存のDTLSコネクションのクローズに応じて削除される、ネットワークノード。
【請求項21】
非一時的なマシン読取可能記憶媒体(449)であって、プロセッサ(442)によって実行されると前記プロセッサ(442)に、請求項1乃至10のいずれか一項に記載の方法を実行させることができる命令を提供する、マシン読取可能記憶媒体。
【請求項22】
コンピュータプログラムであって、前記コンピュータプログラムがネットワークノード(402)によって実行されると前記ネットワークノードに、請求項1乃至10のいずれか一項に記載の方法を実行させることができる命令を含む、コンピュータプログラム。
【国際調査報告】