Clase 269 — Radio definida por software (SDR)

Parte: 13 — Seguridad móvil, IoT e inalámbrica · Fuente: Practical IoT Hacking (Chantzis et al.) y documentación de GNU Radio ⏱️ Duración estimada: 120 min · Nivel: Avanzado


🎯 Objetivo

Introducir la radio definida por software (SDR) como herramienta para descubrir, capturar y analizar señales inalámbricas más allá de WiFi y Bluetooth: mandos remotos sub-GHz, sensores ISM, telemetría y protocolos propietarios. El alumno aprenderá conceptos de RF (IQ, frecuencia, ancho de banda, modulación), capturará señales con un RTL-SDR/HackRF y las demodulará para entender su contenido, respetando siempre la legalidad del espectro.

⚠️ Nota ética y legal: recibir/escuchar puede estar restringido según jurisdicción; transmitir requiere licencia y equipo homologado. Practica solo con dispositivos propios y bandas permitidas, y nunca interfieras servicios ajenos. Muchos SDR económicos (RTL-SDR) solo reciben.

📚 Resultados de aprendizaje

Al finalizar, el alumno podrá:

  1. Explicar conceptos de RF: muestras IQ, frecuencia central, ancho de banda y modulación.
  2. Configurar un SDR (RTL-SDR/HackRF) con GQRX/SDR#.
  3. Descubrir y localizar señales en el espectro (waterfall).
  4. Capturar señales a fichero IQ para análisis offline.
  5. Demodular señales simples (OOK/ASK, FSK) con GNU Radio o Universal Radio Hacker.
  6. Analizar un protocolo sub-GHz de un dispositivo propio (p. ej. un mando).

🗺️ Temas

# Tema Por qué importa
1 Fundamentos de RF e IQ Base para entender cualquier captura
2 Hardware SDR (RTL-SDR/HackRF) Determina bandas y capacidades
3 Waterfall y descubrimiento Localizar la señal objetivo
4 Modulaciones (OOK/ASK, FSK) Elegir el demodulador correcto
5 Captura IQ Análisis reproducible offline
6 GNU Radio y URH Demodular y decodificar
7 Legalidad del espectro Evita infracciones graves

🧠 Explicación en profundidad

Una captura IQ conserva amplitud y fase de una banda

SDR traslada filtrado, demodulación y decodificación al software. El receptor mezcla una banda alrededor de la frecuencia central y muestrea componentes I/Q. La tasa de muestreo limita el ancho observable; ganancia excesiva satura y crea productos falsos; osciladores imperfectos desplazan frecuencia. Ver una línea en el espectro no identifica automáticamente protocolo.

Señal RF

Antena + front-end
filtro y ganancia

Muestras I/Q
frecuencia y sample rate

Espectro y tiempo

Demodulación

Símbolos/tramas

Validación con señal
propia documentada

El análisis parte de una transmisión propia de baja potencia o un archivo de captura publicado. Se registra hardware, frecuencia central, tasa, ganancia, reloj y entorno. Primero se distingue ruido, interferencia e imagen; después se estima ancho, duración y periodicidad; por último se prueba modulación y estructura.

Recibir o transmitir está regulado de forma distinta según país, banda y contenido. Algunos servicios no pueden interceptarse ni decodificarse aunque la señal sea físicamente accesible. Transmitir requiere autorización y puede interferir sistemas críticos. El laboratorio principal es solo recepción con control remoto propio o captura sintética; cualquier emisión usa carga ficticia, potencia y blindaje permitidos.

Caso razonado: señal duplicada por el receptor

Un pico aparece simétrico respecto del centro y cambia al variar ganancia. No se atribuye a dos transmisores: se evalúa imagen o saturación del front-end, se reduce ganancia, cambia frecuencia central y compara con otro receptor. La cadena de medición también tiene fallos.

📔 Glosario operativo

Término Definición útil
I/Q Dos componentes ortogonales que conservan amplitud y fase.
Tasa de muestreo Número de muestras por segundo y límite práctico de banda observada.
Saturación Sobrecarga que distorsiona y crea señales espurias.
Demodulación Recuperación de símbolos o información desde una portadora modulada.
PPM Error relativo de frecuencia del oscilador.

✅ Criterio de dominio

El alumno domina SDR cuando configura una captura reproducible, distingue artefactos del receptor, explica el camino IQ a trama y mantiene recepción y emisión dentro de permisos y aislamiento.

📖 Definiciones y características

🧰 Herramientas y preparación

# Verificar el SDR
rtl_test -t                         # prueba del RTL-SDR
gqrx                                # exploración con waterfall

# Captura IQ desde línea de comandos
rtl_sdr -f 433920000 -s 2048000 -g 40 captura.iq

# Análisis con Universal Radio Hacker
urh

🧪 Laboratorio guiado

  1. Conecta el SDR y verifica con rtl_test que funciona sin pérdidas de muestras.
  2. Explora el espectro: en GQRX, sintoniza la banda ISM de 433 MHz y observa el waterfall mientras accionas un mando propio.
  3. Localiza la señal: identifica la frecuencia central exacta de la ráfaga del mando.
  4. Captura IQ: graba la transmisión con rtl_sdr o desde URH a la frecuencia adecuada.
  5. Determina la modulación: en URH, visualiza la señal y decide si es OOK/ASK o FSK.
  6. Demodula y decodifica: ajusta parámetros (samples/símbolo, umbral) hasta obtener los bits; identifica preámbulo y payload.
  7. Interpreta el protocolo: compara varias pulsaciones para ver qué campos cambian (contador rolling code vs. código fijo).
  8. Documenta frecuencia, modulación, tasa de símbolo y estructura de la trama.

✍️ Ejercicios

  1. Identifica la frecuencia central de un mando propio con GQRX.
  2. Captura tres pulsaciones del mismo botón a fichero IQ.
  3. Clasifica la modulación observando la forma de onda en URH.
  4. Decodifica los bits de la trama y localiza el preámbulo.
  5. Compara pulsaciones para determinar si usa código fijo o rolling code.
  6. Documenta los parámetros necesarios para reproducir la captura.

📝 Reto verificable

Captura y decodifica la señal de un dispositivo sub-GHz propio (mando de garaje viejo, estación meteorológica, sensor). Criterio de aceptación: entregas la frecuencia, la modulación y la tasa de símbolo correctas, y una decodificación de los bits del payload con identificación de al menos el preámbulo y un campo de datos. No se requiere ni se permite retransmitir señales.

⚠️ Errores comunes

Síntoma / mensaje Causa y cómo arreglar
rtl_test reporta pérdidas USB saturado o ganancia mal; baja el sample rate
No veo la señal en el waterfall Frecuencia/ganancia incorrectas; ajusta y amplía el span
Demodulación da bits aleatorios Samples/símbolo o umbral mal; recalíbralos en URH
Señal muy débil Antena inadecuada; usa una sintonizada a la banda
Frecuencia ligeramente desviada Error de PPM del SDR; calíbralo con rtl_test -p

❓ Preguntas frecuentes

❓ ¿Puedo capturar cualquier frecuencia con un RTL-SDR? No: cubre aproximadamente 24 MHz–1.7 GHz y solo recibe. Para bandas más altas o transmitir necesitas hardware como HackRF, siempre dentro de la ley.

❓ ¿Es legal escuchar señales de radio? Depende del país y de la banda. Escuchar tus propios dispositivos en bandas ISM suele ser aceptable; interceptar comunicaciones ajenas o transmitir sin licencia no lo es.

❓ ¿Qué es un rolling code y por qué importa? Un código que cambia en cada uso para evitar ataques de repetición; distinguirlo de un código fijo es clave al analizar mandos y sistemas de acceso.

🔗 Referencias

📥 Material descargable

⬅️ Clase anterior

Clase 268 — Análisis de hardware: UART, JTAG y SPI

➡️ Siguiente clase

Clase 270 — Ataques a RFID y NFC