越是基本的问题或者概念越是难解释或者讲清楚,论文写到现在真的好无助的样子 。
在LTS协议中牵扯到握手的认证和秘钥建立的时候,这连个概念经常混淆,TLS1.3版本协议为参照,区别这两个概念
1、概念的解释
key_share是椭圆曲线类型对应的公钥扩展。
pre_shared_key(对称秘钥)是预共享秘钥认证机制PSK生成的对称秘钥,PSK是一种身份认证机制。
2、key_share中包含的是椭圆曲线类型对应的公钥
psk其实即使Session ticket外加一些检验的东西 ,
3、目前来说已经实现的TLS1.3中并不是不能连接TLS1.2,这就牵扯到TLS协议的降级保护问题。
在TLS1.3协议版本中定义的时候为了能够兼容TLS1.2,添加了额外的信息
像 在 ClientHello 结构体中存在的 legancyVersion legacySessioID LegacyCompressionMethods 的定义为了兼容TLS1.2,但是,在TLS1.3中的 Support_version的优先级明显高于 legancyVersion
ClientHello主要通过Extension 传递协商必要的材料(参数,算法),第一次CLientHello 至少包含以下五个Extension :
ServerName :请求的主机名
SupportedVersion :支持的协议版本
SignatureAlgorithms: 所支持的签名算法
SupportedGroup: 用于秘钥交换
key_share:秘钥协商对应的公钥,每一个supportgroup需要有对应的keySahre
key_share:
4、HKDF(HMAC_base_key_derivation_function)秘钥导出函数
5、TLS1.3 定义了多种报文
6、