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