服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

sender id框架规范概述


  前言:
  这篇文章是我为了配合朋友-windows it pro杂志社的编辑小夫而特别撰写的。因为时间仓促,难免有误,如有不正之处欢迎大家指正。
  
  sender id框架规范概述
  当今时代,网络早已根深蒂固的融入到了大家的日常生活中,电子邮件想必也早成为了大家联系亲朋好友乃至生意伙伴不可或缺的好帮手。也正因为电子邮件的如此流行,越来越多的人已经感受到了"垃圾邮件"带来的种种不便。而这些又被叫做junk e-mail或spam的垃圾邮件通常都是靠伪造发信人的地址来实现的。这也是我们一般都知道的技术术语"spoofing"(欺骗)的一种.
  
  现在产业界为了针对这一日趋突出的问题而联合推出了所谓的sender id框架,该框架就是针对垃圾邮件现象而提出的解决方案. 该框架由三个主要部分组成:
  
  1. 微软的sender id规范,
  
  2. pobox.com 的meng wong制定的邮件发送者策略框架(spf),
  
  3. 递交者优化规范(so).
  
  该框架的目的就是通过对每一封发出的邮件的域名进行自动审核。 只要能够做到消灭域名欺骗, 核实发送者身份,那么邮件发送者的域名,名誉和品牌都会自然得到保护,并且该框架规范还将协助邮件接受者可以更准确的进行针对垃圾邮件的过滤.
  
  现在该框架规范已经被递交给了因特网工程工作组(ietf)审核并等待批准。
  
  当前活跃在该框架规范化的各主要合作组织有:
  
  反垃圾技术联盟:anti-spam technical alliance (asta)
  
  全球国际网络安全基础构架联盟global infrastructure alliance for internet safety (giais)
  
  什么是sender id
  具体来说,
  
  1.sender id是一种保护邮件发送者的品牌和域名被冒用的方式
  
  2.sender id 是一种让邮件接受者核查邮件来源的方式
  
  3.可以容许采用更多的垃圾邮件过滤的方式
  
  4.是让域名被可靠使用的基础。
  
  注: sender id也不是完全的解决方法,因为垃圾邮件发送者也会注册他们的域名,不过这样做的好处是他们的域名可以被锁定。
  
  当前可以提供sender id框架方案的大型组织有:
  
  微软,verisign, bsp,trusted e,ironpoint systems,send mail,symantec等。
  
  sender id 的工作原理
  这里有几个关键步骤:
  
  1. 发件者一次性登记自己的spf记录后发送邮件给受件者.
  
  2. 收件者的邮件接受服务器接受邮件.
  
  3. 收件者的邮件服务器检查在邮件发送者登记在合法dns里的邮件域名的spf记录.
  
  4. 邮件接受服务器然后核实邮件发送服务器的ip地址是否吻合该邮件域名登记在合法dns里的ip地址.
  
  5. 如果核实正确接受邮件。
  
  6. 如果核实不正确则拒绝邮件(如图)
  
sender id框架规范概述

  spf记录的格式
  spf记录的格式有很多种,我在这里只列举有两种最简单的举例说明:
  
  1.domain.com txt “v=spf1 -all”
  
  说明:这个域名永远不会发送邮件
  
  2.domain.com txt “v=spf1 mx -all”
  
  说明:这个域名可以发送和接受邮件,并且发送和接受的服务器是同一个
  
  如果要更详细的有关spf记录的资料说明,你可以查阅http://www.zytrax.com/books/dns/ch9/spf.html。
  
  什么是pra
  pra的意思是假想响应地址(purported responsible address),也就是在邮件发送过程中所有邮件发送服务器的地址。pra的来源有很多,比较常见的有:
  
  1.发送者源始服务器:(这种多发生在小型网络中,及发送者和接受者的邮件服务器中没有第三者存在)
  
  2.邮件转发服务器地址:(多发生在大型网络中,及发送者和接受者的邮件服务器中有第三者存在)
  
  3.更复杂的还包括邮件代发服务器地址:(这种通常就是当你浏览网页时,有的网页提供类似发给你的朋友之类的功能,你是邮件发送人,可是服务器却是该网站的邮件服务器)。
  
  如果要知道更多关于pra的资料,你可以查询[rfc2822]
  
  http://community.roxen.com/developers/idocs/rfc/rfc822.html
  
  既然讲到了pra,那么这里还有一个不得不提的就是submitter optimization(so):
  
  这是一个相对于smtp 邮件命令的可选延伸,它容许发件者在smtp协议中宣布pra。
  
  如果一旦使用,只要pra和邮件的来源不同,你就必须要在邮件的from命令里加入 “submitter=”的参数
  
  举例:
  
  下面我以一个比较具体的邮件例子来说明:
  
  s: 220 sample.domain.edu esmtp server ready
  
  c: ehlo example.com
  
  s: 250- sample.domain.edu
  
  s: 250-dsn
  
  s: 250-auth
  
  s: 250-submitter  《=加入递交者对ehlo的回应
  
  s: 250 size
  
  c: mail from: submitter=fumtek@example.com 《=递交者参数的注入
  
  s: 250 sender ok
  
  c: rcpt to:
  
  s: 250 recipient ok
  
  c: data
  
  s: 354 okay, send message
  
  c: from: fumtek@example.com
  
  c: (message body goes here)
  
  c: .
  
  s: 250 message accepted
  
  c: quit
  
  s: 221 goodbye
  
  从上面的例子我们可以看到,一旦在smtp协议中包括了递交者信息以及结合邮件发送者的spf记录,垃圾邮件的查处就容易多了。
  
  后记:虽然这是业界针对垃圾邮件及网络安全的一大动向,但是由于牵涉到的范围很大,真正可以具体实现的时间还需要我们拭目以待呀。

扫描关注微信公众号