劉世雄 張俊
摘要:隨著互聯(lián)網(wǎng)的普及和發(fā)展,基于B/S系統(tǒng)下的瀏覽器網(wǎng)站存在許多安全性問題,其中暴力破解是對B/S系統(tǒng)具有威脅的惡意攻擊技術(shù)之一。其原理是攻擊者系統(tǒng)的嵌套和循環(huán)組合有可能的用戶信息,向服務(wù)器發(fā)送登錄請求,直到登錄成功為止。該文分析了暴力破解的原理及特點(diǎn),研究了防止暴力破解的方法,針對B/S系統(tǒng)的特點(diǎn),提出了驗(yàn)證碼認(rèn)證、限定失敗登錄次數(shù)、認(rèn)證日志監(jiān)控、增大密碼復(fù)雜度、判斷用戶登錄ip、Json Web Token安全認(rèn)證機(jī)制等防范方法,能夠有效增強(qiáng)B/S系統(tǒng)的安全性。
關(guān)鍵詞:暴力破解;B/S系統(tǒng);WEB安全;cookie泄漏
中圖分類號:TP393? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)01-0058-03
Abstract:With the popularization and development of Internet, there are many security problems in browser websites based on B / s system, among which brute force attack is one of the malicious attack technologies that threaten B / s system. The principle is that the nesting and looping combination of the attacker's system may combine the user information and send the login request to the server until the login succeeds. This paper analyzes the principle and characteristics of brute force cracking, and studies the methods to prevent brute force cracking. According to the characteristics of B / s system, it puts forward some preventive methods, such as authentication code authentication, limiting the number of failed logins, authentication log monitoring, increasing password complexity, judging the user's login IP, and JSON web token security authentication mechanism, which can effectively enhance the security of B / S system.
Key words: crack by violence; B/S system; WEB security; cookie leakage
由于網(wǎng)絡(luò)的快速發(fā)展,B/S系統(tǒng)的功能越來越強(qiáng)大。B/S系統(tǒng)通過瀏覽器即可進(jìn)行訪問,十分便捷。同時B/S系統(tǒng)也產(chǎn)生了許多安全性問題[1]。其中一個重要的web安全性問題就是暴力破解。目前的暴力破解主要通過字典、概率模型、窮舉等方式進(jìn)行破解[2]。一旦破解成功,就會造成敏感信息的泄漏,系統(tǒng)的崩潰等惡性結(jié)果。本文針對暴力破解的原理及特點(diǎn),從驗(yàn)證碼認(rèn)證、限定失敗登錄次數(shù)、認(rèn)證日志監(jiān)控、增大密碼復(fù)雜度、判斷用戶登錄ip、JWT登錄認(rèn)證機(jī)制等幾個方面提出了防止暴力破解的有效手段。增強(qiáng)了web系統(tǒng)的安全性。
1 暴力破解原理及方法
1.1 暴力破解的原理
暴力破解通過窮舉、概率模型、字典匹配等方式對用戶的賬號密碼進(jìn)行破解,通過服務(wù)器的驗(yàn)證。最終達(dá)到侵入賬號的目的。
1.2 暴力破解的方法
1.2.1 暴力窮舉
針對大部分用戶的賬號密碼簡單等特點(diǎn),攻擊者通過一些特殊編寫的軟件隨機(jī)生成用戶名和密碼,對后臺系統(tǒng)發(fā)起登錄請求。通常的暴力破解都有特定的字典庫,比如說學(xué)號、電話、身份證號等。確定一個賬號之后,對密碼進(jìn)行大規(guī)模的匹配,直到匹配成功為止。不同密碼的暴力破解時間如表1所示。
1.2.2 Cookie泄漏
近幾年,HTTP協(xié)議利用其正確、高速、正確、無狀態(tài)等特點(diǎn)對B/S系統(tǒng)的發(fā)展起了重要的推動作用。但正是由于HTTP的無狀態(tài)協(xié)議,導(dǎo)致了B/S系統(tǒng)會因?yàn)閏ookie泄漏而造系統(tǒng)安全問題。攻擊者在實(shí)施暴解之前,需要構(gòu)造HTTP包所需要的參數(shù)。由于HTTP協(xié)議無狀態(tài)的特點(diǎn)。在相同的數(shù)據(jù)的情況下,服務(wù)器無法區(qū)別攻擊者還是一般用戶。為了解決這個問題,傳統(tǒng)網(wǎng)站一般會在服務(wù)器保存一份用戶的登錄信息,傳遞給瀏覽器,保存在Cookie中,方便服務(wù)器下次進(jìn)行識別。大多數(shù)網(wǎng)站的Cookie都在網(wǎng)絡(luò)傳輸中明文傳輸。極易被抓包程序截獲,一旦獲取了Cookie和服務(wù)器解析算法(md5, Base64,token等),就可以偽造登錄令牌,獲得網(wǎng)站的數(shù)據(jù)。
暴力破解成功后即可獲取合法用戶的權(quán)限,甚至可以破解管理員的密碼以達(dá)到控制整個網(wǎng)站。暴力破解危害性極大。
2 暴力破解防御方法
2.1 使用驗(yàn)證碼進(jìn)行驗(yàn)證登錄
傳統(tǒng)的網(wǎng)站使用的驗(yàn)證碼大都不會過期,以靜態(tài)驗(yàn)證碼居多。存在一個驗(yàn)證碼反復(fù)使用的現(xiàn)象,容易被破解器進(jìn)行掃描并解析。經(jīng)過破解器解析過后的驗(yàn)證碼就失去了驗(yàn)證的作用。
針對傳統(tǒng)驗(yàn)證碼存在的弊端,可以使用動態(tài)驗(yàn)證碼、短信驗(yàn)證、語音驗(yàn)證、生成一些簡單問題進(jìn)行驗(yàn)證。動態(tài)生成不同類型的驗(yàn)證碼,增加破解的難度。登錄時先驗(yàn)證驗(yàn)證碼是否正確,在一定程度上降低系統(tǒng)被暴力破解的風(fēng)險(xiǎn)。
2.2 限定失敗登錄次數(shù)
傳統(tǒng)網(wǎng)站不會對同一用戶失敗登錄次數(shù)進(jìn)行限制,給使用窮舉或字典的破解方式提供了可乘之機(jī)。通過限定失敗登錄次數(shù),當(dāng)賬戶失敗登錄達(dá)到一定次數(shù)時,對該賬戶進(jìn)行臨時鎖定,限定賬戶狀態(tài)圖如圖1所示。
2.3 認(rèn)證日志監(jiān)控
目前市面上的網(wǎng)站都不會對用戶登錄網(wǎng)站前后的行為或者頁面停留的時間進(jìn)行記錄。這對于管理人員進(jìn)行安全維護(hù)工作造成了極大的不便。
認(rèn)證日志監(jiān)控對異常登錄、刪除信息、修改信息等敏感操作進(jìn)行日志記錄[3]。當(dāng)用戶的敏感操作次數(shù)達(dá)到一定次數(shù)后觸發(fā)報(bào)警機(jī)制,向管理員發(fā)送警告信息,管理員可對該相關(guān)信息和賬號進(jìn)行處理。
2.4 增大密碼復(fù)雜度
傳統(tǒng)網(wǎng)站在用戶的密碼沒有加以限制,導(dǎo)致一些用戶的密碼過于簡單甚至可能包含個人信息,在遇到窮舉或者密碼字典這類暴力破解方式時極易被破解,對網(wǎng)站及用戶個人造成極大損失[4]。
增大密碼復(fù)雜度,即在用戶注冊或者修改密碼時,對用戶輸入的密碼加以限制如表2所示。當(dāng)用戶輸入的密碼不符合要求時將無法進(jìn)行注冊或者修改密碼直到用戶輸入的密碼符合規(guī)則為止。
2.5 判斷用戶登錄IP
傳統(tǒng)網(wǎng)站忽略了對用戶登錄時的IP地址進(jìn)行記錄和判斷等操作。即在用戶每次登錄時獲取當(dāng)次登錄時的IP,通過一定的登錄次數(shù)后確定用戶常用的IP登錄地址,當(dāng)該用戶下次進(jìn)行登錄時,將本次登錄的IP地址與常用IP地址進(jìn)行比較,若IP不相同,則進(jìn)行其他方式驗(yàn)證,比如手機(jī)短信驗(yàn)證。
2.6 JsonWebToken 安全認(rèn)證機(jī)制
在對用戶登錄身份的鑒定的實(shí)現(xiàn)中,傳統(tǒng)網(wǎng)站是在服務(wù)器存儲一個session,給客戶端返回一個Cookie,存在著Cookie泄漏的風(fēng)險(xiǎn)。
基于JWT的token認(rèn)證機(jī)制,token信息可能存放在Cookie中也可能在HTTP的Authorization頭中[5],當(dāng)用戶使用用戶名和密碼來請求服務(wù)器后,服務(wù)器的登錄處理的Login Action層調(diào)用認(rèn)證服務(wù)進(jìn)行用戶名密碼認(rèn)證,驗(yàn)證通過后Login Action層調(diào)用用戶信息服務(wù)獲取用戶信息并返回。之后Login Action從配置文件中獲取Token簽名生成的密鑰信息,進(jìn)行Token的生成,生成Token的過程中可以調(diào)用第三方JWT Lib生成簽名后的JWT數(shù)據(jù)并將其設(shè)置到Cookie對象中,并重定向到首頁,完成登錄過程。
JWT驗(yàn)證方式會大大地降低Cookie泄漏的風(fēng)險(xiǎn),獨(dú)立的認(rèn)證系統(tǒng)會有獨(dú)一無二的“鹽值”,相關(guān)信息系統(tǒng)不會進(jìn)行驗(yàn)證和授權(quán)的功能。增強(qiáng)了系統(tǒng)的安全性。
3 結(jié)論
伴隨B/S系統(tǒng)在互聯(lián)網(wǎng)中的普及,用戶的隱私數(shù)據(jù)和網(wǎng)站后臺的安全性變得尤其重要,暴力破解不僅僅可以對普通用戶的隱私數(shù)據(jù)進(jìn)行竊取,還可以對管理員賬戶進(jìn)行破解,進(jìn)而控制整個網(wǎng)站。本文介紹的驗(yàn)證碼認(rèn)證、限定失敗登錄次數(shù)、認(rèn)證日志監(jiān)控、增大密碼復(fù)雜度、判斷用戶登錄IP、Json Web Token安全認(rèn)證機(jī)制等,從各個方面敘述了暴力破解的防御方法,能夠有效地防御暴力破解,保障用戶、公司的隱私和安全。
參考文獻(xiàn):
[1] 吳濤,張俊.基于B/S系統(tǒng)的SQL注入防御技術(shù)研究[J].電腦知識與技術(shù),2020,16(2):7-8.
[2] 尹芷儀,江偉玉,沈嘉薈.一種針對暴力破解的安全口令保管庫方案[J].計(jì)算機(jī)應(yīng)用與軟件,2017,34(7):319-324.
[3] 趙星.網(wǎng)站暴力破解攻擊及防御措施[J].山西電子技術(shù),2016(1):52-54.
[4] 沈正,陳鍾.HTTP(HTTPS)身份認(rèn)證暴力破解[J].科技經(jīng)濟(jì)市場,2007(7):6-7.
[5] 李志鴻.密碼暴力破解在FTP服務(wù)器下的防范策略[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2014(1):40-41,73.
【通聯(lián)編輯:代影】