CentOS 5.8
有没有简单的方法可以判断使用哪个特定的公钥来加密电子邮件?
我的电子邮件网关无法解密传入的 S/MIME 消息,并且我怀疑远程发件人可能使用了不再使用且与我的私钥不匹配的过时公钥。
有没有一种简单的方法可以让我判断发送者使用的公钥是否与我拥有的私钥匹配?
同样,有没有办法对 PGP 加密电子邮件执行此操作?
理想情况下,我正在寻找可以通过 Linux 命令行或本机 Windows 工具进行检查的东西,而无需在用户桌面或将所有密钥加载到我的桌面(以防多个用户发生这种情况)。
答案1
您可以使用 DJIGZO 电子邮件加密网关 S/MIME 工具 (www.djigzo.com) 来执行此操作,但可能只是为了这个目的而安装它有点小题大做(它需要 Java)
要查看消息的详细信息,请使用:
java -cp djigzo.jar mitm.common.tools.SMIME -r -in SOME-MIME-MESSAGE.eml
输出片段示例:
=============================== 加密消息
加密算法:RC2,密钥大小:128
收件人 0
.....CN=MITM 测试 CA,L=阿姆斯特丹,ST=NH,C=NL/115FCD741088707366E9727452C9770//1.2.840.113549.1.1.1
==============================
加密接收者显示为发行者/序列号对
您可以使用 DJIGZO For Android,而不是安装网关。例如,您可以使用它从 SD 卡打开 MIME 消息 (.eml)。即使无法解密消息,如果未找到密钥,您也可以通过打开加密层来查看加密收件人,长按加密层,然后选择“查看加密收件人”。这将为您提供所有发行者/序列号对的列表,或消息加密所用证书的“主题密钥标识符”。
Android 应用程序可从以下网址免费下载:
https://play.google.com/store/apps/details?id=com.djigzo.android.application
当然,你需要一个 Android 设备来实现这一点 :)
答案2
对于 GnuPG,看起来你可以用--list-packets
这种方法,但方式有点迂回。根据如何知道 GPG 加密邮件的所有收件人, 你可以做
gpg --list-packets $FILENAME
每行以 开头:pubkey enc packet
是一个收件人公钥。
这将为您提供加密给定文件的密钥 ID 列表,您可以将其与您现有的密钥 ID 进行匹配。请注意,这将显示加密密钥ID,不一定与正常显示的密钥ID相同(它可能是子密钥)。