Revertir y piratear la unidad de disco duro externa con autocifrado Aigo. Parte 1: Disección en partes

Revertir y piratear unidades externas de autocifrado es mi antiguo pasatiempo. En el pasado tuve la oportunidad de practicar con modelos como Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Recientemente, un colega me trajo otra exhibición: Patriot (Aigo) SK8671, que está construido según un diseño típico: un indicador LCD y un teclado para ingresar un código PIN. Eso es lo que salió de esto...

1 Introduccion
2. Arquitectura de hardware
– 2.1. tablero principal
– 2.2. Tablero indicador LCD
– 2.3. tablero del teclado
– 2.4. mirando los cables
3. Secuencia de pasos de ataque.
– 3.1. Tomar un volcado de datos desde una unidad flash SPI
– 3.2. Olfatear comunicaciones

Revertir y piratear la unidad de disco duro externa con autocifrado Aigo. Parte 1: Disección en partes


1 Introduccion

Revertir y piratear la unidad de disco duro externa con autocifrado Aigo. Parte 1: Disección en partes
viviendas

Revertir y piratear la unidad de disco duro externa con autocifrado Aigo. Parte 1: Disección en partes
Embalaje

El acceso a los datos almacenados en el disco, supuestamente cifrados, se realiza tras introducir el código PIN. Algunas notas introductorias sobre este dispositivo:

  • Para cambiar el código PIN, debe presionar F1 antes de desbloquear;
  • El código PIN debe contener de 6 a 9 dígitos;
  • Después de 15 intentos incorrectos, el disco se borra.

2. Arquitectura de hardware

Primero, diseccionamos el dispositivo en partes para comprender en qué componentes se compone. La tarea más tediosa es abrir la caja: muchos tornillos microscópicos y plástico. Al abrir la caja, vemos lo siguiente (preste atención al conector de cinco pines que soldé):

Revertir y piratear la unidad de disco duro externa con autocifrado Aigo. Parte 1: Disección en partes

2.1. tablero principal

El tablero principal es bastante simple:

Revertir y piratear la unidad de disco duro externa con autocifrado Aigo. Parte 1: Disección en partes

Sus partes más destacables (ver de arriba a abajo):

  • conector para indicador LCD (CN1);
  • altavoz de agudos (SP1);
  • Pm25LD010 (especificación) unidad flash SPI (U2);
  • Controlador Jmicron JMS539 (especificación) para USB-SATA (U1);
  • Conector USB 3 (J1).

La unidad flash SPI almacena el firmware para JMS539 y algunas configuraciones.

2.2. Tablero indicador LCD

No hay nada destacable en la placa LCD.

Revertir y piratear la unidad de disco duro externa con autocifrado Aigo. Parte 1: Disección en partes
Revertir y piratear la unidad de disco duro externa con autocifrado Aigo. Parte 1: Disección en partes

Solo:

  • Indicador LCD de origen desconocido (probablemente con fuente china); con control secuencial;
  • Conector de cinta para placa de teclado.

2.3. tablero del teclado

Al examinar el tablero del teclado, las cosas toman un giro más interesante.

Revertir y piratear la unidad de disco duro externa con autocifrado Aigo. Parte 1: Disección en partes

Aquí, en la parte posterior, vemos un conector de cinta, así como un microcontrolador PSoC 8 Cypress CY21434C1 (en adelante lo llamaremos simplemente PSoC)

Revertir y piratear la unidad de disco duro externa con autocifrado Aigo. Parte 1: Disección en partes

CY8C21434 utiliza el conjunto de instrucciones M8C (consulte documentación). En [página del producto]( (http://www.cypress.com/part/cy8c21434-24ltxi) se indica que es compatible con la tecnología CapSense (solución de Cypress, para teclados capacitivos). Aquí puede ver el conector de cinco pines que soldé; este es un método estándar para conectar un programador externo a través de la interfaz ISSP.

2.4. mirando los cables

Averigüemos qué está conectado aquí. Para hacer esto, simplemente pruebe los cables con un multímetro:

Revertir y piratear la unidad de disco duro externa con autocifrado Aigo. Parte 1: Disección en partes

Explicaciones para este diagrama dibujado en la rodilla:

  • El PSoC se describe en la especificación técnica;
  • el siguiente conector, el de la derecha, es la interfaz ISSP, que, por voluntad del destino, corresponde a lo que está escrito al respecto en Internet;
  • El conector más a la derecha es el terminal para el conector de cinta a la placa del teclado;
  • El rectángulo negro es un dibujo del conector CN1, diseñado para conectar la placa principal a la placa LCD. P11, P13 y P4 están conectados a los pines 11, 13 y 4 del PSoC en la placa LCD.

3. Secuencia de pasos de ataque.

Ahora que sabemos de qué componentes consta esta unidad, debemos: 1) asegurarnos de que la funcionalidad de cifrado básica esté realmente presente; 2) descubrir cómo se generan/guardan las claves de cifrado; 3) busque dónde se verificará exactamente el código PIN.

Para ello hice los siguientes pasos:

  • tomó un volcado de datos de una unidad flash SPI;
  • intenté volcar datos de una unidad flash PSoC;
  • verificó que la comunicación entre Cypress PSoC y JMS539 realmente contiene pulsaciones de teclas;
  • Me aseguré de que al cambiar la contraseña no se sobrescribiera nada en la unidad flash SPI;
  • Era demasiado vago para revertir el firmware 8051 de JMS539.

3.1. Tomar un volcado de datos desde una unidad flash SPI

Este procedimiento es muy sencillo:

  • conecte las sondas a las patas de la unidad flash: CLK, MOSI, MISO y (opcional) EN;
  • "olfatear" comunicaciones con un rastreador usando un analizador lógico (yo usé Saleae Logic Pro 16);
  • decodificar el protocolo SPI y exportar resultados a CSV;
  • tomar ventaja decodificar_spi.rbpara analizar los resultados y obtener un volcado.

Tenga en cuenta que este enfoque funciona especialmente bien en el caso del controlador JMS539, ya que este controlador carga todo el firmware desde la unidad flash en la etapa de inicialización.

$ decode_spi.rb boot_spi1.csv dump
0.039776 : WRITE DISABLE
0.039777 : JEDEC READ ID
0.039784 : ID 0x7f 0x9d 0x21
---------------------
0.039788 : READ @ 0x0
0x12,0x42,0x00,0xd3,0x22,0x00,
[...]
$ ls --size --block-size=1 dump
49152 dump
$ sha1sum dump
3d9db0dde7b4aadd2b7705a46b5d04e1a1f3b125 dump

Después de realizar un volcado de la unidad flash SPI, llegué a la conclusión de que su única tarea es almacenar el firmware para el dispositivo de control JMicron, que está integrado en el microcontrolador 8051. Desafortunadamente, realizar un volcado de la unidad flash SPI resultó inútil:

  • cuando se cambia el código PIN, el volcado de la unidad flash sigue siendo el mismo;
  • Después de la etapa de inicialización, el dispositivo no accede a la unidad flash SPI.

3.2. Olfatear comunicaciones

Esta es una forma de encontrar qué chip es responsable de verificar las comunicaciones en el momento/contenido de interés. Como ya sabemos, el controlador USB-SATA se conecta al LCD Cypress PSoC mediante el conector CN1 y dos cintas. Por tanto, conectamos las sondas a las tres patas correspondientes:

  • P4, entrada/salida general;
  • P11, I2C SCL;
  • P13, I2C SDA.

Revertir y piratear la unidad de disco duro externa con autocifrado Aigo. Parte 1: Disección en partes

Luego lanzamos el analizador lógico Saleae e ingresamos en el teclado: “123456~”. Como resultado, vemos el siguiente diagrama.

Revertir y piratear la unidad de disco duro externa con autocifrado Aigo. Parte 1: Disección en partes

En él podemos ver tres canales de intercambio de datos:

  • hay varias ráfagas cortas en el canal P4;
  • en P11 y P13: intercambio de datos casi continuo.

Acercándonos al primer pico en el canal P4 (rectángulo azul en la figura anterior), vemos lo siguiente:

Revertir y piratear la unidad de disco duro externa con autocifrado Aigo. Parte 1: Disección en partes

Aquí puede ver que en P4 hay casi 70 ms de señal monótona, que al principio me pareció que desempeñaba el papel de una señal de reloj. Sin embargo, después de pasar un tiempo comprobando mi suposición, descubrí que no se trata de una señal de reloj, sino de un flujo de audio que se envía al tweeter cuando se presionan las teclas. Por tanto, esta sección de la señal en sí no contiene información útil para nosotros. Sin embargo, se puede utilizar como indicador para saber cuándo el PSoC registra una pulsación de tecla.

Sin embargo, la última transmisión de audio de P4 es un poco diferente: ¡es el audio del "PIN no válido"!

Volviendo al gráfico de pulsaciones de teclas, haciendo zoom en el último gráfico de flujo de audio (vea el rectángulo azul nuevamente), obtenemos:

Revertir y piratear la unidad de disco duro externa con autocifrado Aigo. Parte 1: Disección en partes

Aquí vemos señales monótonas en P11. Parece que esta es la señal del reloj. Y P13 son datos. Observe cómo cambia el patrón después de que finaliza el pitido. Sería interesante ver qué pasa aquí.

Los protocolos que funcionan con dos cables suelen ser SPI o I2C, y la especificación técnica de Cypress dice que estos pines corresponden a I2C, lo cual vemos que es cierto en nuestro caso:

Revertir y piratear la unidad de disco duro externa con autocifrado Aigo. Parte 1: Disección en partes

El chipset USB-SATA sondea constantemente el PSoC para leer el estado de la clave, que de forma predeterminada es "0". Luego, cuando presionas la tecla "1", cambia a "1". La transmisión final inmediatamente después de presionar “~” es diferente si se ingresa el código PIN incorrecto. Sin embargo, por el momento no he comprobado qué se transmite realmente allí. Pero sospecho que es poco probable que se trate de una clave de cifrado. De todos modos, consulte la siguiente sección para comprender cómo eliminé el firmware interno del PSoC.

Fuente: habr.com

Añadir un comentario