【发布时间】:2012-11-10 19:29:00
【问题描述】:
在加密邮件时,判断 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 加密和签名数据仍然有一些模式可以让我区分加密/签名和加密/未签名数据而无需解密(如果我没有解密证书,这甚至可能)?
【问题讨论】:
-
如果用户签名,然后加密数据,他可能想隐藏消息已签名的事实,这与您想要做的相反。
-
我不这么认为。一些电子邮件客户端就是这样工作的。
-
如果消息被加密在它被签名之后,唯一知道它已经被签名的方法就是首先解密它。请参阅我的answer,了解为什么这是一个坏主意。
-
感谢您的评论,如果我需要加密或签署电子邮件,我会考虑它。但是,我没有实施安全系统。我只需要在我的电子邮件客户端中显示签名和加密的电子邮件。所以我只需要处理其他邮寄给我的邮件。
标签: email encryption digital-signature smime