Protocolos TLS y DTLS | Java

Transport Layer Security (TLS) y su predecesor, Secure Sockets Layer (SSL), son protocolos criptográficos que proporcionan un canal seguro entre dos pares de comunicación. TLS utiliza una combinación de procesos criptográficos al proporcionar propiedades de autenticación, confidencialidad e integridad para la comunicación a través de una red potencialmente hostil o no confiable. TLS se ejecuta en un canal de transporte confiable y orientado a la transmisión, generalmente Protocolo de control de transporte (TCP). TLS es independiente del protocolo de aplicación. Los protocolos de nivel superior, por ejemplo, el Protocolo de transferencia de hipertexto (HTTP), pueden superponerse a TLS de forma transparente.

Los protocolos Datagram Transport Layer Security (DTLS) se basan en los protocolos TLS orientados a la transmisión y están destinados a proporcionar propiedades de seguridad similares para el transporte de datagramas, como el Protocolo de datagramas de usuario (UDP), que no proporciona una entrega de datos confiable o en orden.

El JDK proporciona API y una implementación de los protocolos SSL, TLS y DTLS que incluye funcionalidad para el cifrado de datos, la integridad de los mensajes y la autenticación de clientes y servidores. Las aplicaciones pueden usar (D)TLS para proporcionar el paso seguro de datos entre dos pares a través de cualquier protocolo de aplicación, como HTTP sobre TCP / IP.

La clase javax.net.ssl.SSLSocket representa un socket de red que encapsula el soporte de TLS sobre un socket de flujo normal (java.net.Socket). Algunas aplicaciones pueden querer utilizar abstracciones de transporte de datos alternativas (por ejemplo, New-I/O); la clase javax.net.ssl.SSLEngine está disponible para producir y consumir paquetes TLS/DTLS.

El JDK también incluye API que admiten la noción de administradores de claves y administradores de confianza conectables (basados ​​en el proveedor). Un administrador de claves está encapsulado por la clase javax.net.ssl.KeyManager y administra las claves utilizadas para realizar la autenticación. Un administrador de confianza está encapsulado por la clase TrustManager (en el mismo paquete) y toma decisiones sobre en quién confiar en función de los certificados del almacén de claves que administra.

El JDK incluye un proveedor integrado que implementa los protocolos SSL/TLS/DTLS:
  • SSL 3.0
  • TLS 1.0
  • TLS 1.1
  • TLS 1.2
  • TLS 1.3
  • DTLS 1.0
  • DTLS 1.2

Comentarios

Entradas populares