数字签名有什么用?

How are digital signatures useful?

按照我的理解,如果A和B想通话,而X是中间的人,那么X可以删除B的public密钥,让A相信X的public密钥实际上是 B 的 public 键。现在,每当 A 向 B 请求数字签名时,消息实际上会发送给 X。X 将使用他的私钥对摘要进行签名,然后 A 将使用 X 的 public 密钥解密,认为是 B签名了。

这是典型的中间人攻击场景,关于数字签名在这种情况下如何发挥作用似乎没有明确的解决方案。

我的 question:1) 有没有什么方法可以让 A 和 B 即使在中间有 X 的情况下也能进行通信。 2)如果不是,那么为什么数字签名有用(在什么假设下)。假设可以很简单: X 只能查看 public 键但不能修改它们(X 不能将 B 的 public 键转换为 X 的 public 键)。

假设 A 是爱丽丝,B 是她的银行。银行获得了一个 public 密钥证书,该证书由爱丽丝已经知道其密钥的受信任机构签署。该证书证明某个 public 密钥实际上属于该银行。当 Alice 尝试连接到她的银行时,如果 Xavier 试图将银行的密钥换成他自己的,Alice 将不会信任 Xavier 的密钥,因为它没有被证明属于银行。如果 Xavier 试图替换 Alice,他将无法以 Alice 身份登录。他没有她的密码,也拿不到,因为他无法成功冒充她的银行。