陳大文,耿 琦
(江蘇金盾檢測技術有限公司,江蘇 南京 210042)
局域網(wǎng)絡一般都是部署于一個組織內部的區(qū)域網(wǎng)絡,局域網(wǎng)的覆蓋范圍通常在幾千米以內,它具有安裝方便、成本低、易于擴展等特點。早期由于對安全性方面考慮得較少,因此局域網(wǎng)內網(wǎng)絡安全存在相當嚴重的問題,主要面臨的威脅有地址解析協(xié)議(ARP)攻擊,IP欺騙等。常見的ARP攻擊方式是ARP欺騙攻擊和泛洪攻擊。ARP欺騙攻擊是通過偽造IP地址和MAC地址來實現(xiàn)ARP欺騙。網(wǎng)絡上的計算機可以主動發(fā)送ARP響應報文[1]。當其他計算機接收到響應消息時,它們會將其放入本地ARP緩存,而不會檢測消息的真實性。這樣,攻擊者就可以向計算機發(fā)送一條偽ARP響應消息,使該消息無法到達預期的計算機或錯誤的計算機,構成ARP欺騙。ARP泛洪攻擊是在局域網(wǎng)中連續(xù)發(fā)送大量的正常的ARP請求包,這會消耗主機帶寬,影響交換機和主機對正常的ARP報文的學習。這種數(shù)據(jù)包是正常的,所以不會被ARP防火墻過濾。IP欺騙是指通過偽造自己的IP地址向目標系統(tǒng)發(fā)送惡意請求,使得目標系統(tǒng)受到攻擊但是卻沒有辦法確定攻擊的來源,或者通過獲取目標系統(tǒng)的信任,從而可以從目標系統(tǒng)中獲取到機密信息。IP欺騙對于依賴IP實現(xiàn)用戶身份認證和訪問許可等有嚴重的影響[2-3]。
局域網(wǎng)絡出現(xiàn)此類攻擊主要的原因是局域網(wǎng)數(shù)據(jù)交互是通過交換機的端口與MAC地址綁定來實現(xiàn)的。MAC地址固化在網(wǎng)卡中,但是IP地址是動態(tài)分配,因此在交換機與主機中需要通過ARP映射表來實現(xiàn)MAC與IP地址的映射轉換。這個ARP表的建立通過ARP協(xié)議來完成,但是沒有對應的安全機制來保障ARP協(xié)議中聲明的可信性,引發(fā)了局域網(wǎng)絡的上述隱患[4]。
一般應對上述的局域網(wǎng)絡安全問題的措施是通過交換機端口與MAC地址綁定,或MAC地址與IP綁定來抵御上述的網(wǎng)絡攻擊。但是這樣的解決方案需要手動去設置,增加了網(wǎng)絡管理員的工作負擔,特別是對域內主機頻繁變動的局域網(wǎng)難以做到。
本文提出了一種基于可信根的局域網(wǎng)絡安全防護機制,通過在網(wǎng)卡中內置可信芯片,由可信芯片執(zhí)行本文提出的認證算法,實現(xiàn)IP數(shù)據(jù)包的拓展,嵌入數(shù)據(jù)包的認證信息。由局域網(wǎng)交換機執(zhí)行防護機制,實現(xiàn)對上述網(wǎng)絡攻擊的防御。本文提出的解決方案具有自動化防御功能,不需要管理員參與配置,并且可以通過可信根實現(xiàn)主機網(wǎng)絡行為的追蹤分析,為局域網(wǎng)絡安全的防御提供有力的支持。
可信是指計算所涉及的組件、操作或過程在任何條件下都是可以進行預測的,并且能夠對病毒以及一定程度的物理干擾進行抵御。可信計算是指在硬件中引入可信芯片,通過提供的可信度量、可信存儲、可信報告等提高終端系統(tǒng)的安全性,解決了個人計算機體系結構簡化帶來的脆弱性問題。在用戶與計算機、網(wǎng)絡平臺之間建立信任機制,從根本上實現(xiàn)對各種不安全因素的主動防御[5-6]。
可信芯片是指符合TCG安全標準的安全芯片。它存儲特定的密鑰和數(shù)據(jù),可以有效地保護設備,禁用一切未經(jīng)授權的程序,并消除非法用戶的任何訪問。它能有效地保證被監(jiān)控的計算機不會被第三方通過PIN碼窺探,避免重要文件信息被竊取的風險。可信芯片中主要是一對非對稱的加密密鑰,由可信芯片生成對IP數(shù)據(jù)包的認證數(shù)據(jù)。
可信芯片是可信計算技術的基本組成部分,是整個可信平臺的“根”。可信芯片存儲支撐可信度量、可信存儲和可信報告的密鑰和關鍵信息,并執(zhí)行一些加密操作。它是實現(xiàn)可信計算核心功能的源泉和基礎。
TCP/IP協(xié)議定義了一個在因特網(wǎng)上傳輸?shù)臄?shù)據(jù)包,稱為IP數(shù)據(jù)報。IP層提供的服務是通過對數(shù)據(jù)報的封裝和解包來實現(xiàn)的。IP數(shù)據(jù)報的格式如圖1所示。IP數(shù)據(jù)報由首部和數(shù)據(jù)組成,首部是為了能夠正確地傳輸高層數(shù)據(jù)而添加的各種控制信息,而數(shù)據(jù)區(qū)域包括高層協(xié)議需要傳輸?shù)臄?shù)據(jù)。首部的第一部分是一個固定長度,總共有20個字節(jié),包括版本號、頭長度、服務類型、總長度、標識、標志、片偏移、生存空間、上層協(xié)議標識、頭部校驗、源IP地址和目標IP抵制這些信息。所有的IP數(shù)據(jù)報都必須有這個部分。在首部的固定部分之后是一些長度可變的可選字段。首部中的源地址和目標地址是IP協(xié)議地址。數(shù)據(jù)包中的可選字段是保留部分。本文的機制利用保留部分來保存嵌入的數(shù)據(jù)包認證數(shù)據(jù)[7-9]。

圖1 IP數(shù)據(jù)報的格式
本文的局域網(wǎng)安全防護機制需要對局域網(wǎng)中的設備做一定的變化,以實現(xiàn)對本文機制的支持,主要的變化集中在網(wǎng)卡與局域網(wǎng)的路由器或交換機上[10-12]。
2.3.1 支持可信芯片與IP數(shù)據(jù)包認證的網(wǎng)卡
首先,需要在網(wǎng)卡中內置固化的可信芯片,可信芯片中包括MAC地址、一對非對稱密鑰、隨機數(shù)生成器和簽名算法,以及相關的寄存器。其中寄存器上存儲著上一個IP數(shù)據(jù)包認證使用的隨機數(shù)。可信芯片的組成部分如圖2所示。

圖2 可信芯片的組成部分
正常情況下,網(wǎng)卡在發(fā)送IP數(shù)據(jù)包之前,需要根據(jù)當前寄存器中生成的隨機數(shù),遞增后獲得一個新的隨機數(shù),再將自己網(wǎng)卡上的MAC地址與隨機數(shù)一起使用私鑰簽名后發(fā)送出去。網(wǎng)卡發(fā)送IP數(shù)據(jù)包流程如圖3所示。

圖3 網(wǎng)卡發(fā)送IP數(shù)據(jù)包流程
2.3.2 支持IP數(shù)據(jù)包認證的局域網(wǎng)交換機
本文提出的保護機制也需要在局域網(wǎng)的路由器或交換機中進行一些調整,以達到保護功能。在局域網(wǎng)交換機中要維護一張表,該表的由以下字段組成:
2.3.3 機制的執(zhí)行流程
本文提出的保護機制的執(zhí)行流程主要分成3個部分,分別是網(wǎng)卡接入局域網(wǎng)的階段、正常的數(shù)據(jù)發(fā)送階段以及網(wǎng)卡隨機數(shù)寄存器溢出處理階段。具體執(zhí)行流程如下。
網(wǎng)卡接入局域網(wǎng)的階段。首先,網(wǎng)卡接入局域網(wǎng)后,應由可信根芯片廣播該芯片使用的公鑰以及MAC地址;其次,局域網(wǎng)交換機收到廣播后,根據(jù)接收的公鑰,加密一個隨機值通過對應的端口發(fā)回;最后,網(wǎng)卡收到回復之后,即使用自己的私鑰解開回復消息,并將交換機發(fā)回的隨機值保存在可信根的隨機數(shù)寄存器中。
正常的數(shù)據(jù)發(fā)送階段。首先,網(wǎng)卡在發(fā)送數(shù)據(jù)前,可信芯片遞增值,并由芯片將MAC地址與遞增的隨機數(shù)值簽字后,嵌入到數(shù)據(jù)包中發(fā)送;其次,局域網(wǎng)交換機接收到數(shù)據(jù)包后,根據(jù)端口查到公鑰,對嵌入的認證數(shù)據(jù)解密并取得隨機值,與已有表中上一次隨機值對比,如果大于則正常發(fā)送數(shù)據(jù)包至目標主機。
網(wǎng)卡隨機數(shù)寄存器溢出。首先,網(wǎng)卡的隨機數(shù)寄存器遞增值可能會超出寄存器的表達值范圍,會出現(xiàn)數(shù)據(jù)包認證數(shù)據(jù)中隨機數(shù)與上次隨機數(shù)值變小的情況;其次,交換機在收到這類情況包的時候,將通過端口使用公鑰加密并發(fā)送一個新隨機值給對應的網(wǎng)卡;最后,網(wǎng)卡可信根收到這類數(shù)據(jù)包,使用私鑰解密后獲得新的隨機數(shù),重置寄存器,再重新發(fā)送數(shù)據(jù)包。
MAC地址的偽造主要有兩種,一種是偽造局域網(wǎng)中沒有網(wǎng)卡使用的MAC地址,但是由于本文中每個網(wǎng)卡接入到局域網(wǎng)中,都會通過可信根發(fā)送自己的MAC地址與公鑰信息,并與端口綁定,偽造MAC地址即使可以繞過可信根芯片發(fā)出,也會在局域網(wǎng)交換機的表中查不到對應的紀錄,而被丟棄或阻止。另一種是偽造局域網(wǎng)中已有的MAC地址,但是通過數(shù)據(jù)包中存在有認證數(shù)據(jù),且數(shù)據(jù)中隨機值是遞增的,因此攻擊者無法偽造出合法的數(shù)據(jù)包認證數(shù)據(jù),從而在交換機驗證中失敗被阻止[13]。
IP地址的偽造同樣存在兩種方式,一種是偽造局域網(wǎng)中沒有使用的IP地址發(fā)送數(shù)據(jù),這種方式下,如果攻擊者繞過可信根芯片直接發(fā)送數(shù)據(jù)包,顯然會同偽造MAC地址一樣被發(fā)現(xiàn)并阻止,如果攻擊者通過可信根芯片發(fā)送數(shù)據(jù)包,那么在交換機的緩存表中會出現(xiàn)同一個MAC地址對應兩個不同IP,會觸發(fā)本文防護機制的安全預警事件,向網(wǎng)絡管理員報警由管理員來負責查看處理[14]。
另一種是偽造已有的IP地址,但由于同一個局域網(wǎng)中兩臺主機不可能以同樣的IP地址收發(fā)數(shù)據(jù),會引發(fā)IP沖突,所以攻擊者無法使用偽造已有的IP地址發(fā)送數(shù)據(jù)。只能采用ARP類似原理的攻擊,修改交換機與受害主機的ARP緩存表來實現(xiàn)攻擊。
在類ARP攻擊的模式下,接收受害者主機發(fā)送數(shù)據(jù)的目標主機被修改成攻擊者主機的MAC地址。此時,交換機通過查表必然能發(fā)現(xiàn)攻擊者的一個端口對應兩個IP,同時也能發(fā)現(xiàn)同一個IP分別映射到兩個不同端口。交換機可以通過緩存表發(fā)起仲裁,判斷哪個端口是對應IP的真實擁有者。判斷的依據(jù)是通過交換機的緩存表中已觀察到包的計數(shù)字段來判斷。如上文所述,局域網(wǎng)中不存在不同主機擁有同樣的IP地址,否則會發(fā)生IP地址沖突,ARP攻擊者無法使用被冒充的IP地址發(fā)送數(shù)據(jù),因此對應的記錄中已觀察到包的計數(shù)字段必然為0,交換機可以判定已觀察到包的計數(shù)字段不為0的主機是真正的IP地址擁有者[15]。
隨著無線局域網(wǎng)的應用范圍越來越廣,網(wǎng)絡中存在著較多的安全威脅,攻擊者可以通過攻擊局域網(wǎng)從而導致網(wǎng)絡故障或者盜取有用信息,這需要網(wǎng)絡運維人員花費大量的時間和精力去處理這些問題。因此,本文提出了一種基于可信根的局域網(wǎng)絡安全保護機制。該方法利用在網(wǎng)卡中嵌入可信芯片,并由可信芯片執(zhí)行本文提出的認證算法,實現(xiàn)了IP數(shù)據(jù)包的擴展,并嵌入了數(shù)據(jù)包的認證信息。由局域網(wǎng)交換機執(zhí)行防護機制,實現(xiàn)了防止上述網(wǎng)絡攻擊。本文提出的機制有兩個優(yōu)點,一個是實現(xiàn)了局域網(wǎng)安全防護的自動化,不再需要配置,很方便就可以使用;另一個是通過可信芯片和可信根實現(xiàn)了IP偽造、MAC偽造以及類ARP攻擊的防御目標。但該機制也存在一些缺點,如網(wǎng)卡要增加可信芯片以及交換機要增加認證、緩存表以及仲裁判斷算法,這些可能會對網(wǎng)絡數(shù)據(jù)的傳輸性能造成影響,但可以通過輕量級的加密與認證方法減輕這方面的影響。