真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

HTTP認(rèn)證模式:Basic&Digest

一. Basic 認(rèn)證

創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)成都營(yíng)銷(xiāo)網(wǎng)站建設(shè)、網(wǎng)站重做改版、且末網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為且末等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

客戶(hù)端以“ : ”連接用戶(hù)名和密碼后,再經(jīng)BASE64加密通過(guò)Authorization請(qǐng)求頭發(fā)送該密文至服務(wù)端進(jìn)行驗(yàn)證,每次請(qǐng)求都需要重復(fù)發(fā)送該密文??梢?jiàn)Basic認(rèn)證過(guò)程簡(jiǎn)單,安全性也低,存在泄露個(gè)人賬號(hào)信息以及其他諸多安全問(wèn)題。以下僅為原理演示,不代表真實(shí)情況:

  1. 客戶(hù)端向服務(wù)器請(qǐng)求數(shù)據(jù):

    GET / HTTP/1.1
    Host: www.myrealm.com

  2. 服務(wù)端向客戶(hù)端發(fā)送驗(yàn)證請(qǐng)求401:

    HTTP/1.1 401 Unauthorised
    Server: bfe/1.0.8.18
    WWW-Authenticate: Basic realm="myrealm.com"
    Content-Type: text/html; charset=utf-8

  3. 客戶(hù)端收到401返回值后,將自動(dòng)彈出一個(gè)登錄窗口,等待用戶(hù)輸入用戶(hù)名和密碼

  4. 將“用戶(hù)名:密碼”進(jìn)行BASE64加密后發(fā)送服務(wù)端進(jìn)行驗(yàn)證:

    GET / HTTP/1.1
    Host: www.myrealm.com
    Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxx

  5. 服務(wù)端取出Authorization請(qǐng)求頭信息進(jìn)行解密,并與用戶(hù)數(shù)據(jù)庫(kù)進(jìn)行對(duì)比判斷是否合法,合法將返回200 OK。RFC 2617 規(guī)格中Basic認(rèn)證不發(fā)送Authentication-Info頭部,Authentication-Info頭部是Digest認(rèn)證中新增的

HTTP認(rèn)證模式:Basic & Digest

 1 Hello {$_SERVER['PHP_AUTH_USER']}.

"; 9     echo "

You entered {$_SERVER['PHP_AUTH_PW']} as your password.

";10   }

HTTP認(rèn)證模式:Basic & Digest

  

二. Digest 認(rèn)證

Digest認(rèn)證試圖解決Basic認(rèn)證的諸多缺陷而設(shè)計(jì),用戶(hù)密碼在整個(gè)認(rèn)證過(guò)程中是個(gè)關(guān)鍵性要素。

下為服務(wù)端發(fā)送的Digest認(rèn)證響應(yīng)頭部實(shí)例及各指令含義說(shuō)明:PHP官方文檔中發(fā)送WWW-Authenticate頭部時(shí)各指令之間用了空格,在Chrome下是不會(huì)彈出認(rèn)證對(duì)話(huà)框的,應(yīng)該換成”, “或”,“

WWW-Authenticate: Digest realm="Restricted area", qop="auth,auth-int", nonce="58e8e52922398", opaque="cdce8a5c95a1427d74df7acbf41c9ce0", algorithm="MD5"
  • WWW-Authenticate:服務(wù)端發(fā)送的認(rèn)證質(zhì)詢(xún)頭部

  • Authentication-Info:服務(wù)端發(fā)送的認(rèn)證響應(yīng)頭部,包含nextnonce、rspauth響應(yīng)摘要等

  • realm:授權(quán)域,至少應(yīng)該包含主機(jī)名

  • domain:授權(quán)訪(fǎng)問(wèn)URIs列表,項(xiàng)與項(xiàng)之間以空格符分隔

  • qop:質(zhì)量保護(hù),值為auth或auth-int或[token],auth-int包含對(duì)實(shí)體主體做完整性校驗(yàn)

  • nonce:服務(wù)端產(chǎn)生的隨機(jī)數(shù),用于增加摘要生成的復(fù)雜性,從而增加破解密碼的難度,防范“中間人”與“惡意服務(wù)器”等***類(lèi)型,這是相對(duì)于不使用該指令而言的;另外,nonce本身可用于防止重放***,用于實(shí)現(xiàn)服務(wù)端對(duì)客戶(hù)端的認(rèn)證。RFC 2617 建議采用這個(gè)隨機(jī)數(shù)計(jì)算公式:nonce = BASE64(time-stamp MD5(time-stamp “:” ETag “:” private-key)),服務(wù)端可以決定這種nonce時(shí)間有效性,ETag(URL對(duì)應(yīng)的資源Entity Tag,在CGI編程中通常需要自行生成ETag和鑒別,可用于鑒別URL對(duì)應(yīng)的資源是否改變,區(qū)分不同語(yǔ)言、Session、Cookie等)可以防止對(duì)已更新資源版本(未更新無(wú)效,故需要設(shè)定nonce有效期)的重放請(qǐng)求,private-key為服務(wù)端私有key

  • opaque:這是一個(gè)不透明的數(shù)據(jù)字符串,在盤(pán)問(wèn)中發(fā)送給客戶(hù)端,客戶(hù)端會(huì)將這個(gè)數(shù)據(jù)字符串再發(fā)送回服務(wù)端器。如果需要在服務(wù)端和客戶(hù)端之間維護(hù)一些狀態(tài),用nonce來(lái)維護(hù)狀態(tài)數(shù)據(jù)是一種更容易也更安全的實(shí)現(xiàn)方式

  • stale:nonce過(guò)期標(biāo)志,值為true或false

  • algorithm:摘要算法,值為MD5或MD5-sess或[token],默認(rèn)為MD5

下為客戶(hù)端發(fā)送的Digest認(rèn)證頭請(qǐng)求部實(shí)例及各指令含義說(shuō)明:

Authorization: Digest username="somename", realm="Restricted area", nonce="58e8e52922398", uri="/t.php", response="9c839dde909d270bc5b901c7f80f77d5", opaque="cdce8a5c95a1427d74df7acbf41c9ce0", qop="auth", nc=00000001, cnonce="9c30405c3a67a259"
  • cnonce:客戶(hù)端產(chǎn)生的隨機(jī)數(shù),用于客戶(hù)端對(duì)服務(wù)器的認(rèn)證。由于“中間人”與“惡意服務(wù)器”等***方式的存在,導(dǎo)致一個(gè)特意選擇而非隨機(jī)唯一的nonce值傳給客戶(hù)端用于摘要的計(jì)算成為可能,使得“選擇性明文***”可能奏效,最后用戶(hù)密碼泄露。因此與nonce一樣,cnonce可用于增加摘要生成的復(fù)雜性,從而增加破解密碼的難度,也就保證了對(duì)服務(wù)端的認(rèn)證

    The countermeasure against this attack(選擇明文***) is for clients to be configured to require the use of the optional "cnonce" directive;this allows the client to vary the input to the hash in a way not chosen by the attacker.

     

  • nc:當(dāng)服務(wù)端開(kāi)啟qop時(shí),客戶(hù)端才需要發(fā)送nc(nonce-count)。服務(wù)端能夠通過(guò)維護(hù)nc來(lái)檢測(cè)用當(dāng)前nonce標(biāo)記的請(qǐng)求重放。如果相同的nc出現(xiàn)在用當(dāng)前nonce標(biāo)記的兩次請(qǐng)求中,那么這兩次請(qǐng)求即為重復(fù)請(qǐng)求。所以對(duì)于防止重放***而言,除了nonce之外,nc才是最后的保障。因此服務(wù)端除了維護(hù)用戶(hù)賬號(hào)信息之外,還需要維護(hù)nonce和nc的關(guān)聯(lián)狀態(tài)數(shù)據(jù)

下面將就摘要計(jì)算方法進(jìn)行說(shuō)明: 

  1. 算法的一般性表示

    H(data) = MD5(data)
    KD(secret, data) = H(concat(secret, ":", data))
  2. 與安全信息相關(guān)的數(shù)據(jù)用A1表示,則

    a) 采用MD5算法:
        A1=(user):(realm):(password)
    b) 采用MD5-sess算法:
        A1=H((user):(realm):(password)):nonce:cnonce
  3. 與安全信息無(wú)關(guān)的數(shù)據(jù)用A2表示,則

    a) QoP為auth或未定義:
        A2=(request-method):(uri-directive-value)
    b) QoP為auth-int:
        A2=(request-method):(uri-directive-value):H((entity-body))
  4. 摘要值用response表示,則

    HTTP認(rèn)證模式:Basic & Digest

    a) 若qop沒(méi)有定義:
        response
        = KD(H(A1),:H(A2))
        = H(H(A1),:H(A2))
    b) 若qop為auth或auth-int:
        response
        = KD(H(A1),::::H(A2))
        = H(H(A1),::::H(A2))

    HTTP認(rèn)證模式:Basic & Digest

     

三. 安全風(fēng)險(xiǎn)

  • 在線(xiàn)字典***(Online dictionary attacks):***者可以嘗試用包含口令的字典進(jìn)行模擬計(jì)算response,然后與竊聽(tīng)到的任何nonce / response對(duì)進(jìn)行對(duì)比,若結(jié)果一致則***成功。為應(yīng)對(duì)針對(duì)弱口令的字典***,降低***成功的可能性,可以禁止用戶(hù)使用弱口令

  • 中間人(Man in the Middle):在一次中間人***中,一個(gè)弱認(rèn)證方案被添加并提供給客戶(hù)端,因此你總是應(yīng)該從多個(gè)備選認(rèn)證方案中選擇使用最強(qiáng)的那一個(gè);甚至中間人可能以Basic認(rèn)證替換掉服務(wù)端提供的Digest認(rèn)證,從而竊取到用戶(hù)的安全憑證,然后中間人可利用該憑證去響應(yīng)服務(wù)端的Digest認(rèn)證盤(pán)問(wèn);***者還可能打著免費(fèi)緩存代理服務(wù)的幌子來(lái)招攬輕信者,通過(guò)實(shí)施中間人***,盜取他們的安全憑證;中間代理也可能誘導(dǎo)客戶(hù)端來(lái)發(fā)送一個(gè)請(qǐng)求給服務(wù)端。為此,客戶(hù)端可考慮給出安全等級(jí)風(fēng)險(xiǎn)警示,或在跟蹤服務(wù)端的認(rèn)證配置時(shí)發(fā)現(xiàn)其認(rèn)證強(qiáng)度降低就發(fā)出警告,或配置成只使用強(qiáng)認(rèn)證,或從指定站點(diǎn)來(lái)完成認(rèn)證

  • 預(yù)先計(jì)算字典***(Precomputed dictionary attacks):***者先構(gòu)建(response, password) 對(duì)字典,然后用選擇性明文(nonce)***的辦法來(lái)獲得相應(yīng)盤(pán)問(wèn)的response,檢索字典找到匹配的response則***成功

  • 批量式暴力***(Batch brute force attacks):中間人會(huì)對(duì)多個(gè)用戶(hù)執(zhí)行選擇性明文***來(lái)搜集相應(yīng)的responses,通過(guò)控制搜集的nonce / response對(duì)的數(shù)量將會(huì)縮短找到第一個(gè)password的耗時(shí),這種***的應(yīng)對(duì)之策就是要求客戶(hù)端使用cnonce指令

  • 假冒服務(wù)器欺騙(Spoofing by Counterfeit Servers):對(duì)于Basic認(rèn)證,這種***方式更容易奏效,對(duì)于Digest認(rèn)證則更難,但前提是客戶(hù)端必須知道將要使用的是Digest認(rèn)證。用戶(hù)在所使用的認(rèn)證機(jī)制中如何發(fā)現(xiàn)這一潛在***樣式應(yīng)該得到可見(jiàn)的幫助


網(wǎng)站欄目:HTTP認(rèn)證模式:Basic&Digest
本文來(lái)源:http://weahome.cn/article/jsoihc.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部