Hacking RF for Physical Security

Francisco Canteli
7 min readMay 3, 2021

--

Introducción

En este post se explicará que radiofrecuencias se utilizan en los sistemas de control de acceso físico, entre las cuales encontraremos tecnologías tales como NFC y RFID, y dispositivos en 433MHz. También veremos que tipos de vulnerabilidades presentan este tipo de sistemas y como pueden ser explotadas.

Radiofrecuencias en sistemas de control de acceso

Un sistema de control de acceso es un sistema electrónico que restringe o permite el acceso de un usuario a un área específica validando la identificación por medio de diferentes tipos de lectura (clave por teclado, tags o biometría) y a su vez controlando el recurso por medio de un dispositivo eléctrico como un electroimán, pestillo o motor.

Los sistemas de control de acceso suelen utilizar las siguientes tres tecnologías:

  • RFID (LF, HF, UHF)
  • NFC
  • Sistemas en 433MHz

RFID

La tecnología de Identificación por Radiofrecuencia (RFID) es un sistema de identificación inalámbrica, el cual consta de etiquetas que almacenan información y de lectores que pueden leer a estas etiquetas a distancia.

Un sistema RFID cuenta con los siguientes componentes:

  • Etiqueta, Tag o Transponder RFID: La etiqueta se inserta o adhiere en un objeto, animal o persona, portando información sobre el mismo. Consta de un microchip que almacena los datos y una pequeña antena que habilita la comunicación por radiofrecuencia con el lector. Los tags pueden ser activos (con una batería integrada) o pasivos (sin batería). Los tags pasivos obtienen la energía para operar del campo generado por el lector.
  • Lector o Interrogador: Un lector RFID es el encargado de transmitir la energía suficiente a la etiqueta y de leer los datos que ésta le envíe. Consta de un módulo de radiofrecuencia (transmisor y receptor), una unidad de control y una antena para interrogar los tags vía radiofrecuencia. Los lectores están equipados con interfaces estándar de comunicación que permiten enviar los datos recibidos de la etiqueta a un subsistema de procesamiento de datos, como puede ser un ordenador personal o una base de datos. Algunos lectores llevan integrado un programador que añade a su capacidad de lectura, la habilidad para escribir información en las etiquetas.
  • Antena RFID: La antena RFID se encuentra conectada al lector, puede ser de varios tamaños y formas, dependiendo de la distancia de comunicación requerida para el desempeño del sistema. La antena activa el tag y transmite los datos emitiendo pulsos

¿Cómo funciona un sistema RFID?

Funcionamiento de un sistema RFID
  1. El lector crea un campo electromagnético que permitirá alimentar el tag.

2. El tag se energiza y envía la información que contiene en su memoria.

3. El lector recibe la información que contiene el tag.

Frecuencias

Existen tres frecuencias en las que trabaja un sistema RFID:

  • Low Frecuency (LF): Los dispositivos RFID LF trabajan en el rango de frecuencias de 125 KHz a 134 KHz. También son los de tecnología más antigua y más insegura (Dado que no soportan criptografía). Algunos de los dispositivos que podemos encontrar en esta frecuencia son HID Prox, Indala, Flex, EM400x, EM410x, EM420x, etc.
  • High Frecuency (HF): Los dispositivos RFID HF trabajan en la frecuencia de 13,56 MHz. Algunos de los dispositivos que podemos encontrar en esta frecuencia son HID iClass, Mifare, Legic, etc.
  • Ultra High Frecuency (UHF): Los dispositivos RFID UHF trabajan en el rango de frecuencias de 860 MHz a 928 MHz.

¿Qué podemos encontrar en un tag RFID?

Esto dependerá del modelo del tag que se esté utilizando. A modo de ejemplo, podemos ver que en LF si utilizamos un tag EM4100 solo cuenta con el UID (No modificable) y en HF si utilizamos una Mifare Classic podemos ver que cuenta también con un UID y 1024 Bytes libres para ser escritos por quien programe el tag.

Ejemplo de contenido dentro de un Tag RFID

Ataques en RFID LF

Existen dos posibles ataques en RFID LF:

  • Clonación: Consiste en clonar un tag en otro nuevo, para poder lograr esto se necesita un tag especifico que permita la modificación del UID. Dicho tag podría ser los tags T55x7.
  • Emulación: Consiste en utilizar un dispositivo que emule ser un tag. Dicho dispositivo podría ser una Proxmark3 o un Keysy.

NFC

Near-field communication (NFC) es una tecnología de comunicación inalámbrica derivada de la tecnología de alta frecuencia (HF) de RFID que opera en la frecuencia de 13.56 MHz.

Un dispositivo NFC es capaz de actuar tanto como lector o como etiqueta.

Mifare

MIFARE es la marca registrada propiedad de NXP Semiconductors de una serie de chips utilizados en tarjetas inteligentes sin contacto y tarjetas de proximidad.

Podemos encontrar este estilo de tarjetas en:

  • Controles de Acceso (Ej. Universidades).
  • Hoteles.
  • Transporte Público.

Estructura de Memoria de Mifare Classic 1K

La memoria de la Mifare Classic está dividida en 16 sectores. Cada uno de estos sectores contiene 4 bloques.

El último bloque (Bloque 3) de cada sector contiene los Access Bits y las Secret Keys. Dependiendo en cómo estén configurado los Access Bits, el lector tendrá que autenticarse utilizando la Key A o B para poder leer o escribir el sector.

Estructura Mifare Classic 1K

El Bloque 0 del Sector 0 contiene información del fabricante y el UID el cual “no se puede modificar”.

Bloque 0 del Sector 0

Decimos entre comillas que “no se pueden modificar” porque existen tarjetas NFC chinas (Magic Cards) que permite la modificación completa del Bloque 0. Gracias a ellas, podemos realizar un clon idéntico de una tarjeta NFC (En el caso obviamente de que podamos leer la tarjeta original).

Ataques conocidos

  • Nested Attack: Permite buscar si tiene claves por Default y ir sacando las otras claves conociendo solo una clave. Este ataque se puede realizar con la herramienta mfoc.
  • Dark-Side Attack: Este ataque aprovecha la poca entropía que se utiliza en el cifrado Crypto-1 para obtener mediante fuerza bruta la clave de un sector. Dicho ataque se puede realizar con la herramienta mfcuk.

A continuación, se puede observar como se puede realizar el ataque Nested Attack con mfoc:

Ataque Nested

Dispositivos en 433MHz

Muchos de los dispositivos diarios trabajan en la frecuencia de 433MHz para poder comunicarse. Por ejemplo. Las alarmas (de autos o de casas), los timbres inalámbricos, estaciones meteorológicas hogareñas, botones antipánico, etc.

Dispositivos en 433MHz

Una de las ventajas de estos dispositivos, es que actualmente casi cualquier SDR nos permitirá escuchar en esta frecuencia, esto lo podremos hacer con programas tales como Gqrx o SDR# entre otros.

Si nosotros grabamos el audio que se produce cuando uno de estos dispositivos emite una señal (Por ej. Al presionar el botón de un control inalámbrico para abrir el portón) y lo visualizamos con un programa como el Audacity, podremos visualizar que la información se transmite en binario.

Código de un timbre inalámbrico

Ahora bien, ya sabemos cómo se transmite la información, pero como podemos repetirla (Por ej. Para lograr desactivar una alarma)? Bueno, si bien podemos usar SDRs que nos permitan transmitir (Tal como la HackRF), estos tienden a ser productos más costos. Podremos lograr la transmisión y recepción de estos datos utilizando un Arduino Uno y módulos de emisión y recepción que trabajen en 433 MHz. A esta técnica de interceptar y repetir se la conoce como Replay Attack. A continuación, les dejo un proyecto el cual permitiría interceptar una señal transmitida en 433 MHz y transmitirla.

También les dejo a continuación, una demo de como funciona la tool para abrir un auto (El cual no cuenta con Rolling Codes y claramente necesita una lavada).

Replay Attack con Arduino

Rolling Codes

Los Rolling Codes se crearon para evitar ataques del tipo Replay Attack en donde el atacante intercepta el código y se lo envía a la víctima.

Esta técnica funciona de la siguiente manera:

  • Se utiliza un generador de números pseudoaleatorios y se colocan tanto en el receptor como en el transmisor con la misma semilla.
  • El transmisor envía el siguiente código de la secuencia.
  • El receptor compara el código recibido, con el código esperado.
  • En caso de ser iguales, se ejecuta la acción (Por Ej. Abrir el auto).

¿Como se puede realizar un ataque a un dispositivo que utiliza Rolling Codes?

  1. La víctima presiona el botón que emite un primer código.
  2. El atacante utiliza un Jammer para interferir y evitar que el receptor reciba dicho primer código. A su vez, intercepta dicho código emitido y lo guarda.
  3. Luego de que el dispositivo no se haya accionado, la víctima presionará nuevamente el botón emitiendo así un segundo código.
  4. El atacante intercepta este segundo código y envía el primer código para que el dispositivo accione.
  5. Por último, el atacante dispone del segundo código, el cual podrá utilizar para accionar el dispositivo cuando lo desee.

Conclusiones

Como conclusión general podemos decir que es muy importante conocer en que radiofrecuencias trabaja un sistema de control de acceso físico, para saber así que tipos de vulnerabilidades puede llegar a tener y que tipos de ataques podríamos llegar a realizar.

Referencias

https://www.securityartwork.es/2010/09/06/introduccion-a-rfid/
https://www.securityartwork.es/2010/09/15/hacking-rfid-rompiendo-la-seguridad-de-mifare-iv
https://tesis.ipn.mx/bitstream/handle/123456789/5441/C2.302.pdf
https://medium.com/@decrocksam/cracking-mifare-classic-nfc-cards-using-the-hardnested-attack-506aab3ea305
https://firefart.at/post/how-to-crack-mifare-classic-cards/
https://www.youtube.com/watch?v=epSJvZLO16Q
https://www.youtube.com/watch?v=H6KuSk6OzsA
https://www.youtube.com/watch?v=s4dqy3ICleo
https://www.youtube.com/watch?v=XkKud0jAzCg
https://www.youtube.com/watch?v=tJIiYSNip00

--

--

No responses yet