2. 身份验证

身份验证是一项艰巨的任务 - 计算机无法知道它们是“三楼打印机旁边的计算机”还是“运行 www.dotcom.com 销售的计算机”。而这些是人类关心的事情 - 人类不在乎计算机是否是“10.10.10.10”,而这正是计算机所知道的。

然而,如果计算机可以信任人类告诉它要查找哪个计算机地址 - 以数字或名称形式 - 那么计算机就可以验证彼此实际上是该地址的计算机。这类似于使用邮局 - 我们想知道“某地大街100号”是否是我们朋友 Sally 的所在地,但邮局只想知道包裹寄到哪里。

最简单的身份验证形式是在两台计算机首次通信时交换秘密信息,并在随后的每次连接时检查它。计算机之间的大多数交换在计算机术语中发生在很长一段时间内,因此它们倾向于在每次连接期间以小方式执行此操作 - 就像您在电话通话中每次说话时都检查与您交谈的人是否仍然是那个人一样。(Sally,是你吗?是的。很好,我刚才跟你说孩子们的事……还是你吗?)

这听起来可能有点偏执,但是这种验证系统可以抑制所谓的“中间人”攻击 - 其中第三方试图“捕获”连接并插入他们自己的信息。当然,这依赖于第一次通信没有被拦截。

公钥加密(见下文)是另一种常见的身份验证方式。它不验证发送者,但它确实验证接收者 - 如果双方交换公钥,并通过一些独立的方式验证他们拥有的密钥是他们希望发送给的对方的密钥,那么它会验证双方。