Mas informacion, recogida del Boletín del Taller de Criptografía de Arturo Quirantes (
sitio muy interesante, por cierto):
=----------------------------------------------------------------------=
Criptoanalizando el bonobús
=----------------------------------------------------------------------=
La tecnología de identificación por radiofrecuencia (RFID) está
cada vez más extendida en nuestras vidas. Sus utilidades van desde
controles de acceso a micropagos. Puesto que no requiere contacto
físico, son muy cómodas como pases de viaje: bonos de autobús, metro,
etc. Yo ni siquiera tengo que sacarla de la cartera. Me limito a acercar
la cartera al lector, éste pita y listo. En ese sentido, resulta algo
muy útil para el usuario. También tiene sus problemas. Uno de ellos es
el de la privacidad: si la tarjeta está ligada de algún modo a la
identidad de un usuario, puede ser usada como dispositivo de rastreo.
Los servicios de inteligencia británicos ya se están poniendo las botas
con la información obtenida de las tarjetas RFID de transporte del Metro
de Londres. Para más información, el lector puede ver por ejemplo:
http://www.theregister.co.uk/2008/03/17/spooks_want_oyster/ Aunque los problemas de privacidad son muy importantes y deben
ser resueltos satisfactoriamente (para los usuarios), no vamos a hablar
aquí de ellos. Nos centraremos, en su lugar, en la vertiente puramente
criptográfica. A nadie se le escapa que, si pudiéramos alterar el
contenido de la tarjeta, podríamos tener acceso gratuito al metro. A fin
de cuentas, lo que hace el lector es interrogar a la tarjeta y obtener
una respuesta. Si dicha respuesta pudiese ser alterada para dar algo del
tipo "esta tarjeta está cargada a tope", tenemos bus gratis. O bien,
podríamos entrar en un edificio con control de acceso haciéndonos pasar
por otra persona. O quizá podríamos ver Digital Plus por la cara.
En todos estos casos, la solución es la criptografía. Y cada
aplicación requiere un grado diferente de fortaleza. Digital Plus, por
ejemplo, protege sus sistemas con fuertes algoritmos criptográficos, y
en la actualidad no es posible verlo sin pagar (hasta Diciembre pasado,
se vendían decodificadores "trucados", pero el sistema de cifrado fue
recientemente modificado). Por otro lado, los pagos que intervienen en
un viaje en transporte público son pequeños, lo que en principio nos
hace pensar que un sistema de cifrado de baja gama basta. El lector de
este Boletín será probablemente de esos que no se baja de AES ni atado,
pero hay que tener en cuenta que las tarjetas RFID tienen unos
requisitos computacionales y de memoria muy estrictos.
Uno de los fabricantes de tarjetas RFID es NXP Semiconductors,
empresa fundad por Philips, que fabrica tarjetas RFID Mifare. De hecho,
según ellos, en 2000 sus tarjetas Mifare representaban el 85% del
mercado de "tarjetas inteligentes sin contacto" (por lo visto, las
siglas RFID tienen malas connotaciones por sus problemas de privacidad).
Bueno, han pasado ocho años, pero seguro que siguen siendo unos grandes
vendedores de tarjetas. He leído estimaciones que daban cifras de entre
mil y dos mil millones de tarjetas usadas en muchos lugares del mundo.
Unos peces gordos, vamos. Para proteger sus tarjetas, los de NXP han
echado mano de dos técnicas muy habituales. Técnica uno: inventarse un
algoritmo criptográfico propio. Técnica dos: insertar el algoritmo en un
chip invulnerable y confiar en "la seguridad mediante oscuridad". Ambas
técnicas son muy utilizadas ... y resultan altamente peligrosas.
Para demostrarlo, Karsten Nohl, doctorando de la Universidad de
Virginia, se puso manos a la obra. Sus resultados, obtenidos en
colaboración con el investigador alemán Henryk Plötz, fueron presentados
el pasado diciembre en el famoso Chaos Communications Congress, una
reunión de hackers alemanes. El proceso fue lento y laborioso, pero una
vez hecho, afirman que ahora basta con un portátil, un escáner y unos
pocos minutos para conseguir la clave criptográfica de una tarjeta
Mifare Classic y duplicarla. Las consecuencias pueden ser devastadoras,
como veremos.
Vamos a examinar el proceso. Lo primero que hicieron Nohy y
Plötz fue tomar una tarjeta e intentar hackear el chip, con el fin de
obtener el algoritmo criptográfico. Eso no es tarea fácil, pero es en
principio posible. Usando un microscopio electrónico, obtuvieron la
configuración básica del chip: un conjunto de 10.000 bloques (cada uno
de los cuales podía ser una puerta lógica AND o una OR), distribuidos en
varias capas. Analizar los 10.000 bloques hubiera sido tarea de chinos,
pero los investigadores descubrieron un atajo. Al parecer esos 10.000
bloques fueron tomados de una librería que contenía tan sólo 70 tipos de
puertas lógicas. Luego buscaron las zonas criptográficamente importantes
del chip. Suena más fácil de lo que fue en realidad, pero el caso es que
tuvieron éxito: consiguieron reconstruir el algoritmo de cifrado, un
algoritmo propietario que la empresa denomina Crypto-1.
El primer paso estaba dado. En palabras de Nohl, "puesto que la
seguridad de las tarjetas Mifare se basa en parte en mantener el
algoritmo en secreto, creemos que las tarjetas son demasiado débiles
para cualquier aplicación de seguridad puesto que el algoritmo puede
hallarse sin mucho esfuerzo."
¿En qué consiste el algoritmo, exactamente? Correremos un tupido
velo aquí. No tiene muchos elementos (un registro LFSR, un generador de
números aleatorios, No vamos a meternos en detalles técnicos (ver
http://www.cs.virginia.edu/~kn5f/pdf/Mifare.Cryptanalysis.pdf para más
información). Aquí nos quedaremos con el tamaño de la clave secreta: 48
bits. En principio, conocido el algoritmo podría lanzarse un ataque de
fuerza bruta sin más que probar las 2^28 posibles claves. Eso son casi
trescientos billones de combinaciones, lo que quizá ser mucha molestia
para una tarjeta bonobús. Pero Nohl y Plötz pronto descubrieron una
debilidad en el algoritmo de cifrado. Encontraron que el generador de
números aleatorio del algoritmo era fácil de manipular. Tanto, que
consiguieron forzarlo a que produjese siempre el mismo número
"aleatorio". Más aún, enviando a la tarjeta patrones de bits
cuidadosamente seleccionados y examinando las respuestas de ésta, se
pueden obtener más de la mitad de los bits de la clave secreta. Lo
combinamos con un examen exhaustivo ("fuerza bruta") del resto de bits,
y ya tenemos la clave secreta. !Tachán!
Como resultado del ataque de Nohl y Plötz, bastan unos minutos,
diez como mucho, para obtener la clave secreta y "crackear" la tarjeta.
¿Qué dice la empresa fabricante? Casi podemos imaginarlo, pues hemos
visto reacciones parecidas de otras empresas en el pasado. Básicamente
vienen a decir: a) no hay para tanto, ya que las tarjetas Mifare Classic
son un producto de baja gama, y no fueron diseñadas para entornos de
alta seguridad como pasaportes o sistemas bancarios; b) sólo atacaron
una de las muchas capas de seguridad que hay en el sistema; c) un ataque
sería muy costoso y llevaría horas crackear una sola tarjeta, y los
atacantes necesitarían meses para poder bajar los costos y el tiempo
reqierido hasta el punto en que les fuera provechoso.
Por supuesto, eso no es cierto. Ciertamente, las tarjetas Mifare
Classic son de baja gama. Lo que precisamente Nohl mostró al mundo en
Marzo es que bastan recursos muy modestos y unos pocos minutos de
tiempo. Y al parecer removió un nido de avispas. El descubrimiento de
Nohl fue presentado el 8 de Marzo. El día 10, NXP presentó al mundo su
nueva tarjeta llamada Mifare Plus, que incorpora el algoritmo de cifrado
AES. No es sorprendente, sobre todo teniendo en cuenta que en Febrero el
propio gobierno holandés hizo una advertencia al respecto. El propio
Parlamento de ese país convocó a algunos de los investigadores para dar
testimonio. No es de extrañar, ya que Holanda ha invertido mentre mil y
dos mil millones de euros en el sistema de tarjetas RFID para su red de
transporte público. También es usado en el transporte público de
ciudades como Boston y Londres (las famosas "oyster cards").
Es decir, estamos hablando de un sistema enormemente caro. El
ataque contra una tarjeta solamente no produciría graves perjuicios, y
probablemente por eso no se preocuparon hasta ahora de mejorar las
tarjetas tipo Miface Classic. ¿Para qué usar una caja fuerte si sólo vas
a guardar calderilla?, pensarán los fabricantes. Pero si cualquiera de
las más de 2.000 millones de tarjetas Miface Classic puede ser clonada,
de forma sencilla y a bajo coste, estamos hablando de cifras enormes.
Con algo de equipamiento y un par de programas (que pronto aparecerán en
Internet), cualquier puede comprar una tarjeta legítima, clonarla una y
mil veces, y a disfrutar de viajes gratis. O aparecerá un mercado negro
de tarjetas clonadas a mitad de precio. De otras aplicaciones en las que
se usen ese tipo de tarjetas, como control de accesos, mejor ni
hablamos. Todo por no hacer caso de una de las advertencias de Schneier:
¿cuándo aprenderá la gente a no inventar su propia cripto?
Propongo una apuesta: ¿cuánto tiempo pasará hasta que el
problema derive en un desastre económico? Es decir, ¿cuánto tardarán los
responsables de comprar estos sistemas en tragarse el orgullo y
reemplazar, a un coste enorme, todo el sistema? Si se trata de
políticos, imagino que nunca, así que pronto conviviremos con tarjetas
clonadas y viajes "by the face", a costa de subir los precios para que
el usuario honrado compense las pérdidas. La única solución a corto
plazo sería llenar los autobuses y los metros de inspectores. Ahora que
lo pienso, desde que cambiaron los bonobuses de mi ciudad a tarjetas
RFID, veo en los autobuses más inspectores que nunca. Qué curioso, ¿no?