20/JUL/21
1695
Desentrañar cómo funciona algo desandando el camino ha propiciado grandes descubrimientos. Y también protagoniza capítulos completos en la historia de compañías tan reconocidas como IBM, Samsung y Apple.
La ingeniería inversa o retroingeniería es “el proceso llevado a cabo con el objetivo de obtener información o un diseño a partir de un producto”. Su fin es descubrir cuáles son sus distintos componentes y cómo interactúan entre ellos. Mientras, se indaga en el proceso de fabricación de dicho producto.
El método de trabajo aplicado es el contrario al de la ingeniería tradicional. Lo "normal" sería partir de una necesidad, apoyarse en datos técnicos y elaborar un proyecto que finalice con el producto. Sin embargo, hay casos en los que ha sido necesario "darle una vuelta" a la idea.
A día de hoy lo solemos vincular a la electrónica y la informática, pero cualquier producto puede ser analizado desde esta óptica. Es más, algunos de los ejemplos clásicos que explican qué es la ingeniería inversa remiten a un oscuro periodo de la historia.
Aunque nace de una condición tan humana como es la curiosidad, la mayoría de expertos sitúa el comienzo de la ingeniería inversa en la Segunda Guerra Mundial. En aquella época, los ejércitos incautaban material del enemigo y procedían a estudiarlo con detenimiento para descubrir posibles mejoras.
Muchas veces estos hallazgos eran posibles gracias a un golpe de suerte. Pasó cuando el piloto norteamericano Howard Jarrel tuvo que aterrizar su bombardero B-29 en la base soviética de Uglovoye, cerca de Vladivostok. Los científicos rusos desarmaron hasta el último tornillo del aparato. Solo dos años después el TU-4 alzaría sus alas al cielo.
Otro ejemplo son las máquinas Enigma con las que Japón y Alemania encriptaban sus comunicaciones de alto rango. La aparición del nuevo código PURPLE desconcertó a los servicios de inteligencia aliados. William Friedman y Frank Rowlett encontraron la solución: una máquina de ingeniería inversa que modificaba las originales y posibilitaba la descodificación.
Si has visto la fabulosa serie de AMC "Halt and Catch Fire", te sonará esta historia. La contaban con otros nombres, pero se refería a uno de los capítulos claves en el desarrollo de la informática actual. En aquella época IBM no tenía rival y no permitía replicar el código de la BIOS que hacía únicos sus ordenadores.
A Phoenix Technologies se le ocurrió aplicar la ingeniería inversa en una clean room. Un grupo de trabajo diseccionaba la BIOS de IBM en una "habitación limpia" y describía su funcionamiento sin hacer referencias al código. Un segundo grupo, aislado del primero, replicaba lo que hacía el sistema programándolo desde cero.
Con ese "truco" Phoenix Technologies se libró del destrozo judicial y creó casi sin querer el concepto del "ordenador clónico". Fue también el momento que Microsoft aprovechó para empezar a convertirse en el coloso actual. Ese auténtico game changer está relatado por Bernard A. Galler en su libro "Software and intellectual property protection".
Hay historias parecidas en "High Score", serie documental de Netflix sobre la historia del videojuego. Algunos de los casos más hilarantes de ingeniería inversa se dieron en aquella época en la que pasamos de echar las tardes en "el recreativo" a tener en casa nuestras primeras consolas.
Samba también es capital. Gracias a este proyecto de software libre, que analizó información confidencial no liberada al público, sistemas operativos UNIX pudieron compartir archivos con Windows. Parecido es el caso de WINE, que, entre otras cosas, facilitó a OpenOffice.org poder abrir archivos de Office.
Y hay otro gran hito que añade picante a la extraña relación entre Apple y Samsung. A pesar de que ambos gigantes colaboran, siendo el segundo proveedor del primero, su historia en los juzgados es prolija. Todo empezó con una demanda en la que Apple acusaba a Samsung de fusilar con ingeniería inversa conceptos fundamentales del iPhone y el iPad. El entramado legal ha dado hasta para memes antológicos.
En su libro "Decoding Greatness", Ron Friedman afirma que la ingeniería inversa Según el sociólogo, impulsa el reconocimiento de patrones, el genio creativo y mejora las habilidades. Siempre se ha dicho que “los buenos artistas copian; los genios roban”.
Hay más razones para defender la ingeniería inversa. Por ejemplo, nunca interfiere con la funcionalidad del producto original. A cambio, al intentar comprender el sistema reduce su complejidad y facilita el mantenimiento. También genera más alternativas y actualiza información perdida u obsoleta. Y al promover la reutilización, hasta se convierte en una alternativa más ecológica.
Imágenes | Portada: foto de ThisisEngineering RAEng en Unsplash, foto de máquina Enigma por Mauro Sbicego en Unsplash, foto de arcade soviético por Camila Fernández en Unsplash.
Redactado por: Pablo Vinuesa