Назад | Перейти на главную страницу

Как настроить Dovecot для отключения кривых NIST и сохранения EECDH?

Я заинтересован в настройке Dovecot TLS так, чтобы сохранить прямую секретность, но исключить все эллиптические кривые NIST.

Помимо того подвержен атакам по сторонним каналам, в некоторых кругах наблюдается общее недоверие к кривым NIST и другим криптографическим примитивам после разгрома Dual EC DRBG.

Насколько я могу судить, следующее предотвратит использование кривых NIST (и некоторых других опасных примитивов) в Dovecot, но для этого достаточно просто полностью отключить EECDH.

ssl_cipher_list = HIGH:!DSS:!EECDH:!ECDH:!SHA1:!aNULL:!eNULL:@STRENGTH

Это по-прежнему должно сохранять прямую секретность за счет использования EDH, но это не оставляет много возможностей для допустимых алгоритмов:

$ openssl ciphers -V 'HIGH:!DSS:!EECDH:!ECDH:!SHA1:!aNULL:!eNULL:@STRENGTH'
  0x00,0x9F - DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(256) Mac=AEAD
  0x00,0x6B - DHE-RSA-AES256-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA256
  0x00,0x9D - AES256-GCM-SHA384       TLSv1.2 Kx=RSA      Au=RSA  Enc=AESGCM(256) Mac=AEAD
  0x00,0x3D - AES256-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA256
  0x00,0x9E - DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(128) Mac=AEAD
  0x00,0x67 - DHE-RSA-AES128-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA256
  0x00,0x9C - AES128-GCM-SHA256       TLSv1.2 Kx=RSA      Au=RSA  Enc=AESGCM(128) Mac=AEAD
  0x00,0x3C - AES128-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA256

Есть лучший способ сделать это? Есть ли способ отключить только подозрительные кривые NIST и при этом сохранить EECDH, но с безопасными кривыми для боковых каналов, такими как X25519?