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

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

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

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