Criptografía: todo aquello que nunca quiso saber

En el vertiginoso mundo digital de hoy en día, la criptografía es esencial para la seguridad de los datos. Pero ¿qué se esconde realmente tras esta palabra de moda? Déjenme guiarles por un recorrido de exploración criptográfica.
Criptografía: todo aquello que nunca quiso saber

Desde que los humanos comenzaron a usar el lenguaje escrito, lo han mantenido en secreto. No la escritura en sí misma, obviamente, sino los mensajes que esta contiene. Lo que denominamos "criptografía", la práctica de mantener en secreto los mensajes para impedir que lleguen a nuestros adversarios, normalmente con texto codificado, es un concepto fundamental desde la época de los jeroglíficos, hace unos 4000 años.

Sin embargo, no es ninguna sorpresa que, en el vertiginoso mundo actual de comunicaciones digitales y sistemas de pago, la criptografía se ha convertido en un elemento aún más esencial para garantizar la seguridad de los datos.

De hecho, la criptografía es la base fundamental que mantiene a salvo sus datos y los de sus clientes, protege sus comunicaciones con los mecanismos de pago en línea y logra que la información confidencial tan importante para empresas y gobiernos siga siendo, pues eso, confidencial. Para la triada de confidencialidad, integridad y disponibilidad (CIA, por sus siglas en inglés), es esencial contar con un modelo común que forme la base para el desarrollo de los sistemas de seguridad, e incluso para salvar vidas.

La criptografía no solo es esa ciencia supercool que nos permite guardar secretos, sino que resulta práctica en ámbitos como las matemáticas, ciencias, tecnología, política y derechos humanos. En Salesforce, nos ayuda a hacer honor a nuestro valor primordial, la confianza. Además, es una de las palabras más de moda en tecnología, junto con las criptomonedas y los NFT.

También preocupa que en el futuro sea posible vulnerar los estándares criptográficos actuales debido a, ojo a la jerga, criptografía postcuántica, que reduciría drásticamente la carga de criptoanálisis y permitiría de este modo vulnerar ciertos sistemas criptográficos. Pero aún falta para llegar a ese punto, así que no hay por qué preocuparse... de momento. Empezaremos por analizar el pasado y el presente de la criptografía.

Todo superhéroe tiene sus orígenes

A lo largo del tiempo, la criptografía se ha empleado para salvar vidas. Lamentablemente, en algunos casos también ha servido para lo contrario: casos en los que una criptografía deficiente o vulnerada ha dado lugar a eventos dramáticos de fatales consecuencias. Por ejemplo:

El cifrado César: se trata de un cifrado (un conjunto de reglas o una combinación de dos o más algoritmos) nombrado en honor de Julio César, quien lo usaba para encriptar mensajes oficiales del gobierno y el ejército. Mediante una transposición de tres, el texto sin formato cambia cada letra por la letra situada tres posiciones después en el alfabeto para generar un texto cifrado con un criterio fijo. De este modo, la palabra "confianza" se escribiría "frpildpcd". La letra "f" está tres letras por detrás de la "c" en el alfabeto, y así sucesivamente.

La trama Babington: en 1587, María Estuardo fue encarcelada bajo fuertes medidas de seguridad. Sin apenas formas de comunicarse con el mundo exterior, creó su propio cifrado, basado en nomenclatura (letras y símbolos), y logró enviarlo a sus aliados escondiendo pergaminos con el código en barriles de cerveza. Finalmente, consiguieron descifrarlo empleando un método llamado análisis de frecuencia (que consiste en identificar los textos cifrados más frecuentes y averiguar a qué hacen referencia), y la trama conspirativa de María Estuardo contra la reina Isabel I terminó con un desenlace fatal. Si hubiera rotado la nomenclatura más a menudo, podría haber escapado con vida. 

La máquina Enigma: durante la segunda guerra mundial, el ejército alemán usó este dispositivo de cifrado mecánico para encriptar mensajes e impedir que fueran descifrados por el enemigo. Imagínese una máquina de escribir dentro de una caja con varios rotores acoplados. Al pulsar una tecla, se ilumina una luz en el lado del panel para resaltar una letra. La finalidad era que cada vez que se pulsara la tecla A no se escribiera la misma letra dos veces seguidas, ya que las conexiones mecánicas de la caja cambiaban gracias a los rotores, que modifican el modo en que las teclas iban generando el texto. Alan Turing logró finalmente descifrar el dispositivo. Se cree que el descifrado de la máquina Enigma permitió acelerar el final de la segunda guerra mundial, salvando así innumerables vidas humanas.

Qué hay detrás de la máscara

Ahora tal vez se pregunte qué tiene que ver todo esto con sus datos. Es importante comprender cómo a través de las diferentes épocas de la criptografía hemos ido avanzando hasta encontrar el modo de comunicarnos de forma segura a través de Internet en la actualidad y de protegernos frente a los actores de amenazas. No se trata solo de tecnología, sino de una técnica precisa por la que el mundo de la ciberseguridad actual debe sentirse agradecido. También es importante comprender algunos términos básicos si queremos dar nuestros primeros pasos en una materia tan compleja como esta. Algunos aspectos básicos que le ayudaran a pasar de principiante a experto en criptografía:

Texto sin formato: un mensaje en su forma original e inalterada.

Texto cifrado: forma modificada de un mensaje en texto sin formato, ilegible (si hemos hecho bien nuestro trabajo) para otras personas, salvo el destinatario del mensaje. También se denomina criptograma.

Cifrado: una serie de pasos específicos que ayudan a implementar el encriptado; un algoritmo de criptografía, también conocido como motor de cifrado.

Encriptado: el proceso de conversión de texto sin formato en texto cifrado; pasar el texto sin formato por el motor de cifrado.

Desencriptado: el proceso contrario al encriptado.

Clave: una clave criptográfica es una cadena de bits usada por un algoritmo/cifrado criptográfico para transformar el texto sin formato en texto cifrado; controla el funcionamiento de un algoritmo criptográfico, y también se conoce por el nombre criptovariable.

Espacio de claves: el número total de valores posibles para una clave en un algoritmo criptográfico u otras medidas de seguridad, tales como una contraseña. Por tanto, un número de cuatro dígitos, como un PIN, tendría un espacio de claves de tan solo 10.000 valores. Los números 0000 – 9999. 10.000 posibles intentos.

Hash: una función matemática de entrada variable y de un solo sentido que genera un resultado fijo de texto cifrado. Más adelante en el blog encontrarás más información al respecto. 

Oculto a plena vista   

En la actualidad, los algoritmos y las claves que usamos en Internet están por todas partes, a menos que, por alguna razón, haya decidido complicarse la vida para desactivar su seguridad. De hecho, suponiendo que esté leyendo esta entrada desde un navegador, debería ver un icono de candado en el lado izquierdo de la barra de búsqueda. Ese símbolo indica que su conexión a la web es segura y que hay medidas de seguridad en uso mediante, como ya habrá adivinado, criptografía. 

Ese protocolo en particular es capa de sockets seguros/seguridad de la capa de transporte (SSL/TLS, por sus siglas en inglés), y es lo que usamos para encriptar el protocolo de transferencia de hipertexto (HTTP). Nos permite transmitir información a través de Internet y completar la información en un sitio web. Puede tratarse tanto de metadatos como de valores que agrega en sus campos, como contraseñas e información de tarjetas de crédito. Sin embargo, dado que se trata de texto sin formato, cualquier persona podría verlos si desea fisgonear. Al negociar con el sitio web usando cifrado de clave pública, podemos usar el certificado del sitio web y crear así un canal de comunicación encriptado y autenticado. Puede verificar si la clave pública pertenece a un sitio web validándola mediante una autoridad de certificación.

Las claves del universo

Puede que cuente con los algoritmos más potentes del mundo, pero su clave seguirá siendo el mecanismo que los bloquea y los desbloquea. Si alguien se hiciera con su clave, podría desencriptar todas sus comunicaciones. La clave es la esencia de la criptografía, y protegerla es fundamental para garantizar que sus sistemas de criptografía estén en buen estado. 

Cuando quiero cifrar algo en reposo, por ejemplo, un gran volumen de datos en un disco, usaría lo que se conoce como clave simétrica. Una clave para gobernarlos a todos. Por tanto, tengo la misma clave para la operación de encriptado y la de desencriptado. El encriptado simétrico resulta ideal para un encriptado masivo y con gran consumo de recursos (en el rango de terabytes de información). Entre los algoritmos o cifrados que usamos hoy en día para el encriptado de clave simétrica se incluyen DES, 3DES y AES. De este modo, al proteger los datos de los clientes, usaríamos estos tipos de algoritmos para mantener a salvo sus datos y los de sus clientes. Yo uso texto sin formato, lo paso por un motor de encriptado (el cifrado o algoritmo), introduzco mi clave en el motor y así se aplica la criptografía. Es como arrancar un coche: hace falta la llave para arrancarlo. 

Y ahora que hemos abordado el encriptado de datos en reposo, ¿qué pasaría si quisiera comunicarme con usted a través de la red y necesitase enviarle la clave? ¿Eso implica que si alguien quisiera husmear en esa vía de comunicación, podrían ver la clave privada? Sí, en efecto. Pero hay formas de evitarlo, y aquí es donde entra en acción la encriptación de clave pública. 

Con las claves simétricas, hay una clave que lo gobierna todo. Con la encriptación asimétrica, hay dos claves para gobernarlos a todos. Requiere más recursos debido a la mayor carga de procesamiento. Una de ellas es una clave pública, lo que significa que es visible para todo Internet. La segunda es su clave privada, que solo usted debería conocer. Cuando dos claves coinciden, se produce el proceso de desencriptado. 

Digamos que quisiera enviarle un mensaje encriptado a través de la red. Primero me pondría en contacto con usted y obtendría su clave pública. Con su clave pública, podría encriptar el mensaje que quiero enviarle a usted como único destinatario. De nuevo, todo el mundo tendría su clave pública, pero no tienen acceso a su clave privada. Nadie puede descifrar el mensaje, salvo quien posea la clave privada. 

Bien, ya sé cómo encriptar. Pero ¿por qué debería confiar en el mensaje que yo le envío? 

¿Por qué no invertimos el uso de las claves? Yo quiero demostrar que soy yo quien le ha enviado un mensaje y que este está dotado de integridad. Después de todo, es posible que al otro lado de la red haya otra persona intentando hacerse pasar por mí. Por tanto, antes de enviarle un mensaje cifrado, me pide que verifique la integridad del mismo. En esta ocasión, firmaré el mensaje con mi clave privada. Recuerde que soy la única persona con acceso a mi clave privada, de modo que si la uso para firmar mi mensaje, el remitente solo podría ser yo. 

Cuando firmamos un mensaje aquí, a lo que me refiero en realidad es a su hash. Un hash es una función matemática de entrada variable y de un solo sentido que genera un resultado fijo de texto cifrado, también conocido como síntesis del mensaje. Así que por ejemplo, si el mensaje fuera "Salesforce Rocks!", el hash sería algo similar a este: 

cb3f2a6595c407552a961a9bb661371b62bea1dc55732eb032c2f5a49bf84272 

A continuación, calcularé mi síntesis y luego la cifraré con mi clave privada, lo que se conoce como firma digital. Posteriormente, cuando reciba el hash de mi parte, podrá contrastarlo con la clave pública y comprobar que coincide. Si el mensaje fuera interceptado en cualquier fase, el hash se modificaría. Supongamos que a nuestro fisgón particular no le gustaran las mayúsculas y decidiera interceptar el mensaje y cambiarlo por otro que diga "salesforce rocks!". El texto cifrado sería completamente distinto, algo como esto: 

80c7f510141d090a37b2865284fbe3593a911d9f81bcd2d80b5e2cc845e0dfc2

Al recibir el mensaje, sería uno distinto al que se firmó inicialmente, y la síntesis firmada no coincidiría con la síntesis recibida, lo que significa que no sería posible el "no rechazo" (no ser capaz de negarse), por lo que no podría confiar en el remitente o en la integridad del mensaje en sí mismo. El cambio en los valores hash provocados por un cambio mínimo en el texto sin formato original se conoce como el efecto avalancha.

Podemos estar superseguros en nuestra transmisión si pedimos a alguien que firme el mensaje con su clave privada y luego usamos la clave pública del destinatario para encriptar el mensaje, utilizando así la encriptación asimétrica completa, de modo que su canal de comunicación estaría seguro y verificado. La encriptación asimétrica se usa en todas las rutas de comunicación que se establecen en Internet para garantizar la confianza en el destinatario final. Algunos ejemplos de algoritmos de cifrado asimétricos serían RSA, DSA y criptografía de curva elíptica.

Ahora bien, el encriptado asimétrico puede consumir muchos recursos, así que para ello contamos con la criptografía híbrida. En esta ocasión, el remitente generará una clave de sesión simétrica, también llamada clave compartida, pero antes de enviar esa clave, tomará la clave pública del destinatario y cifrará la clave de sesión. Luego la enviará a través de la red encriptada con una clave asimétrica y el destinatario la desencriptará con su clave privada. Y ¡tachááán!, ya podemos establecer una comunicación encriptada con la clave de sesión (p. ej., AES de 128 bits), y ambas partes podrán llevar a cabo el encriptado simétrico en menos tiempo.

Seguridad certificada

Suena bien, ¿no? Pero ¿cómo puedo saber si la clave pública de alguien es realmente su clave pública? Recuerde la clave que se ha solicitado anteriormente al destinatario para poder encriptar el mensaje que le enviemos. Le damos la bienvenida a la infraestructura de clave pública (PKI) y a las autoridades de certificación (CA). Puede considerar la PKI como un núcleo criptográfico invisible para sus comunicaciones en línea, y las CA como las entidades externas de verificación criptográfica que confirman que la persona en cuestión es la legítima propietaria de la clave pública. Todo esto se lleva a cabo mediante certificados digitales. 

Del mismo modo que, al completar un curso o participar en una actividad de perfeccionamiento de sus habilidades, recibe un certificado de la institución educativa con un sello que indica que el documento de esa institución certifica a la persona X, un certificado digital contiene su clave pública y es emitido un tercero de confianza. Por tanto, lo que la CA está diciendo básicamente es: "Sí, esta clave pública pertenece a la persona X". 

¿Ha entrado alguna vez a un sitio web y ha visto el mensaje "Atención: No entre, hay un problema con el certificado"? Eso se debe a que la entidad no tiene un certificado que pueda validar un tercero de confianza. Esta receta secreta contiene muchos más ingredientes de los que hemos mencionado aquí, pero todo esto le ofrece una amplia perspectiva para que pueda comprender los aspectos básicos. 

Su capa, nuestra capa

¿Y qué tiene que ver todo esto con usted y con Salesforce? Bueno, la criptografía es lo que nos ayuda a proteger los datos y mantener sus canales de comunicación a salvo. Entre la inmensa variedad de medidas de seguridad, Salesforce usa los mecanismos definidos anteriormente para garantizar que los datos de los clientes están a salvo en reposo y en tránsito. Y, aún más importante, hay formas de garantizar que las claves están protegidas y a salvo: los módulos de seguridad de hardware (HSM). Estos módulos son elementos especiales de hardware de criptografía diseñados para almacenar claves criptográficas. Asimismo, con ellos podemos procesar las claves criptográficas en estos dispositivos en lugar de hacerlo en un archivo de nuestros servidores, lo cual agrega una capa adicional de seguridad. Por lo tanto, la próxima vez que tenga datos masivos por aquí y por allá, asegúrese de encriptarlos. O bien, si se comunica con alguien a través de la red acerca de información confidencial supersecreta, use el encriptado de clave pública para asegurarse de hacerlo de forma segura e íntegra. Y de nuevo, no olvide que la criptografía salva vidas.

Si aspira a hacer carrera en la ciberseguridad y quiere saber más acerca de la criptografía, le recomiendo encarecidamente que estudie en profundidad la PKI y la criptografía. Encontrará recursos muy interesantes en YouTube, como estos de Neso Academy y Pico Cetef (busque conceptos como principio de Kerckhoffs) y eche un vistazo a un libro llamado Serious Cryptography: A Practical Introduction to Modern Encryption (Criptografía seria: introducción práctica a la criptografía moderna) para conocer en profundidad cómo funciona la criptografía informática, el cifrado por bloques frente al cifrado de flujo, etc. También merece la pena echar un vistazo a los algoritmos de clave pública originales (aunque algunos los consideren un intercambio de claves simétricas con infraestructura asimétrica), el protocolo criptográfico Diffie-Hellman.

La mayoría de cursos sobre ciberseguridad también contienen módulos acerca de comunicación segura. Además, existe el concepto de esteganografía, que hace referencia a ocultar el mensaje a plena vista (por ejemplo, camuflar las obras completas de Shakespeare en la imagen de un perro). La esteganografía puede ser el enemigo de la prevención de la pérdida de datos (DLP). Y mi puerta siempre estará abierta, así que pueden escribirme por LinkedIn si necesitan más información y estaré encantado de chatear al respecto.



Historias recomendadas