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