劉世雄 張俊



摘要:隨著互聯網的普及和發展,基于B/S系統下的瀏覽器網站存在許多安全性問題,其中暴力破解是對B/S系統具有威脅的惡意攻擊技術之一。其原理是攻擊者系統的嵌套和循環組合有可能的用戶信息,向服務器發送登錄請求,直到登錄成功為止。該文分析了暴力破解的原理及特點,研究了防止暴力破解的方法,針對B/S系統的特點,提出了驗證碼認證、限定失敗登錄次數、認證日志監控、增大密碼復雜度、判斷用戶登錄ip、Json Web Token安全認證機制等防范方法,能夠有效增強B/S系統的安全性。
關鍵詞:暴力破解;B/S系統;WEB安全;cookie泄漏
中圖分類號:TP393? ? ? ? 文獻標識碼: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
由于網絡的快速發展,B/S系統的功能越來越強大。B/S系統通過瀏覽器即可進行訪問,十分便捷。同時B/S系統也產生了許多安全性問題[1]。其中一個重要的web安全性問題就是暴力破解。目前的暴力破解主要通過字典、概率模型、窮舉等方式進行破解[2]。一旦破解成功,就會造成敏感信息的泄漏,系統的崩潰等惡性結果。本文針對暴力破解的原理及特點,從驗證碼認證、限定失敗登錄次數、認證日志監控、增大密碼復雜度、判斷用戶登錄ip、JWT登錄認證機制等幾個方面提出了防止暴力破解的有效手段。增強了web系統的安全性。
1 暴力破解原理及方法
1.1 暴力破解的原理
暴力破解通過窮舉、概率模型、字典匹配等方式對用戶的賬號密碼進行破解,通過服務器的驗證。最終達到侵入賬號的目的。
1.2 暴力破解的方法
1.2.1 暴力窮舉
針對大部分用戶的賬號密碼簡單等特點,攻擊者通過一些特殊編寫的軟件隨機生成用戶名和密碼,對后臺系統發起登錄請求。通常的暴力破解都有特定的字典庫,比如說學號、電話、身份證號等。確定一個賬號之后,對密碼進行大規模的匹配,直到匹配成功為止。不同密碼的暴力破解時間如表1所示。
1.2.2 Cookie泄漏
近幾年,HTTP協議利用其正確、高速、正確、無狀態等特點對B/S系統的發展起了重要的推動作用。但正是由于HTTP的無狀態協議,導致了B/S系統會因為cookie泄漏而造系統安全問題。攻擊者在實施暴解之前,需要構造HTTP包所需要的參數。由于HTTP協議無狀態的特點。在相同的數據的情況下,服務器無法區別攻擊者還是一般用戶。為了解決這個問題,傳統網站一般會在服務器保存一份用戶的登錄信息,傳遞給瀏覽器,保存在Cookie中,方便服務器下次進行識別。大多數網站的Cookie都在網絡傳輸中明文傳輸。極易被抓包程序截獲,一旦獲取了Cookie和服務器解析算法(md5, Base64,token等),就可以偽造登錄令牌,獲得網站的數據。
暴力破解成功后即可獲取合法用戶的權限,甚至可以破解管理員的密碼以達到控制整個網站。暴力破解危害性極大。
2 暴力破解防御方法
2.1 使用驗證碼進行驗證登錄
傳統的網站使用的驗證碼大都不會過期,以靜態驗證碼居多。存在一個驗證碼反復使用的現象,容易被破解器進行掃描并解析。經過破解器解析過后的驗證碼就失去了驗證的作用。
針對傳統驗證碼存在的弊端,可以使用動態驗證碼、短信驗證、語音驗證、生成一些簡單問題進行驗證。動態生成不同類型的驗證碼,增加破解的難度。登錄時先驗證驗證碼是否正確,在一定程度上降低系統被暴力破解的風險。
2.2 限定失敗登錄次數
傳統網站不會對同一用戶失敗登錄次數進行限制,給使用窮舉或字典的破解方式提供了可乘之機。通過限定失敗登錄次數,當賬戶失敗登錄達到一定次數時,對該賬戶進行臨時鎖定,限定賬戶狀態圖如圖1所示。
2.3 認證日志監控
目前市面上的網站都不會對用戶登錄網站前后的行為或者頁面停留的時間進行記錄。這對于管理人員進行安全維護工作造成了極大的不便。
認證日志監控對異常登錄、刪除信息、修改信息等敏感操作進行日志記錄[3]。當用戶的敏感操作次數達到一定次數后觸發報警機制,向管理員發送警告信息,管理員可對該相關信息和賬號進行處理。
2.4 增大密碼復雜度
傳統網站在用戶的密碼沒有加以限制,導致一些用戶的密碼過于簡單甚至可能包含個人信息,在遇到窮舉或者密碼字典這類暴力破解方式時極易被破解,對網站及用戶個人造成極大損失[4]。
增大密碼復雜度,即在用戶注冊或者修改密碼時,對用戶輸入的密碼加以限制如表2所示。當用戶輸入的密碼不符合要求時將無法進行注冊或者修改密碼直到用戶輸入的密碼符合規則為止。
2.5 判斷用戶登錄IP
傳統網站忽略了對用戶登錄時的IP地址進行記錄和判斷等操作。即在用戶每次登錄時獲取當次登錄時的IP,通過一定的登錄次數后確定用戶常用的IP登錄地址,當該用戶下次進行登錄時,將本次登錄的IP地址與常用IP地址進行比較,若IP不相同,則進行其他方式驗證,比如手機短信驗證。
2.6 JsonWebToken 安全認證機制
在對用戶登錄身份的鑒定的實現中,傳統網站是在服務器存儲一個session,給客戶端返回一個Cookie,存在著Cookie泄漏的風險。
基于JWT的token認證機制,token信息可能存放在Cookie中也可能在HTTP的Authorization頭中[5],當用戶使用用戶名和密碼來請求服務器后,服務器的登錄處理的Login Action層調用認證服務進行用戶名密碼認證,驗證通過后Login Action層調用用戶信息服務獲取用戶信息并返回。之后Login Action從配置文件中獲取Token簽名生成的密鑰信息,進行Token的生成,生成Token的過程中可以調用第三方JWT Lib生成簽名后的JWT數據并將其設置到Cookie對象中,并重定向到首頁,完成登錄過程。
JWT驗證方式會大大地降低Cookie泄漏的風險,獨立的認證系統會有獨一無二的“鹽值”,相關信息系統不會進行驗證和授權的功能。增強了系統的安全性。
3 結論
伴隨B/S系統在互聯網中的普及,用戶的隱私數據和網站后臺的安全性變得尤其重要,暴力破解不僅僅可以對普通用戶的隱私數據進行竊取,還可以對管理員賬戶進行破解,進而控制整個網站。本文介紹的驗證碼認證、限定失敗登錄次數、認證日志監控、增大密碼復雜度、判斷用戶登錄IP、Json Web Token安全認證機制等,從各個方面敘述了暴力破解的防御方法,能夠有效地防御暴力破解,保障用戶、公司的隱私和安全。
參考文獻:
[1] 吳濤,張俊.基于B/S系統的SQL注入防御技術研究[J].電腦知識與技術,2020,16(2):7-8.
[2] 尹芷儀,江偉玉,沈嘉薈.一種針對暴力破解的安全口令保管庫方案[J].計算機應用與軟件,2017,34(7):319-324.
[3] 趙星.網站暴力破解攻擊及防御措施[J].山西電子技術,2016(1):52-54.
[4] 沈正,陳鍾.HTTP(HTTPS)身份認證暴力破解[J].科技經濟市場,2007(7):6-7.
[5] 李志鴻.密碼暴力破解在FTP服務器下的防范策略[J].網絡安全技術與應用,2014(1):40-41,73.
【通聯編輯:代影】