密码安全存储与登陆的方案
原文鏈接:用戶登錄最佳實踐(基于慢哈希)
更多閱讀:數據庫里賬號的密碼,需要怎樣安全的存放?
從思想上重視數據安全
一個健壯的系統應該是:
即使被拿走了數據和所有的代碼,也沒辦法破解里面的數據。
這也是為什么大家不必實現自己的加密算法,而是使用公開的加密算法的原因,比如:ECC、AES、3DES 、SHA等等。既然無法保證加密代碼不被泄露,那就使用公開的加密算法,只要保護好私鑰信息,就算你知道我的加密方式也沒有任何幫助。
工作重點由原來防止數據泄露,到防止還原數據中。
用戶在客戶端輸入密碼,到網絡傳輸,到服務器數據存儲,都使用正確的方法
客戶端如何加密用戶口令
1.在WEB程序中,永遠不要使用明文傳輸密碼
2.客戶端公鑰不要和用戶名產生關系,否則黑客會檢測用戶名是否有效。
3.公鑰從服務器端獲取,客戶端和網絡傳輸層無法獲取私鑰,網絡傳輸層無法解密加密的密碼
客戶端可以使用:ECC(SHA3_512(password),publicKey)
提示:不要告訴用戶用戶名是否錯誤
不要告訴用戶到底是用戶名錯了,還是密碼錯了。只需要給出一個大概的提示,比如“無效的用戶名或密碼”。這可以防止攻擊者在不知道密碼的情況下,枚舉出有效的用戶名。
如何保證傳輸環節口令安全
1.推薦使用HTTPS(SSL/TLS)
2.使用 HTTP 協議傳輸數據時,數據都是明文傳輸的,要保證用戶口令數據的加密和被劫持后不可解密。
3.客戶端和服務器端使用POST請求
4.服務器端檢測來源頁面,比如使用請求令牌(防止跨站攻擊)
5.防止重復提交,比如使用同步令牌
6.惡意腳本檢測,過濾SQL注入、跨站腳本(XSS)等一切非法腳本運行...
服務器端如何保存用戶口令
客戶端加密后,仍然需要在服務端再次加密
如果后端不做處理,只是對比,那么黑客可以在不知道用戶密碼的情況下,隨意使用任何一個人的賬號登陸(重放攻擊)
軟件加密推薦使用慢哈希算法:bcrypt
可以有效抵御彩虹表攻擊,即使數據泄露,最關鍵的“用戶密碼”仍然可以得到有效的保護,黑客無法大批量破解用戶密碼,從而切斷撞庫掃號的根源。當然,對于已經泄露的密碼,還是需要用戶盡快修改密碼,不要再使用已泄露的密碼。
高安全需要使用硬件加密,選擇適合的加密設備
正確保存密碼方法:
1.(中高安全)軟件加密:加鹽慢 hash (含隨機數)保存密碼 bcrypt(SHA3_512(password))
2.(中高安全)軟件加密:加鹽慢 hash (含隨機數)保存密碼,hmacKey存儲到其他服務器,只有特定的機器才能獲取密鑰 bcrypt(hmac(SHA3_512(password),hmacKey))
3.(高安全)硬件加密:專屬加密通道,不解密,對比密碼是否正確使用硬件加密設備
用戶登錄最佳實踐流程圖解
注意點:
1.第6步,為防止DDOS攻擊,使用錯誤次數超過6次鎖定,并配合設備登陸檢測、異常登錄驗證等輔助安全措施
2.當服務器端的SESSION超時,客戶端使用無效的公鑰加密密碼上傳時,提示錯誤并重新下發公鑰
3.第7步,使用Hmac512(SHA3_512(password),key)進行加密
4.第8步,使用Bcrypt.match(用戶密碼,數據庫存儲的Bcrypt值)方法對比密碼是否正確
如何進行用戶密碼重置
當用戶忘記密碼的時候,怎樣進行重置?
1.如無必要,盡量不要允許用戶重置密碼
2.通過電子郵件重置密碼,需要隨機生成一個一次性令牌,將這個令牌混入到一個重置密碼的鏈接中
3.確保令牌只對一個賬戶有效,令牌有效期盡量短,使用即刻失效。重新請求令牌或登錄成功時原令牌立即失效
4.鏈接中不要體現賬戶信息,并且只用來服務器端識別數據庫中某條用戶的記錄
5.永遠不要通過電子郵件向用戶發送新密碼
6.用戶重置密碼的時候隨機生成一個新的鹽值用于加密,不要重復使用之前密碼的那個鹽值
7.也可以使用短信驗證碼的方式下發重置密碼鏈接,會比通過SMTP明文傳輸安全一些
未來主流加密趨勢
2015年,支付寶推出8.0版本,新版本推薦用戶升級6位數字支付密碼,已設置的密碼無法切換回原來的復雜密碼。
2016年,京東推出6位支付密碼
使用硬件加密機,能夠徹底防止數據被還原。
未來的加密趨勢:
1.傳統的MD5、SHA1加密會越來越少
2.傳統的加鹽哈希也會越來越少
3.對于規模和資金都較小的公司,一般使用軟件方式加密,如:加鹽慢哈希、KEY專屬通道、部分數據異地存儲等
4.高安全使用硬件加密
5.錯誤次數鎖定、設備登陸檢測、異常登錄驗證、來源URL檢測、跨站攻擊檢測等輔助安全措施越來越普及
本文章在實際工作中的意義
1.當前各個企業都有各類應用系統,用戶名、密碼登陸幾乎涉及到開發的所有部門
2.使用安全的方式進行密碼防護,能夠保證密碼不被破解,提高客戶對系統的信任和認可度
3.數據一旦被泄露,從數據的價值方面考慮,公司損失巨大
4.數據一旦被泄露,社會上的輿論對公司的影響巨大
5.密碼如果被破解,危害的不僅僅是本系統
總結
以上是生活随笔為你收集整理的密码安全存储与登陆的方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AppScan--图解Web扫描工具IB
- 下一篇: 百度网盘禁止查看别人分享主页的资源收集解