“key_share”和"pre_shared_key" 的区别
越是基本的问题或者概念越是难解释或者讲清楚,论文写到现在真的好无助的样子 。
在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、
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架