Я заинтересован в настройке 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?