web安全学习-验证机制存在的问题
驗證機(jī)制是應(yīng)用程序防御惡意攻擊的中心機(jī)制。它處于防御未授權(quán)的最前沿,如果用戶能夠突破那些防御,他們通常能夠控制應(yīng)用程序的全部功能,自由訪問其中的數(shù)據(jù)。缺乏安全穩(wěn)定的驗證機(jī)制,其他核心安全機(jī)制(如回話管理和訪問控制)都無法有效實施。
web應(yīng)用程序常用的驗證機(jī)制有:
1)? 基于HTML表單的驗證(最常用)
2)? 多元機(jī)制,如組合型密碼和物理令牌
3)? 客戶端SSL證書或智能卡(成本非常昂貴)
4)? HTTP基本和摘要驗證(內(nèi)網(wǎng)使用較多)
5)? 使用NTLM或Kerberos整合windows的驗證
6)? 驗證服務(wù)
接下來說一下,在驗證機(jī)制中可能存在的一些問題。一共分為兩個個方面進(jìn)行說明,分別為設(shè)計缺陷和執(zhí)行缺陷
驗證機(jī)制的設(shè)計缺陷:
1)? 密碼保密性不強(qiáng):使用非常短或空白的密碼,已常用的字典詞匯或名稱為密碼,密碼和用戶名完全相同,依然使用默認(rèn)密碼,存在這些情況容易導(dǎo)致暴力破解。
?
2)? 蠻力攻擊登陸(允許攻擊者使用不同的密碼重復(fù)進(jìn)行登陸嘗試)
?
3)? 詳細(xì)的失敗信息(顯示是用戶名或者密碼錯誤,攻擊者可以輕易的確定有效的用戶名作為隨后攻擊的基礎(chǔ))
通過詳細(xì)的失敗信息可以枚舉用戶名,然后根據(jù)用戶名去猜測密碼。
4)? 證書傳輸易受攻擊(使用非加密的HTTP連接,應(yīng)用程序處理證書的方式不安全)
進(jìn)行一次成功登陸,監(jiān)控客戶端和服務(wù)器之間的所有來回流量,確定在來回方向上傳輸證書的每一種情況,如果發(fā)現(xiàn)通過URL字符串或者cookie的方式提交證書,想法弄清楚開發(fā)者這樣做的目的。同時使用HTTP協(xié)議或者查詢字符串傳遞都是不安全的。
5)? 密碼修改功能(允許詳細(xì)的錯誤信息,說明被請求的用戶名是否有效,允許攻擊者無限制猜測現(xiàn)有密碼字段,在驗證現(xiàn)有密碼后,僅檢查新密碼與確認(rèn)密碼)
使用無效的用戶,無效的現(xiàn)有密碼及不匹配的“新密碼”和“確認(rèn)密碼”值向密碼修改功能提交各種請求,設(shè)法確定任何可用于用戶名枚舉和暴力攻擊的行為。
6)? 忘記密碼功能
用戶名枚舉,質(zhì)詢響應(yīng)問題
7)? 記住我功能
記住我功能通過簡單的cookie執(zhí)行,可能造成推測出其cookie值從而避免登陸
8)? 用戶偽裝功能(造成垂直提權(quán)等功能)
9)? 證書確認(rèn)不完善(截斷密碼,只確認(rèn)前n個字符,不對密碼進(jìn)行大小寫檢查,刪除不常用的字符)
10) 非唯一性用戶名(枚舉,泄露另一個賬戶的密碼)
11)? 可預(yù)測用戶名
12)? 可預(yù)測初始密碼
13)? 證書分配不安全(通過郵件或者郵寄密碼,激活URL表現(xiàn)出某種順序)
?
驗證機(jī)制執(zhí)行缺陷:
1)故障開放登陸機(jī)制(邏輯缺陷,
?
?
2)多階段登錄機(jī)制中的缺陷
一些應(yīng)用程序使用精心設(shè)計的多階段登錄機(jī)制,例如輸入用戶名和密碼,響應(yīng)一個質(zhì)詢,答案是pin中的特殊數(shù)字或一個值得紀(jì)念的詞,提交在不斷變化的物理令牌上顯示的某個值。
3)不安全的證書存儲
以明文存儲證書
?
上面輸了驗證機(jī)制中可能存在的一些問題,下面來說一下如何保障驗證機(jī)制的安全,
在設(shè)計安全機(jī)制的時候,需要考慮以下的因素:
應(yīng)用程序所提供功能的安全程度
用戶對不同類型的驗證控制的容忍和接受程度
支持一個不夠友好的用戶界面系統(tǒng)所需的成本
競爭性解決方案相對于應(yīng)用程序可能產(chǎn)生的收入方面的金融成本或它所保護(hù)資產(chǎn)的價值
具體方法如下:
1)? 使用可靠的證書(強(qiáng)密碼,唯一的用戶名,隨機(jī))
2)? 安全處理證書(使用HTTPS加載登錄表單)
3)? 正確確認(rèn)證書
4)? 防止信息泄露
5)? 防止蠻力攻擊
6)? 防止濫用密碼修改功能
7)? 防止濫用賬戶恢復(fù)功能
8)? 日志,監(jiān)控與通知
?
轉(zhuǎn)載于:https://www.cnblogs.com/yonghegn/p/9397450.html
總結(jié)
以上是生活随笔為你收集整理的web安全学习-验证机制存在的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小程序UI
- 下一篇: spring boot 加载applic