一封数字签名邮件

Entropy Tree Lv4

使用outlook邮箱发送一封带有数字签名的邮件

Digital Signature(数字签名)Electronic Signature(电子签名)的一种特定类型, 是一种改进型的更加可信的电子方式签名。

数字签名是使用数字证书来验证签名者的身份, 并通过密码算法将签名者身份绑定到文档中来证明签名行为的不可否认, 已签名文档无需包含签名过程审计报告, 签名者的身份验证则由证书颁发机构(CA)或信任服务提供商(TSP)完成。

1.下载数字证书

数字证书需要先到网站上申请下载, 这里提供了一个申请90天免费证书的网站 证签安全电子邮件证书 - CerSign

按照网站上提示完成申请以及邮箱验证即可。免费邮件证书大约几分钟后就会签发, 点击下载证书设置保护口令即可

2.在邮箱客户端中设置

outlook邮箱中导入数字证书: 文件→选项→信任中心→电子邮件安全性, 然后设置加密以及数字签名。在默认设置中选择签名证书和加密证书(需要先找到之前下载好的证书文件双击运行并导入证书)

3.发送邮件进行测试

选择收件人(可以选择本地的另外一个邮箱)后输入邮件内容发送, 通过outlook客户端查看邮件内容会有一个额外的数字签名的图标, 点击该图标能够查看到发件人的数字证书信息。另外经过加密的邮件还会有一个🔒的图标, 在收件人拥有发件人的公钥时, 就能够进行解密获取正文内容。其他情况下, 则只有一个加密的smime.p7m文件(无法直接获取正文内容)

4.关于公钥和私钥的一些简单理解

公钥是一种非对称加密算法, 一般都是公布给对方用于加密解密

私钥是一种对称加密算法, 一般不对任何人公开, 同样可用于加密解密

公钥和私钥是成对出现的, 且唯一对应

思路1:确保邮件只能由特定的收件人读取

收件人的公钥提前就公布给所有发件人用于进行加密但不能进行解密, 收件人的私钥则用于解密来自对应的公钥加密的邮件但不能进行加密(这也是一种非对称加密)

思路2:确认发件人的邮件未被篡改

发件人的公钥提前就公布给所有收件人用于进行解密, 发件人的私钥则用于加密邮件

具体流程:

发件人使用自己的私钥先对邮件加密一个hash值, 再用来自收件人的公钥对内容及hash值二次加密, 然后发送给收件人

收件人获取到了二次加密的邮件后, 先使用自己的私钥解密对应的公钥获取内容及加密的hash值, 再用来自收件人的公钥二次解密对应的私钥获取原始的hash值, 对内容进行hash计算, 如果计算的结果与之前hash值解密后的内容相同, 则说明内容未被篡改

需要注意的是:公钥和私钥的用法不是固定的, 在收件人和发件人两种情景下, 它们的用法恰恰是相反的

  • 标题: 一封数字签名邮件
  • 作者: Entropy Tree
  • 创建于 : 2022-11-10 15:35:56
  • 更新于 : 2023-04-01 07:55:52
  • 链接: https://www.entropy-tree.top/2022/11/10/digital-signature/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论