是否可以在消息传输过程中拦截并剥离消息中的数字签名?

Is it possible to intercept and strip the Digital Signature from a message while it is in transit?

好吧,可能是我想多了,但如果我的问题得到解答就太好了。

让我们假设 Alice 通过未加密的通道向 Bob 发送数字签名的文档。消息是"YES"。

如果一个 MITM,假设她也叫 Alice 会怎样拦截消息,剥离原始 Alice 的数字签名,将内容从 "YES" 更改为 "NO" 并使用她自己的私钥,从而将她的 Public 密钥发送给 Bob。

这样可以创建一个新的消息摘要,它将使用重复的 Alice 的私钥和哈希算法进一步加密。此外,她签署了包含重复爱丽丝的 public 密钥和加密哈希的消息。

以上假设是否可能?

数字签名根据某些 public 密钥进行验证。通常,此类 public 密钥是从证书中提取的,这些证书要么附加到消息中,要么通过其他渠道获得。无论哪种方式,收件人都必须检查证书是否与邮件的发件人相对应。

对于安全邮件 (S/MIME),发件人的电子邮件必须在证书的可分辨名称或 subjectAltName 字段中。如果来自 alice@example.org 的电子邮件被 alice@example.com 截获并更改,Bob 将拒绝数字签名 - 在 Alice2 更改邮件但保留原始证书的情况下 - 或者拒绝证书,因为邮件From 字段中的地址与证书 DN/subjectAltName

不匹配

当然,alice@example.org 的证书不应该是自签名的,否则 Alice2 可以创建一个名为 alice@example.org 的新证书并正确签署更改后的文档。

关于您关于 PDF 文档的问题 - Adob​​e 支持 PKI(Public 密钥基础设施)。如果您的证书是由政府信任的证书颁发机构颁发的,那么他们事先不需要您的 public 密钥。他们将从签名字典中提取证书,将证书的 DN 与文档名称 creator/signer/updater 进行比较,并检查信任链。如果证书与您的姓名相匹配(保存在 PDF 文档中)并且由受信任的 CA 签名,那么他们将信任您的签名。