车← SSL握手协议消息类型 105 Table 17.2 SSL Handshake Protocol Message Types Message Type Parameters hello_request null client_hello version,random,session id,cipher suite,compression method server_hello version,random,session id,cipher suite,compression method certificate chain of X.509v3 certificates server_key_exchange parameters,signature certificate_request type,authorities server_done null certificate_verify signature client_key_exchange parameters,signature finished hash value 2022/10/9 现代密码学理论与实践-17:Web的安全 12/49
2022/10/9 现代密码学理论与实践-17:Web的安全 12/49 SSL握手协议消息类型
Client Server 握手协议动作 client_hello Phase 1 季 Establish security capabilities,including protocol version,session ID,cipher suite. 1050 四个阶段 server_hello compression method,and initial random numbers certificate server_key_exchange Phase 2 Server may send certificate,key exchange, certificate_request and request certificate.Server signals end of hello message phase. server_hello done certificate client_key_exchange Phase 3 Client sends certificate if requested.Client sends key exchange.Client may send certificate_verify certificate venfication. change_cipher_spec finished Phase 4 Change cipher suite and finish change_cipher_spec handshake protocol. finished Note:Shaded transfers are optional or situation-dependent messages that are not always sent. 2022/10/9 13/49 Figure 17.6 Handshake Protocol Action
2022/10/9 现代密码学理论与实践-17:Web的安全 13/49 握手协议动作 四个阶段
握手协议动作 15 。阶段1:建立安全能力 开始逻辑连接并建立和这个连接关联的安全能力,客户 发送client hello报文,包括版本、随机数、安全ID、密 文族、压缩方式,然后等待server_hello报文 ● 密钥交换方式,包括RSA、固定Diffie-Hellman、短暂 Diffie-Hellman、匿名Diffie-Hellman、Fortezza 密文规约CipherSpec,包括加密算法,MAC算法,加密 类型,散列大小,密钥素材,大小 ·阶段2:服务器认证和密钥交换 发送server_key_.exchange报文 ● 非匿名服务器向客户请求证书certificate request 结束报文certificate done 2022/10/9 现代密码学理论与实践-17:Web的安全 14/49
2022/10/9 现代密码学理论与实践-17:Web的安全 14/49 握手协议动作 ⚫ 阶段1:建立安全能力 ⚫ 开始逻辑连接并建立和这个连接关联的安全能力, 客户 发送client_hello报文, 包括版本、随机数、安全ID、密 文族、压缩方式,然后等待server_hello报文 ⚫ 密钥交换方式,包括RSA、固定Diffie-Hellman、短暂 Diffie-Hellman、匿名Diffie-Hellman、Fortezza ⚫ 密文规约CipherSpec,包括加密算法, MAC算法, 加密 类型, 散列大小, 密钥素材, IV大小 ⚫ 阶段2:服务器认证和密钥交换 ⚫ 发送server_key_exchange报文 ⚫ 非匿名服务器向客户请求证书certificate_request ⚫ 结束报文certificate_done
握手协议动作 ·阶段3:客户认证和密钥交换 客户验证服务器是否提供了合法证书,检查服务器Helo参 数是否可接受,发送报文给服务器 如果服务器请求证书,客户发送certificate报文;如无合适 证书,发送no_alert 发送client_key_exchange,包括RSA,固定Diffie-Hellman, 短暂Diffie-Hellman,匿名Diffie-.Hellman、Fortezza 最后发送certificate verify报文提供验证 阶段4:结束,完成安全连接的建立 客户发送change_.cipher_spec报文,将挂起的CipherSpec 复制到当前的CipherSpec 发送finished,验证密钥交换和鉴别过程是成功的 服务器客户发送change_.cipher_spec报文,将挂起的 CipherSpec:复制到当前的CipherSpec 服务器发送finished报文,握手完成,开始交换应用层数据 n团量道 2022/10/9 现代密码学理论与实践-17:Web的安全 15/49
2022/10/9 现代密码学理论与实践-17:Web的安全 15/49 握手协议动作 ⚫ 阶段3:客户认证和密钥交换 ⚫ 客户验证服务器是否提供了合法证书,检查服务器Hello参 数是否可接受,发送报文给服务器 ⚫ 如果服务器请求证书,客户发送certificate报文;如无合适 证书,发送no_alert ⚫ 发送client_key_exchange, 包括RSA, 固定Diffie-Hellman, 短暂Diffie-Hellman, 匿名Diffie-Hellman、Fortezza ⚫ 最后发送certificate_verify报文提供验证 ⚫ 阶段4:结束,完成安全连接的建立 ⚫ 客户发送change_cipher_spec报文,将挂起的CipherSpec 复制到当前的CipherSpec ⚫ 发送finished,验证密钥交换和鉴别过程是成功的 ⚫ 服务器客户发送change_cipher_spec报文,将挂起的 CipherSpec复制到当前的CipherSpec ⚫ 服务器发送finished报文, 握手完成, 开始交换应用层数据
17.2.6密码的计算 15 ·主密钥的创建 0 共享的主密钥是通过密钥交换的方式为会话生成 的一次性48字节值,首先交换预先主密钥,然后 双方计算共享的主密钥。 ·加密参数的生成 CipherSpec3要求客户写MAC密钥,服务器写MAC 密钥;客户写密钥,服务器写密钥,客户写V以及服 务器写V,这些参数从主密钥中按照上述次序依次 生成。 2022/10/9 现代密码学理论与实践-17:Web的安全 16/49
2022/10/9 现代密码学理论与实践-17:Web的安全 16/49 17.2.6 密码的计算 ⚫ 主密钥的创建 ⚫ 共享的主密钥是通过密钥交换的方式为会话生成 的一次性48字节值,首先交换预先主密钥,然后 双方计算共享的主密钥。 ⚫ 加密参数的生成 ⚫ CipherSpec要求客户写MAC密钥, 服务器写MAC 密钥; 客户写密钥, 服务器写密钥, 客户写IV以及服 务器写IV, 这些参数从主密钥中按照上述次序依次 生成