GNU/Linux >> Tutoriales Linux >  >> Linux

HTTP vs HTTPS:¿Cuál es la diferencia?

Audiencia objetivo

Este artículo está dirigido a un lector general con una comprensión básica de cómo funciona Internet.

Introducción

Cuando navega por Internet, la mayoría de las páginas web se entregan a su computadora mediante un protocolo de comunicaciones llamado HTTP, que sirve a la gran mayoría de las páginas web en la World Wide Web. Sin embargo, puede ser un esquema de comunicaciones vulnerable, que es donde entra en juego HTTPS.

HTTP

Cuando un usuario escribe una dirección web en la barra de direcciones del navegador y presiona 'Enter', suceden muchas cosas detrás de escena antes de que la página web se muestre en la ventana del navegador. La computadora cliente primero consulta a un servidor DNS (Sistema de Nombres de Dominio) la dirección IP numérica real del servidor web asociado con la dirección web. Una vez que conoce la dirección IP, la computadora cliente realiza una solicitud del recurso solicitado desde el servidor web. Luego, el servidor responde y la página web se envía a la computadora del usuario. Todo esto suele ocurrir en milisegundos y utiliza un protocolo llamado HTTP.

HTTP (Protocolo de transferencia de hipertexto) es el mecanismo mediante el cual la gran mayoría de las páginas web se envían a través de la World Wide Web. Es un protocolo de solicitud de servidor/cliente, en el que el cliente (generalmente la computadora del usuario) solicita un paquete de datos (generalmente una página web) del servidor. Por ejemplo, cuando un servidor privado virtual escucha una solicitud, responde con una respuesta de estado, normalmente "HTTP/1.1 200 OK". Luego sigue con los datos solicitados. Entonces, una solicitud/respuesta de un cliente a un servidor podría verse así:

CLIENT:
GET /index.html HTTP/1.1
Host: www.example.com
User-agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0

SERVER:
HTTP/1.1 200 OK
Date: Wed, 16 Sept 2015 23:59:59 GMT
Server: Apache 1.3.3.3 (Unix)
Content-Type: text/html
Content-Length: 1922
<html>
<head>
<title>Welcome to my site!</title>
</head>
<body>
This is a very simple web page, written in HTML.
</body>
</html>

.
El protocolo ha estado en uso desde 1991 y es un protocolo de comunicaciones reconocido, válido y útil. Sin embargo, nunca fue diseñado pensando en la seguridad. El intercambio no está encriptado, lo que significa que si es interceptado, cualquiera puede leer el contenido tanto de la solicitud como de la respuesta. Es particularmente vulnerable al ataque "man-in-the-middle", en el que una computadora no autorizada actúa como intermediario entre la computadora del usuario e Internet, leyendo y registrando todos los mensajes enviados y recibidos.

Proteger la Web con HTTPS

Sin embargo, existe otro protocolo que funciona de manera similar a HTTP pero es significativamente más seguro:HTTPS, que significa HyperText Transfer Protocol Secure. HTTPS usa TLS (Seguridad de la capa de transporte) para cifrar las comunicaciones entre la computadora del cliente y el servidor, lo que hace que los datos sean inútiles e ilegibles si son interceptados. También puede escuchar TLS llamado SSL (Secure Socket Layer). SSL fue el predecesor de TLS y muchos todavía usan ese término cuando hablan de la tecnología que ayuda a proteger HTTPS.

TLS funciona a través de certificados digitales. Previa solicitud, una Autoridad de certificación (CA) emite un certificado a un servidor, que sirve para autenticar ese servidor a cualquier cliente conectado. En una transacción HTTPS, un cliente se comunica con un servidor habilitado para TLS y solicita una sesión cifrada. El servidor luego responde con una copia de su certificado digital. Ese certificado incluye la CA de confianza que lo emitió y la clave pública del servidor para el cifrado.

El cliente recibe la información del certificado del servidor y puede verificar de la autoridad emisora ​​que el certificado es válido. Una vez que el cliente se ha asegurado de que el servidor es auténtico, genera un número aleatorio. Luego usa ese número aleatorio para generar una clave de sesión. Luego, el cliente cifra el número aleatorio utilizando la clave pública del servidor y lo envía al servidor. Debido a que está cifrado con la clave pública del servidor, el servidor es el único que puede descifrar el mensaje con su clave privada. Una vez que el servidor descifra el mensaje del cliente, tiene el mismo número aleatorio para generar la misma clave de sesión que generó el cliente. A partir de ese momento, toda la comunicación entre el servidor y el cliente se cifra y descifra utilizando esa clave de sesión. La información que se transmite es como el tráfico HTTP, solo que ahora está encriptada antes de enviarse, por lo que si llegara a ser interceptada, la entidad interceptora no podría descifrar la información. Compare cómo se ve el tráfico HTTPS a continuación con el ejemplo anterior de tráfico HTTP:

...........s.....*...."..*.....r.].di.s0.$. .<...v.b..'.....O..Z|.~$..!N...X...+./.
.......3.9./.5.
.............www.atlantic.net......
.................#..zS...$z.W..0.......c...#.;qu..*...3...... -.E;[email protected]/P.rU..0.....5P......#X...n.b.......C.&...tRgW.a.....{v.......)...-1..J9S.V..G.In......|..u..O0.....mU...|..q..Ja.O.n..G..E.W}8E.Q...0..k3t.........h2.spdy/3.1.http/1.1..........
...........................c...................................................................................................
....Q...M..V.Q$._...9.&ye.L.i..T'.l.y..3`]| .<...v.b..'.....O..Z|.~$..!N...X./..................([email protected]#8....u
..........(...........[[email protected]
.............g.m4..a..V&!B..d....bv.......3......&...c......
.....G...z..x.....SzV...H.P...L`...T.....s.{...ip....PY..)Z.[.<N.f}WOv$.>........../.....^.....hc ..e.\..`.L.!.c.m.=`...[....An...c2.N..?......$.|....M.?WA.x......NCIk.....j+VUZ..p...\ZM....=.<....Ra..S..% .o...{....\ nc..~c=.......'.]...D.t..p0.-b.8*g$Yo....!c...y.#......d..H9.o.+..'..xn\.... q.....H}-....Q>..D!...~.yV..v..
\Vi.P.....K.FV-........W.>]y....M...A\....>....i/o.+..b.P.."..H..xP..:......'...VX.......j.........0D...J..Zw....b.;b.
.....*.(..h.V.F.K..8..L.M.s...rwdc.{F%o.j....=.C...w.<.|..).3.. =32..g..>...h8(..;\}.h<....yP\6r.y..3.......592.W...r..pT.*.-D....e.]..).....
.....<.i..o`[email protected]_d"....m..!L .G.{........U.....[..r..S....a)?.SY...%....>...jl.....
.W.4.....X.Nd.....Z...%...a.;...om..mH..B.._...*......H..}(fi...,0..8..,}.[Z8.N..H...F....yj.N..b.^...].S.'......u..Z.j....spS.p.C.vhk...O..!..Y".|.w)El....t........R..h.....L.0i.M.)...E..V.C.....U........u..i.w......H..;.F.......u..
2Op.%........Z.>2.N2),.o..M..
...f.Z........7r9
.....

.

Obtención de un certificado TLS de una autoridad de certificación

Las autoridades de certificación ofrecen una amplia variedad de certificados TLS. Los precios varían según el grado de autenticación deseado. Un certificado muy básico (tal vez utilizado para validar usuarios dentro de una organización, por ejemplo) es gratuito. Los tres niveles más comunes de validación son DV o Validación de dominio , OV o Validación de la organización y EV, o Validación extendida . Los certificados DV son los más comunes y generalmente se verifican enviando un correo electrónico al controlador de un nombre de dominio. Los certificados OV ofrecen un poco más de confianza; la CA verifica no solo el control del dominio, sino también los usos comerciales de ese dominio. Los certificados EV son los más confiables y requieren una documentación importante de la organización para demostrar que son legítimos. Estos certificados suelen ser utilizados por organizaciones que desean presentar una experiencia web segura, especialmente si tienen una relación financiera con sus visitantes.

Si bien el proceso de encriptación es fuerte, lo que hace que los mensajes HTTPS sean particularmente seguros en comparación con las transacciones HTTP no seguras, hay un eslabón débil en la cadena:las autoridades de certificación operan con confianza. Si una CA fuera secuestrada, por ejemplo, podría emitir un certificado de confianza para cualquier dominio que sería aceptado como válido y confiable por todos los navegadores. Un atacante con dicho certificado podría configurar una copia fraudulenta de ese dominio que parecería ser de confianza con la intención de interceptar el tráfico a ese dominio. Tal evento ocurrió en 2011, cuando el gobierno de Irán comprometió una CA holandesa y la utilizó para interceptar las sesiones de navegación de los ciudadanos iraníes. No es una ocurrencia común, pero es algo que los usuarios conscientes de la seguridad definitivamente deben tener en cuenta.
.

Identificación de una conexión HTTPS

La forma más fácil de verificar que su conexión HTTPS sea segura es mirar la barra de direcciones de su navegador. La mayoría de los navegadores identifican las conexiones HTTPS con un icono de candado cerca de la dirección web, mientras que las conexiones HTTP sin cifrar no tienen ese icono. A continuación se muestra un ejemplo de una conexión HTTP normal en Firefox, seguida de conexiones HTTPS de ejemplo en Firefox y Google Chrome.

Conexión HTTP en Firefox

Indicador HTTPS en Firefox

Indicador HTTPS en Chrome

También puede ver un icono de candado verde que incluye el nombre de la organización o del sitio al lado. Este ícono más notable muestra que la organización ha adquirido un certificado EV, como se muestra a continuación.

Indicador HTTPS (con certificado EV TLS) en Firefox

.

Conclusión

HTTPS satisface una necesidad que HTTP deja abierta:la seguridad. Los intercambios y el protocolo utilizado son los mismos; solo HTTPS agrega un paso adicional de cifrado que ayuda a proteger la información que se transmite a través de Internet. Si bien nada es absolutamente seguro, vale la pena verificar para asegurarse de que un sitio web esté usando el cifrado HTTPS antes de enviar información confidencial, como contraseñas o números de tarjetas de crédito/cuentas bancarias a través de la red.

Atlantic.Net

Desde 1995, Atlantic.Net ha brindado servicios de Internet a los clientes, incluido el alojamiento administrado, en la nube y dedicado. ¡En más de 20 años de servicio, nuestras soluciones se han centrado en brindar lo mejor en soluciones web a nuestros valiosos clientes!


Linux
  1. Linux vs Unix:¿Cuál es la diferencia?

  2. ¿Cuál es la diferencia entre InnoDB y MyISAM?

  3. ¿Qué es un servidor web y cómo funciona un servidor web?

  4. ¿Cuáles son los beneficios de CloudLinux?

  5. ¿Cuál es la diferencia entre ls y l?

Useradd vs Adduser:¿Cuál es la diferencia?

iptables vs nftables:¿Cuál es la diferencia?

SIGTERM vs SIGKILL:¿Cuál es la diferencia?

DevOps vs Ingeniero de software:¿Cuál es la diferencia?

¿Qué es un Hipervisor? ¿Cuál es la diferencia entre el tipo 1 y 2?

¿Cuál es la diferencia entre curl y Wget?