它是电子邮件验证标准:域名密钥识别邮件标准DomainKeys Identified Mail的缩写。DKIM由互联网工程任务组(IETF)开发而成;针对的目标是互联网最严重的威胁之一:电子邮件欺诈。使用该技术后,发送方会在电子邮件的标头插入私钥,而接收方则透过DNS查询得到公钥后进行验证。一些邮件系统提供DKIM功能,客户配置使用该功能后,发送邮件时在每封电子邮件上增加加密的数字标志,以支持接收方与合法的互联网地址数据库中的记录进行比较。由于GMAIL、YAHOO、SINA、QQ等大型邮箱系统会对收件进行DKIM验证,因此配置此功能后,能大大提高客户们发邮件至这些大型邮箱系统的成功率。
DKIM的基本工作原理同样是基于传统的密钥认证方式,他会产生两组钥匙,公钥(public key)和私钥(private key),公钥将会存放在 DNS中,而私钥会存放在寄信服务器中。私钥会自动产生,并依附在邮件头中,发送到寄信者的服务器里。公钥则放在DNS服务器上,供自动获得。收信的服务器,将会收到夹带在邮件头中的私钥和在DNS上自己获取公钥,然后进行比对,比较寄信者的域名是否合法,如果不合法,则判定为垃圾邮件。由于数字签名是无法仿造的,因此这项技术对于垃圾邮件制造者将是一次致命的打击,他们很难再像过去一样,通过盗用发件人姓名、改变附件属性等小伎俩达到目的。在此之前,垃圾邮件制造者通过把文本转换为图像等方式逃避邮件过滤,并且使得一度逐渐下降的垃圾邮件数目再度抬头。
细心的朋友应该可以从上面原理中看到这样一句话:公钥则放在DNS服务器上,供自动获得。OK,那我们懂了,我们DNS上要存放域名做DKIM的公钥。具体的做法其实很简单:创建一个txt记录,主机名为“mail._domainkey.xxx.com”,值为“v=DKIM1;g=*;k=rsa;p=MIGfMA...(公钥,一般为250个字符以内)”
当前DNS需要怎么改造?
知道DNS要做什么后,改造起来就容易了。
1、让域名的txt解析记录,支持mail._domainkey这样的格式,说白了,支持带下划线(_)!因为正常的域名都是短横线,不是这种下划线。所以,一般的域名服务商都会禁止主机名中带下划线。
2、txt记录的值比较长,至少要支持250个字符。