日前,維基解密爆料,CIA通過惡意軟件等網(wǎng)絡(luò)武器控制大量美國、歐洲等地企業(yè)的電子設(shè)備及操作系統(tǒng)產(chǎn)品,包括蘋果手機、谷歌安卓系統(tǒng)、微軟視窗系統(tǒng)和三星智能電視,把它們變成麥克風(fēng)進行竊聽,并將錄音傳輸?shù)街星榫址?wù)器上。
此外,維基解密爆料的一份文件中顯示:執(zhí)行中國任務(wù)的特工深受語言障礙的困擾。《參考消息》還以《維基解密網(wǎng)披露代碼中的漢字擋住CIA黑客》為標題做了報道。那么,中文擋住CIA黑客究竟是怎么回事呢?
“維基解密”近期公布的文件顯示,美國中情局通過各種方式攻擊了中國等很多國家的電子設(shè)備。外交部回應(yīng):敦促美方攻擊停止。
中文并不是抵擋CIA黑客的長遠之計
雖然參考消息的報道以《維基解密網(wǎng)披露代碼中的漢字擋住CIA黑客》為標題,且該標題頗有因為中文使CIA黑客束手無策,無法竊取中國秘密資料的含義。但事實上,這僅僅是CIA黑客看不懂中文導(dǎo)致的,若要實現(xiàn)信息安全,僅僅依靠源代碼中的中文或中文注釋是遠遠不夠的,而且這也非長遠之計。
由于絕大多數(shù)程序代碼都是用通用編程語言寫成,這些英文字母組成的代碼,全球程序員都認識,但認識代碼歸認識,能不能徹底解讀就是另一回事了——源代碼一般都是比較晦澀的,沒有注釋的代碼換了開發(fā)這個程序的工程師之外的人來讀其實是很難讀懂的。
因此,注釋就伴隨源代碼而生,注釋的作用是便于理解和交接給其他人,告訴別人代碼實現(xiàn)的功能,如果看不懂源代碼的注釋,或者源代碼根本就沒有注釋,那即便拿到了源代碼也猶如天書。
國內(nèi)一些企業(yè)和境外企業(yè)合資做CPU,或買授權(quán)做SOC,以及合資做所謂的Windows 10政府版操作系統(tǒng),雖然購買了境外企業(yè)的授權(quán),有可能獲得了部分源代碼,但設(shè)計文檔和注釋這些一般是無法從境外國際公司處獲取的。這也是為什么,無論是CPU,還是操作系統(tǒng),雖然在“十二五”期間,一些企業(yè)得到巨額專項資金扶持,但耗費數(shù)年時間和巨額資金,至今依舊拿境外技術(shù)穿馬甲的原因之一。
而這次維基解密曝光的情況,其實是CIA黑客通過特殊手段獲得源代碼后,發(fā)現(xiàn)源代碼沒有英文注釋所以讀不懂。
雖然不少科班出身的程序員,一般都是循規(guī)蹈矩按部就班的用英文注釋。但由于部分中國的軟件工程師英文水平不夠高,甚至一些程序員的英文其實非常有限,如果用英文注釋很可能會出不少問題,因此會在源代碼中用中文做注釋。
在英文水平有限的情況下,如果用英文而不是中文注釋的話,可能會有翻譯錯誤、字母打錯、以及英文專用名詞過于生僻等一些問題。舉例來說,比如創(chuàng)建時間,一般翻譯CreateTime,但是也有人寫成BuildDate,甚至有的時候會有字母打錯,變成BuildData的情況,這種還是算能夠看出來是打錯字母的。
更多時候,打錯字母的英文單詞會導(dǎo)致其他程序員解讀難度大幅攀升,怎么猜測都不對。如果用中文的話,不僅方便國內(nèi)同行理解,也可以少發(fā)生產(chǎn)生歧義的情況。
另外,由于英文專業(yè)名詞都是非常生僻的,非該專業(yè)領(lǐng)域的業(yè)內(nèi)人士根本不認識該專業(yè)的相關(guān)專業(yè)術(shù)語的英文單詞。以電力方面來說,程序員僅僅是碼農(nóng),不是電力工程師,這就導(dǎo)致國內(nèi)軟件工程師在接國內(nèi)項目后,根本不知道相關(guān)專業(yè)術(shù)語的英文單詞,在這種情況下,就直接用中文或者拼音了。
一位軟件工程師告訴筆者,“在XX電網(wǎng)的時候開發(fā)一套系統(tǒng),里面上千個電網(wǎng)專業(yè)術(shù)語,如果用英文,可以撞頭去死了……所以注釋一般用中文,程序變量名用拼音”。其實,國內(nèi)不少大公司也是會用中文拼音的。
而本次CIA黑客受阻于中文的真正原因,是因為中文博大精深,而國內(nèi)程序員寫了中文注釋又很隨意,沒有一定的漢語文化功底的CIA黑客很難理解中文注釋,所以出現(xiàn)了拿到了源代碼,但是因為無法理解源代碼中的中文注釋而看不懂的情況。
不過,隨著CIA招募掌握中文的黑客參與相關(guān)工作,看不懂源代碼中的中文而產(chǎn)生的問題將不復(fù)存在。
維基解密稱CIA把歐洲黑客“老巢”建在美國駐德國法蘭克福領(lǐng)事館
打鐵還需自身硬
根據(jù)斯諾登的披露,美國政府一直通過各種手段對全球很多國家實施監(jiān)控和網(wǎng)絡(luò)攻擊,除了傳統(tǒng)的攻擊服務(wù)器和PC獲得其他國家機密數(shù)據(jù)之外,隨著物聯(lián)網(wǎng)和各種智能硬件設(shè)備的興起,網(wǎng)絡(luò)安全和抵御網(wǎng)絡(luò)攻擊的難度大幅攀升。
目前,各種智能硬件設(shè)備的增長如井噴之勢,2016年約有1.7億人購買各種物聯(lián)網(wǎng)的禮品,到2020年,物聯(lián)網(wǎng)連接的智能設(shè)備有望在全球增加到500億臺。加上即將到來的5G時代,會實現(xiàn)萬物相連。不僅智能空調(diào)、智能電視、智能洗衣機等智能家電會和手機等個人智能終端設(shè)備,以及PC相連接,各種攝像頭監(jiān)控設(shè)備、智能揚聲器、汽車電子、醫(yī)療器械、工業(yè)生產(chǎn)設(shè)備等智能硬件也會通過網(wǎng)絡(luò)相連。而這些智能硬件設(shè)備都有CPU、內(nèi)存、操作系統(tǒng),雖然模樣千奇百怪,但其實都是一臺迷你電腦。
更致命的是,這些智能硬件設(shè)備中很大一部分近乎是不設(shè)防的,在軟件上由于長年得不到更新維護,軟件系統(tǒng)存在大量漏洞。而很多智能硬件設(shè)備對CPU性能要求不高,反而對功耗和成本非常敏感,因而往往采用近乎于老掉牙的芯片。誠然,這些老芯片在經(jīng)過多年使用和驗證,有著相對成熟的優(yōu)勢。但由于芯片破解難度和芯片的復(fù)雜度成正比,加上有充足的時間去破解,因而在安全性上可能存在一定瑕疵。此外,由于西方科技公司往往和所在國政府存在某些合作,因而很多國家的互聯(lián)網(wǎng)和各種智能硬件設(shè)備完全暴露在國家級黑客的攻擊之下。
舉例來說,維基解密就公布了CIA利用各種技術(shù)在電腦、手機平臺上的Windows、iOS、Android等各類操作系統(tǒng)下發(fā)起入侵攻擊,以及操作智能電視、智能監(jiān)控設(shè)備等終端設(shè)備進行竊密的文件。最驚悚的是,CIA還可以遙控智能汽車發(fā)起暗殺行動。
因此,要實現(xiàn)網(wǎng)絡(luò)安全,保護國家機密和個人隱私,必須采取技術(shù)手段,而非源代碼中加入一些中文內(nèi)容。
技術(shù)手段主要解決的是境外國家級攻擊者,正面捅刀子和背后捅刀子的問題。
所謂背后捅刀子,就是國人使用的網(wǎng)絡(luò)設(shè)備、電腦、服務(wù)器、智能穿戴設(shè)備、手機等產(chǎn)品在軟件上和硬件上被境外科技公司留下了各種后門,這樣國家級攻擊者就可以通過這些后門肆意竊取國家秘密和個人隱私。
而境外國家級黑客攻擊就是正面捅刀子,面對正面捅刀子,就必須從軟件和硬件上加強防護措施,防止非法訪問和修改。
對付背后捅刀子,最好的方式就是從軟件和硬件上實現(xiàn)國產(chǎn)自主 + 安全可信,采用國內(nèi)自主設(shè)計、代工生產(chǎn)封裝的CPU和自研的操作系統(tǒng)去取代國外的產(chǎn)品。而且這也是對付正面捅刀子的前提條件,因為如果自己不掌握核心技術(shù),依靠購買國外產(chǎn)品的話,老外賣給你什么,你用什么,就沒法從整體上考慮安全方案,就很難提升面對黑客攻擊的防御能力。
此外,固件也非常重要,固件就是硬件和操作系統(tǒng)之間的部分,基本功能是用來配置硬件引導(dǎo)系統(tǒng)。bios是計算機里最重要的固件之一,nsa、cia和hacking team都很喜歡通過bios植入木馬。服務(wù)器里還有bmc固件,用來監(jiān)控管理服務(wù)器。在防御黑客的方面,由于bios比操作系統(tǒng)先運行,在把控制權(quán)傳遞給操作系統(tǒng)的時候,bios可以去檢驗要運行的系統(tǒng)是不是符合預(yù)期,是否被篡改,因而bios可以通過傳遞信任關(guān)系到操作系統(tǒng),讓惡意代碼無法執(zhí)行。因此,固件在安全里有非常重要的位置。
總之,源代碼中存在中文這僅僅是一個小障礙,而非不可逾越的技術(shù)瓶頸。至于用中文編程是根本沒有必要的,雖然用中文編程可以解決一些中國人不懂英文的問題,然而現(xiàn)在英文是事實的世界語言,作為程序員不懂英文就沒法跟其他國家的人交流,最后很有可能會走到閉門造車的路上,反而得不償失。要真正提升抵御網(wǎng)絡(luò)攻擊的防御能力,最好的做法是采用自主研發(fā)的產(chǎn)品取代國外產(chǎn)品,并在實踐中不斷使用、磨合、檢驗,最終實現(xiàn)螺旋式提升。