Artículos de Tecnología > DevOps

¿Cual es la diferencia entre HTTP y HTTPS?

rafael-nercessian
rafael-nercessian

Es posible que hayas visto sitios web que tienen un símbolo de candado en su URL y el nombre HTTPS al lado.

Imagem de destaque

Para entender esta diferencia, consideremos la siguiente aplicación web en la que un usuario de una empresa (llamémoslo de Juan) está usando solo el protocolo HTTP, es decir, el modo "No seguro":

https://www.alura.com.br/artigos/assets/uploads/2017/04/image01.png

Tenga en cuenta que ingresa su correo electrónico y contraseña, luego hace clic en el botón Iniciar sesión (Login). Hasta ahora no hemos visto ningún problema, ¿verdad?

Conociendo el escenario problemático

Sin embargo, esta aplicación se encuentra dentro de un entorno corporativo, por lo que hay varios empleados. Entonces uno de estos otros empleados, lo llamaremos Pedro, decide hacer algunas pruebas en la red corporativa.

En estas pruebas, Pedro cambia los protocolos de comunicación entre Juan que está accediendo a la aplicación web y el enrutador, y luego Pedro termina en medio de esta comunicación entre Juan y el enrutador.

Entonces Pedro, por curiosidad, acaba instalando en su máquina un programa capaz de analizar los protocolos que transitan en la comunicación entre Juan y el enrutador. Luego, configura el programa para analizar todas las comunicaciones a través del protocolo HTTP.

En ese mismo momento, cuando Juan intenta acceder nuevamente al sistema web, aparece el siguiente resultado para Pedro, nuestro curioso empleado:

https://www.alura.com.br/artigos/assets/uploads/2017/04/image05.pngMira lo que consiguió Pedro. Pudo ver el nombre de usuario y la contraseña que ingresó Juan (usuario: [email protected] y contraseña: 123456).

Pero, ¿cómo fue posible obtener estas informaciones?

Entendiendo el principio del protocolo HTTP

Las comunicaciones a través de una red se realizan mediante un conjunto de reglas y procedimientos llamados protocolo Enlace. El protocolo HTTP, Hypertext Transfer Protocol, se desarrolló inicialmente para permitir la comunicación con un servidor web, al principio, el método existente era simplemente "tomar" (GET) el contenido de un servidor.

Con el tiempo, surgió la necesidad no solo de solicitar informaciones al servidor, sino también de transmitir las informaciones. Actualmente sabemos que en la Web no solo pedimos, sino que también enviamos informaciones, ¿verdad? Como es el caso de una compra por Internet. Pero, ¿qué sucede si se trata de un dato sensible como los datos y contraseña de la tarjeta de crédito?

Al analizar el nombre del protocolo HTTP, vemos que es un protocolo para transferir texto, ¡por lo que los datos y la contraseña de la tarjeta de crédito también se pasan como texto al servidor!

Esto significa que si alguien analiza estas informaciones, podrá ver cuáles son los datos y la contraseña de la tarjeta de crédito. Por lo tanto, cualesquier aplicaciones web que utilicen el protocolo HTTP y necesiten pasar datos sensibles tienen una vulnerabilidad para el cliente final.

Siendo consciente de todo este problema, todo sitio web que opera con el protocolo HTTP necesita, de alguna manera, encontrar alguna forma de protegerse, ¿verdad? ¡Ahí es cuando HTTPS entra como un gran aliado! Pero, ¿qué hace el protocolo HTTPS para solucionar esta vulnerabilidad?

Conociendo el protocolo HTTPS

Ahora, en lugar de analizar un sitio web "No seguro", es decir, con el protocolo HTTP, haremos el análisis en un sitio web "Seguro" que funcione con HTTPS.

En nuestro ejemplo, consideraremos la página de inicio de sesión de Alura usando los mismos datos que usamos en la aplicación que usaba HTTP. Veamos el resultado:

https://www.alura.com.br/artigos/assets/uploads/2017/04/image03.png

Date cuenta de que la información no tiene ningún sentido para nosotros los humanos. ¿Qué pasó esta vez?

HTTPS hizo una transformación en estos datos enviados por el cliente y, por lo tanto, no fue posible descubrir los datos enviados por la víctima. Esta transformación de datos que resulta incomprensible para los humanos la caracterizamos como un proceso criptográfico.

Ahora bien, ¿cómo se realiza este proceso de cifrado HTTPS?

Comprendiendo el proceso HTTPS

Analicemos el siguiente caso, imaginemos que dos personas, Roberto y Luísa quieren enviar una carta, Roberto inicia el proceso de comunicación enviando esta carta a Luísa, pero esta carta es confidencial y no debe ser leída por nadie más que Luisa.

Proceso de claves simétricas

Para evitar que nadie más lea el contenido de esta carta, Roberto decide ponerla en una caja con candado, la cierra con llave y luego se dirige a la oficina de correos para enviar la carta.

Luísa recibe la caja y usa una copia de la llave idéntica a la de Roberto para abrir la caja y leer el contenido de la carta. Para responder al mensaje recibido, Luísa vuelve a poner el candado y utiliza la misma llave para cerrar la caja y enviarla a través de la oficina de correos.

https://www.alura.com.br/artigos/assets/uploads/2017/04/image12.png

Tenga en cuenta que solo tenemos una clave en este proceso, la misma clave se usa para bloquear la caja (cifrar) y desbloquear la caja (descifrar). Cuando tenemos la misma clave que se utiliza para cifrar y descifrar datos, llamamos a este proceso de cifrado de clave simétrica. Ejemplos de algunos algoritmos que utilizan este sistema de clave simétrica:

Puedes leer también:

Artículos de Tecnología > DevOps

En Alura encontrarás variados cursos sobre DevOps. ¡Comienza ahora!

  • 101 cursos

    Cursos de Programación, Front End, Data Science, Innovación y Gestión.

  • Videos y actividades 100% en Español
  • Certificado de participación
  • Estudia las 24 horas, los 7 días de la semana
  • Foro para resolver tus dudas
  • Descuento de lanzamiento de 30%

Trimestral

Descuento de lanzamiento de 30%
  • 101 cursos

    Cursos de Programación, Front End, Data Science, Innovación y Gestión.

  • Videos y actividades 100% en Español
  • Certificado de participación
  • Estudia las 24 horas, los 7 días de la semana
  • Foro para resolver tus dudas
US$19,90
un pago de US$29,90 US$19,90
¡Quiero empezar a estudiar!

Paga en moneda local en los siguientes países

Semestral

Descuento de lanzamiento de 30%
  • 101 cursos

    Cursos de Programación, Front End, Data Science, Innovación y Gestión.

  • Videos y actividades 100% en Español
  • Certificado de participación
  • Estudia las 24 horas, los 7 días de la semana
  • Foro para resolver tus dudas
US$33,90
un pago de US$49,90 US$33,90
¡Quiero empezar a estudiar!

Paga en moneda local en los siguientes países

Acceso a todos los cursos
Estudia las 24 horas, dónde y cuándo quieras
Nuevos cursos cada semana