廣告招募

技術(shù)干貨 | OAuth2.0的安全解析

2023年09月10日 11:28:16      來源:上海派拉軟件股份有限公司 >> 進(jìn)入該公司展臺      閱讀量:37

分享:

//
1.為什么要用OAuth2.0

//


在一個單位中,可能是存在多個不同的應(yīng)用,比如汽車制造企業(yè)會有財務(wù)的系統(tǒng),4S店的銷售系統(tǒng),面向車主的論壇系統(tǒng),還有ERP、OA、CRM系統(tǒng)等等,如果每個系統(tǒng)都用獨立的賬號認(rèn)證體系,會給用戶帶來很大困擾,也給管理帶來很大不便。所以需要設(shè)計一種統(tǒng)一登錄的解決方案。比如我登陸了賬號,進(jìn)貼吧時發(fā)現(xiàn)已經(jīng)登錄了,進(jìn)糯米發(fā)現(xiàn)也自動登錄了。


常見的有兩種情況:


1)多平臺登錄,效果是可以用一個賬號(比如QQ賬號)登錄多個不同的網(wǎng)站;多個網(wǎng)站多次登錄,但是用戶名密碼一樣,只要記住一個用戶名密碼;

2)SSO(單點登錄)效果是一次輸入密碼多個網(wǎng)站可以識別在線狀態(tài);一次登錄可以多次訪問不同應(yīng)用系統(tǒng);

顯然大家希望使用第二種方式,更自由更方便,當(dāng)然安全風(fēng)險也隨之而來,怎么解決既方便又安全的SSO呢,于是OAuth出現(xiàn)了;

OAuth2.0是一個關(guān)于(authorization)的開放網(wǎng)絡(luò)標(biāo)準(zhǔn),在得到廣泛應(yīng)用,目前的版本是2.0版。OAuth 2.0的運行流程,有興趣的朋友可以查看文檔RFC 6749。


//
2. OAuth碼模式認(rèn)證流程簡介
//


碼模式(authorization code)是功能最完整、流程最嚴(yán)密的模式,也是最繁瑣的一種模式。它的特點就是通過客戶端的后臺服務(wù)器,與"服務(wù)提供商"的認(rèn)證服務(wù)器進(jìn)行互動。


client向資源服務(wù)器請求資源,被重定向到服務(wù)器;


瀏覽器向資源擁有者索要,之后將用戶發(fā)送給服務(wù)器;


服務(wù)器將碼轉(zhuǎn)經(jīng)瀏覽器發(fā)送給client;


client拿著碼向服務(wù)器索要訪問令牌;


服務(wù)器返回AccessToken和RefreshToken給cilent。


//
3. OAuth2.0協(xié)議在使用過程中的不規(guī)范,容易引起的風(fēng)險及正確使用的規(guī)范
//


OAuth2.0協(xié)議是目前被運用廣泛的一個SSO協(xié)議,在早期的時候爆發(fā)過不少相關(guān)的安全方面的漏洞,其實仔細(xì)分析后會發(fā)現(xiàn)大都都是沒有嚴(yán)格遵循OAuth2.0的安全相關(guān)的指導(dǎo)造成的。


風(fēng)險1:redirect_url 回調(diào)域名欺騙


服務(wù)端必須驗證clientid注冊的應(yīng)用與redirect_url是對應(yīng)的,否則redirect_url會被偽造成第三方欺詐域名,直接導(dǎo)致服務(wù)器返回Code被泄露;


服務(wù)器生成的臨時Code必須是一次有效,客戶端使用一次后立即失效并且有效期很短,一般推薦30s有效期,由于Code是通過redirect_url瀏覽器回調(diào)傳輸容易被截取,可以保證臨時Code被客戶端正常消費后不會被再次使用;


風(fēng)險2:redirect_url XSS跨域攻擊


比如構(gòu)造一個認(rèn)證請求,redirect_uri =

服務(wù)器端需要對redirect_url進(jìn)行檢查禁止特殊字符輸入,并且對redirect_url進(jìn)行全匹配,不做模糊匹配可以杜絕XSS攻擊;


風(fēng)險3:State 防止CSRF


認(rèn)證請求url中state參數(shù)是最容易被忽略的,大部分IDP不會強(qiáng)制要求客戶端使用state參數(shù);


客戶端每次請求生成字符串在請求中放到state參數(shù)中,服務(wù)端認(rèn)證成功返回Code會帶上state參數(shù),客戶端驗證state是否是自己生成的串,可以確定這次請求是有客戶端真實發(fā)出的,不是偽造的請求;


風(fēng)險4:Access_Token泄露


由于Access_Token是通過http協(xié)議從服務(wù)器端傳輸給客戶端,為了防止旁路泄露Access_Token,服務(wù)器必須提供https來保證傳輸通道的安全性(TSL的要求);


客戶端獲取Access_Token,應(yīng)該在后臺與服務(wù)端交互獲取Access_Token,不允許Access_Token傳給前端直接使用;


需要保證Access_Token信息的不可猜測行,以防止被猜測得到;


風(fēng)險5:令牌有效性漏洞


維持refresh_token和第三方應(yīng)用的綁定,刷新失效機(jī)制的設(shè)計不允許長期有效的token存在;


//

4.派拉軟件增強(qiáng)OAuth2.0協(xié)議設(shè)計及使用規(guī)范

//


派拉軟件專業(yè)做身份管理,對OAUTH2.0協(xié)議進(jìn)行深入研究,并且對其安全性進(jìn)行進(jìn)一步增強(qiáng)。

對頒發(fā)出去的token權(quán)限進(jìn)行限制,不同用戶申請的token根據(jù)人員所屬組織、角色、崗位進(jìn)行數(shù)據(jù)隔離;


對登錄過程安全性增強(qiáng),對登錄驗證方式進(jìn)行豐富,支持靜態(tài)密碼、手機(jī)驗證碼、OTP、生物識別、FIDO;


對Token頒發(fā)后的生命周期管理,可以按策略主動注銷頒發(fā)的Token;


對使用OAuth過程進(jìn)行AI人工智能行為分析,對登錄過程進(jìn)行風(fēng)險識別;


按照不同應(yīng)用的安全等級進(jìn)行分級,不同安全級別應(yīng)用實現(xiàn)二次認(rèn)證,保障關(guān)鍵系統(tǒng)的安全訪問。

版權(quán)與免責(zé)聲明:
1.凡本網(wǎng)注明"來源:全球供應(yīng)網(wǎng)"的所有作品,版權(quán)均屬于興旺寶裝備總站,轉(zhuǎn)載請必須注明興旺寶裝備總站。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
2.企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
3.本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品來源,并自負(fù)版權(quán)等法律責(zé)任。 4.如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系。

国产av原创首播,国产成本人片免费av,A国产欧美激情在线,日本欧洲大胆色噜噜337P