以下是如何使用openssl smime
? 签署消息,根据文档
openssl smime -sign -in in.txt -text -out mail.msg -signer mycert.pem \
-inkey mykey.pem -certfile mycerts.pem
但是为什么会有-signer
带证书的密钥——难道私钥传递-inkey
还不足以进行消息签名吗?这难道不只是一种通常的非对称加密方案吗?我的私钥用于消息签名,而我的证书(即与我的私钥相对应的签名公钥)用于我的对方加密消息?
答案1
据我所知,这是为了让第二方验证您的签名——以防它没有该证书。
答案2
这比那稍微复杂一些。
虽然从本质上讲,您可以使用随机密钥签署消息,但如果没有证书标识,它将立即被验证方视为无效。
您需要一个带有适当标志的证书才能创建合法签名。如果是透明签名(包装),接收方将不需要您的证书来读取消息内容或评估消息完整性,但是,它仍然需要它来建立真实性。