当前位置: 首页 > news >正文

深入理解电子邮件安全:SPF、DKIM 和 DMARC 完全指南

引言

在当今数字时代,电子邮件已经成为我们日常通信中不可或缺的一部分。然而,随之而来的安全问题也日益突出。邮件欺诈、钓鱼攻击和垃圾邮件等威胁不断增加,这促使了多种邮件安全验证机制的出现。本文将深入探讨三个最重要的邮件安全协议:SPF、DKIM和DMARC。

SPF (Sender Policy Framework)

什么是 SPF?

SPF(发件人策略框架)是一种邮件验证机制,用于防止发件人地址被伪造。它允许域名所有者指定哪些邮件服务器被授权发送来自该域名的邮件。

SPF 工作原理

  1. DNS记录发布:域名所有者在DNS中发布SPF记录
  2. 发送验证:当邮件服务器接收到邮件时,会检查发件人IP是否在SPF记录允许范围内
  3. 结果处理:基于验证结果决定是否接受该邮件

SPF 记录示例

example.com. IN TXT "v=spf1 ip4:192.0.2.0/24 ip4:198.51.100.123 a mx ~all"

DKIM (DomainKeys Identified Mail)

什么是 DKIM?

DKIM是一种数字签名技术,用于验证邮件的完整性和来源真实性。它通过加密签名确保邮件在传输过程中未被篡改。

DKIM 工作流程

  1. 签名生成

    • 发送方使用私钥对邮件头部和内容生成签名
    • 签名添加到邮件头的DKIM-Signature字段
  2. 验证过程

    • 接收方获取发送域名的公钥(存储在DNS中)
    • 使用公钥验证签名的有效性

DKIM 配置示例

selector._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC..."

DMARC (Domain-based Message Authentication, Reporting & Conformance)

DMARC 的作用

DMARC建立在SPF和DKIM基础上,提供了统一的邮件验证策略框架。它不仅能验证邮件真实性,还能向域名所有者提供详细的验证报告。

DMARC 政策

  1. none:监控模式,不采取任何操作
  2. quarantine:将可疑邮件放入垃圾邮件文件夹
  3. reject:直接拒绝不符合要求的邮件

DMARC 记录示例

_dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@example.com"

最佳实践建议

1. 完整部署策略

  • 同时实施SPF、DKIM和DMARC
  • 从宽松策略开始,逐步收紧
  • 定期监控验证报告

2. 密钥管理

  • 定期更新DKIM密钥对
  • 使用足够长度的密钥(建议2048位)
  • 安全保管私钥

3. 监控和维护

  • 定期检查SPF记录是否需要更新
  • 分析DMARC报告发现潜在问题
  • 及时响应验证失败警报

4. 政策调整

  • 根据业务需求调整验证策略
  • 考虑第三方邮件服务的影响
  • 平衡安全性和可用性

结论

电子邮件安全是一个持续演进的领域。SPF、DKIM和DMARC这三个协议互相配合,共同构建了强大的邮件安全防线。正确实施这些机制不仅能有效防止邮件欺诈,还能提升邮件送达率,保护企业声誉。随着网络威胁的不断发展,持续关注和更新邮件安全措施变得越来越重要。

配置
我来详细介绍如何配置 SPF 和 DKIM 的域名解析记录:

  1. SPF 配置步骤:
  1. 登录域名管理控制台,添加 TXT 记录:
  • 主机记录:@ 或者留空(取决于服务商)
  • 记录类型:TXT
  • 记录值示例:
v=spf1 ip4:1.2.3.4 ip4:11.22.33.44 include:spf.example.com include:_spf.google.com ~all
  1. SPF 记录值说明:
  • v=spf1 - SPF 版本声明
  • ip4: - 指定 IPv4 地址
  • include: - 包含其他域名的 SPF 记录
  • ~all - 软失败(推荐)或 -all 硬失败
  • +all - 允许所有(不推荐)

常见配置场景:

# 只允许指定 IP 发送
v=spf1 ip4:1.2.3.4 -all# 允许本域名的 MX 记录对应的服务器发送
v=spf1 mx -all# 允许本域名的 A 记录对应的服务器发送
v=spf1 a -all# 包含第三方邮件服务(如 Google Workspace)
v=spf1 include:_spf.google.com -all
  1. DKIM 配置步骤:
  1. 生成 DKIM 密钥对:
# 使用 OpenSSL 生成私钥
openssl genrsa -out private.key 2048# 生成公钥
openssl rsa -in private.key -pubout -out public.key
  1. 添加 DKIM DNS 记录:
  • 主机记录:selector._domainkey (selector 可自定义,如 mail._domainkey)
  • 记录类型:TXT
  • 记录值示例:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
  1. DKIM 记录值说明:
  • v=DKIM1 - DKIM 版本
  • k=rsa - 加密算法
  • p= - 公钥(去掉头尾和换行)

常见邮件服务商的 DKIM 配置:

Google Workspace:

# 主机记录
google._domainkey# 记录值
v=DKIM1; k=rsa; p=您的公钥

Microsoft 365:

# 主机记录
selector1._domainkey# 记录值
v=DKIM1; k=rsa; p=您的公钥

验证配置:

  1. SPF 验证:
# 使用 dig 命令查询
dig txt example.com# 使用在线工具
https://mxtoolbox.com/spf.aspx
  1. DKIM 验证:
# 发送测试邮件查看邮件头
# 使用在线工具
https://mxtoolbox.com/dkim.aspx

注意事项:

  1. DNS 传播时间:
  • 新增或修改记录后需等待 DNS 刷新(通常 5-30 分钟)
  • 某些情况可能需要最多 24-48 小时
  1. 记录长度限制:
  • 单条 TXT 记录最大 255 字符
  • 超长需要分片,用引号分隔
  1. 安全建议:
  • 私钥妥善保管,避免泄露
  • 建议每 6-12 个月轮换密钥
  • 先添加新记录,确认生效后再更换密钥
  1. 常见错误:
  • SPF 记录重复
  • DKIM 选择器名称错误
  • 公钥格式不正确
  • DNS 记录未及时生效

查询链接

https://coding.tools/cn/nslookup 
https://powerdmarc.com/zh/spf-record-lookup/
https://powerdmarc.com/zh/dkim-record-lookup/
https://powerdmarc.com/zh/dmarc-record-checker/

相关文章:

深入理解电子邮件安全:SPF、DKIM 和 DMARC 完全指南

引言 在当今数字时代,电子邮件已经成为我们日常通信中不可或缺的一部分。然而,随之而来的安全问题也日益突出。邮件欺诈、钓鱼攻击和垃圾邮件等威胁不断增加,这促使了多种邮件安全验证机制的出现。本文将深入探讨三个最重要的邮件安全协议&a…...

【有啥问啥】复习一下什么是NMS(非极大值抑制)?

复习一下什么是NMS(非极大值抑制)? 什么是NMS? NMS(Non-Maximum Suppression)即非极大值抑制,是一种在计算机视觉领域,尤其是目标检测任务中广泛应用的后处理算法。其核心思想是抑…...

Java-异步方法@Async+自定义分布式锁注解Redission

如果你在使用 @Async 注解的异步方法中,使用了自定义的分布式锁注解(例如 @DistributedLock),并且锁到期后第二个请求并没有执行,这可能是由于以下几个原因导致的: 锁的超时时间设置不当:锁的超时时间可能设置得太短,导致锁在业务逻辑执行完成之前就已经自 动释放。…...

基本定时器---内/外部时钟中断

一、定时器的概念 定时器(TIM),可以对输入的时钟信号进行计数,并在计数值达到设定值的时候触发中断。 STM32的定时器系统有一个最为重要的结构是时基单元,它由一个16位计数器,预分频器,和自动重…...

实现了两种不同的图像处理和物体检测方法

这段代码实现了两种不同的图像处理和物体检测方法:一种是基于Canny边缘检测与轮廓分析的方法,另一种是使用TensorFlow加载预训练SSD(Single Shot Multibox Detector)模型进行物体检测。 1. Canny边缘检测与轮廓分析: …...

如何在MindMaster思维导图中制作PPT课件?

思维导图是一种利用色彩、图画、线条等图文并茂的形式,来帮助人们增强知识或者事件的记忆。因此,思维导图也被常用于教育领域,比如:教学课件、读书笔记、时间管理等等。那么,在MindMaster免费思维导图软件中&#xff0…...

ORIN NX 16G安装中文输入法

刷机版本为jetpack5.14.刷机之后预装了cuda、cudnn、opencv、tensorrt等,但是发现没有中文输入,所以记录一下安装流程。 jetson NX是arm64架构的,sougoupinyin只支持adm架构的,所以要选择安装Google pinyin 首先打开终端&#x…...

【金融风控项目-07】:业务规则挖掘案例

文章目录 1.规则挖掘简介2 规则挖掘案例2.1 案例背景2.2 规则挖掘流程2.3 特征衍生2.4 训练决策树模型2.5 利用结果划分分组 1.规则挖掘简介 两种常见的风险规避手段: AI模型规则 如何使用规则进行风控 **使用一系列逻辑判断(以往从职人员的经验)**对客户群体进行区…...

退款成功订阅消息点击后提示订单不存在

问题表现: 退款成功发送的小程序订阅消息点击进入后提示订单不存在。 修复方法: 1.打开文件app/services/message/notice/RoutineTemplateListService.php 2.找到方法sendOrderRefundSuccess 3.修改图中红圈内的链接地址 完整方法代码如下 /*** 订…...

实验一 顺序结构程序设计

《大学计算机﹣C语言版》实验报告 实验名称 实验一 顺序结构程序设计 实验目的 (1)掌握C语言中常量和变量的概念。 (2)掌握C语言中常见的数据类型。 (3)掌握C语言中变量的定义和赋值方法。 …...

Elasticsearch搜索流程及原理详解

Elasticsearch搜索流程及原理详解 1. Elasticsearch概述1.1 简介1.2 核心特性1.3 应用场景2. Elasticsearch搜索流程2.1 搜索请求的发起2.2 查询的执行2.3 结果的聚合与返回3. Elasticsearch原理详解3.1 倒排索引3.2 分布式架构3.3 写入流程3.4 读取流程4. 技术细节与操作流程4…...

芯片之殇——“零日漏洞”(文后附高通64款存在漏洞的芯片型号)

芯片之殇——“零日漏洞”(文后附高通64款存在漏洞的芯片型号) 本期是平台君和您分享的第113期内容 前一段时间,高通公司(Qualcomm)发布安全警告称,提供的60多款芯片潜在严重的“零日漏洞”,芯片安全再一次暴露在大众视野。 那什么是“零日漏洞”?平台君从网上找了一段…...

【gitlab】gitlabrunner部署

1、下载镜像 docker pull gitlab/gitlab-runner:latest 2、启动gitrunner容器 docker run -d --name gitlab-runner --restart always \ -v /root/gitrunner/config:/etc/gitlab-runner \ ///gitlab-runner的配置目录,挂载在宿主机上方便修改,里面有config.…...

Flink监控checkpoint

Flink的web界面提供了一个选项卡来监控作业的检查点。这些统计信息在任务终止后也可用。有四个选项卡可以显示关于检查点的信息:概述(Overview)、历史(History)、摘要(Summary)和配置(Configuration)。下面依次来看这几个选项。 Overview Tab Overview选项卡列出了以…...

Ribbon 入门实战指南

Ribbon 是 Netflix 开发的一个开源项目,用于实现客户端负载均衡功能。它在微服务架构中广泛使用,并且是 Spring Cloud 生态中的重要组成部分。本文将带你从基础入门,逐步掌握如何在 Spring Cloud 项目中使用 Ribbon 实现客户端负载均衡。 1 负…...

uniapp: 微信小程序包体积超过2M的优化方法(主包从2.7M优化到1.5M以内)

一、问题描述 在使用uniapp进行微信小程序开发时,经常会遇到包体积超过2M而无法上传: 二、解决方案 目前关于微信小程序分包大小有以下限制: 整个小程序所有分包大小不超过 30M(服务商代开发的小程序不超过 20M) 单个…...

【百日算法计划】:每日一题,见证成长(026)

题目 给定一个包含正整数、加()、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。 表达式仅包含非负整数,, - ,,/ 四种运算符和空格 。 整数除法仅保留整数部分。 * * 示例 1: 输入: “32X2” 输出: 7 import…...

【大模型】prompt实践总结

文章目录 怎么才算是好的prompt设计准则基本原则精炼原则(奥卡姆剃刀准则)具体原则真实操作技巧指定角色增加fewshots列表化代码化强调需求真实迭代大模型优化情形任务的定义和评估标准似乎可以再明确一下出现了一些之前没有考虑过的特殊情况,可以重新组织语言优化Prompt来处…...

在Qt(以及C++)中, 和 * 是两个至关重要的符号--【雨露均沾】

在Qt(以及C)中,& 和 * 是两个至关重要的符号,它们用于处理引用和指针。我们将逐个解释这两个符号,并提供简单示例来说明它们的用法。 1. 引用(&) 定义: 引用是一种别名,它不…...

本地部署Apache Answer搭建高效的知识型社区并一键发布到公网流程

文章目录 前言1. 本地安装Docker2. 本地部署Apache Answer2.1 设置语言选择简体中文2.2 配置数据库2.3 创建配置文件2.4 填写基本信息 3. 如何使用Apache Answer3.1 后台管理3.2 提问与回答3.3 查看主页回答情况 4. 公网远程访问本地 Apache Answer4.1 内网穿透工具安装4.2 创建…...

告别死板界面!Nanbeige 4.1-3B Streamlit WebUI极简版,一键搭建二次元对话助手

告别死板界面!Nanbeige 4.1-3B Streamlit WebUI极简版,一键搭建二次元对话助手 1. 引言:当极简设计遇上AI对话 如果你曾经尝试过本地部署大语言模型的Web界面,可能会被那些拥挤的侧边栏、死板的方形头像和单调的聊天气泡劝退。传…...

专用镗床主轴箱设计(有cad图+文献翻译+ppt)

专用镗床主轴箱是机械加工领域的核心部件,其设计水平直接影响加工精度与设备稳定性。主轴箱通过精准传递动力并控制主轴运动,为镗削、钻孔等工序提供稳定支撑,尤其在复杂曲面加工中,其结构刚性直接决定了工件表面质量。传统主轴箱…...

第 29 课:任务页筛选方案预设与快捷视图

第 29 课:任务页筛选方案预设与快捷视图 这一课,我们继续沿着任务管理页主线往下走,把它从“能筛选”推进到“能复用工作台”: 让用户把当前筛选条件保存成方案,以后可以一键切回。 这一步很像真实后台系统里常见的&am…...

Hive 常用函数详细总结

Hive 常用函数详细总结 本文汇总了 Hive 开发与面试中最常用、最实用的内置函数,每个函数均附有语法说明和代码示例。内容涵盖:字符串处理、日期时间、条件判断、聚合统计、开窗分析、集合操作、类型转换、JSON 解析等。 目录 一、字符串函数 concat / …...

失物招领|基于java + vue失物招领系统(源码+数据库+文档)

失物招领系统 目录 基于springboot vue失物招领系统 一、前言 二、系统功能演示 详细视频演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue失物招领系统 一、前言 博主介绍…...

从CCF A类清单看计算机学科前沿:如何选择你的学术发表阵地

1. CCF A类清单:计算机学术圈的"米其林指南" 第一次看到CCF A类清单时,我正为博士开题选方向发愁。导师甩给我这份列表说:"这就是计算机学界的米其林三星榜单,发一篇能顶三篇普通论文。"后来我才理解&#x…...

【人工智能】Seedream(即梦AI) 是字节跳动自研图像生成模型,Seedream API_KEY 怎么申请

Seedream(即梦AI) 是字节跳动自研图像生成模型,分国内火山引擎(火山方舟)官方、国际BytePlus、第三方中转平台三种API_KEY申请渠道,国内用户优先走火山引擎官方,无需翻墙、支持手机号、有免费额度,下面是完整详细步骤。 一、国内官方(火山引擎火山方舟,首选) Seed…...

2025届学术党必备的六大AI学术方案推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 此时此刻,伴随AI技术被广泛运用,针对AI生成内容的检测变得日益严谨。…...

从源码到实战:手把手教你编译与定制化iperf网络性能测试工具

1. iperf工具简介与适用场景 iperf是一款经典的开源网络性能测试工具,它通过测量TCP/UDP带宽来评估网络质量。我第一次接触这个工具是在调试嵌入式设备的网络吞吐量时,当时需要验证百兆网口的实际传输速率是否达标。相比简单的ping命令,iperf…...

FileLocator Pro进阶搜索:从布尔逻辑到正则表达式的实战指南

1. 为什么需要掌握FileLocator Pro的进阶搜索技巧 作为一个常年和各类文档、日志打交道的IT从业者,我深知在海量文件中寻找特定信息有多痛苦。记得有一次,客户服务器突然报错,我需要从几十GB的日志文件中找出特定错误码和关联的请求ID。当时…...