0% encontró este documento útil (0 votos)
128 vistas28 páginas

Módulo 2. Criptografía

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
128 vistas28 páginas

Módulo 2. Criptografía

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Criptografía

PID_00276301

Vanesa Daza Fernández

Tiempo mínimo de dedicación recomendado: 3 horas


© FUOC • PID_00276301 Criptografía

Vanesa Daza Fernández

El encargo y la creación de este recurso de aprendizaje UOC han sido coordinados


por la profesora: Helena Rifà Pous

Primera edición: septiembre 2020


© de esta edición, Fundació Universitat Oberta de Catalunya (FUOC)
Av. Tibidabo, 39-43, 08035 Barcelona
Autoría: Vanesa Daza Fernández
Producción: FUOC
Todos los derechos reservados

Ninguna parte de esta publicación, incluido el diseño general y la cubierta, puede ser copiada,
reproducida, almacenada o transmitida de ninguna forma, ni por ningún medio, sea este eléctrico,
mecánico, óptico, grabación, fotocopia, o cualquier otro, sin la previa autorización escrita
del titular de los derechos.
© FUOC • PID_00276301 Criptografía

Índice

Introducción............................................................................................... 5

Objetivos....................................................................................................... 6

1. Conceptos criptográficos básicos................................................... 7

2. Dos ataques clásicos.......................................................................... 10


2.1. Ataque de fuerza sucia ................................................................ 10
2.2. Ataque de análisis de frecuencias ............................................... 12

3. Atacando los cifrados de flujo....................................................... 14


3.1. Atacando el WEP ........................................................................ 15
3.2. Ataque de modificación de bit ................................................... 16

4. Atacando los cifrados por bloques................................................ 17


4.1. Ataque de oráculo de relleno (padding oracle attack) ................... 18

5. Las inseguridades de las funciones resumen.............................. 19


5.1. Ataque de aniversario ................................................................. 19

6. Atacando la criptografía de clave pública.................................. 21


6.1. Ataque de Bleichenbacher .......................................................... 21

7. Las inseguridades de una infraestructura de clave pública... 22


7.1. Ataque Flame ............................................................................... 23

8. Atacando los protocolos criptográficos....................................... 24


8.1. Ataque a la PS3 ........................................................................... 24

Resumen....................................................................................................... 26

Bibliografía................................................................................................. 27
© FUOC • PID_00276301 5 Criptografía

Introducción

En este módulo se presentan los principios de lo que se conoce como cripto-


grafía, que representa uno de los pilares sobre los cuales se basa la cibersegu-
ridad: garantiza con algoritmos y protocolos matemáticos la protección de la
información. El diseño de estos algoritmos y protocolos es fundamental para
certificar la seguridad. Desgraciadamente, no siempre se garantizan y se regis-
tran muchos ataques.

A continuación, revisaremos los conceptos básicos de la criptografía desde una


perspectiva diferente. Veremos algunos de los principales ataques criptográfi-
cos (ataques a herramientas criptográficas, sean primitivas o protocolos), que
han protagonizado numerosas noticias en la prensa, incluso en la prensa no
especializada. A partir de estos hechos, repasaremos las principales herramien-
tas criptográficas e indicaremos las referencias que habrá que revisar para aca-
bar de captar los conceptos criptográficos principales, paso fundamental para
no cometer errores a la hora de diseñar nuevos protocolos. Antes de cada apar-
tado, se hará un pequeño resumen de los conceptos principales para facilitar
la comprensión de los ataques criptográficos.

Hay que remarcar que este será el hilo conductor del módulo, pero es igual-
mente importante e imprescindible consultar todas las referencias que se in-
dican. Aun así, algunas son complementarias y no obligatorias y se presentan
con el título «Para saber más».
© FUOC • PID_00276301 6 Criptografía

Objetivos

Los objetivos de este módulo didáctico son los siguientes:

1. Descubrir la importancia de las herramientas criptográficas para evitar ata-


ques criptográficos.

2. Entender el funcionamiento de algunos de estos ataques.

3. Estudiar los principales cifrados criptográficos, tanto de clave pública co-


mo privada.

4. Conocer el funcionamiento de las funciones resumen y de las infraestruc-


turas de clave pública.

5. Entender el funcionamiento de los principales protocolos criptográficos y


sus propiedades.
© FUOC • PID_00276301 7 Criptografía

1. Conceptos criptográficos básicos

Etimológicamente, criptografía significa 'escritura secreta'. El primer uso do-


cumentado de la criptografía por escrito es de 1900 a.C., cuando un escriba
egipcio utilizó jeroglíficos no estándar en una inscripción. Algunos expertos
defienden que la criptografía apareció espontáneamente en algún momento
posterior a la invención de la escritura; tomó una importancia especial en con-
textos bélicos, con un protagonismo muy relevante durante la Segunda Gue-
rra Mundial. Su explosión llegó por medio de internet, que hizo patente la
necesidad de garantizar la seguridad de las comunicaciones informáticas. De
hecho, las funciones principales que garantizan la criptografía son cinco:

• Privacidad�y�confidencialidad: nadie puede leer el mensaje excepto el Lectura recomendada


receptor previsto.
D.�Kahn (1996). The Code-
breakers: The Comprehensive
• Autentificación: es el proceso de demostrar la propia identidad. History of Secret Communica-
tion from Ancient Times to the
Internet. Nueva York: Scrib-
ner.
• Integridad: el receptor sabe que el mensaje recibido no se ha alterado de
ninguna forma respecto del original.

• No�repudio: es el mecanismo para demostrar que el emisor ha enviado


realmente este mensaje.

• Intercambio�de�claves: es el método mediante el cual se comparten claves


criptográficas entre el emisor y el receptor.

Para garantizar todas estas propiedades, se han diseñado numerosas premisas Lecturas recomendadas
y�protocolos�criptográficos a lo largo de la historia: desde el histórico cifrado
A.�Narayanan;�J.�Bonneau;
que utilizaba Julio César hace más de dos mil años al conocido intercambio E.�Felten;�et�al. (2016). Bit-
de�claves�Diffie-Hellman, en 1976, o las criptomonedas que han revolucio- coin and Cryptocurrency Tech-
nologies: A Comprehensive
nado el paradigma económico en la última década, junto con la tecnología Introduction. Nueva Jersey:
Princeton University Press.
de las cadenas� de� bloques (en inglés, blockchain), destinada a revolucionar
Borrador de la publicación
el paradigma de las comunicaciones en los próximos años, para mencionar previo al libro en: <https://
[Link]/33zGqmO>.
solo algunos ejemplos. Pero la historia de la criptografía en si tiene, en par-
W.�Diffie;�M.�Hellman
te, un componente bélico, no solo por el contexto en que se ha desarrollado, (1976). «New directions
in cryptography». IEEE
sino porque a la propuesta de una primitiva o protocolo criptográfico, la han Transactions on Informa-
seguido muchas veces ataques que mostraban sus debilidades. A veces eran tion Theory (vol. 22, nº 6,
pág. 644-654). <https://
ataques de llamados adversarios que pretendían, por ejemplo, descifrar las co- [Link]/31p3XEe>.
municaciones y obtener informaciones secretas (no cuesta de imaginar este
escenario en las guerras); otras veces era la misma comunidad investigadora,
que evaluaba la seguridad de las herramientas propuestas para garantizar la
seguridad. Sea como fuere, después del descubrimiento de alguna debilidad o
vulnerabilidad, llega el momento de la enmienda con una nueva propuesta,
con el objetivo que no solo cumpla con las funciones propuestas sino que se
© FUOC • PID_00276301 8 Criptografía

garantice la seguridad. Y volvemos a estar en su punto de partida, y esta nueva


primitiva o protocolo volverá a ser escrutado. En muchos casos, sobrevivirá a
todos los intentos de ataques; en otros, pocos, algún ataque empañará el éxito
de la primitiva o del protocolo, e incluso pondrá en entredicho su uso.

En criptografía, empezamos con los datos o los mensajes no cifrados, que se


denominan texto�en�claro (en inglés, plaintext). Muchas veces denominare-
mos M este mensaje. El texto cifrado, que generalmente denominaremos C (en
inglés, ciphertext), se consigue aplicando algún tipo de algoritmo de cifrado E
y una cierta clave k al texto en claro. De manera muy resumida, podríamos
decir que:

C = Ek(M)

Es importante que el cifrado permita que el receptor del mensaje lo pueda des-
cifrar con cierta facilidad. Así, aplicando un algoritmo de descifrado al texto
cifrado con una cierta clave k', no necesariamente la anterior, se consigue re-
cuperar el texto en claro. De manera resumida, podríamos decir que:

m = Dk'(C)

Esencialmente, un cifrado es una función matemática utilizada en el proceso


de cifrado y descifrado. Podemos decir que un algoritmo criptográfico consiste
principalmente en tres algoritmos:

• El que permite cifrar (E).


• El que permite descifrar (D).
• Uno de muy importante: el que permite generar la clave o claves que se
utilizarán para cifrar y descifrar.

Como veremos más adelante, tan importante es que los algoritmos de


cifrado y descifrado sean seguros como que las claves se generen de ma-
nera segura. Tanto el cifrado como el descifrado tendrían que ser sen-
cillos de calcular si se tienen las claves, y difíciles (porque, desgraciada-
mente, no podrá ser imposible en prácticamente todos los casos) si las
claves son desconocidas.

Además de cifrar y descifrar para conseguir la privacidad y la confidenciali-


dad, los protocolos de firma digital permiten garantizar la autentificación.
Un mensaje M se firma utilizando una función matemática y una clave secre-
ta ks, y cualquier persona, si tiene la información adecuada kp (que estará re-
lacionada con la clave secreta ks), podrá verificar que efectivamente la firma
digital es válida, y se garantizará, además, que nadie más no haya podido ge-
nerar la firma. Los procesos de firma y verificación los podemos resumir en
y , en donde Sig y Ver son los algoritmos de firma y
© FUOC • PID_00276301 9 Criptografía

verificación, respectivamente. Del mismo modo que pasaba con los cifrados,
para garantizar la seguridad del protocolo de firma digital, no solo hay que
tener en cuenta la seguridad de los algoritmos de firma y verificación, sino la
generación adecuada de las claves.

Dos protagonistas ocupan la mayoría de las historias criptográficas: Alicia y Ved también
Bernat. Ellos son los encargados de cifrar, descifrar, firmar, compartir y hacer
Para saber más, podéis leer el
todo aquello que haga falta en la mayoría de situaciones que aborda la cripto- apartado 1 del módulo «Intro-
grafía. Otros personajes que los acompañan son Eva y Óscar (que acostumbran ducción a la criptografía».

a tener un comportamiento no muy lícito e intentan obtener información que


de otro modo sería inaccesible para ellos actuando deshonestamente).
© FUOC • PID_00276301 10 Criptografía

2. Dos ataques clásicos

Como hemos comentado anteriormente, las primeras pruebas criptográficas


fechan de hace miles de años. Se trataba, muchas veces, de un arte más que
de una ciencia y, en prácticamente todos los casos, se quería conseguir la con-
fidencialidad de la información mediante un esquema de cifrado. El paradig-
ma que se utilizaba era el que se conoce como criptografía de clave secreta o
simétrica. La emisora, Alicia, manda un mensaje a Bernat. Para hacerlo, los dos
conocen una clave secreta k, que es igual para Alicia y para Bernat. Tanto Ali-
cia, para cifrar el mensaje, como Bernat, para descifrarlo, utilizarán la clave k.
Cualquiera que tenga la clave puede obtener el mensaje limpio; por lo tanto,
es especialmente importante que esta clave sea secreta y que no se comparta
con nadie más.

Nos encontramos cifrados más o menos sofisticados a lo largo de la historia


(en especial, todos los que son anteriores al siglo XX) y, desgraciadamente, to-
dos han registrado numerosos ataques, que, incluso sin la ayuda de un orde-
nador, se pueden descifrar de una manera más o menos eficiente. A continua-
ción destacamos un par: el ataque de fuerza sucia y el ataque de análisis de
frecuencias.

2.1. Ataque de fuerza sucia

Para llevar a cabo este ataque, también denominado de busca exhaustiva,


el atacante intentará obtener el texto en claro correspondiente a partir
de un texto cifrado determinado.

Supondremos que el atacante conoce el mecanismo de descifrado, supuesto Principio de Kerckhoffs


completamente real si seguimos el principio de Kerckhoffs («El enemigo cono-
Auguste Kerckhoffs, en 1883,
ce el sistema»), y también supondremos que la clave secreta correcta es la úni- propuso seis propiedades
ca que permite recuperar un texto en claro con sentido. Este último supuesto deseables de un sistema crip-
tográfico. La más famosa, la
también es razonable si el texto cifrado es relativamente largo y relativamente segunda, afirma que la segu-
ridad de un sistema tiene que
legible. recaer en la seguridad de la
clave, y no en el hecho de es-
conder el resto de información
Teniendo en cuenta estas suposiciones, el ataque de fuerza sucia sigue la es- de un sistema criptográfico, in-
cluyendo el diseño.
trategia siguiente: iterar probando cada una de las posibles claves e intentar
descifrar. Si el resultado es legible, hemos encontrado la clave; de lo contrario,
continuamos con una clave diferente para la iteración siguiente. Un ejemplo
claro sobre el cual se aplica el ataque de fuerza sucia es el cifrado�por�decala-
je, un caso general del cual se conoce como el cifrado de César y se atribuye
a los romanos y, en concreto, a Julio César. Se cree que Julio César lo usaba
para escribirse con Cicerón y otros amigos. Básicamente, César cifraba letra
© FUOC • PID_00276301 11 Criptografía

a letra el mensaje limpio sustituyendo cada letra por la que hay a la cabeza
de tres posiciones al alfabeto. Así, las letras A del texto en claro pasaban a ser
D en el texto cifrado, las B se sustituían por E, las Z por B, y así con el resto
de letras del alfabeto. En el caso del cifrado por decalaje, el procedimiento es
similar, pero se desconoce el número de posiciones que se desplaza una letra
al alfabeto cuando se cifra. Justamente este número es la clave secreta que solo
tendrían que conocer el emisor del mensaje y el receptor. En el caso del cifrado
de César, la clave secreta k es 3.

Este cifrado es completamente inseguro frente a un ataque de fuerza sucia.


Solo hace falta que el atacante pruebe una a una las diferentes posibilidades
de desplazamiento de las letras al alfabeto hasta que encuentre la que hace
el texto legible. Entonces el atacante habrá encontrado la clave correcta y el
texto en claro que perseguía.

En este caso, se puede detectar fácilmente que el problema principal es que


el conjunto de posibles claves es muy pequeño, y con unas cuantas pruebas,
el ataque de fuerza sucia consigue el objetivo. Evidentemente, una mitigación
sencilla es aumentar la dimensión del conjunto de posibles claves. De hecho,
generalmente basta con aumentar la longitud de la clave, porque a medida
que la longitud de la clave crece, el número de claves posibles se incrementa
exponencialmente. Con las longitudes modernas de las claves, el ataque de
fuerza sucia es poco práctico.

Ejemplo

Si hoy en día el supercomputador más rápido que se conoce tiene una velocidad máxima
de la orden de 1017 operaciones por segundo, y si la longitud de una clave en un cifrado
de los que usamos para cifrar las comunicaciones por internet es de 120 bits, esto quiere
decir que para lanzar un ataque de fuerza sucia hacen falta 2128 claves. Por lo tanto, el
supercomputador más rápido necesitaría 5.000 veces la edad del universo para llevar a
cabo satisfactoriamente el ataque.

A pesar de que se ha explicado en el contexto de un cifrado, el mismo princi-


pio sirve para aplicar un ataque de fuerza sucia a otra primitiva o protocolo
criptográficos.

¿El ataque de fuerza sucia, no obstante, es una curiosidad histórica? No, más Lectura recomendada
bien al contrario. La historia reciente es testigo que se han registrado estos
National�Institute�of�Stan-
ataques, aunque se conozca una mitigación relativamente sencilla. Un caso dards�and�Technology
bastante conocido es el ataque de fuerza sucia al cifrado DES. (NIST) (1999). Data encry-
ption standard (DES). FI-
PS PUB 46-3. <https://
[Link]/30AiopU>.
A pesar de que hoy en día no se utilizan estos cifrados históricos, es impor-
tante entender el funcionamiento de algunos. En particular, los conceptos�de
difusión�y�confusión, que son fundamentales en el diseño de los cifrados si- Ved también
métricos modernos, y que están inspirados en las técnicas de transposición y
Para saber más, podéis leer el
sustitución de los cifrados clásicos. Más concretamente, la confusión incluye apartado 2 del módulo «Intro-
ducción a la criptografía».
© FUOC • PID_00276301 12 Criptografía

sustituciones para que la relación entre la clave y el texto cifrado sea tan com-
plicada como se pueda, mientras que la difusión utiliza transformaciones que
disipan las propiedades estadísticas del texto en claro entre el texto cifrado.

2.2. Ataque de análisis de frecuencias

Las letras no aparecen aleatoriamente en los textos, y hay patrones que de-
penden del idioma en que está escrito el texto. A los mensajes en catalán, por
ejemplo, letras como, por ejemplo, la A o la E son muy comunes, mientras que
otras como la Y o la K no lo son mucho. Igualmente, algunas combinaciones
de letras como por ejemplo BR o NS son muy habituales, mientras que otras
como NB o GJ no lo son.

El ataque de análisis de frecuencias se basa en el hecho que, en un texto


de un idioma concreto, algunas letras o combinaciones de letras apare-
cen más a menudo que otras, con diferentes frecuencias.

Todavía más, hay una distribución característica de las letras que es práctica-
mente la misma para la mayoría de casos de esta lengua. Así, si el cifrado pre-
serva las propiedades naturales del texto en claro al texto cifrado, el cifrado
puede ser potencialmente objeto de ataques de análisis de frecuencias. Se ana-
lizan las propiedades estadísticas de las letras del texto cifrado, de los grupos
de dos letras (bigramas) o incluso de los grupos de tres letras (trigramas), y par-
tiendo de la suposición que el texto está cifrado en un idioma, se asume que
los grupos de letras, bigramas o trigramas del texto coinciden con los grupos
de letras, bigramas o trigramas más frecuentes en esta lengua. A partir de aquí
se deriva parte del texto, y en el supuesto de que todavía quede texto cifrado
para descifrar, la información parcial obtenida puede ayudar a continuar con
el análisis de frecuencias de nuevos grupos de letras. Hay que mencionar que
el texto tiene que ser bastante largo (se considera que de cuatro páginas, como
mínimo) para que sea posible un ataque de análisis de frecuencias.

En otro de los cifrados clásicos, el de sustitución simple, cada letra del texto
en claro se reemplaza por otra: una letra concreta del texto en claro siempre
se transformará en la misma letra al mensaje cifrado. Por ejemplo, suponemos
que todas las A se convierten en X. Un texto cifrado con una alta frecuencia
de letras X podría sugerir que la X representa la letra A. Aún así, podría ser
también una E u otra letra muy común; por lo tanto, hay que mirar diferen-
tes combinaciones y ver con estas suposiciones qué es el texto resultante al
descifrarlo.
© FUOC • PID_00276301 13 Criptografía

A lo largo de los siglos se han planteado diferentes alternativas para defenderse Ved también
de este ataque, como por ejemplo diseñar cifrados en que cada carácter no
Para saber más, podéis leer el
se sustituya siempre por el mismo: es el caso de los cifrados polialfabéticos apartado 2 del módulo «Intro-
(por ejemplo, el cifrado de Vigenère, que durante siglos se denominó el cifrado ducción a la criptografía». En-
contraréis más detalles de ci-
indescifrable) o de las máquinas de rotores de la primera mitad del siglo XX (por frados clásicos y sobre el ata-
que de análisis de frecuencias.
ejemplo, la máquina Enigma), que esencialmente eran inmunes al análisis de Intentad averiguar qué cifra-
dos se pueden aplicar de ma-
frecuencias directo, aunque otros tipos de análisis consiguieron descodificar nera eficiente ante un ataque
los mensajes de estos aparatos. de análisis de frecuencias.
© FUOC • PID_00276301 14 Criptografía

3. Atacando los cifrados de flujo

Cuando se tienen que cifrar las comunicaciones digitales, la longitud del men-
saje puede ser mucha y muy grande. Por lo tanto, hay que abordar estos casos
convenientemente. Las propuestas existentes se agrupan en dos grandes tipos
de cifrados: de flujo y por bloques. En este apartado hablaremos de los ataques
relacionados con los primeros y en el siguiente apartado, de los relacionados
con los segundos.

Un cifrado�de�flujo es un cifrado de clave simétrica en que el emisor


cifra un mensaje M combinando el texto en claro M con una informa-
ción F(k) (conocida como flujo de claves, o keystream, en inglés) que se
obtiene a partir de la clave simétrica secreta k, que conocen tanto el
emisor como el receptor. Para descifrar, solo hay que hacer la operación
inversa con el texto cifrado y F F(k).

Cuando se cifran bits, como pasa en los cifrados modernos, la operación que Lectura recomendada
se utiliza habitualmente es XOR (eXclusive ORO), que se denota como .
H.�Knospe (2019). A course
Así pues, se cifra y se descifra . En los esquemas de in Cryptography. Providence:
American Mathematical So-
cifrado de flujo, el texto en claro M puede ser de cualquier longitud: lo único ciety.
que se tiene que garantizar es que F(k) tenga la misma longitud. De hecho, no
hay que conocer el mensaje entero antes de empezar a cifrar o descifrar, y es
posible implementar el algoritmo para que trabaje con un flujo de datos que
va llegando (el texto en claro o el texto cifrado) y otro flujo de datos que se
va generando a partir de la clave (el texto de cifrado). Por eso, se denomina
cifrado de flujo. Evidentemente, la seguridad de la cifra está en la construcción
de la función F. Hay un amplio abanico de estas funciones, que dan lugar a
cifrados de flujo diferentes: entre las más conocidas hay RC4, A5/1 o Samba20.

En un caso límite, si se considera la longitud de k igual que F(k) (F(k) = k), el re-
sultado es el cifrado�de�Vernam, también conocido como one-time pad (OTP),
o bloque desechable. A pesar de su sencillez, se trata del cifrado más seguro
que hay. Es tan seguro que incluso adversarios con poderes computacionales
ilimitados, pero sin la clave, no obtendrían ninguna información del texto en
claro. Desgraciadamente, presenta dos grandes problemas:
© FUOC • PID_00276301 15 Criptografía

• La longitud de k, que tiene que ser un valor aleatorio, tiene que ser la One-time pad
misma que la del mensaje.
Este cifrado se utilizó mucho
en el proyecto Venona, una
• No se puede reutilizar para dos mensajes diferentes (por eso se dice que es colaboración secreta de las
agencias de inteligencia de los
desechable), hecho que limita mucho el uso. Estados Unidos y el Reino Uni-
do en que intentaban descifrar
de manera ilícita mensajes de
la Unión Soviética, sobre to-
Los cifrados de flujo tienen varias ventajas que los hacen muy adecuados para do durante la Segunda Guerra
algunas aplicaciones. El más notable es que son especialmente eficientes y más Mundial.

sencillos de implementar en hardware que otras alternativas.

3.1. Atacando el WEP

Igual que pasa con el cifrado de Vernam, en general los cifrados de flujo son
vulnerables a los ataques si se utiliza la misma clave dos veces para cifrar dos
mensajes diferentes.

Suponemos que Alicia envía a Bernat dos mensajes M1 y M2 de la misma lon-


gitud, los dos cifrados mediante la misma clave secreta k. El cifrado de flujo
genera entonces F(k), de la misma longitud que los mensajes. Las versiones
cifradas de los mensajes son las siguientes:

Si un atacante intercepta E(M1) y E(M2), puede calcular fácilmente el


de los dos mensajes. Es decir, . Resulta, pero, que
. Si se conoce información parcial de uno de los men-
sajes, esto permite obtener información automáticamente del otro, por lo cual
la solución es trivial. Pero incluso si no se conoce ningún mensaje, los mé-
todos estadísticos pueden ayudar a obtener información de los mensajes. De
hecho, si los dos mensajes están en lenguaje natural, y no en bits, se pueden
descifrar con papel y lápiz. Durante la Segunda Guerra Mundial, el británico
John Tiltman lo consiguió con el cifrado Lorenz.

Una manera de evitar este problema es utilizar un vector�de�inicialización Para saber más
(IV, del inglés inicialization vector), enviado en claro, que se combina con una
Sobre los ataques al proto-
clave maestra secreta para crear una clave única para el cifrado del flujo. Por colo WEP, podéis consultar
ejemplo, esto se usó en el protocolo para cifrar las redes inalámbrica con WEP esta web: <[Link]-
[Link]/[Link]?
(del inglés wired equivalente privacy, o equivalente a la privacidad con hilo), que id=simple_wep_crack>.
utilizaba el popular cifrado de flujo RC4. Uno de los muchos problemas con el
protocolo WEP era que su IV era demasiado corto: concretamente, de 24 bits.
Esto significaba que había una gran probabilidad que se utilizara dos veces el
mismo IV si se enviaban miles de paquetes con la misma clave secreta, hecho
© FUOC • PID_00276301 16 Criptografía

que sometía los paquetes con IV duplicados al ataque de reutilización de cla-


ves. Para reducir este problema, al protocolo WPA (wi-fin protected access, o ac-
ceso inalámbrico protegido), que fue el sucesor, se cambia la clave más a menudo.

3.2. Ataque de modificación de bit

Si un atacante conoce información parcial del texto en claro del texto cifrado,
puede llevar a cabo lo que se conoce como ataque de modificación de bit (en
inglés, bit-flipping attack) para conseguir descifrar el texto en claro de manera
ilícita. La idea principal detrás del ataque, y que se utiliza en otros muchos
ataques criptográficos, es modificar el contenido del mensaje sin conocer la
clave k.

Consideremos el escenario siguiente. Un trabajador de una empresa, des-


pués de un rifirrafe con un compañero, se propone bajarle el salario de
3.000 a 2.500 euros. Para eso, intercepta la nómina cifrada y sustituye el
texto cifrado C, donde está cifrado el salario que quiere modificar, por
. Observad que, dado que
para una cierta F, . De este modo, a pesar de no conocer la
clave, puede modificar el texto en claro. Cuando el atacante reenvia el nuevo
salario cifrado a la persona correspondiente, que sí que conocerá la clave para
descifrar, esta persona lo descifrará y ordenará el pago de 2.500 y no de 3.000
euros.

Evidentemente, hemos simplificado considerablemente el escenario para en-


tender el ataque en si, pero hay que tener en cuenta que hay información
previa que sí que se conoce de ciertos mensajes, al menos parcialmente, como
por ejemplo los metadatos, las cabeceras o las presentaciones.

Este tipo de atacante que se coloca en medio de Alicia y Bernat se acostumbra Ved también
a denominar atacante intermediario (en inglés, man-in-the-middle). Veremos un
Para saber más, podéis leer los
ejemplo muy popular con un protocolo de intercambio de claves más adelan- apartados 2, 3 i 4 del módulo
te. «Criptografía de clave simétri-
ca» para entender el funciona-
miento de los cifrados de flujo
y ver diferentes ejemplos.
© FUOC • PID_00276301 17 Criptografía

4. Atacando los cifrados por bloques

Como hemos visto antes, los cifrados por bloques son el otro gran grupo de
cifrados de criptografía simétrica (es decir, suponemos que tanto Alicia como
Bernat conocen la misma clave secreta) que permite cifrar mensajes de longi-
tud considerablemente larga.

(1)
El cifrado por bloques cifra el mensaje por bloques de una cierta dimensión Notad que esto no pasaba con
un cifrado de flujo.
fijada a priori. Un cifrado por bloques es determinista, es decir, si Alicia utiliza el
mismo cifrado con su clave k en bloques de una cierta dimensión fijada a priori,
el texto cifrado es el mismo1. Para diseñar cifrados por bloques, siempre se
tienen en cuenta los conceptos de confusión y difusión que hemos comentado
anteriormente en el subapartado 2.1.

Originariamente, un cifrado por bloques E divide un mensaje M en diferentes


bloques de una cierta dimensión prefijada L. Para simplificar la explicación,
empezaremos suponiendo que la longitud del mensaje M es un múltiplo de L.
Así, , donde todos los bloques Bi tienen longitud L y donde
|| denota la concentración de los bloques. Cifraremos M con el cifrado E y la
clave k de la manera siguiente:

Actualmente, el cifrado por bloques más utilizado es el AES (del inglés advanced Ved también
encryption standard, o encriptación estándar avanzada), que sustituyó el DES (del
Encontraréis la descripción del
inglés data encryption standard, o encriptación de datos estándar) y sus variantes funcionamiento del criptosis-
2DES y 3DES, después de que se probaran las inseguridades. tema AES en el apartado 6 del
módulo «Criptografía de clave
simétrica».

Observad que dos bloques de texto completo iguales siempre generarán el mis-
mo bloque cifrado. Esta manera de cifrar bloque por bloque se denomina mo-
do�de�libro�electrónico (ECB, del inglés electronic code book), y es susceptible
a varios ataques de fuerza sucia, por el hecho que el mismo bloque de texto
siempre generará el mismo cifrado, y también a ataques de supresión e inser-
ción, en que un atacante manipulará convenientemente los bloques. Como
parte positiva, si hay un único error de bit en la transmisión del cifrado, esto
se traduce en un único error en todo el bloque de texto en claro al descifrar.

Evidentemente, el modo ECB es muy inseguro, por lo cual se han ideado


otras maneras de combinar los diferentes bloques de un texto en claro
para cifrar un mensaje con un cifrado por bloques. Los más importantes
son el CBC (cipher block chaining), el CFB, el OFB o el CTR.
© FUOC • PID_00276301 18 Criptografía

4.1. Ataque de oráculo de relleno (padding oracle attack)

Hemos supuesto anteriormente que la dimensión total del mensaje para cifrar
es exactamente un múltiplo de la dimensión fijada de los bloques, pero obvia-
mente esto pasa en muy pocos casos. Lo que se hace es añadir información,
de forma que, a la hora de descifrar, el programa será capaz de detectar que
aquello no formaba parte del mensaje y, por lo tanto, lo descartará. Esta infor-
mación que se añade además del mensaje para rellenarlo hasta la dimensión
adecuada se denomina relleno (o padding, en inglés). Hay diferentes estánda-
res que indican cómo se añade padding: destacamos PKCS#7 y X.923.

La idea subyacente a los ataques de oráculo es enviar los textos cifrados a un


oráculo de relleno. Nos podemos imaginar que es una máquina que da error
si al descifrar un texto encuentra que el padding es incorrecto. Así, el atacan-
te manipula convenientemente el texto cifrado y lo envía sucesivamente al
oráculo. La información que devuelve el oráculo es valiosa, puesto que el ata-
cante sabe en todo momento cuál es la modificación que ha hecho y cuál es
el resultado obtenido. A partir de aquí puede obtener información parcial del
texto en claro, e iterando el método incluso puede llegar a descifrar el mensaje
entero.

El ataque de oráculo se ha utilizado con diferentes protocolos: uno de los más


conocidos es el que se implementa contra un cifrado por bloques en modo
CBC, uno de los modos que hemos mencionado anteriormente.

De los más populares destacamos POODLE, una vulnerabilidad descubierta Para saber más
por un grupo de ingenieros de Google, Bodo Möller, Thai Duong y Krzysztof
Encontraréis la descrip-
Kotowicz, y que ponía a cuerpo descubierto el protocolo SSL 3.0. ción del ataque POODLE en
<[Link]

Ved también

Para saber más, podéis leer el


apartado 5 del módulo «Crip-
tografía de clave simétrica» pa-
ra entender el funcionamiento
de los cifrados por bloques, en
especial los diferentes modos
de operación, y muy en con-
creto el modo CBC.
© FUOC • PID_00276301 19 Criptografía

5. Las inseguridades de las funciones resumen

Las funciones�resumen, que también se llaman funciones hash, son al-


goritmos que, sin utilizar ninguna clave secreta, calculan un valor lla-
mado resumen de un mensaje. El mensaje puede tener cualquier dimen-
sión y el valor resumen tiene una longitud fija.

(2)
Una de las principales características de estas funciones es que son unidirec- Notad que hablamos de un
mensaje y no del mensaje. En reali-
cionales: es muy sencillo calcular el valor resumen de un mensaje, pero muy
dad, hay muchos mensajes que
complicado, desde un punto de vista computacional, calcular un2 mensaje a tienen el mismo valor resumen (se
denominan colisiones), pero todos
partir del valor resumen. Principalmente aportan integridad, porque un cam- son difíciles de calcular.

bio de un solo bit representa un resumen completamente diferente3, y modi-


(3)
ficar el valor resumen implica no conocer un mensaje que tenga este valor Comprobad en esta web
(<[Link] cómo
como valor resumen. diferentes mensajes, aunque sean
parecidos, tienen un valor resumen
completamente diferente.
Recientemente, las funciones resumen han sido muy populares con el uso que
hacen los mineros de datos en la red Bitcoin: lo que hacen esencialmente es Para saber más
calcular funciones resumen.
Podéis encontrar más in-
formación sobre el MD5
Posiblemente, las familias de funciones resumen más conocidas son la message en: <[Link]/in-
fo/rfc1321>.
digest (MD, o resumen de mensaje), que incluye el MD5 (y que ha recibido nu-
Podéis ver una explicación y
merosos ataques), o la que se utiliza más actualmente, la secure hash algorithm una implementación muy in-
teresantes de uno de los pri-
(SHA, o algoritmo de resumen seguro), que incluye el algoritmo SHA-256, em- meros ataques al MD5 aquí:
pleado actualmente en numerosos protocolos. <[Link]
También podéis encon-
trar más información so-
5.1. Ataque de aniversario bre el SHA en: <https://
[Link]/3gAZVit>.

El ataque de aniversario es, en realidad, un tipo de ataque de fuerza sucia. Se


basa en la paradoja del aniversario, que afirma que, para que haya un 50 % de
probabilidades que alguien de un aula determinada haga los años el mismo
día que vosotros, necesitaréis 253 personas en el aula.

Aun así, si buscáis más del 50 % de probabilidades que dos personas del aula
hagan los años el mismo día, solo necesitaréis 23 personas.
© FUOC • PID_00276301 20 Criptografía

Esto es aplicable a la búsqueda de colisiones en funciones resumen, porque es Ved también


mucho más difícil encontrar algo que colide con un valor resumen determi-
Para saber más, podéis leer los
nado que no encontrar dos mensajes que tengan el mismo valor resumen. Así, apartados 1 y 2 del módulo
«Funciones hash», donde en-
en el caso de la función resumen MD5, en vez de buscar 2160 posibles valores contraréis información más de-
para encontrar un valor resumen, será suficiente con buscar de la orden de tallada de las funciones resu-
men, así como de la parado-
280 valores. ja del aniversario. Para saber
más, os recomendamos leer
también los apartados 3 y 4
del mismo módulo.
© FUOC • PID_00276301 21 Criptografía

6. Atacando la criptografía de clave pública

La introducción de los cifrados de clave pública supuso una revolución en la


criptografía en 1976. Hasta entonces, la criptografía se basaba exclusivamente
en claves secretas compartidas para conseguir una comunicación privada. Esto
forzaba que Alicia y Bernat intercambiaran de manera segura una clave secreta
(hecho que implicaba reunirse previamente) y complicaba exponencialmente
la gestión de las claves cuando el número de personas aumentaba.

En cambio, el nuevo paradigma de la clave pública permite que las par-


tes se puedan comunicar en privado sin haber acordado previamente
ninguna información secreta.

En lugar de que Alicia y Bernat tengan una sola clave secreta, lo que tendrá
cada uno es un par de claves: una de pública y una de secreta. La pública per-
mitirá que cualquier persona pueda cifrar un mensaje dirigido a esta persona,
mientras que la secreta permitirá que justamente solo ella sea capaz de desci-
frar el mensaje. A pesar de que este nuevo paradigma se introdujo en 1976,
no fue hasta dos años más tarde, en 1978, cuando Rivest, Shamir y Adleman
propusieron el primer cifrado concreto de clave pública: el conocido como
cifrado�RSA.

6.1. Ataque de Bleichenbacher

En el año 1998, Bleichenbacher propuso un ataque al cifrado RSA. Se trata de Ved también
un ataque de oráculo, pareciendo en abstracto a los que hemos visto anterior-
Podéis leer el módulo «Cripto-
mente, y que se dirige en concreto al formato que tiene el relleno PKCS1 v1.5. grafía de clave pública», don-
Así, el atacante modifica ligeramente el texto cifrado y utiliza un oráculo para de encontraréis información
más detallada de algunos de
ver si el descifrado sería correcto o no. A sabiendas de los cambios introducidos los cifrados de clave pública.
Tienen un alto componente
en el texto cifrado, puede utilizarlos para obtener información del mensaje. matemático; si lo necesitáis,
podéis leer el módulo «Funda-
mentos matemáticos. Concep-
tos básicos de criptografía»,
como apoyo fundamental.

Para saber más

Se puede encontrar una des-


cripción detallada del ata-
que de Bleichenbacher aquí:
<[Link]
© FUOC • PID_00276301 22 Criptografía

7. Las inseguridades de una infraestructura de clave


pública

Si bien una combinación de criptografía de clave pública y de clave secreta


puede solucionar muchos problemas de las comunicaciones, desgraciadamen-
te no puede abordar los problemas de confianza que puede haber entre el emi-
sor y el receptor de un mensaje. Nos centramos, por ejemplo, en el contexto
del comercio electrónico.

Ejemplo: el comercio electrónico

¿Cómo obtiene un lugar la clave pública de otra parte? ¿Cómo determina un destinata-
rio si una clave pública pertenece realmente al emisor? ¿Cómo sabe el destinatario que
el emisor está utilizando la clave pública con un propósito legítimo para el cual están
autorizados? ¿Cómo se puede revocar una clave en caso de compromiso o pérdida?

Los certificados digitales y las autoridades de certificación hacen posible


el uso a gran escala de la criptografía. El concepto básico de un certifi-
cado es el que normalmente utilizamos en otros contextos, como por
ejemplo un título universitario, el carné de conducir o una tarjeta de
crédito: nos indica algo que estamos autorizados a hacer, tiene una fecha
de caducidad e identifica la autoridad que ha otorgado el certificado.

Las funciones�específicas�del�certificado incluyen las siguientes:

• Establecer�identidad: asociar o vincular una clave pública a una persona,


una organización, un cargo corporativo u otra entidad.

• Autorizar�la�asignación: establecer qué acciones puede hacer o no el ti-


tular a partir de este certificado.

• Garantizar�la�seguridad�de�la�información�confidencial: normalmen-
te, un certificado contiene una clave pública, un nombre, una fecha de
caducidad, el nombre de la autoridad que emite el certificado (y, por lo
tanto, vale para la identidad del usuario), un número de serie, todas las
políticas pertinentes que describen cómo se ha emitido el certificado y có-
mo se puede utilizar, la firma digital del emisor del certificado y, quizás,
otras informaciones.

Para gestionar todos estos elementos, se introduce lo que se conoce como in-
fraestructura�de�clave�pública (PKI, del inglés public key infrastructure), que
combina hardware, software y políticas y procedimientos de seguridad para
gestionar certificados y autoridades de certificación.
© FUOC • PID_00276301 23 Criptografía

7.1. Ataque Flame

El ataque Flame hacía uso de software malicioso contra el mecanismo de Win-


dows Update, y se podía utilizar para propagarse en cualquier instalación de
Windows de la red local. La parte sorprendente fue el hecho que Flame empleó
un ataque criptográfico para conseguirlo.

(4)
Flame4 incluía un simple servidor web que se presentaba como servidor de El ataque fue descubierto en
2012 por la empresa Kaspersky.
Windows Update para anunciar las «actualitzaciones» disponibles con código
malicioso. Microsoft utilizaba ciertas firmas de código para las actualitzaciones
Para saber más
y, por lo tanto, nadie tendría que poder crear binarios que se aceptaran como
procedentes de Microsoft. Pero Flame fue capaz de alguna manera de firmar Podéis encontrar más de-
talles sobre el ataque Fla-
todos sus binarios como Microsoft, y uno de los motivos detrás de todo eran me en el informe que se
los errores crípticos de Microsoft en el diseño de la PKI. publicó del ataque aquí:
<[Link]
flame-questions-and-ans-
wers/34344/>.

Ved también

Podéis leer los apartados 1 y 2


del módulo «Infraestructura de
clave pública», donde encon-
traréis información más deta-
llada de los diferentes compo-
nentes de una PKI. Para saber
más, os recomendamos leer
también los apartados 3, 4, 5 y
6 del mismo módulo.
© FUOC • PID_00276301 24 Criptografía

8. Atacando los protocolos criptográficos

A menudo, los protocolos criptográficos son necesarios para garantizar la se-


guridad de un sistema, en especial cuando se comunica a través de una red no
fiable, como es internet. Siempre que es posible se utilizan primitivas cripto-
gráficas como por ejemplo los cifrados o las funciones resumen, pero desgra-
ciadamente no son suficientes para garantizar la seguridad de todo el sistema
y, en general, hay que utilizar un conjunto de herramientas disponibles para
protegerlo.

Así, los protocolos criptográficos tienen un gran peso para permitir lle-
var a cabo determinadas acciones en la vida digital de una manera se-
gura.

Así, para mencionar algún ejemplo, los protocolos de computación multiparte


se utilizan para la generación común de parámetros a la blockchain Zcash, y
garantizan que nadie conozca los parámetros secretos del sistema, o los proto-
colos de conocimiento cero (en inglés zero-knowledge proofs) se usan para ga-
rantizar la privacidad de los datos y cumplir regulaciones como la GDPR (del
inglés General Data Protection Regulation, o Reglamento general de protección
de datos).

8.1. Ataque a la PS3

Las firmas�digitales son ejemplos de estos protocolos criptográficos, y hay de Curvas elípticas
muchos tipos, dependiendo de las diferentes situaciones donde se tengan que
Son unas curvas cúbicas que
usar: firmas ciegas, o de sortija, o multifirmas. El DSA (del inglés digital signa- tienen la particularidad que
ture standard, o estándar de firma digital) fue el primer sistema de firma digital sus puntos se pueden sumar.
La estructura resultante es bas-
aprobado por el NIST, en 1994, y continúa siendo un estándar federal. A pesar tante útil en muchos protoco-
los criptográficos, puesto que,
de que fue un poco controvertido cuando se propuso, ahora parece general- entre otras propiedades, per-
mite utilizar claves más cortas
mente aceptado. Tiene su equivalente basado en curvas�elípticas, laECDSA garantizando la misma seguri-
(del inglés elliptic curve digital signature standard). dad.

Igual que otras muchas compañías, Sony utilizaba la firma ECDSA en su con- (5)
Podéis encontrar la presenta-
sola de videojuegos PlayStation 3, que se lanzó al mercado en 2006. La firma ción en un congreso científico en
<[Link]
digital se utilizaba para identificar el código que había sido aprobado por Sony
para que se ejecutara en la consola y evitar, así, que se ejecutara un código
© FUOC • PID_00276301 25 Criptografía

no autorizado. Desgraciadamente, Sony pasó por alto una característica muy Ved también
importante de la ECDSA y cometió un error en la implementación, hecho que
Os recomendamos leer el mó-
provocó que en 2010 hubiera un ataque contra el protocolo que tuvo un gran dulo «Protocolos criptográfi-
eco en los medios de comunicación. El ECDSA utiliza un número aleatorio que cos», donde encontraréis in-
formación más detallada de al-
tendría que ser diferente cada vez que se ejecuta el protocolo, pero a finales de gunos de los protocolos crip-
tográficos más importantes,
2010, un grupo de piratas informáticos fail0verflow5 se dieron cuenta de que como son el protocolo de tres
pasos de Shamir, los esque-
Sony utilizaba el mismo número aleatorio para todas las firmas. Eso permitía, mas de compartición de secre-
tos, las firmas ciegas, las prue-
a partir de dos firmas válidas, recuperar la clave secreta que Sony utilizaba para bas de conocimiento nulo, los
las firmas resolviendo dos sencillas ecuaciones y creando su propio programa- protocolos de transferencia in-
consciente o los protocolos de
rio para la PlayStation 3. computación multiparte segu-
ros.
© FUOC • PID_00276301 26 Criptografía

Resumen

En este módulo hemos repasado uno de los pilares sobre los cuales se sostie-
ne la ciberseguridad: la criptografía. Hemos revisado los principales cifrados:
desde los cifrados clásicos que se empleaban en la Antigüedad hasta los que se
utilizan actualmente, tanto en el paradigma de clave simétrica como en el de
clave pública. Aun así, hemos tratado otros conceptos igualmente importan-
tes, como son las infraestructuras de clave pública, las funciones resumen o
algunos de los principales protocolos criptográficos.

Este repaso se ha acompañado siempre de un ejemplo de ataque relacionado


con la primitiva o el protocolo en cuestión, para favorecer la comprensión,
y también para minimizar, así, posibles ataques que pongan en entredicho la
seguridad de todo el sistema.
© FUOC • PID_00276301 27 Criptografía

Bibliografía
Diffie, W.; Hellman, M. (1976). «New directions in cryptography». IEEE Transactions on
Information Theory (vol. 22, nº 6, pág. 644–654). <[Link]

Holden, J. (2017). The Mathematics of Secrets. Cryptography from Caesar Ciphers to Digital
Encryption. Nueva Jersey: Princeton University Press.

IBM. ANSI X9.23 cipher block chaining [en línea]. <[Link]/support/knowledgecen-


ter/en/linuxonibm/[Link]/wskc_c_l0wskc58.html>.

Kahn, D. (1996). The Codebreakers: The Comprehensive History of Secret Communication from
Ancient Times to the Internet. Nueva York: Scribner.

Kaliski, B. (1998). PKCS #7: Cryptographic Message Syntax Version 1.5 [en línea]. <https://
[Link]/html/rfc2315>.

Katz, J.; Lindell, Y. (2015). Introduction to Modern Cryptography. Boca Raton: CRC.

Knospe, H. (2019). A course in. Providence: American Mathematical Society.

Narayanan, A.; Bonneau, J.; Felten, E., et al. (2016). Cryptography Bitcoin and Cryptocu-
rrency Technologies. A Comprehensive Introduction. Nueva Jersey: Princeton University Press.
Borrador de la publicación previo al libro en: <[Link]

National Institute of Standards and Technology (NIST) (1999). Data encryption stan-
dard (DES). FIPS PUB 46-3. <[Link]

Paar, C.; Pelzl, J. (2009). Understanding Cryptography: A Textbook for Students and Practitio-
ners. Heidelberg: Springer.

También podría gustarte