TLS1.3实现篇
前言 前面我已经写过一些有关TLS1.3协议的文章,主要是从理论出发去了解TLS1.3协议,为了更加深入的理解TLS1.3协议,我将尝试去实现它,目前有部分站点已经开始支持TLS1.3,我们可以利用这些站点来进行测试代码是否成功实现TLS1.3的部分结构,我现在主要实现了ClientHello的整体结构和部分扩展,但是在进行测试的时候不尽如人意,我们先来看一下测试情况。 测试站点www.github.com 我们发现服务器并没有回应,具体原因我还没有找到。 添加TLS1.2cipherSuites测试www.baidu.com 服务器发送回了ServerHello和Certificate以及ServerHelloDone消息可以说明整体结构编写没有问题,可能还存在一些不符合协议的错误,我会及时更新改正后的实现到博客,下面我们先来看一下整体结构的实现。 TLS1.3实现-整体架构 下面给出我实现的整体架构 通过这张图就可以清晰的了解到TLS1.3实现的基本流程,首先是实现ClientHello的结构以及里面包含的扩展,然后实现handshake的整体结构,获取ClientHello的数据放入handshakeData中,之后实现TLSPlaintext的结构,获取handshake的数据放入fragment字段,最后封装数据采用大端字节编码,将数据发送给服务器