Datagram Transport Layer Security ( DTLS ) es un protocolo de comunicaciones que proporciona seguridad para aplicaciones basadas en datagramas al permitirles comunicarse de una manera diseñada [1] [2] para evitar escuchas , manipulación o falsificación de mensajes . El protocolo DTLS se basa en la seguridad de la capa de transporte orientada a la transmisión .(TLS) y está destinado a proporcionar garantías de seguridad similares. El datagrama del protocolo DTLS conserva la semántica del transporte subyacente; la aplicación no sufre los retrasos asociados con los protocolos de transmisión, pero debido a que usa UDP o SCTP , la aplicación tiene que lidiar con el reordenamiento de paquetes , la pérdida de datagramas y datos más grandes que el tamaño de un paquete de red de datagramas . Debido a que DTLS usa UDP o SCTP en lugar de TCP, evita el "problema de fusión de TCP", [3] [4] cuando se usa para crear un túnel VPN.
Definición [ editar ]
Los siguientes documentos definen DTLS:
- RFC 6347 para usar con el Protocolo de datagramas de usuario (UDP),
- RFC 5238 para usar con el Protocolo de control de congestión de datagramas (DCCP),
- RFC 5415 para usar con control y aprovisionamiento de puntos de acceso inalámbricos (CAPWAP),
- RFC 6083 para usar con encapsulación Stream Control Transmission Protocol (SCTP),
- RFC 5764 para su uso con el Protocolo de transporte seguro en tiempo real (SRTP) posteriormente denominado DTLS-SRTP en un borrador con el Protocolo de control de transporte seguro en tiempo real (SRTCP). [5]
DTLS 1.0 se basa en TLS 1.1 y DTLS 1.2 se basa en TLS 1.2. No hay DTLS 1.1; ese número de versión se omitió para armonizar los números de versión con TLS. [2] Se está trabajando en la especificación DTLS 1.3 y, al igual que las versiones anteriores de DTLS, planea proporcionar "garantías de seguridad equivalentes [a TLS 1.3] con la excepción de la protección del pedido / no posibilidad de reproducción". [6]
Implementaciones [ editar ]
Bibliotecas [ editar ]
Implementación | DTLS 1.0 [1] | DTLS 1.2 [2] |
---|---|---|
Botan | sí | sí |
cryptlib | No | No |
GnuTLS | sí | sí |
Extensión de Java Secure Socket | sí | sí |
LibreSSL | sí | No |
libsystools [7] | sí | No |
MatrixSSL | sí | sí |
mbed TLS (anteriormente PolarSSL) | Sí [8] | Sí [8] |
Servicios de seguridad de red | Sí [9] | Sí [10] |
OpenSSL | sí | Sí [11] |
PyDTLS [12] [13] | sí | sí |
Python3-dtls [14] [15] | sí | sí |
RSA BSAFE | No | No |
s2n | No | No |
SChannel XP / 2003, Vista / 2008 | No | No |
SCanal 7 / 2008R2, 8/2012, 8.1 / 2012R2, 10 | Sí [16] | No [16] |
SCanal 10 (1607), 2016 | sí | Sí [17] |
Transporte seguro OS X 10.2–10.7 / iOS 1–4 | No | No |
Transporte seguro OS X 10.8–10.10 / iOS 5–8 | Sí [18] | No |
TiburónSSL | No | No |
tinydtls [19] | No | sí |
Waher.Security.DTLS [20] | No | sí |
wolfSSL (anteriormente CyaSSL) | sí | sí |
@ nodertc / dtls [21] [22] | No | sí |
java-dtls [23] | sí | sí |
pion / dtls [24] (Ir) | No | sí |
californio / escandio [25] (Java) | No | sí |
SNF4J [26] (Java) | sí | sí |
Implementación | DTLS 1.0 | DTLS 1.2 |
Aplicaciones [ editar ]
- Cisco AnyConnect VPN Client utiliza TLS e inventó una VPN basada en DTLS. [27]
- OpenConnect es un servidor ocserv y cliente compatible con AnyConnect de código abierto que admite (D) TLS. [28]
- Cisco InterCloud Fabric utiliza DTLS para formar un túnel entre entornos informáticos privados y públicos / de proveedores [29]
- ZScaler 2.0 (una solución popular de ZTN ) utiliza DTLS para tunelización [30]
- El cliente VPN Edge de F5 Networks utiliza TLS y DTLS [31]
- Citrix Systems NetScaler usa DTLS para proteger UDP [32]
- Navegadores web: Google Chrome , Opera y Firefox admiten DTLS-SRTP [33] para WebRTC . Firefox 86 y posteriores no son compatibles con DLTS 1.0. [34]
Vulnerabilidades [ editar ]
En febrero de 2013, dos investigadores de Royal Holloway, Universidad de Londres, descubrieron un ataque de tiempo [35] que les permitió recuperar (partes del) texto sin formato de una conexión DTLS utilizando la implementación OpenSSL o GnuTLS de DTLS cuando se utilizó el cifrado en modo Cipher Block Chaining . .
Ver también [ editar ]
- ZRTP
- Protocolo de datagramas de usuario confiable
- QUIC
- WireGuard
Referencias [ editar ]
- ^ a b Rescorla, Eric; Modadugu, Nagendra (abril de 2006). Seguridad de la capa de transporte de datagramas . doi : 10.17487 / RFC4347 . RFC 4347 .
- ^ a b c Rescorla, Eric; Modadugu, Nagendra (enero de 2012). Seguridad de la capa de transporte de datagramas Versión 1.2 . doi : 10.17487 / RFC6347 . RFC 6347 .
- ↑ Titz, Olaf (23 de abril de 2001). "Por qué TCP sobre TCP es una mala idea" . Consultado el 17 de octubre de 2015 .
- ^ Honda, Osamu; Ohsaki, Hiroyuki; Imase, Makoto; Ishizuka, Mika; Murayama, Junichi (octubre de 2005). "Comprensión de TCP sobre TCP: efectos de la tunelización de TCP en el rendimiento y la latencia de un extremo a otro". En Atiquzzaman, Mohammed; Balandin, Sergey I (eds.). Rendimiento, calidad de servicio y control de las redes de sensores y comunicaciones de próxima generación III . 6011 . Código Bibliográfico : 2005SPIE.6011..138H . CiteSeerX 10.1.1.78.5815 . doi : 10.1117 / 12.630496 . S2CID 8945952 .
- ^ Peck, M .; Igoe, K. (25 de septiembre de 2012). "Perfil Suite B para seguridad de la capa de transporte de datagramas / Protocolo de transporte seguro en tiempo real (DTLS-SRTP)" . IETF .
- ^ "Protocolo de seguridad de la capa de transporte de datagramas (DTLS) versión 1.3" .
- ^ Julien Kauffmann. "libsystools: una biblioteca de código abierto TLS / DTLS para Windows / Linux usando OpenSSL" . Sourceforge .
- ^ a b "mbed TLS 2.0.0 lanzado" . BRAZO. 2015-07-13 . Consultado el 25 de agosto de 2015 .
- ^ "Notas de la versión NSS 3.14" . Red de desarrolladores de Mozilla . Mozilla. Archivado desde el original el 17 de enero de 2013 . Consultado el 27 de octubre de 2012 .
- ^ "Notas de la versión NSS 3.16.2" . Red de desarrolladores de Mozilla . Mozilla. 2014-06-30 . Consultado el 30 de junio de 2014 .
- ^ "A partir de la versión 1.0.2" . El proyecto OpenSSL . El proyecto OpenSSL. 2015-01-22 . Consultado el 26 de enero de 2015 .
- ^ Ray Brown. "pydtls - Seguridad de la capa de transporte de datagramas para Python" . GitHub .
- ^ Ray Brown. "DTLS para Python" . Fundación de software Python .
- ^ Ray Brown / Mobius Software LTD. "pydtls - Seguridad de la capa de transporte de datagramas para Python" . GitHub .
- ^ Ray Brown / Mobius Software LTD. "DTLS para Python3 basado en PyDTLS" . Fundación de software Python .
- ^ a b "Hay una actualización disponible que agrega compatibilidad con DTLS en Windows 7 SP1 y Windows Server 2008 R2 SP1" . Microsoft . Consultado el 13 de noviembre de 2012 .
- ^ Justinha. "TLS (Schannel SSP) cambios en Windows 10 y Windows Server 2016" . docs.microsoft.com . Consultado el 1 de septiembre de 2017 .
- ^ "Nota técnica TN2287: problemas de interoperabilidad de iOS 5 y TLS 1.2" . Biblioteca para desarrolladores de iOS . Apple . Consultado el 3 de mayo de 2012 .
- ^ Olaf Bergmann. "tinydtls" . Fundación Eclipse .
- ^ Peter Waher. "Waher.Security.DTLS" . Waher Data AB .
- ^ Dmitriy Tsvettsikh. "Asegure las comunicaciones UDP usando DTLS en js puro" . GitHub .
- ^ Dmitriy Tsvettsikh. "DTLS en js puro" . npm .
- ^ Mobius Software LTD. "Implementación Java DTLS sin bloqueo basada en BouncyCastle y Netty" . Mobius Software LTD .
- ^ Sean DuBois. "pion / dtls: implementación de servidor / cliente DTLS 1.2 para Go" . GitHub .
- ^ "californium / scandium: implementación de servidor / cliente DTLS 1.2 para java y coap. Incluye extensión de identificación de conexión" . Fundación Eclipse .
- ^ SNF4J.ORG. "Marco de red simple para Java (SNF4J)" . GitHub .
- ^ "Preguntas frecuentes de AnyConnect: túneles, comportamiento de reconexión y el temporizador de inactividad" . Cisco . Consultado el 26 de febrero de 2017 .
- ^ "OpenConnect" . OpenConnect . Consultado el 26 de febrero de 2017 .
- ^ "Descripción de la arquitectura de Cisco InterCloud" (PDF) . Cisco Systems .
- ^ "Túnel ZScaler ZTNA 2.0" . ZScaler .
- ^ "Seguridad de la capa de transporte de datagramas f5 (DTLS)" . f5 Redes .
- ^ "Configuración de un servidor virtual DTLS" . Sistemas Citrix .
- ^ "Notas de interoperabilidad de WebRTC" . Archivado desde el original el 11 de mayo de 2013.
- ^ "Firefox 86.0, vea todas las funciones nuevas, actualizaciones y correcciones" . Mozilla . 2021-02-23 . Consultado el 23 de febrero de 2021 .
Desde Firefox 86 en adelante, DTLS 1.0 ya no es compatible para establecer PeerConnections de WebRTC.
Todos los servicios WebRTC deben admitir DTLS 1.2 a partir de ahora como versión mínima.
- ^ Ataques de recuperación de texto plano contra Datagram TLS
Enlaces externos [ editar ]
- "Transport Layer Security (tls) - Charter" . IETF .
- Modadugu, Nagendra; Rescorla, Eric (21 de noviembre de 2003). "El Diseño e Implementación de Datagram TLS" (PDF) . Grupo Criptográfico de Stanford . Consultado el 17 de marzo de 2013 .
- AlFardan, Nadhem J .; Paterson, Kenneth G. "Ataques de recuperación de texto plano contra Datagram TLS" (PDF) . Consultado el 25 de noviembre de 2013 .
- Gibson, Steve; Laporte, Leo (28 de noviembre de 2012). "Seguridad de la capa de transporte de datagramas" . Seguridad ahora 380 . Consultado el 17 de marzo de 2013 . Vaya a 1:07:14.
- Código de muestra de Robin Seggelmann : eco, generador de caracteres y descarte de clientes / servidores.
This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.