gpt4 book ai didi

c++ - OpenSSL:SessionTicket TLS 扩展问题

转载 作者:行者123 更新时间:2023-11-30 01:31:49 25 4
gpt4 key购买 nike

我正在使用一个将 OpenSSL 用于客户端 TLS 端的应用程序。我们将 OpenSSL 版本从 0.9.8e 升级到 0.9.8k。然后 TLS 不起作用...

Wireshark 显示新版本(使用 OpenSSL 0.9.8k)发送带有 SessionTicket 扩展的客户端 hello 数据包 - 服务器端以致命内部错误响应。

以前的版本发送几乎相同的 hello 数据包,但没有 SessionTicket 分机。

当我用 SSLv23_client_method 替换 TLSv1_client_method 时,一切正常 - 发送的客户端 hello 数据包是一个 SSLv2 数据包(在嗅探器中)没有任何扩展(因为它不是 TLS 而是 SSL?)

是否有更好的方法来禁用此扩展或以其他方式解决问题?

提前致谢,rursw1

最佳答案

引自 RFC 5077:“请注意,空 SessionTicket 扩展的编码是 RFC 4507 中不明确。RFC 4507 实现可能已编码 它是:

    00 23      Extension type 35
00 02 Length of extension contents
00 00 Length of ticket

或者它可能以与此更新相同的方式对其进行编码:

    00 23      Extension type 35
00 00 Length of extension contents

希望支持 RFC 4507 客户端的服务器应该响应 空 SessionTicket 扩展的编码方式与接收它的方式相同。“所以我使用的服务器支持 RFC 4507 而不是更新的 5077。

使用 SSL_CTX_set_options 和 SSL_OP_NO_TICKET “正常”删除它解决了这个问题。

希望这对某人有帮助...

编辑:好吧,这也可以通过配置标志 -no-tlsext 来完成。 (运行 perl 配置脚本时)。但是,请注意,在 OpenSSL 0.9.8n 和 OpenSSL 1.0.0 中,您需要注释掉源代码的某些部分,否则它不会编译 - 因为安全重新协商(它本身被认为是不安全的)需要

关于c++ - OpenSSL:SessionTicket TLS 扩展问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2667514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com