title: Wireless Transport Layer Security
text: # Wireless Transport Layer Security
  
  Wireless Transport Layer Security o WTLS (seguridad para la capa de transporte en comunicaciones inalámbricas) es un protocolo de seguridad, perteneciente al conjunto de protocolos de Wireless Application Protocol (WAP).
  
  # Wireless Transport Layer Security
  ## Visión General
  
  WTLS deriva del protocolo TLS. WTLS utiliza una semántica similar adaptada para dispositivos móviles con menor ancho de banda. Las adaptaciones son:
  * Estructuras de datos comprimidas — Cuando es posible el tamaño de los paquetes son reducidos utilizando Bit field, descartando redundancia y truncando algunos elementos criptográficos.
  * Nuevo formato de certificado — WTLS define un formato de certificado comprimido. El mismo cumple en líneas generales con la estructura del certificado X.509 v3, pero utiliza estructuras de datos más pequeñas.
  * Diseño basado en paquetes — TLS fue diseñado para utilizarse sobre flujo de datos (data stream). WTLS adapta ese diseño para que sea más apropiado para una red basada en transmisión de paquetes. Una parte significativa de este diseño está basado en el requerimiento de que sea posible utilizar una red de paquetes como por ejemplo SMS como capa de transporte.
  WTLS fue reemplazado en el estándar WAP 2.0 por el estándar End-to-end Transport Layer Security.
  
  # Wireless Transport Layer Security
  ## Seguridad
  
  WTLS utiliza modernos algoritmos criptográficos y tal como lo realiza TLS permite negociación de métodos criptográficos entre el cliente y el servidor.
  
  # Wireless Transport Layer Security
  ## Seguridad
  ### Algoritmos
  
  Algunos de los algoritmos:
  * Intercambio de Claves y Certificaciones
  ** RSA (Sistema Criptográfico con Clave Pública)
  ** Criptografía de curva elíptica (CCE)
  * Criptografía simétrica
  ** DES
  ** Triple DES
  ** RC5
  * Resumen del mensaje (message digest)
  ** MD5
  ** SHA1
  
  # Wireless Transport Layer Security
  ## Seguridad
  ### Críticas
  
  * Cifrado/Descifrado en el gateway — en la arquitectura WAP el contenido es generalmente almacenado en el servidor como WML descomprimido. El contenido es obtenido por el gateway utilizando el protocolo HTTP y se comprime utilizando WBXML, para lograr esta compresión el gateway debe poder manipular el WML en texto plano, de esta manera si hay cifrado entre el cliente y el gateway (utilizando WTLS) y entre el gateway y el servidor (utilizando HTTPS) el gateway actúa como man-in-the-middle. Esta arquitectura de gateway atiende ciertos propósitos: pasarela entre HTML y WML; los proveedores de contenido no necesitan implementar compresión WBXML; elimina dependencia de DNS; habilita un walled garden (jardín cerrado, "entorno de navegación que controla la información y los sitios web que el usuario puede acceder").
  * Truncado de Digest — HMAC (Código de Autenticación de Mensajes basado en Hash) el digest de los mensajes es truncado para reducir el overhead en la transmisión, esto reduce potencialmente la efectividad de HMAC reduciendo la protección de la integridad de los datos.
  * Resumen inadecuado — WTLS es significativamente diferente de TLS, no está claro si los cambios realizados a WTLS debilitan en algún sentido la seguridad. El uso de un nuevo formato del certificado es un ejemplo de esto. El formato definido en la especificación de WTLS puede no ser apropiado para todos los usos en los que un certificado puede ser requerido.
  * Implementación del Cliente — Como no hay una especificación oficial que mencione como implementar WTLS, se puede utilizar algoritmos criptográficos o procesos de generación de claves inseguros. En algunos programas clientes se puede deshabilitar WTLS.
  
  # Wireless Transport Layer Security
  ## Interoperabilidad
  
  Como fue mencionado previamente, el cliente y el servidor negocian los métodos criptográficos. Esto sucede cuando se inicia la sesión, en breve el cliente envía una lista de los algoritmos que soporta y el servidor selecciona un conjunto de ellos, o rechaza la conexión. El estándar no especifica qué algoritmos son obligatorios de soportar. Un endpoint (cliente o servidor) que necesite interactuar con cualquier otro endpoint necesita implementar cada algoritmo (incluyendo aquellos que estén protegidos por derechos intelectuales).