El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
Este documento describe los conceptos básicos del protocolo Secure Sockets Layer (SSL) y proporciona una transacción de ejemplo y captura de paquetes.
La unidad básica de datos en SSL es un registro. Cada registro consta de un encabezado de registro de cinco bytes, seguido de datos.
Tipo | Versión | Longitud | ||
T | VH | VL | LH | LL |
Hay cuatro tipos de registro en SSL:
La versión de registro es un valor de 16 bits y se formatea en orden de red.
Nota: Para SSL versión 3 (SSLv3), la versión es 0x0300. Para Transport Layer Security Version 1 (TLSv1), la versión es 0x0301. Cisco Adaptive Security Appliance (ASA) no admite SSL versión 2 (SSLv2), que utiliza la versión 0x0002, ni ninguna versión de TLS mayor que TLSv1.
La longitud del registro es un valor de 16 bytes y se formatea en orden de red.
En teoría, esto significa que un único registro puede tener hasta 65,535 (2^16 -1) bytes de longitud. El RFC2246 de TLSv1 establece que la longitud máxima es de 16.383 bytes (2^14 -1). Se sabe que los productos de Microsoft (Microsoft Internet Explorer e Internet Information Services) exceden estos límites.
Esta sección describe los cuatro tipos de registros SSL.
Los registros de intercambio de señales contienen un conjunto de mensajes que se utilizan para el intercambio de señales. Estos son los mensajes y sus valores:
En el caso simple, los registros de entrada en contacto no se cifran. Sin embargo, un registro de entrada en contacto que contiene un mensaje finalizado siempre se cifra, ya que siempre ocurre después de un registro Change Cipher espec (CCS).
Los registros CCS se utilizan para indicar un cambio en los cifrados criptográficos. Inmediatamente después del registro de CCS, todos los datos se cifran con el nuevo cifrado. Los registros de CCS pueden o no cifrarse; en una conexión simple con un solo intercambio de señales, el registro CCS no está cifrado.
Los registros de alerta se utilizan para indicar al par que se ha producido una condición. Algunas alertas son advertencias, mientras que otras son fatales y provocan que la conexión falle. Las alertas pueden cifrarse o no, y pueden ocurrir durante un intercambio de señales o durante la transferencia de datos. Hay dos tipos de alertas:
Estos registros contienen los datos reales de la aplicación. Estos mensajes son transportados por la capa de registro y están fragmentados, comprimidos y cifrados, según el estado de conexión actual.
Esta sección describe una transacción de ejemplo entre el cliente y el servidor.
Cuando un cliente SSL y un servidor comienzan a comunicarse, acuerdan una versión de protocolo, seleccionan algoritmos criptográficos, opcionalmente se autentican mutuamente y utilizan técnicas de cifrado de clave pública para generar secretos compartidos. Estos procesos se realizan en el protocolo de intercambio de señales. En resumen, el cliente envía un mensaje de saludo del cliente al servidor, que debe responder con un mensaje de saludo del servidor o se produce un error fatal y la conexión falla. El cliente Hello y el servidor Hello se utilizan para establecer las capacidades de mejora de la seguridad entre el cliente y el servidor.
Hola de cliente
Client Hello envía estos atributos al servidor:
Nota: La dirección IP del servidor en las capturas es 10.0.0.2 y la dirección IP del cliente es 10.0.0.1.
Hola de servidor
El servidor devuelve estos atributos al cliente:
Para solicitudes de reanudación de sesión SSL:
Servidor Hello Finalizado
El servidor envía el mensaje Hello Done del servidor para indicar el final del servidor hello y los mensajes asociados. Después de enviar este mensaje, el servidor espera una respuesta del cliente. Cuando recibe el mensaje Server Hello Done, el cliente verifica que el servidor haya proporcionado un certificado válido, si es necesario, y verifica que los parámetros Server Hello sean aceptables.
Certificado de servidor, intercambio de claves de servidor y solicitud de certificado (opcional)
Certificado de cliente (opcional)
Este es el primer mensaje que el cliente envía después de recibir un mensaje de Server Hello Done. Este mensaje sólo se envía si el servidor solicita un certificado. Si no hay ningún certificado adecuado disponible, el cliente envía una alerta no_certificate en su lugar. Esta alerta es sólo una advertencia; sin embargo, el servidor podría responder con una alerta de falla de entrada en contacto fatal si se requiere autenticación del cliente. Los certificados DH del cliente deben coincidir con los parámetros DH especificados por el servidor.
Intercambio de claves de cliente
El contenido de este mensaje depende del algoritmo de clave pública seleccionado entre los mensajes Client Hello y Server Hello. El cliente utiliza una clave premaster cifrada por el algoritmo Rivest-Shamir-Addleman (RSA) o DH para el acuerdo de clave y la autenticación. Cuando se utiliza RSA para la autenticación del servidor y el intercambio de claves, el cliente genera un pre_master_secret de 48 bytes, se cifra bajo la clave pública del servidor y se envía al servidor. El servidor utiliza la clave privada para descifrar el pre_master_secret. Ambas partes convierten el pre_master_secret en el master_secret.
Verificación de certificado (opcional)
Si el cliente envía un certificado con capacidad de firma, se envía un mensaje de verificación de certificado firmado digitalmente para verificar explícitamente el certificado.
Cambio de los mensajes de especificación del cifrado
El cliente envía el mensaje Cambiar especificación del cifrado y el cliente copia la especificación del cifrado pendiente (la nueva) en la especificación del cifrado actual (la que se utilizó anteriormente). El protocolo de especificación del cifrado de cambio existe para indicar transiciones en las estrategias de cifrado. El protocolo consta de un único mensaje, que se cifra y comprime bajo la especificación actual (no la pendiente) del Cipher. Tanto el cliente como el servidor envían el mensaje para notificar a la parte receptora que los registros subsiguientes están protegidos bajo la especificación y las claves del Cipher negociadas más recientemente. La recepción de este mensaje hace que el receptor copie el estado pendiente de lectura en el estado actual de lectura. El cliente envía un mensaje Change Cipher espec después de los mensajes de intercambio de claves de entrada en contacto y verificación de certificados (si existe), y el servidor envía uno después de procesar correctamente el mensaje de intercambio de claves que recibió del cliente. Cuando se reanuda una sesión anterior, se envía el mensaje Cambiar especificación del cifrado después de los mensajes Hello. En las capturas, los mensajes Client Exchange, Change Cipher y Finished se envían como un único mensaje del cliente.
Mensajes finalizados
Siempre se envía un mensaje Finalizado inmediatamente después de un mensaje Change Cipher Specification para verificar que los procesos de intercambio de claves y autenticación fueron correctos. El mensaje Finalizado es el primer paquete protegido con los algoritmos, claves y secretos negociados más recientemente. No se requiere reconocimiento del mensaje Finalizado; las partes pueden comenzar a enviar datos cifrados inmediatamente después de enviar el mensaje Finalizado. Los destinatarios de los mensajes Finalizados deben verificar que el contenido es correcto.