ipv6转换成ipv4_IPv6协议及其安全浅析
| 聲明:由于傳播、利用此文所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負責,知微安全以及文章作者不為此承擔任何責任。知微安全擁有對此文章的修改和解釋權。如欲轉載或傳播此文章,必須保證此文章的完整性,包括版權聲明等全部內容。未經知微安全允許,不得任意修改或者增減此文章內容,不得以任何方式將其用于商業目的。 |
0x00? IPv6基礎概念?
1、IPv6的地址表示
(1)用十六進制表示,如:FE80:….(2)4個十六進制數一組,共8組,中間用“:”隔開,如:2001:12FC:….(3)地址前綴長度用“/xx”來表示,如:1::1/64(4)簡寫規則:省略每組最前的0,全0的組可以用“::”表示,但“::”只能出現一次!2、IPv6地址分類
單播地址
(a)全局單播地址(Global unicast address,GUA),2000::/3,第一組取值從2000到3fff;典型的GUA結構如下:(b)鏈路本地地址(Link-Local Address),前綴范圍為fe80::/10,最后的64bit通常為Interface-ID(EUI-64,隨機或手動配置)。單播地址作用:(1)在獲取到GUA之前,可使用LLA作為源地址與本地路由器通信,或從DHCPv6獲取地址。(2)ICMPv6 RA通告的默認網關為LLA。(3)IGP for IPv6使用LLA作為源地址與對端建立鄰接關系,發送路由更新。(4)來自動態路由協議的路由表項的下一跳使用LLA。
多播地址IPv6已經去除了廣播,僅剩下多播地址,采用ff00::/8作為前綴。(所謂多播,即一對多的數據包)(a)ff00:/8,為IPv6多播保留前綴;
(b)標志位,前三個bit皆為0,最后一個bit為T flag,用于標記兩種類型的多播。
?? 永久的(0),也被稱為預定義多播,包括已知著名多播和請求節點多播。
? ?? 臨時的(1),也叫動態分配的多播,通常由多播程序分配使用。
(c)范圍,定義了多播包所能轉發的范圍
(d)組ID,代表了不同的多播組
3、IPv6鄰居發現協議NDP
NDP鄰居發現協議是ICMPv6新增的功能,用于在相同子網內(或鏈路上)進行設備發現和消息控制。NDP包含5種消息類型:
(1)鄰居請求(NS)(2)鄰居通告(NA):用于鏈路上兩臺設備的通信,常見的功能是完成ARP解析。(3)路由器請求(RS)(4)路由器通告(RA):用于鏈路上設備和路由器之間的通信,常見的功能是IPv6地址的無狀態自動配置。(5) 重定向4、IPv6的動態地址分配
(1)NDP中的RA消息包含了如下地址相關信息:(a)網絡前綴及前綴長度,以及關于本鏈路的其它一些信息;
(b)默認網關地址(鏈路上路由器接口的LLA,即RA消息的IPv6源地址)
(c)3個標志位,用于建議設備如何獲取IPv6地址信息,分別為A(自主地址配置)、O(其它配置)和M(手動配置)
(d)可選的信息,如域名,DNS服務器列表。(2)與IPv4不一樣的是,IPv6設備能夠在無DHCP服務的情況下,動態的確定自己的編址。如下圖所示,使用路由器通告(RA)消息的情況下,可以選擇以下三種方式的一種確定編址:
方法一:無狀態地址自動配置(LAAC),設備僅使用RA消息確認自己的所有地址需求,即使用前綴生產自己的GUA,使用RA的源地址作為默認網關地址。方法二:SLAAC和無狀態HCPv6務器,與方法一一樣,通過RA消息確認自己的IPv6 GUA,使用RA源地址作為默認網關,但是通過無狀態DHCPv6獲取其它信息,如DNS服務器地址。此時DHCPv6服務器不提供和維護IPv6 GUA信息。方法三:有狀態DHCPv6務器,與IPv4的DHCP一樣,通過DHCPv6獲取GUA,但是默認網關依然采用RA的源地址。5、IPv6與IPv4比較不同點:
(1)名稱相同的字段:
版本(version):IPv4的值為4,IPv6的值為6;
源地址與目的地址:IPv4的長度為32bit,IPv6的長度為128bit;
(2)名稱已更變的字段,以及名稱相同但一些情景下功能不同的字段:
ToS字段更變為Traffic Class,IPv4可以選擇使用IP優先級(3bit)或DSCP,IPv6只使用DSCP方法;
總長度字段更變為Payload Length,IPv4總長度字段包含了IPv4頭部和數據,而IPv6的長度字段僅為凈荷長度(包含擴展頭部);
TTL字段更變為Hop Limit,作用相同,僅名稱發生變化;
協議字段更變為Next Header,協議字段用于指示數據包凈荷所承載的數據類型,IPv6的下一頭部功能相似,但還可以指示下一擴展頭部;
(3)以下IPv4字段已經從IPv6中移除:
Header Length:由于IPv6的頭部為固定長度(40字節),因此不再需要該字段;
Identification,Flags,Fragment Offset:這些字段用于IPv4的報文分片,而IPv6僅在數據源執行分片,且分片通過分片擴展包頭實現;
Header Checksum:由于TCP、UDP都擁有自己的校驗和,因此無需在L3再加入本字段
Option:已被IPv6擴展頭部替代。
Padding:由于IPv6頭部長度為固定的40字節,因此無需進行填充。
(4)以下字段為IPv6新增:Flow Label:可以對數據包進行流標記,被定義用于“real-time”服務;(5)以下頭部為IPv6新增:Extension Header:擴展頭部用于為IPv6提供功能擴展性。其它特性:L2幀頭中EtherType字段為0x86dd;分片由分片擴展頭部實現。0x02 IPv6過渡技術1、雙棧技術
所謂雙棧設備,是指該設備既安裝IPv4又安裝IPv6的協議棧,從而實現分別與IPv4或IPv6節點間的信息互通。雙棧設備可以是主機、打印機、服務器、路由器或其它配置支持兩個協議的設備。
2、翻譯技術
由于IPv4與IPv6共存必然存在很長時間,除了通過雙棧的逐步演進,成熟可靠的過渡技術也能更好地支持網絡平滑遷移至IPv6。早期的過渡技術NAT-PT,在實際網絡應用中存在各種缺陷,IETF已不推薦使用,被RFC4966廢除。當前較為主流的過渡技術為IETF設計的新的解決方案:NAT64和DNS64。
NAT64與DNS64協同,主要實現IPv6-Only的客戶向IPv4-Only的服務端發起通信的場景。當然,NAT64也能夠使用靜態或手動綁定實現IPv4-Only的客戶端向IPv6-Only的服務端發起通信的場景。
NAT64主要工作在有狀態的形式(與IPv4的NAT相似),它將維護IPv6與IPv4之間的綁定(binding),具體操作如下:
(a)在兩個協議之間執行IP頭部轉換
(b)在兩個協議之間執行IP地址轉換
如圖:來看一個IPv6-Only的客戶端向IPv4-Only發起通信的實例:
步驟1:客戶端A想要訪問www.example.com,于是向LDNS(DNS64)請求AAAA解析。
步驟2-5:DNS64本地無相關緩存,向IPv6 DNS權威服務器請求解析,依然無記錄(error),轉而向IPv4 DNS權威請求解析,得到該域名的A記錄,10.10.10.10。
步驟6-7:DNS64服務器接收到域名的A記錄,然后使用DNS64前綴2001:db8:cafe:aaaa::/96,及IPv4地址10.10.10.10,生成IPv6AAAA解析,即2001:db8:cafe:aaaa::0a0a:0a0a/96。步驟8:客戶端A使用自己的IPv6地址作為源地址,獲得的IPv6AAAA解析作為目的地址,發出通信報文。
源地址為:2001:db8:cafe:1::100
目的地址為:2001:db8:cafe:aaaa::0a0a:0a0a
步驟9:NAT64路由器接收到該數據包,執行如下行為:
(a)將IPv6頭部轉換為IPv4頭部
(b)IPv6目標地址移除NAT64前綴,將低位32bit的0a0a:0a0a轉換為10.10.10.10。
(c)IPv6源地址使用地址池進行轉換,可以是1:1或PAT。這里源地址被轉換成192.168.99.9。
(d)完成上述動作,NAT64路由器生成一條包含源目的地址的有狀態轉換條目,當數據包返回時,執行反向轉換。
3、隧道技術
隧道技術允許處于孤島的IPv6設備通過IPv4網絡環境相互通信。隧道擁有兩種類型的協議,即傳輸(Transport)協議和被運載(Passenger)協議。在IPv6過渡技術中,傳輸協議為IPv4,而被運載協議為IPv6。
隧道涉及兩臺設備,隧道的端點及管理協議,因此擁有三個組件:隧道進入點,隧道離去點,隧道管理協議。按照隧道端點設備的類型,可以分為:主機到主機,主機到路由器,路由器到路由器所謂隧道,即雙層報文頭部,具體如圖:
0x03 IPv6面臨的網絡攻擊
1、NDP的中間人攻擊
IPv4中的ARP協議正是由于其默認子網內節點可信而導致其易受Spoofing、DoS等攻擊,而且在IPv6中節點除需要利用 NDP進行地址解析之外,還需利用其進行網絡配置,如獲取地址前綴、MTU等網絡參數和進行路由器發現等,所以當 IPv6 被部署在一個非可信網絡中,或當可信網絡中某節點被入侵而成為惡意節點時,網絡中的節點就可能遭受惡意節點利用NDP的安全缺陷進行中間人攻擊。
2、Smurf攻擊
在IPv4網絡中,Smurf攻擊可以通過發送偽造的ICMP回應請求到廣播地址。請求的源地址是攻擊的目標。IPv6沒有廣播地址,但是它具有一個多播地址,可以到達網絡中的所有節點,從而達到完成Smurf攻擊。
3、重復地址檢測(DAD)攻擊
在無狀態地址自動配置中,新IP地址在使用前需要進行重復地址檢測。在檢測過程中,一旦有攻擊節點聲稱解析地址已經被占用,將導致節點地址配置失敗,從而形成重復地址檢測攻擊。
4、其他攻擊
由于分段過程是由源設備和目標設備執行的,因此IPv6分段攻擊可用于繞過入侵檢測系統。
為了幫助IPv4到IPv6機制,有一些已知的隧道技術容易受到拒絕服務攻擊。
在IPv4網絡中使用Teredo隧道的計算機可以用來繞過防火墻和IDS作為網絡外圍防御。
對TCP的ICMP攻擊仍然有效
0x04 IPv6防護思路
目前正處在IPv4和IPv6共存的時期,對于過渡時期的安全防護可以從以下幾個方面著手。
將傳統不支持IPv6地址的安全設備,更換為支持IPv6的安全設備進行日常防護;
為了防護IPv6的擴展頭攻擊,防火墻設備需要支持檢查IPv6擴展頭合法性的功能;
在防火墻設備和邊界設備上實施入口過濾機制,來緩解網絡間的源地址偽造攻擊;
過渡技術中采用隧道技術時,要盡量使用靜態配置隧道,來降低動態隧道的偽造和非法接入的安全風險;
做好IPv6的安全隔離,縮減暴露面,減小被攻擊的風險。
總結
以上是生活随笔為你收集整理的ipv6转换成ipv4_IPv6协议及其安全浅析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三目运算符_Java中的三目运算符
- 下一篇: 第二届Today at Apple创想营