11.1 OSI 模型
協議可通過網絡在計算機之間進行通信。
協議是一組規則和限制,用于定義數據如何通過網絡介質(如雙絞線、無線傳輸等)進行傳輸。
國際標準化組織(ISO)在20世紀70年代晚期開發了開放系統互連(OSI)參考模型。
11.1.1 OSI模型的歷史
OSI 參考模型(通常被稱為OSI模型):20世紀70年代晚期開發,(直到1984年才正式作為ISO標準7498 發布)。
TCP/IP 協議(現在也被稱為TCP/IP模型):使用最廣泛(基于國防部高級研究計劃局模型),20世紀70年代早期開發。
。
OSI模型的開發旨在給所有計算機系統建立通用的通信結構或標準。
OSI模型充當著一個抽象框架或理論模型,用于描述協議在理想的世界里以及理想的硬件上應如何運行,已成為一個共同參考。
11.1.2 OSI 功能
OSI模型將網絡任務分為七層。
每層負責執行特定任務或操作,以支持兩臺計算機之間的數據交換(即網絡通信)。
這些層用名稱或層號來表示(參見圖11.1);每一層都按特定順字排列,以表明信息如何通過不同的通信層進行傳遞。
每一層直接與上面的層以及下面的層通信。
圖11.1 OSI 模型的表示
11.1.3 封裝/解封
OSI模型代表的是多個協議(即多層協議)分層集合的協議棧,協議層之間的通信通過封裝和解封實現。
封裝 是指在將每層從上面的層接收到的數據傳遞到下面的層之前,為其添加頭部,也可能添加尾部。
當消息被封裝在每一層時,前一層的頭和有效載荷成為當前層的有效載荷。
數據從物理層到應用層向上移動時的逆操作被稱為解封。
封裝/解封過程:
- 應用層接收數據。
應用層通過添加信息頭來封裝消息。
信息通常僅在消息的開頭(稱為頭部)添加;但某些層還會在消息末尾添加內容(稱為尾部)。
應用層將封裝的消息傳遞給表示層。
圖11.2 OSI 模型封裝的示意圖
(2) 向下傳遞消息并添加特定層的信息的過程將一直持續,直到消息到達物理層。
(3) 在物理層,消息被轉換為用比特表示的電脈沖,并通過物理連接傳輸。
(4) 接收計算機從物理連接中捕獲比特,在物理層中重新創建消息,并將消息發送到數據鏈路層。
(5) 數據鏈路層剝離其信息并將消息發送到網絡層。
(6) 執行解封過程,直到消息到達應用層。
(7) 當郵件到達應用層時,郵件中的數據將發送給目標收件人。
每層刪除的信息包含指令、校驗和等,只有最初添加或創建信息的對等層能理解(參見圖11.3) 。
這被稱為對等層通信。
圖11.3 OSI模型對等層邏輯信道示意圖
發送到應用層(第7層)協議棧的數據被封裝到網絡容器中。
協議數據單元(PDU) 隨后被傳遞到表示層(第6層),表示層又將其傳遞到會話層(第5層)。
該網絡容器被稱為第7、第6和第5層的PDU, 一旦它到達傳輸層(第4層),它將被稱為段(TCP)或數據報(UDP)。
在網絡層(第3層)中,它被稱為數據包。
在數據鏈路層(第2層)中,它被稱為幀。
在物理層(第1層)中,網絡容器被轉換為比特,以便通過物理連接介質傳輸。
圖11.4 顯示了應用于各層網絡容器的標簽。
圖11.4 OSI模型基于層的網絡容器名稱
11.1.4 OSI 模型層次
1. 應用層
應用層(第7層)負責將用戶應用程序、網絡服務或操作系統與協議棧相連接。
軟件應用程序不在此層內;相反,這里可找到傳輸文件、交換消息、連接到遠程終端等所需的協議和服務。
2. 表示層
表示層(第6層)負責將數據轉換為遵循OSI模型的任何系統都能理解的格式。
它將通用或標準化的結構和格式規則強加在數據之上。表示層還負責加密和壓縮。
在TCP/IP網絡上,沒有實際的表示層。
目前不需要為網絡傳輸重新格式化數據,協議棧壓縮僅與一些加密操作協同進行。
與網絡通信相關的加密至少可以在五個位置進行:
?預先加密,軟件在將數據發送到應用層之前進行加密。
?傳輸層加密通常由TLS執行。
?VPN加密,可發生在第2、第3或第4層,具體取決于使用的VPN技術(例如L2TP、IPsec或OpenVPN) 。
?數據鏈路層的無線加密。
?物理層的批量加密(由網卡外部的設備提供)。
3. 會話層
會話層(第5層)負責建立、維護和終止兩臺計算機之間的通信會話。
它管理對話規則或對話控制(單工、半雙工、全雙工),建立分組和恢復的檢查點,并重傳自上次驗證檢查點以來失敗或丟失的PDU。
在TCP/IP網絡上,沒有實際的會話層。
會話層功能由TCP在傳輸層處理,或者使用UDP時根本不處理。
—————————————————————————————————————————
提示:
通信會話三種約束或控制模式:
?單工單向通信。
?半雙工雙向通信,但一次只能向一個方向發送數據。
?全雙工雙向通信,可以同時向兩個方向發送數據。
—————————————————————————————————————————
4. 傳輸層
傳輸層(第4層)負責管理連接的完整性并控制會話。
傳輸層在節點(也稱為設備)之間建立通信連接并定義會話規則。
會話規則指定每個段可包含多少數據,如何驗證消息的完整性,以及如何確定數據是否已丟失。
會話規則是通過握手過程建立的(請參考后面的“傳輸層協議”一節,了解TCP的SYN/ACK三次握手)。
傳輸層在兩個設備之間建立邏輯連接,并提供端到端傳輸服務以確保數據傳輸。
該層包括用于分段、排序、錯誤檢查、控制數據流、糾錯、多路復用和網絡服務優化的機制。
以下協議在傳輸層中運行:
?傳輸控制協議(Transmission Control Protocol,TCP)
?用戶數據報協議(User Datagram Protocol,UDP)
?傳輸層安全(Transport Layer Security,TLS)
※(TLS)最好的保護了敏感信息泄露
5. 網絡層
網絡層(第3層)負責邏輯尋址和執行路由。
當地址由軟件或協議分配和使用,而不是由硬件提供和控制時,就會發生邏輯尋址。
數據包的包頭包括,源和目標IP地址。
網絡層負責提供路由或傳遞導航信息,但它不負責驗證信息是否傳遞成功。
網絡層還管理錯誤檢測和節點數據流量(即流量控制)。
※
—————————————————————————————————————————
非IP傳統協議
非IP協議是在OSI網絡層(第3層)用來替代IP的協議。
隨著TCP/IP的主導和成功,非IP協議(即傳統協議)已成為專用網絡的范疇,例如IPX、AppleTallc和NetBEUI。
非IP協議很少見,因此大多數防火墻無法對這些協議執行數據包標頭、地址或有效載荷內容過濾。
但非IP協議可封裝在IP中,以便通過互聯網進行通信,因此傳統協議而要被阻止。
—————————————————————————————————————————
路由器是在第3層運行的基本網絡硬件設備。
路由器根據速率、跳數、首選項等確定數據包傳輸的最佳邏輯路徑。
路由器使用目標IP地址來指導數據包的傳輸。
—————————————————————————————————————————
路由協議
內部路由協議有兩大類:距離矢量和鏈路狀態。
1.距離矢量路由協議,維護目標網絡的列表,以及以跳數度量的方向和距離度量(即到達目的地的路由器的數量)。
2.鏈路狀態路由協議,收集路由特性,將速率、延遲、誤碼率和實際使用的資金成本等信息制成表格,以做出下一跳的路由決策。
距離矢量路由協議的常見示例:RIP和IGRP
鏈路狀態路由協議的常見示例:OSPF 和IS-IS
還有一種常用的高級距離向量路由協議(advanced distance vector routing protocol)一一增強型內部網關路由協議(EIGRP),它替代了IGRP。
外部路由協議的一種主要類型被稱為路徑向量路由協議。
路徑向量路由協議,根據到目的地的整個剩余路徑(即向量)做出下一跳決策。
這與內部路由協議不同,內部路由協議僅根據相關的信息來決定下一跳。
內部路由協議是短視的,而外部路由協議是有遠見的。
路徑向量協議的主要示例:邊界網關協議(BGP)。
通過配置路由器,使其僅接受來自其他經過身份認證的路由器的路由更新,可以強制執行路由安全。
對路由器的管理訪問在物理和邏輯上應該僅限于特定的授權實體。同樣重要的是保持路由器固件更新。
—————————————————————————————————————————
6. 數據鏈路層
數據鏈路層(第2層)負責將數據包格式化為傳輸格式。
正確格式由網絡硬件、拓撲和技術決定,如以太網(IEEE 802.3)。
對數據鏈路層內的網絡容器處理包括將源和目標硬件地址添加到幀的操作。
硬件地址是MAC地址,它是一個6字節(48位)的二進制地址,并以十六進制表示法編寫(如00-13-02- lF-58-FS),也被稱為物理地址、NIC地址和以太網地址。
地址的前3個字節(24 位)是組織唯一標識符(OUI), 表示網卡供應商或制造商。
OUI在電氣和電子工程師協會(IEEE)注冊,并控制其發行OUI可用于通過IEEE網站發現網卡的制造商。
最后3個字節(24 位)表示制造商分配給該接口的唯一編號。
一些制造商將信息編碼到最后24位,代表制造商、型號和生產線的唯一值,因此,一些使用唯一NIC的設備(如移動設備、物聯網設備和嵌入式系統)可以通過MAC地址進行識別。
在OSI模型的數據鏈路層(第2層的協議中,你應該熟悉地址解析協議(ARP)。
請參閱本章后面的“ARP 關注點”一節。
在第2層(數據鏈路層)運行的網絡硬件設備:交換機和網橋。
這些設備支持基于MAC的流量路由。
交換機在一個端口上接收禎,并根據目標MAC地址將其發送到另一個端口。
MAC地址目的地用于確定幀是否通過網橋從一個網段傳輸到另一個網段。
7. 物理層
物理層(第1層)將幀轉換為比特,以便通過物理連接介質進行傳輸;反之亦然,以便接收通信。
在第1層(物理層)運行的網絡硬件設備:NIC、集線器、中繼器、集中器和放大器。
這些設備執行基于硬件的信號操作,例如從一個連接端口向所有其他端口(集線器)發送信號或放大信號,以支持更大的傳輸距離(中繼器)。
11.2 TCP/IP 模型
TCP/IP模型(也稱為DARPA模型或DOD模型)僅由四層組成,而OSI參考模型則為七層。
TCP/IP模型的四個層:
■ 應用層(也稱為進程)
■ 傳輸層(也稱為主機到主機)
■ 互聯網層(也稱為網絡互聯)
■ 鏈路層(盡管使用網絡接口,有時也使用網絡訪問)。
圖11.5 顯示了它們與OSI模型的七個層的對比。TCP/IP協議套件的開發早于OSI參考模型的創建。
圖11.5 將OSI模型與TCP/IP模型進行比較+
—————————————————————————————————————————
提示:
TCP/IP模型層名稱和OSI模型層名稱可互換使用,因此必須了解在各種上下文中如何選用模型。
除非另有說明,否則始終假設以OSI模型為基礎,因為它是使用最廣泛的網絡參考模型。
—————————————————————————————————————————
TCP/IP模型直接源自TCP/IP協議套件或許多單獨協議組成的協議棧。
TCP/IP是一種基于開放標準的獨立于平臺的協議。
TCP/IP幾乎支持所有操作系統,但會消耗大量系統資源并且相對容易被入侵,因為它的設計初衷是易用性和互操作性,而不是安全性。
TCP/IP的漏洞很多。
如果在各種操作系統中不正確地實現TCP/IP堆棧,將容易受到以下攻擊:
■ 緩沖區溢出攻擊
■ SYN洪水攻擊
■ 各種拒絕服務(DoS)攻擊
■ 碎片攻擊
■ 超大數據包攻擊
■ 欺騙攻擊
■ 中間人攻擊(路徑攻擊)
■ 劫持攻擊
■ 編碼錯誤攻擊
TCP/IP(以及大多數協議)也會受到監視或嗅探等被動攻擊。
11.3 網絡流量分析
網絡流量分析是管理網絡的基本功能。
它可以用于跟蹤惡意通信、檢測錯誤或解決傳輸問題。
然而,網絡竊聽也可能被用于違反通信保密性和/或充當后續攻擊的信息收集階段。
協議分析器是用于檢查網絡流量內容的工具。
協議分析器可以是安裝在典型主機系統上的專用硬件設備或軟件。
協議分析器是一種幀/數據包捕獲工具,可以收集網絡流量并將其存儲在內存或存儲設備中。
捕獲幀或數據包后,可以使用復雜的自動化工具和腳本或手動對其進行分析。
協議分析器也可被稱為嗅探器、網絡評估器、網絡分析器、流量監視器或包捕獲實體。
嗅探器通常是一種數據包(或幀)捕獲工具,而協議分析器能夠解碼和解釋數據包/幀內容。
協議分析器通常將NIC置于混雜模式,以查看和捕獲本地網段上的所有以太網幀。
在混雜模式下,NIC忽略以太網幀的目標MAC地址,并收集到達接口的每個幀。
協議分析器可以檢查單個幀,直至二進制級別。
大多數分析器或嗅探器會自動將標題的內容解析為可擴展的輸出行形式。
在標題詳細信息中可以很容易地看到任何配置或設置。
數據包的有效負載通常以十六進制和ASCII格式顯示。
協議分析器通常同時提供捕獲過濾器和顯示過濾器。
捕獲過濾器是一組規則,用于控制哪些幀被保存到捕獲文件或緩沖區中,以及哪些幀被丟棄。
顯示過濾器僅顯示數據包文件或緩沖區中符合要求的幀。
協議分析器非常多樣,從簡單的原始幀/數據包捕獲工具,到全自動分析引擎,各有不同。
■開源(如Wireshark)
■商業(如Omnipeek、NetWitness和NetScout)選項。
11.4 通用應用層協議
OSI模型的應用層存在許多特定于應用或服務的協議。
■ Telnet,TCP 23端口
是一個終端仿真網絡應用程序,支持遠程連接以執行命令和運行應用程序,但不支持文件傳輸。
不應使用Telnet, 而應該用SSH替代。
■ FTP,TCP 20端口(活動數據連接)/短暫(被動數據連接)和21(控制連接)端口
是一個網絡應用程序,支持需要匿名或特定身份認證的文件傳輸。不應使用FTP,而應該用SFTP或FTPS替代。
■ TFTP,UDP 69端口(Trivial File Transfer Protocol,簡單文件傳輸協議)
是一個支持不需要身份認證的文件傳輸的網絡應用程序。
用于承載網絡設各配置文件,并可支持多播。不應使用TFTP。
■ SMTP,TCP 25端口(簡單郵件傳輸協議)
是一種用于將電子郵件從客戶端傳輸到電子郵件服務器以及從一個電子郵件服務器傳輸到另一個電子郵件服務器的協議。
僅在使用TLS加密創建SMTPS時使用。
■ POP3,TCP 110端口(Post Office Protocol - Version 3”,即“郵局協議版本3”)
是一種用于將電子郵件從電子郵件服務器上的收件箱中拉到電子郵件客戶端的協議(即客戶端存檔)。
僅在使用TLS加密創建POPS時使用。
■ IMAP(IMAP4),TCP 143端口
是一種用于將電子郵件從電子郵件服務器上的收件箱拉到電子郵件客戶端的協議。
IMAP能僅從電子郵件服務器中檢索標頭并直接從電子郵件服務器刪除郵件(即服務器存檔)。
僅在使用TLS加密創建IMAPS時使用。
■ DHCP,UDP 67(服務器)端口和68(客戶端)端口
用于集中控制啟動時為系統分配的TCP/IP 配置設置。
■ HTTP,TCP 80端口
是用明文將Web頁面元素從Web服務器傳輸到Web瀏覽器的協議。
■ HTTPS,TCP 443 端口
是HTTP的TLS加密版本。(帶TLS的HTTPS支持使用TCP 80端口,但僅用于服務器到服務器的通信。)
■ LPD,TCP 515端口
是一種網絡服務,用于假脫機打印作業以及將打印作業發送到打印機。應封閉在VPN中使用。
■ X Window,TCP 6000~6063端口
是用于命令行操作系統的GUI API。應封閉在VPN中使用。
■ NFS,TCP 2049端口
是一種網絡服務,用于支持不同系統之間的文件共享。應封閉在VPN中使用。
■ SNMP,UDP 161端口(用于陷阱消息的是UDP 162端口)
是一種網絡服務,用于從中央監控服務器收集網絡運行狀況和狀態信息。
僅SNMP v3是安全的。若要了解更多有關安全協議的示例,請參考后面的小節“安全通信協議”。
—————————————————————————————————————————
SNMPv3
SNMP是大多數網絡設備和TCP/IP兼容主機支持的標準網絡管理協議。
這些設備包括:路由器、交換機、無線接入點(WAP)、防火墻、VPN設備和打印機等。
從管理控制臺,你可使用SNMP與各種網絡設備進行交互,以獲取狀態信息、性能數據、統計信息和配置詳細信息。
某些設備支持通過SNMP修改配置設置。
早期版本的SNMP將明文傳輸的社區名用于身份認證。
社區名表示網絡設備集合。
原始默認社區名是公共和私有的。
最新版本的SNMP允許加密通信,以及強大的身份認證因素。
SNMP代理(即網絡設備)使用UDP 161端口接收請求,管理控制臺使用UDP 162端口接收響應和通知(也被稱為Trap消息)。
當受監視的系統上發生事件并觸發閾值時,Trap消息會通知管理控制臺。
—————————————————————————————————————————
11.5 傳輸層協議
如果連接是通過傳輸層建立的,那么該過程是利用端口實現的。
端口號是16位二進制數,因此端口總數為2^16或65536,編號為0到65535。
端口允許單個IP地址同時支持多個通信,每個通信使用不同的端口號(即通過IP多路復用)。
IP地址和端口號的組合被稱為套接字。
■ 這些端口中的前1024 個(0~1023)被稱為眾所周知的端口或服務端口。
這些端口被保留,以供服務器獨占使用。
■ 端口1024-49151被稱為已注冊的軟件端口。
這些端口具有一個或多個專門在IANA(互聯網編號分配機構)網站上注冊的網絡軟件產品。
■ 端口49152-65535被稱為隨機、動態或臨時端口,它們通常被客戶端隨機地臨時用作源端口。
■ 但是,大多數OS允許1024以后的任何端口被用作動態客戶端源端口,前提是該端口尚未在本地系統上使用。
TCP/IP的兩個主要傳輸層協議是TCP和UDP。
TCP是一種面向連接的全雙工協議,而UDP是一種無連接單工協議。
TCP協議,支持全雙工通信,面向連接,并采用可靠的會話。
TCP是面向連接的,因為它在兩個系統之間使用握手過程來建立通信會話。
三次握手過程(圖11.6) 如下:
(1) 客戶端將SYN(同步)標記的數據包發送到服務器。
(2) 服務器以SYN/ACK(同步和確認)標記的數據包響應客戶瑞。
(3) 客戶端以ACK(確認)標記的數據包響應服務器。
斷開TCP會話的方法:
■ 最常見的方法是使用FIN(完成)標記的數據包來優雅地終止TCP會話。
■ 第二種方法是使用RST(重置)標記的數據包,這會導致會話立即或突然終止。
圖11.6 TCP 的二次握手
當需要數據傳輸時,應采用TCP。
在未接收到傳輸窗口所有分組的情況下,不發送確認。超時后,發送者將再次發送整個傳輸窗口的數據包。
TCP能保證傳輸,因為它將繼續重新發送任何未確認的段,直至其收到確認或收到RST, 本地應用程序終止網絡通信嘗試,或系統斷電。
UDP協議,也在OSI模型的第4層(傳輸層)上運行,是一種無連接的“盡力而為"的通信協議。
它不提供錯誤檢測或糾正,不使用排序,不使用流量控制機制,不使用預先建立的會話,因而被認為是不可靠的。
UDP具有非常低的開銷,因此可以快速傳輸數據。但是,只有在傳輸不重要的數據時才應使用UDP。
UDP通常用于音頻或視頻的實時或流通信。
11.6 域名系統
應當熟悉三種編號和尋址概念。
?域名
域名或計算機名是在IP地址上分配的人性化的“臨時“約定。
?IP地址
IP地址是在MAC地址上分配的“臨時“邏輯地址。
?MAC地址
MAC地址或硬件地址是”永久”物理地址。
—————————————————————————————————————————
“永久”和“臨時“地址
這兩個詞其實不完全準確。
MAC地址,被設計為永久物理地址,但通常可以更改。當NIC支持更改時,硬件上會發生更改。
當操作系統支持更改時,更改僅發生在內存中,但看起來像是對所有其他網絡實體的硬件更改(稱為MAC欺騙)。
IP地址,是臨時的,因為它是個邏輯地址,可隨時通過DHCP或管理員進行更改。但在一些情況下,系統會靜態分配IP地址。
計算機名或DNS名,可能看起來是永久性的,但它們是邏輯的,因此可由管理員進行修改。
—————————————————————————————————————————
DNS將人性化的域名解析為對應的IP地址。
然后,ARP(見后面的“ARP關注點”一節)將IP地址解析為對應的MAC地址。
如果域文件中定義了PTR(即指針)記錄,那么,還可通過DNS反向查找將IP地址解析為對應的域名。
IP地址可靜態分配或通過DHCP動態分配。
DNS是公共和專用網絡中使用的分層命名方案。
DNS將IP地址和人性化的完全限定域名(FQDN)鏈接在一起。
FQDN包含三個主要部分:
?頂級域名(TLD)——www.google.com 中的com
?注冊域名——www.google.com 中的google
?子域或主機名——www.google.com 中的WWW
頂級域名可以是任意數量的官方選項,包括:
■ 最初的七個頂級域名中的六個——com、org、edu、mil、gov和net,
■ 許多新的頂級域名,如info, museum、telephone、mobi、biz等。
■ 還有兩字母的國家/地區的變化,被稱為國家/地區代碼。
第七個初始TLD是int(國際的);國家/地區代碼用兩個字母表示。
域名必須在任意數量的已批準域名注冊商之一正式注冊,例如Network Solutions或者IONOS。
FQDN最左邊的部分可以是單個主機名,如www、ftp、blog、image等,
或多節子域名稱,如serverl.group3. bldg5.myexamplecompany.com。
- FQDN的總長不能超過253個字符(包括點)。
- 任何單個部分不能超過63個字符。
- FQDN只能包含字母、數字和連字符。
- TLD右側有一個點(通常不顯示),表示整個DNS命名空間的根。
每個注冊的域名都有一個指定的權威名稱服務器。
主要的權威名稱服務器托管域的可編輯的原始區域文件。
輔助的權威名稱服務器可用于托管區域文件的只讀副本。
區域文件是資源記錄的集合或有關特定域的詳細信息。
有許多可能的資源記錄,例如,將FQDN鏈接到IPv4地址的記錄和將FQDN鏈接到IPv6地址的AAAA記錄。
最初,DNS由HOSTS文件的靜態本地文件處理。
HOSTS文件包含域名及其關聯IP地址的固定引用。
此文件現在仍然存在于大多數支持TCP/IP的計算機上,但動態DNS查詢系統已經基本取代它。
管理員或黑客可以向HOSTS文件添加內容。
當客戶端軟件指向FQDN時,解析過程首先檢查本地DNS緩存。
DNS緩存包括來自本地HOSTS文件的預加載內容以及DNS查詢結果(尚未超時)。
如果所需答案不在緩存中,則DNS查詢被發送到本地IP配置中顯示的DNS服務器。
解析查詢過程的剩余環節既有趣又復雜,但大多數與(Isc)2 CISSP考試無關。
DNS通過TCP和UDP端口53運行。
TCP端口53用于區域傳輸。
這些是DNS服務器之間的區域文件交換,用于特殊手動查詢,或響應超過512字節的情形。
UDP端口53用于大多數典型的DNS查詢。
域名系統安全擴展(Domain Name System Security Extensions, DNSSEC)是對現有DNS基礎結構的安全性改進。
DNSSEC的主要功能是在DNS操作期間在設備之間提供相互驗證和過程加密。
DNSSEC已在DNS系統的重要部分實施。
一旦完全實施,DNSSEC將顯著減少以服務器為中心的DNS濫用,例如:域文件中毒和DNS緩存中毒。
但是,DNSSEC僅適用于DNS服務器,而不適用于對DNS服務器執行查詢的系統(如客戶端)。
對于非DNS服務器(主要是客戶端設備),尤其是在使用互聯網時,應該考慮通過HTTPS(DoH)使用DNS。
此系統與受TLS保護的HTTP的DNS服務器創建加密會話,然后將該會話用作VPN的一種形式,以保護DNS查詢和響應。
2020年后期對DoH的增強是隱性DoH(ODoH)。
ODoH在客戶端和DNS解析程序之間添加DNS代理,以便將客戶端的身份與DNS解析程序隔離。
因此,ODoH為DNS查詢提供匿名性和隱私保護。
—————————————————————————————————————————
提示:
若要深入討論DNS的操作和已知問題,請參閱“KatninskyDNS漏洞圖解指南”。
—————————————————————————————————————————
11.6.1 DNS中毒
DNS中毒是偽造客戶端使用的DNS信息以到達所需系統的行為。它可以通過多種方式發生。
每當客戶端需要將DNS名稱解析為IP地址時,它可能經歷以下過程:
(1) 檢查本地緩存(包括HOSTS文件中的內容)。
(2) 將DNS查詢發送到已知的DNS服務器。
(3) 將廣播查詢發送到任何可能的本地子網DNS服務器(此步驟未得到廣泛支持)。
如果客戶端在上述三個步驟都沒有解析到對應的IP,則解析失敗,無法發送通信內容。
有許多方法可以攻擊或利用DNS, 其中大多數方法用于返回錯誤結果。
(1)流氓DNS服務器
流氓DNS服務器可偵聽網絡流量以查找與目標站點相關的任何DNS查詢或特定DNS杳詢。
然后,流氓DNS服務器使用錯誤的IP信息向客戶端發送DNS響應。
一旦客戶端收到來自流氓DNS服務器的響應,客戶端就會關閉DNS查詢會話,這會導致真實DNS服務器的響應被丟棄并作為會話外數據包被忽略。
DNS查詢未經過身份認證,但它們包含一個16位的值,該值被稱為查詢ID(Query ID,QID)。
DNS響應必須包含與要接受的查詢相同的QID。
因此,流氓DNS服務器必須將請求QID納入虛假回復中。
(2)執行DNS緩存中毒
DNS中毒涉及攻擊DNS服務器并將不正確的信息放入域文件或緩存中的行為。
■針對權威DNS服務器 的攻擊旨在更改主權威DNS服務器上域文件中FQDN的主記錄。
這會導致真正的DNS服務器將錯誤數據發送回客戶端。
然而,針對權威DNS服務器的攻擊通常很快就會被注意到,因此很少導致廣泛的攻擊。
因此,大多數攻擊者將重點放在緩存DNS服務器上。
■緩存DNS服務器 是用于緩存來自其他DNS服務器的DNS信息的DNS系統。
存儲在緩存DNS服務器上的內容不受全球安全社區的監控,而只受本地運營商的監控。
因此,針對緩存DNS服務器的攻擊可能會在很長一段時間內不經通知就發生,這種變化被稱為DNS緩存中毒。
盡管這兩種攻擊都集中在DNS服務器上,但它們最終會影響客戶端。
一旦客戶端執行了動態DNS解析,從權威DNS服務器或緩存DNS服務器接收的信息將臨時存儲在客戶端的本地DNS緩存中。
如果該信息為假,則客戶端的DNS緩存已中毒。
(3)DNS域欺騙(DNS Pharming)
域欺騙是將有效網站的URL或IP地址惡意重定向到假網站的行為。
域欺騙通常通過修改系統上的本地HOSTS文件或通過毒化或欺騙DNS解析來實現。
(4)改變HOSTS文件
通過在HOSTS文件中放置虛假DNS數據來修改客戶端上的HOSTS文件的行為會將用戶重定向到錯誤位置。
如果攻擊者能夠在HOSTS文件中植入錯誤信息,則當系統引導HOSTS文件的內容時,這些信息將被讀入內存,并在內存中占據優先地位。
這種攻擊是有效的,但也具有很強的針對性。它只影響本地HOSTS文件損壞的單個系統。
如果攻擊者希望造成更廣泛的傷害,則應采用其他方法,那樣會更有效。
(5)破壞IP配置
破壞IP配置的行為可能導致客戶端具有錯誤的DNS服務器定義(即DNS查找地址更改)。
DNS服務器地址通常通過DHCP被分配給客戶端,也可以被靜態分配。
通過破壞DHCP或腳本,可以執行更改DNS服務器中客戶端查找地址的攻擊。
(6)DNS查詢欺騙
當黑客能夠竊聽客戶端對DNS服務器的查詢時,就會發生DNS查詢欺騙攻擊。
然后,攻擊者發回帶有虛假信息的回復。為使此操作成功,錯誤回復必須包含正確克隆的查詢QID。
(7)使用代理偽造
雖然代理偽造攻擊嚴格來說不是DNS問題,但如果客戶端必須解析代理的域名才能使用代理,則可以通過DNS來實施代理偽造攻擊。
攻擊可能會修改本地配置、配置腳本或路由表,以將通信重定向到錯誤的代理。
此方法僅適用于Web通信(或使用代理的其他服務或協議)。
惡意代理服務器可修改流量包,以將請求重新定向到黑客想要的任何站點。
—————————————————————————————————————————
提示:
可以使用DNS濫用(如DNS緩存中毒)執行路徑攻擊(也稱為中間人攻擊MITM)。
一旦客戶端接收到來自DNS的響應,該響應將被緩存以供將來使用。
如果可以將錯誤信息輸入DNS緩存,則可非常輕易地將通信錯誤地定向。
有關此類攻擊的更多信息,請參見第17章。
—————————————————————————————————————————
DNS中毒的防御措施
雖然有許多DNS中毒方法,但你可采取一些基本的安全措施,從而極大地降低其威脅程度。
? 限制從內部DNS服務器到外部DNS服務器的區域傳輸。
這是通過阻止入站TCP端口53(區域傳輸請求)和UDP端口53(查詢)來實現的。
? 要求內部客戶端通過內部DNS解析所有域名。
這將要求你阻止出站UDP端口53 (用于查詢),同時保持打開的出站TCP端口53 (用于區域傳輸)。
? 限制外部DNS服務器。內部DNS服務器從這些外部DNS服務器拉取區域傳輸。
? 部署網絡入侵檢測系統(NIDS) 以監視異常DNS流量。
? 正確加固專用網絡中的所有DNS、服務器和客戶端系統。
? 使用DNSSEC保護DNS基礎設施。
? 在所有支持的客戶端上使用DoH或ODoH 。
沒有簡單的補丁或更新可以阻止這些針對客戶端的攻擊。
這是因為這些攻擊利用了各種協議、服務和應用程序中內置的正常和適當的機制。
因此,防御多為探測性和預防性的。
? 安裝HIDS和NIDS工具以監控這些類型的濫用。
? 定期查看DNS和DHCP系統的日志,以及本地客戶端系統日志,還有防火墻、交換機和路由器日志,以查找異常或可疑事件的條目。
? 組織應使用拆分DNS系統(也被稱為分裂地平線DNS、分割視圖DNS和拆分大腦DNS) 。
拆分DNS,部署供公共使用的DNS服務器和供內部使用的獨立DNS 服務器。
公共DNS,服務器上域文件中的所有數據都可由公眾通過查詢或探查進行訪問。
內部DNS,僅供內部使用,只有內部系統被授予與內部DNS 服務器交互的權限。
? 通過阻止TCP和UDP的入站端口53,可禁止外部人員訪問內部DNS服務器。
TCP53用于區域傳輸(包括大多數DNS服務器到DNS服務器的通信),UDP 53用于查詢(任何向DNS服務器發送查詢的非DNS系統)。
? 可對內部系統進行配置,使其僅與內部DNS服務器交互,也可允許它們向外部DNS服務器發送查詢(這要求防火墻是一個狀態檢查防火墻,其配置允許響應從已批準的出站查詢返回到內部系統)。
? 另一個DNS防御機制是DNS陷坑。
DNS陷坑,是虛假測量系統(又名陷坑服務器、互聯網陷坑和DNS黑洞)的具體示例。
這種技術被有效地用于防御DNS欺騙。
■ DNS陷坑試圖對來自惡意軟件(如機器人)的DNS查詢提供錯誤晌應,以阻止訪問命令,并防止系統被控制。
■ 它還可用來阻止用戶訪問已知的惡意或釣魚網站。
因此,DNS陷坑可用于惡意和善意/調查/防御目的。
11.6.2 域名劫持
域名劫持或域名盜竊,是在未經所有者授權的情況下更改域名注冊的惡意行為。
實現方式:通過竊取所有者的登錄憑證、使用XSRF、會話劫持、路徑/MITM攻擊或利用域名注冊商系統中的缺陷。
例子:2017年9月發生的Fox-IT.com域名被盜事件。
有時,如果另一個人在原始所有者的注冊過期后立即注冊域名,這種行為也被稱為域名劫持,但事實并非如此。
這可能是一種不道德的做法,但它并非真正的黑客攻擊。它正是利用原始所有者未能自動續訂域名的漏洞實現的。
如果原始所有者因未能保持注冊而丟失域名,那么他通常沒有追索權,而只能聯系新所有者并請求重新獲得控制權。
如果一個組織失去域名控制權并且由其他人接管控制權,這對組織及其客戶和訪問者來說都可能是一個毀滅性事件。
新FQDN所有者可能托管完全不同的內容或上一個網站的虛假副本。
后續活動可能欺騙訪問者,類似于網絡釣魚攻擊,可能會提取和收集個人身份信息(PII)。
防止域名劫持的最佳措施:在登錄域注冊器時使用強多因素身份認證。
為了防止域名注冊失效,請設置自動續費,并在續費日期前一周再次檢查付款方式。
誤植域名攻擊(typosquatting)
當用戶錯誤輸入預期域名或IP地址時,這種錯誤如果被攻擊者利用,則總味著發生了誤植域名攻擊。
攻擊者預測URL可能的輸入錯誤,然后注冊這些域名,將流量引導到自己的網站。
用于誤植域名的變體包括:
- 常見的拼寫錯誤(如googel.com)
- 名稱或單詞上的鍵入錯誤(如gooogle.com)
- 變體(如googles.com 中的復數)
- 不同的頂級域(TLD) 如google.edu等
同形詞攻擊
另一個DNS、地址或超鏈接問題是同形詞攻擊。
這些攻擊利用字符集的相似性來注冊肉眼看起來合法的虛假國際域名(IDN) 。
例如,在許多字體中,西里爾文的一些字母看起來像拉丁字符;
例如,拉丁語中的l(即小寫L)看起來像帕洛卡西里爾字母。
因此,apple.com和paypal.com 的域名看起來可能是拉丁字符,但實際上可能包含西里爾字符,解析后會將你指向不同的站點。
URL劫持
URL劫持指的是顯示其他鏈接或廣告的行為。
該鏈接或廣告看起來像知名產品、服務或網站的鏈接或廣告,但單擊后會將用戶重定向到其他位置、服務或產品。
這可以通過發布站點和頁面、利用搜索引擎優化(SEO)來實現,或者通過使用廣告軟件來取代合法廣告和鏈接,從而使其導向其他或惡意的位置。
點擊劫持
點擊劫持攻擊將用戶在網頁上的點擊或選擇重定向到另一個目標(通常是惡意的),而不是其預期位置。
點擊劫持的手段之一是在顯示的頁面上添加不可見或隱藏的覆蓋、框架或圖像。
用戶看到原始頁面,但任何鼠標點擊或選擇都將被頁面上浮動的幀捕獲并被重定向到惡意目標。
11.7 互聯網協議網絡
TCP/IP協議套件中的另一個重要協議在OSI模型的網絡層運行,即IP。IP為數據包提供路由尋址。
這條路線成為全球互聯網通信的基礎,因為它提供了一種身份識別手段并規定了傳輸路徑。
與UDP類似,IP是無連接的,因而是一種不可靠的通信服務。
IP不保證數據包一定能被傳送或數據包以正確順序傳送,也不保證數據包只被傳送一次。
然而,它的設計目的是盡最大努力找到通往目的地的通道或路由,而不管網絡結構是否已損壞。
因此,你必須在IP上使用TCP來建立可靠和受控的通信會話。
11.7.1 IPv4與IPv6
IPv4是世界上使用最廣泛的互聯網協議版本。但是,IPv6版本正快速用于私人和公共網絡。
IPv4使用32位尋址方案,而IPv6使用128位尋址。IPv6提供IPv4中沒有的許多新功能。
IPv6的一些新功能包括:作用域地址、自動配置和服務質量(QoS)優先級值。
通過分區地址,管理員可進行分組,然后阻止或允許訪問網絡服務,如文件服務器或打印。
自動配置不再需要DHCP和NAT。QoS優先級值允許基于優先級內容的流量管理。
另外,IPsec內置于IPv6中,但它是IPv4的附加組件。
—————————————————————————————————————————
提示:
IPv4的服務類型(ToS)是與IPv6的QoS對等的概念。然而,它未被使用,并被后來的規范轉換為差異服務(DS)。
DS字段提供了各種可定義的特征,用于管理業務流。
然而,它仍然沒有被執行這種管理的網絡設備廣泛使用或支持。
IPv6網絡包括更多的通用支持,并實際提供基于IPv6報頭數值的流量優先級服務。
—————————————————————————————————————————
2000年以后發布的大多數操作系統都支持IPv6,無論是系統自帶的還是通過額外的程序實現的。
IPv6已被逐漸推廣使用。大多數IPv6網絡目前位于私人網絡中,例如大公司、實驗室和大學。
若欲從谷歌的角度來了解互聯網上IPv4到IPv6的轉換狀態,請參閱IPv6統計信息。
向IPv6的過渡或遷移引起了幾個安全問題。
■ 一個問題是,隨著128位地址空間的增大,攻擊者可將更多的地址用作源地址;
因此,IP過濾和阻止列表的效果會降低,因為攻擊者可以使用不同的地址通過過濾器。
■ 第二個問題是,IPv6的安全部署要求在生產網絡上啟用協議之前,必須對所有安全篩選和監視產品進行升級,以完全支持IPv6。
否則,IPv6將充當一個隱蔽通道,不受監控和過濾。
■ IPv6的第三個問題是NAT的丟失或缺乏(見第12 章)。
因為公共IP地址的數量正在減少,IPv4要求使用NAT來支持越來越多的客戶端系統。
在IPv6中,地址的數量是天文數字(340 282 366 920 938 463 463 374 607 431768211 456),因此NAT不僅不是必需的,而且規范中未提及。
有人認為這會降低安全性;現實是,這在很大程度上降低了隱秘性。
被認為來自NAT的真正安全性實際上是由狀態檢查防火墻特意提供的,大多數網絡已經在使用這種附帶NAT的防火墻。
因為系統本地分配的IP地址沒有被NAT轉換為公共地址,因此會降低或失去隱秘性。
未來隨著IPv6地址被固定到NIC, 源系統的身份可能會變得難以隱藏,無論其是攻擊者,還是需要隱私的或需要不被追蹤的在線交易的個人(如吹哨者或因家暴尋求幫助的人)。
使用以下三種方法中的一個或多個,即可在同一網絡上使用IPv6 和IPv4: 雙堆棧、隧道或NAT-PT。
雙堆棧,意味著讓系統同時運行IPv4和IPv6, 并為每個會話使用適當的協議。
隧道,允許大多數系統操作IPv4 或IPv6的單個堆棧,并使用封裝隧道訪問其他協議的系統。
網絡地址及協議轉換(NAT-PT)(RFC-2766),可用于IPv4和IPv6網段之間的轉換,類似于NAT在內部和外部地址之間的轉換方式。
—————————————————————————————————————————
提示:
IPv4和IPv6都有一個頭字段,用于控制或限制無限傳輸。
IPv4的生存時間(TTL)字段和IPv6的跳數限制字段由路由器遞減,直至達到零(0) 。
一旦發生這種情況,數據包將被丟棄,并將ICMP類型11超時錯誤消息發送回源站。
—————————————————————————————————————————
11.7.2 IP分類
表11.1和表11.2概述了類和默認子網的關鍵細節。
完整的A類子網支持16777214個主機,完整的B類子網支持65534個主機,完整的C類子網支持254個主機。
D類用于多播,E類供將來使用。
表11.1 IP分類
注意,為環回地址留出整個A類網絡的127個地址,雖然此目的實際上只需要一個地址。
全0的A類網絡被定義為網絡黑洞,路由到該網絡的流量會被丟棄。
—————————————————————————————————————————
提示:
IPv4的環回地址是A類子網(127.0.0. l-127.255.255.254) 中的任何地址,即使通常只使用127.0.0.1這一地址。
當為環回配置接口時,未定義子網掩碼;默認情況下,它將使用255.255.255.255, 不過有些人會將其記錄為127.0.0.0/8。
還要注意,在IPV4下,子網的第一個地址保留為網段地址(即127.0.0.0) ,最后一個地址保留為定向廣播地址(即127.255.255.255) ,因此不能被直接用作主機地址(或環回地址)。
IPv6環回地址不是特定地址,而是一個符號:::1/128。
—————————————————————————————————————————
表11. 2 IP 類的默認子網掩碼
類似于IPv4地址的基于類的原始分組不再被嚴格遵守。
相反,人們采用基于可變長度子網掩碼(VLSM)和無類別域間路由(CIDR)的更靈活的系統。
CIDR使用掩碼位(而不是完整的點分十進制)表示子網掩碼。
例如,掩碼為255.255.0.0的網段172.16.0.0可用CIDR符號表示為172.16.0.0/16。
相對于傳統子網掩碼技術,CIDR的一個顯著優勢是能將多個不連續的地址組合成一個子網。
例如,可將多個C類子網組合成一個更大的子網分組。
11.7.3 ICMP
ICMP用于確定網絡或特定鏈路的運行狀況。
ICMP可用于ping、traceroute、pathping等網絡管理工具。
ping實用程序使用ICMP回顯包并將它們從遠程系統反饋回來。
可使用ping來確定:
?遠程系統是否在線
?遠程系統是否正在及時響應
?中間系統是否支持通信
?中間系統正在通信的性能效率級別
ping實用程序包含一個重定向函數,該函數允許將回顯響應發送到與源系統不同的目的地。
不幸的是,ICMP的功能常用于各種形式的基于帶寬的DoS攻擊,例如:死亡之ping、Smurf攻擊和ping洪水攻擊。
這一事實影響了網絡處理ICMP流量的方式,導致許多網絡限制了ICMP的使用,或者至少限制了其吞吐量。
11.7.4 IGMP
IGMP允許系統支持多播。多播將數據傳輸到多個特定接收者,RFC1112討論了執行IGMP多播的要求。
IGMP用于管理主機的動態多播組成員資格。
對于IGMP, 如果和預期接收者之間存在不同路徑,則單個初始信號在路由器處復用。
多播可以通過簡單文件傳輸協議(TFTP)系統來組織或緩存要發送給多個收件人的內容。
11.8 ARP關注點
地址解析協議(Address Resolution Protocol,縮寫ARP)
ARP用于將IP地址(用于邏輯尋址的32位二進制數)解析為MAC地址(用于物理尋址的48位二進制數)。
網段上的流量(例如通過交換機從客戶端到默認的網關,即路由器)使用MAC地址從源系統定向到其目標系統。
ARP承載以太網幀的有效載荷,是一個從屬的第2層協議。
ARP使用緩存和廣播來執行其操作。
第一步,是檢查本地ARP緩存。如果所需信息已存在于ARP 緩存中,則使用它。
如果ARP緩存不包含必要信息,則發送廣播形式的ARP請求。
如果查詢地址的所有者位于本地子網,則可使用ARP應答或響應估息進行響應。
如果不是,系統將默認使用其默認網關的MAC地址來轉發。
然后,默認網關(或者路巾器)將需要執行自己的ARP過程。
攻擊者若在ARP緩存中插入虛假信息,可導致緩存中毒,該技術被稱為ARP濫用。
? ARP緩存中毒或ARP欺騙是由以偽造的回復進行響應的攻擊者引起的。
每次收到ARP回復時,ARP緩存都會更新。
ARP緩存的動態內容,無論是中毒的還是合法的,都將保留在緩存中,直到出現超時(通常不到10分鐘)。
一旦IP地址到MAC地址的映射在緩存中被清除,攻擊者就有機會在客戶端重新執行ARP廣播查詢時毒害ARP緩存。
? 另一種形式的ARP中毒使用無目的的或未經請求的ARP回復。
當系統在沒有ARP查詢提示的情況下宣布MAC地址到IP地址的映射時,就會發生這種情況。
無目的的ARP廣播可以作為節點存在的通知發送,以更新由于IP地址或MAC地址變化而產生的ARP映射,
另外,當共享IP地址且可能共享相同MAC地址的冗余設備被使用時,定期發送無目的的ARP通知有助于確保可靠的故障切換。
? 第三種形式的ARP緩存中毒是靜態ARP條目的創建。
這是通過ARP命令完成的,必須在本地完成。
不幸的是,這很容易通過在客戶端上執行惡意腳本來實現。
但是,靜態ARP條目在重新啟動時不會留存。
防御方法:
? 針對基于ARP的攻擊的最佳防御是:實施交換機上的端口安全。
交換機端口安全措施可以禁止與未知、未經授權的惡意設備之間的通信,并且可以確定哪個系統正在響應所有ARP查詢,并阻止來自違規系統的ARP回復。
本地或軟件防火墻、主機入侵檢測和防御系統(HIDPS)或特定端點安全產品也可用于阻止未請求的ARP回復或通告。
檢測ARP中毒的一個流行工具是arpwatch。
? 另一種防御措施是建立靜態ARP條目。這可以用作攻擊/濫用,也可以用作防御。
但不推薦這樣做,因為它消除了系統適應不斷變化的網絡條件的靈活性,例如在設備進入和離開網絡時自動更新。
一旦定義了靜態ARP 條目,它將是“永久的“,因為它不會被任何ARP回復覆蓋,但它不會在重新啟動時保留(該功能被稱為持久性)。
每當系統重新啟動時,都需要在每個系統上精心編制引導或登錄腳本,以重新創建靜態條目。
11.9 安全通信協議
為特定應用程序的通信通道提供安全服務的協議被稱為安全通信協議。例子包括:
? IPsec(Internet Protocol Security,IPsec)基于IP協議,使用公鑰加密系統來提供加密、訪問控制、不可否認性和消息驗證。
IPsec主要用于虛擬專用網絡(VPN),因此IPsec可以在傳輸或隧道模式下運行。
IPsec是IP安全擴展的標準,被用作IPv4的附加組件,并集成到IPv6中。
第12章將進一步討論IPsec。
? Kerberos 為用戶提供單點登錄(SSO)解決方案,并為登錄憑證提供保護。
Kerberos的最新實現是使用混合加密來提供可靠的身份認證保護。
Kerberos將在第14章中進一步討論。
? SSH(Secure Shell,SSH)是端到端加密技術的一個很好的例子。
這種安全工具可用于加密許多明文應用程序(如rep、rlogin和rexec),或用作協議加密(如SFTP),也可用作傳輸模式VPN(即僅限主機到主機鏈路加密)。
SSH將在第12章中進一步討論。
? 信令協議 是一種加密協議,為語音通信、視須會議和文本消息服務提供端到端加密。
信令協議是非聯邦(nonfederated)協議,是名為“Signal" 的即時通信APP中的核心元素。
? 安全遠程過程調用(Secure Remote Procedure Call,S-RPC)是用于跨網絡服務通信的身份認證服務,旨在防止在遠程系統上未經授權執行代碼。
? 傳輸層安全(Transport Layer Security,TLS)是一種在OSI第4層運行的加密協議(加密TCP通信的有效載荷)。
它主要用于加密HTTPS等Web通信,也可加密應用層協議。
傳輸層安全取代了安全套接字層(SSL),后者在2015年被正式棄用。
TLS的特點包括如下幾點。
? 支持跨不安全網絡的安全客戶端-服務器通信,同時防止篡改、欺騙和竊聽。
? 支持單向身份認證。
? 支持使用數字證書進行雙向身份認證。
? 通常應用于TCP包的基本有效載荷,使其能封裝更高層協議有效載荷。
? 可用于加密用戶數據報協議(UDP)和會話初始協議(SIP)連接。(SIP是與IP語音相關的協議。)
11.10 多層協議的含義
TCP/IP是一種多層協議。TCP/IP從其多層設計中獲得了若干好處,這與它的封裝機制有關。
例如,當通過典型的網絡連接在Web服務器和Web瀏覽器之間通信時,HTTP會被封裝在TCP中,后者被封裝在IP中,而IP被封裝在以太網中。
這可表述如下:
[Ethernet[IP [TCP [HTTP [Payload]]]]]
但這不是TCP/IP封裝支持的程度,還可添加額外的封裝層。
例如,如果向通信添加TLS加密,將在HTTP和TCP之間插入新的封裝(從技術上講,這會導致HTTPS,即HTTP的TLS加密形式):
[Ethernet [IP [TCP [HTTP [Payload]]]]]
這反過來可通過網絡層加密(如IPsec)進一步封裝:
[Ethernet [IPsec [IP [TCP [TLS [HTTP [Payload]]]]]]]
這是VPN的一個示例。
VPN將一個協議封裝或隧穿到另一個協議中。
通常,封裝協議對原始協議進行加密。有關VPN的更多信息,請參閱第12章。
但封裝并不總是用于良性目的。
有許多隱蔽通道通信機制使用封裝來隱藏或隔離另一個授權協議內的未授權協議。
例如,如果網絡阻止使用FTP但允許使用HTTP, 則可使用HTTP隧道等工具來繞過此限制。
這可能導致如下的封裝結構:
[Ethernet [IP [TCP [HTTP [FTP [Payload]]]]]]
通常,HTTP攜帶自己的與Web相關的有效負載,但若使用HTTP隧道工具,標準有效負載將被替代協議代替。
這種錯誤封裝甚至可發生在協議棧中。例如,ICMP通常用于網絡健康測試,而不用于一般通信。
然而,利用Loki等實用工具,ICMP被轉換成支持TCP通信的隧道協議。
Loki的封裝結構如下:
[Ethernet [IP [ICMP [TCP [HTTP [Payload]]]]]]
由無限封裝支持引起的另一個值得關注的領域是在虛擬局域網(VLAN)之間跳躍的能力。
請參閱第12章關于VLAN 的內容。
多層協議具有以下優點:
?可在更高層使用各種協議。
?加密可包含在各個層中。
?支持復雜網絡結構中的靈活性和彈性。
多層協議有一些缺點:
?允許隱蔽通道。
?可以繞過過濾器。
?邏輯上強加的網段邊界可被超越。
————————————————————————————————————————
DNP3
DNP3(分布式網絡協議3)主要用于電力和水利行業。
它用于支持數據采集系統和系統控制設備之間的通信。
這包括變電站計算機、遠程終端(RTU, 由嵌入式微處理器控制的設備)、智能電子設備(IED)和SCADA主站(即控制中心)。
DNP3是一個開放的公共標準,具有多層協議,功能與TCP/IP類似,具有鏈路、傳輸和應用層。
————————————————————————————————————————
11.10.1 融合協議
融合協議是專業(或專有)協議與標準協議的結合,如那些源自TCP/IP套件的協議。
融合協議的主要好處是:
能使用現有的TCP/IP支持網絡基礎設施來托管特殊服務或專有服務,不需要獨立部署備用網絡硬件。
下面描述了融合協議的一些常見示例。
存儲區域網絡(Storage Area Network, SAN)
SAN是一個輔助網絡(與基礎通信網絡不同),用于將各種存儲設備整合、管理到一個網絡可訪問的存儲容器中。
SAN通常用于增強網絡存儲設備,如硬盤驅動器、硬盤陣列、光盤機和磁帶庫,使它們在服務器上顯示為本地存儲。
SAN的運作方式是將數據存儲信號封裝或聚合到TCP/IP通信中,以實現分離存儲和接近性。
SAN可能導致單點故障,因此需要進行冗余集成以保證可用性。
在一些實例中,SAN以不保留同一文件的副本,通過實施重復數據消除來節省空間。
但是如果保留的原件損壞,這可能會導致數據丟失。
以太網光纖通道(Fibre Channel over Ethernet, FCoE)
光纖通道是一種網絡數據存儲解決方案(SAN或NAS),允許高達128 Gbps的文件傳輸速率。
它在第2層運行,被設計用于光纖電纜;后來增加了對銅纜的支持,以提供更便宜的選擇。
光纖通道通常需要自己的專用基礎設施(單獨電纜)。但可以利用FCoE通過現有網絡基礎架構支持它。
FCoE用于封裝以太網網絡上的光纖通道通信。它通常需要10 Gbps的以太網來支持光纖通道協議。
利用這項技術,光纖通道可作為網絡層或OSI第3層協議運行,將IP替換為標準以太網網絡的有效載荷。
FCIP進一步擴展了光纖通道信令的使用,不再需要指定網絡速度。這類似于VoIP傳輸在SAN上。
多協議標簽交換(Multiprotocol Label Switching, MPLS)
MPLS是一種高吞吐量的高性能網絡技術。
它基于短路徑標簽(而不是更長的網絡地址)來引導網絡上的數據。
相比于比傳統的基于IP的路由過程,這種技術節省了大量時間,但可能非常復雜。
此外,MPLS旨在通過封裝處理各種協議。因此,網絡不僅限于TCP/IP和兼容的協議。
這使人們能夠使用許多其他網絡技術,包括Tl/El、ATM、幀中繼、SONET和DSL。
互聯網小型計算機系統接口(Internet Small Computer System Interface, iSCSI)
iSCSI是一種基于lP的網絡存儲標準,運行在第3層。
利用此技術,可通過LAN、WAN或公共互聯網連接啟用與位置無關的文件存儲、傳輸和檢索。
iSCSI通常被視為光纖通道的低成本替代方案。
其他可能被視為融合技術示例的概念包括:
VPN、SDN、云、虛擬化、SOA、微服務(microservices)、基礎設施即代碼(IaC)和無服務器架構(serverless architecture)。
11.10.2 網絡電話(Voice over IP, VoIP)
網絡電話是一種隧道機制,它將音頻、視頻和其他數據封裝到IP數據包中,以支持語音呼叫和多媒體協作。
VoIP已經成為全世界公司和個人的一種流行且廉價的電話解決方案。
VoIP有可能取代PSTN, 因為它通常更便宜,并提供更多選擇和功能。
VoIP可用作計算機網絡和移動設備上的直接電話替代品。
VoIP被認為是一種附合協議,因為它將音頻(和視頻)封裝技術(作為應用層協議運行)與已建立的TCP/IP多層協議棧相結合。
VoIP可用于商業和開源項目。
一些VoIP解決方案需要專門的硬件來取代傳統的電話手機/基站,或者允許它們連接到VoIP系統并在VoIP系統上運行。
某些VoIP解決方案僅限于軟件,例如Skype, 并允許用戶使用現有的揚聲器、麥克風或耳機取代傳統的電話聽筒。
其他的基于硬件,例如magicJack允許使用插入USB適配器的現有PSTN電話設備來利用互聯網上的VoIP 。
商用VoIP設備的外觀和功能與傳統PSTN設備非常相似,但只是用VoIP連接取代以前的普通老式電話服務(POTS)線路。
通常,VoIP到VoIP呼叫是免費的(假設雙方使用相同或兼容的VoIP技術),而VoIP到傳統電話或手機的呼叫一般按分鐘收費。
黑客可以對VoIP解決方案發起多種潛在攻擊。
?許多VoIP工具都可以輕易用來偽造來電顯示,因此黑客可以執行vishing(VoIP網絡釣魚)攻擊或語音垃圾郵件(SPIT)攻擊。
?呼叫管理器系統和VoIP電話本身可能容易受到主機操作系統攻擊和DoS攻擊。
如果設備或軟件的主機操作系統或固件存在漏洞,則風險會增加。
?攻擊者可能通過偽造呼叫管理器或端點連接協商或響應消息來執行MITM/路徑攻擊。
?根據部署情況,如果在與桌面和服務器系統相同的交換機上部署VoIP電話,也存在相關風險。
這可能允許802.1X身份認證偽造以及VLAN和VoIP跳轉(即跨越己驗證通道跳轉)。
?由于VoIP流量是未加密網絡流量,可通過解碼VoIP流量來監聽VoIP通信。
安全實時傳輸協議或安全RTP(SRTP,security Real-time Transport Protocol),是對VoIP通信中使用的實時傳輸協議(RTP)的安全改進。
SRTP旨在通過強加密和可靠的身份認證,將拒絕服務、路徑攻擊和其他VoIP攻擊的風險降至最低。
RTP或SRTP在會話初始協議(SIP)建立端點之間的通信鏈路后接管。
11.10.3 軟件定義網絡(software-defined networking, SDN)
軟件定義網絡是一種獨特的網絡操作、設計和管理方法。
該概念基于以下理論:
傳統網絡與設備(即路由器和交換機)上配置的復雜性經常迫使組織堅待使用單一設備供應商,因而限制了網絡的靈活性,使其難以適應不斷變化的物理和商業條件,且難以優化購買新設備的成本。
旨在將基礎設施層(亦稱數據平面和轉發平面——硬件和基于硬件的設置)與控制層(即數據傳輸管理的網絡服務)分離。
控制平面使用協議來決定向何處發送流量,而數據平面包含決定是否轉發流量的規則。
這種形式的流量管理還涉及訪問控制,即規定什么系統可以將哪些協議傳遞給誰。
這種類型的訪問控制通常基于屬性的訪問控制(ABAC)。
SDN解決方案取代了路由器和交換機等傳統網絡設備,使組織可以選擇使用更簡單的網絡設備(接受SDN控制器的指令)處理流量路由。
這消除了傳統網絡協議的復雜性。
此外,這還消除了IP尋址、子網、路由等傳統網絡概念,不必將其編寫到托管應用程序中或由托管應用程序解密。
SDN提供了一種新的網絡設計,該設計可直接從集中位置編程,它靈活,獨立于供應商,并且基于開放標準。
使用SDN后,組織將不必從單個供應商處購買設備。
SDN允許組織根據需要混合和匹配硬件,例如選擇最具成本效益或最高吞吐量的設備,而不會被某個供應商鎖定。
然后,可通過集中管理接口控制硬件的配置和管理。
此外,可根據需要動態更改和調整應用于硬件的設置。
另外,SDN其實也可以被看作網絡虛擬化。
它允許數據傳輸路徑、通信決策樹和流控制在SDN控制層中虛擬化,而不是以每個設備為基礎在硬件上處理。
虛擬化網絡概念帶來的另一個有趣的發展是虛擬SAN(VSAN)。
SAN是一種網絡技術,它將多個單獨的存儲設備組合到一個網絡可訪問的存儲容器中。
它們通常用于需要高速訪問單個共享數據集的多個或集群服務器。
由于SAN復雜的硬件要求,這些設備過去一直很昂貴。
VSAN通過虛擬化繞過了這些復雜性。
虛擬SAN或軟件定義的共享存儲系統是SAN在虛擬化網絡或SDN上的虛擬重現。
軟件定義存儲(SDS),是SDN的另一個衍生產品。
SDS是SAN或NAS的SDN版本。
SDS是一種策略驅動的存儲管理和資源調配解決方案,它獨立于實際的底層存儲硬件。
它是有效的虛擬存儲。
軟件定義廣域網(SDWAN 或SD-WAN),是SDN的一種演變,用于遠程數據中心、遠端位置和WAN鏈路上的互服務之間的連接管理和服務控制。