答案1
当使用弱算法时,这是否会使证书私钥面临风险?
不。私钥没有经过哈希处理,也从未以这种方式发布 - 相反消息数据经过散列处理,并使用私钥对该散列进行签名。
但即使私钥是经过实际散列并发布散列后,密钥仍然足够长,因此仍然不可能从 SHA1 散列中猜出它。
SHA1 和 MD5 的主要弱点在于从不同的数据创建相同的哈希值 - 而不是从哈希值中恢复原始数据(据我所知,这仍然只能通过蛮力来实现)。
因此,这里的风险是,有人可能获取您的签名消息,然后创建自己的特殊格式的消息,该消息具有不同的文本但仍然与旧签名匹配(因为消息数据哈希值为相同值)。
为什么 Outlook 客户端 S/MIME 设置使用 SHA1 作为默认哈希算法?
我只是猜测,但很可能只是为了防止您的收件人仍在使用不支持验证基于 SHA256 的签名的客户端。出于同样的原因,它过去默认使用 3DES 加密。
(PGP 密钥通常指示密钥所有者的软件支持哪些算法,但对于 S/MIME 来说,这并不常见,因为 S/MIME 证书通常是在不知道它将与哪个邮件客户端一起使用的情况下颁发的。)
答案2
您可以在 Outlook 中设置默认哈希算法:
文件 > 选项 > 信任中心 > 信任中心设置 > 电子邮件安全 > 设置 > 哈希算法。
如果可用算法列表中只有 SHA1,则表示该证书仅支持 SHA1。请咨询您的提供商,了解您获得的证书是否还支持其他哈希算法(SHA512、SHA384、SHA256)。