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

网络与协议安全复习 - 电子邮件安全

文章目录

  • PGP(Pretty Good Privacy)
    • 功能
  • S/MIME(Secure/Multipurpose Internet Mail Extensions)
  • DKIM(Domain Keys Identified Mail)

PGP(Pretty Good Privacy)

使用符号:
Ks:会话密钥、KRa:A 的私钥、KUa:A 的公钥、EP:公钥加密、DP:公钥解密、EC:常规加密、DC:常规解密、H: 散列函数、||: 连接操作、Z: 使用 ZIP 算法进行压缩、R64:基数为 64 的 ASCII 格式转换。

功能

  • 认证
    在这里插入图片描述
    发送方:
    (1)产生消息 M。
    (2)用 SHA-1 对 M 生成一个 160 位的散列码 H。
    (3)用私钥对 H 加密,与 M 连接。
    接收方:
    (1)用公钥解密,恢复出 H。
    (2)对 M 生成一个新的 H’,比较 H 与 H’。若一致则 M 通过认证。
    认证说明:
    (1)RSA 保证了身份验证。
    (2)SHA-1 保证了消息的有效性。
    (3)签名和消息可以分离(比如对消息单独日志记录)。
  • 保密
    在这里插入图片描述
    发送方:
    (1)生成消息 M,并为消息生成一个随机数作为会话密钥 Ks。
    (2)用会话秘钥加密 M。
    (3)用接收方的公钥加密 Ks,并与加密过的 M 连接。
    接收方:
    (1)用私钥解密,得到 Ks。
    (2)用 Ks 解密恢复 M。
    保密性说明:
    (1)对称加密算法和公钥加密算法结合可以缩短加密时间。
    (2)公钥算法解决了 会话密钥 的单向分发问题。不用专门的 Ks 交换协议
    (3)每个消息都有一次性密钥,提高了保密强度。
  • 保密与认证的结合
    在这里插入图片描述
    两种服务都需要时,发送者先用自己的私钥签名,然后用会话密钥加密消息,再用接收者的公钥加密会话密钥。
    简单来说,发送方先进行认证的操作,将操作完压缩后的结果作为新的“消息”进行保密操作。两部分操作并没有修改。
  • 压缩
    (1)有利于节省空间
    (2)压缩在签名后进行
    (3)压缩减少了冗余,因此提高了加密强度,使密码分析更困难
    (4)PGP 采用 ZIP 压缩
    总顺序:签名 —— 压缩 —— 加密。
  • 电子邮件的兼容性
    采用 R64 转换,每三个字节的二进制数据为一组映射成四个 ASCII 字符,附加CRC校验。
    在这里插入图片描述
  • 分段与重组
    一般电子邮件工具限制消息的最大长度,PGP 自动进行分段。接收方只需去掉所有邮件头并重组即可。

S/MIME(Secure/Multipurpose Internet Mail Extensions)

S/MIME 是增强了安全性的 MIME,支持各种现代邮件代理。
MIME 不多做解释,知道它定义了许多格式和方式规范即可。

  • 功能
    保密、签名、清除签名(不知道在说啥)、保密和签名并行。
    贴一下清除签名这块的原文:
    Clear-signed data:只有签名部分用 Base64 编码,结果是,即使接收者没有 S/MIME 能力,他也能查看消息内容,只是他不能验证该签名
  • 使用的密码算法
    消息摘要:SHA-1 和 MD5
    数字签名:DSS
    对称密钥加密:三重 DES
    公私钥加密:RSA、DH 密钥协商用于会话密钥
  • 证书处理过程
    (1)使用 X.509 v3 证书。
    (2)混合 ‘X.509 CA 层次结构’ 和 ‘PGP 可信 Web’ 进行管理。
    (3)每个客户有 CA 颁发的证书列表、自己的公私钥对、公钥证书。
    (4)公钥证书必须经过 CA 签名。
  • 增强安全性的服务
    (1)签收:对签名数据对象要求进行签收。
    (2)安全标签:在签名数据对象的认证属性中可以包含安全标签。
    (3)安全邮寄列表:当用户向多个接收方发送消息时,需要进行与每个接收方相关的处理,包括使用各接收方的公钥。
  • 与 PGP 的对比
    (1)公钥可信度:
    在 S/MIME 中,CA 签名和颁发公钥,并验证各方可信度。
    而 PGP 由发件人自己创建签署密钥对。这意味着 PGP 没有权威可信中心,只能用户自己去决定信任问题。
    (2)加密保护的范围:
    PGP 解决纯文本,S/MIME 更旨在保护各种附件。
    (3)集中化管理:
    从管理角度来看,S/MIME 被认为优于 PGP,因为它支持通过 X.509 CA 进行集中式密钥管理。
    (4)兼容性和易用性:
    S/MIME 具备更广泛的行业支持。

DKIM(Domain Keys Identified Mail)

DKIM(域名密钥识别邮件)是一个电子邮件信息密码签名规范。

域名指地址中“@”符号之后的部分,可能会被冒充。

接收方直接查询签名者的域,获得适当公钥确定发送方身份,从而验证签名。

下方直接贴原文了。全是鸟语加车轱辘话。

工作机制:

  • DKIM 有两个主要方面
    DKIM 记录:存储在域的 Domain Name System (DNS) 记录中
    DKIM 标头:附加在所有来自该域的电子邮件中
  • DKIM 使用基于公钥密码的数字签名验证电子邮件的来源,证实邮件确实来自于从该域发送电子邮件的服务器。
  • DKIM使用一对加密密钥:发件人用于签署邮件的私钥和接收者用于验证签名的公钥。
  • 电子邮件提供商生成公钥和私钥。他们将公钥交给域名所有者,后者将公钥存储在一个公开的DNS 记录中,即 DKIM 记录(实际上是 DNS TXT<“文本”>记录)。
  • 所有从该域名发送的电子邮件都包含一个 DKIM 标头,其中包含一段使用私钥生成的数字签名。电子邮件服务器可以查看 DKIM DNS 记录从而获得公钥,并使用公钥来验证数字签名。

相关文章:

  • Java宝藏实验资源库(4)对象数组
  • redis-基础篇(1)
  • ubuntu server 22.04安装 fdfs
  • 上海国际嵌入式展 - 基于树莓派5和CODESYS的16轴运动控制解决方案
  • <Python><paddleocr>基于python使用百度paddleocr实现图片文字识别与替换
  • 前后端分离的后台管理系统源码,快速开发OA、CMS网站后台管理、毕业设计项目
  • android 一个manifest 可以有 多个 hal 吗 ?
  • Leetcode211. 添加与搜索单词 - 数据结构设计
  • 【机器学习 复习】第3章 K-近邻算法
  • JavaWeb——Mysql的启动/登录/卸载
  • Netty中的Reactor模型实现
  • 什么是ETL?
  • 内容安全复习 3 - 深度学习基础
  • 数据仓库之Hive
  • Function Calling, ReAct, 以及插件机制的区别与应用
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • ➹使用webpack配置多页面应用(MPA)
  • cookie和session
  • JS数组方法汇总
  • redis学习笔记(三):列表、集合、有序集合
  • Spark RDD学习: aggregate函数
  • TypeScript实现数据结构(一)栈,队列,链表
  • Yeoman_Bower_Grunt
  • 思维导图—你不知道的JavaScript中卷
  • 算法系列——算法入门之递归分而治之思想的实现
  • 线性表及其算法(java实现)
  • 小而合理的前端理论:rscss和rsjs
  • 怎么将电脑中的声音录制成WAV格式
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 如何在招聘中考核.NET架构师
  • ​2020 年大前端技术趋势解读
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • # 安徽锐锋科技IDMS系统简介
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #php的pecl工具#
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (09)Hive——CTE 公共表达式
  • (一)基于IDEA的JAVA基础12
  • (转)编辑寄语:因为爱心,所以美丽
  • (转)程序员疫苗:代码注入
  • .net 中viewstate的原理和使用
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .pop ----remove 删除
  • [《百万宝贝》观后]To be or not to be?
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [AIGC] 广度优先搜索(Breadth-First Search,BFS)详解
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标
  • [CSS] - 修正IE6不支持position:fixed的bug
  • [Erlang 0129] Erlang 杂记 VI 2014年10月28日
  • [Geek Challenge 2023] web题解
  • [GHCTF 2024 新生赛]ezzz_unserialize
  • [iphone-cocos2d]关于Loading的若干处理和讨论
  • [java]删除数组中的某一个元素
  • [java基础揉碎]关系运算符(比较运算符)逻辑运算符赋值运算符三元运算符运算符的优先级