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