陳大文,耿 琦
(江蘇金盾檢測(cè)技術(shù)有限公司,江蘇 南京 210042)
局域網(wǎng)絡(luò)一般都是部署于一個(gè)組織內(nèi)部的區(qū)域網(wǎng)絡(luò),局域網(wǎng)的覆蓋范圍通常在幾千米以內(nèi),它具有安裝方便、成本低、易于擴(kuò)展等特點(diǎn)。早期由于對(duì)安全性方面考慮得較少,因此局域網(wǎng)內(nèi)網(wǎng)絡(luò)安全存在相當(dāng)嚴(yán)重的問題,主要面臨的威脅有地址解析協(xié)議(ARP)攻擊,IP欺騙等。常見的ARP攻擊方式是ARP欺騙攻擊和泛洪攻擊。ARP欺騙攻擊是通過(guò)偽造IP地址和MAC地址來(lái)實(shí)現(xiàn)ARP欺騙。網(wǎng)絡(luò)上的計(jì)算機(jī)可以主動(dòng)發(fā)送ARP響應(yīng)報(bào)文[1]。當(dāng)其他計(jì)算機(jī)接收到響應(yīng)消息時(shí),它們會(huì)將其放入本地ARP緩存,而不會(huì)檢測(cè)消息的真實(shí)性。這樣,攻擊者就可以向計(jì)算機(jī)發(fā)送一條偽ARP響應(yīng)消息,使該消息無(wú)法到達(dá)預(yù)期的計(jì)算機(jī)或錯(cuò)誤的計(jì)算機(jī),構(gòu)成ARP欺騙。ARP泛洪攻擊是在局域網(wǎng)中連續(xù)發(fā)送大量的正常的ARP請(qǐng)求包,這會(huì)消耗主機(jī)帶寬,影響交換機(jī)和主機(jī)對(duì)正常的ARP報(bào)文的學(xué)習(xí)。這種數(shù)據(jù)包是正常的,所以不會(huì)被ARP防火墻過(guò)濾。IP欺騙是指通過(guò)偽造自己的IP地址向目標(biāo)系統(tǒng)發(fā)送惡意請(qǐng)求,使得目標(biāo)系統(tǒng)受到攻擊但是卻沒有辦法確定攻擊的來(lái)源,或者通過(guò)獲取目標(biāo)系統(tǒng)的信任,從而可以從目標(biāo)系統(tǒng)中獲取到機(jī)密信息。IP欺騙對(duì)于依賴IP實(shí)現(xiàn)用戶身份認(rèn)證和訪問許可等有嚴(yán)重的影響[2-3]。
局域網(wǎng)絡(luò)出現(xiàn)此類攻擊主要的原因是局域網(wǎng)數(shù)據(jù)交互是通過(guò)交換機(jī)的端口與MAC地址綁定來(lái)實(shí)現(xiàn)的。MAC地址固化在網(wǎng)卡中,但是IP地址是動(dòng)態(tài)分配,因此在交換機(jī)與主機(jī)中需要通過(guò)ARP映射表來(lái)實(shí)現(xiàn)MAC與IP地址的映射轉(zhuǎn)換。這個(gè)ARP表的建立通過(guò)ARP協(xié)議來(lái)完成,但是沒有對(duì)應(yīng)的安全機(jī)制來(lái)保障ARP協(xié)議中聲明的可信性,引發(fā)了局域網(wǎng)絡(luò)的上述隱患[4]。
一般應(yīng)對(duì)上述的局域網(wǎng)絡(luò)安全問題的措施是通過(guò)交換機(jī)端口與MAC地址綁定,或MAC地址與IP綁定來(lái)抵御上述的網(wǎng)絡(luò)攻擊。但是這樣的解決方案需要手動(dòng)去設(shè)置,增加了網(wǎng)絡(luò)管理員的工作負(fù)擔(dān),特別是對(duì)域內(nèi)主機(jī)頻繁變動(dòng)的局域網(wǎng)難以做到。
本文提出了一種基于可信根的局域網(wǎng)絡(luò)安全防護(hù)機(jī)制,通過(guò)在網(wǎng)卡中內(nèi)置可信芯片,由可信芯片執(zhí)行本文提出的認(rèn)證算法,實(shí)現(xiàn)IP數(shù)據(jù)包的拓展,嵌入數(shù)據(jù)包的認(rèn)證信息。由局域網(wǎng)交換機(jī)執(zhí)行防護(hù)機(jī)制,實(shí)現(xiàn)對(duì)上述網(wǎng)絡(luò)攻擊的防御。本文提出的解決方案具有自動(dòng)化防御功能,不需要管理員參與配置,并且可以通過(guò)可信根實(shí)現(xiàn)主機(jī)網(wǎng)絡(luò)行為的追蹤分析,為局域網(wǎng)絡(luò)安全的防御提供有力的支持。
可信是指計(jì)算所涉及的組件、操作或過(guò)程在任何條件下都是可以進(jìn)行預(yù)測(cè)的,并且能夠?qū)Σ《疽约耙欢ǔ潭鹊奈锢砀蓴_進(jìn)行抵御??尚庞?jì)算是指在硬件中引入可信芯片,通過(guò)提供的可信度量、可信存儲(chǔ)、可信報(bào)告等提高終端系統(tǒng)的安全性,解決了個(gè)人計(jì)算機(jī)體系結(jié)構(gòu)簡(jiǎn)化帶來(lái)的脆弱性問題。在用戶與計(jì)算機(jī)、網(wǎng)絡(luò)平臺(tái)之間建立信任機(jī)制,從根本上實(shí)現(xiàn)對(duì)各種不安全因素的主動(dòng)防御[5-6]。
可信芯片是指符合TCG安全標(biāo)準(zhǔn)的安全芯片。它存儲(chǔ)特定的密鑰和數(shù)據(jù),可以有效地保護(hù)設(shè)備,禁用一切未經(jīng)授權(quán)的程序,并消除非法用戶的任何訪問。它能有效地保證被監(jiān)控的計(jì)算機(jī)不會(huì)被第三方通過(guò)PIN碼窺探,避免重要文件信息被竊取的風(fēng)險(xiǎn)。可信芯片中主要是一對(duì)非對(duì)稱的加密密鑰,由可信芯片生成對(duì)IP數(shù)據(jù)包的認(rèn)證數(shù)據(jù)。
可信芯片是可信計(jì)算技術(shù)的基本組成部分,是整個(gè)可信平臺(tái)的“根”??尚判酒鎯?chǔ)支撐可信度量、可信存儲(chǔ)和可信報(bào)告的密鑰和關(guān)鍵信息,并執(zhí)行一些加密操作。它是實(shí)現(xiàn)可信計(jì)算核心功能的源泉和基礎(chǔ)。
TCP/IP協(xié)議定義了一個(gè)在因特網(wǎng)上傳輸?shù)臄?shù)據(jù)包,稱為IP數(shù)據(jù)報(bào)。IP層提供的服務(wù)是通過(guò)對(duì)數(shù)據(jù)報(bào)的封裝和解包來(lái)實(shí)現(xiàn)的。IP數(shù)據(jù)報(bào)的格式如圖1所示。IP數(shù)據(jù)報(bào)由首部和數(shù)據(jù)組成,首部是為了能夠正確地傳輸高層數(shù)據(jù)而添加的各種控制信息,而數(shù)據(jù)區(qū)域包括高層協(xié)議需要傳輸?shù)臄?shù)據(jù)。首部的第一部分是一個(gè)固定長(zhǎng)度,總共有20個(gè)字節(jié),包括版本號(hào)、頭長(zhǎng)度、服務(wù)類型、總長(zhǎng)度、標(biāo)識(shí)、標(biāo)志、片偏移、生存空間、上層協(xié)議標(biāo)識(shí)、頭部校驗(yàn)、源IP地址和目標(biāo)IP抵制這些信息。所有的IP數(shù)據(jù)報(bào)都必須有這個(gè)部分。在首部的固定部分之后是一些長(zhǎng)度可變的可選字段。首部中的源地址和目標(biāo)地址是IP協(xié)議地址。數(shù)據(jù)包中的可選字段是保留部分。本文的機(jī)制利用保留部分來(lái)保存嵌入的數(shù)據(jù)包認(rèn)證數(shù)據(jù)[7-9]。
圖1 IP數(shù)據(jù)報(bào)的格式
本文的局域網(wǎng)安全防護(hù)機(jī)制需要對(duì)局域網(wǎng)中的設(shè)備做一定的變化,以實(shí)現(xiàn)對(duì)本文機(jī)制的支持,主要的變化集中在網(wǎng)卡與局域網(wǎng)的路由器或交換機(jī)上[10-12]。
2.3.1 支持可信芯片與IP數(shù)據(jù)包認(rèn)證的網(wǎng)卡
首先,需要在網(wǎng)卡中內(nèi)置固化的可信芯片,可信芯片中包括MAC地址、一對(duì)非對(duì)稱密鑰、隨機(jī)數(shù)生成器和簽名算法,以及相關(guān)的寄存器。其中寄存器上存儲(chǔ)著上一個(gè)IP數(shù)據(jù)包認(rèn)證使用的隨機(jī)數(shù)??尚判酒慕M成部分如圖2所示。
圖2 可信芯片的組成部分
正常情況下,網(wǎng)卡在發(fā)送IP數(shù)據(jù)包之前,需要根據(jù)當(dāng)前寄存器中生成的隨機(jī)數(shù),遞增后獲得一個(gè)新的隨機(jī)數(shù),再將自己網(wǎng)卡上的MAC地址與隨機(jī)數(shù)一起使用私鑰簽名后發(fā)送出去。網(wǎng)卡發(fā)送IP數(shù)據(jù)包流程如圖3所示。
圖3 網(wǎng)卡發(fā)送IP數(shù)據(jù)包流程
2.3.2 支持IP數(shù)據(jù)包認(rèn)證的局域網(wǎng)交換機(jī)
本文提出的保護(hù)機(jī)制也需要在局域網(wǎng)的路由器或交換機(jī)中進(jìn)行一些調(diào)整,以達(dá)到保護(hù)功能。在局域網(wǎng)交換機(jī)中要維護(hù)一張表,該表的由以下字段組成:
2.3.3 機(jī)制的執(zhí)行流程
本文提出的保護(hù)機(jī)制的執(zhí)行流程主要分成3個(gè)部分,分別是網(wǎng)卡接入局域網(wǎng)的階段、正常的數(shù)據(jù)發(fā)送階段以及網(wǎng)卡隨機(jī)數(shù)寄存器溢出處理階段。具體執(zhí)行流程如下。
網(wǎng)卡接入局域網(wǎng)的階段。首先,網(wǎng)卡接入局域網(wǎng)后,應(yīng)由可信根芯片廣播該芯片使用的公鑰以及MAC地址;其次,局域網(wǎng)交換機(jī)收到廣播后,根據(jù)接收的公鑰,加密一個(gè)隨機(jī)值通過(guò)對(duì)應(yīng)的端口發(fā)回;最后,網(wǎng)卡收到回復(fù)之后,即使用自己的私鑰解開回復(fù)消息,并將交換機(jī)發(fā)回的隨機(jī)值保存在可信根的隨機(jī)數(shù)寄存器中。
正常的數(shù)據(jù)發(fā)送階段。首先,網(wǎng)卡在發(fā)送數(shù)據(jù)前,可信芯片遞增值,并由芯片將MAC地址與遞增的隨機(jī)數(shù)值簽字后,嵌入到數(shù)據(jù)包中發(fā)送;其次,局域網(wǎng)交換機(jī)接收到數(shù)據(jù)包后,根據(jù)端口查到公鑰,對(duì)嵌入的認(rèn)證數(shù)據(jù)解密并取得隨機(jī)值,與已有表中上一次隨機(jī)值對(duì)比,如果大于則正常發(fā)送數(shù)據(jù)包至目標(biāo)主機(jī)。
網(wǎng)卡隨機(jī)數(shù)寄存器溢出。首先,網(wǎng)卡的隨機(jī)數(shù)寄存器遞增值可能會(huì)超出寄存器的表達(dá)值范圍,會(huì)出現(xiàn)數(shù)據(jù)包認(rèn)證數(shù)據(jù)中隨機(jī)數(shù)與上次隨機(jī)數(shù)值變小的情況;其次,交換機(jī)在收到這類情況包的時(shí)候,將通過(guò)端口使用公鑰加密并發(fā)送一個(gè)新隨機(jī)值給對(duì)應(yīng)的網(wǎng)卡;最后,網(wǎng)卡可信根收到這類數(shù)據(jù)包,使用私鑰解密后獲得新的隨機(jī)數(shù),重置寄存器,再重新發(fā)送數(shù)據(jù)包。
MAC地址的偽造主要有兩種,一種是偽造局域網(wǎng)中沒有網(wǎng)卡使用的MAC地址,但是由于本文中每個(gè)網(wǎng)卡接入到局域網(wǎng)中,都會(huì)通過(guò)可信根發(fā)送自己的MAC地址與公鑰信息,并與端口綁定,偽造MAC地址即使可以繞過(guò)可信根芯片發(fā)出,也會(huì)在局域網(wǎng)交換機(jī)的表中查不到對(duì)應(yīng)的紀(jì)錄,而被丟棄或阻止。另一種是偽造局域網(wǎng)中已有的MAC地址,但是通過(guò)數(shù)據(jù)包中存在有認(rèn)證數(shù)據(jù),且數(shù)據(jù)中隨機(jī)值是遞增的,因此攻擊者無(wú)法偽造出合法的數(shù)據(jù)包認(rèn)證數(shù)據(jù),從而在交換機(jī)驗(yàn)證中失敗被阻止[13]。
IP地址的偽造同樣存在兩種方式,一種是偽造局域網(wǎng)中沒有使用的IP地址發(fā)送數(shù)據(jù),這種方式下,如果攻擊者繞過(guò)可信根芯片直接發(fā)送數(shù)據(jù)包,顯然會(huì)同偽造MAC地址一樣被發(fā)現(xiàn)并阻止,如果攻擊者通過(guò)可信根芯片發(fā)送數(shù)據(jù)包,那么在交換機(jī)的緩存表中會(huì)出現(xiàn)同一個(gè)MAC地址對(duì)應(yīng)兩個(gè)不同IP,會(huì)觸發(fā)本文防護(hù)機(jī)制的安全預(yù)警事件,向網(wǎng)絡(luò)管理員報(bào)警由管理員來(lái)負(fù)責(zé)查看處理[14]。
另一種是偽造已有的IP地址,但由于同一個(gè)局域網(wǎng)中兩臺(tái)主機(jī)不可能以同樣的IP地址收發(fā)數(shù)據(jù),會(huì)引發(fā)IP沖突,所以攻擊者無(wú)法使用偽造已有的IP地址發(fā)送數(shù)據(jù)。只能采用ARP類似原理的攻擊,修改交換機(jī)與受害主機(jī)的ARP緩存表來(lái)實(shí)現(xiàn)攻擊。
在類ARP攻擊的模式下,接收受害者主機(jī)發(fā)送數(shù)據(jù)的目標(biāo)主機(jī)被修改成攻擊者主機(jī)的MAC地址。此時(shí),交換機(jī)通過(guò)查表必然能發(fā)現(xiàn)攻擊者的一個(gè)端口對(duì)應(yīng)兩個(gè)IP,同時(shí)也能發(fā)現(xiàn)同一個(gè)IP分別映射到兩個(gè)不同端口。交換機(jī)可以通過(guò)緩存表發(fā)起仲裁,判斷哪個(gè)端口是對(duì)應(yīng)IP的真實(shí)擁有者。判斷的依據(jù)是通過(guò)交換機(jī)的緩存表中已觀察到包的計(jì)數(shù)字段來(lái)判斷。如上文所述,局域網(wǎng)中不存在不同主機(jī)擁有同樣的IP地址,否則會(huì)發(fā)生IP地址沖突,ARP攻擊者無(wú)法使用被冒充的IP地址發(fā)送數(shù)據(jù),因此對(duì)應(yīng)的記錄中已觀察到包的計(jì)數(shù)字段必然為0,交換機(jī)可以判定已觀察到包的計(jì)數(shù)字段不為0的主機(jī)是真正的IP地址擁有者[15]。
隨著無(wú)線局域網(wǎng)的應(yīng)用范圍越來(lái)越廣,網(wǎng)絡(luò)中存在著較多的安全威脅,攻擊者可以通過(guò)攻擊局域網(wǎng)從而導(dǎo)致網(wǎng)絡(luò)故障或者盜取有用信息,這需要網(wǎng)絡(luò)運(yùn)維人員花費(fèi)大量的時(shí)間和精力去處理這些問題。因此,本文提出了一種基于可信根的局域網(wǎng)絡(luò)安全保護(hù)機(jī)制。該方法利用在網(wǎng)卡中嵌入可信芯片,并由可信芯片執(zhí)行本文提出的認(rèn)證算法,實(shí)現(xiàn)了IP數(shù)據(jù)包的擴(kuò)展,并嵌入了數(shù)據(jù)包的認(rèn)證信息。由局域網(wǎng)交換機(jī)執(zhí)行防護(hù)機(jī)制,實(shí)現(xiàn)了防止上述網(wǎng)絡(luò)攻擊。本文提出的機(jī)制有兩個(gè)優(yōu)點(diǎn),一個(gè)是實(shí)現(xiàn)了局域網(wǎng)安全防護(hù)的自動(dòng)化,不再需要配置,很方便就可以使用;另一個(gè)是通過(guò)可信芯片和可信根實(shí)現(xiàn)了IP偽造、MAC偽造以及類ARP攻擊的防御目標(biāo)。但該機(jī)制也存在一些缺點(diǎn),如網(wǎng)卡要增加可信芯片以及交換機(jī)要增加認(rèn)證、緩存表以及仲裁判斷算法,這些可能會(huì)對(duì)網(wǎng)絡(luò)數(shù)據(jù)的傳輸性能造成影響,但可以通過(guò)輕量級(jí)的加密與認(rèn)證方法減輕這方面的影響。