wakatonoの戯れメモ

はてなダイアリーから引っ越してきました。

無印吉澤@はてなダイアリーさんの日記より

ひととおり書きあがった後で気づく(滝汗)。
コメントがあるかといわれると…あるんですが(大汗)*1

  • アプリケーションからわかりづらい

これはもともと「アプリケーションに暗号化通信を行っていることを意識させない」というのがIPsecのデザインポリシーだった(と思ってますが)からだとオレは思ってます。
言い方を変えるならば、「アプリケーションやその設定に一切の手を加えることなく安全な通信を行えるようにする」ともいえるでしょう。

鍵交換はあるものの、それが終了した後のIPsecの利点は「レイヤ3のみで完結する暗号化通信」という一点に尽きます。
これが例えばSSL-VPNのようなものになると、TCP over TCPという構図が成り立ちますが、TCP over TCPは、下位レイヤとなるTCPSSLセッション)の安定性に大きく依存します。
これは、通常の通信路の信頼性に加え、途中にあるネットワーク機器(ファイアウォールのセッションタイムアウト時間や、ProxyのKeepAliveの回数制限*2など)の影響も大きいです。
さらに、SSLセッションでのデータの欠損があると、輻輳が簡単に起きる危険性があります。
IPsecの場合は、上位のTCPレイヤでの話はあるものの、基本的にはピアもしくはゲートウェイの間に介在するネットワーク機器は、このセッションの存在を知ることが出来ません。
セッションがないのでタイムアウトもなく、下位レイヤでちゃんとパケットを届けてくれればOKだし、そうでなくとも普通に上位レイヤの再送機能が働いてくれます。レイヤ3レベルのパケットを1対1に暗号化するため、輻輳は最小限に抑えられるかな、と。

もっとも、個人的に恐いのは、IPsecだろうとSSL-VPNだろうと「だれても簡単に使える」ようになったら「踏み台が増えるのではないか」というところだったりします。

*1:ごめんなさい(_ _)

*2:これについては実際カウントしてるものがないという噂もある