Electronica Pascual

Información sobre electronica, tecnologia y telecomunicaciones

Ingenieria Inversa – Reverse engineering

9 junio, 2008

Quiero dedicar esta entrada a mi amigo Juan Cimadevilla gracias por su ayuda con el Blog

Definición

Según wikipedia ( Ingeniería Inversa )

«El objetivo de la ingeniería inversa es obtener información a partir de un producto accesible al público, con el fin de determinar de qué está hecho, qué lo hace funcionar y cómo fue fabricado. Los productos más comunes que son sometidos a la ingeniería inversa son los programas de computadoras y los componentes electrónicos

Con que fines:

1º)

– Aumentar nuestro conocimiento.

– Analizar productos de la competencia.

– Ver las soluciones que han aplicado otros, a algo que queremos desarrollar.

Pero hay también fines ilícitos:

2º)

– Clonar un producto u equipo, sin aportar nada nuevo ( en España se llama fusilar un equipo o pasarlo por la fotocopiadora).

– Romper las protecciones de Hardware o Software con el fin de acceder a poder realizar el punto anterior.

Todos quien mas, quien menos desde consumidores, aficionados y empresas han realizado tareas de ingeniería inversa, generalmente desde el primer apartado.

Y si uno esta dentro de la industria creando y diseñando sistemas novedosos ha sido examinado desde los fines del 1º apartado y en algunas ocasiones desde los del segundo.

Podría citar algunos casos sobre nuestros diseños que han sido sometidos al segundo apartado, pero no es de lo que quiero hablaros.

Mas interesante me parece hablar de los sistemas de de protección de las parte sensibles de nuestros diseños ( lo que se pueda).

– Encapsulados con resinas muy resistentes y difíciles de diluir.

– Utilización de PCB multicapas en las que las pistas que interconexionan los componentes están en las capas intermedias.

– Incorporar sistemas electrónicos de auto destrucción de los componentes sensibles, que se activan al destapar ciertos blindajes.

– Utilizar componentes dotados de sistemas de protección y cifrado interno.

En muchas ocasiones basamos la seguridad de nuestros diseños en la utilización de sistemas programados con protección y confiamos en las soluciones de protección establecidas por el fabricante.

Pero contra toda puerta que se cierra hay una llave, y aplicando las astucia y los métodos apropiados las protecciones ya sean Hardware o Software pueden romperse.

Os hablo de todo esto, por que ya desde hace años había escuchado que grandes corporaciones y departamentos de » I+D » disponían de los métodos apropiados para entrar en el corazón de los procesadores, microcontroladores, memorias.

Accediendo desde dentro a leer los datos, los programas, o la programación de FPGA

imágenes de Wikipedia

Hace unos días descubrí en la red, en la pagina de wired el siguiente articulo «Smart Card Hacker’s Tools Include Acid, Red Nail Polish» como realizar ingeniería inversa para romper los códigos de una tarjeta inteligente.

En el articulo hablan de Christopher Tarnovsky de 37 años de dad de California, que ha estado inmerso como dicen en el articulo en » tormenta legal que enfrentó el Rupert Murdoch propietario del Grupo NDS contra su competidor NagraStar , todos en el mundo de la televisión por satélite y de la piratería en un juicio celebrado este mes»

Todo por romper los códigos de dichas tarjetas, hay que tener en cuenta que el negocio de la TV por satélite mueve miles de millones.

Pero lo que nos interesa ( solo con fines divulgativos y para saber, a que nos enfrentamos los diseñadores de sistemas, para poder protegerlos es como lo hacen)

Podemos pensar en grandes laboratorios con una gran cantidad de Ingenieros pero Christopher Tarnovsky ha decidido abrir sus laboratorios y contarnos algunas de las técnicas utilizadas:

En su laboratorio esta rodeado de equipos especializados, entre ellos un microscopio de alta gama que tiene acoplada una camara de televisión y un sistema de digitalización.

Ordenadores con descompliladores, un sistema de microposicionamiento en tres ejes (x,y y z) acoplado a la base del microscopio.

Algún que otro analizador lógico.

Un osciloscopio tektronix TDS 3034

  • 300 MHz Bandwidths
  • Sample Rates up to 5 GS/s
  • 4 Channels
  • Full VGA Color LCD on all Models
  • Built-in Floppy Disk Drive For Easy
  • Storage and Documentation
  • 21 Automatic Measurements
  • Centronics Port Standard on all Models for Quick, Convenient Hardcopies
  • 9-bit Vertical Resolution
  • Multi-Language User Interface
  • QuickMenu User Interface Mode for Quick, Easy Operation
  • Advanced Triggers, such as, Glitch, Width, and Logic
  • Telecommunications Mask Testing (TMT)
  • Fast Fourier Transform (FFT) for
  • Frequency and Harmonic Analysis
  • Extended Video Application Module
  • Support for Active Probes, Differential Probes, and Current Probes that Provide Automatic Scaling and Units

Pero lo mas interesante que se puede ver en el vídeo del final de esta entrada es como accede al interior del chip, para ello utiliza distintos ácidos y disolventes entre ellos el peligroso ácido fluorhídrico(Este ácido si es mal utilizado puede atacar la médula osea, HF es indoloro hasta varias horas más tarde, cuando es demasiado tarde para tomar medidas adecuadas por favor tener cuidado y ser responsable).

Vemos que en su laboratorio dispone de una campana de flujo laminar, un agitador de líquidos, pipetas, un sistema de limpieza por ultrasonidos, para eliminar impurezas y restos de las capas del encapsulado.

El proceso comienza aplicando ácidos y disolventes sobre el chip, con cuidado de no dañarlo

ya que ha de estar completamente operativo para su análisis.

Una vez retiradas las protecciones con una punta acoplada a un posicionado lineal en en tres ejes X, Y Z

se posiciona sobre la parte del sustrato donde quieren ser analizadas las señales, generalmente puntos donde las señales no estran protegidas o encriptadas.

Las señales obtenidas son analizadas mediante analizadores lógicos e introducidas en un ordenador para ser descompiladas.

imágenes del resultado con los códigos después de ser depurados.

Todo lo anteriormente expuesto puede verse en el siguiente video.

Para evitar estas tecnicas las empresas fabricantes de circuitos integrados de alta encriptación establecen en la firma de los contratos para la venta de los mismos, a los integradores de sistemas lo siguiente:

Nuestros chip solo pueden encontrarse instalados en las placas, los deteriorados nos han de ser devueltos.

Despues de todo lo anteriormente expuesto es:

¿Como podemos proteger de forma segura nuestros diseños?

5 Comentarios to “Ingenieria Inversa – Reverse engineering”

  1. Muxfin Dijo:

    Me recuerda viejos tiempos, cuando con medios mucho menos sofisticados se fusilaban los primeros videojuegos.
    Al final la única ventaja que se tiene, es ser los primeros en realizarlo.
    Si fuéramos cocineros lo llamaríamos «Deconstrucción».

  2. Juan Dijo:

    Me ha dejado helado, yo pensaba que saltar las tarjetas codificadoras de TV era un trabajo de matemáticas y en realidad es de voyeurismo ;D

    Le quitan «la ropa» al chip y le miran los bits.

    Muy interesante.

  3. hujh Dijo:

    juan corona

  4. Juan Dijo:

    El enlace de Wired de arriba parece que ya no funciona, aunque este parece que contiene la misma información:
    http://www.wired.com/politics/security/news/2008/05/tarnovsky

  5. carlos Dijo:

    saludos, yo pienso que hay muchas cosas positivas en la ingenieria inversa no necesariamente sirve para copiar un diseño, incluso se pueden obtener piezas compatibles con ciertos productos sin obtener los detalles de su fabricación,esto para luchar contra la obsolescencia programada con propositos de reingenieria,para producir un producto mejor, para innovar es decir con la combinación de diversos diseños o etapas que se hayan obtenido, mas la combi incorporación de nuestras propias ideas se puede obtener algo novedoso,tambien como un metodo educativo etc, en fin la ingenieria inversa dicho por expertos de la fundación rockefeller es el metodo mas viable, que tienen los paises en vias de desarrollo para equipararse con los paises industrializados,pues no tendria sentido devolverse 30 años en el tiempo y empezar desde cero.

Escribe un comentariio

XHTML: Puedes utilizar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>