¿Es importante el orden de los nombres de cifrado en TIdServerIOHandlerSSLOpenSSL.SSLOptions.CipherList?
Estoy limitando los cifrados que mi servicio web permite solo a estos cifrados TLS 1.x:
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
TLS_RSA_WITH_IDEA_CBC_SHA
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
Actualizar en respuesta aDave Thompsoncomentario de:
Ahora tomo los cifrados generados a partir deesta respuesta SO, en ese orden.
Debido a que actualmente utilizamos Delphi XE2 / Indy 10.5.8.0/OpenSSL 1.0.2f, omito los cifrados ECDHE, estos sondemasiado engorroso para implementar con estas versiones de software.
Además, todavía permitimos TLS 1.0.
Después de la actualización a Delphi Seattle 10, no permitiremos TLS 1.0 y volveremos a colocar los cifrados ECDHE.
Esto deja:
TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcc15)
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x9f)
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x9e)
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (0x6b)
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (0x67)
TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 (0xc4)
TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x39)
TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x33)
TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (0x88)
TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (0x45)
Convertido a nombres OpenSSL (segúnAsignación de nombres de conjuntos de cifrado OpenSSL a nombres RFC) estos son:
DHE-RSA-CHACHA20-POLY1305
DHE-RSA-AES256-GCM-SHA384
DHE-RSA-AES128-GCM-SHA256
DHE-RSA-AES256-SHA256
DHE-RSA-AES128-SHA256
- cannot find the equivalent for 0xc4 - anyone? -
DHE-RSA-AES256-SHA
DHE-RSA-AES128-SHA
DHE-RSA-CAMELLIA256-SHA
DHE-RSA-CAMELLIA128-SHA256
El orden en que un servidor ofrece cifrados es importante, pero ¿tengo control sobre este orden? CipherList es una propiedad de cadena que contiene estos nombres concatenados con '+':
TIdServerIOHandlerSSLOpenSSL.SSLOptions.CipherList := 'DHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SH:DHE-RSA-AES128-SHA:DHE-RSA-CAMELLIA256-SHA:DHE-RSA-CAMELLIA128-SHA256';
Si es así, ¿cuál es el orden recomendado?
Tenga en cuenta que, dado que mi servicio web es el servidor, he configuradoSSLOptions.Mode := sslmServer
.
* Estos son los que elnmap guiónssl-enum-ciphers calificaciones con una 'A'