小見出し:IPSecの再入力が損失につながります
著者:classic_tong
序文
何をリキー。
これは、暗号化キーのチャネルの定期的な交換の通信機構のIPSecの端部をリキーを指します。
安全上の考慮事項については、遅延時間を使用する秘密鍵として、ひび割れする対称鍵の可能性は徐々に増加します。そのため、定期的な交換
対称秘密鍵は、IPSecのセキュリティを確保するために必要な手段です。
私たちは、IKEは、キーのキーと子SA(IPsec SAの)をSA、二つの重要なキーがあることを知っています。だから、また2、IKEキー再生成を持っているリキー
和子リキー。
ここでの唯一の子SAの再入力を議論します。
すべてのコンテンツ、すべてここから:https://tools.ietf.org/html/rfc7296#section-2.8
コンセプト
リキーを指す、一度(ソフト条件)条件をリキー満たされ、CREATE_CHILD_SA他端にリターンの他端に要求メッセージを送信します
CREATE_CHILD_SA応答メッセージ。新しいSAプロセスを交渉するために。
今回は、古いSAは削除されていない、一度削除されたご遠慮願い条件(ハード条件)は、古いSAはINFORMATION条件を削除することによってトリガいくつかの条件のために満足されます。
、タイムトリガ、3でトリガ条件をリキートリガー、バイトトリガの数をカウントオフ。これはそれぞれ、ソフトとハードの二つの条件に分割されています。これは、トリガーのトップを記述するために使用されました。
たとえば、次の時間が100秒をトリガした場合。これは、100秒が確立協議の後に、リキー処理を開始します子SAを指します。
この例では、例はstrongSwanの、ハード= 100秒+ランダム秒で達成されました。ソフト=ハード×90%
それは、柔らかい秒で、一端が新しいSAが作成されます。硬質第2の時間は、古いSAを削除します。
これは、同様の数とバイト数、ソフトは常に難しい条件の前に到着することを報告しました。
ここで。条件キーを再生成する可能性のメカニズムである、 - この時間差(ソフト、ハード)のでご注意ください。この期間では、我々は確実にするために2つのことを行う必要があります
スムーズなリキープロセスは、つまり、ESPパケットが失われることはありません。
まず最初に、新しいSAの完全な両端を確立することです。
2つ目は、古いから新しいSA SAへの切り替えを完了するために両端のトラフィックです。
IKEv2のでは、上記のトリガ条件は、ローカルのIPSecの両端に設けられています。お互いに相談していません。キー再生成が開始されます最終的には誰でも条件、。
IKEv1のでは、上記の条件は、交渉プロセスです。我々は唯一のIKEv2を議論します。
二つのプロセス
従来のプロセスロジックの再入力が下図の使用の損失につながるするつもりはない、詳細を説明します:
図の左側は右側が他のIPSecのリンクで、キー更新する最初のパーティが発生しています。
1.再入力はソフトトリガ条件に到達するために残しました。
2.左が新しいSAに要求メッセージを送信します。
3.右のメッセージを受信した後、ローカルに新しいSAの作成を開始します。
新しいSAの右側4.応答メッセージを送信します。しかし、パッケージを送信する前に1つの条件があり、新しいローカルSAが所定の位置に完全になって、使用可能な状態していることを確認する必要があります。
その後、それはまだ古いESP SAを使用して適切なメッセージを送信する必要があります。
5.左側の応答メッセージは、局所的に新しいSAを作成するプロセスを受けています。
新しいSAは、新しいSAの使用を終了するメッセージを送信するためにESPを切り替えるする権利をセットアップした後。
新しいSA 6のニュースの後介して送信する権利を受信し、復号化が成功しています。新しいSAのこの時間については、場所までに残されています。
だから、トラフィックの右側は、上記に古いから新しいSA SAに切り替えています。
7. ESPの右側には、新しいSAを使用してメッセージを送信することができます。
これまでのところ、新しいSAを確立し、スイッチングのプロセスを完了し、損失につながるものではありません。
8.左はハードな条件の再入力を達します
9.古いSAを削除する要求を送信するために残しました。
10、古いSAに要求に応答する権利を削除します。
これまでのところ、キー更新プロセスは完了です。
特に注目すべきなのは、彼らがキーの再生成中、左ができ、ESPパケットが送信されたときにお互いを必要としなかったということです。これは、SAを切り替えるには、それらをトリガー、過去に偽物を送信します。
または、右はESPパケットのいずれかの新しいSAを受けたが、SAを切り替えられます古いSAからのリクエストを受信していない場合。(この数字は、5が直接9を受けて受信しませんでした)
要約すると、ここでエッジ4と上記6における2つの重要なロジックです。
只要是正确的ipsec实现,4上面都不会有问题。所以在6的一些特殊情况下,会导致rekey期间的丢包。
比如,hard减去soft的时间过短,短到左边的sa创建流程没有及时完成,便触发了右边的流量切换。
三 多出来的SA
第一小节中random的作用是为了防止两端同时rekey的出现。
例如我们一般在配置两边的ipsec隧道时,通常会采用相同的配置,如rekey time=3600秒。
这个时候如果没有random时间,两边会同时发起rekey。
同时发起rekey的情况下,两侧的新建sa都会成功,这个时候会出现三个SA。
每一端都会各自独立检测这个场景,然后发现同时rekey的出现。然后会由发起的人来删除nonce比较小的那个一个SA。
以此到达删除重复sa的目的。
四 其他
RFC里,读到一句话,也不知道什么情况下会出现TS和算法会和就的SA不同。
Note that, when rekeying, the new Child SA SHOULD NOT have different Traffic Selectors and algorithms than the old one.