黃紅桃 許憲成 吳彩虹 林海晟
【摘 要】一鍵登錄實(shí)現(xiàn)網(wǎng)絡(luò)統(tǒng)一身份認(rèn)證,方便用戶同時(shí)存在網(wǎng)絡(luò)風(fēng)險(xiǎn)。論文針對(duì)重放攻擊進(jìn)行協(xié)議應(yīng)用上的改進(jìn)。重放攻擊中,攻擊者通過(guò)網(wǎng)絡(luò)監(jiān)聽(tīng)或者其他方式盜取認(rèn)證憑據(jù),再將它重新發(fā)給服務(wù)器,所以盜取賬號(hào)所在的本機(jī)Mac地址和IP地址必然與合法用戶的不同。論文進(jìn)行如下改進(jìn):在用戶登錄成功后,服務(wù)器記錄下賬號(hào)登錄所在的Mac地址和IP地址,用戶訪問(wèn)第三方應(yīng)用時(shí),第三方應(yīng)用若檢測(cè)到用戶的Mac地址和IP地址與登錄時(shí)的不同,則檢測(cè)到賬號(hào)受到重放攻擊,拒絕服務(wù)。
【關(guān)鍵詞】身份認(rèn)證;一鍵登錄;安全風(fēng)險(xiǎn);OpenID協(xié)議;OAuth協(xié)議
一鍵登錄指采用同一個(gè)用戶名、密碼訪問(wèn)不同的網(wǎng)站,實(shí)現(xiàn)網(wǎng)絡(luò)上統(tǒng)一的身份認(rèn)證。早在2011年,騰訊QQ登錄功能就向第三方網(wǎng)站開(kāi)放。通過(guò)“QQ登錄”,用戶可以使用已有的QQ賬號(hào)、密碼登錄第三方網(wǎng)站,不需要重新注冊(cè)賬號(hào)。由于QQ用戶的數(shù)量龐大,直接給第三方網(wǎng)站帶來(lái)大量新用戶。同時(shí),用戶可以將第三方網(wǎng)站分享的信息同步到QQ空間,傳播不同網(wǎng)站的內(nèi)容,提升網(wǎng)站的訪問(wèn)量和用戶數(shù)[1]。
一鍵登錄為不同應(yīng)用系統(tǒng)提供統(tǒng)一的登錄界面,用戶不必記住繁雜的賬號(hào)以及口令,減少了用戶登錄失敗的可能性;通過(guò)把認(rèn)證功能和賬號(hào)管理功能集成起來(lái),管理員可以很容易對(duì)所有系統(tǒng)的訪問(wèn)權(quán)限進(jìn)行操作而不破壞一致性,既降低了維護(hù)用戶權(quán)限的復(fù)雜性,也在某種程度上也提升了安全性。然而一鍵登錄用到的協(xié)議和認(rèn)證技術(shù),在身份認(rèn)證的實(shí)現(xiàn)過(guò)程中還是存在一些安全風(fēng)險(xiǎn)。
1 一鍵登錄的相關(guān)協(xié)議
一鍵登錄主要用到兩種開(kāi)放應(yīng)用協(xié)議:OpenID和OAuth,其作用是為開(kāi)放平臺(tái)提供規(guī)范、簡(jiǎn)潔、安全的通信、授權(quán)和管理機(jī)制。OpenID側(cè)重的是認(rèn)證,即:“用戶是誰(shuí)”;OAuth關(guān)注的是授權(quán),即:“用戶能做什么”。一般聯(lián)合起來(lái)使用,OpenID實(shí)現(xiàn)某個(gè)原有的賬號(hào)登錄新的應(yīng)用系統(tǒng),OAuth實(shí)現(xiàn)從舊賬號(hào)系統(tǒng)中導(dǎo)入數(shù)據(jù)進(jìn)入新應(yīng)用系統(tǒng),或者授權(quán)新的應(yīng)用訪問(wèn)舊系統(tǒng)的某些資料(非用戶名、密碼等敏感信息)[2]。
例如:使用QQ號(hào)碼登錄人人網(wǎng),需要OpenID 協(xié)議;將QQ空間更新同步到人人網(wǎng)、或者授權(quán)人人網(wǎng)能夠訪問(wèn)QQ好友列表,則用OAuth協(xié)議實(shí)現(xiàn)。
2 一鍵登錄的安全風(fēng)險(xiǎn)
一鍵登錄在應(yīng)用中常見(jiàn)的攻擊手段有如下幾種[3]:
2.1 中間人攻擊
中間人攻擊顧名思義就是發(fā)生在通信對(duì)象之間的攻擊,即通信過(guò)程以及通信數(shù)據(jù)遭到第三方的監(jiān)視、截取和控制。攻擊者通過(guò)模仿身份提供者,如使用DNS欺騙、ARP欺騙等,篡改發(fā)現(xiàn)過(guò)程或者偽造XRDS文檔進(jìn)行中間人攻擊。模仿身份提供者,發(fā)布其Associations,或自行決定在無(wú)狀態(tài)的模式;篡改發(fā)現(xiàn)過(guò)程,可以取代模仿,指定任何身份提供者;偽造XRDS文檔,就會(huì)對(duì)發(fā)現(xiàn)過(guò)程的返回信息造成威脅。
2.2 重放攻擊
重放攻擊,是指攻擊者發(fā)送一個(gè)目的主機(jī)已經(jīng)接收過(guò)的數(shù)據(jù)包來(lái)達(dá)到欺騙系統(tǒng)的目的,破壞身份認(rèn)證的正確性。攻擊者在網(wǎng)絡(luò)監(jiān)聽(tīng)或者其他方式盜取認(rèn)證憑據(jù),再把它重新發(fā)給服務(wù)器,達(dá)到盜取賬號(hào)的目的。
2.3 網(wǎng)絡(luò)釣魚(yú)
OpenID認(rèn)證流程的關(guān)鍵環(huán)節(jié)依賴于用戶所發(fā)送的URL標(biāo)識(shí),而這又依賴于網(wǎng)絡(luò)地址映射的域名解析系統(tǒng),而這種解析系統(tǒng)也存在安全隱患,就是存在修改URL篡改攻擊,模仿真正的網(wǎng)站而偽造相似的地址,即網(wǎng)絡(luò)釣魚(yú)。
2.4 網(wǎng)絡(luò)竊聽(tīng)
攻擊者可以從沒(méi)被檢查的隨機(jī)序中截取一個(gè)成功的認(rèn)證聲明并重用,即通過(guò)截獲數(shù)據(jù)包竊取信息。在兩個(gè)環(huán)節(jié)上信息可能被竊?。阂皇?,初始驗(yàn)證時(shí)瀏覽器將OpenID URL與密碼發(fā)送給服務(wù)器途中可能被竊取;二是,Cookie內(nèi)容可能被竊取。
3 針對(duì)重放攻擊的改進(jìn)
3.1 改進(jìn)思路
重放攻擊不能被防止,但從理論上說(shuō)可以降低其風(fēng)險(xiǎn),從主機(jī)的唯一性入手,即利用MAC地址的唯一性來(lái)加強(qiáng)對(duì)重放攻擊的防范。在數(shù)據(jù)通信時(shí),IP地址負(fù)責(zé)表示計(jì)算機(jī)的網(wǎng)絡(luò)層地址,網(wǎng)絡(luò)層設(shè)備(如路由器)根據(jù)IP地址來(lái)進(jìn)行操作;MAC地址負(fù)責(zé)表示計(jì)算機(jī)的數(shù)據(jù)鏈路層地址,數(shù)據(jù)鏈路層設(shè)備(如交換機(jī))根據(jù)MAC地址來(lái)進(jìn)行操作。IP和MAC地址這種映射關(guān)系由ARP(Address Resolution Protocol,地址解析協(xié)議)協(xié)議完成。而IP地址與MAC地址是成對(duì)出現(xiàn)的,所有訪問(wèn)網(wǎng)絡(luò)的主機(jī)都擁有IP地址,而MAC地址是網(wǎng)卡在出廠的時(shí)候就已經(jīng)設(shè)定好的,這樣的配置時(shí)IP地址與MAC地址形成一種對(duì)應(yīng)關(guān)系,它們一起能確定一個(gè)唯一的主機(jī)。
由于攻擊者在網(wǎng)絡(luò)監(jiān)聽(tīng)或者其他方式盜取認(rèn)證憑據(jù),再把它重新發(fā)給服務(wù)器,所以盜取的賬號(hào)所在的本機(jī)Mac地址和IP地址必然與用戶本身的不同。從這個(gè)角度進(jìn)行改進(jìn):在用戶登錄成功后,服務(wù)器記錄下賬號(hào)登錄所在的Mac地址和IP地址,用戶訪問(wèn)第三方應(yīng)用時(shí),第三方應(yīng)用若檢測(cè)到用戶的Mac地址和IP地址與登錄時(shí)的不同,則檢測(cè)到賬號(hào)受到重放攻擊,并可采取下一步的防范措施。
3.2 具體實(shí)驗(yàn)過(guò)程
本實(shí)驗(yàn)在實(shí)現(xiàn)一鍵登錄的基礎(chǔ)上,當(dāng)用戶訪問(wèn)服務(wù)時(shí),設(shè)計(jì)了對(duì)Mac地址和IP地址的記錄及檢測(cè)[4]。設(shè)計(jì)共有三個(gè)角色:用戶(在這里指瀏覽器)、身份提供者、服務(wù)提供者。其中,【廣外統(tǒng)一身份認(rèn)證服務(wù)器】作為身份提供者,服務(wù)提供者包括【百度】(Baidu)、【一起走】(Yiqizou)、【餐廳網(wǎng)】(Canting)。過(guò)程如下:
1)用戶希望訪問(wèn)【百度】這個(gè)服務(wù),但是【百度】檢測(cè)到用戶未登錄,故彈出提示框提示用戶登錄。
2)【百度】上顯示用戶未登錄,并提供登錄鏈接。
3)進(jìn)入【廣外認(rèn)證】登錄界面。
4)登錄成功后,檢測(cè)并記錄用戶的Mac地址和IP地址,用戶可以訪問(wèn)【百度】。
5)當(dāng)用戶繼續(xù)訪問(wèn)百度,校對(duì)訪問(wèn)【百度】的Mac與IP是否與登錄時(shí)的一致,如一致可以繼續(xù)訪問(wèn),否則拒絕服務(wù)。(校驗(yàn)Mac與IP)
6)【百度】檢測(cè)到用戶登錄后,請(qǐng)求授權(quán)。
7)授權(quán)成功后則可使用【百度】的各種服務(wù)。
8)若繼續(xù)訪問(wèn)【一起走】以及【餐廳網(wǎng)】,則都檢測(cè)到用戶已登錄,無(wú)需再登錄就可正常訪問(wèn)網(wǎng)站。(實(shí)現(xiàn)一鍵登錄)
4 總結(jié)
本文提出的改進(jìn)是在身份驗(yàn)證過(guò)程添加一個(gè)步驟,也就是檢測(cè)再登錄的用戶,其IP地址與MAC地址的值是否與前一次登錄時(shí)的相符。如果檢測(cè)的結(jié)果時(shí)相符的,可以認(rèn)為安全,服務(wù)器正常賦予用戶權(quán)限。如果檢測(cè)的結(jié)果是不相同的,則表示懷疑,服務(wù)器拒絕賦予權(quán)限。這樣,改進(jìn)后的一鍵登錄流程從一定程度上降低了重放攻擊的風(fēng)險(xiǎn)。
【參考文獻(xiàn)】
[1]騰訊科技.騰訊開(kāi)放QQ面板,用戶一鍵直達(dá)第三方應(yīng)用[EB/OL].http://tech.qq.com/a/20130614/013691.htm,2013-6-14.
[2]desert3.OAuth、OAuth與OpenID區(qū)別和聯(lián)系[EB/OL].http://desert3.iteye.com/blog/1701626,2012-10-19.
[3]劉為,郝梅.利用OpenID和OAuth進(jìn)行安全授權(quán)及風(fēng)險(xiǎn)防范的分析[J].武漢商業(yè)服務(wù)學(xué)院學(xué)報(bào),2011,25(5):90-93.
[4]黃紅桃,梁輝榮.高校數(shù)字化賬號(hào)一鍵登錄原理及實(shí)現(xiàn)[J].科學(xué)與財(cái)富,2016(8).
[責(zé)任編輯:田吉捷]