【问题标题】:Disable weak ciphers of OpenSSL on the server side在服务器端禁用 OpenSSL 的弱密码
【发布时间】:2019-09-07 21:24:39
【问题描述】:

我在用 C 开发的服务器上使用 OpenSSL。

OpenSSL 在我的源代码中是通过以下方式调用的:

SSL_CTX* InitServerCTX(void)
{
    SSL_METHOD *method;
    SSL_CTX *ctx;

    OpenSSL_add_all_algorithms();  /* load & register all cryptos, etc. */
    SSL_load_error_strings();   /* load all error messages */
    method = TLSv1_2_server_method();  /* create new server-method instance */
    ctx = SSL_CTX_new(method);   /* create new context from method */
    if ( ctx == NULL )
    {
        ERR_print_errors_fp(stderr);
        abort();
    }
    return ctx;
}

int main(int count, char *Argc[])
{   
    SSL_CTX *ctx;
    int server;
    char *portnum;

    // Initialize the SSL library
    SSL_library_init();
    ctx = InitServerCTX();        /* initialize SSL */
    ...
}

我用ssllabs.com 测试了我的服务器。而且我的服务器上支持的密码很弱。

如何在我的服务器中禁用这些弱密码?

---编辑---

我尝试在启动上下文后添加以下行

SSL_CTX_set_cipher_list(ctx, "ALL:!NULL-MD5:!NULL-SHA:!NULL-RSA");

但没有任何改变!

【问题讨论】:

    标签: c++ c security ssl openssl


    【解决方案1】:

    对于 TLS v1.2 及更早版本,您可以使用SSL_CTX_set_cipher_list() or SSL_set_cipher_list()。

    对于 TLS 1.3,您可以使用SSL_CTX_set_ciphersuites() or SSL_set_ciphersuites()。

    请参阅CIPHER LIST FORMAT,了解指定启用/禁用哪些密码时使用的语法。

    【讨论】:

    • 能否请您根据问题中提到的弱密码提供示例
    • 我用过这个SSL_CTX_set_cipher_list(ctx, "ALL:!NULL-MD5:!NULL-SHA:!NULL-RSA");,但问题依然存在
    猜你喜欢
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 2020-06-30
    • 2018-08-24
    • 1970-01-01
    • 2020-05-17
    相关资源
    最近更新 更多