Page 68 - Web性能权威指南
P. 68
以将其包含在 SessionTicket 扩展中。这样,所有会话数据只保存在客户端,而由于
数据被加密过,且密钥只有服务器知道,因此仍然是安全的。
我们这里所说的会话标识符和会话记录单机制,也经常被人称为“会话缓存”或“无
状态恢复”机制。无状态恢复机制的优点主要是消除了服务器端的缓存负担,通过要
求客户端在与服务器建立新连接时提供会话记录单简化了部署(除非记录单过期)。
实践中,在一组负载均衡服务器上部署会话记录单仍然要求周密规划和系
统设计。比如,所有服务器一开始都拥有相同的会话密钥,然后再通过另
外的机制定期在所有服务器端轮换共享的密钥。
4.4 信任链与证书颁发机构
身份验证是建立每个 TLS 连接必不可少的部分。毕竟,加密信道两端可以是任何机
器,包括攻击者的机器。为此,必须确保我们与之交谈的计算机是可信任的,否则
之前的工作都是徒劳。为理解如何验证通信两端的身份,下面我们以张三和李四之
间的验证为例简单说明一下:
• 张三和李四分别生成自己的公钥和私钥;
• 张三和李四分别隐藏自己的私钥;
• 张三向李四公开自己的公钥,李四也向张三公开自己的公钥;
• 张三向李四发送一条新消息,并用自己的私钥签名;
• 李四使用张三的公钥验证收到的消息签名。
信任是上述交流的关键。公钥加密可以让我们使用发送端的公钥验证消息是否使用
了正确的私钥签名,但认可发送端仍然是基于信任。在上述交流中,张三和李四可
以当面交换自己的公钥,因为他们互相认识,能够保证不被别人冒名顶替。可以说,
他们已经通过之前安全(物理)的握手确认了对方。
接下来,张三收到王五发来的一条消息。张三从未见过王五,但王五自称是李四的
朋友。事实上,为了证明自己是李四的朋友,王五还请李四用李四的私钥签署了自
己的公钥,并在消息中附上了签名(图 4-4)。此时,张三首先检查王五公钥中李四
的签名。他知道李四的公钥,因而可以验证李四确实签署了王五的公钥。由于他信
任李四对王五的签名,所以就接受了王五的消息,并对消息进行完整性检查,以确
保消息确实来自王五。
刚才这个过程建立了一个信任链:张三信任李四,李四信任王五, 通过信任的传递,张
三信任王五。只要这条链上的人不会被冒名顶替,我们就可以继续扩展这个信任网络。
50 | 第 4 章