| 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".