白帽子講web安全-認(rèn)證與會(huì)話管理

who am i

認(rèn)證的目的是為了認(rèn)出用戶是誰,而授權(quán)的目的是為了決定用戶能夠在做什么。

認(rèn)證實(shí)際上就是一個(gè)驗(yàn)證憑證的過程。

密碼的那些事情

首先是增強(qiáng)密碼強(qiáng)度,

接著是密碼必須是不可逆的加密算法,或者是單向散列函數(shù)算法,加密后存儲(chǔ)在數(shù)據(jù)庫中。

最后防止破解,增加了salt 這個(gè)隨機(jī)字符串,注意這個(gè)字符串應(yīng)該保存在服務(wù)器端的配置文件中,并妥善保管。

多因素認(rèn)證

除了密碼外,還可以增加手機(jī)動(dòng)態(tài)指令,數(shù)字證書,支付盾,寶令,第三方證書。

session與認(rèn)證

密碼與證書等認(rèn)證手段,一般般僅用于登錄過程,驗(yàn)證一次,成功后,瀏覽器每次請(qǐng)求頁面使用用戶透明的憑證-sessionID

sessionID加密保存在cookie中,sessionID在生命周期內(nèi)被竊取,就等于賬戶失竊,session劫持就是通過這個(gè),使用sessionID登錄目標(biāo)賬戶攻擊。如果sessionID是保存在cookie中的,則這種攻擊就可以稱為cookie劫持。

還可以保存在URL中,通過但是一個(gè)典型場景為referer泄露URL中的額sid.

session fixation攻擊

車子交付后,我還有鑰匙,這個(gè)沒有換鎖引起的安全問題就是session fixation問題。

sessionID保存在cookie中,比較難做到這一點(diǎn)。現(xiàn)在多用cookie,所以現(xiàn)在這個(gè)攻擊很少有用武之地。

解決這個(gè)攻擊正確做法是,在登錄之后,重寫sessionID。

如果使用sid則需要重置sid的值,如果使用cookie,則需要增加或改變用于認(rèn)證的cookie。

session保持攻擊

活動(dòng)的session長期不消除。就會(huì)成為一個(gè)backasshole,成為一個(gè)攻擊后門。攻擊者通過不斷發(fā)送訪問請(qǐng)求,讓session一直活下去。其原理就是不停的刷新頁面,以保持session不過期。很多應(yīng)用都是利用cookie的expire標(biāo)簽來控制session的失效時(shí)間。

如何對(duì)抗這種攻擊呢。

一種方法是在一定時(shí)間后,強(qiáng)制銷毀session。

單點(diǎn)登錄sso

他希望用戶只需要登錄一次,就可以訪問所有系統(tǒng)。從用戶體驗(yàn)的角度,無疑讓用戶的使用更加方便。從安全的角度來說,把風(fēng)險(xiǎn)集中到一個(gè)單點(diǎn)上,這樣做是有利有弊的。

目前最流行的最為開放和流行的是openID,這是個(gè)開放的單點(diǎn)登錄框架,他希望使用URL作為用戶在互聯(lián)網(wǎng)的身份標(biāo)識(shí),每個(gè)用戶擁有一個(gè)唯一的URL。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容