You are on page 1of 5

Transport Layer Security

Transport Layer Security


Secure Sockets Layer (SSL; protocolo de capa de conexin segura) y su sucesor Transport Layer Security (TLS; seguridad de la capa de transporte) son protocolos criptogrficos que proporcionan comunicaciones seguras por una red, comnmente Internet.

Descripcin
SSL proporciona autenticacin y privacidad de la informacin entre extremos sobre Internet mediante el uso de criptografa. Habitualmente, slo el servidor es autenticado (es decir, se garantiza su identidad) mientras que el cliente se mantiene sin autenticar. SSL implica una serie de fases bsicas: Negociar entre las partes el algoritmo que se usar en la comunicacin Intercambio de claves pblicas y autenticacin basada en certificados digitales Cifrado del trfico basado en cifrado simtrico Durante la primera fase, el cliente y el servidor negocian qu algoritmos criptogrficos se van a usar. Las implementaciones actuales proporcionan las siguientes opciones: Para criptografa de clave pblica: RSA, Diffie-Hellman, DSA (Digital Signature Algorithm) o Fortezza; Para cifrado simtrico: RC2, RC4, IDEA (International Data Encryption Algorithm), DES (Data Encryption Standard), Triple DES y AES (Advanced Encryption Standard); Con funciones hash: MD5 o de la familia SHA.

Funcionamiento
El protocolo SSL intercambia registros; opcionalmente, cada registro puede ser comprimido, cifrado y empaquetado con un cdigo de autenticacin del mensaje (MAC). Cada registro tiene un campo de content_type que especifica el protocolo de nivel superior que se est usando. Cuando se inicia la conexin, el nivel de registro encapsula otro protocolo, el protocolo handshake, que tiene el content_type 22. El cliente enva y recibe varias estructuras handshake: Enva un mensaje ClientHello especificando una lista de conjunto de cifrados, mtodos de compresin y la versin del protocolo SSL ms alta permitida. ste tambin enva bytes aleatorios que sern usados ms tarde (llamados Challenge de Cliente o Reto). Adems puede incluir el identificador de la sesin. Despus, recibe un registro ServerHello, en el que el servidor elige los parmetros de conexin a partir de las opciones ofertadas con anterioridad por el cliente. Cuando los parmetros de la conexin son conocidos, cliente y servidor intercambian certificados (dependiendo de las claves pblicas de cifrado seleccionadas). Estos certificados son actualmente X.509, pero hay tambin un borrador especificando el uso de certificados basados en OpenPGP. El servidor puede requerir un certificado al cliente, para que la conexin sea mutuamente autenticada. Cliente y servidor negocian una clave secreta (simtrica) comn llamada master secret, posiblemente usando el resultado de un intercambio Diffie-Hellman, o simplemente cifrando una clave secreta con una clave pblica que es descifrada con la clave privada de cada uno. Todos los datos de claves restantes son derivados a partir de este master secret (y los valores aleatorios generados en el cliente y el servidor), que son pasados a travs una funcin pseudoaleatoria cuidadosamente elegida. TLS/SSL poseen una variedad de medidas de seguridad: Numerando todos los registros y usando el nmero de secuencia en el MAC.

Transport Layer Security Usando un resumen de mensaje mejorado con una clave (de forma que solo con dicha clave se pueda comprobar el MAC). Esto se especifica en el RFC 2104). Proteccin contra varios ataques conocidos (incluyendo ataques man-in-the-middle), como los que implican un degradado del protocolo a versiones previas (por tanto, menos seguras), o conjuntos de cifrados ms dbiles. El mensaje que finaliza el protocolo handshake (Finished) enva un hash de todos los datos intercambiados y vistos por ambas partes. La funcin pseudo aleatoria divide los datos de entrada en 2 mitades y las procesa con algoritmos hash diferentes (MD5 y SHA), despus realiza sobre ellos una operacin XOR. De esta forma se protege a s mismo de la eventualidad de que alguno de estos algoritmos se revelen vulnerables en el futuro.

Aplicaciones
SSL se ejecuta en una capa entre los protocolos de aplicacin como HTTP, SMTP, NNTP y sobre el protocolo de transporte TCP, que forma parte de la familia de protocolos TCP/IP. Aunque pueda proporcionar seguridad a cualquier protocolo que use conexiones de confianza (tal como TCP), se usa en la mayora de los casos junto a HTTP para formar HTTPS. HTTPS es usado para asegurar pginas World Wide Web para aplicaciones de comercio electrnico, utilizando certificados de clave pblica para verificar la identidad de los extremos. Aunque un nmero creciente de productos clientes y servidores pueden proporcionar SSL de forma nativa, muchos an no lo permiten. En estos casos, un usuario podra querer usar una aplicacin SSL independiente como Stunnel para proporcionar cifrado. No obstante, el Internet Engineering Task Force recomend en 1997 que los protocolos de aplicacin ofrecieran una forma de actualizar a TLS a partir de una conexin sin cifrado (plaintext), en vez de usar un puerto diferente para cifrar las comunicaciones esto evitara el uso de envolturas (wrappers) como Stunnel. SSL tambin puede ser usado para tunelizar una red completa y crear una red privada virtual (VPN), como en el caso de OpenVPN.

Historia y desarrollo
Desarrollado por Netscape, SSL versin 3.0 se public en 1996, que ms tarde sirvi como base para desarrollar TLS versin 1.0, un estndar protocolo IETF definido por primera vez en el RFC 2246. Visa, MasterCard, American Express y muchas de las principales instituciones financieras han aprobado SSL para el comercio sobre Internet. SSL opera de una manera modular: sus autores lo disearon extensible, con soporte para compatibilidad hacia delante y hacia atrs, y negociacin entre las partes (peer-to-peer).

Primeras claves dbiles


Algunas primeras implementaciones de SSL podan usar claves simtricas con un mximo de slo 40-bit debido a las restricciones del gobierno de los Estados Unidos sobre la exportacin de tecnologa criptogrfica. Dicho gobierno impuso una clave de 40-bit lo suficientemente pequea para ser rota por un ataque de fuerza bruta por las agencias de seguridad nacional que desearan leer el trfico cifrado, a la vez que representaban un obstculo para atacantes con menos medios. Una limitacin similar se aplic a Lotus Notes en versiones para la exportacin. Despus de varios aos de controversia pblica, una serie de pleitos, y el reconocimiento del gobierno de Estados Unidos de cambios en la disponibilidad en el mercado de 'mejores' productos criptogrficos producidos fuera del pas, las autoridades relajaron algunos aspectos de las restricciones de exportacin. La limitacin de claves de 40-bit en su mayora ha desaparecido. Las implementaciones modernas usan claves de 128-bit (o ms) para claves de cifrado simtricas.

Transport Layer Security

Estndares
La primera definicin de TLS apareci en el RFC 2246: "The TLS Protocol Version 1.0" (El protocolo TLS versin 1.0). Otros RFC posteriores extendieron TLS: RFC 2712: "Addition of Kerberos Cipher Suites to Transport Layer Security (TLS)". Las familias de cifrados de 40-bit definidas en este memo aparecen slo para propsitos de documentacin del hecho de que esas familias de cdigos de cifrado han sido ya asignadas. RFC 2817: "Upgrading to TLS Within HTTP/1.1", explica cmo usar el mecanismo de actualizacin en HTTP/1.1 para iniciar TLS sobre una conexin TCP existente. Esto permite al trfico HTTP inseguro y seguro compartir el mismo puerto conocido (en este caso, http: en el 80 en vez de https: en el 443). RFC 2818: "HTTP Over TLS", diferencia trfico seguro de trfico inseguro mediante el uso de un 'puerto de servidor' diferente. RFC 3268: "AES Ciphersuites for TLS". Aade la familia de cifrado AES a los cifrados simtricos previamente existentes. RFC 3546: "Transport Layer Security (TLS) Extensions", aade un mecanismo para negociar extensiones de protocolos durante la inicializacin de sesin y define algunas extensiones. RFC 4279: "Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)", aade tres conjuntos de nuevas familias de cifrados para que el protocolo TLS permita la autenticacin basada en claves previamente compartidas.

TLS 1.1
TLS 1.1 es la ltima versin aprobada del protocolo TLS. TLS 1.1 clarifica algunas ambigedades y aade cierto nmero de recomendaciones. TLS 1.1 es muy similar a TLS 1.0. La principal razn de esta nueva versin es un formato modificado para cifrado RSA anterior al uso de 'master secret', que es parte del mensaje de intercambio de claves del cliente (si se usa RSA), para usar PKCS#1 versin 2.1, en detrimento de PKCS#1 versin 1.5 en TLS 1.0. La razn de dicho cambio es para protegerse contra ataques descubiertos por Daniel Bleichenbacher que podan lanzarse contra servidores TLS 1.0, usando PKCS#1 versin 1.5, que podran fallar de diferentes formas dependiendo de si el formato descifrado fuera correcto o no. ste tambin incluye recomendaciones para evitar ataques remotos programados. TLS 1.1 est actualmente implementado en el navegador Opera y en GnuTLS.

Vase tambin
Datagram Transport Layer Security OpenSSL: una implementacin de cdigo abierto (y muy extendida) GnuTLS: una implementacin de software libre con licencia compatible con GPL JSSE: una implementacin realizada en el Java incluida en el Java Runtime Environment HTTPS X.509

Transport Layer Security

Enlaces externos
RFC 4346 The TLS Protocol, versin 1.1 (abril de 2006) RFC 2246 - The TLS Protocol, versin 1.0 (1999) Centro de informacin de SSL [1] The IETF TLS Workgroup [2] The GNU Transport Layer Security Library [3] implements both SSL and TLS SSL: CSR generation guide [4] Mozilla's Network Security Services (NSS) [5] is dual-licensed under the MPL and the GPL

Referencias
David Wagner and Bruce Schneier, Analysis of the SSL 3.0 Protocol, The second USENIX Workshop on Electronic Commerce Proceedings, USENIX Press, November 1996, pp2940.

Referencias
[1] http:/ / www. verisign. es/ products-services/ security-services/ ssl/ ssl-information-center/ index. html [2] http:/ / www. ietf. org/ html. charters/ tls-charter. html [3] http:/ / www. gnu. org/ software/ gnutls/ manual/ index. html [4] http:/ / www. sslvalue. com/ ssl-information/ ssl-csr-generation/ [5] http:/ / www. mozilla. org/ projects/ security/ pki/ nss/

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


Transport Layer Security Fuente: http://es.wikipedia.org/w/index.php?oldid=49657551 Contribuyentes: -

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/

You might also like