HTTP

Cómo funciona HTTPS? - Guía para principiantes

Cómo funciona HTTPS? - Guía para principiantes
Las autoridades de certificación son una de las piedras angulares más importantes para la seguridad en Internet. Una autoridad de certificación es alguien en quien todos confían, al principio, cuando nadie confía en nadie más. Entonces es el trabajo de esta autoridad certificadora (un.k.una CA) para garantizar que se establezca la confianza entre los servidores y los clientes antes de que establezcan la comunicación a través de Internet.Una CA es importante no solo para HTTPS utilizado por navegadores y aplicaciones web, sino también para correos electrónicos cifrados, actualizaciones de software firmadas, VPN y mucho más. Tomaremos el ejemplo prototípico de HTTPS y aprenderemos sobre CA, en este contexto particular. Aunque puede extrapolar el resultado a cualquier otro paquete de software.

Problemas con HTTP y texto sin formato

Internet es un canal de comunicación que no es de confianza. Cuando envía o recibe información de un sitio HTTP antiguo http: //www.ejemplo.com en su navegador, pueden suceder muchas cosas a la mitad de sus paquetes.

  1. Un mal actor puede interceptar la comunicación, copiar los datos para sí mismo, antes de reenviarlo nuevamente en el canal hacia usted o el servidor con el que estaba hablando. Sin el conocimiento de ninguna de las partes, la información se ve comprometida. Necesitamos asegurarnos de que la comunicación sea privado.
  2. Un mal actor puede modificar la información a medida que se envía por el canal. Bob podría haber enviado un mensaje "X" pero Alice recibiría "Y" de Bob, porque un mal actor interceptó el mensaje y lo modificó. En otras palabras, el integridad del mensaje está comprometido.
  3. Por último, y lo más importante, debemos asegurarnos de que la persona con la que estamos hablando sea realmente quien dice ser. Volviendo al ejemplo.com dominio. ¿Cómo podemos asegurarnos de que el servidor que nos respondió es realmente el titular legítimo de www.ejemplo.com? En cualquier punto de su red, se le puede desviar a otro servidor. Un DNS en algún lugar es responsable de convertir un nombre de dominio, como www.ejemplo.com, en una dirección IP en la Internet pública. Pero su navegador no tiene forma de verificar que la dirección IP traducida del DNS.

Los dos primeros problemas se pueden resolver cifrando el mensaje antes de enviarlo por Internet al servidor. Es decir, cambiando a HTTPS. Sin embargo, el último problema, el problema de la Identidad es donde entra en juego una Autoridad de Certificación.

Inicio de sesiones HTTP cifradas

El principal problema con la comunicación encriptada a través de un canal inseguro es "¿Cómo lo iniciamos??"

El primer paso involucraría a las dos partes, su navegador y el servidor, para intercambiar las claves de cifrado que se intercambiarán a través del canal inseguro. Si no está familiarizado con el término claves, considérelas como una contraseña muy larga generada aleatoriamente con la que se cifrarán sus datos antes de enviarlos a través del canal inseguro.

Bueno, si las claves se envían a través de un canal inseguro, cualquiera puede escuchar eso y comprometer la seguridad de su sesión HTTPS en el futuro. Además, ¿cómo podemos confiar en que la clave enviada por un servidor que dice ser www.ejemplo.com es de hecho el propietario real de ese nombre de dominio? Podemos tener una comunicación encriptada con una parte malintencionada que se hace pasar por un sitio legítimo y no saber la diferencia.

Por lo tanto, el problema de garantizar la identidad es importante si queremos garantizar un intercambio de claves seguro.

Autoridades de certificación

Es posible que haya oído hablar de LetsEncrypt, DigiCert, Comodo y algunos otros servicios que ofrecen certificados TLS para su nombre de dominio. Puedes elegir el que se adapte a tus necesidades. Ahora, la persona / organización propietaria del dominio tiene que demostrar de alguna manera a su Autoridad de Certificación que realmente tiene control sobre el dominio. Esto se puede hacer creando un registro DNS con un valor único en él, según lo solicite la Autoridad de certificación, o puede agregar un archivo a su servidor web, con el contenido especificado por la Autoridad de certificación, la CA puede leer este archivo. y confirme que es el propietario válido del dominio.

Luego, negocia un certificado TLS con la CA, y eso da como resultado una clave privada y un certificado TLS público emitido para su dominio. Los mensajes cifrados con su clave privada pueden luego ser descifrados por el certificado público y viceversa. Esto se conoce como cifrado asimétrico

Los navegadores del cliente, como Firefox y Chrome (a veces incluso el sistema operativo) tienen el conocimiento de las Autoridades de Certificación. Esta información se almacena en el navegador / dispositivo desde el principio (es decir, cuando se instalan) para que sepan que pueden confiar en determinadas CA. Ahora, cuando intentan conectarse a www.ejemplo.com a través de HTTPS y ver un certificado emitido por, digamos DigiCert, el navegador realmente puede verificar que usando las claves almacenadas localmente. En realidad, hay algunos pasos intermedios más, pero esta es una buena descripción general simplificada de lo que está sucediendo.

Ahora que el certificado proporcionado por www.ejemplo.com puede ser confiable, esto se usa para negociar una clave de cifrado simétrica única que se usa entre el cliente y el servidor durante el resto de su sesión. En el cifrado simétrico, se utiliza una clave para cifrar y descifrar y, por lo general, es mucho más rápido que su contraparte asimétrica.

Matices

Si la idea de TLS y la seguridad de Internet le atrae, puede profundizar en este tema profundizando en LetsEncrypt y su TLS CA gratuito. Hay mucho más detalle en todo este galimatías de lo que se indicó anteriormente.

Otros recursos que puedo recomendar para aprender más sobre TLS son el Blog de Troy Hunt y el trabajo realizado por EFF como HTTPS Everywhere y Certbot. Todos los recursos son de acceso gratuito y muy baratos de implementar (solo tiene que pagar el registro del nombre de dominio y los cargos por hora del VPS) y obtener una experiencia práctica.

Cómo descargar y jugar Sid Meier's Civilization VI en Linux
Introducción al juego Civilization 6 es una versión moderna del concepto clásico introducido en la serie de juegos Age of Empires. La idea era bastant...
Cómo instalar y jugar a Doom en Linux
Introducción a Doom La serie Doom se originó en los años 90 después del lanzamiento del Doom original. Fue un éxito instantáneo y, desde ese momento e...
Vulkan para usuarios de Linux
Con cada nueva generación de tarjetas gráficas, vemos que los desarrolladores de juegos superan los límites de la fidelidad gráfica y se acercan un pa...