TLS 1.2 список установленных шифров

#ssl #openssl #boost-asio

Вопрос:

Я хотел бы настроить конфигурацию TLS 1.2, как показано ниже, в моем приложении Linux.

 ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
 

Я знаю API SSL_CTX_set_cipher_list(SSL *ssl, const char *str); , что мой вопрос заключается в том, как установить более одного шифра с помощью этого API. Должен ли я вызывать этот API дважды или как-то иначе?

В настоящее время я устанавливаю только одну такую конфигурацию:

 SSL_CTX_set_cipher_list(ctx, ECDHE-RSA-AES256-GCM-SHA384)
 

Как мне настроить обе конфигурации, как указано выше?

Ответ №1:

На основе https://www.openssl.org/docs/man1.0.2/man1/ciphers.html «Список шифров состоит из одной или нескольких строк шифра, разделенных двоеточиями. Запятые или пробелы также являются приемлемыми разделителями, но обычно используются двоеточия.»

Я бы сказал «ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:ECDHE_ECDSA_WITH_AES_128_GCM_SHA256»

Комментарии:

1. Спасибо. У меня есть следующий вопрос. Мне посоветовали использовать метод TLS_server_method( ) вместо исправления метода до TLS версии 1.2, учитывая различные клиенты, которые могут подключаться. Как затем установить набор шифров в случае, если клиент подключается в режиме TLSv1.2 к ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 ECDHE_ECDSA_WITH_AES_128_GCM_SHA256.