OpenSSL 1.1.1 поддерживает только 3 из 5 шифров TLS 1.3 - PullRequest
0 голосов
/ 04 августа 2020

У меня есть простой сайт, использующий веб-сервер Apache и OpenSSL 1.1.1. Я настроил все так, как должно быть, дело в том, что пока TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_GCM_SHA256 показывают, что там, где выбрано для шифрования, два других TLS_AES_128_CCM_122 * 100_SHA253 показывают первую ошибку * TLS_AES_128_CCM_122 100_SHA256, * 100_SHA256 правильно выбраны

ошибка отображается при выборе двух последних шифров

код из httpd-ssl.conf здесь i только измените шифр, который больше не выбран, для первых трех он работал.

Затем я также пошел проверить openssl.exe, если есть какие-либо проблемы. И я обнаружил, что последние два шифра не поддерживаются / или находятся в списке шифров.

cipherlist через openssl

Как я могу добавить последние два шифра в список, чтобы я мог их использовать? Или мне нужно что-то добавить, чтобы я мог их использовать? Я использую это для тестирования. Любая помощь будет принята. Извините за мой плохой английский sh.

1 Ответ

0 голосов
/ 06 августа 2020

Согласно документации OpenSSL TLSv1.3

OpenSSL реализовал поддержку пяти наборов шифров TLSv1.3 следующим образом:

  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_AES_128_GCM_SHA256
  • TLS_AES_128_CCM_8_SHA256
  • TLSites_AES_128256 *1015* 1016 * TLSites_AES_12825 * 10 из-за основных различий между TLSites_AES_12825_CCM и ниже и шифровальные наборы для TLSv1.3 работают, они также настроены в OpenSSL по-разному.

    По умолчанию первые три из вышеперечисленных шифровальных наборов включены по умолчанию. Это означает, что если у вас нет явной конфигурации набора шифров, вы автоматически будете использовать эти три и сможете согласовывать TLSv1.3. Обратите внимание, что изменение списка шифров TLSv1.2 и ниже не влияет на конфигурацию набора шифров TLSv1.3. см. последние два.

    Однако, если вы явно запросите их (используя новую опцию ciphersuites для TLSv1.3), вы увидите их, если ваша версия OpenSSL их поддерживает:

    openssl ciphers -tls1_3 -v -s -ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_8_SHA256:TLS_AES_128_CCM_SHA256
    
    TLS_AES_256_GCM_SHA384  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(256) Mac=AEAD
    TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any      Au=any  Enc=CHACHA20/POLY1305(256) Mac=AEAD
    TLS_AES_128_GCM_SHA256  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(128) Mac=AEAD
    TLS_AES_128_CCM_8_SHA256 TLSv1.3 Kx=any      Au=any  Enc=AESCCM8(128) Mac=AEAD
    TLS_AES_128_CCM_SHA256  TLSv1.3 Kx=any      Au=any  Enc=AESCCM(128) Mac=AEAD
    

    Вам также понадобится сертификат ECDSA, а не обычный сертификат RSA, чтобы иметь возможность использовать последние два шифров, как описано здесь: https://github.com/openssl/openssl/issues/8297.

    Также не известно любой браузер, который реализовал эти шифры CCM, поэтому не уверен, что вы бы использовали для подключения через него в данный момент, даже если вы все это разобрали, чтобы заставить его работать.

...