在企业中利用S/MIME提供邮件沟通中的安全性,能够给企业信息安全带来极大益处。那么在Office 365的应用中,如何实现S/MIME呢?
对于用户来讲,Office 365的目前的Outlook客户端,无论是桌面版的还是移动端版本的,都支持S/MIME功能。使用Web方式访问邮箱,也是通过浏览器插件实现S/MIME的。
但是,上述实现,需要Exchange Online的管理员预先在组织中对S/MIME进行配置后才可以进行工作。
一、在组织中启用S/MIME
为组织启用S/MIME功能,根据签名证书的申请不同,可能有不同的部署方式。如果一个企业的数字证书是通过Windows Server的证书颁发机构(CA)申请的,并且通过活动目录来管理企业内的用户。那么建议使用Azure AD连接器实现本地AD和AAD的同步。
通过Azure AD连接器,可以将用户的证书同步到Office 365中,从而保证用户证书自身的安全和可靠性。后续描述的过程均在该微软建议模型下实现。
1、为用户在活动目录中发布证书
如果Windows Server CA是企业CA的,那么可以通过组策略配置为用户自动审批颁发证书,并在活动目录中自动发布。如果是通过第三方申请的证书,则需要管理员,手动为用户在活动目录中进行发布。
默认情况下,活动目录用户的userCertificate和userSMIMECertificate属性均为未设置状态。
发布的证书列表也为空,可以通过从已经安装到当前证书存储中的证书导入,也可以从证书文件添加。
如前所述,在活动目录中配置了组策略,自动为用户颁发证书,那么将会自动把该用户证书发布到活动目录中。当然,用户如果手动进行证书申请,由于是企业CA,所以证书也会被自动发布到活动目录。
此时,在用户的userCertificate中将出现该证书的信息。由于无论是userCertificate属性,还是userSMIMECertificate属性,证书中存在预期目的为安全电子邮件,那么该证书同步到Office 365后,都可以用于进行S/MIME邮件加密。
2、在Exchange Online中设置虚拟证书集合
Exchange Online中的虚拟证书集合用于验证S/MIME证书的真实性和有效性。该集合包含了需要使用S/MIME进行邮件加密和数字签名的用户证书的证书路径,即从根证书到用户证书整个路劲的所有CA证书。其操作方式分为两步:
1)将所有CA证书通过证书控制台或PowerShell序列化为SST文件
该序列化过程是直接从证书存储中将证书导出为SST文件,由于通常不会直接使用根CA颁发用户证书,所以会有多个CA证书一起导出。因此,在证书控制台中选中所有要导出的证书,在右键菜单中选择“导出”,并在向导中选择导出文件格式为SST格式。
但是,如果需要导出单个证书为SST格式,则需要使用PowerShell来完成。
首先,要通过Get-ChildItem获取确认并获取证书的存储路径,然后将该路径下的证书导出为SST。如果不知道证书的具体路径标识,可以通过从cert:\根路径逐层查找来定位。
Get-ChildItem -Path cert:\
Get-ChildItem -Path cert:\CurrentUser\Root\CEF756B1298555F3D6DB358842D581D2522018E7
定位到所需证书后,即可将其进行导出。
Get-ChildItem -Path cert:\CurrentUser\Root\CEF756B1298555F3D6DB358842D581D2522018E7 | Export-Certificate -FilePath “d:\ca.sst” -Type SST
2)将SST文件导入到Exchange Online证书中
该操作需要通过PowerShell来实现:
Set-SmimeConfig -SMIMECertificateIssuingCA ([System.IO.File]::ReadAllBytes(‘d:\ca.sst’))
完成后,可通过使用Get-SmimeConfig进行确认。
Get-SmimeConfig
Office 365组织中支持S/MIME的配置至此完成。
二、使用Outlook桌面客户端收发S/MIME邮件
由于在活动目录中配置了证书发布,同时将证书通过Azure AD连接器同步到Office 365中了。所以,正常情况下在同步完成,且本地缓存地址列表过期更新后,将无需线下交换证书。但是如果为完成同步,或缓存为过期更新地址列表信息,那么用户用于加密的收件方证书将无法被发件方获取到,从而导致无法进行加密邮件发送。此时往往需要提前交换证书。可以通过只发送数字签名的邮件,进行证书交换。
1、在Outlook桌面客户端中启用S/MIME。
默认情况下,Outlook桌面客户端是没有启用S/MIME的。可以通过在Outlook的“文件”菜单中,点击“选项”。
在“Outlook选项”窗口中,选择“信任中心”,点击右侧“信任中心设置…”按钮。
在“信任中心”里,定位到“电子邮件安全性”,然后在右侧点击“设置”按钮。
在弹出“更改安全设置”对话框中,选择安全设置名称,指定“签名证书”和“加密证书”,此两项全部先择之前为用户颁发并发布在活动目录中的证书。
连续点击“确定”按钮,逐层关闭窗口,完成S/MIME的配置,返回Outlook主窗口。
2、发送S/MIME签名
如果要对邮件进行签名,则只需在发送邮件前,点击“选项”,在“选项”菜单中点击“签署”按钮。然后点击“发送”即可。
在收件人使用Outlook桌面客户端收到邮件打开后,会在邮件左上角出现签名徽标,点击签名徽标,将显示签名信息,并标识签名是否有效可信任。点击“详细信息…”按钮,将显示签名信任的详细信息。
3、发送加密邮件
如果要对邮件进行加密,则只需在发送邮件前,点击“选项”,在“选项”菜单中点击“加密”按钮,在下拉菜单中选择“使用S/MIME加密”。然后点击“发送”即可。
在收件人使用Outlook桌面客户端收到邮件打开后,会在邮件左上角出现加密徽标,点击加密徽标,将显示加密的详细信息。