Skip to content Skip to navigation

鐵鎖標誌後面的秘密:互聯網安全認證機構的神秘作用

2010年07月16日

賽斯•肖恩

由中國人權翻譯

許多互聯網用戶都知道,他們在上網做很重要的事情時,應該注意尋找瀏覽器上帶有鎖頭的圖標。有些用戶也很清楚,那鎖頭的標志應該表明自己的通訊是“安全的”--保密的,並且在某種意義上是經過驗證的。保護隱私權的倡導者們一向對增加使用網絡加密表示歡迎;谷歌公司推出的以HTTPS自動加密的Gmail、谷歌文件和可選擇的谷歌搜索就是在保護用戶隱私發展過程中的一個最好的正面例子,這一加密功能可使用戶在使用這些服務時不會暴露個人隱私。1當用戶在網站名前輸入“https: //”(或自動發送到一個安全的網站)時,可以看到他們的瀏覽器上會顯示出一顆安心鎖,這表明加密功能已啟動。那麼這顆鎖從何而來呢?它所能保證的意義何在呢?

公鑰加密法——一個驚人的突破

惠特菲爾德•迪菲和馬丁•赫爾曼在1978年發明的公鑰加密法奠定了通信保密的基石 ,它刪除了至關重要的前代碼,但需要經過繁瑣的程序得到規定的預先共享密鑰。在公共密鑰加密發明以前,人們若要保持秘密通信,首先要預先設置一個密鑰--而且每一個參與者的密鑰必須是與眾不同的。因此,如果這個秘密通信有1000人參與,那麼就需要事先設置好大約50萬個不同的密鑰。除了軍事組織以外,幾乎沒有人為了秘密通信而去那麼大動干戈。

公鑰加密法是一個驚人的突破:每個用戶可以建立一個密鑰,2其他人無須事先安排就可以用來給密鑰所有者發送秘密訊息。之所以公鑰加密法可行,是因為它巧妙地利用了陷門函數的轉化功能,即可以直接正算,但逆轉運算卻異常困難。3大概可以說,它就像一個任何人都可以把信息投進去、但只有主人能開鎖將其取出的信箱。

PGP電子郵件加密軟件的發明人菲爾•齊默爾曼曾把這一成果描述為可以安全地與從來不認識的人溝通的能力;被用於瀏覽網頁,這就意味著能夠安全地去你從未去過的網站瀏覽並互動的能力。在技術上,這是一個驚人的突破。如同其它加密的方法,它可以防止計算機網絡操作員竊聽或篡改那些通過網絡發送的郵件內容(有時本來是微不足道的),雖然網絡操作員仍然可以完全阻止郵件的發送,可以通過設置防火牆的規則或簡單地切斷電纜。

然而,有一個重要的微妙之處甚至往往被電腦專家所忽視。雖然屬於電子郵件用戶或網站的密鑰可能是公開的,那些想要與他們溝通的人還是需要一個可靠的方式來尋找這些密鑰。也就是說,安全通信要求電腦用戶或其電腦,擁有一個可靠的方式來獲得各方或網站進行通信時所需要的正確的密鑰。如果沒有這個信息,用戶對中間人的攻擊就處於天然弱勢的地位,在這種情況下,一個攻擊者假裝成另一端的用戶。4

中間人攻擊時會發生什麼

在第134頁的圖中顯示了中間人攻擊是如何完成的。(為了簡化過程,用英文表示計算機的數據交換,並省略幾個真正瀏覽連接的步驟。)真鑰,或密鑰指紋,要求比這裡所舉的例子更長,原因之一是使它們無法被人記住。谷歌的真正公鑰指紋到寫此文時是c4:70:74:fb:69:f9:e3:94:7e:8b:28:a4:00:73:de:01,在此例中只把它縮寫為c4:70。

受攻擊時:實際發生了什麼

作為一種有效的防禦方法,用戶不能憑藉從網站的外觀、內容或行為上獲得的直覺;一個成功的攻擊,用戶是與真正的網站進行間接溝通的,因此其內容和行為通常完全是真實的。由於該中間人可以把所有通信來回轉發,這個網站對於互聯網用戶來說,表面上是真正的,反之亦然。例如,在這種情況下,互聯網用戶能夠正常地閱讀她Gmail帳戶中真的電子郵件(假設這個中間人選擇不修改任何東西而暴露自己),所以不會出現什麼不同尋常的事情。從使用者的角度看,這兩種情況之間唯一的區別是加密的數字密鑰顯然是由服務器提交的。如果用戶處於免受攻擊的保護之下,那麼確保一個有意義的方法來驗證密鑰正確與否就成為關鍵(不論密鑰是否在屏幕上出現)。

公鑰的真實性

—保護用戶免受中間人攻擊的關鍵由於公佈這方面的資料不會傷害到通訊的保密,那麼分配正確的密鑰往往被視為一個小舉動。電腦安全學教授錫姆森•加芬克爾回憶說,惠特菲爾德•迪菲和馬丁•赫爾曼原來想像將這些密鑰象電話簿一樣公佈。畢竟,彙編電話簿似乎較直接。這不就是簡單的文書工作嗎?

事實上,對這個“電話簿”的控制傳達出一個令人驚訝的權力排序。如果我們假設這是一本具有唯一權威的電話簿,阻止其出版就會剝奪有興趣的用戶和網站的隱蔽溝通的能力。在目錄中刪除某一特定網站,或是故意造成的印刷錯誤,將有選擇性地剝奪該網站用戶安全溝通的能力。電話簿的出版商也必須處理用戶總是亂放或改變他們的密鑰的問題,而且更棘手的是應該如何認證那些希望被列在簿上的各方,更何況有些人可能想賄賂或弄虛作假。這個“文書”的工作擴大到包括巨大的權力和責任:基本上可以破壞或損壞每個人的私人通信的權力。

這類 “電話簿”實際上並不存在。它的作用,即所謂的公鑰基礎設施(因為它是基礎設施,通過它, 用戶或軟件程序如瀏覽器,可以了解哪些公鑰何時可以使用)通常有一兩個模式:分佈式信任網或集中認證機構。信任網模式基本上通過現有的社會網絡及關係,宣佈有口碑的密鑰。這是與PGP的電子郵件加密軟件最相關的,雖然它在原則上可以在任何地方使用公鑰加密的地方使用。這也是最為人所知的,鼓勵用戶個人做出密鑰是否是真實的明確決定,讓用戶(也許是痛苦的)瞭解到決定密鑰是否真實的複雜性。

認證機構作為公鑰鑑定者的興起

認證機構模式是指將決定權委派給少數幾個稱為認證機構的實體,其職責應該是核實身份,並負責簽發數字證書,說明他們認可某一個特定的公鑰確實屬於該實體。在上文提及的中間人情況,我們期望谷歌可以顯示c4:70所屬者的證書,而攻擊者將無法出示任何可信的證書,以表明e4:d5屬於谷歌。在理想的情況下,瀏覽器便會提醒用戶有關的問題,並希望用戶接受警告,而不是試圖禁用它!

認證機構通常以提供這項服務得到報酬,一般是收取有效期1年的證書費。證書認證可以是一個非常有利可圖的生意,部分原因是這個證書僅僅是數字數據,而且發行起來相當便宜。最成功的證書認證公司擁有數千萬美元的收入。首次進入太空的非洲人,南非太空遊客馬克•沙特爾沃思,就是通過他的證書認證公司Thawte賺到很多錢(他剩下足夠的錢,未依賴任何人,開發了Ubuntu:最流行的Linux桌面操作系統。)

一個認證機構可以是一個為此目的被其他人承認的權威和可以代表他們做出這些重要決定的任何類型的組織。參加所謂的“全球公鑰基礎設施”的認證機構之多令人訝異;全世界有數十家,其中包括私人公司、國家和地區政府,並有其它一些組織。最常用的認證機構,一般是西方國家的私人公司,因為他們進入這一領域較早,並因其服務而取得了廣泛的知名度。但是,這並不意味著這些認證機構的認證就比或被認為比其它認證機構更值得信賴。

人們可能想像,一個來自這樣一個認證機構的證書,只是眾多可提供此類信息中的一個,這些信息,例如由一個網站所發出,可以幫助用戶決定一個公鑰是否正確且真實。但自網景公司1994年推出這一基礎設施以來,瀏覽器開發者優先考慮的是保證用戶在網上購物時可以安全使用其信用卡,並向用戶隱藏複雜的密碼學。因此,只要是來自於一個瀏覽器開發者批准的認證機構, 瀏覽器開發者就選擇絕對、毫無疑問地接受數碼證書。這一審批本來是非正式的,並且主要的依據是習慣和偶然。今天的瀏覽器開發者採取了更正式的審批程序,但火狐/火狐瀏覽器已確定了40個不同的認證機構,IE瀏覽器約100個(不過很可惜的是微軟現在讓用戶很難看到可信賴認證機構的清單)。現代瀏覽器接受任何一家認證機構簽發的數字證書,視這些認證機構為完整和首要的證據,即證書中表述的公鑰事實上屬於其所提及的網站。

認證機構的問題——機構太多、權力太大、責任太小

這一模式從開始就一直面臨著相當大的質疑,特別是專家們,擔心認證機構的利益與終端用戶不相符(因為認證機構一般通過簽發證書獲得報酬,而且如果證書中的信息是錯誤的,認證機構也不會直接受到懲罰)。馬特布拉玩世不恭地說,認證機構“保護你的錢不被那些不願意偷你錢的人偷走。”與此同時,也出現了相當大的有關認證機構可能受騙、被國家說服而出具虛假證書的關注;谷歌已警告說,“來自一個強有力的實體,可以為預先設置的認證機構所準備好的標準證書籤名……,在未警告用戶的情況下,將允許截獲任何加密的通信。” 更嚴重的是,因為瀏覽器完全信任所有的認證機構,並且完全平等,所以增加一個新的認證機構的名單只能增加用戶的風險:鏈條的強度與其最薄弱環節相等。

贊成認證機構這一方法的主要論點,是它為用戶提供了方便和透明度:如果認證機構正確地做好本職工作,核實資料,然後才發出證書,不發放不正確的證書,那麼用戶就可以安全順暢地訪問新的網站,並對這些加密保護網站的溝通有信心。掛鎖圖標表示了該網頁瀏覽器保證所訪問的網站使用的是HTTPS加密,它由值得信賴的認證機構發出有效的證書。

最近,涉及全球公鑰基礎設施的一系列丑聞,重新掀起了對這種模式及認證機構的可信度的懷疑,瀏覽器開發者如何選擇其可信任的認證機構,以及是否認證機構具有太多不需負責的權力。這裡是一系列最近發生的、具有一定代表性的、不完整的、但推動審議認證機構作用的事件 :

繼續使用脆弱的、過時的算法。一個 研究小組發現,一個重要的認證機構繼續 使用一種叫做MD5的過時算法為證書籤 名;利用該算法的數學缺陷,研究人員證 明了,他們能夠有效地欺騙認證機構為虛 假的證書籤名,研究人員因而騙得所有認 證機構的權力。

驗證步驟完全被遺漏。一個主要認證 機構有一個商業合作夥伴,顯然並未明白 其職責應該是核實證書上所有的內容;結 果,它所簽發的證書是以該主要認證機構 的名義收費的,但是卻未檢查證書獲得者 是否真正擁有其申報的網站。這使瀏覽器 十分容易接受假證書。

中華人民共和國實體作為認證機構。 中國互聯網絡信息中心,是一家政府控制 的管理中國域名登記系統的實體(在其網 站上,該中心表示,其日常工作受命於工 信部; 請參閱http://www.cnnic.net.cn),按照主要瀏覽器的程序,該中心要求成為可信任的認證機構。2008年,微軟 在不為公眾所注意情況下批准了這一要 求;2010年,在國內外對於中國互聯網絡信 息中心可能會被政府誘導而簽發虛假證書 的關注下,Mozilla也同樣地批准了中國互聯 網絡信息中心的要求。(值得注意的是, 所有主要瀏覽器對其它政府和政府下屬實 體經營的許多認證機構給予信任認證--以 Internet Explorer為例,就有20多個政府機構 得到認證!瀏覽器開發者的理由是,因為 中國互聯網絡信息中心遵循了所有必需的 程序,所以應將其視為可信任的認證機 構。)

監控行業建議認證機構應遵守政府的 要求。兩名美國研究人員發表了一份研究 報告,描述了一個將其產品獨家出售給各 國政府的網絡監控設備製造商Packet Forensics 公司的市場行銷簡報。Packet Forensics 公 司聲稱,調查人員在獲得“法院授權的可 能”時,其網絡監控設備可以在檢測不到 的情況下,使用密鑰或證書,對加密通信 予以監控。這項建議引起高度關注,因為 世界各地的認證機構都可以應政府的要 求,故意簽發虛假的證書。

我們認為,這些醜聞表明,幫助用戶進行 安全通信風險很大,不像編纂電話簿那樣簡 單。這些醜聞還表明,現在是重新考慮認證機 構這一方法的時候了。目前的認證機構太多, 權力太大,責任太少。每當新加一個認證機 構,所有用戶自然相信認證機構,從而更容易 成為受害者;每個用戶連接到每一個網站時, 安全係數只及該用戶瀏覽器所信任的認證機構 的“最薄弱的環節”。即使我們假設現有的設 計是合理的,仍然沒有理由認為所有的互聯網 用戶願意信任相同的認證機構。加芬克爾教授 表示,目前的認證制度設計受到軍事模式的啟 發,當中只有一個單一的中央認證機構,並且 每個人清楚地瞭解自己的責任和明確的指揮系 統。今天的互聯網與此截然不同。

棘手的問題——如何幫助用戶實時決定公鑰真實性

我們認為,電腦安全社區正認識到對認證機構這一模式的關切有著實質意義,認識到必須抓緊時間改善這個模式--即在認證機構犯了錯誤或被威逼利誘時,用戶仍可以檢測到攻擊。為了幫助研究人員和網站主人瞭解證書的使用範圍,以及如何在事後檢測到一些攻擊,我們正在創建一個安全套接層(或SSL)觀察服務站。觀察站正在調查所有HTTPS的網站,並建立一個證書數據庫。將來,該觀察站也可以接受參與證書的終端用戶和網上遇到的互聯網服務提供商的報告。例如,網站運營者,可參考該觀察站的資料,瞭解參與用戶是否在某網站遇到發出的假證書(如果是假的,還可以查出是哪家認證機構簽發的)。

觀察站可以在事後發現一些攻擊和有問題的認證機構的行為,但它並不能直接幫助這些受攻擊的用戶。如何最好地幫助用戶實時決定一個網站密鑰的真實性,成為一個非常棘手的問題。例如,用戶可從諮詢自己的瀏覽歷史,或由廣為散發的“公證服務器”(使用卡耐基•梅隆大學開發的計劃),檢測密鑰在跨越時間和空間時是否一致;它們可以檢查已經由一個認證機構驗證的特定網站是否會突然出現不同的認證機構;或是網站試圖通過更多渠道發佈正確的密鑰,如新的域名系統安全協議的目錄服務。不幸的是,所有這些信息的來源都有局限性,例如,一個密鑰可能會合法地突然改變,或者當商業數據中心在不同國家,而且為不同國家的用戶提供服務時,可能故意使用不同的密鑰。如果這些用戶之間比較自己的經驗,他們將不能確定所產生的差異是否是服務提供商故意造成的(因此不是一個問題),或是受到中間人攻擊的結果(因而應設置一個通信安全的屏障)。

另一個想法是,每個合法的服務器應以某種方式告知用戶的瀏覽器對其它合法服務器“所應期待的是什麼”:例如,一個網站在洛杉磯、巴黎和北京的合法服務器有可能故意使用不同的密鑰,但它們之間都知道彼此的存在,並建議瀏覽器根據網站訪問的地方作出預測。這種機制尚不存在,如果建立這樣一個機制,那麼就意味著對網站經營者的要求相當高,但在原則上可以為瀏覽器提供預期意外變動的方式。

我們計劃繼續研究如何將各種來源的信息最有效地結合起來,以幫助互聯網用戶。在理想情況下,將開發出另一種簡單、比目前的公鑰基礎設施更準確的方案。不幸的是,這一結果無法得到保證。認證機構還有很多理由可能發出假證書,這就意味著對密鑰有效期的不確定性已經大大超出已知的程度。關注中間人攻擊的用戶 ,最終在某種程度上可能不得不面對這種複雜性和不確定性;微軟也承認:“用戶是否應該信任一個為了任何特定目的的根證書,可以說是一個難題。用戶應預計到,確保接受根證書不會對用戶安全造成過度風險,用戶做出的信任決定很複雜。”從本質上來說,目前瀏覽器開發者所提供的是,試圖代表他們的用戶粗略地做這些決定,其首要目的是方便,儘管不同的用戶可能面臨各種完全不同的攻擊和風險。

惡意軟件—網絡隱私和安全的巨大威脅

最後,認證機構的失誤,以及假證書的發放,並不是對隱私和上網安全的最大威脅。更大的威脅來自針對終端用戶的計算機的惡意軟件,這種惡意軟件的普遍性令人震驚。埃裡克•羅斯卡拉指出,計算機安全社區往往更願意解決那些已有解決方案的問題--例如,密碼協議設計給了我們有關安全保障的一個抽象、正式的推理。但有用的密碼協議取決於安全端點:最理想的是,用戶的計算機沒有安全漏洞、病毒、間諜軟件或擊鍵記錄器。安全套接層(或SSL)的目的是在有潛在危險的網絡計算機之間運行時,保障通信的安全;如果用戶的計算機裝有間諜軟件,或使用已經安裝擊鍵記錄器的網吧計算機,它可以完全詭秘地繞過加密的計算機。這些風險是如此明顯,以至於基因•斯帕福德把使用加密稱作,“猶如用裝甲車把信用卡資料從在紙板盒裡生活的人那裡運送到在公園長凳上生活的人那裡。”

舉例來說,最近才發現,惡意軟件是與流行的VPSKeys越南文字輸入軟件捆綁在一起的。這個軟件被認為能夠記錄在其被安裝的計算機上鍵入的一切資料。因此,即使那些越南互聯網用戶謹慎地使用複雜的加密軟件,最終也未能受到該軟件的保護。由此可見,想要獲得網上隱私和安全通訊,用戶首先要保證其計算機的可信性。我們所關注的公鑰基礎設施,只對那些使用其信任的計算機的互聯網用戶才有意義。

註釋

1. 儘管我們很關注這些機制所固有的限制,不過,我們還是敦促終端用戶在可能的情況下,繼續利用它們的優勢。在受到計劃周密的攻擊的具體情況下,使用加密為用戶提供了高度隱蔽性。我們推薦那些支持和鼓勵使用加密的網站。我們最近開發了火狐(Firfox)擴展,名為HTTPS Everywhere,它能使用戶的網絡瀏覽器在已知支持它的網站上自動使用HTTPS。本文的目的是強調那些對網絡加密安全產生的威脅,可能是許多用戶所不熟悉的,但並非指使用網絡加密是無關緊要的或是無用的。 ^

2. 在現代密碼學中,關鍵是數字值,它可以指示計算機如何改變或核實數據,以便打亂編碼、解讀編碼或檢查其完整性。密鑰有許多種,並有多種方法表現它們,但它們基本上都是以隨機方式產生的。因此,對人來說它們並不十分有意義或值得記住,但當我們要談論某種密鑰時,若記不住它們恐怕將是很不幸的事情。 ^

3. 乘法和因式分解是最普遍的例子:很容易計算66491×36384377是2419233611107,但確定哪兩個數字相乘應該得出15940563869卻是個挑戰。迪菲、赫爾曼和其他數學家從這個和其他非對稱法發現了得到實用安全好處的方法。 ^

4. 目前,就抵禦中間人攻擊的重要性仍有相當大的爭議。加密系統的設計、建造和使用都很簡單。這意味著它們可能會被更廣泛地安裝和採納,這可能會幫助通信的整體安全,因為可以防止用戶被竊聽。加密的短信,試圖達到一種折中的辦法:它可以讓用戶自己選擇是否確認密鑰。如果他們沒有執行驗證,它們會自動受到保護,以防止普通的竊聽,如果他們驗證了,他們也會受到保護,以防止中間人攻擊。但是用戶開始使用新電腦時,必須重新驗證。^

5. 有些讀者可能會問,為什麼中間人不簡單地說他的密鑰是:c4:70:74:fb:69:f9:e3:94:7e:8b:28:a4:00:73:de:01。答案是,加密的會話的協商取決於密鑰的實際數值。因此,這一算法的過程防止了攻擊者會令人信服地聲稱要使用特定的密鑰,而他們實際上並不具備。^

錯誤 | Human Rights in China 中国人权 | HRIC

錯誤

網站遇到非預期錯誤。請稍後再試。