SSL操作失败,代码1:dh密钥太小

我正在通过SSL连接到数据库Google Cloud SQL。我使用codeigniter

3.0进行了此操作,尽管mysqli驱动程序进行了一些修改以允许此功能。

几个月来一直运作良好。但是,它 刚刚 开始返回此警告:

Message: mysqli::real_connect(): SSL operation failed with code 1. OpenSSL Error messages: error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small

我认为这DH Key is too small是主要问题,但我不知道那是什么意思。我已经搜索了Diffie-

Hellman密钥交换以及“密钥太小”消息,但是运气不高。

这是否表明服务器上的密钥已被篡改?我检查了它们的上次修改日期-最近没有异常访问。

可能是我的服务器进行了一些升级到PHP或它们的服务器配置,这可能会导致此中断,但是我想检查并确保它不是其他内容。

感谢您提供有关该主题的任何见识/可读材料。

回答:

... error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too

small

您感兴趣的错误号是OpenSSL错误0x14082174。

SSL3_CHECK_CERT_AND_ALGORITHM使出口级密码时,通常出现。由于Logjam,它可能会再次出现在非出口级谈判中(见下文)。


我以为DH Key太小是主要问题,但是我不知道这意味着什么。我已经搜索了Diffie-Hellman密钥交换以及“密钥太小”消息,但是运气不高。

这是由于《不完美的前向机密:Diffie-Hellman如何在实践中失败》一文中最近的Logjam攻击所致。

您应该使用2048位Diffie-Hellman组或更大的组。你应该 使用512位或1024位Diffie-Hellman组进行。

首先要检查的是您的密码列表字符串。它应该类似于:

"HIGH:!aNULL:!MD5:!RC4"

它将避免使用出口级密码,并使用现代密码。但是,您还需要确保DH回调不使用弱/小字段大小。为此,您需要检查服务器配置。


有些人正在用“解决”这个问题kRSAkRSA是关键的 方案,而不是关键的

方案。RSA密钥传输方案不提供前向保密性,通常不鼓励使用它。实际上,它将从TLS 1.3中删除。

我只能说 “通常不鼓励”, 因为这取决于要保护的数据。如果您具有SSL /

TLS来保护公共文件的下载,则可以使用它。如果您的网站具有登录名,则使用它可能会有一点风险,因为密码是秘密数据(与可公开下载的文件不同)。

为避免密钥传输并通过那些Qualsys SSL Labs测试的Web服务器配置和保密性,请使用:

"HIGH:!aNULL:!kRSA:!MD5:!RC4"

在您的Apache配置文件中,它看起来像这样:

# cat /etc/httpd/conf.d/ssl.conf | grep SSLCipherSuite

# SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5

SSLCipherSuite HIGH:!aNULL:!kRSA:!MD5:!RC4


我似乎记得wget在论文发表前一段时间曾拒绝过小团体。这可能是您网站的一个很好的测试案例。

还有一个改进的sslscan,可以测试很多东西。这也可能是一个很好的质量检查工具。

以上是 SSL操作失败,代码1:dh密钥太小 的全部内容, 来源链接: utcz.com/qa/435659.html

回到顶部