CARGANDO

Escribe para buscar

Entendiendo la comunicación

Como se habló en esta entrada, la comunicación HTTPS aporta seguridad en las comunicaciones y ahora lo trataremos desde un punto de vista mas técnico, como se implementa esa protección con los diferentes algoritmos y la inclusión de certificados.

Dentro de HTTPS

Cuando decimos que una comunicación HTTPS es segura nos estamos refiriendo, entre otras cosas, a que la transmisión de datos está encriptada (a diferencia de HTTP que es texto plano). Esta encriptación no se realiza de forma trivial y, aunque es un proceso realmente rápido, ocurren diferentes pasos para establecerse.

Antes de explicar como ocurre, no os quedéis con el orden que os apunto, ya que no es el orden correcto de como ocurre en la realidad. Aun así, prefiero explicarlo así para que quede mas claro (o al menos intentarlo ;)).

Encriptando la comunicación

El proceso de encriptación ocurre por medio de alguno de los muchos algoritmos existentes para tal fin. Esto no es más que un proceso matemático conocido que altera la información para hacerla ilegible. Esta información solo podrá ser conocida por aquellos que conozcan la clave secreta para su uso. Así se describe el concepto de Confidencialidad.

Para esta explicación, tomaremos uno de los algoritmos mas usados, AES. Esto es un algoritmo de encriptación simétrico, es decir, utiliza la misma clave para encriptar que para desencriptar. Es muy rápido y (a día de hoy) seguro.
De esta forma, su funcionamiento es sencillo. El cliente A encripta la comunicación con una clave privada (generada en el mismo momento para esta encriptación), envía la información al servidor B y este la desencripta y lee con esa misma clave privada usada anteriormente, fácil no?

Intercambio de claves

Como estábamos viendo, los algoritmos simétricos comparten la misma clave para la encriptación y desencriptación, pero esto tiene un problema, ¿Cómo transmitir esa clave de forma segura? Si todos la supieran, todos podrían conocer la información perdiendo la Confidencialidad.

Para dar solución a este intercambio de claves existen los algoritmos asimétricos. Aquellos que utilizan una clave diferente para encriptar que para desencriptar. Un ejemplo de estos mecanismos son RSA o Diffie-Hellman.

De esta forma, mediante la utilización de estos algoritmos, se da solución al intercambio de claves que veíamos antes en AES. En este caso, mediante RSA por ejemplo, el cliente A encripta su clave privada, la envía al servidor B y este la desencripta mediante su clave personal.

¿Y por qué no se utiliza RSA por ejemplo para toda la encriptación?
Estos algoritmos de cifra son bastante mas lentos con un consumo superior de recursos que la encriptación simétrica. Por este motivo solo se utilizan para el intercambio de claves.

Integridad

Tenemos el canal encriptado pero, ¿Qué sucede si alguien intercepta la información y la altera aunque no pueda leerla? Para esto existe el control de Integridad. Aquí se aplica un algoritmo de una sola dirección (no puede ser desencriptado) cuyo resultado es un “hash”, y tiene como objetivo comprobar que la información no ha sido alterada.

Estos algoritmo generan un identificador único para cada información que es transmitida (hash). Por ejemplo, cada foto que hacemos con la cámara o cada documento de texto que redactamos tiene un identificador único. Y lo más importante, si añadimos una nueva línea al documento de texto o retocamos la foto que hemos hecho con la cámara, el identificador o hash cambia.

De esta forma se asegura que la información transmitida no ha sido alterada por nadie. Un ejemplo de este tipo de algoritmo es SHA.

Certificados de clave pública

Ya hemos conseguido tener un canal seguro consistente, pero ahora, ¿Cómo sabemos que la comunicación segura la estamos haciendo con quien realmente queremos? En muchas ocasiones, los malos se hacen pasar por sitio legítimos tratando de engañarnos. Para cubrir este problema (parcialmente) existen los certificados.

Los certificados identifican el dominio de un sitio web frente a una entidad de confianza. Estas son empresas reconocidas dedicadas a validar que los certificados que emiten van destinados a quien realmente dicen. Por ejemplo, un administrador web quiere poner un certificado, para ello se pone en contacto con una entidad reconocida, proporciona sus datos, paga la cantidad correspondiente y tras diferentes comprobaciones, emite el certificado.

Existen varias empresas para este fin como Digicert, thawte o Lets Encrypt.

¡Mezclando todos los ingredientes!

Bien! Ya tenemos todos los ingredientes! Ahora solo hace falta meterlos todos en la cacerola y que salga una comunicación segura segura 😉

Y ciertamente esto es HTTPS, una combinación de diferentes algoritmos y tecnologías,

– Encriptación asimétrica para el intercambio de claves
– Encriptación simétrica para la comunicación
– Integridad
– Validación del servidor/sitio web

Y como decíamos antes, todo esto sucede en milisegundos.

close

Ah, hola 👋
Un placer conocerte.

Veo que te gusta la tecnología, ¿quieres que te mandemos una newsletter semanal?.

¡No enviamos spam!. yo también lo odio a muerte!.

Tags:

2 Comentarios

  1. pcspain noviembre 9, 2021

    El 100% de las webs deberían de ser Seguras a día de hoy. Sin embargo sigo viendo muchas qué no lo son cuando prácticamente el 100% de los hosting ofrece esta opción gratuitamente. A ver si en el próximo año consigo no encontrarme con ninguna con el candado abierto..:D. ESTUPENDO ARTICULO COMO SIEMPRE.

    Responder
    1. Sysbeards noviembre 10, 2021

      Netfinder!!. Como bien dices, todavía existen WEBs inseguras en la red de redes, lo bueno es, que cada vez son menos. Afortunadamente Google es cada vez más restrictivo en este aspecto y si por ejemplo, no tienes configurado el HTTPS, no va a posicionar tu WEB o directamente ni la llega a indexar para no mostrarla al mundo, por lo que si eres un e-commerce, esto no te renta para nada, al no poder posicionarte y sacar más ventas.

      Yo creo que en la mayoría de casos, el problema está en el desconocimiento del propio gestor WEB o la empresa, se piensan que es alquilar un hosting, darle a un click para montar el WP y a correr, cuándo lleva un entramado detrás más grande. Otro problema, relacionado con el anterior, es el intrusismo que tenemos en nuestro sector, que seguro que eres muy conocedor, gente que monta tu WEB por 10€ y claro, como vale 10€ te contrato, porque el que lo sabe hacer bien me va a cobrar 200, 300 o 500 dependiendo del proyecto.

      Un fuerte abrazo tío y gracias por pasarte por aquí!.

      Responder

Deja un Comentario

Your email address will not be published. Required fields are marked *