S/MIME电子邮件加密

先决条件

目前有两种广泛使用的电子邮件加密标准。

  • OpenPGP/GnuPG在个人中很受欢迎。

  • S/MIME/X.509大多被企业使用。

如果您不确定选择哪一种,应使用 OpenPGP,请参阅`here<../openpgp/index.html>`_ (不适用于 Nitrokey HSM 2,不过 Nitrokey HSM 2 目前支持 S/MIME/X.509 标准,因此本指南的其余部分适用于 HSM 2 和其他 Nitrokeys)。本页介绍 S/MIME 电子邮件加密的用法。

You need to purchase a S/MIME certificate (e.g. at CERTUM) or may already got one by your company. Furthermore, you need to install OpenSC on your System. While GNU/Linux users usually can install OpenSC over the package manager (e.g. sudo apt install opensc on Ubuntu), macOS and Windows users can download the installation files from the OpenSC page.

备注

使用64位系统(标准)的Windows用户需要同时安装32位和64位版本的OpenSC!

导入现有的密钥和证书

下面的说明是基于OpenSC的`wiki <https://github.com/OpenSC/OpenSC/wiki/OpenPGP-card>`__。我们将假设你已经得到了一个作为.p12文件的密钥-证书对。如果你有一个单独的密钥和证书文件,请看一下wiki页面。

要打开 Windows 命令行,请按下 Windows 键和 R 键。现在在文本字段中输入 "cmd.exe",然后按回车键。要在 macOS 或 GNU/Linux 上打开终端,请使用应用程序搜索(例如 macOS 上的 spotlight)。

To make these commands as simple as possible, the .p12 file needs to be in your home folder. On Windows this is usually C:\Users\yourusername and on macOS and GNU/Linux system it will be /home/yourusername. If you do not store the .p12 file there, you have to adapt the path in the commands below. Please plug in the Nitrokey before submitting the commands.

假设你的密钥证书文件是 "myprivate.p12",Windows的命令看起来像这样。

"C:\Program Files\OpenSC Project\OpenSC\tools\pkcs15-init" --delete-objects privkey,pubkey --id 3 --store-private-key myprivate.p12 --format pkcs12 --auth-id 3 --verify-pin
"C:\Program Files\OpenSC Project\OpenSC\tools\pkcs15-init" --delete-objects privkey,pubkey --id 2 --store-private-key myprivate.p12 --format pkcs12 --auth-id 3 --verify-pin

而在macOS和GNU/Linux上,它将是

$ pkcs15-init --delete-objects privkey,pubkey --id 3 --store-private-key myprivate.p12 --format pkcs12 --auth-id 3 --verify-pin
$ pkcs15-init --delete-objects privkey,pubkey --id 2 --store-private-key myprivate.p12 --format pkcs12 --auth-id 3 --verify-pin

这两条命令将密钥-证书对复制到槽2(解密邮件需要)和槽3(签名需要)。在两个系统上的输出看起来都是这样的。

img1

请注意,会有一些可以安全忽略的错误信息(见上面的输出例子)。现在你已经在Nitrokey上加载了钥匙-证书对。

使用方法

你可以在这些网页上找到有关使用的进一步信息。