DMARC 是什么?

DMARC 是 “Domain-based Message Authentication, Reporting & Conformance” 的缩写。它用来检查一封电邮是否来自所声称的发送者。DMARC 建立在广泛使用的 SPF 和 DKIM 协议上, 并且添加了域名对齐检查和报告发送功能。这样可以改善域名免受钓鱼攻击的保护。

这是来自 dmarc.org 的示意图:

为什么 DMARC 如此重要?

根据 dmarc.org 的说法:

随着社交网络和电子商务的繁荣,垃圾邮件发送者和钓鱼攻击发起者基于利益的原因,想要入侵用户的账户,破解用户的信用卡等。Email 的相对容易攻击的特性备受罪犯们的青睐。只是简单地把企业的 logo 嵌入到 email 中,就能获取用户的信任。

用户很难辨别一封假的 email,邮件提供商也很难判断哪些邮件有可能会伤害用户。邮件发送者基本上对邮件认证的问题一无所知,因为他们缺少合理的反馈机制。那些尝试部署 SPF 和 DKIM 的企业的进展非常慢,因为没有监督进度和除错的机制。

DMARC 解决了这些问题。它帮助 email 发送者和接收者来共同保护 email,避免了昂贵的入侵损失。

DMARC 记录是什么?

DMARC 记录作为 TXT 资源记录发布到 DNS 中。它指示当验证失败时,应当如何处理收到的 email。

考察以下的发布在域名 “sender.exampledomain.com” 上的 DMARC 记录:

v=DMARC1;p=reject;pct=100;rua=mailto:postmaster@exampledomain.com

在这个例子中,发送者请求接收者完全拒绝验证未通过的 email,并且发送相关报告至 postmaster@exampledomain.com。如果发送者是在测试配置的话,"reject" 有可能被替换成 "quarantine",意味着验证未通过的 email将被隔离。DMARC 记录使用可扩展的 “标签-值” 语法。

DMARC 记录标签是什么?

这是一个典型的 DMARC 记录:

v=DMARC1; p=none; ri=3600; rua=mailto:5b06a240321f1@ag.dmarcly.com; ruf=mailto:5b06a240321f1@fo.dmarcly.com; sp=none; adkim=s; aspf=s; fo=0:1:d:s;

它由多个标签组成。这些标签告诉邮件服务提供商应该如何发送 DMARC 报告。我们在下面逐一解释这些标签。

v 是 DMARC 协议版本。它的值必须是 DMARC1

p 是策略。该策略将被应用到验证失败的邮件上。可以设置成 'none', 'quarantine', 或者 'reject'。'none' 用来收集 DMARC 报告。'quarantine' 用来隔离可疑邮件。'reject' 拒收可疑邮件。

ri 是以秒为单位的报告发送间隔。

rua 是一系列用来接受聚合报告的电邮。

ruf 是一系列用来接受失败报告的电邮。

sp 是子域名策略。

adkim 制定 DKIM 的对齐策略。

aspf 制定 SPF 的对齐策略。

fo 是法庭选项。

rf 制定失败报告的格式。

pct 对失败邮件应用策略的百分比。

DMARC 策略是什么?

DMARC 策略是在 DMARC 记录中制定的 p 标签。它指示邮件服务提供商应该如何处理验证失败的邮件。

DMARC 策略可以取三个值中的一个:none (monitor), quarantine 和 reject

– none: 邮件提供商对验证失败邮件不采取任何处理。这个模式用来收集 DMARC 报告。

– quarantine: 邮件提供商把验证失败邮件放到垃圾邮件文件夹。

– reject: 邮件提供商拒收验证失败邮件。

发布 DMARC 记录

在发布之前,你需要创建一条 DMARC 记录。接下来我们登陆 DMARCLY 后台 来创建一条 DMARC 记录。

登录成功后,点击 DNS Records/DMARC Setup,页面看起来像这样:

生成的 DMARC 记录出现在上面的圈选区域。

接下来,你需要把记录发布到 DNS 中。以下是步骤:

登录到你的 DNS 管理后台;

选择需要发布 DMARC 记录的域名;

创建一条 TXT 记录:

Type: TXT Host: _dmarc TXT Value: (DMARC record generated above) TTL: 1 hour

如果你在 GoDaddy's DNS 管理后台发布的话,看起来是这样的:

如果你是用其他的域名服务的话,界面应该类似。

保存更改。现在你已经在域名 yourdomain.com 上面成功发布 DMARC 记录了。

本文翻译自 DMARCLY 的 blog:Getting Started with DMARC,已经经过作者的授权。

DMARC 介绍的更多相关文章

  1. CSS3 background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

  2. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  3. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  4. Linux下服务器端开发流程及相关工具介绍(C++)

    去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...

  5. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

    本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...

  6. HTML DOM 介绍

    本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...

  7. HTML 事件(一) 事件的介绍

    本篇主要介绍HTML中的事件知识:事件相关术语.DOM事件规范.事件对象. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三 ...

  8. HTML5 介绍

    本篇主要介绍HTML5规范的内容和页面上的架构变动. 目录 1. HTML5介绍 1.1 介绍 1.2 内容 1.3 浏览器支持情况 2. 创建HTML5页面 2.1 <!DOCTYPE> ...

  9. ExtJS 4.2 介绍

    本篇介绍ExtJS相关知识,是以ExtJS4.2.1版本为基础进行说明,包括:ExtJS的特点.MVC模式.4.2.1GPL版本资源的下载和说明以及4种主题的演示. 目录 1. 介绍 1.1 说明 1 ...

随机推荐

  1. servlet之@PostConstruct,@PreDestroy

    1.@PostConstruct说明 被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法.被@PostCo ...

  2. js可以随意拖拽的div的实现

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. [LUOGU] 1108 低价购买

    统计本质不同的\(LIS\)个数. 因为本题要求的是\(N^2\)级别的算法,就直接暴力统计\(LIS\)的个数了 然后统计方案数的话加入发现有之间有一个值,以它为结尾的\(LIS\)长度和当前的相等 ...

  4. 4.几个「不难但却很有用」的 Git 技能点

    阅读 Git 原理详解及实用指南 记录 tag:不可移动的 branch tag 是一个和 branch 非常相似的概念,它和 branch 最大的区别是:tag 不能移动.所以在很多团队中,tag ...

  5. Windows Phone开发(18):变形金刚第九季

    变换不是一个好理解的概念,不是吓你,它涉及很多有关代数,几何,以及线性代数的知识.怎么?被我的话吓怕了?不用怕,尽管我们未必能够理解这些概念,只要我们知道怎么使用它们就是了.其实,变换就是平面上一种坐 ...

  6. Problem 42

    Problem 42 https://projecteuler.net/problem=42 The nth term of the sequence of triangle numbers is g ...

  7. 【模板】Hash

    洛谷3370 这题煞笔的吧QAQ......排序去重或者Map都可以 #include<cstdio> #include<map> #include<string> ...

  8. hdu 5170 精度控制

    众所周知,GTY是一位神犇,为了更好的虐场,他从来不写数学作业而是去屠题,他的数学老师非常不爽,但由于GTY每次考试都AK,她也不能说什么,有一天老师在黑板上写了四个数——a,b,c,da,b,c,d ...

  9. jquery源码分析(五)——Deferred 延迟对象

    javascript的异步编程 为什么要使用异步编程? JS是单线程语言,就简单性而言,把每一件事情(包括GUI事件和渲染)都放在一个线程里来处理是一个很好的程序模型,因为这样就无需再考虑线程同步这些 ...

  10. 4、ceph-deploy之配置使用对象存储

    从firefly(v0.80)版本开始,ceph存储显著的简化了安装和配置Ceph Object Gateway, Gateway进程嵌入到Civetweb,所以你需要安装一个web服务,或者配置Fa ...