hardware hacking caso práctico ingeniería inversa smartcards

69
Ramiro Pareja (T4F) Julio 2006 www.t4f.org INGENIERIA INVERSA ESTUDIO DE UN CASO PRACTICO SOBRE SMARTCARDS IV Jornadas Telemáticas del KASLab 2006 Ramiro Pareja Tech For Fun (www.t4f.org) [email protected]

Upload: andres-lozano

Post on 12-Apr-2017

109 views

Category:

Engineering


2 download

TRANSCRIPT

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

INGENIERIA INVERSAESTUDIO DE UN CASO PRACTICO

SOBRE SMARTCARDS

IV Jornadas Telemáticas del KASLab 2006

Ramiro ParejaTech For Fun (www.t4f.org)

[email protected]

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

DISCLAIMER

● Esta informacion es EXCLUSIVAMENTE para fines educativos.

● El autor no se responsabiliza del uso que pueda hacerse de ella.

● Durante la realizacion del siguiente “hack” en ningun momento se quebranto la ley. No se produjo ningun perjuicio ni se recibio ningun beneficio.

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

DISCLAIMER

● Todo lo aqui expuesto es pura ficcion producto de mi perfida y perturbada imaginacion.

● Nunca se realizo dicho “hack”● Las fotos y videos son falsos, generadas por

ordenador.

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

INGENIERIA INVERSA

INTRODUCCION

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

DEFINICION DE INGENIERIA INVERSA

Proceso de obtencion de informacion tecnica a partir de un producto accesible al publico, con el fin de

determinar de que esta hecho, que lo hace funcionar y como fue fabricado (wikipedia)

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

POR QUE SE LLAMA INGENIERIA INVERSA?

● Objetivos y medios contrarios– INGENIERIA: Desarrollo de un producto a partir de

unas especificaciones dadas, usando para ello los recursos disponibles.

– ING. INVERSA: A partir de un producto, deduccion de las especificaciones que cumple y los recursos usados para ello.

● Proceso de implementacion invertido (cuestionable!)

– INGENIERIA: De lo concreto a lo abstracto– ING. INVERSA: De lo abstracto a lo concreto

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

PROCESO DE INGENIERIA (IMPLEMENTACION)

● Los distintos componentes se van juntando para realizar funciones cada mas complejas hasta llegar al producto final (Abstraccion)

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

PROCESO DE INGENIERIA (IMPLEMENTACION)

● Los distintos componentes se van juntando para realizar funciones cada mas complejas hasta llegar al producto final (Abstraccion)

Modulo 1

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

PROCESO DE INGENIERIA (IMPLEMENTACION)

● Los distintos componentes se van juntando para realizar funciones cada mas complejas hasta llegar al producto final (Abstraccion)

Modulo 1

Modulo 2

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

PROCESO DE INGENIERIA (IMPLEMENTACION)

● Los distintos componentes se van juntando para realizar funciones cada mas complejas hasta llegar al producto final (Abstraccion)

Modulo 3

Modulo 1

Modulo 2

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

PROCESO DE INGENIERIA (IMPLEMENTACION)

● Los distintos componentes se van juntando para realizar funciones cada mas complejas hasta llegar al producto final (Abstraccion)

Modulo 3

Modulo 1

Modulo 2

Modulo 7

Modulo 4

Modulo 5Modulo 6

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

PROCESO DE INGENIERIA (IMPLEMENTACION)

● Los distintos componentes se van juntando para realizar funciones cada mas complejas hasta llegar al producto final (Abstraccion)

Modulo 3

Modulo 1

Modulo 2

Modulo 7

Modulo 4

Modulo 5Modulo 6

Modulo 8

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

PROCESO DE INGENIERIA (IMPLEMENTACION)

● Los distintos componentes se van juntando para realizar funciones cada mas complejas hasta llegar al producto final (Abstraccion)

Producto

Modulo 3

Modulo 1

Modulo 2

Modulo 7

Modulo 4

Modulo 5Modulo 6

Modulo 8

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

PROCESO DE ING. INVERSA (IMPLEMENTACION)

● Del producto final, separamos y analizamos individualmente los distintos componentes para encontrar su funcion (Concretizacion)

Producto

Modulo 3

Modulo 1

Modulo 2

Modulo 7

Modulo 4

Modulo 5Modulo 6

Modulo 8

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

PROCESO DE ING. INVERSA (IMPLEMENTACION)

● Del producto final, separamos y analizamos individualmente los distintos componentes para encontrar su funcion (Concretizacion)

Modulo 3

Modulo 1

Modulo 2

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

PROCESO DE ING. INVERSA (IMPLEMENTACION)

● Del producto final, separamos y analizamos individualmente los distintos componentes para encontrar su funcion (Concretizacion)

Modulo 1

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

CAMPOS DE APLICACION● INDUSTRIA MILITAR (ej: B-29, bomba

atomica, motor a reaccion...)● INDUSTRIA AUTOMOVILISTICA (ej: motor

2 tiempos)● HARDWARE (ej: IBM PC)● SOFTWARE (ej: NETBIOS, MSN, Cracks...)● ELECTRONICA (ej: Pay-TV, tarjetas

telefonicas, VISA CASH...)● ....

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

MOTIVACION● Ilicitas:

– Apropiacion tecnologica– Economica (explotacion de los resultados)

● Licitas:– Sustitucion de componentes obsoletos– Eliminar restricciones impuestas en los

productos– Auditoria de seguridad– Comprobar respeto de patentes y licencias

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

MOTIVACION

RETO!

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

INGENIERIA INVERSA

CASO PRACTICO

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

ESCENARIO

● Campus universitario● Lavanderia de la residencia de estudiantes ● Sistema de pago basado en “smartcards”:

– La tarjeta se recarga de dinero en una maquina – La tarjeta se inserta en el lector de la lavadora y

se aprieta un boton. El saldo es descontado.– La lavadora se enciende.

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

ANTECEDENTES

● “Hack”:– La tarjeta es insertada en el lector, que muestra

el saldo de la misma– Un trozo de carton es insertado en el lector de

modo que tape los contactos de la tarjeta– Se aprieta el boton de cobrar el saldo. La

lavadora se enciende pero el saldo no es descontado

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

ANTECEDENTES

● Fallo de diseño:– El lector lee el saldo al insertar la tarjeta, pero no

comprueba que se haya descontado el saldo cuando se le da la orden de hacerlo.

● Solucion:– Releer el saldo de la tarjeta para comprobar que

se haya descontado antes de permitir el uso de la lavadora.

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

ANTECEDENTES

● Problema solventado un mes despues de su “difusion”.

● Conclusiones para un futuro hack?

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

OBJETIVOS

● Comprometer el sistema:– Obtener servicios a un precio reducido o nulo

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

OBJETIVOS

● Comprometer el sistema:– Obtener servicios a un precio reducido o nulo

● Vias:– Recargar la tarjeta– Falsificar la tarjeta (emulador)– “Bypass” del “sistema de acceso condicional”

(lector)

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

DONDE SE GUARDA EL SALDO?

● Localmente?– La tarjeta guarda el saldo– Mas barato pero inseguro (falsificable)– Ej: Visa Cash, tarjetas telefonicas

(antiguamente), tarjetas parquimetros...– Hack:

● Modificar el saldo

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

DONDE SE GUARDA EL SALDO?

● Remotamente?– La tarjeta guarda un ID. El lector consulta el

saldo disponible para dicho ID en una base de datos remota

– Mas seguro pero costoso (conectividad de los lectores)

– Ej: Moviles prepago, tarjetas de credito, videoclubs automaticos, tarjetas telefonicas (saldo guardado + DB externa)...

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

DONDE SE GUARDA EL SALDO?

● Remotamente?– Hack:

● Comprometer la DB (complicado)● Usar un ID ajeno.

Poco etico -> Intromision en la privacidad de un tercero

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

DONDE SE GUARDA EL SALDO?

● Nosotros ya podemos saber donde se guarda el saldo!!!!

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

DONDE SE GUARDA EL SALDO?

● Nosotros ya podemos saber donde se guarda el saldo!!!!

● La experiencia con el lector y el trozo de carton nos revela que el saldo esta en la tarjeta.

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

TARJETA “LISTA” O “TONTA”?

● Tarjetas electronicas o “chip”

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

TARJETA “LISTA” O “TONTA”?

– “Smartcards” ● Tarjetas con procesador y memoria● Recibe y procesa comandos● Estandar ISO7816:

– Parte 1: Caracteristicas fisicas– Parte 2: Dimensiones y posiciones de los contactos– Parte 3: Caracteristicas electricas– Parte 4: Comandos– Parte 5 y 6: adjudicacion de identificadores y numeracion

● Ej: tarjetas GSM, tarjetas monedero (VISA Cash), carnet universitario, tarjetas Pay-Per-View, DNI electronico...

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

TARJETA “LISTA” O “TONTA”?

– Tarjeta “tonta” ● ISO 7816 parte 1 y 2● Tarjetas con memoria y sin procesador, pero con

logica de control y (eventualmente) autentificacion● Ej: Tarjetas cabinas telefonicas, control de acceso y

“fichaje”, videoclubs...

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

TARJETA “LISTA” O “TONTA”?● Facilidades/dificultades para hacer Ing. Inv.

– “Smartcard”:● Totalmente Estandarizado:

– Conocemos el protocolo de comunicacion– Lector estandar

● Procesador -> Criptografia compleja– Tarjetas “tontas”:

● Ausencia de procesador -> Seguridad nula o minima● Ausencia estandar:

– Protocolos de comunicaciones desconocidos– Lector “casero”

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

TARJETA “LISTA” O “TONTA”?

● Para comprobar a que tipo de tarjeta nos enfrentamos probamos a enviarle un comando estandar con un lector estandar y esperamos una respuesta estandar.

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

TARJETA “LISTA” O “TONTA”?

● Para comprobar a que tipo de tarjeta nos enfrentamos probamos a enviarle un comando estandar con un lector estandar y esperamos una respuesta estandar.

ES TONTA!

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

IDENTIFICANDO LA TARJETA

● Existen varias decenas de tarjetas “tontas” (sincronas) distintas.

● Hacemos una lista de tarjetas con sus caracteristicas discriminatorias.

● Reducimos dicha lista usando la logica– Aplicaciones concretas de la tarjeta– “Truco” del celo en los terminales

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

IDENTIFICANDO LA TARJETA

Derechos de la imagen: Thomas Hüttner / Karin Mayr

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

EL MODELO DE LA CAJA NEGRA

● Modelamos el sistema a atacar como una “caja negra”:– Datos entran en la caja– La caja los procesa (se desconoce el como)– Devuelve los datos procesados por la salida

CAJANEGRA

Entradas salidas

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

EL MODELO DE LA CAJA NEGRA

● Objetivo– saber como funciona la caja negra (como

procesa los datos de entrada)● Variando la entrada y analizando la salida

inferimos el funcionamiento de la caja negra● Problema:

– en este caso, ni siquiera sabemos como se meten y sacan datos de la tarjeta

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

EL MODELO DE LA CAJA NEGRA

● Como podemos saber como meter/sacar datos de la tarjeta?

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

EL MODELO DE LA CAJA NEGRA

● Como podemos saber como meter/sacar datos de la tarjeta?– Analizando las comunicaciones tarjeta – lector

CAJANEGRA

Entradas

Salidas

LECTOR

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

ANALISIS DE LA COMUNICACION

● Hardware y software de diseño propio utilizado para analizar la comunicacion entre el lector y la tarjeta

● HARDWARE: – Analizador logico

● SOFTWARE:– Logger para el analizador logico (MSDOS)– Visualizador de logs (Linux / Windows)

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

ANALISIS DE LA COMUNICACION

.

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

ANALISIS DE LA COMUNICACION

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

ANALISIS DE LA COMUNICACION

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

ANALISIS DE COMUNICACIONES

● Visualizador de logs (ncurses)

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

ANALISIS DE COMUNICACIONES

● De la visualizacion de los logs y comparando los cronogramas con los datasheets, reducimos la lista de tarjetas posibles a dos candidatas:

SLE 4432SLE 4442

● Como tenemos los datasheets, nos ahorramos analizar el protocolo.

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

SLE4432 / SLE4442

● Memoria EEPROM de 256 bytes● Protocolo de transporte 2-wire● SLE4442:

– Proteccion contra escritura ilicita mediante un PIN de 24 bits

● Comandos:– Lectura / escritura de la memoria– Autentificar / cambiar PIN (solo SLE4442)

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

CONCRETANDO EL MODELO DE TARJETA

● Desarrollo de software para el analisis de los logs. Automaticamente muestra las secuencias de comandos enviados por el lector y las respuestas de la tarjeta.

● La presencia de los comandos relacionados con el PIN confirman que la tarjeta es una SLE4442

● Este software nos permite conocer el PIN de la tarjeta

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

EL LECTOR

● Usando la informacion del datasheet se crea hardware y software para enviar comandos (lectura, escritura, autentificacion...) a la tarjeta

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

EL MAPA DE MEMORIA

● MAPA DE MEMORIA: Significado de cada byte en la memoria de la tarjeta.

● Variamos el saldo de la tarjeta para ver como varia el contenido de la memoria– 1 byte -> saldo en BCD– 4 bytes -> pseudoaleatorio: ¿Checksum?

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

EL MAPA DE MEMORIA

● Comparacion del contenido de la memoria de varias tarjetas ->– 2 bytes -> numero de serie de la tarjeta– 2 bytes -> zona del campus

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

HACKED???

● Procedimiento para recargar:– Autentificarse ante la tarjeta con el PIN

capturado– Cambiar el saldo– Cambiar el checksum (todavia no sabemos

como)

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

OUCH !!!!!

● EL PIN YA NO MAS ES ACEPTADO POR LA TARJETA!

● Nuevos logs -> el PIN ha cambiado● El PIN es distinto para distintos saldos y

distintas tarjetas

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

OUCH !!!!!●Pese a esto, el sistema esta comprometido:

– Captura del PIN y del contenido de la memoria para un saldo X (“snapshot”)

– Captura del PIN para saldo 0– Autentificarse con el PIN para el saldo 0– Escribir el contenido de la memoria para el saldo

X y cambiar el PIN al del saldo X●No necesitamos conocer los algoritmos que generan el PIN ni el checksum. Ni siquiera el mapa de memoria.

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

PERO QUEREMOS MAS!

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

CRIPTOANALISIS

● Objetivo: – Determinar la funcion que genera el PIN y el

checksum en a partir del contenido de la memoria.

● Herramienta: Analisis diferencial– fijamos los parametros de la funcion excepto

uno, el cual se varia lentamente mientras se observa la variacion de la salida

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

ANALISIS DIFERENCIAL

● F(B1,B2,B3...) = Funcion a analizar (ej:generacion PIN)

● B1, B2, B3... = Byte 1, Byte 2, Byte 3...

● Para simplificar supondremos que el saldo esta guardado en el byte 1:– F(saldo,B2,B3...)

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

ANALISIS DIFERENCIAL

F(Saldo,B2,B3...)

Saldo

B2

B3

B4

B5...B254

B255

F()

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

ANALISIS DIFERENCIAL

B2

B3

B4

B5...B254

B255

F()

● F(SALDO, B2, B3...) = F'(SALDO,G(B2, B3...))

F'(Saldo,G)G(B2,B3...)

Saldo

G()

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

ANALISIS DIFERENCIAL

K2

K3

K4

K255

F()

● Fijamos todos los parametros menos el saldo:K = G(K2, K3, K4...)

F'(Saldo,K)G(B2,B3...)

Saldo

K

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

ANALISIS DIFERENCIAL

K2

K3

K4

K255

F()

● F'(SALDO,G(...)) = F'(SALDO,K) = F'(SALDO)

F'(Saldo)G(B2,B3...)

Saldo

K

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

ANALISIS DIFERENCIAL

● Variando el parametro lentamente el parametro del saldo y observando la salida, podemos deducir la funcion F':– Acotacion (maximo, minimo)– Periodicidad– Discontinuidades

● Se repite el proceso para los demas parametros de F

● Si la aportacion de cada parametro a la funcion es independiente de los demas parametros, el metodo es viable

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

ANALISIS DIFERENCIAL● Funcion calculo de PIN:

– Lineal -> Algoritmo deducido diferencialmente● Funcion calculo del checksum:

– Pseudo lineal -> Lineal en segmentos● Algoritmo deducido para los segmentos lineales● Algoritmo para predecir los “saltos” no lineales

– En la practica:● A partir de un checksum valido (ej: el de la tarjeta), se

puede calcular un nuevo checksum para un saldo distinto dentro de unos margenes de variacion.

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

DEFEATED!

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

CONCLUSION

● Sistema totalmente comprometido en 6 dias:– Recargar tarjeta– Emulador

● Autentificacion del lector por PIN no es suficiente.

● La tarjeta SLE4442 no es segura para aplicaciones de pago.

Ramiro Pareja (T4F)Julio 2006

www.t4f.org

CURIOSIDAD● www.hackaday.com/entry/1234000453073566● La empresa “Secure Science Corporation” anuncia (3

dias antes de mi hack) a bombo y platillo haber roto el sistema de pago “ExpressPay” de “Fedex” (SLE4442 con PIN invariante)

● “Secure Science Corporation” recomienda a FEDEX encriptar el PIN y el saldo para evitar el fraude.

● FALSO! -> Como se ha comentado antes, haciendo un “snapshot” de la memoria y capturando el PIN el sistema esta comprometido independientemente de la criptografia.