在我们当前的环境中,安全运行扫描以寻找漏洞。OpenSSL(当前版本)不断出现一个问题,4-5 个密码低于 128kb 加密级别并标记扫描仪。
知道客户端必须指定选项,在某些情况下最好限制服务器接受低密码的选择。如果可以做到这一点,那么客户的要求就无关紧要了。有一个关于接受什么的配置选项有意义吗?
在我的具体案例中,我们正在试用一个用于文件传输的 beta 软件,它将 openSSL 密码拉入其客户端。目前没有限制这一点的选项。
我也向测试版软件开发人员提出了类似的问题。
在我们当前的环境中,安全运行扫描以寻找漏洞。OpenSSL(当前版本)不断出现一个问题,4-5 个密码低于 128kb 加密级别并标记扫描仪。
知道客户端必须指定选项,在某些情况下最好限制服务器接受低密码的选择。如果可以做到这一点,那么客户的要求就无关紧要了。有一个关于接受什么的配置选项有意义吗?
在我的具体案例中,我们正在试用一个用于文件传输的 beta 软件,它将 openSSL 密码拉入其客户端。目前没有限制这一点的选项。
我也向测试版软件开发人员提出了类似的问题。
您可以使用SSL_CTX_set_cipher_list()
来限制密码列表。
#include <iostream>
#include <openssl/ssl.h>
// List of allowed ciphers in a colon-seperated list. Example limits ciphers to AES-256 only
const char *allowedCiphers = "AES256-SHA256:AES256-GCM-SHA38:DHE-RSA-AES256-SHA256";
bool SetCiphers(SSL *sslContext, const char *ciphers);
int main()
{
// Create a ssl context here etc.
SSL *ssl = ...;
// Set the allowed ciphers
if (!SetCiphers(ssl, allowedCiphers))
exit(-1);
// Process...
return 0;
}
bool SetCiphers(SSL *sslContext, const char *ciphers)
{
if (SSL_CTX_set_cipher_list(sslContext, ciphers) != 1)
{
std::cerr << L"[SSL_CTX_set_cipher_list] failed; could not find a suitable cipher in the provided list of ciphers \""
<< ciphers << "\"." << endl;
return false;
}
return true;
}
在 shell 中运行openssl ciphers -v
以获取系统上支持的密码列表。