[hmailserver]反垃圾郵件技術(shù)解析
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
Written By: Refdom
Email: refdom@xfocus.org Date: 2004-3-20 Update:2005-8-27 聲明:安全焦點(xfocus security team)是非商業(yè),全方位的網(wǎng)絡(luò)安全組織,本文檔為安全焦點發(fā)布的技術(shù)文件,供自由技術(shù)傳播,拒絕商業(yè)使用。文檔的所有權(quán)歸屬安全焦點,任何使用文檔中所介紹技術(shù)者對其后果自行負(fù)責(zé),安全焦點以及本文檔作者不對其承擔(dān)任何責(zé)任。 目錄 1 概述 3 1.1 什么是垃圾郵件? 3 1.2 安全問題 4 2 反垃圾郵件技術(shù) 4 2.1 過濾 5 2.1.1 關(guān)鍵詞過濾 5 2.1.2 黑白名單 5 2.1.3 HASH技術(shù) 6 2.1.4 基于規(guī)則的過濾 6 2.1.5 智能和概率系統(tǒng) 6 2.1.6 局限性和缺點 8 2.2 驗證查詢 9 2.2.1 反向查詢技術(shù) 10 2.2.2 DKIM技術(shù) 11 2.2.3 SenderID技術(shù) 12 2.2.4 FairUCE技術(shù) 13 2.2.5 局限性和缺點 14 2.3 挑戰(zhàn) 14 2.3.1 挑戰(zhàn)-響應(yīng) 15 2.3.2 計算性挑戰(zhàn) 16 2.4 密碼術(shù) 17 3 總結(jié) 18 4 參考 19 1、概述 電子郵件是最常用的網(wǎng)絡(luò)應(yīng)用之一,已經(jīng)成為網(wǎng)絡(luò)交流溝通的重要途徑。但是,垃圾郵件(spam)煩惱著大多數(shù)人,近來的調(diào)查顯示,93%的被調(diào)查者都對他們接收到的大量垃圾郵件非常不滿。一些簡單的垃圾郵件事件也造成了很有影響的安全問題。日益增加的垃圾郵件現(xiàn)在會造成1年94億美元的損失(來自chinabyte上一則新聞的數(shù)據(jù)),在一些文章表明,垃圾郵件可能會花費一個公司內(nèi)每個用戶600到1000美元。 垃圾郵件隨著互聯(lián)網(wǎng)的不斷發(fā)展而大量增長,不再像以前一樣,只是小小的一個騷擾,現(xiàn)在的垃圾郵件可以說是鋪天蓋地了。最初,垃圾郵件主要是一些不請自來的商業(yè)宣傳電子郵件,而現(xiàn)在更多的有關(guān)色情、政治的垃圾郵件不斷增加,甚至達(dá)到了總垃圾郵件量的40%左右,并且仍然有持續(xù)增長的趨勢。另一方面,垃圾郵件成了計算機(jī)病毒新的、快速的傳播途徑。 而且目前世界上50%的郵件都是垃圾郵件,只有少數(shù)組織承擔(dān)責(zé)任。很多反垃圾郵件的措施都被提出出來,但是只有非常少的被實施了。不幸的是,這些解決辦法也都還不能完全阻止垃圾郵件,而且還對正常的郵件來往產(chǎn)生影響。 1.1、什么是垃圾郵件? 某種程度上,對垃圾郵件的定義可以是:那些人們沒有意愿去接收到的電子郵件都是垃圾郵件。比如: *商業(yè)廣告。很多公司為了宣傳新的產(chǎn)品、新的活動等通過電子郵件的方式進(jìn)行宣傳。 *政治言論。目前會收到不少來自其他國家或者反動組織發(fā)送的這類電子郵件,這就跟垃圾的商業(yè)廣告一樣,銷售和販賣他們的所謂言論。 *蠕蟲病毒郵件。越來越多的病毒通過電子郵件來迅速傳播,這也的確是一條迅速而且有效的傳播途徑。 *惡意郵件??謬槨⑵垓_性郵件。比如phishing,這是一種假冒網(wǎng)頁的電子郵件,完全是一種詭計,來蒙騙用戶的個人信息、賬號甚至信用卡。 普通個人的電子郵箱怎么成為了垃圾郵件的目標(biāo)呢,造成這樣的結(jié)果有很多原因,比如在網(wǎng)站、論壇等地方注冊了郵件地址,病毒等在朋友的郵箱中找到了你的電子郵箱,對郵件提供商進(jìn)行的用戶枚舉,等等。通常情況下,越少暴露電子郵件地址越少接收到垃圾郵件,使用時間越短越少接收到垃圾郵件。一些無奈的用戶就選擇了放棄自己的郵箱而更換新的電子郵箱。 1.2、安全問題 垃圾郵件給互聯(lián)網(wǎng)以及廣大的使用者帶來了很大的影響,這種影響不僅僅是人們需要花費時間來處理垃圾郵件、占用系統(tǒng)資源等,同時也帶來了很多的安全問題。 垃圾郵件占用了大量網(wǎng)絡(luò)資源,這是顯而易見的。一些郵件服務(wù)器因為安全性差,被作為垃圾郵件轉(zhuǎn)發(fā)站為被警告、封IP等事件時有發(fā)生,大量消耗的網(wǎng)絡(luò)資源使得正常的業(yè)務(wù)運(yùn)作變得緩慢。隨著國際上反垃圾郵件的發(fā)展,組織間黑名單共享,使得無辜服務(wù)器被更大范圍屏蔽,這無疑會給正常用戶的使用造成嚴(yán)重問題。 垃圾郵件和黑客攻擊、病毒等結(jié)合也越來越密切,比如,SoBig蠕蟲就安裝開放的,可以用來支持郵件轉(zhuǎn)發(fā)的代理。隨著垃圾郵件的演變,用惡意代碼或者監(jiān)視軟件等來支持垃圾郵件已經(jīng)明顯地增加了。2003年12月31,巴西的一個黑客組織發(fā)送包含惡意javascript腳本的垃圾郵件給數(shù)百萬用戶,那些通過Hotmail來瀏覽這些垃圾郵件的人們在不知不覺中已經(jīng)泄露了他們的賬號。另外一個例子就是,近來IE的URL顯示問題,在主機(jī)名前添加"%01"可以隱藏真實的主機(jī)地址,在被發(fā)布之后幾個星期內(nèi)就出現(xiàn)在垃圾郵件中了。 越來越具有欺騙性的病毒郵件,讓很多企業(yè)深受其害,即便采取了很好的網(wǎng)絡(luò)保護(hù)策略,依然很難避免,越來越多的安全事件都是因為郵件產(chǎn)生的,可能是病毒、木馬或者其他惡意程序。Phishing的假冒詭計對于普通使用者來說,的確很難作出正確的判斷,但是造成的損失卻是很直接的。 2、反垃圾郵件技術(shù) 已經(jīng)存在的和在被提及的反垃圾郵件方法試圖來減少垃圾郵件問題和處理安全需求。通過正確的識別垃圾郵件,郵件病毒或者郵件攻擊程序等都會減少。這些解決方法采取多種安全途徑來努力阻止垃圾郵件。 Dr. Neal Krawetz在Anti-Spam Solutions and Security[ref 1]文中將反垃圾郵件技術(shù)作了非常好的分類。當(dāng)前的反垃圾郵件技術(shù)可以分為4大類:過濾器(Filter)、反向查詢(Reverse lookup)、挑戰(zhàn)(challenges)和密碼術(shù)(cryptography),這些解決辦法都可以減少垃圾郵件問題,但是都有它們的局限性。本文將在下面的內(nèi)容討論這些技術(shù)以及一些主要技術(shù)的實現(xiàn)。 2.1、過濾 過濾(Filter)是一種相對來說最簡單卻很直接的處理垃圾郵件技術(shù)。這種技術(shù)主要用于接收系統(tǒng)(MUA,如OUTLOOK EXPRESS或者M(jìn)TA,如sendmail)來辨別和處理垃圾郵件。從應(yīng)用情況來看,這種技術(shù)也是使用最廣泛的,比如很多郵件服務(wù)器上的反垃圾郵件插件、反垃圾郵件網(wǎng)關(guān)、客戶端上的反垃圾郵件功能等,都是采用的過濾技術(shù)。 2.1.1、關(guān)鍵詞過濾 關(guān)鍵詞過濾技術(shù)通常創(chuàng)建一些簡單或復(fù)雜的與垃圾郵件關(guān)聯(lián)的單詞表來識別和處理垃圾郵件。比如某些關(guān)鍵詞大量出現(xiàn)在垃圾郵件中,如一些病毒的郵件標(biāo)題,比如:test。這種方式比較類似反病毒軟件利用的病毒特征一樣。可以說這是一種簡單的內(nèi)容過濾方式來處理垃圾郵件,它的基礎(chǔ)是必須創(chuàng)建一個龐大的過濾關(guān)鍵詞列表。 這種技術(shù)缺陷很明顯,過濾的能力同關(guān)鍵詞有明顯聯(lián)系,關(guān)鍵詞列表也會造成錯報可能比較大,當(dāng)然系統(tǒng)采用這種技術(shù)來處理郵件的時候消耗的系統(tǒng)資源會比較多。并且,一般躲避關(guān)鍵詞的技術(shù)比如拆詞,組詞就很容易繞過過濾。 2.1.2、黑白名單 黑名單(Black List)和白名單(White List)。分別是已知的垃圾郵件發(fā)送者或可信任的發(fā)送者IP地址或者郵件地址?,F(xiàn)在有很多組織都在做*bl(block list),將那些經(jīng)常發(fā)送垃圾郵件的IP地址(甚至IP地址范圍)收集在一起,做成block list,比如spamhaus的SBL(Spamhaus Block List),一個BL,可以在很大范圍內(nèi)共享。許多ISP正在采用一些組織的BL來阻止接收垃圾郵件。白名單則與黑名單相反,對于那些信任的郵件地址或者IP就完全接受了。 目前很多郵件接收端都采用了黑白名單的方式來處理垃圾郵件,包括MUA和MTA,當(dāng)然在MTA中使用得更廣泛,這樣可以有效地減少服務(wù)器的負(fù)擔(dān)。 BL技術(shù)也有明顯的缺陷,因為不能在block list中包含所有的(即便是大量)的IP地址,而且垃圾郵件發(fā)送者很容易通過不同的IP地址來制造垃圾。 2.1.3 HASH技術(shù) HASH技術(shù)是郵件系統(tǒng)通過創(chuàng)建HASH來描述郵件內(nèi)容,比如將郵件的內(nèi)容、發(fā)件人等作為參數(shù),最后計算得出這個郵件的HASH來描述這個郵件。如果HASH相同,那么說明郵件內(nèi)容、發(fā)件人等相同。這在一些ISP上在采用,如果出現(xiàn)重復(fù)的HASH值,那么就可以懷疑是大批量發(fā)送郵件了。 2.1.4 基于規(guī)則的過濾 這種過濾根據(jù)某些特征(比如單詞、詞組、位置、大小、附件等)來形成規(guī)則,通過這些規(guī)則來描述垃圾郵件,就好比IDS中描述一條入侵事件一樣。要使得過濾器有效,就意味著管理人員要維護(hù)一個龐大的規(guī)則庫。 2.1.5 智能和概率系統(tǒng) 廣泛使用的就是貝葉斯(Bayesian)算法,可以學(xué)習(xí)單詞的頻率和模式,這樣可以同垃圾郵件和正常郵件關(guān)聯(lián)起來進(jìn)行判斷。這是一種相對于關(guān)鍵字來說,更復(fù)雜和更智能化的內(nèi)容過濾技術(shù)。我將在下面詳細(xì)描述這種在客戶端和服務(wù)器中使用最廣泛的技術(shù)。 2.1.5.1 Bayesian 貝葉斯算法 在過濾器中,現(xiàn)在表現(xiàn)最好的應(yīng)該是基于評分(score)的過濾器,因為我們很容易就可以明白對付狡猾的垃圾郵件,那些黑白名單、關(guān)鍵詞庫或者HASH等過濾器是多么的簡單。評分系統(tǒng)過濾器是一種最基本的算法過濾器,也是貝葉斯算法的基本雛形。它的原理就是檢查垃圾郵件中的詞或字符等,將每個特征元素(最簡單的元素就是單詞,復(fù)雜點的元素就是短語)都給出一個分?jǐn)?shù)(正分?jǐn)?shù)),另一方面就是檢查正常郵件的特征元素,用來降低得分的(負(fù)分?jǐn)?shù))。最后郵件整體就得到一個垃圾郵件總分,通過這個分?jǐn)?shù)來判斷是否spam。 這種評分過濾器盡量實現(xiàn)了自動識別垃圾郵件的功能,但是依然存在一些不適應(yīng)的問題: *特征元素列表通過垃圾郵件或者正常郵件獲得。因此,要提高識別垃圾郵件的效果,就要從數(shù)百郵件中來學(xué)習(xí),這降低了過濾器效率,因為對于不同人來說,正常郵件的特征元素是不一樣的。 *獲得特征元素分析的郵件數(shù)量多少是一個關(guān)鍵。如果垃圾郵件發(fā)送者也適應(yīng)了這些特征,就可能讓垃圾郵件更象正常郵件。這樣的話,過濾特征就要更改了。 *每個詞計算的分?jǐn)?shù)應(yīng)該基于一種很好的評價,但是還是有隨意性。比如,特征就可能不會適應(yīng)垃圾郵件的單詞變化,也不會適應(yīng)某個用戶的需要。 貝葉斯理論現(xiàn)在在計算機(jī)行業(yè)中應(yīng)用相當(dāng)廣泛,這是一種對事物的不確定性描述,比如google計算中就采用了貝葉斯理論。貝葉斯算法的過濾器就是計算郵件內(nèi)容中成為垃圾郵件的概率,它要首先從許多垃圾郵件和正常郵件中進(jìn)行學(xué)習(xí),因此,效果將比普通的內(nèi)容過濾器更優(yōu)秀,錯報就會更少。貝葉斯過濾器也是一種基于評分的過濾器。但不僅僅是一種簡單的計算分?jǐn)?shù),而更從根本上來識別。它采用自動建立特征表的方式,原理上,首先分析大量的垃圾郵件和大量的正常郵件,算法分析郵件中多種特征出現(xiàn)概率。 貝葉斯算法計算特征的來源通常是: ·郵件正文中的單詞 ·郵件頭(發(fā)送者、傳遞路徑等) ·其他表現(xiàn),比如HTML編碼(如顏色等) ·詞組、短語 ·meta信息,比如特殊短語出現(xiàn)位置等 比如,正常郵件中經(jīng)常出現(xiàn)單詞AAA,但是基本不在垃圾郵件中出現(xiàn),那么,AAA標(biāo)示垃圾郵件的概率就接近0,反之則然。 貝葉斯算法的步驟為: 1. 收集大量的垃圾郵件和非垃圾郵件,建立垃圾郵件集和非垃圾郵件集。 2. 提取特征來源中的獨立字符串,例如 AAA等作為TOKEN串并統(tǒng)計提取出的TOKEN串出現(xiàn)的次數(shù)即字頻。按照上述的方法分別處理垃圾郵件集和非垃圾郵件集中的所有郵件。 3. 每一個郵件集對應(yīng)一個哈希表,hashtable_good對應(yīng)非垃圾郵件集而hashtable_bad對應(yīng)垃圾郵件集。表中存儲TOKEN串到字頻的映射關(guān)系。 4. 計算每個哈希表中TOKEN串出現(xiàn)的概率P=(某TOKEN串的字頻)/(對應(yīng)哈希表的長度) 5. 綜合考慮hashtable_good和hashtable_bad,推斷出當(dāng)新來的郵件中出現(xiàn)某個TOKEN串時,該新郵件為垃圾郵件的概率。數(shù)學(xué)表達(dá)式為: A 事件 ---- 郵件為垃圾郵件; t1,t2 …….tn 代表 TOKEN 串 則 P(A│ti)表示在郵件中出現(xiàn) TOKEN 串 ti 時,該郵件為垃圾郵件的概率。設(shè) P1(ti)=ti 在 hashtable_good 中的值 P2(ti)=ti 在 hashtable_ bad 中的值 則 P(A│ti)=P2(ti)/[(P1(ti)+P2(ti)] ; 6. 建立新的哈希表hashtable_probability存儲TOKEN串ti到P(A│ti)的映射 7.根據(jù)建立的哈希表 hashtable_probability可以估計一封新到的郵件為垃圾郵件的可能性。 當(dāng)新到一封郵件時,按照步驟2,生成TOKEN串。查詢hashtable_probability得到該TOKEN 串的鍵值。假設(shè)由該郵件共得到N個TOKEN 串,t1,t2…….tn,hashtable_probability中對應(yīng)的值為 P1 ,P2 ,……PN ,P(A│t1 ,t2, t3……tn) 表示在郵件中同時出現(xiàn)多個TOKEN串t1,t2……tn時,該郵件為垃圾郵件的概率。 由復(fù)合概率公式可得: P(A│t1 ,t2, t3……tn)=(P1*P2*……PN)/[P1*P2*……PN+(1-P1)*(1-P2)*……(1-PN)] 當(dāng) P(A│t1 ,t2, t3……tn) 超過預(yù)定閾值時,就可以判斷郵件為垃圾郵件。 當(dāng)新郵件到達(dá)的時候,就通過貝葉斯過濾器分析,通過使用各個特征來計算郵件是spam的概率。通過不斷的分析,過濾器也不斷地獲得自更新。比如,通過各種特征判斷一個包含單詞AAA的郵件是spam,那么單詞AAA成為垃圾郵件特征的概率就增加了。 這樣,貝葉斯過濾器就有了自適應(yīng)能力,既能自動進(jìn)行,也可以用戶手工操作,也就更能適應(yīng)單個用戶的使用。而垃圾郵件發(fā)送者要獲得這樣的適應(yīng)能力就很難了,因此,更難逃避過濾器的過濾,但他們當(dāng)然還是能夠?qū)⑧]件偽裝成很普遍的正常郵件的樣子。除非垃圾郵件發(fā)送者能去對某個人的過濾器進(jìn)行判斷,比如,采用發(fā)送回執(zhí)的辦法來了解哪些郵件被用戶打開了等,這樣他們就可以適應(yīng)過濾器了。 雖然貝葉斯過濾器還存在有評分過濾器的缺陷,但是它更優(yōu)化了。實踐也證明,貝葉斯過濾器在客戶端和服務(wù)器中效果是非常明顯的,優(yōu)秀的貝葉斯過濾器能夠識別超過99.9%的垃圾郵件。大多數(shù)目前應(yīng)用的反垃圾郵件產(chǎn)品都采用了這樣的技術(shù)。比如Foxmail中的貝葉斯過濾。 2.1.6 局限性和缺點 現(xiàn)行的很多采用過濾器技術(shù)的反垃圾郵件產(chǎn)品通常都采用了多種過濾器技術(shù),以便使產(chǎn)品更為有效。過濾器通過他們的誤報和漏報來分等級。漏報就是指垃圾郵件繞過了過濾器的過濾。而誤報則是將正常的郵件判斷為了垃圾郵件。完美的過濾器系統(tǒng)應(yīng)該是不存在漏報和誤報的,但是這是理想情況。 一些基于過濾器原理的反垃圾郵件系統(tǒng)通常有下面的三種局限性: ·可能被繞過。垃圾郵件發(fā)送者和他們用的發(fā)送工具也不是靜態(tài)的,他們也會很快適應(yīng)過濾器。比如,針對關(guān)鍵字列表,他們可以隨機(jī)更改一些單詞的拼寫,比如("強(qiáng)悍", "弓雖悍", "強(qiáng)-悍").Hash-buster(在每個郵件中產(chǎn)生不同的HASH)就是來繞過hash過濾器的。當(dāng)前普遍使用的貝葉斯過濾器可以通過插入隨機(jī)單詞或句子來繞過。多數(shù)過濾器都最多只能在少數(shù)幾周才最有效,為了保持反垃圾郵件系統(tǒng)的實用性,過濾器規(guī)則就必須不斷更新,比如每天或者每周更新。 ·誤報問題。最頭痛的問題就是將正常郵件判斷為垃圾郵件。比如,一封包含單詞sample的正常郵件可能因此被判斷為垃圾郵件。某些正常服務(wù)器不幸包含在不負(fù)責(zé)任的組織發(fā)布的block list對某個網(wǎng)段進(jìn)行屏蔽中,而不是因為發(fā)送了垃圾郵件(xfocus的服務(wù)器就是這樣的一個例子)。但是,如果要減少誤報問題,就可能造成嚴(yán)重的漏報問題了。 ·過濾器復(fù)查。由于誤報問題的存在,通常被標(biāo)記為垃圾郵件的消息一般不會被立刻刪除,而是被放置到垃圾郵件箱里面,以便日后檢查。不幸的是,這也意味著用戶仍然必須花費時間去察看垃圾郵件,即便僅僅只針對郵件標(biāo)題。 目前更嚴(yán)重的問題是,人們依然認(rèn)為過濾器能有效阻止垃圾郵件。實際上,垃圾郵件過濾器并不能有效阻止垃圾郵件,在多數(shù)案例中,垃圾郵件依然存在,依然穿過了網(wǎng)絡(luò),并且依然被傳播。除非用戶不介意存在被誤報的郵件,不介意依然會瀏覽垃圾郵件。過濾器可以幫助我們來組織并分隔郵件為垃圾郵件和正常郵件,但是過濾器技術(shù)并不能阻止垃圾郵件,實際上只是在"處理"垃圾郵件。 盡管過濾器技術(shù)存在局限,但是,這是目前最為廣泛使用的反垃圾郵件技術(shù)。 2.2、驗證查詢 SMTP在設(shè)計的時候并沒有考慮到安全問題。在1973年,計算機(jī)安全還沒有什么意義,那個時候能夠有一個可執(zhí)行的郵件協(xié)議已經(jīng)很了不起了。比如,RFC524描述將SMTP作為獨立協(xié)議的一些情況: "雖然人們可以或者可能可以,以本文檔為基礎(chǔ)設(shè)計軟件,但請恰如其分地進(jìn)行批注。請?zhí)岢鼋ㄗh和問題。我堅信協(xié)議中依然存在問題,我希望讀者能夠閱讀RFC的時候能夠?qū)⑺鼈兌贾赋鰜怼? 盡管SMTP的命令組已經(jīng)發(fā)展了很長時間,但是人們還是以RFC524為基礎(chǔ)來執(zhí)行SMTP的,而且還都假定問題(比如安全問題)都會在以后被解決。因此直到2004年,源自RFC524中的錯誤還是依然存在,這個時候SMTP已經(jīng)變得非常廣泛而很難簡單被代替。垃圾郵件就是一個濫用SMTP協(xié)議的例子,多數(shù)垃圾郵件工具都可以偽造郵件頭,偽造發(fā)送者,或者隱藏源頭。 垃圾郵件一般都是使用的偽造的發(fā)送者地址,極少數(shù)的垃圾郵件才會用真實地址。垃圾郵件發(fā)送者偽造郵件有下面的幾個原因: *因為是違法的。在多個國家內(nèi),發(fā)送垃圾郵件都是違法行為,通過偽造發(fā)送地址,發(fā)送者就可能避免被起訴。 *因為不受歡迎。垃圾郵件發(fā)送者都明白垃圾郵件是不受歡迎的。通過偽造發(fā)送者地址,就可能減少這種反應(yīng)。 *受到ISP的限制。多數(shù)ISP都有防止垃圾郵件的服務(wù)條款,通過偽造發(fā)送者地址,他們可以減少被ISP禁止網(wǎng)絡(luò)訪問的可能性。 因此,如果我們能夠采用類似黑白名單一樣,能夠更智能地識別哪些是偽造的郵件,哪些是合法的郵件,那么就能從很大程度上解決垃圾郵件問題,驗證查詢技術(shù)正是基于這樣的出發(fā)點而產(chǎn)生的。以下還會解析一些主要的反垃圾郵件技術(shù),比如Yahoo!、微軟、IBM等所倡導(dǎo)和主持的反垃圾郵件技術(shù),把它們劃分在反向驗證查詢技術(shù)中并不是很恰當(dāng),但是,從某種角度來說,這些技術(shù)都是更復(fù)雜的驗證查詢。 2.2.1、反向查詢技術(shù) 從垃圾郵件的偽造角度來說,能夠解決郵件的偽造問題,就可以避免大量垃圾郵件的產(chǎn)生。為了限制偽造發(fā)送者地址,一些系統(tǒng)要求驗證發(fā)送者郵件地址,這些系統(tǒng)包括: 反向郵件交換(RMX)<http://www.ietf.org/internet-drafts/draft-danisch-dns-rr-smtp-03.txt> 發(fā)送者許可(SPF)<http://spf.pobox.com/> 標(biāo)明郵件協(xié)議(DMP)<http://www.pan-am.ca/dmp/> 這些技術(shù)都比較相近。DNS是全球互聯(lián)網(wǎng)服務(wù)來處理IP地址和域名之間的轉(zhuǎn)化。在1986年,DNS擴(kuò)展,并有了郵件交換紀(jì)錄(MX),當(dāng)發(fā)送郵件的時候,郵件服務(wù)器通過查詢MX紀(jì)錄來對應(yīng)接收者的域名。 類似于MX紀(jì)錄,反向查詢解決方案就是定義反向的MX紀(jì)錄("RMX"--RMX,"SPF"--SPF,"DMP"--DMP),用來判斷是否郵件的指定域名和IP地址是完全對應(yīng)的?;驹蚓褪莻卧爨]件的地址是不會真實來自RMX地址,因此可以判斷是否偽造。 2.2.2 DKIM技術(shù) DKIM(DomainKeys Identified Mail)技術(shù)基于雅虎的DomainKeys驗證技術(shù)和思科的Internet Identified Mail。 雅虎的DomainKeys利用公共密鑰密碼術(shù)驗證電子郵件發(fā)件人。發(fā)送系統(tǒng)生成一個簽名并把簽名插入電子郵件標(biāo)題,而接收系統(tǒng)利用DNS發(fā)布的一個公共密鑰驗證這個簽名。 思科的驗證技術(shù)也利用密碼術(shù),但它把簽名和電子郵件消息本身關(guān)聯(lián)。發(fā)送服務(wù)器為電子郵件消息簽名并把簽名和用于生成簽名的公共密鑰插入一個新標(biāo)題。而接收系統(tǒng)驗證這個用于為電子郵件消息簽名的公共密鑰是授權(quán)給這個發(fā)件地址使用的。 DKIM將把這兩個驗證系統(tǒng)整合起來。它將以和DomainKeys相同的方式用DNS發(fā)布的公共密鑰驗證簽名,它也將利用思科的標(biāo)題簽名技術(shù)確保一致性。 DKIM給郵件提供一種機(jī)制來同時驗證每個域郵件發(fā)送者和消息的完整性。一旦域能被驗證,就用來同郵件中的發(fā)送者地址作比較檢測偽造。如果是偽造,那么可能是spam或者是欺騙郵件,就可以被丟棄。如果不是偽造的,并且域是已知的,可為其建立起良好的聲譽(yù),并綁定到反垃圾郵件策略系統(tǒng)中,也可以在服務(wù)提供商之間共享,甚至直接提供給用戶。 對于知名公司來說,通常需要發(fā)送各種業(yè)務(wù)郵件給客戶、銀行等,這樣,郵件的確認(rèn)就顯得很重要。可以保護(hù)避免受到phishing攻擊。 現(xiàn)在,DKIM技術(shù)標(biāo)準(zhǔn)提交給IETF,可以參考draft文檔http://www.ietf.org/internet-drafts/draft-delany-domainkeys-base-00.txt DomainKeys的實現(xiàn)過程 發(fā)送服務(wù)器經(jīng)過兩步: 1、建立。域所有者需要產(chǎn)生一對公/私鑰用于標(biāo)記所有發(fā)出的郵件(允許多對密鑰),公鑰在DNS中公開,私鑰在使用DomainKey的郵件服務(wù)器上。 2、簽名。當(dāng)每個用戶發(fā)送郵件的時候,郵件系統(tǒng)自動使用存儲的私鑰來產(chǎn)生簽名。簽名作為郵件頭的一部分,然后郵件被傳遞到接收服務(wù)器上。 接收服務(wù)器通過三步來驗證簽名郵件: 1、準(zhǔn)備。接收服務(wù)器從郵件頭提取出簽名和發(fā)送域(From:)然后從DNS獲得相應(yīng)的公鑰。 2、驗證。接收服務(wù)器用從DNS獲得的公鑰來驗證用私鑰產(chǎn)生的簽名。這保證郵件真實發(fā)送并且沒有被修改過。 3、傳遞。接收服務(wù)器使用本地策略來作出最后結(jié)果,如果域被驗證了,而且其他的反垃圾郵件測試也沒有決定,那么郵件就被傳遞到用戶的收件箱中,否則,郵件可以被拋棄、隔離等。 2.2.3、SenderID技術(shù) 2004年,Gates曾信誓旦旦地預(yù)言微軟能夠在未來消滅垃圾郵件,他所期望的就是Sender ID技術(shù),但是,最近他則收回了他的預(yù)言。這也就是標(biāo)準(zhǔn)之爭,微軟希望IETF能夠采用Sender ID技術(shù)作為標(biāo)準(zhǔn),并且得到了大量支持,比如Cisco, Comcast, IBM, Cisco,Port25,Sendmail,Symantec,VeriSign等,也包括后來又倒戈的AOL的支持,但是在開源社區(qū),微軟一直沒有得到足夠的支持,IETF最終否決了微軟的提議。 SenderID技術(shù)主要包括兩個方面:發(fā)送郵件方的支持和接收郵件方的支持。其中發(fā)送郵件方的支持主要有三個部分:發(fā)信人需要修改郵件服務(wù)器的DNS,增加特定的SPF記錄以表明其發(fā)信身份,比如"v=spf1 ip4:192.0.2.0/24 -all",表示使用SPF1版本,對于192.0.2.0/24這個網(wǎng)段是有效的;在可選情況下,發(fā)信人的MTA支持在其外發(fā)郵件的發(fā)信通信協(xié)議中增加SUBMITTER等擴(kuò)展,并在其郵件中增加Resent-Sender、Resent-From、Sender等信頭。 接收郵件方的支持有:收信人的郵件服務(wù)器必須采用SenderID檢查技術(shù),對收到的郵件檢查PRA或MAILFROM,查詢發(fā)件者DNS的SPF紀(jì)錄,并以此驗證發(fā)件者身份。 因此,采用Sender ID技術(shù),其整個過程為: 第一步,發(fā)件人撰寫郵件并發(fā)送; 第二步,郵件轉(zhuǎn)移到接收郵件服務(wù)器; 第三步,接收郵件服務(wù)器通過SenderID技術(shù)對發(fā)件人所聲稱的身份進(jìn)行檢查(該檢查通過DNS的特定查詢進(jìn)行); 第四步,如果發(fā)現(xiàn)發(fā)信人所聲稱的身份和其發(fā)信地址相匹配,那么接收該郵件,否則對該郵件采取特定操作,比如直接拒收該郵件,或者作為垃圾郵件。 Sender ID技術(shù)實際上并不是根除垃圾郵件的法寶,它只是一個解決垃圾郵件發(fā)送源的技術(shù),從本質(zhì)上來說,并不能鑒定一個郵件是否是垃圾郵件。比如,垃圾郵件發(fā)送者可以通過注冊廉價的域名來發(fā)送垃圾郵件,從技術(shù)的角度來看,一切都是符合規(guī)范的;還有,垃圾郵件發(fā)送者還可以通過別人的郵件服務(wù)器的漏洞轉(zhuǎn)發(fā)其垃圾郵件,這同樣是SenderID技術(shù)所不能解決的。 2.2.4、FairUCE技術(shù) FairUCE(Fair use of Unsolicited Commercial Email)由IBM開發(fā),該技術(shù)使用網(wǎng)絡(luò)領(lǐng)域的內(nèi)置身份管理工具,通過分析電子郵件域名過濾并封鎖垃圾郵件。 FairUCE把收到的郵件同其源頭的IP地址相鏈接--在電子郵件地址、電子郵件域和發(fā)送郵件的計算機(jī)之間建立起一種聯(lián)系,以確定電子郵件的合法性。比如采用SPF或者其他方法。如果,能夠找到關(guān)系,那么檢查接受方的黑白名單,以及域名名聲,以此決定對該郵件的操作,比如接收、拒絕等。 FairUCE還有一個功能,就是通過溯源找到垃圾郵件的發(fā)送源頭,并且將那些傳遞過來的垃圾郵件再轉(zhuǎn)回給發(fā)送源頭,以此來打擊垃圾郵件發(fā)送者。這種做法利弊都有。好處就是能夠影響垃圾郵件發(fā)送源頭的性能,壞處就是可能打擊倒正常的服務(wù)器(比如被利用的)的正常工作,同時該功能又復(fù)制了大量垃圾流量。 2.2.5、局限性和缺點 這些解決方案都具有一定的可用性,但是也存在一些缺點: **非主機(jī)或空的域名 反向查詢方法要求郵件來自已知的并且信任的郵件服務(wù)器,而且對應(yīng)合理IP地址(反向MX紀(jì)錄)。但是,多數(shù)的域名實際上并不同完全靜態(tài)的IP地址對應(yīng)。通常情況下,個人和小公司也希望擁有自己的域名,但是,這并不能提供足夠的IP地址來滿足要求。DNS注冊主機(jī),比如GoDaddy,向那些沒有主機(jī)或只有空域名的人提供免費郵件轉(zhuǎn)發(fā)服務(wù)。盡管這種郵件轉(zhuǎn)發(fā)服務(wù)只能管理接收的郵件,而不能提供郵件發(fā)送服務(wù)。 反向查詢解決方案對這些沒有主機(jī)或者只有空域名的用戶造成一些問題: ·沒有反向MX記錄。這些用戶現(xiàn)在可以配置郵件客戶端就可以用自己注冊的域名能發(fā)送郵件。但是,要反向查詢發(fā)送者域名的IP地址就根本找不到。特別是對于那些移動的、撥號的和其他會頻繁改變自己IP地址的用戶。 ·不能發(fā)送郵件。要解決上面的問題,一個辦法就是通過ISP的服務(wù)器來轉(zhuǎn)發(fā)郵件,這樣就可以提供一個反向MX紀(jì)錄,但是,只要發(fā)送者的域名和ISP的域名不一樣的時候,ISP現(xiàn)在是不會允許轉(zhuǎn)發(fā)郵件的。 這兩種情況下,這些用戶都會被反向查詢系統(tǒng)攔截掉。 **合法域名 能驗證身份,并不一定就是合法的身份,比如:垃圾郵件發(fā)送者可以通過注冊廉價的域名來發(fā)送垃圾郵件,從技術(shù)的角度來看,一切都是符合規(guī)范的;還有,目前很多垃圾郵件發(fā)送者可以通過別人的郵件服務(wù)器漏洞進(jìn)入合法郵件系統(tǒng)來轉(zhuǎn)發(fā)其垃圾郵件,這些問題對于驗證查詢來說還無法解決。 2.3、挑戰(zhàn) 垃圾郵件發(fā)送者使用一些自動郵件發(fā)送軟件每天可以產(chǎn)生數(shù)百萬的郵件。挑戰(zhàn)的技術(shù)通過延緩郵件處理過程,將可以阻礙大量郵件發(fā)送者。那些只發(fā)送少量郵件的正常用戶不會受到明顯的影響。但是,挑戰(zhàn)的技術(shù)只在很少人使用的情況下獲得了成功。如果在更普及的情況下,可能人們更關(guān)心的是是否會影響到郵件傳遞而不是會阻礙垃圾郵件。 這里介紹兩種主要的挑戰(zhàn)形式:挑戰(zhàn)-響應(yīng),和 計算性挑戰(zhàn)(challenge-response and proposed computational challenges) 2.3.1 挑戰(zhàn)-響應(yīng) 挑戰(zhàn)-響應(yīng)(Challenge-Response:CR)系統(tǒng)保留著許可發(fā)送者的列表。一個新的郵件發(fā)送者發(fā)送的郵件將被臨時保留下來而不立即被傳遞。然后向這個郵件發(fā)送者返回一封包含挑戰(zhàn)的郵件(挑戰(zhàn)可以是連接URL或者是要求回復(fù))。當(dāng)完成挑戰(zhàn)后,新的發(fā)送者則被加入到許可發(fā)送者列表中。對于那些使用假郵件地址的垃圾郵件來說,它們不可能接收到挑戰(zhàn),而如果使用真實郵件地址的話,又不可能回復(fù)所有的挑戰(zhàn)。但是,CR系統(tǒng)還是有許多局限性: CR死鎖。假如Alice告訴Bill要給朋友Charlie發(fā)送郵件。Bill發(fā)送一個郵件給Charlie,Charlie的CR系統(tǒng)臨時中斷郵件并發(fā)送給Bill一個挑戰(zhàn)。但是Bill的CR系統(tǒng)又會中斷Charlie這里發(fā)送出來的挑戰(zhàn)郵件,并發(fā)送自己的挑戰(zhàn)。因此,結(jié)果就是,用戶都沒有接收到挑戰(zhàn),而且用戶也無法回復(fù)郵件。而且用戶也無法知道,在挑戰(zhàn)過程中發(fā)生了問題。因此,如果雙方都使用CR系統(tǒng)的話,他們就可能根本無法進(jìn)行溝通。 自動系統(tǒng)問題。郵件列表或者那些自動系統(tǒng),比如一些網(wǎng)站的"發(fā)送給朋友……"功能,就不可能回應(yīng)挑戰(zhàn)。 解釋挑戰(zhàn)。許多CR系統(tǒng)都執(zhí)行解釋性挑戰(zhàn)。這些復(fù)雜的CR系統(tǒng)包含了字符識別和參數(shù)匹配,但是即便如此,還是能夠進(jìn)行自動化操作。比如,Yahoo的CR系統(tǒng)在創(chuàng)建新郵件賬號的時候,對于那些有簡單智能字符分析的系統(tǒng)是存在漏洞的。Hushmail的郵件CR系統(tǒng)要求從藍(lán)背景圖片中找出指定的圖形(分析背景,找出圖形,提交坐標(biāo),這是可能的) 這些在市場宣傳神化中強(qiáng)調(diào)了兩點:1、人們必須得提供挑戰(zhàn),2、這些問題都非常復(fù)雜而不太可能自動化操作。但是實際上,多數(shù)的垃圾郵件發(fā)送者完全不理睬了這些CR系統(tǒng),因為他們主要是擔(dān)心沒有大量的接收者,而不是擔(dān)心挑戰(zhàn)太復(fù)雜。許多垃圾郵件發(fā)送者也使用有效的郵件地址。當(dāng)CR系統(tǒng)會干擾垃圾郵件的時候,那些發(fā)送者也會找出自動化搞定這些挑戰(zhàn)的辦法的。 2.3.2、計算性挑戰(zhàn) 現(xiàn)在也提出了一些計算性挑戰(zhàn)方案Computational Challenge (CC),如,通過增加發(fā)送郵件的"費用"。多數(shù)CC系統(tǒng)使用復(fù)雜的算法來有意拖延時間。對于單個用戶來說,這種拖延很難被察覺,但是對于發(fā)送大量郵件的垃圾郵件發(fā)送者來說,這就意味著要花費很多時間了。CC系統(tǒng)的實例,如Hash Cash (http://www.cypherspace.org/adam/hashcash/)。但是,即便如此,CC系統(tǒng)還是會影響快速通訊而不僅僅影響垃圾郵件。這些局限包括: ·不平等影響。計算性挑戰(zhàn)是以CPU、內(nèi)存和網(wǎng)絡(luò)為基礎(chǔ)的,比如,在1Ghz計算機(jī)上挑戰(zhàn)可能花費10秒,但是在500Mhz上就需要花費20秒了。 ·郵件列表。許多郵件列表都有數(shù)千,甚至數(shù)百萬的接受者。比如BugTraq,就可能會被看作垃圾郵件了。CC系統(tǒng)來處理郵件列表是不現(xiàn)實的。如果垃圾郵件發(fā)送有辦法通過合法的郵件列表來繞過挑戰(zhàn),那么他們也就有辦法繞過其他的挑戰(zhàn)了。 ·機(jī)器人程序。Sobig或者其他象垃圾郵件一樣的病毒,能讓垃圾郵件發(fā)送者控制大量的機(jī)器。這就讓他們能夠用大量的系統(tǒng)來均衡"費用"了。 ·合法的機(jī)器人程序。垃圾郵件發(fā)送者發(fā)送垃圾郵件是因為會給他們帶來收入。如果這些人聯(lián)合起來,就可能提供大量的系統(tǒng)來分擔(dān)"費用",這完全是合法的,而且不需要通過病毒了。 當(dāng)前,計算性挑戰(zhàn)還沒有廣泛應(yīng)用,因為這種技術(shù)還不能解決spam問題,反而可能干擾正常用戶。 2.4、密碼術(shù) 現(xiàn)在提出了一些采用密碼技術(shù)來驗證郵件發(fā)送者的方案。從本質(zhì)上來說,這些系統(tǒng)采用證書方式來提供證明。沒有適當(dāng)?shù)淖C書,偽造的郵件就很容易被識別出來,下面就是一些研究中的密碼解決辦法: AMTP. http://www.ietf.org/internet-drafts/draft-weinman-amtp-02.txt MTP. http://www.ietf.org/internet-drafts/draft-danisch-email-mtp-00.txt S/MIME and PGP/MIME. http://www.imc.org/smime-pgpmime.html 目前的郵件協(xié)議(SMTP)不能直接支持加密驗證。研究中的解決方案擴(kuò)展了SMTP(比如S/MIME,PGP/MIME和AMTP),還有一些其他的則打算代替現(xiàn)在的郵件體系,比如MTP。有趣的是,MTP的作者說到:"SMTP已經(jīng)有20多年歷史了,然而近代的一些需求則在過去5到10年內(nèi)發(fā)展起來。許多擴(kuò)展都是針對SMTP的語句和語義,純粹的SMTP不能滿足這些需求,如果不改變SMTP的語句,是很難有所突破的。"但是,很多的擴(kuò)展的SMTP實例恰恰表明了SMTP的可變性,而不是不變性,完全創(chuàng)造一個新的郵件傳輸協(xié)議并不是必須的。 在采用證書的時候,比如X.509或TLS,某些證書管理機(jī)構(gòu)必須得可用,但是,如果證書存儲在DNS,那么私鑰必須得在驗證的時候可用。(換句話說,如果垃圾郵件發(fā)送者可以訪問這些私鑰,那么他們就可以產(chǎn)生有效的公鑰)。另一方面,也要用到主要的證書管理機(jī)構(gòu)(CA),但是,郵件是一種分布式系統(tǒng),沒有人希望所有的郵件都由單獨的CA來控制。一些解決辦法因此允許多個CA系統(tǒng),比如,X.509就會確定可用的CA服務(wù)器。這種擴(kuò)展性也導(dǎo)致垃圾郵件發(fā)送者也可以運(yùn)行著私有的CA服務(wù)器。 如果沒有證書管理機(jī)構(gòu),就需要其他的途徑在發(fā)送者和接收者之間來分發(fā)密鑰。比如,PGP,就可以預(yù)先共享公鑰。在未連接網(wǎng)絡(luò)或者比較封閉的群組中,這種辦法是可行的,但是在大量個體使用的時候,就不是太適合,特別是對于需要建立新的聯(lián)系的情況下。從本質(zhì)上來說,預(yù)先共享密鑰有些類似白名單的過濾器:只有彼此知道的人才能發(fā)送郵件。 不幸的是,這些加密解決方案還不能阻止垃圾郵件,比如,假設(shè)其中的一種加密方案廣泛被接受了。這些辦法都不能確認(rèn)郵件地址是真實的,而只是可以確認(rèn)發(fā)送者有郵件的正確密鑰。缺點就是: ·濫用自動化工具。如果在廣大范圍內(nèi)被應(yīng)用,就需要有一種辦法為所有用戶產(chǎn)生證書或者密鑰(包括郵件服務(wù)器端,郵件客戶端,依賴與相應(yīng)的解決辦法)系統(tǒng)很可能通過一種自動化的方法來提供密鑰??墒牵梢韵嘈爬]件發(fā)送者也會濫用任何自動化系統(tǒng),并且用來發(fā)送經(jīng)認(rèn)證的垃圾郵件。 ·可用性問題。這也有一些可用性的爭論。比如,如果CA服務(wù)器不可用怎么辦?郵件被掛起?退票?還是依然可用?垃圾郵件發(fā)送者近來對一半以上的提供黑名單網(wǎng)站進(jìn)行了拒絕服務(wù)攻擊,并導(dǎo)致這些網(wǎng)站都無法訪問。顯然,這些垃圾郵件發(fā)送者想阻止別人更新黑名單。對于單一的CA服務(wù)器,很顯然也無法避免這樣的命運(yùn)。 3、總結(jié) 上面介紹了一些反垃圾郵件的技術(shù),其實,現(xiàn)在很多反垃圾郵件方案所采用的都不會只是一種技術(shù),而是多種多類技術(shù)的綜合體。 垃圾郵件的危害現(xiàn)在已經(jīng)深入人心,反垃圾郵件也取得越來越多的成績,比如,Scott Richter向微軟賠款700萬。不少國家也在為反垃圾郵件進(jìn)行立法,以便能夠得到法律上的支持。 但從技術(shù)上來說,這跟反攻擊一樣,是一個正反雙方的博弈過程,一種新的反垃圾郵件技術(shù)必然會出現(xiàn)一種對應(yīng)得垃圾郵件技術(shù),況且,任何一種技術(shù),還沒有辦法去解決所有問題,技術(shù)的發(fā)展也將延續(xù)下去。 4、參考 1、 Dr. Neal Krawetz, Anti-Spam Solutions and Security 2、 Better Bayesian Filtering,http://www.paulgraham.com/better.html 3、 Anti-Phishing Working Group,http://www.antiphishing.org/ 4、 http://antispam.yahoo.com/domainkeys 5、 http://www.microsoft.com/senderid 6、 http://www.alphaworks.ibm.com/tech/fairuce 7、 http://sendmail.net/dk-milter/ 該文章在 2013/9/27 23:51:19 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |