涉及程序:
IE 5 / 5.5 / 6
描述:
IE SSL加密缺陷允許獲得其它域的合法CA簽發(fā)證書
詳細(xì):
Internet Explorer 在實(shí)現(xiàn) SSL 加密的過程中存在一個(gè)缺陷,允許攻擊者進(jìn)行中間人攻擊,而受害者不會(huì)得到任何提示和警告,根本無法發(fā)覺。
通常情況下是,如果一個(gè) web 站點(diǎn)的管理員想為自己數(shù)據(jù)通訊提供SSL加密,就需要管理員在服務(wù)器端生成一個(gè)證書并由CA證書授權(quán)中心簽發(fā)。并且產(chǎn)生的證書的識(shí)別名(Distinguished Name)字段中的公用名(Common Name)必須和使用服務(wù)器證書的主機(jī)的全名完全相同。
CA 在驗(yàn)證公用名(Common Name)和使用服務(wù)器證書的主機(jī)全名完全相同后,再簽發(fā)證書并將證書返回。
現(xiàn)在我們假定管理員為增強(qiáng)站點(diǎn) 的安全性,使用SSL加密的證書簽發(fā)過程如下:
[CERT - Issuer: VeriSign / Subject: VeriSign]
-> [CERT - Issuer: VeriSign / Subject: ]
當(dāng)一個(gè) web 瀏覽器接收到這個(gè)證書時(shí),必須首先驗(yàn)證公用名(Common Name)是否和使用服務(wù)器證書的主機(jī)全名完全相同,并且是否是由已知的CA證書簽名。這種情況下攻擊者不可能進(jìn)行中間人攻擊,因?yàn)榇藭r(shí)不可能使用合法的CN名和合法的簽名來替代證書。
然而,有時(shí)在一些比較復(fù)雜的情況下,為了方便進(jìn)行本地授權(quán),例如像 等站點(diǎn)的管理員會(huì)從本地授權(quán)中獲得如下的證書鏈結(jié)構(gòu):
[Issuer: VeriSign / Subject: VeriSign]
-> [Issuer: VeriSign / Subject: Intermediate CA]
-> [Issuer: Intermediate CA / Subject: ]
當(dāng) web 瀏覽器接收到此信息時(shí),它必須首先驗(yàn)證分支證書的公用名(Common Name)字段是否與它剛連接的那個(gè)域名匹配,該證書是否是由中間CA所簽發(fā),并且中間CA簽發(fā)的證書是否由已知CA證書簽發(fā)。最后,web 瀏覽器還應(yīng)該檢查所有中間證書是否有合法的CA BasicConstraints,也就是說這些分支證書是否有合法授權(quán)進(jìn)行證書簽發(fā)。
但是不幸的是,事實(shí)并不像用戶想象的那樣。在實(shí)際當(dāng)中,由于 IE 瀏覽器并沒有檢查CA Basic Constraints,
這樣的話,攻擊者只要有任何域的合法的CA簽發(fā)證書,就能生成其它任何域的合法CA簽發(fā)證書。
受影響瀏覽器:
Netscape 4.x 和 Mozilla 不受影響.
IE 5 / 5.5 / 6 受影響
攻擊方法:
Explorer
作為一個(gè)惡意的 站點(diǎn)管理員,他能產(chǎn)生一個(gè)合法的證書并且從VeriSign請(qǐng)求獲得簽名:
[CERT - Issuer: VeriSign / Subject: VeriSign]
-> [CERT - Issuer: VeriSign / Subject: ]
然后惡意管理員生成任何企圖攻擊的域的一個(gè)證書,并且使用自己的 CA 簽名證書簽名:
[CERT - Issuer: VeriSign / Subject: VeriSign]
-> [CERT - Issuer: VeriSign / Subject: ]
-> [CERT - Issuer: / Subject: ]
此時(shí)由于 IE 瀏覽器并沒有檢查 證書的 CA BasicConstraintsSince ,IE就會(huì)合法接收 域的證書鏈。
以上說明任何具有CA簽名證書(和相應(yīng)的私鑰)的用戶都能欺騙其它任何用戶。
-------------------------
為了驗(yàn)證此缺陷,MikeBenham / 提供了一個(gè)他自己寫的小工具sslsniff-0.1.tar.gz ,大家不妨試一試.
解決方案:
微軟目前尚無有效補(bǔ)丁,建議用戶隨時(shí)關(guān)注微軟站點(diǎn)
作為臨時(shí)解決方案:
* 暫時(shí)使用 Netscape 4.x 或 Mozilla 瀏覽器;
* 對(duì)于一些非常敏感的應(yīng)用,在進(jìn)行SSL連接時(shí)手工檢查證書鏈,如果發(fā)現(xiàn)有中間證書可以認(rèn)為正在遭受中間人攻擊,立即采取相應(yīng)保護(hù)措施。