3 Minutes NetWorking Supplement
No.21

3Minutes NetWorking Supplement

補講第21回IPsec(1) IPsecとは

■ IP通信のセキュリティ

おねーさん

おね〜さんと、

ほげたん

ほげたんのっ!!

おねーさん

3 Minutes Networking、

ほげたん

Supplement !!

おねーさん

さってと、今回からはIP通信のセキュリティについてのお話〜。

ほげたん

わ〜、パチパチパチ〜。

おねーさん

具体的に言うと、IPsecのお話。
ん〜っと、まず。IPネットワークは歴史的な経緯から、「セキュリティ? なにそれおいしい?」だったのは知ってる?

ほげたん

歴史的な経緯? ARPANETが始まりだったって話?

おねーさん

もともとが軍用・研究用だったからとか、いろいろあって初期のTCP/IPプロトコルには、まぁ、そのほとんどが今でも使われているんだけど、セキュリティの発想がないプロトコルが多いわけね。

ほげたん

あー、そうかも。HTTP、FTP、TELNET、DNS、SMTP…。確かにないね。

おねーさん

んでね、「それってまずくね?」って話になったわけ。インターネットの商業利用もはじまり…あれ?商業利用はそのあとだったっけな? まぁ、ともかく。IPネットワークのセキュア化が必要だと論じられたわけね。

ほげたん

TCP/IPとインターネットの歴史は各自調べること。

おねーさん

そうね。あんまり詳しく話すとそれだけで1回終わっちゃうからね。
で、「IPネットワークのセキュア化」って簡単に言ったけど、具体的に「セキュア化」って何?

ほげたん

セキュリティを考慮したネットワークにすること?

おねーさん

いや、もうちょっと具体的に? PKIの話を思い出して?

ほげたん

PKIの話? あぁ、盗聴・改ざん・なりすまし・否認の脅威を防ぐってこと?

おねーさん

そうそう。なんか「セキュア」っていうと、盗聴防止の暗号化だけの話になりがちだけど、そうじゃないと声を大にして言いたいわけね。

ほげたん

あ、あぁ。確かに「通信のセキュア」っていうとそうなりがちだよね。

おねーさん

ともかく、「盗聴・改ざん・なりすまし・否認」という脅威の対抗策は?

ほげたん

あーっと、「暗号化」「署名」「認証」、だよね。

おねーさん

そうね。ただ、「署名」はPKIでの手法だから、IPsecでは別の方法を使うけど、それはまぁ、また後の話ね。んでね、IPsecの「セキュア化」の特徴なんだけど。「盗聴・改ざん・なりすまし・否認」を行うだけなら、PKIでもいいじゃない?でもPKIには弱点があるわよね。

ほげたん

弱点? なんかあったっけ?

おねーさん

PKIって結局なんだったっけ?

ほげたん

「公開鍵暗号化による暗号・署名を正しく使うための電子証明書とCAによる信頼システム」だよ。

おねーさん

そうよね、つまり、「システム」として存在しないとダメってこと。単独では使えない。ちゃんとCAから何からそろってないと動かないってこと。

ほげたん

ん〜、「インフラ」だもんね。基盤がないと確かにダメだ。

おねーさん

でしょう? IPsecのいいところはそこらへんがなくてもちゃんと動くってこと。
それと、PKIはアプリケーションやプロトコルに組み込まれる必要があるでしょ。

ほげたん

ん〜っと、そうかな?

おねーさん

電子証明書の使用を前提に作られていないとダメなのがPKIなんだけど。IPsecは上位プロトコルに対し透過的ってのが最大の特徴かな?

ほげたん

上位プロトコルに透過的? どういう意味?

おねーさん

つまり、上位プロトコルの変更なしで使用できるってこと。レイヤ3だけでおさまってるってことね。
例えば、同じセキュリティプロトコルの代表格のSSL/TLS。これは、HTTP、FTP、TELNETなどをセキュア化してくれるけど、ユーザが「セキュア化を行うことを明示的に示す」ことが必要よね?

ほげたん

ん、ん〜。そうかな。「http://」を「https://」に変えたり、TELNETクライアントじゃなくてSSHクライアントを使ったりしなきゃダメだよね、確かに。

おねーさん

つまり、ユーザがSSL/TLSを使った上位プロトコルを選んでる(変更している)ことになるでしょ。
一方、IPsecは上位プロトコルはそのままで、HTTPならHTTPのままでセキュア化が可能ってことね。

IPsecによる透過的なセキュア化

[FigureSP21-01:IPsecによる透過的なセキュア化]

おねーさん

大雑把に図示すると上図のようになるのね。

ほげたん

ん〜っと、つまり。TCP/UDP通信そのものをセキュア化するIPsecと、アプリケーションプロトコルをセキュア化するSSL/TLS?

おねーさん

ま、今のところはその解釈でいいわ。実際はIP通信もセキュア化しちゃったりするけど。
だから、普通SSL/TLSはTCPのプロトコルばっかりしかセキュア化しないけど、IPsecならUDP通信もセキュア化しちゃうわけよ。

ほげたん

そういえば、SSL/TLSでセキュア化するのって、TCPばっかりかなぁ。

おねーさん

でしょ。はい、とりあえずまとめるわよ。
IPsecはIP通信を透過的にセキュア化する。で、セキュア化ってなんだっけ?

ほげたん

んと。つまり、盗聴・改ざん・なりすまし・否認をIP通信で防ぐってこと?

おねーさん

おけおけ。まずは「IPsecが何のためにあるのか」ってことを把握しといてね、という話。

ほげたん

了解だよ、おね〜さん。

■ IPsecの構造

おねーさん

さてさて、実際にIPsecが行うことについて説明しましょ。
そ・の・ま・え・に。「認証」という言葉の定義をしないと。

ほげたん

んあ? 認証? オーセンティケーション? あれでしょ、「ユーザが誰であるか」とか「送信元が誰であるか」を調べることでしょ? 「ユーザの身元を照合する」って前いってなかった?

おねーさん

あー、うん。Kerberosの時はそう言ったかな? まぁ、それは間違ってないんだけど。
より正確に言うとね、正当であることを証明すること、ね。

ほげたん

正当であることを証明する? 「ユーザの身元を照合する」=「ユーザが認められた正当なユーザであることを証明する」って意味?

おねーさん

そうそう。でね、「何が」正当であるか証明するかによって、認証には種類があるんだけど、IPsecでの「認証」は次の2つね。

  • ユーザ認証 … ユーザの正当性を証明する
  • メッセージ認証 … メッセージの正当性を証明する
ほげたん

ユーザ認証はわかるけど、メッセージ認証? メッセージの正当性を証明する?

おねーさん

そう、つまりメッセージ(データ)が改ざんなどされていない=正当であるってこと。それを証明するのが、メッセージ認証。つまり?

ほげたん

つまり? … メッセージ認証により、改ざんを防止するってこと?

おねーさん

そゆことね。つまり、「盗聴・改ざん・なりすまし・否認」を防ぐために、IPsecは次の事を実行するってこと。

  1. 暗号化 … 盗聴防止
  2. 認証 … なりすまし・改ざん・否認防止
  3. アクセス制御 … 特定の送信元・宛先、プロトコルを許可/拒否する
ほげたん

ふむふむ。暗号化と、認証と、アクセス制御?

おねーさん

そう。宛先や送信元、使用プロトコルを見てそれらのIP通信の許可/拒否を決定するってことね。
さて、実際にIPsecの話に移るけど。ほげたん、IPsecとは何?

ほげたん

いや、それを教えてもらおうとしてるんだけど?

おねーさん

そういやそうね。え〜っと、RFC的にはRFC4301で定義されている、Security Architecture for the Internet Protocolの事ね。 ▼ link

ほげたん

セキュリティアーキテクチャ フォー IP? IPのためのセキュリティアーキテクチャ?

おねーさん

そう、「IPのセキュリティ設計」とでも訳すのがいいんじゃないかな?

ほげたん

アーキテクチャ。プロトコルじゃないんだね?

おねーさん

う〜ん、超絶意訳すると、「IPのセキュア拡張手法」かな? プロトコルじゃないわね。

ほげたん

拡張手法?

おねーさん

そう。現在あるIPはそのままで、セキュアを追加したって形かな? だから、「拡張」ってわけね。

ほげたん

IPを置換して使うわけじゃなくて、IPはそのままでそれに追加するってことだね。

おねーさん

うん、そう。んで、簡単に言うと、IPsecは4つの技術から成り立ってるの。

技術主なRFC
セキュリティプロトコルIP認証ヘッダ[IP Authentication Header]RFC4302
IP暗号化ペイロード[IP Encapsulating Security Payload]RFC4303
鍵管理インターネット鍵交換[Internet Key Exchange]RFC4306
セキュリティアソシエーション [Security Association]RFC4301
認証・暗号化アルゴリズムRFC4305、RFC4307など

[TableSP21-01:IPsecの4つの技術]

おねーさん

ま、普通は省略して、AHESPIKEって呼ばれる3つのプロトコルと、それを管理するSA。そして、それ用の認証と暗号化のアルゴリズムからIPsecは成立しているってことね。 ▼ link

ほげたん

あぅ? さっきプロトコルじゃないって。あと、SAって何?

おねーさん

IPsecそのものはプロトコルじゃないわよ。AHやESPやIKEは、IP通信のセキュア化のためのIPsecという拡張技術で使われるプロトコルってこと。あくまでもAHなどはIPsecのパーツであって、全体じゃないの。

ほげたん

う〜ん。じゃあSAは? セキュリティ協会?

おねーさん

あはは。確かにAssociateionは「協会」の意味もあるけど、ここではそうね、「つながり」とか「かかわり」とかの意味の方が理解しやすいかな。

ほげたん

「セキュリティ」の「つながり」?

おねーさん

そうね。鍵管理やセキュアプロトコルを使うための「つながり」がSAかな? もしくはセキュアに作られた通信路そのものがSAと呼ぶかな。

ほげたん

う〜ん。ますますわからない。

おねーさん

そうねぇ。SAは「つながり」っていったでしょ? ぶっちゃけると、IPsec用のコネクションがSAかな。

ほげたん

コネクション? TCPのアレ?

おねーさん

そう、TCPは「信頼性を保証する通信」のため、コネクションを設定するわけでしょ。一方、IPsecは、「セキュアなIP通信」のためにコネクションを設定するってこと。

ほげたん

え? いや待って。IP自体はコネクションレスだよ?

おねーさん

それはTCPでも同じよね。

ほげたん

う…、確かに。さっきの図の[FigureSP21-01:IPsecによる透過的なセキュア化]を見ると、IPの上にIPsecがあるから、立場的にはTCPとIPsecは同じ? 「IPを使った通信の信頼性を保証する」TCPと、「IPを使った通信のセキュア化」のIPsec…。

おねーさん

そういうこと。つまり、セキュアのための通信路がSAと考えておくといいかな? TCPみたいに事前にスリーウェイハンドシェイクのようなことはしないけどね。

ほげたん

あ、しないんだ。じゃあどうやってコネクションを設定するの?

おねーさん

それはまたSAを説明するときに話すわ。そして、そのSAによって設定されたコネクションを使って、AH/ESPを使った通信が行われるわけね。イメージ的にはこんな感じ?

SAとセキュアプロトコル

[FigureSP21-02:SAとセキュアプロトコル]

ほげたん

SAでできたコネクションの中をAH/ESPのセキュアプロトコルでセキュア化されたデータグラムが流れる?

おねーさん

TCPのコネクションもそうでしょ? スリーウェイハンドシェイクにより、「仮想的な通信路」をつくりだしてるわけだから。「信頼性が保証された仮想的な通信路」が「TCPコネクション」ね。

ほげたん

その「TCPコネクション」の中を流れるTCPセグメントは、「信頼性が保証される」…。

おねーさん

一方、IPsecのSAにより作られたコネクションは「セキュアのための仮想的な通信路」なわけ。だから?

ほげたん

だから、SAのコネクションの中を流れるデータグラムは「セキュア」である?

おねーさん

ま。イメージ的な話ね。そうねぇ、役割的にいえば、SAはTCPのスリーウェイハンドシェイクかな?スリーウェイハンドシェイクは、ホスト間の「信頼性を保証」するための事前のやり取りでしょ。

ほげたん

じゃあ、SAもホスト間の「セキュア化」のための事前のやり取り?

おねーさん

実際はやりとりしないけどね。スリーウェイハンドシェイクにより、信頼性保証のための「合意」を行ってるわけでしょ。SAもセキュア化のためのホスト間の合意ってところかな?

ほげたん

合意…。

おねーさん

スリーウェイハンドシェイクでの合意により、コネクションが生成される。これと同じようにSAでの合意により、コネクションが生成される、ってこと。詳しくは後でね。

ほげたん

う、うん。とりあえず、SAによりコネクションを作るんだね。

■ 2つのプロトコル・2つのモード

おねーさん

さて、SAによって作られた「セキュアなコネクション」で、実際のデータグラムが運ばれるわけだけど。この時、AH、ESPを使って運ばれるわけね。

ほげたん

さっき出てきた、IPsecの「セキュリティプロトコル」の、AHとESPだね。

おねーさん

そう。この2つがIPsecでのデータのやりとりの、まぁ、プロトコルだから手順ってわけね。

ほげたん

ふ〜ん。どう違うの?

おねーさん

AH、ESPでは実現するセキュリティが異なるの。だから、機能に合わせてどちらかを選ぶことになるわけね。

セキュリティ機能AHESP
送信元IPアドレスの改ざん防止 
ペイロードの改ざん防止
送信元認証
アクセス制御
リプレイ防止
ペイロードの暗号化 
ほげたん

「ペイロードの改ざん防止」のESPの△はどういう意味?

おねーさん

あぁ、ESPではオプションなのよ。

ほげたん

ふ〜ん・・・…。あんまり変わらないような気がするけど?

おねーさん

違うでしょ、全然。つまり、改ざん防止(メッセージ認証)を持つAHと、機密性保護(暗号化)を持つESPってこと。

ほげたん

あ、なるほど。でも、ペイロードの改ざん防止はESPでも持つんでしょ?

おねーさん

もともとはAHだけだったらしいんだけどね。ESPの方でも必要ってことになって、オプションとして使えるようになったらしいわよ。だから、基本は認証のAH、暗号化のESPね。

ほげたん

で、どっちかを使うってことだね。

おねーさん

そういうこと。どちらを使うのかは「セキュリティポリシー」で決まるんだけど、それは先の話にしましょ。

ほげたん

あい。

おねーさん

で、この2つのセキュリティプロトコルは、2つのモードで動作するの。

  • トランスポートモード
  • トンネルモード
ほげたん

モード? トランスポートとトンネル?

おねーさん

じゃ、まずトランスポートモードから。

[FigureSP21-03:トランスポートモード]

ほげたん

え、えっと〜。AH/ESPヘッダを挿入する?

おねーさん

そう、AHなら改ざん防止の認証情報のAHヘッダ。ESPならペイロードの暗号化と、そのための情報のESPヘッダね。

ほげたん

AH/ESPヘッダにより、ペイロードがセキュア化される?

おねーさん

そゆこと。トランスポートモードはペイロードに対し、認証/暗号化するってことね。

ほげたん

「トランスポートモードはペイロードをセキュア化する」。うん、わかる。
じゃあ、トンネルモードは?

おねーさん

トンネルモードはこっち。

[FigureSP21-04:トンネルモード]

ほげたん

セキュリティゲートウェイ?

おねーさん

IPsec機能を搭載した中継機器ね、普通はルータやファイアウォール、UTMがなるわ。

ほげたん

んで、IPパケット全体に対し、セキュア化するんだ。

おねーさん

そうね、セキュリティゲートウェイ間でIPパケット全体をセキュア化するのがトンネルモードってことね。

ほげたん

……VPN?

おねーさん

そうね、VPNで主に使われているのがトンネルモードね。で、セキュリティゲートウェイ間の、パケットがセキュア化されている部分が、IPsecトンネルってことね。ま、VPNについてはまた別の機会で。

ほげたん

うん。了解。

おねーさん

つまり、このモードとセキュリティプロトコル、それぞれ2つずつあるわけだから。合計4パターンあるわけね。

ほげたん

「AH・トランスポート」「AH・トンネル」「ESP・トランスポート」「ESP・トンネル」の4つだね。

おねーさん

そういうこと。ん〜、まず最初はこんなもんかなぁ。
というわけで、IPsecの話をしばらくするからね。

ほげたん

結構大変そうだね。

おねーさん

ん? そうかな? そうかも。ま、がんばってみましょ。

ほげたん

あいあい。

おねーさん

んふふ。じゃ、また次回。
おね〜さんと、

ほげたん

ほげたんのっ!!

おねーさん

3分間ネットワーク、

ほげたん

サプリメントでした〜〜〜っ!!

ARPANET
[Advanced Research Project Agency Network]
アメリカ国防総省の国防高等研究計画局[Advanced Research Project Agency]の元で構築されたネットワーク。TCP/IPの原型がここで使われていたため、インターネットの原型として知られている。
SSL/TLS
[Secure Sockets Layer/Transport Layer Security]
ネットスケープ社がHTTPのセキュア化のため開発したのがSSL。これをIETFが標準化したものがTLS。
UTM
[Unified Threat Management]
ファイアウォール、IPsec、IPS/IDS、アンチスパム/ウィルス、Webフィルタなどセキュリティ機能を1つに統合した機器。「統合脅威管理機器」が直訳?
ほげたんほげたんの今日のポイント
  • IPsecはIP通信を透過的にセキュア化する。
    • 盗聴・改ざん・なりすまし・否認をIP通信で防ぐ。
  • IPsecはIPに対するセキュア拡張機能
    • セキュリティプロトコル、SA、IKE、アルゴリズムからなる。
    • SAはセキュアコネクション。
  • 2つのプロトコル・2つのモードがある
    • 認証を行うAH、暗号化を行うESP。
    • ペイロードをセキュア化するトランスポートモード、IPパケット全体をセキュア化するトンネルモード。

3 Minutes NetWorking Supplement No.21

管理人:aji-ssz(at)selene.is.dream.jp