往期 Kali Linux 上的 Wireshark 嗅探實驗見博客:
【網絡技術】【Kali Linux】Wireshark嗅探(一)ping 和 ICMP
【網絡技術】【Kali Linux】Wireshark嗅探(二)TCP 協議
【網絡技術】【Kali Linux】Wireshark嗅探(三)用戶數據報(UDP)協議
【網絡技術】【Kali Linux】Wireshark嗅探(四)域名系統(DNS)
【網絡技術】【Kali Linux】Wireshark嗅探(五)文件傳輸協議(FTP)
【網絡技術】【Kali Linux】Wireshark嗅探(六)地址解析協議(ARP)
【網絡技術】【Kali Linux】Wireshark嗅探(七)超文本傳送協議(HTTP)
【網絡技術】【Kali Linux】Wireshark嗅探(八)動態主機配置協議(DHCP)
【網絡技術】【Kali Linux】Wireshark嗅探(九)安全HTTP協議(HTTPS協議)
【網絡技術】【Kali Linux】Wireshark嗅探(十)IPv4和IPv6
【網絡技術】【Kali Linux】Wireshark嗅探(十一)以太網Ethernet協議報文捕獲及分析
【網絡技術】【Kali Linux】Wireshark嗅探(十二)NBNS協議報文捕獲及分析
【網絡技術】【Kali Linux】Wireshark嗅探(十三)IGMP(因特網組管理)協議報文捕獲及分析
一、QUIC協議簡介(摘錄自維基百科)
QUIC(讀作“quick”)是一個通用的傳輸層網絡協議,最初由Google的Jim Roskind設計。該協議于2012年實現并部署,2013年隨著實驗范圍的擴大而公開發布,并向IETF描述。雖然長期處于互聯網草案階段,但從Chrome瀏覽器至Google服務器的連接中超過一半的連接都使用了QUIC。Microsoft Edge、Firefox都已支持此協議;Safari實現了QUIC,但默認情況下沒有啟用。QUIC于RFC9000中被正式標準化。
QUIC最初是“快速UDP互聯網連接”(Quick UDP Internet Connection)的首字母縮寫,但在IETF標準中,QUIC不是任何內容的縮寫。QUIC提高了目前使用TCP的面向連接的網絡應用的性能。QUIC通過UDP協議在兩個端點之間建立若干個多路連接,以達到在網絡層淘汰TCP的目標。因為其設計目標在于取代TCP協議,該協議偶爾也被昵稱為“TCP/2”。
QUIC與HTTP/2的多路復用連接協同工作,允許多個數據流獨立到達所有端點,因此不受涉及其他數據流的丟包影響。與之相比,HTTP/2建立在傳輸控制協議(TCP)上,如果任何一個TCP數據包延遲或者丟失,所有多路數據流都會遭受隊頭阻塞延遲。
QUIC的次要目標包括降低連接和傳輸時延,以及每個方向的帶寬估計以避免擁塞。它還將擁塞控制算法移到了兩個端點的用戶空間,而不是內核空間,據稱這將使這些算法得到更快的改進。此外,該協議還可以擴展前向糾錯(FEC),以進一步提高預期錯誤時的性能,這被視為協議演進的下一步。
2015年6月,QUIC規范的互聯網草案提交給IETF進行標準化。2016年,成立了QUIC工作組。2018年10月,IETF的HTTP工作組和QUIC工作組共同決定將QUIC上的HTTP映射稱為 “HTTP/3”,以提前使其成為全球標準。2021年5月IETF公布RFC9000,QUIC規范推出了標準化版本。
二、網絡環境
本次實驗采用無線局域網(WLAN)進行,只需要1臺運行Windows 11操作系統的主機。
三、QUIC協議報文捕獲
啟動Wireshark,選擇本地無線局域網連接,在過濾條件一欄中輸入quic,捕獲結果如下圖所示:
四、QUIC協議報文分析
選中捕獲的其中一則報文,右鍵其QUIC協議段,選擇“復制——所有可見項目”,得到報文的內容如下:
# 1、物理層
Frame 32: 1292 bytes on wire (10336 bits), 1292 bytes captured (10336 bits) on interface \Device\NPF_{6D6E1E4D-E75A-45D1-9A8C-A0E81BEF93DC}, id 0
# 2、傳輸層
Ethernet II, Src: IntelCor_63:91:33 (38:87:d5:63:91:33), Dst: Shenzhen_17:72:58 (c0:7c:90:17:72:58)
# 3、網際層(使用IPv4)
Internet Protocol Version 4, Src: 192.168.1.4, Dst: 64.233.188.84
# 4、傳輸層(可見,使用UDP協議而不是TCP協議)
User Datagram Protocol, Src Port: 52645, Dst Port: 443
# IETF的QUIC協議部分
QUIC IETFQUIC Connection information[Connection Number: 0][Packet Length: 1250]1... .... = Header Form: Long Header (1).1.. .... = Fixed Bit: True..00 .... = Packet Type: Initial (0).... 00.. = Reserved: 0.... ..00 = Packet Number Length: 1 bytes (0)Version: 1 (0x00000001)Destination Connection ID Length: 8Destination Connection ID: 758cb946c047c17bSource Connection ID Length: 0Token Length: 0Length: 1232Packet Number: 1Payload: 47ceb5ce102c9e1b9ca812e36d3d1989c3f8d2248b9e1ca5dba1aaf9e370dfdb82c221e8…CRYPTO # 加密部分
協議加密部分(CRYPTO)內容:
CRYPTOFrame Type: CRYPTO (0x0000000000000006) # 幀的分類(加密幀)Offset: 0 # 初始偏置Length: 1211 # 數據長度Crypto Data # 加密的數據TLSv1.3 Record Layer: Handshake Protocol: Client Hello (fragment) # TLS握手Handshake Protocol: Client Hello (fragment)Reassembled Handshake Message in frame: 33
五、實驗總結
本次實驗使用Wireshark軟件,對無線局域網中使用的QUIC(快速UDP互聯網連接)協議進行了初步探測和報文分析,對協議的發展歷史和工作原理獲得了初步了解。
六、參考文獻
1、《計算機網絡(第7版)》,謝希仁 編著,北京,電子工業出版社,2017年10月;
2、《Kali Linux 2 網絡滲透測試——實踐指南(第2版)》,李華峰 著,北京,人民郵電出版社,2021年3月。