TLS握手协议 网络安全 NETWORK SECURITY ·位于TLS记录协议之上 ■也用到了TLS记录协议的处理过程 ContentType 22 ■协议格式 1 byte 3bytes n bytes Type Length Content Handshake Protocol ■用途: >当TLS客户和服务器开始通讯的时候,它们要通过协商,在以 下信息方面获得一致: 协议版本、密码算法、是否认证对方、 用什么技术来产生共享秘密数据,等等 27
27 27 TLS握手协议 • 位于TLS记录协议之上 n 也用到了TLS记录协议的处理过程 n ContentType = 22 n 协议格式 n 用途: Ø当TLS客户和服务器开始通讯的时候,它们要通过协商,在以 下信息方面获得一致: 协议版本、密码算法、是否认证对方、 用什么技术来产生共享秘密数据,等等
TLS握手协议的流程 网络安全 JETWODW C三cIIDImY Client Server 妾揆麦法、 client hello 交换必要的密码参数,以便 server hello 双方得到统一的premaster certificate secret(一个用在对称加密 server_key_exchange 密钥生成中的46字节的随 certificate_request 机数字) server_hello_done ●】 交换证书和相应的密码信息, 0.] certificate 以便进行身份认证 client_key_exchange ● 产生master secret certificateverify ●】 把安全参数提供给TLS记录 change_cipher_spec finished ● 检验双方是否已经获得同样 的安全参数 change cipher spec finished 28
28 28 TLS握手协议的流程 • 交换Hello消息,对于算法、 交换随机值等协商一致 • 交换必要的密码参数,以便 双方得到统一的premaster secret(一个用在对称加密 密钥生成中的46 字节的随 机数字 ) • 交换证书和相应的密 码信息, 以便进行身份认证 • 产生master secret • 把安全参数提供给TLS记录 层• 检验双方是否已经获得同样 的安全参数
TLS握手协议使用的消息 网络安全 NETWORK SECURITY 消息 参数 hello_request Null client hello 版本,随机数,会话id,密码参 数,压缩方法 server_hello certificate X.509v3证书链 server_key_exchange 参数,签名 certificate request 类型,CAS server done Null certificate verify 签名 client key_exchange 参数,签名 finished Hash值 29
29 29 TLS握手协议使用的消息 消息 参数 hello_request Null client_hello 版本,随机数,会话id,密码参 数,压缩方法 server_hello certificate X.509 v3证书链 server_key_exchange 参数,签名 certificate_request 类型,CAs server_done Null certificate_verify 签名 client_key_exchange 参数,签名 finished Hash值
第一阶段:建立起安全能力属性 网络安全 Client Server VORK SECURITY client hello Establish security capabilities,including protocol version,session ID,cipher suite. compression method,and initial random server_hello numbers. ●客户发送一个client hello消息,包括以下参数: 版本、随机数(32位时间戳+28字节随机序列)、会话ID、 客户支持的密码算法列表(CipherSuite)、客户支持的压 缩方法列表 ●然后,客户等待服务器的server hello消息 ● 服务器发送server hello:消息,参数: 客户建议的低版本以及服务器支持的最高版本、服务器产 生的随机数、会话ID、服务器从客户建议的密码算法中 挑出一套、服务器从客户建议的压缩方法中挑出一个 30
30 30 第一阶段:建立起安全能力属性 • 客户发送一个client_hello消息,包括以下参数: 版本、随机数(32位时间戳+28字节随机序列)、会话ID、 客户支持的密码算法列表(CipherSuite)、客户支持的压 缩方法列表 • 然后,客户等待服务器的server_hello消息 • 服务器发送server_hello消息,参数: 客户建议的低版本以及服务器支持的最高版本、服务器产 生的随机数、会话ID、服务器从客户建议的密码算法中 挑出一套、服务器从客户建议的压缩方法中挑出一个
关于会话ID(Session ID) 网络安全 NETWORK SECURITY ● 客户方 ■客户指定的会话ID如果不等于0,则表示它希望基于这 个会话来更新已有连接的安全参数,或者创建一个新 的连接 如果会话ID等于0,则表示客户希望在一个新的会话上 建立一个新的连接 ·服务器 ■或者同意客户指定的会话ID,需要检查cache中的会 话状态 ■或者返回一个新的会话ID 31
31 31 关于会话ID(Session ID) • 客户方 n 客户指定的会话ID如果不等于0,则表示它希望基于这 个会话来更新已有连接的安全参数,或者创建一个新 的连接 n 如果会话ID等于0,则表示客户希望在一个新的会话上 建立一个新的连接 • 服务器 n 或者同意客户指定的会话ID,需要检查cache中的会 话状态 n 或者返回一个新的会话ID