当一封 S/MIME 邮件加密后,如何在计算资源方面最简单地判断该邮件是否带有签名?
如果一封邮件仅仅是被签名了,那么很容易判断。它看起来应该是这样的:
对于带有附加签名的邮件:
Content-Type: application/x-pkcs7-mime; smime-type=signed-data;
name="smime.p7m"
或者:
对于分离的签名
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature";
micalg=SHA1; boundary="----=_NextPart_000_00D2_01CD5850.61030BF0"
在消息头中。
但是,当一条消息被加密时,您无法确定它是否也被签名,因为对于这两种情况(仅加密和加密/签名),Content-Type头是相同的:
Content-Type: application/x-pkcs7-mime;
smime-type=enveloped-data;
boundary="----=_NextPart_000_000D_01CDC82B.98454D80";
name="smime.p7m"
这是否意味着我必须解密消息才能确定它是否也被签名了?目前,似乎在我解密消息之前我甚至无法确定我的消息是否已被签名(因为签名在加密数据中)。或者,S/MIME加密和签名数据仍然具有某些模式,可以让我在不解密的情况下区分已加密/已签名和已加密/未签名的数据(即使我没有解密所需的证书)?