Pregunta Diferencia entre SSL y TLS y su uso en Java


Estoy tratando de establecer una conexión SSL o TLS entre un cliente Java y el servidor que estoy configurando.

he estado usando SSLContext.getInstance("SSL") para construir el SSLContext, Y funcionó.

Me gustaría saber cuál es el propósito del protocol parámetro está en SSLContext.getInstance(String protocol).

En particular, qué cambia entre el uso SSLContext.getInstance("SSL") y SSLContext.getInstance("TLS")u otros valores posibles?


32
2017-10-30 08:31


origen


Respuestas:


Aquí hay un respuesta bastante detallada que escribí hace un tiempo describiendo la diferencia entre SSL y TLS. En resumen, TLS es el sucesor de SSL y TLS 1.0 puede considerarse como "SSL 3.1".

Si miras el Guía de referencia JSSE, en la sección SSLContext, dice:

Estos métodos estáticos cada uno devuelve una instancia que implementa al menos   el protocolo de socket seguro solicitado. La instancia devuelta puede   implementar otros protocolos también Por ejemplo, getInstance ("TLSv1") puede   devuelve una instancia que implementa "TLSv1", "TLSv1.1" y "TLSv1.2".

Esto también se menciona en el Nombres estándar documento.

En particular, si comprueba el código fuente de Oracle / OpenJDK 7 para SSLContextImpl, encontrarás que todo es SSLContexts admite todos los protocolos (desde SSLv3 usando un cliente SSLv2 Hola a TLS 1.2). Lo que difiere es qué protocolos están habilitados por defecto. Además, no debe confiar en esto en general, ya que otras implementaciones de Java (por ejemplo, IBM JRE) podrían comportarse de manera diferente.

Si desea que se use un conjunto particular de protocolos para una conexión, debe usar SSLSocket o SSLEnginees setEnabledProtocols método. De lo contrario, usará los valores predeterminados, como se describe en Documentación de proveedores.


28
2017-10-30 12:02



El protocolo se usa para comunicarse entre el servidor y el cliente. Asi que SSLContext(String protocol) devuelve la instancia del protocolo y luego usa ese servidor o cliente para comunicarse entre ellos por nivel de seguridad.

Para obtener más ref, consulte este enlace. http://www.herongyang.com/JDK/SSL-java-net-ssl-SSLContext-Class-Test.html


0
2017-10-30 09:23