
Esta es una inmersión técnica profunda despuésesta descripción generalSe hizo la pregunta.
¿Cuáles son las diferencias de protocolo entre SSL y TLS?
¿Existe realmente una diferencia suficiente como para justificar un cambio de nombre? (en lugar de llamarlo "SSLv4" o SSLv5 para las versiones más nuevas de TLS)
Respuesta1
SSLv2 y SSLv3 son completamente diferentes (y ahora ambos se consideran inseguros). SSLv3 y TLSv1.0 son muy similares, pero tienen algunas diferencias.
Podría considerar TLSv1.0 como SSLv3.1 (de hecho, eso es lo que sucede dentro de los registros intercambiados). Es más fácil comparar elTLSv1.0conTLSv1.1yTLSv1.2porque todos han sido editados dentro del IETF y siguen más o menos la misma estructura. Al ser SSLv3 editado por una institución diferente (Netscape), resulta un poco más difícil detectar las diferencias.
Aquí hay algunas diferencias, pero dudo que pueda enumerarlas todas:
- En el
ClientHello
mensaje (primer mensaje enviado por el cliente, para iniciar el protocolo de enlace), la versión es{3,0}
para SSLv3,{3,1}
para TLSv1.0 y{3,2}
para TLSv1.1. - La
ClientKeyExchange
diferencia. - MAC/HMAC difiere (TLS usa HMAC mientras que SSL usa una versión anterior de HMAC).
- La derivación de la clave es diferente.
- Los datos de la aplicación cliente se pueden enviar inmediatamente después de enviar el
Finished
mensaje SSL/TLS en SSLv3. En TLSv1, debe esperar elFinished
mensaje del servidor. - La lista de conjuntos de cifrado difiere (y a algunos de ellos se les ha cambiado el nombre de
SSL_*
aTLS_*
, manteniendo el mismo número de identificación). - También hay diferencias respecto a la nuevaextensión de renegociación.
Lo recomendaría encarecidamenteEl libro de Eric Rescorla.SSL y TLS: diseño y construcción de sistemas seguros, Addison-Wesley, 2001 ISBN 0-201-61598-3, si realmente quieres más detalles. Aprendí algunos de los puntos mencionados anteriormente en este libro. El autor menciona ocasionalmente las diferencias entre SSLv3 y TLS (v1.0 solo en el momento en que se escribió el libro) cuando explica algunos de los mensajes SSL/TLS, pero necesita la explicación básica sobre estos mensajes para tener la oportunidad de comprenderlos ( y no es apropiado copiar/pegar de este libro aquí).
Respuesta2
Me limitaré a hacerme eco de las otras respuestas, pero quizás con un énfasis ligeramente diferente.
Había un protocolo de sockets seguros que era "propiedad" de Netscape y que se llamaba SSL versión 2. Se lanzó una nueva versión con una estructura de registros diferente y mejoras de seguridad también "propiedad" de Netscape y se llamó SSL versión 3. Dentro del protocolo en varios lugares es un campo de número de versión binaria. Para SSL versión 3, este campo está configurado en 0x03 0x00, es decir, versión 3.0. Entonces el IETF decidió crear su propio estándar. Posiblemente porque había algunas incertidumbres sobre la propiedad intelectual sobre SSL, incluido si "SSL" era una marca registrada de Netscape, cuando el IETF lanzó la siguiente versión de este protocolo le dio su propio nombre: protocolo Transport Layer Security o TLS versión 1.0. El formato de registro y la estructura general son idénticos y consistentes con SSL v3. El número de versión binaria se aceleró a 0x03 0x01 y, como otros han señalado, hubo algunos cambios criptográficos menores. Desde entonces, existen TLS versiones 1.1 y 1.2, para las cuales los números de protocolo internos son 0x03 0x02 y 0x03 0x03.
Al ignorar SSLv2, fue básicamente solo un cambio de nombre junto con el ajuste normal del protocolo que ocurre a medida que las personas se vuelven más inteligentes en cuanto a seguridad y rendimiento.
Respuesta3
Básicamente, no es más que un cambio de nombre para una versión más nueva del protocolo. Creo que la razón principal fue diferenciarlo del estándar informal más antiguo diseñado principalmente por Netscape después de que se convirtió en un protocolo oficial de seguimiento de estándares del IETF.
Como se dijo en las respuestas a su pregunta anterior, esto no significa que SSLv3 y TLSv1.0 sean compatibles. Citando de RFC 2246:
Las diferencias entre este protocolo y SSL 3.0 no son dramáticas, pero son lo suficientemente significativas como para que TLS 1.0 y SSL 3.0 no interoperen.
Supongo que si realmente quieres saber las diferencias exactas entre los protocolos, debes leer los estándares y compararte.
Respuesta4
Diferencias:
- TLS se ejecuta bastante por encima de un protocolo estándar. Una conexión TLS comienza como una sesión no cifrada de un servicio estándar, pero en algún momento empiezan a negociar el cifrado. Requiere ampliar el protocolo estándar para esta negociación.
- Los protocolos estándar se ejecutan sobre SSL. Una conexión SSL primero negocia el cifrado y luego ejecuta el protocolo básico sobre ella.