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 GatewayはIPSec形式の中に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]
- 利用可能な暗号アルゴリズムの確認を行い、SA(Security Association)を確立する
- Diffie-HellmanでPhase 2で用いるsymmetric key encryptionのprivate keyを計算
- authentication:PSK(Pre Shared Key)とdigital certificate
[Phase 2]
◎IPSecの通信開始
Phase2で確立したSAを用いて行う。
◎IKE Protocolについて
- ISAKAMP(Internet Security Association and Key Management Protocol):IKEの中でParameterを交換するProtocolでRFC4306に含まれる。
- 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を持つこともあり得る。
- IPSec protocol
AH or ESP
- symmetric key encryption
AES,3DESなど。
- Message Authentication Code
- ライフタイム
IPSec SAのライフタイムとライフタイプ
- 通信モード
Tunnel Mode or Transport Mode
- DH Group
(option)common keyの生成にPFSを使用する場合に用いる。