我正试图围绕公钥密码体制如何真正以安全的方式工作。
从我可以收集的内容中,您可以访问example.com并下载他们的PGP / GPG公钥并将其添加到您的钥匙环中。 然后,他们向您发送一个用他们的私钥签名或用您的公钥encryption的文本文件(或什么) 你可以validation它的真实性和/或解密。
如果攻击者修改了在线的网站,并在他们的名下签了自己的假钥匙,并将其放在钥匙圈中,该怎么办? 然后,假设它是有效的,继续validation和解密被篡改的文件。
我假设我正在谈论MITM篡改整个networkingstream量之间,或类似的东西。 我只是不确定如何“签署”可以防止关键和数据,如果他们在过境伪造。
您所描述的场景需要信任networking中的多重失败:
攻击者必须妥协密钥服务器,并在那里放置公钥的假副本。
大概如果你偏执地使用PGP,你会让其他人签名你的密钥,所以攻击者必须让这些人签署假钥匙(或者污染整个钥匙链)。
其他用户将不得不接受妥协的公钥以供使用
真正的偏执狂只是把钥匙从他们的主人身上拿走。 正常的偏执狂(像我一样)在签名时只坚持这一点。
攻击者将不得不妥协数据stream(解密它 – 容易的部分,因为它是用被盗密钥encryption的),修改它,重新encryption并用发送者的私钥签名
据推测,如果你偏执到使用PGP,你坚持要求你收到一切签名。
签名是使用发件人的私钥生成的,因此攻击者可能会损害发件人的密钥,或者让您接受公钥的妥协版本,您将使用该公钥来检查伪造的签名。
关于这个问题有一本很好的书 – “ 应用密码学” ( Applied Cryptography) ,它更详细地解释了这个系统需要折衷的种类。
一般来说,在你信任之前你需要validation密钥。
如果您已经概述了这一点,那么只有在通过安全通道(例如经过validation的SSL)授予您的密钥时,或者以您信任的其他方式(通过不同的方式validation,例如)。
一般来说,对于PGP来说,这就是为什么有密钥签名会议的原因,所以你可以亲自看到指纹,validation他人的ID,然后把公钥本身在线。