SyuchiNikuRingの備忘録

お勉強したことをまとめておく場所。中の人の理解や感覚で書いているから不正確なことも多いかも。

IPSecのお話。

やっほー。今回からしばらくはProtocolに関して勉強したことをまとめていきます。最近、ようやく備忘録らしく使えている気がする。

ではさっそくいってみよー。

IPSec(Internet Protocol Security)とは?
認証(authentication)、IP Datagram単位の暗号化(Confidentiality)、改竄検出(Integrity)の3機能を有する。これらの機能の実現には、symmetric key encryption, public-key cryptography, hash cryptography, authentication, digital signatureの技術を用いる。
IPv4は別ProtocolとしてIPSecを併用し、IPv6はオプションとしてIPSecを含む。

◎通信モード

  • Transport Mode

送受信ホストの全区間においてIPSec形式のdatagramで通信する。

  • Tunnel Mode

送信ホスト:IP datagramを送信側IPSec Gatewayに送信する。IPSec GatewayIPSec形式の中にIP datagramをカプセル化する。
受信ホスト:IPSec形式で受信側IPSec Gatewayまで通信する。受信側Gatewayから宛先ホストまではIP datagramで通信する。
流れ的にはこんな感じ。
送信ホスト~(IP datagram形式)~送信側Gateway~(IPSec形式)~受信側Gateway~(IPSec形式)~受信ホスト

◎protocolの種類

  • AH

上位protocol番号51。AH Headerを使用し、message authentication codeを用いてpacket authenticationを提供し、第三者の介入と改竄を検出する。

  • ESP

上位protocol番号50。ESP Headerを使用し、Packetの認証と暗号化の機能を提供。IPSec.v.2.0はESP単独で認証と暗号化が可能。

IPSec Packetの構造
【!】IP HeaderとTCP Headerの間に来る。

  • IPSec Transport Mode~AH Header Packet

[IP Header][AH Header][TCP Header][data]
authentication rangeは全て。

  • IPSec Transport Mode~ESP Header Packet

[IP Header][ESP Header][TCP Header][data][ESP trailer][ESP authentication data]
authentication rangeはESP Header~ESP trailerまで。encryption rangeはTCP Header~ESP trailerまで。

  • IPSec Tunnel Mode~AH Header Packet

[外側IP Header][AH Header][IP Header][TCP Header][data]
authentication rangeは全て。

  • IPSec Tunnel Mode~ESP Header Packet

[外側IP Header][ESP Header][IP Header][TCP Header][data][ESP trailer][ESP authentication data]
authentication rangeはESP Header~ESP trailerまで。encryption rangeはIP Header~ESP trailerまで。

IPv6のPacket構造

  • IPSec Transport Mode~AH Header Packet

[IPv6 Header][拡張Header][AH Header][拡張Header2][TCP Header][data]
authentication rangeは全て。

  • IPSec Transport Mode~ESP Header Packet

[IPv6 Header][拡張Header][ESP Header][拡張Header][TCP Header][data][ESP Trailer][ESP authentication data]
authentication rangeはESP Header~ESP trailerまで。
encryption rangeは拡張Header2~ESP trailerまで。

IPSecの通信準備
2段階あり、IKE(Internet Key Exchange)による鍵交換と認証を行う。
[Phase 1]

  1. 利用可能な暗号アルゴリズムの確認を行い、SA(Security Association)を確立する
  2. Diffie-HellmanでPhase 2で用いるsymmetric key encryptionのprivate keyを計算
  3. authentication:PSK(Pre Shared Key)とdigital certificate

[Phase 2]

  1. IPSec内で使用するheaderと暗号アルゴリズムの確認(2つ目のSA確立)
  2. 相手に専用の制御用トンネル番号を通知(通信経路の通知)

IPSecの通信開始
Phase2で確立したSAを用いて行う。

◎IKE Protocolについて

  1. ISAKAMP(Internet Security Association and Key Management Protocol):IKEの中でParameterを交換するProtocolでRFC4306に含まれる。
  2. Oakley(Oakley Key Determination Protocol):ISAKAMPで使用されるKey Exchange(dateの暗号化のために用いる鍵を生成するためのDiffie-Hellman Key Exchange)Protocolに認証機能を追加したもの。RFC2412で公開されている。

◎ISAKAMPの機能

  • Dos攻撃への耐久性向上
  • symmetric key encryptionのprivate keyの生成・交換と管理
  • SAの作成と管理
  • 通信相手の認証

◎SA(Security Association)
IPSecのsecurity情報を管理する構造。ISAKAMP SA(IKEで使用)とIPSec SA(IPSec通信で使用)がある。

・ISKAMPのsecurity parameter

  • symmetric key encryption

AES,3DESなど。ISAKAMP message用暗号。

  • Hash cryptography

SHA-1,MD5など。ISAKMP message用の認証・鍵計算に使用。

  • ライフタイム

ISAKMP SAのライフタイムとライフタイプ(単位は秒など)

  • 認証方式

IPSecの通信相手の機器の認証方式。PKSやpublic keyのcertificateなど。

  • DH Group

Diffie-Hellman group

IPSec SA security parameter
通信相手ごとにSAを持つので、一つのホストが複数のSAを持つこともあり得る。

AH or ESP

  • symmetric key encryption

AES,3DESなど。

  • Message Authentication Code

HMAC-MD5, HMAC-SHA-1など。

  • ライフタイム

IPSec SAのライフタイムとライフタイプ

  • 通信モード

Tunnel Mode or Transport Mode

  • DH Group

(option)common keyの生成にPFSを使用する場合に用いる。

今回はここまで。次回はTLS/SSLのメモを落とします。