5

我目前正在与 SChannel 合作开发基于异步 (IOCP) 的服务器,我的大部分工作都正常,但我在重新协商时遇到了问题。具体来说,当对等点 A 向对等点 B 发送重新协商请求并且对等点 B 以 TLS1NO RENEGOTIATION警报响应时,对等点 A 如何继续?我在收到SEC_I_NO_RENEGOTIATION响应时似乎有一个无效的上下文,这使我无法继续使用流...

更新我已经做了一些更多的测试,它似乎不是一个无效的上下文,但我确实SEC_E_ENCRYPT_FAILURE从下一次调用 Encrypt 中得到......

重新谈判的请求真的可以拒绝吗?还是NO RENEGOTIATIONalert 只是一条信息性错误消息,现在意味着连接无用?如果是这样,为什么将其评论为“警告”而不是“错误”?没有; TLS RFC (5246) 明确指出,在没有重新协商警报后,我们是否可以继续由对等方决定......

更新如果我使用...发送 TLS 警报没有任何区别ApplyControlToken() or if I send it using EncryptMessage() with SECQOP_WRAP_OOB_DATA

4

2 回答 2

1

不久前,针对基于 Intel AMT 的硬件发布了一个 HOTFIX。本质上,根证书存储为 SHA-1 哈希,而不是缓存整个证书。SSPI 通过除根以外的所有证书,期望根拥有此证书以进行信任链验证。当完整的根不存在时,SSPI 会强制重新协商。

此修补程序更新安装了 Intel AMT 的 Win 2003 系统上的 schannel。

查看此知识库: http: //support.microsoft.com/kb/942841

于 2009-09-21T18:50:27.183 回答
0

可能这会对您有所帮助:代码项目:SSLSocket

于 2009-05-25T08:32:58.017 回答