域密鑰識別郵件技術綜述 - 中國互聯(lián)網(wǎng)絡信息中心
第25卷第1期2008年1月計算機應用研究App licati on Research of Computers Vol . 25, No . 1Jan .2008域密鑰識別郵件技術綜述王昕溥1, 2
第25卷第1期2008年1月
計算機應用研究
App licati on Research of Computers Vol . 25, No . 1Jan .
2008
域密鑰識別郵件技術綜述
王昕溥
1, 2
, 姚健康, 李曉東, 王 峰, 毛 偉
1111
(1. 中國科學院計算機網(wǎng)絡信息中心, 北京100080; 2. 中國科學院研究生院, 北京100049)
摘 要:介紹了DKI M 的基本概念和框架結構, 分析了DKI M 的工作原理, 并且重點討論了DKI M 面臨的威脅以及發(fā)展前景。
關鍵詞:域密鑰識別郵件; 垃圾郵件; 域名; 認證
中圖分類號:TP393108 文獻標志碼:A 文章編號:100123695(2008) 0120033204
Survey of domain keys identified mail
WANG Xin 2pu
Sciences, B eijing 100049, China )
1, 2
, Y AO J ian 2kang , L I Xiao 2dong , WANG Feng , MAO W ei
1111
(1. Co m puter N et w ork Infor m ation Center , Chinese A cade m y of Sciences, B eijing 100080, China; 2. Graduate School, Chinese A cade m y of
Abstract:This paper intr oduced the concep ti on and fra me work of DKI M , expatiating the working fl ow with exa mp les and dis 2
cussed threats and the p r os pect of DKI M . Key words:DKI M (domain keys identified mail ) ; s pa m mail; DNS; authenticati on
隨著互聯(lián)網(wǎng)的發(fā)展, 電子郵件早已成為人們彼此互通信息最主要的工具之一。然而目前垃圾郵件約占據(jù)全部郵件總數(shù)的88之多。其所引發(fā)的網(wǎng)絡頻寬負荷, 以及病毒、網(wǎng)絡釣魚攻擊等事件的嚴重性是非常巨大的隱藏真實發(fā)信來源地址的技術, 址, 送內藏有網(wǎng)絡釣魚() (backdoor ) 的垃圾郵件, , 甚至淪為垃圾郵件發(fā)送僵尸以及遠端遙控的跳板。在這種情況下, 電子郵件驗證技術就顯得尤為重要。本文所介紹的DKI M 技術就是其中的一種。
M 允許一個機構對郵件, 可以, 。通常, 簽名會(ADMD ) 的授權下, 由這個環(huán)境中的任何一個功能組件來執(zhí)行, 包括郵件客戶端(MUA ) 、郵件提交代理(MS A ) 、網(wǎng)界郵件傳輸代理
(MT A ) 。DKI M 也允許簽名由授權第三方來進行。郵件簽名
后, 在郵件傳輸途徑中的任何代理均可被選擇用來執(zhí)行對簽名的驗證。通常驗證會由郵件接收者的行政管理域代理完成。與簽名時相同, 可以由這個環(huán)境中的任何功能組件來完成。特別地, 這樣意味著簽名可以由郵件接收者的行政管理域的過濾軟件來處理, 而不是要求郵件接收者的用戶終端來進行判斷。用來進行數(shù)字簽名的域名所有者是以其信譽為基礎的。接收者成功驗證簽名后可以利用簽名者的身份信息作為限制垃圾郵件、欺騙、釣魚網(wǎng)站或其他不受歡迎行為的軟件的一部分。
背景與基本概念
一直以來, 許多知名廠商均在建立電子郵件驗證技術。其中最著名的包括Yahoo 的DomainKeys 技術、微軟的SenderI D 技術與思科系統(tǒng)的identified internet mail 技術。其中, Domain 2
Keys 技術受到S BC 、英國電信與Google G mail 的支持; 而MS N Hot m ail 、AOL 、美國銀行及e Bay 皆響應SenderI D 技術。微軟曾
一度打算說服I ETF 工作小組通過SenderI D 技術成為業(yè)界標準, 最后卻因為各家擔心全球通用的技術為一家完全壟斷而使微軟的愿望落空。如今, 由Yahoo 與思科系統(tǒng)合作發(fā)表的
DKI M 技術, 既結合兩家各自的技術, 也不會有壟斷于一家的
特點
基于對DKI M 概念的介紹, 可以發(fā)現(xiàn)DKI M 利用以下幾點定義了一個郵件認證機制:公共密鑰加密、基于DNS 的公共密鑰發(fā)布服務、域名標志符。
DKI M 所采用的途徑與傳統(tǒng)的郵件簽名方法(如S/M I M E
[2]
爭議。DKI M 技術是現(xiàn)階段在I ETF 內部討論的方案, 并且有望在今后成為國際標準。
域密鑰識別郵件定義了一種機制, 通過對郵件信息加密并簽名, 從而允許實施簽名的域名對將該郵件引入郵件傳輸流負責[1]。郵件接收者可以通過直接查詢簽名者的域名得到相應的公共密鑰, 進而校驗郵件的簽名, 以此驗證郵件是否屬于擁
收稿日期:2007202207; 修回日期:2007204215
、OpenPGP
[3]
) 相比, 有以下一些主要特點:
a ) DKI M 不修改郵件正文, 而是將郵件簽名參數(shù)信息放在
一般不顯示給接收者的郵件頭部。S/MI M E 和OpenPGP 同時要求對郵件正文進行修改, 將正文部分作為M I M E 類型進行封裝。因此簽名郵件對于軟件不支持DKI M 的終端用戶是透明
作者簡介:王昕溥(19842) , 男, 遼寧大連人, 碩士, 主要研究方向為計算機網(wǎng)絡應用技術、計算機網(wǎng)絡(wangxinpu@cnnic . cn ) ; 姚健康(19782) , 男, 碩士, 主要研究方向為計算機網(wǎng)絡應用技術; 李曉東(19762) , 男, 博士研究生, 主要研究方向為計算機網(wǎng)絡資源尋址技術; 王峰(19772) , 男, 博士研究生, 主要研究方向為計算機網(wǎng)絡應用技術; 毛偉(19682) , 男, 主任, 研究員, 碩導, 博士, 主要研究方向為計算機網(wǎng)絡系統(tǒng)、互聯(lián)網(wǎng)尋址技術.
,?34?計算機應用研究第25
卷
的, 而不像S/MI M E 和OpenPGP 由于修改了正文會造成郵件內容在不支持協(xié)議的客戶端上無法識別。
b ) 沒有對分發(fā)公有/私有密鑰對的可信證書權威的依賴。
范化的方法; d 表示簽名實體的域名; s 表示選擇器用來細分域名; h 表示在郵件頭中選定的用于產(chǎn)生簽名的部分; l 表示選去郵件正文的截斷長度; b 表示郵件頭部數(shù)字簽名的內容; bh 表示郵件數(shù)字簽名的內容; q 表示得到公共密鑰的查詢方式。1簽名者動作
1) 判斷郵件是否應該加密 簽名者只應該對含有私有公
簽名程序要求一定級別確保驗證時采用的公共密鑰是與聲稱的簽名者相關聯(lián)。許多程序通過一個可信第三方的證書授予來實現(xiàn)這一點。但是由于DKI M 的使用范圍有限, 并不需要通用的、強大的、長期的由獨立權威頒發(fā)的證書。DKI M 通過使驗證者簡單地向簽名者的DNS 發(fā)出查詢來獲取公共密鑰, 實現(xiàn)了一個足夠的安全級別。這樣就使得它使用的成本更低。
c ) 沒有對任何新的有關公共密鑰分發(fā)撤回的互聯(lián)網(wǎng)協(xié)議或服務部署的依賴。現(xiàn)在已經(jīng)定義的是一種單一綁定的利用
DNS TXT 記錄來分發(fā)密鑰, 其他的方式可能會在以后被定義。
d ) DKI M 是基于域名的, 而不是整個郵件地址。簽名是由
有密鑰對以及選擇器信息的域名所負責的郵件加密。除了缺少上述條件外, 也有一些其他的原因使得簽名者選擇不對郵件簽名。
2) 選擇一個私有密鑰和相應選擇器 選擇器用來在同一個管理域名下實現(xiàn)多重密鑰。這可以給為域名擁有者工作的部門、數(shù)據(jù)區(qū)域或第三方提供各自的簽名管理。驗證者利用選擇器作為一個附加的域名部分, 用來劃分DNS 查詢的域名。在同一個域名下, 不同的選擇器代表不同的DKI M DNS 記錄。
DKI M 并不規(guī)定簽名者應該根據(jù)什么來選擇哪個密鑰和選擇
域名的管理者控制而不是單獨的郵件用戶。
e ) 簽名的校驗失敗不會導致郵件被拒絕。DKI M 沒有規(guī)定收件人必需的操作, 可以將對郵件的判斷提交給郵件過濾的其他組件。
f ) 機制中不包括加密算法。DKI M 支持多種數(shù)字簽名算法。目前主要采用的是RS A 2S HA [4, 5]??梢噪S著算法的進步而采用新的加密算法。
g ) 存檔并不是設計目標。DKI M 是為了滿足郵件傳輸認證的短期需求。
器信息。就目前來講, DKI M 規(guī)范對待所有的選擇器都是一樣的。所以采用選擇器時考慮的重點可能是管理上的方便。在加密者對郵件頭的選定部分利用私有密鑰加密之后, 一個選擇器被指定為DKI M 簽名的一個屬性記錄在DKI M 簽名的頭部域, 用來向驗證者提供找到DKI M 的公共密鑰的信息。
3) 規(guī)范化 , 8bit 字符的郵件, 7bit 的形式。這種轉, 簽名M I M E 傳輸編[實際上這種轉換并不是DKI M 的范疇, 而是應該在郵件傳送給DKI M 算法之前由MUA 或MS A 進行處理。
如果傳送給簽名者的郵件包含任何在傳輸過程中會被修改的本地編碼, 那么在簽名前必須進行規(guī)范化修改[7]。特別是單獨的CR 或LF (有些系統(tǒng)中用于本地換行符) 必須在簽名之前轉換為S M TP 標準的CRLF 序列。對于修改有兩種不同的態(tài)度。對大多數(shù)簽名者, 適度地修改郵件對于郵件認證有效性的狀態(tài)不會有實質性的影響, 因此簽名者傾向于采用能夠經(jīng)受傳輸中適當修改的規(guī)范化算法。其他一些簽名者要求對郵件的任何修改均會導致簽名的認證失敗。這樣的簽名者要采用的簽名算法不能容忍簽名郵件在傳輸過程中的任何修改。一些簽名者可能會接收在郵件標準下[7]對郵件頭部域的修改但是不愿意接收對郵件正文的任何修改。
為了滿足各種需求, 郵件頭部和郵件正文定義了兩種規(guī)范化算法。一種簡單算法不允許傳輸過程中對郵件作任何修改; 另一種不嚴格算法允許普通的修改, 如空格的替換和郵件頭部的重新封裝。簽名者可以對郵件頭部或正文指定任意一種規(guī)范化算法, 如果沒有指定, 郵件頭部和正文的簡單算法為默認。
簽名者可以選擇簽名郵件正文的長度。實際上進行簽名的郵件正文長度應插入到DKI M 簽名頭部的l 屬性中。因此在規(guī)范化中, 簽名者根據(jù)c 屬性中指定的算法和l 屬性中指定的截斷長度來進行規(guī)范化。規(guī)范化只是用來對郵件內容進行調整以方便簽名或驗證, 而并不對郵件的傳輸產(chǎn)生任何影響。
4) 決定郵件頭部要加密的部分 郵件頭部的fr om 域是必
架構
圖1給出了DKI M 以允許創(chuàng)建DKI M 驗證者。將結果提供給郵件部署系統(tǒng)需要的部分, 如過濾引擎。因為僅僅是經(jīng)過驗證的簽名并不能夠表示郵件是可以接收的, 仍然需要轉送給其他評估階段。在評估階段簽名的有效性以及簽名域名的信譽均可能成為評估的條件, 但是DKI M 并不對評估行為進行定義
。
郵件的簽名儲存在DKI M 2Signature 頭部域。這個部分包括所有的簽名以及提供給驗證者獲取密鑰的相關屬性。
在DKI M 簽名部分包括的主要屬性信息有a 表示產(chǎn)生簽名所采用的算法; i 表示用戶或者代理的標志符; c 表示正文規(guī)
須被簽名的; 同時可以選擇任何其他在簽名時存在的頭部域。簽名者不應該對有可能在傳輸過程中被合法修改和去除的域進行簽名, 尤其是在郵件協(xié)議中被明確允許修改或去除的re 2
turn 2path 郵件頭部域
[8]
。
,第1期王昕溥, 等:域密鑰識別郵件技術綜述
? 35?
DKI M 簽名頭部域隱含規(guī)定為必須被簽名的, 并且不能被
添加在h 屬性中。除非為了表明其他已經(jīng)存在的DKI M 簽名也再次被簽名。簽名者可以聲稱對不存在的郵件頭部域進行
了簽名(在h 屬性中包含的郵件頭部域在郵件中并不存在) 。當計算簽名時, 不存在的郵件頭部域必須被當做空字符串來處理。
5) 簽名 簽名郵件簽名的第一步是通過hash 算法計算郵
件的兩個hash 值。一個是對郵件正文; 另一個是對郵件頭部選擇的部分。簽名者必須按照這個順序計算hash 值, 而驗證者可以按照任意方便的順序。首先, 簽名者對規(guī)范化后的郵件正文進行hash, 其結果被轉換為base64形式插入到DKI M 簽名頭部的bh 屬性; 然后, 簽名者根據(jù)h 屬性所指定的要進行簽名的郵件頭部域以及順序, 對已經(jīng)規(guī)范化的郵件頭部進行hash, 以base64形式插入到b 屬性。簽名者第二步通過選定的RS A 算法(實際上是PKCS#1[9]) 采用簽名者的私有密鑰對得到的
hash 值進行加密簽名。
6) 插入DKI M 簽名頭部 簽名者必須在傳輸郵件之前插
Fr om:Si m p le W ∫si m p le@f ootball . examp le . com
To:Julyseven X ∫julyseven@shopp ing . exa mp le . net Subject:Je t ′ai m e
Date:Wed, 18Oct 200621:00:0020700(P DT ) Message 2I D :∫20061018040037@football. exa mp le . com DKI M 2Signature:
a =rsa 2sha256; s =dalian; d =exa mp le . com; c =si m p le; q =dns/txt; i =si m p le@football. exa mp le . com;
h =Received:Fr om:To:Subject:Date:Message2I D ; bh =ZS VEYuq4ri3LR9S qjlzCP LxvJrI fr O I 2g5hxp5 MI =; b =dzdVy Of AKCdLXdJOc9G2q8LoXSlEniSbav yuU4zGeeruD00lszZ VoG4ZHRN iYz R;
Received:fr om dsl 210. 2. 3. 4. f ootball . exa mp le . com [10. 2. 3. 4] by server . exa mp le . com with S UBM I SSI O N; W ed, 18Oct 200621:00:4520700(P DT )
在這個例子中, 驗證程序利用從“d =”標記中提取的域名“exa mp le . com ”, 以及從“s =”標記中提取的選擇器“dalian ”形成了一個DKI M 查詢:dalian . _domainkey. examp le . com 。
簽名的驗證結果儲存在“Authenticati on 2Results ”頭部中。經(jīng)過驗證成功, 郵件被轉換成:
X 2Authenticati on 2Results:shopp ing . examp le . net header . fr om =si m p le@football. exa mp le . com; dki m =pass Received:fr om mout23. football . exa mp le . com (192. 168. 1. 1) by shopp ing . exa mp le . net with S MTP; DKI M 2Signature:
a =rsa 2sha256; s =dalian; d com; c =si m p le; q =dns/txt; i =si m p . mp h =Fr To:2I D ; LxvJrI fr O I 2g5hxp5 MI =; lszZ VoG4ZHRN iYz R;
Received:fr om dsl 210. 2. 3. 4. f ootball . exa mp le . com [10. 2. 3. 4]by server . exa mp le . com with S UBM I SSI O N; Fr om:Si m p le W ∫si m p le@football. exa mp le . com To:Julyseven X ∫julyseven@shopp ing . exa mp le . net Subject:Je t ′ai m e
Date:Wed, 18Oct 200621:00:0020700(P DT ) Message 2I D :∫20061018040037. 46341. 5F8J@football. exa mp le . com
入DKI M 簽名頭部域。關鍵字DKI M 2Signature 必須在所有
DKI M 簽名屬性插入前寫入郵件頭部。
1 驗證者動作
1) 確認簽名頭部域 驗證者必須確認DKI M 簽名頭部域
的格式和值的有效性。如果存在任何不一致和未知數(shù)值以及缺少必需的屬性, 頭部域均會整體被忽略并且驗證者返回
PER MF A I L (簽名語法錯誤) 。但是在DKI M 未知的額外屬性是允許的。
2) 獲得公有密鑰 。M q 屬性定義的查詢類型。TXT RR 記錄。
密鑰查詢算法的參數(shù)是查詢類型(q 屬性) 、簽名者的域名
(d 屬性) 和選擇器(s 屬性) :public _key=dki m _find_key(q _
[1]
val, d_val,s_val) 。
3) 計算驗證 給定一個簽名者和公共密鑰。驗證首先根
5 D KI M 面臨的威脅和發(fā)展前景
就像其他任何試圖阻止垃圾郵件傳播的機制一樣, DKI M 也會受到各種攻擊。一方面有針對DKI M 協(xié)議本身的攻擊, 比
如錯誤的郵件長度限制(l 屬性) 、錯誤的私有密鑰、DKI M 簽名頭部域格式錯誤等無意或有意的屬性賦值錯誤, 均可能造成的認證失敗; 另一方面, DKI M 機制所依賴的DNS 服務本身也具有很多不安全的因素[12]。各種針對DNS 的攻擊均有可能使得DKI M 簽名失效甚至被偽造。對于這些可能的攻擊, DKI M 工作組發(fā)表了針對各種攻擊行為的分析[10]。如何完善DKI M 協(xié)議以應對對于協(xié)議本身的攻擊也是DKI M 今后改進的重要內容。對于通過DNS 服務所進行的攻擊, 已經(jīng)超出了DKI M
[13]本身所考慮的范疇。因此DKI M 一方面寄希望于DNSSEC
據(jù)c 屬性定義的規(guī)范化算法、l 屬性定義的郵件正文簽名長度和h 屬性定義的郵件頭部簽名部分, 對郵件進行規(guī)范化處理。根據(jù)a 屬性定義的算法以及得到的公共密鑰, 計算規(guī)范化后的郵件加密hash 值; 然后驗證郵件正文的加密hash 值是否與bh 屬性所傳遞的hash 值相同。類似地, 利用a 屬性定義的算法和公共密鑰值, 根據(jù)郵件頭部的hash 值驗證b 屬性傳遞的簽名。
4) 傳遞驗證結果 驗證者希望通過任何合適的方法將驗證結果傳遞給郵件系統(tǒng)的其他部分。比如在向郵件添加一個郵件頭部。所有這種頭部應該插入到任何存在的DKI M 簽名或已經(jīng)存在的驗證狀態(tài)頭部域之前。
舉例
用一個例子來簡單介紹DKI M 的流程。原始郵件頭如下:
Fr om:Si m p le W ∫si m p le@football . exa mp le . com T o:Julyseven X ∫julyseven@shopp ing . examp le . net Subject:Je t ′ai m e
Date:Wed, 18Oct 200621:00:0020700(P DT ) Message 2I D :∫20061018040037@f ootball . exa mp le . com
的出現(xiàn)和使用解決現(xiàn)有的一部分問題; 另一方面DKI M 的設計初衷認為各種通過DNS 的針對DKI M 的攻擊行為相對于攻擊建立在DNS 基礎上的其他應用成本高且回報很少。想要系統(tǒng)性地威脅DKI M 的設計目標, 攻擊者必須在DNS 服務的多個部分進行長時間高成本的攻擊。這種行為的非經(jīng)濟性會在某種程度上阻止對DKI M 的攻擊。
DKI M 只是為了實現(xiàn)一定程度上足夠的認證, 而并不是為
加密傳輸后, 在郵件頭部添加了DKI M 簽名域, 驗證者得到的郵件頭如下:
了提供一種強大的加密認證機制[10]。這種在安全性上的不完全可靠, 對于網(wǎng)絡釣魚等涉及隱私程度高可能造成巨大損失的
,?36?計算機應用研究第25卷
欺騙行為, DKI M 所得出的結論是具有風險和不可信賴的。因此DKI M 的主要應用前景是在即使被攻擊或認證失敗也不會有很大損失的反垃圾郵件等低危險性領域。在反垃圾郵件方面, DKI M 能夠有效地限制垃圾郵件發(fā)送者盜用其他機構或域名的名義, 為郵件過濾提供鑒別手段, 并且能夠在現(xiàn)有郵件體系下快速進行低成本的部署。I ETF DKI M 工作組正在致力于完善DKI M 協(xié)議, 積極推動DKI M 草案成為正式的RFC 標準, 并且已經(jīng)取得了階段性的成果。在開發(fā)部署上面, 已經(jīng)有
Send mail 、Postfix 、Apache 等多家公司和組織參與開發(fā)了可用的
[4]Nati onal I nstitute of Standards and Technol ogy . N I ST F I PS P UB 186:
digital signature standard [S ].[S . l . ]:Depart m ent of Commerce, 1994. [5]
R I V EST R L, SHAM I R A, ADLE MAN L M. A method of obtaining digital signatures and public 2key cryp t osystem s [J ].Comm un i ca 2ti o n s o f the ACM , 1978, 21(2) :1202126. [6]
FREED N, BORENSTE I N N. RFC 2045, Multi pur pose I nternet mail extensi ons (M I M E ) part one:for mat of I nternet message bodies[S ].[S . l . ]:I ETF, 1996.
[7]RES N I CK P . RFC 2822, I nternet message f or mat[S].[S . l . ]:I ETF,
2001.
[8]K LENSI N J. RFC 2821, Si m p le mail transfer p r ot ocol[S ].[S . l . ]:
I ETF, 2001. [9]
JONSS ON J, K AL I SKI B. RFC 3447, Public 2key cryp t ography stan 2dards (PKCS ) #1:RS A cryp t ography s pecificati ons versi on 2. 1[S].[S . l . ]:I ETF, 2003.
[10]FENT ON J. RFC 4686, Analysis of threats motivating domain keys
identified mail (DKI M ) [S].[S . l . ]:I ETF, 2006.
[11]HANSEN T, CROCKER D, HALLAM 2BAKER P . DomainKeys identi 2
fied mail (DKI M ) service overvie w [S].[S . l . ]:I ETF, 2006. [12]ATKI N S D, AUSTE I N R. RFC 3833, Threat analysis of the domain
name system (DNS ) [S].[S . l . I 2004.
[13]ARE R, M, et al . RFC 4033, DNS secu 2
rity on [S . l . ]:I ETF, 2005.
]for a DKI M signing p ractices p r ot ocol
l . ]:I ETF, 2006.
]ALLMAN E, DELANY M, FENT ON J. DKI M sender signing p ractices
[S].[S . l . ]:I ETF, 2006.
Los A la m it os:I EEE Computer Society Press, 1997:2042210.
[11]LUOT ONEN A. The common l og file for mat [EB /OL].(19952092
27) . htt p://www. w3. org/pub/www/.[12]FastStats l og analyzer [E B /OL].
mach5. com /fast/.
[13]Z A I A NE O, X I N M , HAN J. D iscovering W eb access patterns and