作者:大巖不燦
首先Mysql的密碼權(quán)限存儲(chǔ)在mysql.user表中。我們不關(guān)注鑒權(quán)的部分,我們只關(guān)心身份認(rèn)證,識(shí)別身份,后面的權(quán)限控制是很簡(jiǎn)單的事情。
在mysql.user表中有個(gè)authentication_string字段,存儲(chǔ)的是密碼的兩次sha1值。
你可以用下面的語(yǔ)句,驗(yàn)證和mysql.user表中存儲(chǔ)的是一致的。
select sha1(UNHEX(sha1(‘password’)))
以上就是服務(wù)端關(guān)于密碼的存儲(chǔ),接下來(lái)是認(rèn)證過(guò)程。
Mysql采用的是一種challenge/response(挑戰(zhàn)-應(yīng)答)的認(rèn)證模式。
第一步:客戶端連接服務(wù)器
第二步:服務(wù)器發(fā)送隨機(jī)字符串challenge給客戶端
第三步:客戶端發(fā)送username+response給服務(wù)器
其中response=HEX(SHA1(password) ^ SHA1(challenge + SHA1(SHA1(password))))
第四步:服務(wù)器驗(yàn)證response。
服務(wù)器存儲(chǔ)了SHA1(SHA1(password)))
所以可以計(jì)算得到SHA1(challenge + SHA1(SHA1(password))))
那么SHA1(password)=response^ SHA1(challenge + SHA1(SHA1(password))))
最后再對(duì)SHA1(password)求一次sha1和存儲(chǔ)的數(shù)據(jù)進(jìn)行比對(duì),一致表示認(rèn)證成功。
我們分析它的安全性:
抓包可以得到response,但是每次認(rèn)證服務(wù)器都會(huì)生成challenge,所以通過(guò)抓包無(wú)法構(gòu)造登陸信息。數(shù)據(jù)庫(kù)內(nèi)容被偷窺,數(shù)據(jù)庫(kù)記錄的是sha1(sha1(password)),不可以得到sha1(password)和明文密碼,所以無(wú)法構(gòu)造response,同樣無(wú)法登陸。當(dāng)然如果被抓包同時(shí)數(shù)據(jù)庫(kù)泄密,就可以得到sha1(password),就可以仿冒登陸了。
這種認(rèn)證方式其實(shí)是有一個(gè)框架標(biāo)準(zhǔn)的,叫做SASL(Simple Authentication and Security Layer ),專(zhuān)門(mén)用于C/S模式下的用戶名密碼認(rèn)證。原理就是服務(wù)器發(fā)送一個(gè)挑戰(zhàn)字challenge給客戶端,客戶端返回的response證明自己擁有密碼,從而完成認(rèn)證的過(guò)程,整個(gè)過(guò)程不需要密碼明文在網(wǎng)絡(luò)上傳輸。
基于SASL協(xié)議有很多實(shí)現(xiàn),mysql的就是模仿的CRAM-MD5協(xié)議,再比如SCRAM-SHA1協(xié)議,是mongdb、PostgreSQL 使用的認(rèn)證方式。在JDK中專(zhuān)門(mén)有一套SASL的API,用于實(shí)現(xiàn)不同的SASL認(rèn)證方式。
- 蜜度索驥:以跨模態(tài)檢索技術(shù)助力“企宣”向上生長(zhǎng)
- 央國(guó)企采購(gòu)管理升級(jí),合合信息旗下啟信慧眼以科技破局難點(diǎn)
- Apache Struts重大漏洞被黑客利用,遠(yuǎn)程代碼執(zhí)行風(fēng)險(xiǎn)加劇
- Crunchbase:2024年AI網(wǎng)絡(luò)安全行業(yè)風(fēng)險(xiǎn)投資超過(guò)26億美元
- 調(diào)查報(bào)告:AI與云重塑IT格局,77%的IT領(lǐng)導(dǎo)者視網(wǎng)絡(luò)安全為首要挑戰(zhàn)
- 長(zhǎng)江存儲(chǔ)發(fā)布聲明:從無(wú)“借殼上市”意愿
- 泛微·數(shù)智大腦Xiaoe.AI正式發(fā)布,千人現(xiàn)場(chǎng)體驗(yàn)數(shù)智化運(yùn)營(yíng)場(chǎng)景
- IDC:2024年第三季度北美IT分銷(xiāo)商收入增長(zhǎng)至202億美元
- AI成為雙刃劍!凱捷調(diào)查:97%組織遭遇過(guò)GenAI漏洞攻擊
- openEuler開(kāi)源五年樹(shù)立新里程碑,累計(jì)裝機(jī)量突破1000萬(wàn)
- 創(chuàng)想 華彩新程!2024柯尼卡美能達(dá)媒體溝通會(huì)煥新增長(zhǎng)之道
免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。