研究者發(fā)現(xiàn),基于脆弱的32位簽名的證書驗(yàn)證機(jī)制很容易受到不同站點(diǎn)相同簽名的碰撞影響。
卡巴斯基實(shí)驗(yàn)室近期更新了反病毒產(chǎn)品,本次更新修補(bǔ)了致使用戶易受流量劫持的漏洞。
谷歌的漏洞研究員塔維斯·奧爾曼迪最早發(fā)現(xiàn)這一漏洞,該漏洞存在于卡巴斯基殺毒軟件用來檢測加密鏈接內(nèi)的潛在威脅時所用的SSL/TLS流量檢測功能里。
和其他終端安全產(chǎn)品一樣,卡巴斯基會在電腦上安裝一個自簽名的CA根證書,并用它延伸出的“葉”證書進(jìn)行攔截訪問,從而對用戶訪問的所有https可用的站點(diǎn)授予證書。這允許殺毒軟件對本地瀏覽器和遠(yuǎn)程服務(wù)器之間的鏈接進(jìn)行加/解密操作。
奧爾曼迪發(fā)現(xiàn),每當(dāng)卡巴斯基的反病毒產(chǎn)品生成一個攔截證書時,它會基于網(wǎng)站提供的原始證書序列號生成一個32位的密鑰并緩存這一對應(yīng)關(guān)系。而這一機(jī)制使得當(dāng)用戶再次訪問同一網(wǎng)站時,殺毒軟件會使用緩存的葉證書而不是再次生成新的證書。
但問題在于,這個32位的密鑰十分脆弱,攻擊者能通過碰撞而輕易偽造出一個匹配密鑰的假證書。
奧爾曼迪描述了一個攻擊可能的情形:“比如,一個叫馬洛里的黑客想要攔截你與mail.google.com的通信,而這一通信對應(yīng)的密鑰是0xdeadbeef。那么首先,馬洛里向你發(fā)送mail.google.com的真實(shí)葉證書,卡巴斯基會驗(yàn)證該證書并生成它自己的證書和密鑰。然后,馬洛里使發(fā)送另一個站點(diǎn)(比如attacker.com)同樣使用0xdeadbeef作為密鑰的檢驗(yàn)證書,并形成碰撞。現(xiàn)在馬洛里成功將對mail.google.com的域名解析定向到了attacker.com,卡巴斯基開始使用緩存的證書,而攻擊者則完全控制了對mail.google.com的訪問。
這意味著攻擊者擁有了網(wǎng)絡(luò)通信中的中間人位置,從而把用戶對mail.google.com的訪問通過域名解析重定向到攻擊者所控制的流氓服務(wù)器。該服務(wù)器擁有并使用attacker.com這一域名的證書。
在正常情況下,瀏覽器本應(yīng)當(dāng)提示證書錯誤,因?yàn)閍ttacker.com的證書和用戶要訪問的mail.google.com不匹配。然而,由于瀏覽器實(shí)際看到的不是原始證書,而是卡巴斯基殺毒軟件為mail.google.com生成的證書,因此它將不會報錯并建立連接。
32位的密鑰過于脆弱,這導(dǎo)致即使正常的瀏覽也可能發(fā)生證書碰撞。例如,奧爾曼迪發(fā)現(xiàn)卡巴斯基為news.ycombinator.com和autodiscover.manchesterct.gov的證書生成了相同的密鑰。
卡巴斯基實(shí)驗(yàn)室的研究員指出,除了32位密鑰以外,還有一個額外的域名檢查機(jī)制。這會提高實(shí)施中間人攻擊的難度,但是攻擊仍有可能發(fā)生。
奧爾曼迪在一個周三公開質(zhì)詢會上表示:“我們提出了仍可能發(fā)生的替代性攻擊方式,卡巴斯基很快解決了問題。”他說,卡巴斯基公司在12月28日就解決了這一漏洞。
安全廠商常宣稱,為了保護(hù)用戶免受惡意網(wǎng)絡(luò)服務(wù)器在內(nèi)的各種威脅,必須實(shí)現(xiàn)SSL / TLS攔截。然而,攔截的啟用常常會反過來導(dǎo)致安全問題。因?yàn)?,要想?zhǔn)確無誤地驗(yàn)證證書很難,這必須經(jīng)過瀏覽器廠商自身多年的完善。