關(guān)鍵問(wèn)題
通過(guò)PGP加密保護(hù)電子郵件安全是行之有效的,然而,發(fā)布公共密鑰和存儲(chǔ)于密鑰服務(wù)器上的PGP公共密鑰的真?zhèn)螣o(wú)法分辨,而OPENPGPKEY提供了解決這些關(guān)鍵問(wèn)題的方法。
密鑰服務(wù)器的查詢(xún)結(jié)果表明,任何人都可以上傳自己的PGP密鑰,并聲稱(chēng)自己是任何人。
無(wú)需驗(yàn)證PGP密鑰
要讓鮑勃可以發(fā)送加密的郵件到愛(ài)麗絲那里,愛(ài)麗絲必須創(chuàng)建兩個(gè)密鑰:一個(gè)是自己保留用于解密的私鑰1 ,另一個(gè)是上傳到一個(gè)密鑰服務(wù)器上的公鑰2 ,鮑勃可以通過(guò)密鑰服務(wù)器取得愛(ài)麗絲的公鑰加密他給愛(ài)麗絲的郵件3 ,愛(ài)麗絲用自己的私鑰解密鮑勃發(fā)給她的郵件4 。
認(rèn)證的PGP密鑰
愛(ài)麗絲創(chuàng)建私鑰1/公鑰對(duì),她將公鑰發(fā)送給自己的郵件服務(wù)提供商,公鑰2 被加入DNS服務(wù)器提供商IP地址的條目,可以通過(guò)DNSSEC驗(yàn)證。鮑勃可以獲取經(jīng)過(guò)認(rèn)證的密鑰并加密給愛(ài)麗絲的郵件3 ,愛(ài)麗絲用自己的私鑰解密鮑勃發(fā)給她的郵件4 。
德國(guó)的Mail.de是第一家支持OPENPGPKEY的供應(yīng)商,用戶(hù)可以將自己的公鑰送到mail.de,mail.de將把公鑰上傳到DNS服務(wù)器。
通過(guò)mail.de提供的網(wǎng)站openpgpkey.info,輸入用戶(hù)的電子郵件即可獲得公共密鑰(其真實(shí)性通過(guò)OPENPGPKEY得到保障)。
愛(ài)德華·斯諾登認(rèn)為在這個(gè)被各種情報(bào)機(jī)構(gòu)嚴(yán)密監(jiān)控的互聯(lián)網(wǎng)上,我們要保護(hù)自己的隱私,一個(gè)強(qiáng)大的加密系統(tǒng)是唯一的選擇。對(duì)于網(wǎng)站或者即時(shí)通訊服務(wù),可供我們選擇的加密方案很多,但是電子郵件的加密則有些棘手。加密與電子郵件服務(wù)供應(yīng)商的連接,確保郵件以密文的方式傳輸這方面沒(méi)有什么問(wèn)題,大部分供應(yīng)商都提供安全的加密連接方式,但是電子郵件仍將以明文方式存儲(chǔ)于電子郵件服務(wù)商的服務(wù)器上,對(duì)斯諾登所使用的電子郵件供應(yīng)商拉維畢特的襲擊證明,情報(bào)機(jī)構(gòu)完全有可能通過(guò)電子郵件服務(wù)供應(yīng)商來(lái)監(jiān)視用戶(hù)的電子郵件。只有一種解決方案是真正安全的,那就是郵件從發(fā)件人傳輸?shù)绞占酥g的整個(gè)過(guò)程都必須采用加密方式。
使用PGP(Pretty Good Privacy)我們可以實(shí)現(xiàn)這一安全的加密方案。首先我們需要通過(guò)軟件(如Gpg4win)生成一個(gè)密鑰對(duì),密鑰對(duì)由私鑰和公鑰組成,只有私鑰才能解密由公鑰加密的郵件。我們只需要將公鑰發(fā)送給聯(lián)系人,聯(lián)系人即可用它加密發(fā)送給我們的電子郵件。任何人都可以使用公鑰加密發(fā)送的電子郵件,確保只有擁有相對(duì)應(yīng)私鑰的收件人才可以閱讀郵件。PGP效果很好,起碼在朋友和熟人的圈子里使用時(shí)很好,因?yàn)榇蠹冶舜吮容^熟悉,可以很方便地交換和保存彼此的公鑰。但是,如果我們希望陌生人也能夠加密發(fā)送給我們的電子郵件,那么目前可以選擇的方案是將公鑰上傳到公開(kāi)的密鑰服務(wù)器,此類(lèi)服務(wù)器通常由一些大學(xué)提供,其目的是為了讓大家可以在線存儲(chǔ)公共密鑰。不過(guò),密鑰服務(wù)器并不清楚密鑰對(duì)應(yīng)什么電子郵件地址,無(wú)法判斷相關(guān)信息的真?zhèn)?,以我們使用美?guó)麻省理工學(xué)院的密鑰服務(wù)器(pgp.mit.edu)為例,如果我們搜索默克爾,那么將可以找到許多公共密鑰,其中的一個(gè)密鑰或許正是我們需要的,但是我們無(wú)法從中區(qū)分出哪一個(gè)才是目標(biāo)聯(lián)系人的密鑰,因?yàn)槿魏稳硕伎梢陨蟼鱌GP密鑰并根據(jù)自己的喜好設(shè)定姓名等相關(guān)信息。
PGP安全有賴(lài)于互聯(lián)網(wǎng)安全擴(kuò)展
作為一個(gè)全球可用的電子郵件技術(shù)架構(gòu),要解決上述問(wèn)題人們需要對(duì)PGP進(jìn)行一定程度的擴(kuò)展,例如添加一個(gè)認(rèn)證或者監(jiān)督機(jī)構(gòu)。專(zhuān)家們對(duì)此有很多不同的意見(jiàn),弗勞恩霍夫研究所希望使用“安全的多用途互聯(lián)網(wǎng)郵件擴(kuò)展”(Secure Multipurpose Internet Mail Extensions,簡(jiǎn)稱(chēng)S/MIME)技術(shù),與普通PGP不同的是S/MIME的公共密鑰是一個(gè)通過(guò)認(rèn)證機(jī)構(gòu)認(rèn)證的證書(shū)。這確實(shí)可以很好地解決上面所提到的公共密鑰分發(fā)以及身體驗(yàn)證的問(wèn)題,但是認(rèn)證機(jī)構(gòu)認(rèn)證的證書(shū)很多時(shí)候不是免費(fèi)的,而且證書(shū)可以偽造,有可能被盜用或?yàn)E用。
相比之下,更被看好的是通過(guò)域名系統(tǒng)(Domain Name System,簡(jiǎn)稱(chēng)DNS)驗(yàn)證的3層保障(IP地址、加密和PGP密鑰)技術(shù)OPENPGPKEY。DNS就像是互聯(lián)網(wǎng)的電話(huà)簿,它是一個(gè)域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫(kù),世界上有成千上萬(wàn)的DNS服務(wù)器,負(fù)責(zé)處理諸如將域名(例如chip.de)映射到網(wǎng)站服務(wù)器IP地址的工作。為了避免DNS劫持、DNS緩存污染等黑客攻擊,目前DNS系統(tǒng)需要通過(guò)“域名系統(tǒng)安全擴(kuò)展”(Domain Name System Security Extensions,簡(jiǎn)稱(chēng)DNSSEC)以確保DNS記錄的真實(shí)性:通過(guò)每個(gè)IP地址的簽名,DNSSEC可以對(duì)DNS提供給DNS客戶(hù)端(解析器)的DNS數(shù)據(jù)來(lái)源進(jìn)行認(rèn)證,驗(yàn)證數(shù)據(jù)的真?zhèn)巍R蚨?,DNSSEC可以防止攻擊者通過(guò)DNS緩存污染等攻擊方式引誘受害人到一個(gè)虛假的IP地址。以往,通過(guò)類(lèi)似的攻擊,攻擊者可以在用戶(hù)訪問(wèn)銀行網(wǎng)站時(shí),通過(guò)虛假的DNS數(shù)據(jù)將用戶(hù)帶到偽造的站點(diǎn)上。
基于DNS的域名實(shí)體認(rèn)證
OPENPGPKEY的第二層保障是“基于DNS的域名實(shí)體認(rèn)證”(DNS-based Authentication of Named Entities,DANE)。目前,部分安全意識(shí)較高的電子郵件服務(wù)提供商已經(jīng)在使用,例如posteo.de和mailbox.org。DANE在DNSSEC的基礎(chǔ)上,增加了指定應(yīng)用(例如傳輸電子郵件)使用SSL證書(shū)加密連接的功能。而且通過(guò)DANE可以驗(yàn)證郵件的傳輸路徑,例如本文中鮑勃發(fā)送郵件給愛(ài)麗絲的圖示,愛(ài)麗絲的郵件服務(wù)提供商可以通過(guò)服務(wù)器的DNS密鑰來(lái)確定郵件確實(shí)來(lái)自鮑勃和他的郵件提供商。
具備上述條件,接下來(lái)將可以達(dá)到互聯(lián)網(wǎng)工程任務(wù)組(The Internet Engineering Task Force,簡(jiǎn)稱(chēng)IETF)建議的PGP密鑰第三層保障標(biāo)準(zhǔn)OPENPGPKEY,設(shè)想一個(gè)場(chǎng)景,用戶(hù)可以使用電子郵件服務(wù)提供商在DNSSEC保護(hù)下的DNS服務(wù)器公布自己的PGP公共密鑰,而不是上傳到不安全的密鑰服務(wù)器,每個(gè)用戶(hù)不僅可以通過(guò)電子郵件服務(wù)提供商發(fā)布自己的PGP公共密鑰,而且這些PGP公共密鑰可以通過(guò)DNSSEC驗(yàn)證真?zhèn)危瑥氐捉鉀QPGP公共密鑰公布和驗(yàn)證真?zhèn)蔚膯?wèn)題。對(duì)于具體的應(yīng)用細(xì)節(jié),IETF計(jì)劃在2015年年底前建立一個(gè)正式的標(biāo)準(zhǔn)。