生活中的『密碼風(fēng)云』-視野
不知你是否看過一部名為《竊聽風(fēng)云》的電影?它似乎預(yù)言了個人通信安全危機(jī)的悄悄降臨。
2009年底,德國計算機(jī)專家諾爾博士正式宣布破解了GSM制式手機(jī)的通信密碼A5/1,并公開了破解方式。如今,你甚至不需要任何一件電影中那般專業(yè)的器材,而只需要下載一個軟件,再購買一臺濾波器,就可以輕易竊聽到身邊GSM制式手機(jī)的通話。
這樣“聳人聽聞”的開場白一定讓你感到不安,不過可能更讓你感到無奈的是:GSM在通信中使用的密鑰其實早已經(jīng)被解開了,對于業(yè)界來說,這早已不是一個新聞??赡苣愕耐ㄔ捲谀悴唤?jīng)意之間早就被人竊聽。而且,受到波及的不只是手機(jī)通話,不久前爆出的MSN聊天監(jiān)聽門就曾使全世界的網(wǎng)絡(luò)用戶人心惶惶:只要安裝一個軟件,就可以監(jiān)聽到整個網(wǎng)段所有用MSN聯(lián)系的內(nèi)容;你平時瀏覽的網(wǎng)站、寫的電郵、甚至網(wǎng)上購買的商品的信息,都會以明文的方式在他人眼皮底下流過。在不安全的信息傳輸過程中,你的個人信息會被人窺視得一清二楚。
對稱密鑰與不對稱密鑰
說到密碼破解技術(shù),我們首先要明白密碼的含義。在當(dāng)代社會,數(shù)字通信技術(shù)被廣泛應(yīng)用,而有數(shù)字通信的地方,就有密碼技術(shù)。個人隱私、商業(yè)機(jī)密和國家安全都建立在高度發(fā)達(dá)的密碼技術(shù)之上。簡單地說,密碼技術(shù)是將可理解的信息變換為一般人不可識別的信息,同時又可復(fù)原原信息的技術(shù)。
一個沒有學(xué)過莫爾斯電碼的人聽到“滴答”聲只會覺得是噪音,而懂得電碼的人則能從滴答聲中獲得信息量巨大的情報。電影《風(fēng)聲》中所描述的,就是利用莫爾斯電碼來傳遞暗殺命令的場景。而孩童時期的我們?yōu)榱嗣曰蟾改负屠蠋煟⒊鋈ヌ咔蛘f成“去補(bǔ)課”的行為,也同樣可以被認(rèn)為是一種密碼設(shè)定,事實上,這就是最簡單的加密。
明文信息變換為加密信息的過程稱為“編碼”或“加密”,復(fù)原密文的過程稱為“譯碼”或“解密”。而編碼和譯碼的關(guān)鍵就在于加密的方式,如同開鎖的鑰匙,稱為“密鑰”。
密碼的初衷是為了保護(hù)我們的隱私,但隨著破解手段的成熟,它倒可能反過來成為出賣你的罪魁禍?zhǔn)住6?zhàn)時,美軍正是因為破譯了日軍的電碼密鑰,才能在太平洋戰(zhàn)場上屢屢占得先機(jī)。雖然其最主要的原因是美軍打撈到了日軍的密碼本,進(jìn)而通過密碼本破解了電碼;但更深層的原因是加密與解密使用的是同樣的密鑰—這種收發(fā)密文雙方使用同樣密鑰的模式,稱為“對稱密鑰”。其缺點很明顯:一旦任何一方泄露了密鑰,加密信息就形同虛設(shè)。
“對稱密鑰”還有一點不安全,在于通信雙方無法鑒別對方身份。比如美軍在破解日軍密碼后,便可以偽裝成日軍部隊與本部及其他部隊通信而無法被發(fā)現(xiàn)。為了克服這一缺陷,專家們提出了“不對稱密鑰”。與對稱加密技術(shù)不同,不對稱加密技術(shù)在加密解密中使用兩種密鑰,一個稱為“公鑰”,另一個稱為“私鑰”。兩把密鑰互為補(bǔ)充,一個負(fù)責(zé)加密,另一個就負(fù)責(zé)解密。用公鑰加密的信息,只有用私鑰才能解密,反之亦然。而由于“私鑰”與“公鑰”具有方向性,所以可以很容易就確認(rèn)通信雙方的身份。
數(shù)字簽名
由于技術(shù)限制,在GSM制式最初的研發(fā)中并沒有采用不對稱密鑰,而是使用了對稱密鑰進(jìn)行鑒權(quán)(確認(rèn)身份)與通信。鑒權(quán)的加密方式由于SIM卡克隆技術(shù)與“黑手機(jī)”技術(shù)的出現(xiàn)已經(jīng)形同虛設(shè),其本身并不需要破解密鑰,只需要復(fù)制信息即可;只不過,盜用身份的技術(shù)其實并不用于竊聽,而主要用于盜竊話費。另外,技術(shù)專家也有相應(yīng)的防范措施。
而對通信的加密建立在兩個前提之上:首先,通信的加密方式是建立在鑒權(quán)基礎(chǔ)之上的;其次,通信與鑒權(quán)的加密方式是不同的。每次發(fā)起通話時,GSM網(wǎng)絡(luò)都會根據(jù)手機(jī)密鑰生成一個臨時的通信密鑰,而諾爾博士破解了這個生成臨時通信密鑰的變換程序,換句話說,從此,任何人都可以手拿“萬能鑰匙”打開GSM通信的大門。
為了防止這種手拿“萬能鑰匙”到處闖空門的做法,密碼專家在不對稱密鑰的基礎(chǔ)上提出了“數(shù)字簽名”,加入了數(shù)據(jù)驗證環(huán)節(jié)。數(shù)字簽名技術(shù)除了使得保密性更高、身份驗證更完備以外,用戶數(shù)據(jù)的完整性也得到了保障。這就杜絕了黑客在數(shù)據(jù)傳輸過程中雖無法破解加密,但能夠惡意篡改密文而導(dǎo)致譯碼失敗的情況。因此,數(shù)字簽名獲得了在法律上與簽字畫押同樣的效應(yīng)。而你在生活中可能早就接觸過這個名詞:在網(wǎng)上購物,或是在手機(jī)上安裝軟件時,都會跳出“數(shù)字簽名”的窗口要求你確認(rèn)。
偽造身份
但數(shù)字簽名也不完全是安全的。數(shù)字簽名檢驗信息完整性最常用的算法是MD5函數(shù),這是20世紀(jì)90年代麻省理工學(xué)院開發(fā)出的一套校驗算法。無論數(shù)據(jù)的大小如何,MD5函數(shù)都能將其變換為一個唯一的固定長度的數(shù)值,如同一個人的指紋,具有獨特性。經(jīng)常下載軟件的人大概都知道,為了鑒別軟件是否曾被第三方更改,發(fā)布方都會提供一個MD5的校驗碼,哪怕對軟件進(jìn)行一個字節(jié)的改動,都會導(dǎo)致MD5校驗碼改變。
但在2005年的國際密碼年會上,來自中國山東大學(xué)的王小云教授提出了MD5算法的漏洞,并對其進(jìn)行了破譯。這一漏洞最直接的后果就是,兩份不同的文件可以得出同一個MD5校驗碼,而這時,數(shù)字簽名就失去了作用。在信息已經(jīng)被修改的情況下,身份是否能被確認(rèn)已經(jīng)不重要了—即便進(jìn)入了房間也毫無意義,因為你連房間都進(jìn)錯了。
更糟糕的是,由于MD5算法的廣泛使用,結(jié)合普通密鑰,它可以直接被用來作為“鑒權(quán)”的方式,而不必再用復(fù)雜的“數(shù)字簽名”中的特殊算法。當(dāng)你登錄郵箱輸入密碼時,系統(tǒng)后臺會使用MD5算法來校驗?zāi)爿斎氲拿艽a信息,但這并不是明文表示的;而當(dāng)你忘記密碼時,管理員會發(fā)給你一個隨機(jī)密碼,不過管理員自己卻看不到這個密碼,因為他只能看到MD5計算后的校驗值。GSM制式被破解的部分是密鑰,而王小云教授的算法不能看到信息的明文,但卻能偽造身份。設(shè)想一下,當(dāng)你認(rèn)為你在與最好的朋友聊天的時候,對方實際上卻是你不認(rèn)識的人,這有多可怕。
“絕對安全”并不存在
但并非所有黑客都能像王教授這樣,在算法的基礎(chǔ)層面上將整個密碼系統(tǒng)徹底動搖。更多的時候,他們的做法并不觸及密鑰,而是采用更經(jīng)濟(jì)、技術(shù)手段更低的方式來危害用戶安全,這才是絕大多數(shù)信息犯罪慣用的方式。這些黑客大多利用系統(tǒng)漏洞,采用字典破解法與窮舉破解法來獲得用戶的密碼,進(jìn)而獲得操作權(quán)限與有價值的信息來進(jìn)行犯罪。要預(yù)防這樣的手段,除了使用正版系統(tǒng)并第一時間升級外,還要注意自身的密碼保護(hù)。
歸根結(jié)底,由人所設(shè)計的密碼必然會被人所破解。在密碼學(xué)中,完全的安全稱為“無條件安全”,是指密文透露的明文信息不夠多,而導(dǎo)致無法從密文確定到唯一的明文。這就像是破譯古代文字,若是沒有一定的確定解讀方式,那么便可以有無數(shù)種解讀方法,只不過,這些解讀結(jié)果幾乎沒有意義。而密碼學(xué)家比較關(guān)心的是第二種安全—“計算安全”,這是指在一定的計算條件下,密碼在一定長的時間內(nèi)不能被破解。但隨著電腦技術(shù)的發(fā)展,計算速度已經(jīng)完全超出了人類的想象,A5/1密碼在問世之初,曾被證明使用一臺電腦得花上10萬年才能計算出密鑰,然而諾爾博士只用了80臺電腦在3個月內(nèi)就將其破譯了。
或許你會對諾爾博士或王小云教授這樣的密碼專家提出異議:為什么要去破解密鑰或算法?實際上,以GSM制式通信加密技術(shù)被破解為例,早在20世紀(jì)就有人破解了當(dāng)時GSM通信中較弱的A5/2算法,從而迫使各移動通信運營商使用了更強(qiáng)的A5/1算法;在這之后又有組織提出了未公開的破解方式,不過,這種新式的不公開破解方式讓GSMA(制定GSM標(biāo)準(zhǔn)的國際組織)及運營商無從下手,而正是諾爾博士的公開破解讓我們有了補(bǔ)救機(jī)會。王小云教授等專家提醒了我們:密碼使用中總有被忽視的環(huán)節(jié),正如同沒有絕對的盾一般,絕對的安全也是不存在的。