¿Cómo obtuvo SSLv3 AES?

5

IANA mantiene un registro de suites de cifrado TLS en TLS Parameters . TLS proporciona TLS_RSA_WITH_AES_128_CBC_SHA , su valor es {0x00, 0x2f} , y está disponible en TLS 1.0 y superior. Las suites de cifrado AES se agregaron a TLS con RFC 3268, AES Ciphersuites for TLS en 2002.

Sin embargo, las suites de cifrado AES no se agregaron a SSLv3 porque SSLv3 no está bajo el control del IETF. De RFC 5746, Sección 4.5 :

  

Si bien SSLv3 no es un protocolo bajo el control de cambios de IETF (ver [SSLv3]),   Fue la base original para TLS y la mayoría de las implementaciones de TLS también   soporta SSLv3.

OpenSSL proporciona TLS_RSA_WITH_AES_128_CBC_SHA a través de cifrado AES128-SHA (consulte los documentos de OpenSSL en ciphers(1) ) . AES128-SHA funciona con SSLv3 a través de s_client , y se utiliza un rastreo rápido de Wireshark que muestra el conjunto de cifrado {0x00, 0x2f} .

$ openssl s_client -ssl3 -connect google.com:443 -cipher "AES128-SHA"
CONNECTED(00000003)
...
---
Certificate chain
 0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.google.com
   i:/C=US/O=Google Inc/CN=Google Internet Authority G2
 1 s:/C=US/O=Google Inc/CN=Google Internet Authority G2
   i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
 2 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
   i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
...
SSL-Session:
    Protocol  : SSLv3
    Cipher    : AES128-SHA
...

No puedo encontrar una referencia donde las suites de cifrado AES sean válidas en SSLv3. Miré el borrador The SSL Protocol Version 3.0 de 1996, RFC 6101, El Protocolo de Capa de sockets seguros (SSL) Versión 3.0 de 2011, y RFC 3268, AES Ciphersuites for TLS desde 2002. Incluso busqué en IETF Tools para AES y SSL.

¿Dónde están cubiertas las suites de cifrado AES para el protocolo SSLv3?

    
pregunta jww 20.06.2014 - 20:38
fuente

1 respuesta

9

SSL 3.0 es no un estándar. De manera realista, es "lo que Netscape estaba haciendo en ese momento". Cuando el protocolo se convirtió en un estándar, se convirtió en RFC 2246 , también conocido como "TLS 1.0".

El documento original que los autores de TLS usaron como fuente se colocó posteriormente (mucho más adelante) en el formato RFC y se convirtió en RFC 6101 , que tiene la categoría "Histórico". Los RFC históricos son bastante bajos en la escala de estándares; incluso están por debajo del RFC "informativo". Antes de la publicación de ese RFC, las personas que intentan escribir una biblioteca SSL primero implementarían TLS 1.0 según el RFC, luego analizarían el código fuente de OpenSSL y realizarían pruebas de interoperabilidad con las implementaciones existentes para ofrecer también SSLv3.

Dado que SSLv3 es un estándar de facto pero no de jure , no encontrará un RFC que especifique la forma estándar de hacer AES con SSL 3.0; Por definición, no puede existir tal estándar. En el mejor de los casos, uno puede imaginar un RFC "Histórico" que documentaría la práctica común, que es el uso directo de RFC 3268 . SSL 3.0 es muy similar a TLS 1.0, por lo que el backport de las suites de cifrado AES de TLS 1.0 a SSL 3.0 no es ambiguo; Como alguien que ya lo hizo (¡varias veces!), puedo confirmar que obtener el soporte AES "correcto" en SSL 3.0 no es difícil (donde "correcto" significa: "funciona con clientes y servidores SSL existentes").

    
respondido por el Thomas Pornin 20.06.2014 - 20:57
fuente

Lea otras preguntas en las etiquetas