S/MIME


S/MIME协议全称“安全的多功能互联网邮件扩展”(Secure/Multipurpose Internet Mail Extensions),是通过在RFCl847中定义的多部件媒体类型在MIME中打包安全服务。它提供验证、信件完整性、数字签名和加密。


1.发展历史


S/MIME有三个版本,目前使用的大部分为第三版本。


  • 1995年,第一版 S/MIME 发布。
  • 1998 年,第二版 S/MIME 2 推出,情况开始发生变化。


与版本 1 不同的是,出于希望成为 Internet 标准的考虑,S/MIME 2 被提交到 Internet 工程任务组 (IETF)。通过这一步,S/MIME 从许多可能的标准中脱颖而出,从而成为邮件安全标准的领跑者。S/MIME 2 由两份 IETF 征求意见文档 (RFC) 组成:建立邮件标准的 ​​RFC 2311​​ 和建立证书处理标准的 ​​RFC 2312​​。



  • 1999 年,为增强 S/MIME 功能,IETF 提议使用 S/MIME 版本 3。

​RFC 2632​​  建立在 RFC 2311 基础上,指定 S/MIME 邮件的标准;

​RFC 2633​​  增强了证书处理的 RFC 2312 规范。

​RFC 2634​​  通过向 S/MIME 添加其他服务扩展了总体功能,如安全回执、三层包装和安全标签。 


S/MIME中的加密和签名过程基于RSA实验室开发的PKCS(Public-key Cryptography Standard,公共密钥加密标准)。因此在一定意义上受限美国法律保护。但据其他网站关于S/MIME中使用的RSA秘钥已经在2001年12月过了专利期。



2.功能介绍


  • 邮件加密
  • 消息签名


S/MIME使用application/pkcs7mime 来加密、签名数据。


邮件加密协议S/MIME_Email

3.使用的算法


对称加密:3DES、RC2、RC4


非对称加密:DSS(仅签名)、DH(仅秘钥交换)、RSA(必须支持)


散列算法:MD5、SHA-1



4.关于算法的选择


具体采用什么加密算法需要由发送方去抉择:


  • 若知道接收方支持的算法,选择其中最强的算法;
  • 若不能从历史消息中获悉接收方所支持的算法,同时接受最低要求,选择3DES;
  • 若不能从历史消息中获悉接收方所支持的算法,不接受最低要求,选择RC4。



5.关于CA的支持


S/MIME使用X.509标准的树状认证结构,支持使用权威CA机构。


参考:​​S/MIME简述​

电子邮件加密:PGP 和SMIME加密的区别

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

1、什么是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软件被开发出来。

2、什么是S/MIME加密?

S/MIME​​​​​​​是Secure/Multipurpose Internet Mail Extensions (安全 多用途互联网邮件扩展协议)的缩写,是采用PKI技术的用数字证书给邮件主体签名和加密的国际标准协议。

1992年,MIME(多用途互联网邮件扩展)协议编撰完成,用于互联网邮件服务器和网关之间通信。该标准方法支持非ASCII编码的附件格式,意味着你可以发送附件并保证文件可以送达另一端,但是附件有时会被篡改,无法确保邮件机密性和完整性。

1995年,S/MIME(安全/多用途互联网邮件扩展)协议V1版本开发问世,对安全方面的功能进行了扩展,提供数字签名和邮件加密功能,邮件加密用来保护电子邮件的内容,数字签名用于验证发件人身份,防止身份冒用,并保护电子邮件完整性。

1998年和1999年相继出台V2/V3版本并提交IETF形成系列RFC国际标准。

3、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:企业应建设密钥管理系统来保护电子邮件用户的会话加密密钥。

参考:​​电子邮件加密:PGP 和SMIME加密的区别​

 

OAuth

​Gmail,OutLook邮箱基于Oauth2.0协议授权登录邮箱客户端​