安全軟件OpenSSL最近爆出名為“心臟流血”的重大安全漏洞,波及大量的網(wǎng)站,震驚了整個業(yè)界。而蘋果則稱旗下的iOS和OS X系統(tǒng)及服務(wù)均未受影響,那它究竟是如何躲過這一劫的呢?美國科技博客AppleInsider近日發(fā)布文章揭秘背后的故事。
2011年,蘋果告訴開發(fā)者,它將棄用包括OpenSSL在內(nèi)的OS X通用數(shù)據(jù)安全架構(gòu)(以下簡稱“CDSA”)。它稱OpenSSL已經(jīng)不合時宜。近三年后,OpenSSL被發(fā)現(xiàn)存在重大安全漏洞,大量的服務(wù)提供商及其用戶遭受影響,而蘋果則安然無事。
Heartbleed
蘋果2011年6月宣布放棄使用OpenSSL的計劃時,它并不知道Heartbleed(“心臟流血”)漏洞的存在,因?yàn)楫?dāng)時它還未出現(xiàn)。然而,該公司知道OpenSSL(libcrypto)存在其它問題。蘋果是在逾10年前開始在CDSA內(nèi)使用該安全工具包的。
蘋果在Mac OS X研發(fā)早期加入了對CDSA和OpenSSL的支持。2004年,該公司建議Mac開發(fā)者采用CDSA,稱CDSA“可通過減少與架構(gòu)相連的、妨礙信息加密的庫的數(shù)量,來提升系統(tǒng)的整體性能”。
蘋果10年前在Mac安全文件中指出,“CDSA是Open Group組織采用的開源安全架構(gòu),充當(dāng)技術(shù)標(biāo)準(zhǔn)!碧O果自行開發(fā)了CDSA的開源版本,并將它發(fā)布到蘋果的開源網(wǎng)站上。該API提供一系列的安全服務(wù),其中包括精細(xì)的訪問權(quán)限、用戶身份認(rèn)證、加密和安全數(shù)據(jù)存儲。
自建安全架構(gòu)
然而,至少到了2006年,蘋果開始著眼未來開發(fā)全新的信息加密API,旨在使用更少的代碼,加快運(yùn)行速度,以及支持多個處理器的同時使用。這些特性不僅僅是后來的Mac所必需的,對于iOS系統(tǒng)也至關(guān)重要。
該公司開發(fā)精簡的現(xiàn)代安全架構(gòu)的另一個原因是,它要符合聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS)才能夠向美國政府機(jī)關(guān)出售設(shè)備。隨著iPhone和后來的iPad銷量開始井噴,蘋果打造強(qiáng)勁的安全機(jī)構(gòu)替換過時的CDSA變得更加迫切。
第一步是開發(fā)Common Crypto——支持核心加密算法的低能級C架構(gòu),蘋果先是在2007年將它應(yīng)用于OS X 10.5 Leopard,后在2011年引至iOS 5。
棄用CDSA與OpenSSL
到2011年,蘋果做好了棄用CDSA的準(zhǔn)備。它在全球開發(fā)者大會(WWDC)上向開發(fā)者指出,該機(jī)構(gòu)基于Open Group標(biāo)準(zhǔn),除了蘋果外鮮有公司支持,其功能很多都無人使用。這使得蘋果要處理大量復(fù)雜的外部問題,且得不到任何的跨平臺益處。
“CDSA有它的標(biāo)準(zhǔn)編程接口,它很復(fù)雜,不符合蘋果標(biāo)準(zhǔn)的編程慣例!痹摴驹贛ac安全文件中向開發(fā)者指出,“iOS 從未納入CDSA,OS X和iOS均擁有自己的、遠(yuǎn)沒有那么復(fù)雜的高等級安全API!
開發(fā)自有安全軟件意味著蘋果和它的開發(fā)者將不再受到外部開發(fā)問題和OpenSSL開源項(xiàng)目相關(guān)問題的影響。盡管在業(yè)內(nèi)占據(jù)重要地位,且被廣泛使用,OpenSSL要依靠捐贈來維持運(yùn)營,而且它的團(tuán)隊就只有4個核心開發(fā)者。
“雖然OpenSSL在開源社區(qū)中是常用軟件,”蘋果在其文件中稱,“它在版本之間并不能帶來穩(wěn)定的API。因此,盡管OS X有提供OpenSSL庫,但不建議使用。OpenSSL從未引入iOS系統(tǒng)。我們強(qiáng)烈反對應(yīng)用使用OS X OpenSSL庫。”
“如果你的應(yīng)用依賴于OpenSSL,你應(yīng)當(dāng)自行編制OpenSSL,靜態(tài)地將已知OpenSSL版本連接你的應(yīng)用。在OS X和iOS上使用OpenSSL都是可行的。但除非你是想要維持對現(xiàn)有開源項(xiàng)目的源碼兼容性,否則你還是應(yīng)該使用另外的API。”
蘋果擔(dān)憂OpenSSL缺乏穩(wěn)定API的原因是,它在給該開源軟件包更新或者填補(bǔ)安全漏洞的時候會遇到麻煩,會影響到連接舊版OpenSSL的第三方應(yīng)用。而棄用OpenSSL轉(zhuǎn)用自有軟件意味著蘋果在管理自家平臺時擁有更大的控制權(quán)。
蘋果OS X軟件的各種漏洞實(shí)際上與蘋果捆綁的外部軟件有關(guān),包括開源軟件包和諸如Adobe Flash的第三方商業(yè)部件。
當(dāng)OpenSSL遇到Heartbleed
蘋果棄用OpenSSL的時機(jī)頗為幸運(yùn)。就在蘋果正式棄用OpenSSL半年后,Heartbleed漏洞不小心被引入OpenSSL,具體是通過旨在維持安全連接的Heartbeat特性進(jìn)入。存在漏洞的Heartbeat特性嵌入了2012年3月推出的OpenSSL版本,默認(rèn)開啟。
正當(dāng)蘋果在該漏洞被引入之前積極建議Mac和iOS的開發(fā)者使用其它的安全軟件,行業(yè)的其它成員則一直在采用免費(fèi)提供的最新OpenSSL版本。
兩年多以后,谷歌的一個研究人員發(fā)現(xiàn),OpenSSL Heartbeat功能存在漏洞,可能會導(dǎo)致個人信息泄露。受Heartbleed影響的客戶端軟件也存在被惡意服務(wù)器控制的風(fēng)險。
美國《國家期刊》報道稱,在4月1日將該漏洞公諸于眾之前,谷歌在內(nèi)部秘密解決該問題,沒有通知包括美國政府在內(nèi)的任何人。
《悉尼先驅(qū)晨報》指出,在接下來的一周,各家公司在是否公布Heartbleed漏洞上展開了一番爭斗,安全公司們希望借此良機(jī)擴(kuò)大自己的知名度,而那些受影響的公司則徹夜趕工解決漏洞問題,避免遭到知悉的第三方的攻擊。
蘋果自家代碼的漏洞
蘋果及它的Mac和iOS用戶并未受到Heartbleed影響。不過就在幾周前,該公司自家的代碼存在類似的安全漏洞。該漏洞也與SSL安全證書相關(guān),名為“GoToFail”。蘋果的代碼與OpenSSL一樣都是開源,但這并不能防止漏洞的出現(xiàn)。
由于先給iOS打補(bǔ)。ㄔ贕oToFail公諸于眾之前),隔了3天才給OS X發(fā)放補(bǔ)丁,蘋果遭到了大量的譴責(zé)。
相比之下,在Heartbleed事件中,各方花費(fèi)了一個星期才協(xié)調(diào)好漏洞的公布問題。包括Facebook在內(nèi)的一些公司在Heartbleed公開之前獲得了爆料,因而能夠及時修復(fù)問題,而包括思科、Dropbox、Juniper、Twitter、Ubuntu、雅虎在內(nèi)的知名公司則跟公眾一樣幾天后才知悉。
Android的WebView 16個月前也被發(fā)現(xiàn)存在類似的網(wǎng)絡(luò)安全漏洞。該漏洞要嚴(yán)重得多,能夠讓黑客遠(yuǎn)程控制用戶的設(shè)備,所涉的功能工具也讓幾乎每一個人都能夠發(fā)動攻擊。約75%的Android設(shè)備似乎未受影響。