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

电子邮件加密:PGP 和S/MIME加密的区别

为什么80%的码农都做不了架构师?>>>   hot3.png

电子邮件通常基于明文协议传输,没有加密和验证服务,攻击者可在邮件传输的任意节点截获数据或篡改内容,造成电子邮件数据泄露或身份仿冒。PGP加密和S/MIME加密都被用于电子邮件加密和验证,但二者在多个方面存在差异。

 

什么是PGP加密?

PGP(全称:Pretty Good Privacy,优良保密协议),是一套用于信息加密、验证的应用程序,可用于加密电子邮件内容。PGP本身是商业应用程序;同类开源工具名为GnuPG(GPG)。PGP及其同类产品均遵守OpenPGP数据加解密标准。

菲利普·齐默曼(Philip R. Zimmermann)在1991年创造了第一个版本的PGP,1997年7月,PGP Inc.与齐默尔曼同意IETF制定一项公开的互联网标准,称作OpenPGP(RFC 4880),任何支持这一标准的程序也被允许称作OpenPGP。自由软件基金会开发的OpenPGP程序叫做GnuPG(GPG),也陆续有一些商用OpenPGP软件被开发出来。

 

什么是S/MIME加密?

S/MIME是Secure/Multipurpose Internet Mail Extensions (安全多用途互联网邮件扩展协议)的缩写,是采用PKI技术的用数字证书给邮件主体签名和加密的国际标准协议。1992年,MIME(多用途互联网邮件扩展)协议编撰完成,用于互联网邮件服务器和网关之间通信。该标准方法支持非ASCII编码的附件格式,意味着你可以发送附件并保证文件可以送达另一端,但是附件有时会被篡改,无法确保邮件机密性和完整性。1995年,S/MIME(安全/多用途互联网邮件扩展)协议V1版本开发问世,对安全方面的功能进行了扩展,提供数字签名和邮件加密功能,邮件加密用来保护电子邮件的内容,数字签名用于验证发件人身份,防止身份冒用,并保护电子邮件完整性。1998年和1999年相继出台V2/V3版本并提交IETF形成系列RFC国际标准。

 

PGP 和S/MIME加密的区别

S/MIME和PGP都是用于通过互联网对消息进行身份验证和加密保护的协议,都使用公钥加密技术进行电子邮件签名和加密。而主要区别在于:

公钥可信度: S/MIME标准中,用户必须从受信任的证书颁发机构申请X.509v3数字证书,由权威CA机构验证用户真实身份并签署公钥,确保用户公钥可信,收件人通过证书公钥验证发件人身份真实性。而PGP不提供强制创建信任的策略,由发件人自己创建并签署自己的密钥对,或为其他通信用户签署公钥增加其密钥可信度,没有任何受信任的权威中心去验证核实身份信息,每个用户必须自己决定是否信任对方。

加密保护的范围:PGP的诞生是为了解决纯文本消息的安全问题,而S/MIME不仅保护文本消息,更旨在保护各种附件/数据文件。

集中化管理:从管理角度来看,S / MIME被认为优于PGP,因为它具有强大的功能,支持通过X.509证书服务器进行集中式密钥管理。

兼容性和易用性:S/MIME具备更广泛的行业支持,S/MIME协议已经内置于大多数电子邮件客户端软件中,如Outlook、雷鸟和iMail等都支持S/MIME加密。从最终用户的角度来看,S/MIME的易用性也优于PGP,因为PGP需要下载额外的插件才能运行,S / MIME协议允许大多数供应商发送和接收加密电子邮件而无需使用其他插件。

因此,总体来说S/MIME标准的适用性更加广泛,能够更加全面保护电子邮件安全与可信。美国国家标准技术研究院发布的“可信邮件”标准中,就明确地推荐联邦机构使用S/MIME保护邮件安全:

5-4: 对于联邦使用,OpenPGP不是首选的消息加密技术。应该使用S/MIME和由已知CA签发的证书。

4-11: 使用S/MIME签名来确保邮件的真实性和完整性。

7-2:企业应建设密钥管理系统来保护电子邮件用户的会话加密密钥。

 

密信(MeSince)是一款基于S/MIME标准的免费加密邮件客户端,全球首个无缝支持证书加密邮件的客户端,创新实现自动配置加密证书、自动交换公钥、自动加密邮件,轻松让电子邮件全程安全加密,解决S/MIME加密的易用性和用户体验问题,同时能够与所有支持S/MIME协议的电子邮件客户端软件兼容互通,推动S/MIME电子邮件加密的普及应用,解决邮件泄密、邮件篡改和钓鱼邮件等电子邮件安全和信任问题!

转载于:https://my.oschina.net/wossl/blog/2993404

相关文章:

  • 4.2Python数据类型(2)之布尔类型
  • 新年购机首选,全能旗舰华为Mate 20 X让你大胆出去high!
  • 一次 Java 内存泄漏排查过程,涨姿势
  • git删除忽略文件.idea
  • 分块⑨题
  • Django admin 后台管理
  • 完美解决 No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android...
  • 使用javascript连接mqtt协议(自动重连问题)
  • serde
  • 设计模式的学习(10)策略模式
  • RabbitMQ 发布订阅
  • json对象 按key排序
  • 蜂鸟运单系统架构及实现
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • PythonR量化 金融之路
  • Consul Config 使用Git做版本控制的实现
  • css选择器
  • eclipse的离线汉化
  • ES6语法详解(一)
  • java8 Stream Pipelines 浅析
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • LeetCode算法系列_0891_子序列宽度之和
  • Markdown 语法简单说明
  • nginx 配置多 域名 + 多 https
  • python学习笔记 - ThreadLocal
  • windows-nginx-https-本地配置
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 力扣(LeetCode)56
  • 排序算法学习笔记
  • 前端面试总结(at, md)
  • 区块链将重新定义世界
  • 算法---两个栈实现一个队列
  • 问题之ssh中Host key verification failed的解决
  • 我从编程教室毕业
  • 一个SAP顾问在美国的这些年
  • HanLP分词命名实体提取详解
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​ubuntu下安装kvm虚拟机
  • ​人工智能书单(数学基础篇)
  • #14vue3生成表单并跳转到外部地址的方式
  • (zt)最盛行的警世狂言(爆笑)
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (四)Linux Shell编程——输入输出重定向
  • (转) Android中ViewStub组件使用
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • /dev/sda2 is mounted; will not make a filesystem here!
  • @Conditional注解详解
  • @RequestMapping-占位符映射
  • [BetterExplained]书写是为了更好的思考(转载)