PKI: 实现和管理电子安全如果你曾经在Web上开展过电子商务,那么很有可能曾经和一些Web站点进行过安全的数据交换——例如你的名字、口令、信用卡号码、订单信息等——所有这些信息都是通过Internet安全传送的,它们都用你的计算机和那个Web站点之间共享的一个密钥加了密,这样其他人就不能读取这些信息了。
这个密钥是如何得到的呢?
除非你的计算机针对每一个你可能要访问的Web站点都预装了一个秘密密钥(然而你的计算机并没有这么做),或者至少预装了访问某个中心密钥服务器的秘密密钥(然而中心密钥服务器不止一个),否则你就需要利用某种方式和该Web站点建立这个共享的秘密密钥。你的计算机不能发送这个秘密密钥,否则其他人就有可能截获它。你的计算机和该Web站点需要以某种方式,通过报文交换最终得到那个秘密密钥,这种方式应该能够确保别人无法计算出这个秘密密钥——这看起来相当困难,因为在你的计算机和该Web站点之间事先没有任何共享秘密。
25年以前,学术界的科学家们有了非凡的发现,他们发现无须共享任何秘密就可以加密报文,而从事保密斗争的研究者早在30年前就发现了这一点。他们指出,和传统的使用同一个(same)密钥进行加密和解密的方式不同,可以用一个密钥加密而用另外一个不同的密钥解密。那个加密密钥可以公开,就像电话号码一样。而那个解密密钥要保持私有,就像电话一样。任何人都可以打电话给你,(但愿)只有你能够接电话。
这一发现被称为公钥密码学(Public Key Cryptography,PKC),它回答了你的计算机如何同一个Web站点建立共享秘密密钥的问题。实际上,你的计算机会查找该Web站点的公开加密密钥,并且用该公钥加密一个随机生成的秘密密钥。该Web站点随后用它的私有解密密钥对上述数据进行解密,恢复出你的计算机所生成的那个秘密密钥。你的其余报文就用这个共享的秘密密钥进行加密。
然而,还有一个本质的问题:你的计算机如何知道它查找的正是该Web站点的公钥而不是别人的?(想象一下,在电话簿上你的名字之后列了别人的电话号码该怎么办?)这就是公钥基础设施(Public Key Infrastructure,PKI)所要解决的问题,那就是匹配公钥和其拥有者。
公钥密码学是其中容易的部分。而公钥基础设施,或者说PKI,是我们今天所面临的挑战。就像电话号码一样,人们的公钥偶尔也会变化;而且就像电话号码簿一样,有许多公钥发布者,它们分别服务于不同的社群和不同的用途。应该信任哪一个发布者,用于何种用途?如果一个发布者不再被信任了怎么办?如何知道某人的公钥是否仍然正确?随着数字签名这一PKI的主要应用越来越普及,所有这些问题也就变得特别地重要。
本书将引导你了解PKI涉及的基本构件和主要问题、需要解决的问题以及可用的解决方案。作者务实、平易的介绍方式使得本书对PKI的介绍既意味深长又通俗易懂——这一切都得益于多年来从事计算机网络技术规划和设计所取得的经验。我们希望你会喜欢这本书——希望下一次当你通过因特网安全地发送用共享密钥加密的数据时,能确切地知道密钥是怎么得到的以及诸如此类的更多内容。
