盧海燕
本溪廣播電視大學(xué) ( 本溪 117000 )
長(zhǎng)期以來(lái),人們不斷探索著垃圾郵件的解決之道,從早期的關(guān)鍵字匹配,到通過(guò)連接頻率來(lái)提高發(fā)送垃圾郵件的成本,再到設(shè)立專(zhuān)用服務(wù)器,提供RBL實(shí)時(shí)黑名單查詢(xún),直到全世界范圍內(nèi)關(guān)于垃圾郵件立法的呼吁。無(wú)論哪種方式方法,要想從根本上解除垃圾郵件的泛濫,還是需要一套能夠有效防范垃圾郵件的安全技術(shù)。
當(dāng)前郵件傳輸?shù)闹饕獏f(xié)議是 SMTP協(xié)議,從設(shè)計(jì)之初,為了滿(mǎn)足簡(jiǎn)單傳輸?shù)男枰?,該協(xié)議沒(méi)有任何認(rèn)證手段,因此缺省的 SMTP郵件服務(wù)器對(duì)于郵件的來(lái)源和目的地不做控制而是支持發(fā)送。
通常的郵件傳輸過(guò)程是郵件的發(fā)送者使用SMTP協(xié)議將郵件發(fā)送給SMTP服務(wù)器,由它根據(jù)郵件的目的地址,使用 SMTP協(xié)議將郵件發(fā)送至目標(biāo) SMTP服務(wù)器,該服務(wù)器受到郵件后放入接收人的郵箱,最后由郵件的接收者使用POP3或IMAP協(xié)議從郵箱服務(wù)器上接收自己的郵件。在郵件傳輸?shù)倪^(guò)程中,發(fā)送者與發(fā)送服務(wù)器、發(fā)送服務(wù)器和接收服務(wù)器之間都未做認(rèn)證,因此發(fā)送方可以使用互聯(lián)網(wǎng)上任意一臺(tái) SMTP服務(wù)器來(lái)發(fā)送他的郵件,這就是所謂的 Open Relay。
隨著垃圾郵件的泛濫,大部分的郵件服務(wù)器都關(guān)閉了Open Relay,在發(fā)送放和發(fā)送服務(wù)器之間進(jìn)行認(rèn)證,從而保證只有合法用戶(hù)才能使用這臺(tái)服務(wù)器發(fā)送郵件,這就是增強(qiáng)的ESMTP協(xié)議。然而這個(gè)方法無(wú)法解決在發(fā)送服務(wù)器和接收服務(wù)器之間的合法認(rèn)證,垃圾郵件仍然無(wú)法避免。
貝葉斯公式是英國(guó)數(shù)學(xué)家 T.貝葉斯在 200多年前提出的計(jì)算條件概率的公式,也稱(chēng)逆概率公式。如果事件組 A1,A2,…Ak為一完備事件組,則對(duì)任一事件B(其P(B)≠0)有:
其中????=,2,1i
貝葉斯公式實(shí)際上是綜合利用先驗(yàn)概率和樣本信息從而計(jì)算后驗(yàn)概率的一種方法。
首先,我們可以將電子郵件分為正常郵件和垃圾郵件兩類(lèi),貝葉斯過(guò)濾器針對(duì)這兩類(lèi)郵件進(jìn)行自學(xué)習(xí)。分析每封電子郵件中的每一個(gè)單詞,確定正常郵件和垃圾郵件中詞匯發(fā)生頻率的差異。
貝葉斯算法分析郵件的工作過(guò)程如下:
(1)過(guò)濾器收集大量的垃圾郵件和正常郵件,建立垃圾郵件集和正常郵件集。
(2)過(guò)濾器提取郵件主題和郵件體中的獨(dú)立字串。
(3)每一個(gè)郵件集對(duì)應(yīng)一個(gè)哈希表,hashtable_good對(duì)應(yīng)正常郵件集而hashtable_bad對(duì)應(yīng)垃圾郵件集。表中存儲(chǔ)TOKEN串到字頻的映射關(guān)系。
(4)計(jì)算每個(gè)哈希表中TOKEN串出現(xiàn)的概率P=(某TOKEN串的字頻)/(對(duì)應(yīng)哈希表的長(zhǎng)度)
(5)綜合考慮hashtable_good和hashtable_bad,推斷出當(dāng)新來(lái)的郵件中出現(xiàn)某個(gè) TOKEN串時(shí),該新郵件為垃圾郵件的概率。數(shù)學(xué)表達(dá)式為:
A事件----郵件為垃圾郵件;
t1,t2 …….tn代表TOKEN串
則 P(A|ti)表示在郵件中出現(xiàn) TOKEN串ti時(shí),該郵件為垃圾郵件的概率。
設(shè)
P1(ti)=(ti在hashtable_good中的值)
P2(ti)=( ti在hashtable_ bad中的值)
則 P(A|ti)= P1(ti)/[(P1(ti)+ P2(ti)];
(6)建立新的哈希表 hashtable_probability存儲(chǔ)TOKEN串ti到P(A|ti)的映射
(7)至此,垃圾郵件集和正常郵件集的學(xué)習(xí)過(guò)程結(jié)束。根據(jù)建立的哈希表 hashtable_proba bility可以估計(jì)一封新到的郵件為垃圾郵件的可能性。
當(dāng)新到一封郵件時(shí),按照步驟(2)生成TOKEN串。查詢(xún) hashtable_probability得到該TOKEN 串的鍵值。
假設(shè)由該郵件共得到 N個(gè) TOKEN串,t1,t2….tn, hashtable_probability中對(duì)應(yīng)的值為P1,P2,…PN, P(A|t1 ,t2, t3…tn)表示在郵件中同時(shí)出現(xiàn)多個(gè)TOKEN串t1,t2…….tn時(shí),該郵件為垃圾郵件的概率。由復(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)超過(guò)預(yù)定閾值時(shí),就可以判斷郵件為垃圾郵件。
因?yàn)樨惾~斯算法是基于先驗(yàn)概率和樣本信息來(lái)計(jì)算后驗(yàn)概率的方法,所以其對(duì)于樣本積累的數(shù)量具有很大的依賴(lài)性,需要一個(gè)較長(zhǎng)的過(guò)程,開(kāi)始的時(shí)候,可能會(huì)發(fā)生很多的誤判和漏判現(xiàn)象,只有當(dāng)積累的樣本數(shù)量足夠多,其檢測(cè)精度才能到達(dá)一定高度并為用戶(hù)所接受。
在反垃圾郵件技術(shù)中,貝葉斯過(guò)濾技術(shù)只是啟發(fā)式檢測(cè)流程中的一項(xiàng)技術(shù),這種技術(shù)可以確定電子郵件的總體垃圾概率。目前,對(duì)于貝葉斯技術(shù)的應(yīng)用正在成為反垃圾郵件領(lǐng)域的一個(gè)研究熱點(diǎn),越來(lái)越多的專(zhuān)用反垃圾郵件產(chǎn)品正在嘗試使用貝葉斯過(guò)濾技術(shù)來(lái)提高其產(chǎn)品的檢測(cè)精度,降低管理成本。
[1]倪加勛,袁衛(wèi).應(yīng)用統(tǒng)計(jì)學(xué),北京:中國(guó)人民大學(xué)出版社,1993.
[2]郭泓.電子郵件過(guò)濾技術(shù)淺析.信息網(wǎng)絡(luò)安全.2002.
[3]王斌,潘文峰.基于內(nèi)容的垃圾郵件過(guò)濾技術(shù)綜述.中國(guó)科學(xué)院計(jì)算技術(shù)研究所碩士畢業(yè)論文.2004.