Computación confiada

Imagen de Epe

Tema: 

Bueno,

un tema recurrente pero no deja de ser interesante, aquí un artículo traducido al español y publicado en rebelión que muchas veces trae cosas interesantes sobre open source:

http://www.rebelion.org/noticia.php?id=33610

Ah, el artículo fue desarrollado por Jeremy Allison, de SAMBA.

Jeremy Allison
LinuxUser www.linuxuser.co.uk

Traducido por Jacinto Dávila para Rebelión

Una de las noticia más perturbadoras de los últimos días fue ver al presidente Chino, Hu Jintao, reuniéndose con el Sr. Bill Gates en la Mansión Gates, aún antes que con el Presidente Bush. Un sonriente Jintao mencionó como el usa el sistema operativo del Sr. Gates todos los días, mientras Bill prometió ayustedarle con soporte técnico. Pero, al parecer, Bill y la gente de Redmond podría estar ayudándolo con más de simple soporte técnico, y no exactamente para ayustedar al gobierno Chino.

Permítanme una pequeña desviación del tema recordando lo ocurrido hacia el año 1982.

La más grande explosión no nuclear algunas vez registrada por un satélite ocurrió en Rusia, en 1982. Fue una explosión en un gaseoducto en Siberia. La perturbadora y poco conocida verdad acerca de esta catástrofe es que fue causada directamente por la CIA, después de haber modificado deliberadamente el software a la Unión Soviética (sólo en formato binario, desde luego). Software que estaba diseñado para destruir el acueducto.

Ustedes pueden pensar que es otra fantasía paranoica (suena así sin duda y yo lo sé), pero esto fue documentado en el libro "At the abyss: An Insider's History of the Cold War", by Thomas C. Reed, anterior secretario de la Fuerza Aerea, quien sirviera en el Consejo de Seguridad Nacional, y también fue reportado por el Washington Post en el 2004 e, inclusive, mencionado en una artículo de la revista de la CIA "Stustedies in Intelligence".

Esto no fue simplemente un ataque a la Unión Soviética, sino que afectó también los precios del gas en Europa Occidental (ese gaseoducto estaba destinado a transportar gas a Europa), como efecto colateral de los intentos de los EE UU por impedir los ingresos de divisas soviéticos.

Me pregunto si los chinos estudiarán esta parte de la historia. A juzgar por su inclinación a usar Windows en su infraestructura, y por las recientes promesas de los fabricantes de ordenadores personales en China de incluir "Windows genuino" en las computadoras enviadas desde China, pareciera que no.

Este único incidente de un software solo en binario, causando un enorme daño económico, debería ser de estudio obligatorio para los que tomen las decisiones de cualquier nación que pudiera tener conflictos de intereses con los EE UU. Eso es todo el resto del mundo, por ejemplo, la usualmente dócil mascota usamericana, el Reino Unido, ha rechazado el software de control, sólo en binario, para el nuevo avión caza de fabricación conjunta, y han amenazado con cancelar la orden de compra si no obtienen acceso al código fuente.

Quizás es que el Reino Unido no es tan dócil como parece, puesto que los militarres británicos parece entender la necesidad de controlar el software en, al menos, algunas partes críticas de su propia infraestructura.

Así que, ¿En quien se puede confiar en computación? y ¿Por qué?.

Me encantaría decir que las compañías de código abierto son dignas de confianza, puesto que te dan el código fuente, mientras que las compañías de código privativo no son de confianza, puesto que el código fuente no está disponible. Pero no es tan simple así.

Microsoft anuncia ampliamente que le dará el código fuente de Windows a la China y a cualquier país que se queje de la posibilidad de tales amenazas por la vía del código sólo binario.

¿Es usted de los que esperan que un distribuidor de Linux le diga NO al gobierno de los EE UU si se les pidiera (amablemente, desde luego) que colocaran una puerta-trasera a las imágenes binarias de Linux que se entregan como parte de su producto?

¿Quienes de nosotros, de hecho, usan el código fuente, tan gentilmente incluido en los CD adicionales, para compilar su propia versión?.

Con Windows, desde luego, ya hay tantas puertas traseras, conocidas y desconocidas, que el gobierno de los EE UU quizás ni se molestará de pedirle nada a Microsoft. Puede que ya hayan conseguido una, lista para ser aprovechada a su antojo. ¿Qué hay de Intel o AMD y el microcódigo que viene en el propio procesador?.

Aún con acceso al código fuente de Windows, todavía no es digno de confianza, a menos que usted lo compile y sólo instale las versiones binarias que usted crea en su propia máquina.

Tener un código fuente que declara ser el que corresponde con un producto de software, no prueba nada acerca de la versión binaria de ese producto que usted está usando, a menos que usted la haya creado usted mismo. ¿Cuantas versiones de Windows, instaladas en computadores del Gobierno Chino fueron, de hecho, compiladas por los mismos Chinos?. Ninguna, es mi apuesta.

Lo mismo vale, por supuesto, para el Reino Unido.

Lo que esto significa es que muchos gobiernos en todo el mundo, que aceptan software binario empaquetado por compañías de software de los EE UU, están a la merced de de los servicios de inteligencia de los EE UU quienes podrían haber decidido agregarle "un extra" al código. Si usted cree que me estoy poniendo paranoico, hable con los Rusos.

Sin embargo, para el verdadero paranoico, inclusive compilar usted mismo el código NO es suficiente para asegurar que usted obtiene computación "confiable".

En su artículo fundamental de 1984, "Reflections on Trusting Trust", (Reflexiones acerca de confiar en la confianza) Ken Thompson, uno de los autores originales de Unix, cuenta la historia del cómo él "hackeo" el compilador C del sistema Unix, el software usado para crear el nuevo código binario a partir del código fuente, para agregar una completamente indetectable puerta trasera a Unix. Una vez montada, no habia rastro de la puerta trasera que el agregó en ninguno de los códigos fuente públicamentes disponibles de Unix. Estaba ingeniosamente escondida en los binarios y fue diseñada para reproducirse y propagarse a sí misma en cualquier nuevo binario creado en ese sistema.

Ese fue un ataque teórico. No es algo que él hiciera de hecho, sino algo que podría haber hecho. Al menos eso es lo que yo espero, pero me inclino por confiar en él.

La única manera de tener código confiable es diseñar el procesador usted mismo (Sí, puede haber puertas traseras en el microcódigo del procesador tanto como en el código binario), escribir su propio compilador y editar todo el código fuente abierto que crea usted mismo para usar en sus comandos y sistemas de control. Cualquier otra cosa es confiar en lo no confiable.

Les dejo con unas palabras del artículo de Ken Thompson que son tan ciertas hoy como en 1984. "La moraleja es obvia. usted no puede confiar en un código que usted no creó usted mismo (especialmente código de compañías que emplean gente como yo). Ninguna medida de verificación del código fuente o escrutinio le protegerá de usar código no confiable. Para demostrar la posibilidad de esta clase de ataques, yo elegí el compilador C. Usted puede haber escogido cualquier programa que manipule otros programas, tales como un ensamblador, un cargador o incluso el hardware del micródigo. En la medida en que el nivel de los programas baje, esos gazapos serán más y más difíciles de detectar. Un gazapo instalado en el micródigo será casi imposible de detectar".

Jeremy Allison es desarrollador líder del Equipo Samba.