TLS会话 网络安全 NETWORK SECURITY☑ ●TLS Session定义: ■指客户和服务器之间的一个关联关系。通过 TLS握手协议创建session,它确定了一组密 码算法的参数。Session可以被多个连接共享, 从而可以避免为每个连接协商新的安全参数而 带来昂贵的开销。 ■TLS Session都有一个当前状态 ●TLS connection ■与底层协议的点对点连接相关联 ■每个connection都与一个session相关联 ■连接是短暂的 17
17 17 TLS会话 •TLS Session定义: n 指客户和服务器之间的一个关联关系。通过 TLS握手协议创建session,它确定了一组密 码算法的参数。Session可以被多个连接共享, 从而可以避免为每个连接协商新的安全参数而 带来 昂贵的开销。 n TLS Session都有一个当前状态 •TLS connection n 与底层协议的点对点连接相关联 n 每个connection都与一个session相关联 n 连接是短暂的
TLS会话状态 网络安全 NETWORK SECURITY ● 会话实际上是一组参数,包括 ■Session identifier,字节序列,由服务器产生,用来 标识一个会话状态 ■Peer certificate(可以为NULL),对方的X.509v3证 书 ■ Compression method,压缩数据的算法 ■( Cipher spec,指定数据加密算法和用于HMAC的散列 算法,以及算法的有关参数 ■Master secret,客户和服务器之间共享的48字节的数 据 ■Is resumable,标记是否这个会话可以被用来初始化 一个新的连接 18
18 18 TLS会话状态 • 会话实际上是一组参数,包括 n Session identifier,字节序列,由服务器产生,用来 标识一个会话状态 n Peer certificate(可以为NULL),对方的X.509 v3证 书 n Compression method,压缩数据的算法 n Cipher spec,指定数据加密算法和用于HMAC的散列 算法,以及算法的有关参数 n Master secret, 客户和服务器之间共享的48字节的数 据 n Is resumable,标记是否这个会话可以被用来初始化 一个新的连接
TLS连接的状态 网络安全 连接状态也包含一组参数 NETWORK SECURITY ■ Server and client random,客户和服务器为每个连 接选择的字节序列 ■ Server write MAC secret,服务器在发送数据的时 候,用于MAC运算的key Client write MAC secret,客户在发送数据的时候, 用于MAC运算的key Server.write key,服务器加密数据的密钥,以及客 户解密数据的密钥 Client write key,客户加密数据的密钥,以及服务器 解密数据的密钥 ■ Initialization vectors,在密码块链接(CBC)模式中 用到的V,最初由握手协议初始化,以后,每一个记 录的最后一个密文块被用作下一个记录的V Sequence numbers,每一个连接都需要维护一个序 列号,当密码参数变化时,重置为0 19
19 19 TLS连接的状态 • 连接状态也包含一组参数 n Server and client random,客户和服务器为每个连 接选择的字节序列 n Server write MAC secret,服务器在发送数据的时 候,用于MAC运算的key n Client write MAC secret ,客户在发送数据的时候, 用于MAC运算的key n Server write key,服务器加密数据的密钥,以及客 户解密数据的密钥 n Client write key,客户加密数据的密钥,以及服务器 解密数据的密钥 n Initialization vectors,在密码块链接(CBC)模式中 用到的IV,最初由握手协议初始化,以后,每一个记 录的最后一个密文块被用作下一个记录的IV n Sequence numbers,每一个连接都需要维护一个序 列号,当密码参数变化时,重置为0
TLS记录协议 网络安全 NETWORK SECURITY 操作过程示意图 Application Data Fragment Compress Add MAC Encrypt Append SSL Record Header 20
20 20 TLS记录协议 •操作过程示意图
TLS记录协议中的操作 网络安全 NETWORK SECURITY ●1 第一步,fragmentation ■上层消息的数据被分片成214字节大小的块,或者更小 ● 第二步,compression(可选) ■ 必须是无损压缩,如果数据增加的话,则增加部分的 长度不超过1024字节 ipad 第三步,计算消息认证码(MAC) b bits bbits b bits YL-I 计算公式: n bit HMAC hash (MAC write_secret, ]H(S;I M) seq num pad to b bits TLSCompressed.type TLSCompressed.version TLSCompressed.length TLSCompressed.fragment) HMACK(M)
21 21 TLS记录协议中的操作 • 第一步,fragmentation n 上层消息的数据被分片成214字节大小的块,或者更小 • 第二步,compression(可选) n 必须是无损压缩,如果数据增加的话,则增加部分的 长度不超过1024字节 • 第三步,计算消息认证码(MAC) n 计算公式: HMAC_hash(MAC_write_secret, seq_num || TLSCompressed.type || TLSCompressed.version || TLSCompressed.length || TLSCompressed.fragment)