作者:大巖不燦
首先Mysql的密碼權(quán)限存儲在mysql.user表中。我們不關(guān)注鑒權(quán)的部分,我們只關(guān)心身份認證,識別身份,后面的權(quán)限控制是很簡單的事情。
在mysql.user表中有個authentication_string字段,存儲的是密碼的兩次sha1值。
你可以用下面的語句,驗證和mysql.user表中存儲的是一致的。
select sha1(UNHEX(sha1(‘password’)))
以上就是服務(wù)端關(guān)于密碼的存儲,接下來是認證過程。
Mysql采用的是一種challenge/response(挑戰(zhàn)-應(yīng)答)的認證模式。
第一步:客戶端連接服務(wù)器
第二步:服務(wù)器發(fā)送隨機字符串challenge給客戶端
第三步:客戶端發(fā)送username+response給服務(wù)器
其中response=HEX(SHA1(password) ^ SHA1(challenge + SHA1(SHA1(password))))
第四步:服務(wù)器驗證response。
服務(wù)器存儲了SHA1(SHA1(password)))
所以可以計算得到SHA1(challenge + SHA1(SHA1(password))))
那么SHA1(password)=response^ SHA1(challenge + SHA1(SHA1(password))))
最后再對SHA1(password)求一次sha1和存儲的數(shù)據(jù)進行比對,一致表示認證成功。
我們分析它的安全性:
抓包可以得到response,但是每次認證服務(wù)器都會生成challenge,所以通過抓包無法構(gòu)造登陸信息。數(shù)據(jù)庫內(nèi)容被偷窺,數(shù)據(jù)庫記錄的是sha1(sha1(password)),不可以得到sha1(password)和明文密碼,所以無法構(gòu)造response,同樣無法登陸。當然如果被抓包同時數(shù)據(jù)庫泄密,就可以得到sha1(password),就可以仿冒登陸了。
這種認證方式其實是有一個框架標準的,叫做SASL(Simple Authentication and Security Layer ),專門用于C/S模式下的用戶名密碼認證。原理就是服務(wù)器發(fā)送一個挑戰(zhàn)字challenge給客戶端,客戶端返回的response證明自己擁有密碼,從而完成認證的過程,整個過程不需要密碼明文在網(wǎng)絡(luò)上傳輸。
基于SASL協(xié)議有很多實現(xiàn),mysql的就是模仿的CRAM-MD5協(xié)議,再比如SCRAM-SHA1協(xié)議,是mongdb、PostgreSQL 使用的認證方式。在JDK中專門有一套SASL的API,用于實現(xiàn)不同的SASL認證方式。
- 破界·共生·致遠——2025易立德新品發(fā)布會在上海舉辦
- 百度與寧德時代達成戰(zhàn)略合作,聚焦無人駕駛與數(shù)智化領(lǐng)域
- 合合信息與中科曙光簽署合作協(xié)議,AI賦能信創(chuàng)產(chǎn)業(yè)升級
- 英特爾火力全開炮轟AMD和英偉達:漏洞數(shù)量及危害性“遙遙領(lǐng)先”
- SUSE發(fā)布SUSE Edge Suite 與Edge 3.2 ,助力零售企業(yè)實現(xiàn)無縫化運營
- Gartner:2025年全球IT支出將達到5.61億美元,同比增長9.8%
- 消息稱去年全球IT支出超過5萬億美元 數(shù)據(jù)中心系統(tǒng)支出大幅增加
- 2025年全球數(shù)據(jù)中心:數(shù)字基礎(chǔ)設(shè)施的演變
- 谷歌押注多模態(tài)AI,BigQuery湖倉一體是核心支柱
- 數(shù)字化轉(zhuǎn)型支出將飆升:到2027年將達到4萬億美元
免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。