Verifiqué la transmisión de datos de un sitio web HTTPS (gmail.com) utilizando Firebug. Pero no puedo ver ningún cifrado de mis datos enviados (nombre de usuario y contraseña). ¿Dónde tiene lugar el cifrado SSL?
Verifiqué la transmisión de datos de un sitio web HTTPS (gmail.com) utilizando Firebug. Pero no puedo ver ningún cifrado de mis datos enviados (nombre de usuario y contraseña). ¿Dónde tiene lugar el cifrado SSL?
El protocolo SSL se implementa como un envoltorio transparente alrededor del protocolo HTTP. En términos del modelo OSI , es un área un poco gris. Normalmente se implementa en la capa de aplicación, pero estrictamente hablando está en la capa de sesión.
Piénsalo así:
Observe que SSL se encuentra entre HTTP y TCP.
Si desea verlo en acción, tome Wireshark y navegue en un sitio a través de HTTP, luego otro a través de HTTPS. Verá que puede leer las solicitudes y respuestas en la versión HTTP como texto plano, pero no las HTTPS. También podrás ver las capas en las que se divide el paquete, desde la capa de enlace de datos hacia arriba.
Actualización : se ha señalado (ver comentarios) que el modelo OSI es una generalización excesiva y no encaja muy bien aquí. Esto es verdad. Sin embargo, el uso de este modelo es para demostrar que SSL se encuentra "en algún lugar" entre TCP y HTTP. No es estrictamente exacto y es una vaga abstracción de la realidad.
Con HTTPS, el cifrado se produce entre el navegador web y el servidor web. Firebug se ejecuta en el propio navegador, por lo que ve los datos de texto sin cifrar; el cifrado tiene lugar cuando sale del navegador.
Use una herramienta de monitor de red (como Microsoft Network Monitor o < a href="http://www.wireshark.org/"> Wireshark ) para observar el tráfico cifrado. Use un producto de Man-in-the-Middle como Fiddler para obtener una idea de lo que puede hacer un atacante (a saber: interceptar la conexión y recuperar los datos es factible SI se puede persuadir al usuario para que "ignore el problema" advertencias del navegador "sobre certificados que no son de confianza, ¡así que no ignore las advertencias!).
HTTPS es HTTP sobre TLS (o sobre SSL, que es el nombre de versiones anteriores de TLS ).
SSL / TLS, cuando se configura correctamente, proporciona privacidad e integridad de datos entre dos aplicaciones en comunicación (vea especificación TLS ), sobre un transporte confiable, típicamente TCP.
Aunque los sockets TCP no se mencionan en la especificación TLS, SSL y TLS se diseñaron con el objetivo de proporcionar un modelo que pudiera ser utilizado casi como sockets TCP simples por los programadores de aplicaciones. Además de algunos casos de borde (por ejemplo, para cierre de sockets o si desea que su aplicación, su aplicación esté al tanto de negociaciones), esto es de hecho sobre todo el caso. Las pilas SSL / TLS a menudo proporcionan envoltorios que hacen que los sockets SSL / TLS sean programables de la misma manera que los sockets TCP simples (una vez configurados); por ejemplo, SSLSocket
de Java extiende Socket
.
La mayoría de las aplicaciones se basan en las bibliotecas existentes para usar SSL / TLS (por ejemplo, JSSE en Java, SChannel, OpenSSL, la biblioteca NSS de Mozilla, la red CFN de OSX, ...). Con pequeñas modificaciones al código TCP simple (generalmente, todo lo que se refiere a la configuración de certificados y gestión de confianza, y suites de cifrado / cifrado si es necesario), se utilizan sockets SSL / TCP (o secuencias, según el tipo de API) para intercambiar texto simple como en lo que se refiere a la solicitud. Es la biblioteca subyacente que tiende a hacer el trabajo de encriptación, de manera transparente.
Cuando miras el tráfico dentro de las herramientas del desarrollador del navegador, es lo que se intercambia sobre las bibliotecas que ves. Para ver el tráfico encriptado, deberías mirar el tráfico real (por ejemplo, utilizando Wireshark).
Si bien todos los modelos de red son imperfectos, esta pregunta solo puede responderse observando qué hace SSL (TLS en realidad). (1) Además de un flujo de red confiable (TCP en la capa 4 de OSI), proporciona un flujo bidireccional cifrado y (casi siempre) garantiza la identidad del servidor y (opcionalmente) el cliente. El cliente de autenticación puede ser un proceso, un usuario o alguna otra entidad que pueda responder adecuadamente a los desafíos de autenticación requeridos.
TLS significa Seguridad de la capa de transporte. Sin embargo, dado que implementa la identidad de sesión, la integridad, el inicio, el desmontaje y la gestión, pertenece en gran medida a la capa de sesión. La página de Wikipedia indica que esto pertenece a la capa de presentación OSI. Esto es probablemente incorrecto La capa de presentación está más preocupada por reunir datos en formatos que no dependen de la red e interpretarlos en el lado del host a través de la aplicación adecuada.
El cifrado en reposo (por ejemplo, en un campo de la base de datos o un mensaje de correo electrónico) podría ser un candidato para la capa de presentación, pero sugeriría que está más cerca de una forma de sistema operativo o seguridad de la aplicación.
Entonces, en realidad, TLS es principalmente de capa de sesión, ya que proporciona seguridad de sesión punto a punto para el transporte (TCP). De otra manera, proporciona funciones de autenticación que son claramente la capa de aplicación (SO, utilidad o aplicación de usuario).
Así que es un montón de capa 5 y un poco de capa 7.
Buena suerte.
A pesar de que es posible leer / escribir datos en canales SSL / TLS como con sockets vainilla TCP / IP, en Java o C o lo que sea, SSL proporciona el concepto de sesión SSL, que se puede mantener en varios TCP / Conexiones IP Por lo tanto, en mi humilde opinión, esto hace que SSL sea un protocolo de capa de sesión (me pregunto por qué a alguien se le ocurrió el nombre TLS ...).
SSL funciona en la capa de presentación en el modelo OSI (Layer6). Consulte la referencia La guía TCP / IP, M. Kozierok, página 111. "Los protocolos en esta capa se encargan de las tareas de manipulación que transforman los datos de una representación a otra, como la traducción, compresión y encriptación. Uno de los esquemas de encriptación más populares generalmente asociados con la capa de presentación es el protocolo Secure Socket Layer (SSL). " HTTPS es el protocolo de capa de aplicación que utiliza ssl en la capa 6 para fines de cifrado.
Según: Kozierok, Charles M. 2005. La guía TCP / IP. No Starch Press, Inc. San Francisco, CA. 94103. ISBN 1-59327-047-X pp 947 -1080
SSL funciona en la capa 6 de OSI.
Lea otras preguntas en las etiquetas web-browser encryption tls http