反垃圾邮件(SMTP,POP3,IMAP,贝叶斯,数据挖掘) - 偌神

时间:2024-03-07 15:03:44
研究垃圾邮件有一段时间了,简单介绍一下方法。
(一)SMTP简单邮件传输协议工作流程。
      SMTP的重要特性之一就是其能跨越网络传输邮件,于是乎在邮件届大受欢迎。
  1.建立tcp的连接;
  2.客户端向服务器发送hello命令以标识发件人自己的身份,然后向客户端发送mail命令;
  3.服务器以OK作为响应,表示准备接收;
  4.客户端发送RCPT命令;
  5.服务器表示是否愿意为收件人接收邮件;
  6.协商结束,发送邮件,用命令data发送内容;
  7.结束发送,用quit命令退出;
  从此大家也可以看到SMTP的缺点就是,没有进行发送方的身份验证。这样导致了严重的后果,也就是说除了收件人地址是真实之外,其他一些都是可以伪造的。这也是垃圾邮件盛行的原因。人们开始研究了其他的邮件协议,包括POP3,IMAP等等……那么什么是POP3,IMAP协议?它们又有什么优势?

(二)POP3与IMAP协议。
  POP3和IMAP协议都是用客户端(例如OUTLOOK,FOXMAIL等软件)从邮件服务器上下载邮件至本地进行阅读,并删除服务器上的该封邮件。意思就是这个样。IMAP与POP3的区别就是IMAP只下载邮件的主题,并不是把所有的邮件内容都下载下来而是邮箱中保存副本,也没有把原邮箱中的邮件删除。只有当客户软件阅读时才下载邮件的内容。所以IMAP的名字叫做:Interactive Mail Access Protocol,交互式邮件存取协议。交互式名不虚传!

(三)解释一下邮件头的一些字段含义。
  Recevied:接收的一些信息,包括时间。-8000代表太平洋时间,与标准时间相差8个小时
  From:发件人;
  To:收件人;
  Cc:抄送地址;
  Subject:邮件标题;
  Date:发件人的系统时间;
  Content-Type:邮件类型;
  Message-ID:邮件的ID,由此可以判定不同的邮件,就像是身份证一样;
  Reply-to:回复地址;
  以上并不包含全部的邮件格式,只是一些基本的,有用的信息,还有很多东西要学的。

(四)贝叶斯反垃圾邮件算法。
  贝叶斯是通过训练模型,对邮件某字符串在垃圾邮件中出现的概率和正常邮件中出现的概率综合起来计算某字符串是垃圾邮件关键字的概率。听起来挺拗口。
  优点有很多:1.对邮件所有内容进行分析,并对比是垃圾与正常邮件的概率。例如不能认为有发票字眼就是垃圾邮件字眼
        2.贝叶斯具有适应功能,能通过学习对抗最新的垃圾邮件。
        3.贝叶斯可以个性化。所谓个性化即是用户可以自己定义一些规则,来对抗不同的垃圾邮件。这个功能尤其实用。(个人看法是对用户有用,但是对垃圾邮件发送者没有用,根本阻止不了他们发送垃圾的热情)
  斗胆发表一下贝叶斯的缺点:1.建模时,对模型训练集要求很高,分类尽可能广泛,而且不好过长……等等条件需要人力的干预,工作量大,效率低。专家说:这是值得的!嗯,是的!
        2.出现在正常邮件里的陌生单词,很容易被识别成垃圾邮件的关键字。例如姓“阙”,一般的正常邮件里不会有,于是这成了垃圾邮件的高危词!
        3.好的模型需要培训2周时间,花时长,不能有效识别最近最新的垃圾邮件。
(五)基于数据挖掘的智能聚类反垃圾邮件识别系统。
    这是我们的研究成果,优点有如下:1.完全的智能适应建模,就像一个大球始终向前滚,越滚越大,也越来越准确;2.识别效率高,因为是聚类批量识别;3.能识别最新的垃圾邮件,只要我们的模型检测到新的垃圾邮件类型,那之后的该类垃圾邮件都会给排除。具体做法以后补充。


  以上是个人的一些看法,讲得不对的地方请各位雅正,一起学习进步!