張耀輝
(湖南郵電職業(yè)技術(shù)學(xué)院,湖南長沙 410015)
PPPoE網(wǎng)絡(luò)協(xié)議的安全性分析
張耀輝
(湖南郵電職業(yè)技術(shù)學(xué)院,湖南長沙 410015)
PPPoE被應(yīng)用于ISP對(duì)付費(fèi)用戶提供的網(wǎng)絡(luò)接入認(rèn)證服務(wù),但由于協(xié)議本身較簡單和網(wǎng)絡(luò)的復(fù)雜性,導(dǎo)致其存在一定的安全威脅。文章介紹了PPPoE協(xié)議的工作流程,并結(jié)合工作流程介紹了PPPoE所采用的認(rèn)證協(xié)議,然后介紹了專門針對(duì)PPPoE協(xié)議漏洞的攻擊模式,最后提出了對(duì)應(yīng)的安全防護(hù)策略。
PPPoE;PAP;網(wǎng)絡(luò)安全
PPPOE(Point-to-point protocol over Ethernet)是一個(gè)基于以太網(wǎng)數(shù)據(jù)幀格式來實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)協(xié)議,協(xié)議被用于對(duì)付費(fèi)網(wǎng)絡(luò)用戶提供的接入認(rèn)證服務(wù)。PPPoE主要基于兩個(gè)被使用的協(xié)議:Ethernet協(xié)議和PPP點(diǎn)對(duì)點(diǎn)協(xié)議。相對(duì)于其他認(rèn)證協(xié)議,PPPoE具備自己獨(dú)特的優(yōu)勢(shì):快速簡單,用戶的身份驗(yàn)證迅速;允許多個(gè)用戶同時(shí)連接同一數(shù)據(jù)鏈路,終端用戶可以同時(shí)接入多個(gè)ISP,提高了通信鏈路的使用率;方便了ISP開發(fā)新的業(yè)務(wù)和IP地址的動(dòng)態(tài)分配。但是,由于PPPoE協(xié)議本身較簡單,加上局域網(wǎng)環(huán)境的復(fù)雜性,為網(wǎng)絡(luò)用戶帶來了一定的安全隱患。本文先介紹PPPoE協(xié)議基本工作流程,然后分析撥號(hào)連接過程中存在的安全隱患,由此提出安全防護(hù)策略,提升用戶的用網(wǎng)安全。
PPPoE協(xié)議的工作過程分為兩個(gè)獨(dú)立的階段:發(fā)現(xiàn)階段(Discovery Stage)和會(huì)話階段(Session Stage),不管是哪一個(gè)階段的數(shù)據(jù)都將被按照以太網(wǎng)的幀格式進(jìn)行封裝,如圖1所示。
圖1 PPPoE報(bào)文格式示意圖
如果某一個(gè)主機(jī)想要開始建立一個(gè)PPPoE會(huì)話,首先必須去執(zhí)行一個(gè)發(fā)現(xiàn)訪問服務(wù)器(AC,Access Concentration)的會(huì)話過程。網(wǎng)絡(luò)中可能存在一個(gè)或者多個(gè)AC服務(wù)器,用戶主機(jī)會(huì)從搜索到的AC服務(wù)器中選擇其中一個(gè),然后建立會(huì)話連接所需要的信息。PPPoE的發(fā)現(xiàn)階段,共包括4個(gè)典型的數(shù)據(jù)包,如圖2所示:
圖2 PPPoE發(fā)現(xiàn)階段的數(shù)據(jù)處理流程圖
1)PADI(PPPoE Active Discovery Initiation,PPPoE主動(dòng)發(fā)現(xiàn)初始化數(shù)據(jù)包)如圖2(a)所示。PADI數(shù)據(jù)包的目的地址為廣播地址,會(huì)話ID為0X0000,代碼為0X09,有時(shí)還會(huì)攜帶所期望認(rèn)證服務(wù)器的名稱。
2)PADO(PPPoE Active Discovery Offer,PPPoE 主動(dòng)發(fā)現(xiàn)提供數(shù)據(jù)包)如圖2(b)所示。PPPoE網(wǎng)絡(luò)中的所有認(rèn)證服務(wù)器均會(huì)收到用戶發(fā)送的PADI數(shù)據(jù)包,然后根據(jù)數(shù)據(jù)包中的服務(wù)器名稱進(jìn)行核查,并根據(jù)需要傳回一個(gè)代碼為0X07的PADO數(shù)據(jù)包。PADO數(shù)據(jù)包中包含有源客戶主機(jī)的MAC地址,會(huì)話ID仍然為0X0000,但是此時(shí)會(huì)包含認(rèn)證服務(wù)器的名稱。
3)PADR(PPPoE Active Discovery Request,PPPoE主動(dòng)發(fā)現(xiàn)請(qǐng)求數(shù)據(jù)包)如圖2(c)所示。發(fā)出PADI數(shù)據(jù)包之后,可能會(huì)收到多個(gè)來自本網(wǎng)絡(luò)內(nèi)的AC服務(wù)器回傳的PADO數(shù)據(jù)包,此時(shí)用戶需要從認(rèn)證服務(wù)器中選擇其中一個(gè)作為認(rèn)證服務(wù)器,一般情況下PPPoE的主機(jī)會(huì)選擇回傳PADO數(shù)據(jù)包最快的服務(wù)器,并向認(rèn)證服務(wù)器發(fā)送一個(gè)代碼為0X19的數(shù)據(jù)包。PADR數(shù)據(jù)包的目的地址為目標(biāo)認(rèn)證服務(wù)器的MAC地址,會(huì)話ID仍然為0X0000。
4)PADS(PPPoE Active Discovery Session-confirmation,PPPoE主動(dòng)發(fā)現(xiàn)會(huì)話確認(rèn)數(shù)據(jù)包)如圖2(d)所示。當(dāng)認(rèn)證服務(wù)器收到客戶的PADR數(shù)據(jù)包之后,就開始為PPPOE的會(huì)話進(jìn)行準(zhǔn)備,然后產(chǎn)生一個(gè)唯一的會(huì)話ID,并向客戶機(jī)發(fā)送一個(gè)代碼為0X65的PADS包。PADS數(shù)據(jù)包中的目的地址為該客戶的MAC地址,會(huì)話ID則為剛剛產(chǎn)生的唯一ID號(hào)。當(dāng)主機(jī)收到來自認(rèn)證服務(wù)器的PADS包后,PPPoE協(xié)議的發(fā)現(xiàn)階段已經(jīng)全部完成。
PPPoE會(huì)話的建立,用戶主機(jī)和AC服務(wù)器都需要向?qū)Ψ桨l(fā)送LCP報(bào)文來配置與測(cè)試通信鏈路的情況。PPPoE會(huì)話一旦開始,所有的以太網(wǎng)幀都將是單播的模式,并且會(huì)話ID將一直保持在發(fā)現(xiàn)階段分配的值不變。會(huì)話階段主要包括LCP協(xié)商階段、認(rèn)證階段和NCP協(xié)商階段。LCP協(xié)商階段主要完成最大傳輸單元、是否需要進(jìn)行認(rèn)證以及采用什么方式認(rèn)證等內(nèi)容的協(xié)商;認(rèn)證階段客戶主機(jī)會(huì)主動(dòng)向認(rèn)證服務(wù)器發(fā)送認(rèn)證賬號(hào)和密碼信息,只有通過認(rèn)證才能進(jìn)入下一步協(xié)商工作;NCP協(xié)商階段主要協(xié)商PPPoE報(bào)文的網(wǎng)絡(luò)層參數(shù),包括:IP地址、子網(wǎng)掩碼、DNS服務(wù)器地址等。協(xié)商完成之后,用戶主機(jī)就能自由地訪問因特網(wǎng)了。
PPPoE所支持的認(rèn)證協(xié)議主要有以下四個(gè):
1)PAP(密碼認(rèn)證協(xié)議)在認(rèn)證的過程中采用的是明文方式傳輸密碼。PPPoE協(xié)議中的服務(wù)器采用PAP進(jìn)行用戶身份的鑒別,方便合法用戶訪問網(wǎng)絡(luò)資源。在認(rèn)證過程中,客戶機(jī)會(huì)不斷地向AC服務(wù)器發(fā)送賬號(hào)和密碼,直到認(rèn)證通過為止,如圖3所示。PPP數(shù)據(jù)封裝中的PAP協(xié)議代碼為0XC023。
圖3 PAP認(rèn)證過程示意圖
2)CHAP(詢問握手認(rèn)證協(xié)議)通過三次握手機(jī)制來完成對(duì)客戶機(jī)的身份驗(yàn)證,可以在鏈路初始建立時(shí)、建立完成時(shí)以及建立完成之后重復(fù)進(jìn)行。CHAP認(rèn)證過程只需要在網(wǎng)絡(luò)中傳輸用戶名信息,并不傳輸用戶的密碼,因此它的安全性較PAP高。PPP數(shù)據(jù)封裝中的CHAP協(xié)議代碼為0XC223。CHAP的認(rèn)證過程大致如圖4所示:
圖4 CHAP認(rèn)證過程圖
在初始鏈路建立完成之后,認(rèn)證服務(wù)器則向客戶端發(fā)送“challenge”消息;客戶機(jī)用HASH函數(shù)計(jì)算出來的結(jié)果對(duì)認(rèn)證服務(wù)器進(jìn)行回應(yīng);認(rèn)證服務(wù)器用自己計(jì)算的HASH值來判斷應(yīng)答是否匹配,如果計(jì)算出的HASH值和接收到的HASH值一致,則通過認(rèn)證,否則終止該鏈接;每隔一段隨機(jī)的時(shí)間,認(rèn)證服務(wù)器又會(huì)向客戶機(jī)發(fā)送一個(gè)新的“challenge”消息,重復(fù)前面的3個(gè)步驟。
在CHAP的認(rèn)證過程中,通過不斷遞增的標(biāo)識(shí)符和隨機(jī)的詢問值,有效地防御了來自其他終端的重放攻擊,并通過重復(fù)校驗(yàn)的機(jī)制限制了單個(gè)攻擊被暴露的時(shí)間。
3)MS-CHAP(微軟公司的CHAP版本)分為MSCHAPv1和MS-CHAPv2,在MS-CHAPv1中協(xié)議代碼為0X80,在MS-CHAPv2中的協(xié)議代碼為0X81。MS-CHAP相對(duì)CHAP而言具有兩個(gè)優(yōu)點(diǎn):MS-CHAP提供了由認(rèn)證服務(wù)器控制的秘鑰改變機(jī)制;MS-CHAP提供了認(rèn)證重試機(jī)制。在MS-CHAPv2中甚至提出了認(rèn)證服務(wù)器與客戶機(jī)之間的雙向認(rèn)證機(jī)制。然而經(jīng)過研究發(fā)現(xiàn),不管是MS-CHAPv1還是MS-CHAPv2都存在一定的安全脆弱性,攻擊者通過包里搜索等方式能夠破解共享密鑰,使之無法適應(yīng)現(xiàn)實(shí)網(wǎng)絡(luò)。
4)EAP(擴(kuò)展認(rèn)證協(xié)議)是一系列認(rèn)證方式的集合或者一個(gè)認(rèn)證框架,被應(yīng)用于PPP連接與802.1X無線網(wǎng)絡(luò)中。EAP包含一些常用的認(rèn)證方法以及函數(shù)的協(xié)商,提供的常見方法有EAP-MD5、EAP-TTLS、EAP-AKA和EAP-EKE等,其中EAP-MD5的認(rèn)證方式類似于CHAP認(rèn)證。一般情況下,EAP的應(yīng)用安全依賴于其所選擇的底層EAP方法的安全。
針對(duì)PPPoE協(xié)議的攻擊模式大致分為三步:首先,收集客戶機(jī)與認(rèn)證服務(wù)器的相關(guān)信息;然后,監(jiān)視PPPoE網(wǎng)絡(luò),并利用前期獲得的信息偽裝成認(rèn)證服務(wù)器,并通過一定的手段劫持合法用戶的PPPoE連接;最后,在PPPoE的會(huì)話階段協(xié)商中采用PAP認(rèn)證協(xié)議,進(jìn)而獲得客戶的賬號(hào)和密碼的明文。
利用PPPoE協(xié)議的工作原理,攻擊者就能收集用戶主機(jī)和認(rèn)證服務(wù)器的相關(guān)信息,比如認(rèn)證服務(wù)器的名稱、認(rèn)證服務(wù)器的MAC地址和客戶主機(jī)的MAC地址等。攻擊者發(fā)送一個(gè)沒有服務(wù)器名稱的PADI數(shù)據(jù)包,該包會(huì)通過廣播的形式發(fā)送給網(wǎng)絡(luò)中的所有認(rèn)證服務(wù)器,然后從接收到的PADO數(shù)據(jù)包就能收集到認(rèn)證服務(wù)器的MAC地址、認(rèn)證服務(wù)器的名稱等。除此之外,其他客戶主機(jī)在啟動(dòng)PPPoE撥號(hào)時(shí)發(fā)送的PADI數(shù)據(jù)包總是以廣播形式發(fā)送,攻擊主機(jī)監(jiān)聽PPPoE網(wǎng)絡(luò)就能獲得合法用戶的PADI數(shù)據(jù)包,從而截獲其中所包含的認(rèn)證服務(wù)器名稱、客戶主機(jī)的MAC地址等。
攻擊者在收集到有效的相關(guān)信息之后,就可以偽裝成一個(gè)認(rèn)證服務(wù)器來劫持合法用戶的PPPoE連接。PPPoE劫持的過程大致如下:
首先,攻擊者開啟接入認(rèn)證服務(wù),并將主機(jī)的MAC地址、服務(wù)器的名稱等修改成和認(rèn)證服務(wù)器一致,開始接收用戶的PADI數(shù)據(jù)包。一旦監(jiān)測(cè)到有用戶的PADI數(shù)據(jù)包,則向用戶主機(jī)發(fā)送一個(gè)偽造的PADO數(shù)據(jù)包。由于局域網(wǎng)內(nèi)部偽裝的認(rèn)證服務(wù)器總是比遠(yuǎn)在ISP機(jī)房的認(rèn)證服務(wù)器要近,因此用戶會(huì)首先采信偽裝服務(wù)器回傳的PADO數(shù)據(jù)包。由于偽造的PADO數(shù)據(jù)包中包含了所需的正確信息,并且以最快的速度到達(dá)用戶主機(jī),因此該用戶會(huì)直接回復(fù)一個(gè)PADR數(shù)據(jù)包,而將真正的認(rèn)證服務(wù)器給忽略。當(dāng)偽裝的認(rèn)證服務(wù)器收到用戶的PADR數(shù)據(jù)包之后,則會(huì)向其發(fā)送PADS數(shù)據(jù)包,并確定唯一的Session ID。至此,PPPoE的連接已經(jīng)被劫持。
完成PPPoE發(fā)現(xiàn)階段的劫持之后,偽裝的認(rèn)證服務(wù)器在接下來的PPPoE會(huì)話階段的LCP協(xié)商階段與客戶主機(jī)協(xié)商使用PAP認(rèn)證模式,然后用戶將自己的賬號(hào)和密碼以明文形式發(fā)送給偽裝的認(rèn)證服務(wù)器。偽裝的認(rèn)證服務(wù)器一旦截獲用戶的賬號(hào)和密碼信息,立即終止與客戶主機(jī)之間的PPPoE連接。此外,偽裝的服務(wù)器通過設(shè)置只響應(yīng)未截獲賬號(hào)的用戶PADI請(qǐng)求,受害的用戶如果再次發(fā)送PADI數(shù)據(jù)包則不再回復(fù)。受害用戶因仍然能夠正常訪問Internet,而無法意識(shí)到自己的賬號(hào)信息已經(jīng)被泄露。
由于PPPoE發(fā)現(xiàn)階段所存在的安全漏洞,導(dǎo)致用戶的賬號(hào)和密碼信息可能會(huì)被攻擊者所截獲。再加上一般操作系統(tǒng)默認(rèn)采用PAP認(rèn)證協(xié)議,讓截獲合法用戶的賬號(hào)和密碼較為容易。為了防御此類攻擊,可以從以下幾個(gè)方面進(jìn)行安全防御。
1)建議客戶主機(jī)上默認(rèn)采用CHAP認(rèn)證協(xié)議或者其他的安全認(rèn)證協(xié)議,而不采用明文方式發(fā)送賬號(hào)與密碼信息的PAP認(rèn)證協(xié)議。
2)建議客戶設(shè)置安全系數(shù)較高的復(fù)雜用戶口令,并且定期修改口令。
3)ISP應(yīng)設(shè)置用戶的賬號(hào)和用戶的MAC地址綁定,并限制一個(gè)賬號(hào)只能同時(shí)登錄1次。
4)ISP應(yīng)經(jīng)常進(jìn)行偽裝認(rèn)證服務(wù)器檢測(cè),及時(shí)檢測(cè)網(wǎng)絡(luò)中存在的安全隱患。
總之,PPPoE協(xié)議本身所存在的漏洞導(dǎo)致了PPPoE撥號(hào)過程可能被非法攻擊者所劫持。為了更好地保護(hù)用戶的上網(wǎng)安全,應(yīng)該以運(yùn)營商為主導(dǎo),網(wǎng)絡(luò)用戶積極參與,互相協(xié)作才能營造一個(gè)更為安全的上網(wǎng)環(huán)境。
[1]李錚.基于10G的E/GPON融合的研究[J].湖南郵電職業(yè)技術(shù)學(xué)院學(xué)報(bào),2016(2):14-16.
[2]顏永明,葉克闖,許斌,徐海峰,左良,洪愷淵.LSN環(huán)境下政企用戶PPPoE上網(wǎng)實(shí)現(xiàn)方案[J].電信科學(xué),2017(9):155-161.
[3]鐘衛(wèi)民.PPPoE寬帶接入技術(shù)常見問題及其對(duì)策分析[J].硅谷,2009(3):40.
[4]蕭斌.PPPoE在校園網(wǎng)升級(jí)改造中的應(yīng)用[J].電腦知識(shí)與技術(shù),2017(7):59-60.
[5]遲克偉,石敬東.IPoE和PPPoE的原理及在廣電網(wǎng)絡(luò)中的應(yīng)用[J].數(shù)字傳媒研究,2017(3):86-88.
Security analysis of PPPoE network protocol
ZHANGYao-hui
(Hunan Post and Telecommunication College,Changsha,Hunan,China 410015)
PPPoE is used in ISP to provide network access authentication service to paid users,but the protocol itself is too simple and the complexity of the network leads to some security threats.This paper introduces the work flow of PPPoE protocol,the authentication protocol used by PPPoE,and the attack specifically for PPPoE protocol vulnerability model.Finally,it puts forward the correspondingsecuritystrategy.
PPPoE;PAP;network security
10.3969/j.issn.2095-7661.2017.04.008】
TP393.04
A
2095-7661(2017)04-0024-03
2017-09-08
張耀輝(1982-),男,湖南邵陽人,湖南郵電職業(yè)技術(shù)學(xué)院副教授,碩士,研究方向:計(jì)算機(jī)通信。
湖南郵電職業(yè)技術(shù)學(xué)院學(xué)報(bào)2017年4期