如何在java中将多个握手消息组合到一个记录中

  • 本文关键字:记录 组合 消息 一个 java ssl
  • 更新时间 :
  • 英文 :


使用java代码请求https站点,执行tcpdump并发现"客户端密钥交换,更改密码规范,加密握手消息"将被设置为两条记录:1.客户端密钥交换2.更改密码规范,加密握手消息如何用java将这三条握手消息组合成一条记录?

为什么你关心这些东西是如何放在电线上的?你是想只保存几个字节,还是有正当的真正原因?

我不知道Java实现的细节,也不知道您是否可以通过config/params来影响它,但从TLS协议的角度来看,在网络上发送握手消息的方式没有任何区别。在单独记录的情况下,您只需发送一些额外的字节,仅此而已。

此外,特别是对于这三种情况,它们不能组合在一个记录中,这是有原因的。ClientKeyExchange是一条纯文本消息,因此它会进入一条记录中。ChangeCipherSpec不是握手消息,而是一种记录类型,因此它不能与CKE进入同一记录。由于CCS本身就是一种记录类型,因此您需要在它之后将另一个握手消息封装到一个记录中,因此您可以看到3个单独的记录。此外,Finished消息是加密的,因此您需要在记录层添加MAC,并且不能与明文握手消息组合到同一记录中。

我希望这能稍微澄清一下。

最新更新