在信息安全尤其重要的今天,增强邮件的安全性尤其重用。特别是在企业中,为了保障邮件的机密性、完整性和确认性是非常关键的。在日常企业中,可能会碰到如下场景——
张三和李四之间通过邮件交换一个关于公司战略的机密信息。需要保证该邮件能够正常送达的情况下,内容不被泄露,也就是说即使被人截获了该邮件,也不可能从中获取邮件的真是内容,这就需要邮件进行加密。
邮件的内容不能被人篡改,即使被人篡改了,也要非常容易的标识出邮件被篡改过。
必须要确认邮件是从张三发出的,不能是由其他人冒充张三发出的。并且,一旦确认是张三发出的,还应该确保张三无法抵赖。
为了满足上述需求,需要一套针对邮件的安全解决方案来支持。S/MIME就是一种支持邮件加密和数字签名的协议,即安全/多用途互联网邮件扩展协议。
Ø 加密:保护邮件的内容不被泄露
Ø 数字签名:验证发件人的身份,保证邮件的完整性(防篡改)
一、S/MIME实现邮件加密
由于SMTP本身是不提供对邮件的加密保护的,所以基于SMTP的邮件传输和存储都是明文的。因此,任何人只要截获了邮件都可以阅读其中的内容。通过S/MIME对邮件进行加密之后再进行发送,这样可以保证邮件的内容无法在被截获时被其他非接收人阅读。
S/MIME的邮件加密提供了如下两种安全服务:
1、保障邮件的机密性
邮件加密用于保护邮件的内容,只有预期的收件人可以阅读邮件内容。由于内容始终保持加密状态,任何可能接收和阅读到邮件的其他人都无法获知邮件的真实内容。这种加密是基于邮件本身实施的,所有无论在传输还是在存储的时候,都能够为邮件提供机密的安全保障。
然而,对于如基于TLS的SMTP,只能对邮件在SMTP传输代理间转发时进行加密,保证其在传输过程中的机密性。而诸如BitLocker之类的本地加密技术,只能保证邮件存储在本地的安全性,而无法保证邮件传递过程的安全。
2、数据完整性
虽然邮件的数据完整性更多的是靠数字签名来保障的。但是,加密也可以从某种程度保证数据的完整性。因为,加密的内容无法被阅读,也就无法被篡改。反之,一旦被篡改,或者丢失数据,那加密的数据将无法正常解密还原成原内容。因此,无法被正常解密的S/MIME邮件都可以视为不完整的邮件。
二、S/MIME实现邮件签名
虽然邮件加密能够确保邮件的机密性,但是加密邮件不能提供对发件人的身份进行验证和识别的机制。从而导致,无法确认一封邮件是否确确实实是由发件人发出的。所以,为了保证邮件来源的真实性,还需要通过数字签名对邮件进行标记,从而让接收方能够确定邮件发送者的真实性。并且,还能够保证发件人无法拒绝承认发送了该邮件。
S/MIME的邮件数字签名能够提供如下服务:
1、身份验证
数字签名类似于传统在纸张等物理事物上进行的签名标记,作用在数字信息上。其通过能够唯一识别用户身份的数字证书,对邮件进行签名。一旦签名确认,则无法更改。因此该邮件可以通过验证签名的方式,对于数字证书的唯一持有者进行身份验证。
2、不可拒绝
数字签名的唯一性可以防止签名证书的持有者对签名的抵赖。因此,数字签名提供的身份验证是一种不可被抵赖的签名。S/MIME的这一功能,为SMTP协议增加了邮件发送的确切性和可信性。
3、数据完整性
数字签名通过针对邮件进行Hash处理,产生签名信息。接收方收到邮件后,做同样的Hash处理,对比先后两次的Hash值。如果邮件在传输过程中被篡改了,或者数据不完整。那么两次的Hash值将不相同。如果未被修改,数据是完整的,则两次的Hash值是相同的。这个Hash值实质就是数字签名的结果。
数字签名虽然能够保证数据的完整性和真实性,但无法保证数据不被泄露,因此在实际应用中,通常是将S/MIME的数据加密和数字签名这两个功能结合使用的。
三、S/MIME协议的广泛性
S/MIME协议虽然不是一个IETF标准,同时其使用RSA的密钥交换,但是RSA的专利在20多年前已经到期,所以它的使用几乎不会被制约。而且,S/MIME是从PEM和MIME发展而来,其采用的加密和身份验证机制是使用的标准的x.509的证书。因此其技术带有通用性,从而得到大多数厂商的支持,并在众多的产品中被应用,也就是说该功能并非是Office 365或微软专有。
通过S/MIME加密和签名的邮件,可以被目前几乎所有的主流SMTP邮件系统支持,也能被众多的邮件客户端支持。所以,采用S/MIME增强邮件安全性其实现可行性和技术成熟度都是非常高的。