我试图围绕Public Key Cryptography如何以安全的方式真正发挥作用.
根据我的收集,您可以访问example.com并下载他们的PGP / GPG公钥并将其添加到您的密钥环中.然后,他们会向您发送使用您的私钥签名的文本文件(或诸如此类)或使用您的公钥加密;并且您可以验证其真实性和/或解密它.
如果攻击者修改了传输中的网站并在他们的名下签了自己的假密钥,并将其放入密钥环,该怎么办?然后你继续验证和解密被篡改的文件,假设它是有效的.
我假设我在谈论MITM篡改之间的整个网络流量,或类似的东西.我只是不确定“签名”如果能够在传输过程中伪造密钥和数据,它们是如何防范的.
解决方法
您描述的方案需要Web of Trust中的多重故障:
>攻击者必须妥协密钥服务器,并在那里放一个伪造的公钥副本.
据推测,如果你有足够的偏执狂使用PGP,你可能会有其他人签署你的密钥,因此攻击者必须让这些人签署假密钥(或污染整个密钥链).
>其他用户必须接受受损的公钥才能使用
真正的偏执狂只能从他们的主人身上获取钥匙.在签署密钥时,常规的偏执狂(像我一样)只会坚持这一点.
>攻击者必须妥协数据流(解密它 – 容易的部分,因为它使用其受损密钥加密),修改它,重新加密并使用发送者的私钥对其进行签名
大概如果你有足够的偏执使用PGP,你坚持要你收到签名的一切.
签名是使用发件人的私钥进行的,因此攻击者破坏了发件人的密钥,或者让您接受他们用来检查虚假签名的公钥的受损版本.
有一本关于这个主题的精彩书籍 – Applied Cryptography – 它解释了这个系统崩溃所需的各种妥协.