中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

http協(xié)議基本認(rèn)證模式

1970-01-01    來(lái)源:

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

http的認(rèn)證模式
  SIP類似Http協(xié)議。其認(rèn)證模式也一樣。Http協(xié)議(RFC 2616)規(guī)定可以采用Base模式和摘要模式(Digest schema)。RFC 2617 專門對(duì)兩種認(rèn)證模式做了規(guī)定。RFC 1321 是MD5標(biāo)準(zhǔn)。Digest對(duì)現(xiàn)代密碼破解來(lái)說(shuō)并不強(qiáng)壯,但比基本模式還是好很多。MD5已經(jīng)被山東大學(xué)教授找到方法可以仿冒(我的理解),但現(xiàn)在還在廣泛使用。
1.最簡(jiǎn)單的攻擊方式
  如果網(wǎng)站要求認(rèn)證,客戶端發(fā)送明文的用戶名密碼,那網(wǎng)絡(luò)上的竊聽者可以輕而易舉的獲得用戶名密碼,起不到安全作用。我上學(xué)時(shí)曾在科大實(shí)驗(yàn)室局域網(wǎng)內(nèi)竊聽別人的科大BBS的密碼,發(fā)現(xiàn)BBS的用戶名密碼居然是明文傳輸?shù)。那種做賊的心虛和做賊的興奮讓人激動(dòng)莫名。偷人錢財(cái)會(huì)受到道德譴責(zé),偷人密碼只會(huì)暗自得意忘形。比“竊書不算偷”還沒(méi)有罪惡感。因此你的用戶名和密碼明文傳輸?shù)脑,無(wú)異將一塊肥肉放在嘴饞的人面前。現(xiàn)在很多ASP網(wǎng)站的認(rèn)證都將用戶名和密碼用MD5加密。MD5是將任意長(zhǎng)度的字符串和128位的隨機(jī)數(shù)字運(yùn)算后生成一個(gè)16byte的加密字符串。因此竊聽者抓住的是一團(tuán)亂碼。但是,這有一個(gè)問(wèn)題:如果竊聽者就用這團(tuán)亂碼去認(rèn)證,還是可以認(rèn)證通過(guò)。因?yàn)榉⻊?wù)器將用戶名密碼MD5加密后得到的字符串就是那一團(tuán)亂碼,自然不能區(qū)別誰(shuí)是合法用戶。這叫重放攻擊(replay attack)。這和HTTP的基本認(rèn)證模式差不多。為了安全,不要讓別人不勞而獲,自然要做基本的防范。下面是Http協(xié)議規(guī)定的兩種認(rèn)證模式。
2.基本認(rèn)證模式
  客戶向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器返回401(未授權(quán)),要求認(rèn)證。401消息的頭里面帶了挑戰(zhàn)信息。realm用以區(qū)分要不同認(rèn)證的部分。客戶端收到401后,將用戶名密碼和挑戰(zhàn)信息用BASE64加密形成證書,發(fā)送回服務(wù)器認(rèn)證。語(yǔ)法如下:
????? challenge?? = "Basic" realm
????? credentials = "Basic" basic-credentials
示例:
?? 認(rèn)證頭: WWW-Authenticate: Basic realm="zhouhh@mydomain.com"
?? 證書:Authorization: Basic QsdfgWGHffuIcaNlc2FtZQ==
3.摘要訪問(wèn)認(rèn)證
  為了防止重放攻擊,采用摘要訪問(wèn)認(rèn)證。在客戶發(fā)送請(qǐng)求后,收到一個(gè)401(未授權(quán))消息,包含一個(gè)Challenge。消息里面有一個(gè)唯一的字符串:nonce,每次請(qǐng)求都不一樣?蛻魧⒂脩裘艽a和401消息返回的挑戰(zhàn)一起加密后傳給服務(wù)器。這樣即使有竊聽,他也無(wú)法通過(guò)每次認(rèn)證,不能重放攻擊。Http并不是一個(gè)安全的協(xié)議。其內(nèi)容都是明文傳輸。因此不要指望Http有多安全。
語(yǔ)法:
????? challenge??????? =? "Digest" digest-challenge
????? digest-challenge? = 1#( realm | [ domain ] | nonce |
????????????????????????? [ opaque ] |[ stale ] | [ algorithm ] |
????????????????????????? [ qop-options ] | [auth-param] )
????? domain??????????? = "domain" "="? URI ( 1*SP URI )
????? URI?????????????? = absoluteURI | abs_path
????? nonce???????????? = "nonce" "=" nonce-value
????? nonce-value?????? = quoted-string
????? opaque??????????? = "opaque" "=" quoted-string
????? stale???????????? = "stale" "=" ( "true" | "false" )
????? algorithm???????? = "algorithm" "=" ( "MD5" | "MD5-sess" |
?????????????????????????? token )
????? qop-options?????? = "qop" "="? 1#qop-value
????? qop-value???????? = "auth" | "auth-int" | token
realm:讓客戶知道使用哪個(gè)用戶名和密碼的字符串。不同的領(lǐng)域可能密碼不一樣。至少告訴用戶是什么主機(jī)做認(rèn)證,他可能會(huì)提示用哪個(gè)用戶名登錄,類似一個(gè)Email。
domain:一個(gè)URI列表,指示要保護(hù)的域。可能是一個(gè)列表。提示用戶這些URI采用一樣的認(rèn)證。如果為空或忽略則為整個(gè)服務(wù)器。
nonce:隨機(jī)字符串,每次401都不一樣。跟算法有關(guān)。算法類似Base64加密:time-stamp H(time-stamp ":" ETag ":" private-key) 。time-stamp為服務(wù)器時(shí)鐘,ETag為請(qǐng)求的Etag頭。private-key為服務(wù)器知道的一個(gè)值。
opaque:服務(wù)器產(chǎn)生的由客戶下去請(qǐng)求時(shí)原樣返回。最好是Base64串或十六進(jìn)制字符串。
auth-param:為擴(kuò)展用的,現(xiàn)階段忽略。
其他域請(qǐng)參考RFC2617。
授權(quán)頭語(yǔ)法:
?????? credentials????? = "Digest" digest-response
?????? digest-response? = 1#( username | realm | nonce | digest-uri
?????????????????????? | response | [ algorithm ] | [cnonce] |
?????????????????????? [opaque] | [message-qop] |
?????????????????????????? [nonce-count]? | [auth-param] )
?????? username???????? = "username" "=" username-value
?????? username-value?? = quoted-string
?????? digest-uri?????? = "uri" "=" digest-uri-value
?????? digest-uri-value = request-uri?? ; As specified by HTTP/1.1
?????? message-qop????? = "qop" "=" qop-value
?????? cnonce?????????? = "cnonce" "=" cnonce-value
?????? cnonce-value???? = nonce-value
?????? nonce-count????? = "nc" "=" nc-value
?????? nc-value???????? = 8LHEX
?????? response???????? = "response" "=" request-digest
?????? request-digest =? 32LHEX
?????? LHEX???????????? =? "0" | "1" | "2" | "3" |
?????????????????????????? "4" | "5" | "6" | "7" |
?????????????????????????? "8" | "9" | "a" | "b" |
?????????????????????????? "c" | "d" | "e" | "f"
response:加密后的密碼
digest-uri:拷貝Request-Line,用于Proxy
cnonce:如果qop設(shè)置,才設(shè)置,用于雙向認(rèn)證,防止攻擊。
nonce-count:如果服務(wù)器看到同樣的計(jì)數(shù),就是一次重放。
示例:
401響應(yīng):??????? HTTP/1.1 401 Unauthorized
???????? WWW-Authenticate: Digest
???????????????? realm="testrealm@host.com",
???????????????? qop="auth,auth-int",
???????????????? nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",
???????????????? opaque="5ccc069c403ebaf9f0171e9517f40e41"
再次請(qǐng)求:
???????? Authorization: Digest username="Mufasa",
???????????????? realm="testrealm@host.com",
???????????????? nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",
???????????????? uri="/dir/index.html",
???????????????? qop=auth,
???????????????? nc=00000001,
???????????????? cnonce="0a4f113b",
???????????????? response="6629fae49393a05397450978507c4ef1",
???????????????? opaque="5ccc069c403ebaf9f0171e9517f40e41"
4.比較基本認(rèn)證和摘要訪問(wèn)認(rèn)證都是很脆弱的;菊J(rèn)證可以讓竊聽者直接獲得用戶名和密碼,而摘要訪問(wèn)認(rèn)證竊聽者只能獲得一次請(qǐng)求的文檔。

標(biāo)簽: 安全 標(biāo)準(zhǔn) 服務(wù)器 網(wǎng)絡(luò) 網(wǎng)站 問(wèn)題 用戶

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:Linux下快速的搭建一個(gè)web服務(wù)器

下一篇:使用Application來(lái)提升虛擬主機(jī)的整體性能