首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SChannel TLS1.3神秘附加消息

SChannel TLS1.3神秘附加消息
EN

Stack Overflow用户
提问于 2022-07-05 14:51:26
回答 1查看 139关注 0票数 0

不久前,我使用SChannel加密通信,实现了一个客户机和服务器。最近,我完成了从SCHANNEL_CRED结构到SCH_CREDENTIALS结构的必要转换,以便在Windows11中提供TLS1.3支持。然而,我遇到了一种情况,我的代码没有最初的解释,而且我已经解决了,但无法解释。

谈判流程如下:

  • 我在客户机上调用InitializeSecurityContext,并获得一些要发送到服务器的数据(例如,264个字节)。这将是客户机你好、密码套件和密钥共享。
  • 我在服务器上调用AcceptSecurityContext并传入接收到的数据,获得SEC_I_CONTINUE_NEEDED并将一些数据发送给客户机(例如,785字节)。这将是服务器hello、密钥协议协议、密钥共享以及服务器已经完成的指示。
  • 我在客户机上调用InitializeSecurityContext,传入接收到的数据,并获得一些要发送到服务器的数据(例如,80个字节)。这将是客户端完成的指示。

此时,我在服务器上调用AcceptSecurityContext并传递接收到的数据,我希望得到SEC_E_OK,而没有数据返回给客户端。双方都表示他们已经完成谈判,据我所知,谈判已经完成。然而,实际发生的情况是:

  • 我在服务器上调用AcceptSecurityContext并传入接收到的数据,获得SEC_E_OK并将一些数据发送给客户机(例如103个字节)。我不知道这条信息会是什么。

我最初的实现在这一点上将失败,因为一旦给定的一方返回SEC_E_OK,我就不会期望对等方为协商提供更多的消息。客户端已经返回了它,但是服务器有更多的数据来发送它。

  • 此时,我使用额外的数据在客户机上调用InitializeSecurityContext,并获得没有更多数据要发送到服务器的SEC_E_OK。谈判终于完成了。

有人能解释一下这个附加信息是什么吗?

EN

回答 1

Stack Overflow用户

发布于 2022-07-07 22:24:10

我本想把这个作为评论,但我的声誉还不够高。根据TLS协议,我不能告诉您附加令牌代表什么,但我可以告诉您,它并不是特定于TL1.3(我还没有对1.3做任何事情,我的实现允许使用这个最后的令牌),而且它是记录在案

SEC_E_OK 0x000000L功能成功。从客户端接收的安全上下文被接受。如果由函数生成输出令牌,则必须将其发送到客户端进程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72871449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档