荷蘭安全公司CompuTest的安全研究員Thijs Alkemade在以色列公司StarCom創(chuàng)建的發(fā)布免費(fèi)SSL證書(shū)的工具StartEncrypt中發(fā)現(xiàn)多個(gè)設(shè)計(jì)和執(zhí)行缺陷。
StarCom受到Let’s Encrypt項(xiàng)目的啟發(fā),在6月4日推出StarEncrypt項(xiàng)目。想要部署免費(fèi)StartSSL證書(shū)的用戶只需下載一個(gè)Linux客戶端并將其上傳 到服務(wù)器即可。這個(gè)客戶端會(huì)執(zhí)行一個(gè)域名驗(yàn)證流程,通知StartSSL服務(wù),隨后為運(yùn)行在服務(wù)器上的域名發(fā)布并安裝一個(gè)“擴(kuò)展驗(yàn)證”SSL證書(shū)。
StartEncrypt含有設(shè)計(jì)和執(zhí)行缺陷
CompuTest公司指出,這個(gè)驗(yàn)證進(jìn)程中存在缺陷,而且服務(wù)器所有者只需通過(guò)一些小技術(shù)就能接收到其它域名的SSL證書(shū)如臉書(shū)、谷歌、Dropbox等等,隨后這些證書(shū)就會(huì)出現(xiàn)在黑市上或者被用于中間人攻擊中。
研究人員發(fā)現(xiàn)的第一個(gè)漏洞是設(shè)計(jì)問(wèn)題,用戶能夠手動(dòng)配置客戶端從服務(wù)器下載簽名的文件夾。攻擊者只需將工具指向托管著另外一個(gè)域名的簽名的服務(wù)器上的一個(gè)文件夾。這些域名簽名能夠從允許用戶上傳文件的站點(diǎn)如GitHub、Dropbox等中被提取出來(lái)。
第二個(gè)問(wèn)題更加嚴(yán)重,因?yàn)樗试S攻擊者獲取更多域名的SSL證書(shū)。研究人員指出,其中一個(gè)API驗(yàn)證調(diào)用中包含一個(gè)名為“verifyRes”的參 數(shù),它接受URL作為輸入。也就是說(shuō)客戶端易受開(kāi)放重定向漏洞的影響,攻擊者能夠偽造這個(gè)請(qǐng)求并且將工具指向不受控制的服務(wù)器中。但是這種功能也不是那么 容易就被利用。攻擊者需要將工具指向的域名URL必須(1)允許用戶上傳文件并以原始格式返回;或者(2)包含自身的開(kāi)放重定向問(wèn)題。
雖然第一個(gè)條件很少見(jiàn),但是第二個(gè)并非如此。所有支持OAuth 2.0即支持社交登錄功能的標(biāo)準(zhǔn)的網(wǎng)站必須允許能讓該協(xié)議正常起作用的開(kāi)放重定向。利用這個(gè)OAuth 2,0和StartEncrypt客戶端的犯罪分子能夠哄騙StartSSL服務(wù)以他的名義為任何支持OAuth 2.0的網(wǎng)站發(fā)布免費(fèi)的SSL服務(wù)如臉書(shū)、推特、雅虎、微軟等。
其它問(wèn)題
此外,CompuTest還發(fā)現(xiàn)StartEncrypt并沒(méi)有檢查自己服務(wù)器證書(shū)連接到API時(shí)的有效性,也就是說(shuō)犯罪分子能夠接收到驗(yàn)證請(qǐng)求并為試圖使用StartEncrypt的用戶發(fā)布錯(cuò)誤的SSL證書(shū)。
API也不會(huì)驗(yàn)證其為了驗(yàn)證而下載的內(nèi)容文件,這樣攻擊者就能夠以第三方網(wǎng)站的名義獲取證書(shū)。用戶能夠上傳形象化符號(hào)、證書(shū)私鑰。此外,跟 Let’s Encrypt項(xiàng)目一樣的是,StartEncrypt易受“重復(fù)簽名密鑰選擇(Duplicate-Signature Key Selection)”攻擊的影響。安全研究人員認(rèn)為StartCom并未從Let’s Encrypt項(xiàng)目中汲取經(jīng)驗(yàn)教訓(xùn)。
StartCom已經(jīng)發(fā)布了StartEncrypt Linux客戶端新版本,序列號(hào)仍為1.0.0.1。CompuTest指出已將其它問(wèn)題報(bào)告給了該公司,該公司隨后將會(huì)提供修復(fù)方案。
今年3月份,StartSSL曾面臨著一個(gè)類(lèi)似問(wèn)題,允許犯罪分子得到他們并不擁有的域名的SSL證書(shū)。