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