IPv6って何?
(拡張ヘッダ編)
2015/01/10 LT駆動開発 #10
ねむねむ @nemumupoyo
HN:ねむねむ
Twitter:@nemumupoyo
GitHub:@nemumu
(前回までの話)
IPv4とIPv6の違いって何?
IPv4とIPv6でどこが違うの?
• グローバルアドレスの数
• アドレス取得の方法
• Mobile IPv6など新機能の追加
• 拡張ヘッダ
IPv4とIPv6でどこが違うの?
• グローバルアドレスの数←前回やった
• アドレス取得の方法
• Mobile IPv6など新機能の追加
• 拡張ヘッダ
拡張ヘッダとは
• IPプロトコルへの柔軟な機能拡張を可能に
Layer 7 アプリケーション層
Layer 6 プレゼンテーション層
Layer 5 セッション層
Layer 4 トランスポート層
Layer 3 ネットワーク層
Layer 2 データリンク層
Layer 1 物理層
感覚的にはL3.5
拡張ヘッダとは
• リスト状に次ヘッダを指定
• それぞれの拡張ヘッダは機能的に独立
• 全ての拡張ヘッダを付ける必要は無い
• 自分だけの拡張ヘッダを簡単に作れる
拡張ヘッダの種類
• ESP header
• AH header
• Routing header
• Hop-by-Hop option header
• Fragment header
拡張ヘッダの種類
• ESP header
• AH header
• Routing header
• Hop-by-Hop option header
• Fragment header
ESP/AH headerって何?
ESP/AH header
ESP AH
用途 完全性の保証・暗号化 完全性の保証
動作
一部除くヘッダの
チェックサム計算/
IP over IPでの暗号化
IPヘッダ全体の
チェックサム計算
実装
必須
(使うとは言ってない)
必須じゃない
(2005年まで必須)
IPv6ではIPsecの実装が必須に
• IPv6ではIPsecの実装(ESP header)が必須に
• IPv6のセキュリティ向上に関する根拠
• 必ず使う必要はない
• 実装している例は少ない (おい
拡張ヘッダの種類
• ESP header
• AH header
• Routing header
• Hop-by-Hop option header
• Fragment header
Routing headerとは
Routing headerとは
• IPv4の発信経路オプションみたいなやつ
• 宛先到着までに経由するルーターを指定可能
• Mobile IPv6などにも利用される
• 更に細かいプロトコル(type)に分かれる
Routing header type0
Routing header type0
最大(2^8-1)回
好きな経由地を指定可能
ルーティングヘッダ type0
• 送信元を偽装する事で更なる増幅も可能
_人人人人人人人_
> やばすぎる <
 ̄Y^Y^Y^Y^Y^Y ̄
type0は消された
• RFC5095で実質削除
• type0の実装は脆弱性扱いに
(JVNVU#267289)
• 制限付きでtype0を実装している例はある
• そもそもなぜこんな仕様が通ったのか
セキュリティを考慮した
プロトコルの
提案は行われている
拡張ヘッダの種類
• ESP header
• AH header
• Routing header
• Hop-by-Hop option header
• Fragment header
その他の拡張ヘッダ
• Hop-by-Hop Options header
ルーティング途中のルータでの処理を定義
• Fragment header
パケットの分割及び復元のための識別子
(IPv6ではルーターでフラグメントを行わない)
まとめ
• 細かい仕様は将来的に追加されるかも
• 拡張ヘッダ関連のセキュリティホールが課題に
• 実装が大変そう
ご静聴ありがとうございました
@nemumupoyo

IPv6って何?(拡張ヘッダ編)