MongoDB默认使用的SCRAM-SHA1认证机制
SCRAM(Salted Challenge Response Authentication Mechanism),MongoDB自3.0版本開始使用SCRAM作為其默認的安全認證機制,取代了之前使用的MONGODB-CR。
這篇文檔主要說明的是SCRAM認證機制的設計原理和安全性。
背景
在介紹SCRAM之前,還需要介紹下MongoDB的認證。MongoDB不保存明文密碼,它的認證要求客戶端(Client)提供自身合法性的依據,在3.0版本中,有3種認證機制:
1.1 挑戰-應答協議(Challenge-Response Protocols)
在3.0版本中使用了一種新的基于密碼認證協議,即挑戰-應答協議(Challenge-Response Protocols)。該協議的原理是服務器對客戶端的連接請求都會發起一個問答過程,客戶端需要在回應中證明自己知道真正的密碼。這就像是一個程序員找工作去面試,他不需要在面試現場直接手擼一個系統什么的,最重要的是把思路方法、問題點和解決方案等等細節表達清楚,這樣才能讓面試官相信眼前的這位面試者能勝任這個崗位的工作。
挑戰-應答協議也是這么回事,它需要客戶端來自證身份。這種協議的好處顯而易見,假的真不了,防范了重放攻擊(replay attacks)。那么同樣采用了挑戰-應答協議的SCRAM不僅能做到這一點,它還采用了其他的安全機制以實現防范其他類型的安全攻擊。
1.2 威脅模型(Threat Model)
我們假定黑客可以捕獲和生成任意網絡流量(事實也是如此),并檢查服務器的磁盤存儲內容,同時假設他在運算方面受到限制,因為他也無法突破任何標準密碼原語,比如安全哈希函數。
以下是根據以上威脅模型對SCRAM的一些安全威脅場景。這些都是SCRAM的設計理由,并且實現了應對這些攻擊的策略。
SCRAM
2.1 協議圖(Protocol Diagram)
2.2 參考資料
具體的加密過程點我查看。
SCRAM對安全攻擊的防范點我查看。
總結
以上是生活随笔為你收集整理的MongoDB默认使用的SCRAM-SHA1认证机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么解决计算机键盘驱动,键盘驱动不兼容,
- 下一篇: 阿里云盘 PC 版上线,百度网盘 SVI