TLS握手协议详解下

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/83151113

一 密码规格变更协议

TLS的密码规格变更协议是TLS握手协议的一部分,用于密码切换的同步。

那么为什么这个协议不叫密码规格开始协议,而是叫密码规格变更协议呢?这是因为即便在密码通信开始之后,客户端和服务器也可以通过重新握手来再次改变密码套件。也就是说,客户端和服务器是使用“不加密”这一密码套件进行通信的,因此通信内容是没有进行加密。

二 警告协议

TLS的警告协议是TLS握手协议的一部分,用于当发生错误时通知通信对象。当握手协议的过程中产生异常,或者发生消息认证码错误,压缩数据无法解压缩等问题时,会使用该协议。

三 应用数据协议

应用数据协议是TLS握手协议的一部分,用于和通信对象之间传送应用数据。

当TLS承载HTTP时候,HTTP的请求和响应就会通过TLS的应用数据协议和TLS记录协议来进行传送。

四 主密码

主密码是TLS客户端和服务器之间协商处理的一个秘密数值。这个数值非常重要,TLS密码通信的机密性和数据的认证全部依靠这个数值。主密码是一个48字节(384比特)的数值,例如:

扫描二维码关注公众号,回复: 3652177 查看本文章

1 主密码的计算

主密码是客户端和服务器根据下来信息计算出来的。

  • 预备主密码
  • 客户端随机数
  • 服务器随机数

当使用RSA公钥密码时,客户端在发送ClienKeyExchange消息时,将经过加密的预备主密码一起发送给服务器。

当使用DH密钥交换时候,客户端会在发送ClientKeyExchange消息时,将DH的公开值一起发送给服务器。根据这个值,客户端和服务器会各自生成预备主密码。

客户端随机数和服务器随机数的作用相对于防止攻击者事先计算出的密钥的盐。

当根据具备主密码计算主密码时,需要机遇密码套件中定义的单向散列函数(如SHA-256)来实现伪随机函数。

2 主密码的目的

主密码用于生成下列6中信息。

  • 对称密码的密钥(客户端 到 服务器)
  • 对称密码的密钥(服务器 到 客户端) 
  • 消息认证码的密钥(客户端 到 服务器)
  • 消息认证码的密钥(服务器 到 客户端) 
  • 对称密码的CBC模式所使用的初始化向量(客户端 到 服务器)
  • 对称密码的CBC模式所使用的初始化向量(服务器 到 客户端) 

五 TLS中使用的密码技术小结

1 TLS握手协议中使用的密码技术

2 TLS记录协议中使用的密码技术

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/83151113