Está en la página 1de 4

Hacking RFID, rompiendo la seguridad de Mifare (II) | Security Art Work

1 de 8

http://www.securityartwork.es/2010/02/03/hacking-rfid-rompiendo-la-...

Entradas
Comentarios
Quis custodiet ipsos custodes? | Home | Exportacin de certificados java
Hacking RFID, rompiendo la seguridad de Mifare (II)
Por Roberto Amado, 3 de Febrero de 2010 |
Tras introducir el pasado viernes algunos aspectos tericos relevantes de RFID, en esta segunda parte entraremos en cuestiones prcticas que nos darn resultados
muy interesantes.
Comencemos profundizando un poco ms en como Mifare realiza el proceso de autenticacin. En primera
instancia el lector le comunica a la tarjeta que quiere realizar una operacin sobre un sector de datos determinado
N. El tag o tarjeta en ese momento remite un nmero aleatorio Nc (Nonce del cliente) de 32 bits a modo de reto,
para que sea cifrado con la clave privada compartida previamente. Como respuesta, el lector remite el reto
cifrado y un nmero aleatorio Nr (Nonce del lector) para que el tag lo cifre con la clave privada, generando una
trama de 64 bits. En ltima instancia la tarjeta le enva al lector su reto cifrado. En este momento ambos tienen la
certeza de que los dispositivos son legtimos. Destacar que los dos ltimos intercambios se realizan ya de forma
cifrada, permaneciendo en claro tan solo el envo de la peticin de lectura y Nc. La figura de la izquerda ilustra el
proceso de handshake.
Este proceso de saludo a 4 bandas es importante ya que de l extraeremos la informacin necesaria para inferir la
clave privada del sector.
Procedamos ahora a realizar una prueba de concepto que nos permitir, a partir de la captura de la informacin
anterior, inferir la clave privada. Pero, cmo podemos capturar una comunicacin real entre un tag y un lector?
Aqu es donde juega un papel importante el PROXMARK III. Este dispositivo desarrollado por Jonathan
Westhues permite realizar sniffing de varias tecnologas RFID desde baja frecuencia (LF 125 Khz) a alta
frecuencia HF (13.56 Mhz) y entre ellas la que nos interesa ISO14443 tipo A sobre la que se basa Mifare. En un
principio el PROXMARK III supondra el Hardware sobre el cual se pueden implementar diversas capas fsicas y
de enlace, de diferentes protocolos, simplemente programando sus integrados con la especificacin que se
requiera.
Muy bien, pues ya tenemos el dispositivo que nos permitir
capturar el handshake inicial entre la tarjeta y el lector, ahora tan solo nos falta un lector Mifare y una tarjeta.
Para el lector, en este caso se ha optado por un Omnikey 5321 que viene con un software de ejemplo que permite
la interaccin con tags Mifare sin la necesidad de utilizar su API y programarse uno mismo el cdigo. Para la
tarjeta se ha utilizado una Mifare classic 4k. La captura de la derecha muestra la maqueta utilizada.
Como se puede ver la antena es casera, realizada a partir de un cable USB y no muy profesional pero para lo
que nos acontece sobra, consiguiendo incluso sobre los 12500 mV en el test Tune (test que implementado en el
firmware del PROXMARK III).
Colocando el sniffer entre la tarjeta y el lector podramos proceder a realizar una lectura del sector 4, obteniendo
la siguiente traza de bytes (vase Gerard de Koning Gans, Jaap-Henk Hoepman, Flavio D. Garcia. A practical
Attack on the MIFARE classic. Radboud University Nijmegen 2008):

Es conveniente comentar ciertos aspectos de la captura:


En primer lugar ETU corresponde con Elementary Time Units, y define el tiempo entre mensajes, donde 1 ETU corresponde con un cuarto del perodo de bit,
que es igual a 1,18 microsegundos.
SEQ en este caso correspondera con el nmero de mensaje.
La trama 2a 69 8d 43 8d identifica la tarjeta Mifare dentro del rango del lector, este identificador es pregrabado en el sector 0 del tag y no es modificable.
El byte 60 de la secuencia 07 indicara a la tarjeta que se pretende trabajar y por tanto autenticar, en un sector determinado, en este caso el sector 01
donde esta albergado el bloque de datos 04 (siguiente byte al 60) y utilizando para ello la clave A. Si nos encontrramos con un valor 61 se tratara de un
intento de autenticacin utilizando la clave B del sector.
El resto de tramas que implican el proceso de autenticacin ya han sido comentadas anteriormente (Nc, Nr, Rc, Rr).
Con la informacin anterior capturada procederemos a inferir la clave privada del sector mediante la aplicacin CRAPTO1 de desarrollo annimo (lgico dado los
problemas que tuvo la universidad de Radboud con Philips por su investigacin).

16/01/2012 09:29 p.m.

Hacking RFID, rompiendo la seguridad de Mifare (II) | Security Art Work

2 de 8

http://www.securityartwork.es/2010/02/03/hacking-rfid-rompiendo-la-...

Configuramos crapto1 con los parmetros anteriores:

uint32_t
uint32_t
uint32_t
uint32_t
uint32_t

uid
tag_challenge
nr_enc
reader_response
tag_response

=
=
=
=
=

0x2a698b43;
0x3bae032d;
0xc494a1d2;
0x6e968642;
0x8466059e;

Pasamos a compilar la aplicacin:

roberto@hacklab:~/Mifare/crapto-v1.1$ gcc -o post post.c crapto1.c crypto1.c

Y obtenemos por fin la ansiada clave :

roberto@hacklab:~/Mifare/crapto-v1.1$ ./post
nt': 7fcf34c3
nt'': 869dbbd5
ks2: 1159b281
ks3: 02fbbe4b
Found Key: [85 cc f9 ff ff ff]

Con esta clave privada ya podemos pasar a leer/modificar el contenido de los 4 bloques de datos que componen el sector 01, podramos por ejemplo, cambiar esta
clave privada escribiendo en el bloque de datos trailer o incrementar el valor de nuestro monedero electrnico. Cuidado al realizar esta primera operacin, ya que
podramos modificar el tipo de acceso (3 bytes de Acces Conditions) y dejar el sector (todos los bloques de datos que lo componen!) inservible. Para ms
informacin sobre estos 3 bytes ojear ISO14443-A, Identification cards Contactless integrated circuit(s) cards Proximity cards (2006). Lo ms habitual es
encontrarse con el resto de sectores protegidos con la misma clave privada, con lo que se podra proceder a realizar un clonado completo de la tarjeta (salvo el UID,
auque normalmente no lo comprueban las aplicaciones).
En resumen hemos visto como es posible comprometer la seguridad de este tipo de tecnologas RFID. Como apunte final, alarma la cantidad de empresas y entidades
a nivel mundial que utilizan Mifare Classic como sistema de ticketing, monedero electrnico o control de acceso fsico. No voy a revelar que organismos lo hacen,
pero ms de los que os imaginis.
Happy RFIDing!
1
1
(+5 rating, 5 votes)

32 comentarios a Hacking RFID, rompiendo la seguridad de Mifare (II)


Estupendo artculo. Una duda, yo siempre he pensado que mas all de este tipo de bugs criptogrficos (interesante como bien dices para tarjetas-monedero) lo
realmente interesante es el clonado de la UID de la tarjeta, que es bsicamente el mecanismo empleado en el 90 % de edificios / parkings con tarjetas RFID. Hace
tiempo que tengo fichado al PROXMARK III y leyendo especificaciones nunca me ha quedado claro si permite ser programado en modo emisor pudiendo ponerle
un UID arbitrario (tericamente se supone que si en modo emulacin) Lo habis probado?
YJ [web], 3 de Febrero de 2010, 11:34 am
Hola YJ, en primera instancia gracias por tus comentarios.
Por experiencia propia, el tipo de tecnologas que me he encontrado en cuanto a controles de acceso tenan un pobre nivel de seguridad, es decir, ni siquiera utilizan
Mifare. Estan basados en EM4102 HF, o RFID UHF sin ningn tipo de cifrado. Simplemete la tarjeta tiene un UID no cifrado y este es comprobado contra una base
de datos (interna al dispositivo, o con un backend de BBDD). Los controles de acceso que me he encontrado y que implementan Mifare Classic, tampoco
comprobaban si el UID era vlido o por lo menos era una tarjeta generada por la compaa fabricante del dispositivo.
Ahora es cuando te voy a dar una alegria, implementar un control donde se determine si el UID es lcito para un sistema, tampoco sirve de nada, ya que el
PROXMARK III puede funcionar, entre otras cosas como un tag con un UID arbitrario. Por lo tanto tan solo tienes que leer (va en plano) el UID de la tarjeta a
clonar, con un lector convencional y simularla con el PROXMARK III. Como en todas las teccnologas puedes ir poniendo barreras de seguridad que no
solucionaran el problema (ej. Ocultar el ESSID en redes 802.11).
S estas interesado en la auditora o ingenieria en RFID este dispositivo PROXMARK III no te puede faltar, tiene unas posibilidades tremendas (no cobro por su
difusin ;) )
De nuevo gracias por tus comentarios.
ramado [web], 3 de Febrero de 2010, 11:55 am
Gracias, lo cierto es que he trabajado bastante con Mifare y otras tecnologas RFID, y el 99 % de veces que he visto implementar sistemas de acceso estn basados
en el UID de la tarjeta asociado en una BD a una persona. He estado tentado varias veces en comprar el PROXMARK o/y OpenPCD http://www.openpcd.org/
precisamente por la posibilidad de emulacin del UID, incluso he mantenido varios correos con el devel de RFIDiot sobre la posibilidad de encontrar tarjetas
compatibles MIFARE con el sector del UID editable. Aclarado el punto del PROXMARK lo posiciono como opcin N1. Muchas gracias
YJ [web], 4 de Febrero de 2010, 2:10 am
Pues ha bajado de precio Yago, yo lo compre hace un tiempo a 499$ ahora lo tienes por 329$. Saludos.
ramado [web], 4 de Febrero de 2010, 1:11 pm

16/01/2012 09:29 p.m.

Hacking RFID, rompiendo la seguridad de Mifare (II) | Security Art Work

3 de 8

http://www.securityartwork.es/2010/02/03/hacking-rfid-rompiendo-la-...

No saba que haba bajado de precio, eso son buenas noticias :D


vierito5 [web], 4 de Febrero de 2010, 11:22 pm
Hola Roberto
Primero de todo felicitarte por las dos entradas. Est muy bien explicado y me ha picado la curiosidad para informarme sobre tecnologas Mifare y RFID
No tengo un ProxMark III para hacer pruebas, y me gustara saber si cada vez que se lee/escribe un sector hace falta que el lector y el tag se autentiquen de nuevo,
aunque ya se haya consultado ese sector previamente. En caso de que lo hayan implementado por eficiencia, se podra acceder a un sector con el que se ha operado
sin necesidad de implementar este ataque.
A ver qu me puedes decir :)
damontero [web], 23 de Febrero de 2010, 5:59 pm
Para leer o escribir en un bloque de datos perteneciente a un sector, el lector y el tag han de autenticarse mutuamente usando la clave privada almacenada en el
trailer para dicho sector una vez. A partir del proceso de autenticacin correcta para un sector, toda la comunicacin va cifrada.
Sl2
ramado [web], 23 de Febrero de 2010, 6:41 pm
Entonces entiendo que hace falta autenticarse cuando se lee/escribe en cualquier bloque de un sector, y para eso se utiliza la clave del trailer. Una vez realizada una
operacin sobre cualquier bloque de ese sector, ya no hace falta autenticarse de nuevo y slo se procede a cifrar la comunicacin.
Correcto?
damontero [web], 24 de Febrero de 2010, 6:52 pm
Correcto, si quieres trabajar contra, por ejemplo, un bloque de datos llamemoslo A, de un sector, te autenticas contra el trailer correspondiente. Si quieres
leer/escribir en otro bloque de datos B protegido con la clave de su trailer correspondiente has de autenticarte contra l. Ahora si quieres volver a realizar
operaciones contra el bloque A, debes volver a autenticarte contra el trailer correspondiente al bloque A.
En general cada vez que quieras trabajar contra un bloque de datos fuera del sector en el que estas autenticado debes volver a realizar la operacin de autenticacin.
Sl2
ramado [web], 24 de Febrero de 2010, 9:44 pm
Con la ltima frase lo has explicado perfectamente.
Muchas gracias por tu ayuda ;)
damontero [web], 26 de Febrero de 2010, 12:44 pm
hola roberto que exelemnte explicacion entre la pagina de proxmark iii y hay dos versiones cual me aconsejas comprar ,quierio meterme en el mundo de l rfid y
tambien montare linux que publicacion es la mas estable con los puertos para esto del rfid te agradezcio de antemano tu colaboracion y te felicito por este exelente
post
SCORPION27 [web], 4 de Marzo de 2010, 2:31 am
Que yo sepa solo hay una versin actualmente a la venta. http://proxmark3.com/
Sl2
ramado [web], 4 de Marzo de 2010, 9:52 am
Y esta versin? La ha probado alguien?
http://hackable-devices.org/products/product/proxmark3/
pretos [web], 28 de Mayo de 2010, 8:43 am
Hace tiempo que ando trasteando con el proxmark y mi gran problema es la antena. Si bien, he conseguido hacer alguna antena con 14v pero tan endebles que si las
mova me pegaba bajones hasta 9v (lo cual no sirve para nada).
Me haras un gran favor si me dices cmo has fabricado tu antena.
Gracias!
donpi [web], 8 de Septiembre de 2010, 11:22 pm
Pues estoy en la misma situacin que t, como puedes ver en la foto. Antena casera hecha por m con 12-14v segn la posicin. He probado varias configuraciones
para ver si podia augmentarla pero no lo consegu, al fin y al cabo para mi proposito me sobra. Le en algn foro que existen algunas ms profesionales de caracter
comercial.
Un saludo y gracias por el comentario.
ramado [web], 9 de Septiembre de 2010, 11:57 am
Gracias por tu respuesta!
En mis diseos me he basado en
http://code.google.com/p/proxmark3/wiki/Antennas
http://www.proxmark.org/forum/topic/441/my-sternzwirn-1356-mhz-antenna/
Me ayudara mucho si me cuentas en qu parmetros te basaste para construirla como la longitud del cable, el dimetro del cable, geometra de la antena (si es
redonda, forma de elipse)
En la foto veo que tiene una forma muy peculiar.
Un saludo!

16/01/2012 09:29 p.m.

Hacking RFID, rompiendo la seguridad de Mifare (II) | Security Art Work

4 de 8

http://www.securityartwork.es/2010/02/03/hacking-rfid-rompiendo-la-...

donpi [web], 9 de Septiembre de 2010, 10:33 pm


Pues la verdad es que yo me bas tambien en la informacin del enlace que haces mencin http://code.google.com/p/proxmark3/wiki/Antennas. Pero tal y como
muestra ese doc la tensin que me daba no superaba los 7v, cambiando el modelado al de la imagen que ves consegu entorno los 12v-14v. No le dedique mucho mas
tiempo ya que como te coment me sobraba con esos valores.
ramado [web], 10 de Septiembre de 2010, 9:01 am
Muchas gracias, probar a imitar la tu con forma de 8. Si me podras proporcionar la imagen a ms resolucin te lo agradecera enormemente!
donpi [web], 11 de Septiembre de 2010, 3:21 pm
hola me gustaria comprar tu aparato o los palnos de el dime como lo hago y hare la transaccion que nosea en targeta si no en efectivo por giro
zwtercane [web], 14 de Febrero de 2011, 12:43 am
disculpa sabes donde podria comprar un proxmark3??? me seria de mucha ayuda ya que lo quiero implementar en mi negocio y no encuentro manera de adquirirlo
gracias
Arturo [web], 23 de Febrero de 2011, 9:41 pm
Lo tienes aqu http://proxmark3.com/
ramado [web], 24 de Febrero de 2011, 10:11 am
Hola a todos, me gustara saber si es posible hacer algo con el Google Nexus S en este sentido.
Por otro lado me pregunto si no sera posible copiar en bruto el contenido de una tarjeta a otra, para que funcione como clon.
Bruj0 [web], 30 de Marzo de 2011, 4:51 pm
Hola Brujo, desconozco que tipo de tecnologa RFID implementa el Nexus, pero en el caso de que fuera Mirafe classic no habra problema. Puedes hacerte una idea
utilizando el lector de Omnikey (http://www.hidglobal.com/driverDownloads.php?techCat=19&prod_id=168) y las aplicaciones demo que vienen con l. Por lo que
comentas de copiar todo el contenido se prodra simpre y cuando tengas la clave privada de cada sector. Solo tienes que programarte la copia con el api que te dan o
seguro que existe algo ya hecho por google.
Saludos
ramado [web], 30 de Marzo de 2011, 5:03 pm
hola tengo la clave a de una tarjeta con q programa y en q bloque piuedo aumentar mi saldo para viajar tengo el acr122u
juan27 [web], 22 de Mayo de 2011, 8:56 pm
Me parece que es el artculo que necesit pero no entiendo nada me lo podras explicar un poco ms como novato que soy osea paso a paso mi correo es
perol2010@hotmail.com te agradecera su me pidieras ayudar. Gracias
huevo [web], 17 de Junio de 2011, 5:48 am
hola como puedo comprar el proxmar 3 que no sea un fraude y que venga con soporte
Annimo [web], 28 de Octubre de 2011, 5:07 am
es para una empresa que estoy comensando es un negocio muy ambicioso
Annimo [web], 28 de Octubre de 2011, 5:08 am
http://www.proxmark3.com/
ramado [web], 28 de Octubre de 2011, 5:44 pm
Si, pero dentro de proxmark3.com cual de ellos es el correcto y nos interesa?
ramondevesa [web], 10 de Noviembre de 2011, 12:24 pm
Hola, Ramn de proxmark 3 solo hay una versin (hasta donde yo se), lo tienes con caja exterior y sin caja. Te recomiendo este http://proxmark3.com
/item_pm3.html cumple lo comentado en el post (yo lo compr de esa web).
Un saludo y gracias por tus comentarios.
ramado [web], 10 de Noviembre de 2011, 1:07 pm
Pero en la web de proxmark3 veo que venden las antennas tambien por 60usd me pregunto por que todo el mundo se las autofabrica, si imagino que para ahorrar
60usd pero una vez que te gastas 300 usd 60 mas nO? o no estoy en lo cierto?
Gracias y un saludo
neofive [web], 12 de Noviembre de 2011, 5:50 pm
Tienes razn el tema es que las antenas las vende desde no hace mucho, cuando yo lo compr no vendia estos dispositivos, la verdad es que merece la pena, ya q a
m la mia me di, algn que otro dolor de cabeza.
Saludos.
Ramado [web], 12 de Noviembre de 2011, 7:30 pm

Deja un comentario
Alias

16/01/2012 09:29 p.m.