SSL是否执行自动重新协商

时间:2019-02-17 13:50:21

标签: c++ ssl openssl

我有一个使用SSL 1.0.1n进行套接字通信的用c ++编写的客户端服务器应用程序。我试图防止重新谈判(这是一项要求)。我在代码中的任何地方都不会发起重新协商。    我看到openssl具有一个BIO_set_ssl_renegotiate_bytes和BIO_set_ssl_renegotiate_timeout,允许您在读取一定数量的字节或超时后设置自动重新协商。    我的问题是,如果我没有为其中任何一个设置值,它们是否具有默认值,其中SSL仍会自动启动重新协商?我无法弄清楚是什么导致了重新协商(如果未通过代码完成)。

1 个答案:

答案 0 :(得分:1)

我正在尝试防止重新协商(这是必需的)

希望该要求并非针对CVE-2009-3555。该问题已在OpenSSL 0.9.8k in Nov 2009中修复。 TLSv1.1和更高版本的协议从未受到该漏洞的攻击。<​​/ p>

但是,您仍然可以set the SSL_OP_NO_RENEGOTIATION option via SSL_CTX_set_options() or SSL_set_options

  

SSL_CTX_set_options

     

NAME

     

SSL_CTX_set_options,SSL_set_options,SSL_CTX_clear_options,   SSL_clear_options,SSL_CTX_get_options,SSL_get_options,   SSL_get_secure_renegotiation_support-处理SSL选项

     

简介

 #include <openssl/ssl.h>

 long SSL_CTX_set_options(SSL_CTX *ctx, long options);
 long SSL_set_options(SSL *ssl, long options);

 long SSL_CTX_clear_options(SSL_CTX *ctx, long options);
 long SSL_clear_options(SSL *ssl, long options);

 long SSL_CTX_get_options(SSL_CTX *ctx);
 long SSL_get_options(SSL *ssl);

 long SSL_get_secure_renegotiation_support(SSL *ssl);
     

描述

     

SSL_CTX_set_options()将通过位掩码设置的选项添加到选项中   ctx。之前已经设置的选项不会清除!

     

SSL_set_options()将通过选项中的位掩码设置的选项添加到ssl。   之前已经设置的选项不会清除!

     

SSL_CTX_clear_options()清除通过选项中的位掩码设置的选项   到ctx。

     

SSL_clear_options()清除以下选项中通过位掩码设置的选项:   ssl。

     

SSL_CTX_get_options()返回为ctx设置的选项。

     

SSL_get_options()返回为ssl设置的选项。

     

SSL_get_secure_renegotiation_support()指示对等是否   支持安全重新协商。注意,这是通过宏实现的。   笔记

     

可以通过设置以下几项来更改SSL库的行为   选项。这些选项被编码为位掩码,并且可以由   按位或运算符(|)。

     

SSL_CTX_set_options()和SSL_set_options()影响(外部)   SSL库的协议行为。的(内部)行为   可以通过使用类似的SSL_CTX_set_mode和   SSL_set_mode()函数。

     

在握手期间,将使用SSL对象的选项设置。   使用SSL_new()从上下文创建新的SSL对象时,   当前选项设置被复制。更改ctx不会影响   创建的SSL对象。 SSL_clear()不会影响设置。

     

...

     

以下修改选项可用:

     

...

     

SSL_OP_NO_RENEGOTIATION

     

禁用TLSv1.2和更早版本中的所有重新协商。不要寄   HelloRequest消息,并通过忽略重新协商请求   ClientHello。

     

安全重新确认

     

...

请注意,页面上有一个“安全叛逆”部分。阅读。

然后,您确实需要查看您的要求。他们很有可能已经过期了十年。通过花时间和精力解决十年前已解决的问题,您就无需花费时间和精力解决当前问题。