【问题标题】:OpenSSL 1.1.1e RC4-MD5 cipher not getting selected for TLS v1.2TLS v1.2 未选择 OpenSSL 1.1.1e RC4-MD5 密码
【发布时间】:2020-04-01 18:27:42
【问题描述】:

我一直面临这个问题,我无法在 Client hello tls 协议层发送 RC4-MD5 密码。 我当前的代码使用 curl SSL CTX CALLBACK。

你可以在下面看到我的代码....这里没什么特别的,但最后一个密码没有进入客户端你好 我的 tls 协议是 http1.0、tlsv1.2,我编译了带有弱密码选项的 openssl(它适用于 DES 密码)

 CURLcode sslctxfun(CURL *curl, void *sslctx, void *parm)
{
  sslctxparm *p = (sslctxparm *) parm;
  SSL_CTX *ctx = (SSL_CTX *) sslctx;

  int ret;
  SSL_CTX_set_max_proto_version(ctx, TLS1_2_VERSION);
  SSL_CTX_set_min_proto_version(ctx, TLS1_2_VERSION);
  ret=SSL_CTX_set_cipher_list(ctx, "AES256-SHA256,AES128-SHA256,AES256-SHA,AES128-SHA,DES-CBC3-SHA,RC4-SHA,RC4-MD5");
.....
  SSL_CTX_set_options(ctx, SSL_OP_ALL);
  SSL_CTX_set_options(ctx, SSL_OP_NO_TICKET);
  SSL_CTX_set_options(ctx, SSL_OP_NO_ENCRYPT_THEN_MAC);
  SSL_CTX_set_options(ctx, SSL_OP_CIPHER_SERVER_PREFERENCE);
  SSL_CTX_set_options(ctx,SSL_OP_NO_RENEGOTIATION);
  SSL_CTX_set_options(ctx, SSL_OP_TLS_ROLLBACK_BUG );
  SSL_CTX_set_options(ctx, SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS );
  SSL_CTX_set_options(ctx, SSL_OP_NO_COMPRESSION );
  SSL_CTX_set_options(ctx, SSL_OP_LEGACY_SERVER_CONNECT );
  SSL_CONF_CTX *cctx;
  cctx = SSL_CONF_CTX_new();
  SSL_CONF_CTX_set_flags(cctx, SSL_CONF_FLAG_FILE);
  SSL_CONF_CTX_set_ssl_ctx(cctx, ctx);
  ret=SSL_CONF_cmd(cctx, "SignatureAlgorithms", "RSA+SHA256:RSA+SHA512:RSA+SHA384:RSA+SHA1");
....
}

【问题讨论】:

  • 这段代码不完整。你是作为服务器还是客户端运行?您要连接的对等方是否支持 RC4-MD5 密码?
  • 我是客户。服务器需要一个 1-1 的客户端 hello 数据包。其中客户端 hello 应该响应客户端支持 rc4-md5 并且 ssl3/tls 标准确实承认这一点。其余的 url 和 post 数据代码由 libcurl 处理。简单看一下数据包,我发现 rc4-md5 没有被客户端(我)作为支持的密码发送

标签: c openssl libcurl libssl


【解决方案1】:

该密码套件在默认 OpenSSL 安全级别(即级别 1)中不可用。您需要指示它使用安全级别 0。一种方法是将,@SECLEVEL=0 添加到密码套件列表的末尾:

ret=SSL_CTX_set_cipher_list(ctx, "AES256-SHA256,AES128-SHA256,AES256-SHA,AES128-SHA,DES-CBC3-SHA,RC4-SHA,RC4-MD5,@SECLEVEL=0");

您也可以使用SSL_CTX_set_security_level() 进行设置。有关级别的说明,请参见手册页:

https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_security_level.html

【讨论】:

  • 这听起来像是一个单独问题的主题!
猜你喜欢
  • 1970-01-01
  • 2020-11-01
  • 2017-09-20
  • 1970-01-01
  • 2022-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多