如果你正在使用網(wǎng)絡(luò)瀏覽器(即你的電腦中能讓你看見來自互聯(lián)網(wǎng)的數(shù)據(jù)的程序)閱讀這些文字,你手頭擁有的加密工具很可能會比第二次世界大戰(zhàn)(簡稱二戰(zhàn))期間大多數(shù)軍人和間諜手中的加密工具還好。當(dāng)你訪問購物網(wǎng)站時,今天典型的網(wǎng)絡(luò)瀏覽器使用加密和其他密碼學(xué)技術(shù)保護(hù)你的隱私。這讓互聯(lián)網(wǎng)信用卡交易比電話交易還安全。這是因為這些技術(shù)能阻止竊密及其他形式的干預(yù)。
幾百年來,尤其是二戰(zhàn)以來,密碼學(xué)發(fā)展迅速。在密碼學(xué)的大部分歷史上,密碼只能由小群需要安全、私密通信的人共享。這一共享秘密可能是一本密碼冊,它把重要的詞匯、短語轉(zhuǎn)譯成短而無意義的詞匯。這樣不僅能隱藏一條信息的意義,而且讓信息變得更短。在電報流行的歲月里,密碼冊也流行于富人和大公司之間。因為電報委托人必須為電文中的每個字付款,所以設(shè)計得很好的電報密碼就可能降低電報費用。私人公司制作密碼冊,賣給有需求的顧客。最有效的密碼冊是定制的,只限少數(shù)商業(yè)伙伴共享,這些商業(yè)伙伴為密碼冊嚴(yán)格保密。
在電報流行的時代,商業(yè)負(fù)責(zé)人經(jīng)常很擔(dān)憂電報的安全性。與自動傳輸、不受人為干預(yù)的電話不同,每一份電報都必須由發(fā)送端的報務(wù)員鍵入,由接收端的報務(wù)員轉(zhuǎn)錄,有時候還要由電報傳輸路徑上的其他報務(wù)員轉(zhuǎn)錄。在一些國家,報務(wù)員的工資偏低,一些報務(wù)員受賄。導(dǎo)致敏感的電報信息落入電報委托人的競爭者手中。因此,秘密電報密碼就向商人們保證他們的通信是私密和安全的。
然而,秘密不一定總能保證安全。400多年前,蘇格蘭女王瑪麗就得到了這方面的教訓(xùn)。當(dāng)時,英國女王伊麗莎白一世手下的間諜破獲了瑪麗的支持者針對伊麗莎白的一個陰謀。瑪麗使用密碼冊與手下聯(lián)絡(luò),但伊麗莎白的間諜通過閱讀多份加密信息,猜測信息內(nèi)容,并以嘗試破譯其他信息來系統(tǒng)性測試自己的猜測。最終成功破譯了瑪麗的密碼冊。雖然伊麗莎白的間諜并未完整破譯瑪麗的密碼冊,但他們還是破譯了瑪麗的秘密信息當(dāng)中的不少內(nèi)容,最終由此辨認(rèn)和抓捕要犯。這些犯人在獄中揭露了瑪麗的密碼冊的未被破譯部分,瑪麗最終被判叛國罪。
瑪麗的密碼冊算不上復(fù)雜,無法抵御系統(tǒng)性攻擊,但今天的密碼卻能。現(xiàn)代密碼尤其是用于電腦的密碼,一般由兩部分組成:加密程序(即算法)和密鑰,密鑰告知算法如何干擾(即加密)信息。算法或許是公開的,但密鑰總是被保密的?;旧?,加密信息的安全性完全依賴于密鑰的安全性。你無需擔(dān)憂怎樣為信息保密,只需保證你自己能守住密鑰,保證密鑰不泄密。
例如,今天任何人都可以購買一對小型電子加密裝置,它們能加密在兩部電腦(A和B)之間通過電話線傳輸?shù)男畔?。如果這對加密裝置共享相同的密鑰,電腦A就只能明白由電腦B傳輸?shù)男畔ⅰ5谝慌_加密裝置使用這一共享密鑰來加密信息,第二臺加密裝置使用同樣的密鑰來解密信息,讓信息對接收者來說可讀。
人們通常不用擔(dān)憂電話被竊聽。盡管我們都知道竊聽是可能的,但這卻常常并非真正需要擔(dān)憂。不幸的是,竊聽在互聯(lián)網(wǎng)上很猖獗。追蹤互聯(lián)網(wǎng)安全事件的機(jī)構(gòu),經(jīng)常接到互聯(lián)網(wǎng)服務(wù)提供商發(fā)來的有關(guān)未經(jīng)允許訪問者的報告。竊聽者找到潛入一個提供商網(wǎng)絡(luò)的辦法,并且安裝“密碼嗅探器”程序。當(dāng)信息經(jīng)過嗅探器所在部分時,嗅探器會搜集用戶姓名及密碼。嗅探器的主人會利用竊取的用戶姓名及密碼登錄其他電腦,假裝成合法用戶。對這類竊密風(fēng)險有一個簡單解決辦法:對密碼進(jìn)行加密。不幸的是,許多系統(tǒng)依然在依賴未加密的密碼。
幸運的是,許多購物網(wǎng)站已經(jīng)在對通過互聯(lián)網(wǎng)傳輸?shù)男庞每ㄌ柡兔艽a進(jìn)行加密。如果它們不這么做,犯罪分子就可能使用前述嗅探器采集這些號碼,用于非法目的。大多數(shù)商業(yè)網(wǎng)站采用被稱為“安全套層(SSL)”的特殊軟件來為網(wǎng)頁加密,這些網(wǎng)頁可能包含用戶的私人信息。你能知道哪些網(wǎng)頁被加密了,因為這些網(wǎng)頁的全球資源定位器(URL)以“https:”而非“http:”開頭。一個很仔細(xì)的網(wǎng)站會加密你鍵入私人密碼的網(wǎng)頁,或者當(dāng)你通過提供你的地址和信用卡號來完成訂單時為網(wǎng)頁加密。網(wǎng)站運用這一信息來確定你是否真的是信用卡的主人,只有在這被確認(rèn)之后,網(wǎng)站才會向你給他們的卡號收費。
這就出現(xiàn)了一個有趣的問題:當(dāng)你的瀏覽器加密和解密它與一個網(wǎng)站共享的信息時,密鑰從哪兒來呢?當(dāng)你網(wǎng)上購物時,你或許會注意到“https:”前綴或瀏覽器正在確保安全的其他指針,但你一定不會注意到任何有關(guān)共享密鑰的東西。如果瀏覽器的SSL軟件只是簡單地把密鑰發(fā)送給網(wǎng)站,竊聽者就可以攔截它,并且用它破譯你的加密信息。那么,瀏覽器是怎樣解決這個問題的?
答案在于公共密鑰加密學(xué)。可以說。這是過去幾十年中最重要的密碼學(xué)發(fā)明。公共密鑰密碼學(xué)提供了一種安全而又簡單的途徑,讓SSL軟件與你的瀏覽器和你訪問的網(wǎng)站共享一個密鑰。正如常規(guī)加密的情況一樣,這個過程采用公共密鑰算法和獨立密鑰來運作。然而,公共密鑰算法采用兩個不同的密鑰——一個公共密鑰和一個私人密鑰。公共密鑰可以公開傳輸,私人密鑰卻總是被其主人(一個網(wǎng)站或一個人)保密。任何由公共密鑰加密的內(nèi)容,都只能由私人密鑰解密。這就讓我們使用一個公共密鑰去加密一條信息,而只有相應(yīng)的私人密鑰的主人才能解讀這條信息。
SSL同時運用公共密鑰加密和常規(guī)密鑰加密來實現(xiàn)速度、安全和便捷度之間的最佳平衡。例如,你正在亞馬遜網(wǎng)站購買一本書。首先,亞馬遜網(wǎng)站向你的瀏覽器發(fā)送該網(wǎng)站的公共密鑰。接著,你的瀏覽器隨機(jī)采用一個密鑰,并且使用亞馬遜網(wǎng)站的公共密鑰加密它。SSL把這一加密過的密鑰傳回亞馬遜網(wǎng)站,該網(wǎng)站對它進(jìn)行解密。當(dāng)這一交流完成后,SSL使用這一共享密鑰來加密在你的瀏覽器和亞馬遜網(wǎng)站之間傳輸?shù)木W(wǎng)頁數(shù)據(jù)。
這一策略讓SSL能最佳運用公共密鑰加密,而無需受制于任何數(shù)學(xué)限制。相比公共密鑰算法,秘密密鑰算法速度快得多,能更安全地傳輸大量信息。最好的是,正在使用瀏覽器的人無需為加密密鑰操心。不管是秘密密鑰還是公共密鑰都不需要。整個過程自動建立在安全和私密的連接中。
相比伊麗莎白間諜時期,這一過程能防御系統(tǒng)性攻擊的能力有多強?換句話說,如果有人想攔截網(wǎng)站密碼和信用卡號,這個人得花多大力氣呢?如果有鉛筆、紙和很好的耐心,二戰(zhàn)期間的譯碼員就能破解典型的密碼。雖然瀏覽器使用的SSL加密完全能對抗這樣的破譯,但是計算機(jī)通過嘗試和修正錯誤,大大加快了譯碼進(jìn)程。攻擊SSL加密的決定因素,基本上是以比特來計算的密鑰長度。大多數(shù)瀏覽器擁有40比特密鑰,能產(chǎn)生的密鑰數(shù)量上萬億??茖W(xué)家數(shù)年前證明,一個配備大量工作站的實驗室能在幾小時內(nèi)測試完如此巨量的密鑰。
然而,相對于花在竊取信用卡號和密鑰方面的計算機(jī)時間來說,加密的信用卡號本身沒有那么大的價值。幾年前,有人向喬裝改扮的美國聯(lián)邦探員售賣一批合法的信用卡號,每張售價僅2.5美元。這個價格完全抵不上破譯這些信用卡所需要付出的努力。此外,如果信用卡被盜用,美國信用卡持有人的損失只有50美元,其余損失由發(fā)卡銀行或接受信用卡的商家負(fù)責(zé)賠償。因此,對大多數(shù)人來說,40比特密鑰已經(jīng)足以保護(hù)他們的信用卡。
當(dāng)然,這樣的密鑰不足以保護(hù)所有東西。幸運的是,大多數(shù)瀏覽器能使用128比特的密鑰,其可能的密鑰數(shù)量數(shù)之不盡。在一些發(fā)達(dá)國家,這樣的瀏覽器需要付費購買。采用128比特的密鑰算法工作速度與較短密鑰算法的速度一樣快。運用今天的計算機(jī),可以說完全不可能破譯128比特密碼。
考慮到128比特密鑰與40比特密鑰一樣快,而前者要安全許多許多,那么為什么瀏覽器長時間來一直在使用40比特密鑰呢?答案是美國限制出口高強度密鑰。二戰(zhàn)以后,美國宣布所有加密裝置為戰(zhàn)爭武器,必須限制出口。40比特以上的密鑰,被認(rèn)為可用于軍事目的。