Portada | Directorio | Buscador | Álbum | Redacción | Correo |
23 de diciembre del 2005 |
Salvador López Arnal
Para Víctor Carceler, que abrió mis ojos.
1. Gritos y susurros: la mala educación del gigante Uno de los valores centrales de la ciencia, del conocimiento humano en sus diferentes variantes, está o debería estar directamente relacionado con la cooperación y la ausencia de ocultamiento. Barry Commorer (1), en un texto que ha resultado ser un clásico de las preocupaciones ético-sociales sobre la orientación, el desarrollo y la aplicación de los saberes y haceres tecnocientíficos, defendió y argumentó una posición normativa sin duda compartible: "Ni una mente humana sola, ni siquiera las deliberaciones de un comité pueden crear conocimientos científicos íntegros, porque cada análisis científico aislado da tan sólo resultados aproximados y contiene inevitablemente ciertos errores y omisiones. Los científicos llegan hasta la verdad mediante un proceso continuo de autocrítica y corrección que remedia omisiones y enmienda errores. Claves en ese proceso son la exposición abierta de resultados, su divulgación generalizada en la comunidad científica, así como las críticas, enmiendas y verificaciones resultantes. Todo cuanto bloquee dicho proceso impedirá el acercamiento a la verdad. Lo peor de los métodos secretos en la ciencia es que los yerros cometidos en secreto perdurarán." [la cursiva es mía] Pero no siempre se comparte esa razonable postura. El caso de Microsoft y empresas afines del ámbito del software propietario es un ejemplo destacado y conocido. Su poder, el poder de las transnacionales del sector, es inmenso y sus tentáculos llegan a lugares insospechados, con capacidad mostrada (y usada) para enfrentarse a Estados y Administraciones supuestamente soberanos. Un ejemplo. El buen hacer y la excelente preparación del diputado Edgar David Villanueva Núñez consiguió que una instancia representativa de la voluntad ciudadana peruana, el Congreso de la República, aprobara el proyecto de ley nº 1609 sobre el uso del software libre en la administración pública de Perú. La respuesta de Microsoft y de la Administración estadounidense, curiosa y significativamente al unísono, no se hizo esperar. El primer magnatario de Perú, Alejandro Toledo, viajó a EE.UU. para reunirse con el todopoderoso presidente de Microsoft con la aparente finalidad de pedir ayuda económica para programas sociales y educativos de su país a la Gates Foundation. Mientras tanto, el embajador norteamericano en Perú, el señor John Halton, dirigía el 17 de junio de 2002 la siguiente carta (2) al "excelentísimo señor doctor Carlos Ferrero Costa, presidente del Congreso de la República peruana".
"De mi consideración: El chantaje es nítido. La instrumentalización e intervención directa del aparato de Estado de EEUU en las decisiones soberanas del parlamento de otro país es patente. Hay otros casos menos aparatosos, menos crematísticos, sin manifestación directa del poder ostentado, pero acaso igualmente significativos. En un libro reciente (3), publicado en una conocida e importante editorial española y que en ningún momento se presenta como manual de la compañía norteamericana para uso de sus propios productos, se habla de los programas contenidos en el paquete del Office 2003 en los términos siguientes: "MICROSOFT Office 2003 es el sucesor de Office XP. Con esta nueva edición, Microsoft ofrece a los usuarios novedosas funciones que les permitirán ser más eficaces y obtener los mejores resultados con la mínima cantidad de tiempo y esfuerzo" (4). El carácter poco riguroso de la afirmación es obvio. El tono, absolutamente ajeno a un manual de enseñanza, no es necesario remarcarlo. "Microsoft se esfuerza en mejorar la calidad, la fiabilidad y el rendimiento de su software y servicios... Microsoft se basa en sus comentarios para agregar contenido nuevo y mejorarlo continuamente". El estilo publicitario del paso -insistimos: en un libro de divulgación y enseñanza técnicas- apenas ofrece discusión. Pero Microsoft tiene un pequeño clavo en sus zapatos -amplios, sin duda-: los programas de código abierto, el movimiento del software libre, el copyleft (5). Ejemplo de ello sería el OpenOffice.org, el equivalente en código libre del famoso y masivamente usado Office de Microsoft (Word, Excel, Power Point,...), con las ventajas de que este paquete ofimático es gratuito; compatible, sin inconsistencias, con los documentos creados con programas anteriores, además de funcionar bajo múltiples sistemas operativos. Linux, Solaris o Windows, entre otros (6). Una de las aristas básicas del movimiento del software libre fue señalada en el coloquio de una conferencia que Richard M. Stallman impartió en la Universidad de Nueva York el 29 de mayo de 2001 (7): Stallman, comentó el presentador del acto Ed Schonberg, "ha inyectado en una profesión, que es conocida entre el público general por su terminal ineptitud política, un nivel de debate político y moral que, creo, no tiene precedentes en nuestra profesión. Le debemos mucho por ello" (8). La historia de esta "inyección política" es, sucintamente, la siguiente. Durante la década de los sesenta, el ámbito de la informática estaba dominada por grandes ordenadores que se instalaban, básicamente, en importantes empresas e instituciones gubernamentales. Con neta diferencia, IBM era la principal empresa fabricante. Durante estos años, cuando se adquiría un ordenador, el software venía como acompañante usual. Si además se contrataba el mantenimiento, se tenía acceso al catálogo del software que ofrecía la empresa fabricante de ordenadores, e, incluso, desde un punto de vista comercial, no era usual considerar los programas como un ámbito separado: el software solía distribuirse junto con su código fuente y sin restricciones prácticas. De hecho, grupos de usuarios participaban y hasta cierto punto organizaban estos intercambios. Durante estos años, pues, el software era comunitario, al menos en el sentido de que los que tenían acceso a él podían disponer habitualmente del código fuente, estaban acostumbrados a compartirlo, a modificarlo y a compartir igualmente estas modificaciones. Refiriéndose a la situación en el M.I.T., el mismo Stallman -que fue un hacker del mítico laboratorio de Inteligencia Artificial del instituto- ha comentado que aunque no denominaban "software libre" a sus programas de aquel tiempo, ya que el término no existía, lo que realmente hacían era eso: cuando una persona de una Universidad, de una institución cultural o de servicios quería portar y usar un programa, se le permitía hacerlo sin ninguna dificultad, y si ellos veían usar a alguien un programa interesante y poco conocido, solían pedir el código fuente para verlo, de manera que pudieran leer, cambiar o incluso "canibalizar" ciertas partes del mismo para crear un nuevo programa adaptado a sus propias necesidades. El intercambio, la cooperación y las modificaciones necesarias eran normas y formas de acción aceptadas por todos. Pero el 30 de junio de 1969, IBM anunció que a comienzos de 1970 iba a empezar a vender parte del software por separado. Sus clientes ya no pudieron obtener desde entonces, incluido en el precio del hardware, los programas que necesitaban para sus trabajos. Se hizo cada vez más habitual restringir escrupulosamente el acceso a aquéllos y se limitaron tanto técnica como legalmente las posibilidades que tenían los usuarios para compartir, modificar o estudiar el software. Así, pues, ya en la década de los setenta era usual, en la mayoría de los ámbitos informáticos, encontrarse con software propietario. Fue una década más tarde cuando apareció, de forma organizada y como reacción a esta situación, lo que hoy se conoce como movimiento del software libre. El papel de Stallman y de la Free Software Foundation (FSF), fundada con la finalidad de conseguir fondos para el desarrollo y proyección del software libre, ha sido central y ampliamente reconocido. El concepto de software libre, o de programas libres o no propietarios, tal como fue concebido por Stallman, se caracteriza por la negación y oposición a restricciones aceptadas por los partidarios del software privatista (9), y por la defensa de un conjunto de valores contrapuestos. Básicamente los siguientes: 1) Libertad para ejecutar el programa en cualquier lugar, con cualquier propósito y para siempre. 2) Libertad para estudiar y adaptar los programas a nuestras necesidades, lo que exige acceso público al código fuente. 3) Libertad de redistribución, de modo que se permita colaborar con amigos y ciudadanos en general. 4) Libertad para mejorar el programa y publicar las mejoras, lo que también demanda el código fuente. La posición politico-moral del movimiento quedaba apuntada netamente por Stallman en su conferencia (10): "Si no queremos vivir en una jungla, debemos cambiar nuestras formas de comportarnos. Debemos empezar enviando el mensaje de que un buen ciudadano es aquel que colabora cuando es apropiado, no aquel que logra éxito cuando roba a los demás. Espero que el movimiento por el software libre pueda contribuir a esto: al menos en un área, reemplazaremos la jungla por un sistema más eficiente que anime y se base en la cooperación voluntaria" 2. Interiores: la reacción inconsistente del gigante Microsoft ha reaccionado, está reaccionando, con diversas estrategias. Así, con el Government Security Program (GSP) mostrará su código, o parte de él, a 30 países. Entre ellos, Australia, Rusia, España o el Reino Unido. Jonathan Murray, director de Microsoft para Europa, Oriente Medio y Africa, ha justificado este gesto señalando: "Vemos a los gobiernos que utilizan nuestros programas como socios de confianza. La inclusión de Office 2003 en el GSP muestra nuestro propósito continuo de colaboración con los gobiernos de todo el mundo para proporcionar soluciones que respondan a sus necesidades específicas en tecnologías de la información". Igualmente, Microsoft y SUN, la compañía que donó el Start Office a la comunidad, han pactado no entablarse demandas por violación de patentes durante 10 años. OpenOffice, que queda fuera del acuerdo anterior, sí podría ser demandada (11). Pero acaso lo más destacable es que contra el movimiento del código abierto la gran compañía informática tiene una estrategia singular. Lo llama el "plan quitanieves" y se fundamenta en la incomprensión general sobre sus propias producciones: según la benemérita compañía, las características de Linux, copiado, modificado, distribuido a voluntad, impide a clientes, programadores y periodistas, observar las ventajas reales de Windows, su sistema operativo. Pues bien, para demostrar las ventajas de Windows sobre Linux -que ya controla, aproximadamente, el 55% de los servicios de red- han lanzado un plan de dos años de duración, una campaña de publicidad "con hechos demostrables", y visitas a Universidades y foros de programadores (la llamada "transparencia"). Curiosamente, la campaña de Microsoft se inició entre sus propios trabajadores, quienes, durante dos meses, sólo han podido usar productos Linux para poder comparar, se dice, con conocimiento de causa (12). Las (re)conocidas características de Linux -su flexibilidad (código abierto y modificable), su bajo coste (no hay que abonar licencias de uso), su seguridad frente a los virus y las intrusiones de la piratería informática, no siempre descontrolada- son negadas, una tras otra, por Microsoft (13). El plan que la multinacional ha lanzado seguirá las fases siguientes: 1) negará, en primer lugar, las usuales acusaciones del ámbito Linux: su sistema ni es más seguro ni es más barato ni innova más. 2) Además, Windows es un sistema más escalable e interoperable, y 3) finalmente, que la campaña desaparezca, lo que significaría que se ha tenido éxito en el empeño, que es presentado siempre como meramente técnico, aclaratorio, sin intento de deformación de hechos y sin estar basado en finalidades estrictamente mercantiles. Pero acaso pueda ponerse alguna objeción a alguno de los presupuestos de la campaña iniciada: ¿es tan indiscutible la calidad de los propios productos de Microsoft? ¿Es tan ajustado el software de sus producciones como dice la propia empresa? Veamos, por ejemplo, el caso de un lenguaje como Visual Basic y algunas de sus herramientas. Visual Basic ofrece, entre otras, las funciones Int ( ) y Isnumeric ( ). La primera se presenta del modo siguiente: "Int(numero), definición: el argumento es de tipo double o cualquier expresión numérica válida. Si contiene un argumento NULL, devuelve NULL". Supuestamente, la función elimina la posible parte decimal de un número y devuelve el valor entero resultante; si el número es negativo, Int( ) devuelve el entero negativo menor que el dado. Es decir, Int (-8.55) devolvería -9. Pero veamos como opera realmente esta función en los casos siguientes: 1. Si el argumento que le pasamos es "34", y lo hacemos como si fuera una cadena -una variable string-, Int ( ) devuelve 34; si lo pasamos como entero, la función nos devuelve igualmente el valor correcto de 34. 2. Si pasamos como argumento "Marta7", y lo hacemos como cadena, la función, correctamente, nos señala un error por no coincidencia de los tipos; en cambio, si pasamos esa misma expresión -Marta7- como entero, la función devuelve 0. Del mismo modo, si le pasamos la cadena alfabética "Marta" como cadena nos señala error por el mismo motivo -no coinciden los tipos- y si la pasamos como entero nos devuelve también 0. 3. Si pasamos a Int ( ) la expresión "34.15" como cadena se nos devuelve erróneamente 3415; en cambio, si la pasamos como número nos devuelve correctamente 34. Aún más: si pasamos la expresión "34.15.2." como cadena, Int ( ) devuelve 34152; si lo hacemos como número, nos devuelve 34 y no señala error alguno por la incorrecta presencia de dos puntos en la expresión del valor. En el mismo sentido, si la expresión que usamos como argumento fuera "0.73", pasada como cadena, devuelve 73, mientras que si lo hacemos como entero, devuelve correctamente 0. 4. Si usamos números negativos como -8.34, al pasar el argumento como cadena se nos devuelve 834; en cambio, si lo hacemos como entero, opera correctamente y se nos devuelve -9. 5. Finalmente, si pasamos la expresión "...345" como cadena se nos indica error, pero, en cambio, si lo hacemos como entero, la función devuelve 0. Si la expresión es "345.…", pasada como cadena o como entero, devuelve 34. Si fuera "345....78" o similar, pasada como cadena devuelve 34578; como entero, 345. No es el único caso de funciones poco precisas. Así, IsNumeric ( ) es presentada del modo siguiente: IsNumeric (expresión), expresión de tipo variant, que o bien es una expresión numérica o bien es una expresión de tipo cadena. Esta función devuelve el valor booleano true si la expresión completa se reconoce como un número, como expresión que permite tratamiento matemático, y en cualquier otro caso false. Si introducimos -37, 34, 34.25, tanto si usamos la forma cadena como el tipo de variable variant, la función nos indica que todas esas expresiones son números. En cambio, si introducimos "Marta" o "7Marta" se nos señala que la expresión no es ningún número, como efectivamente es el caso. Pero sean otros casos como los siguientes: 1. Si la expresión es "32.33.25", tanto si se introduce en forma de string como en variable variant, se nos responde con valor true, esto es, indicando que es un número. 2. Si la expresión es "33....45", tanto si la introducimos de una como de otra forma, también se nos responde con valor true. 3. Si la expresión fuera "33....45.....78", lo mismo que si fuera "34, 25...64", también se nos indicaría que es un número. 4. Finalmente, si pasamos la expresión "33.-34" como cadena se nos señala que es un número; en cambio, si lo hacemos como variant se nos responde correctamente que no es un número. ¿Qué sucede? Pues que acaso, entre otras cosas, la función IsNumeric( ) sólo comprueba si la cadena tiene dígitos numéricos y puntos y comas, pero no la cantidad de puntos y comas, o la presencia intermedia de signos negativos. La situación no es inevitable. Por ejemplo, esta función -Bisnumeric( )- traza una correcta línea de demarcación entre expresiones que permiten tratamiento numérico y otras que, por el contrario, no lo permiten:
Public function Bisnumeric (A as cadena) as boolean Acaso pueda argüirse que tal como están pensadas ambas funciones, ganamos en optimización, en rapidez, aunque sea a costa de la exactitud de la finalidad explícitamente anunciada. Sea como fuere, la núcleo del asunto no está en el posible error, si lo hubiera, sino en que no podemos mirar, ni podemos estudiar ni comprobar, cómo están diseñadas ambas funciones porque no estamos en código abierto, aunque ahora Microsoft gesticule publicitariamente y prescinda, por ejemplo, del copyright en dos de sus programas que han sido lanzados como código abierto: el WLT, Windows Template Library, que es una librería escrita en C++ que permite crear interfaces gráficas para aplicaciones de Windows, y WiX, Windows installer XML, que permite crear paquetes de instalación basados en XML. Hay, además, el proyecto Shared Source Initiative -la iniciativa de fuente compartida-, pero la valoración de toda la comunidad de software libre sobre este iniciativa es clara y sin vacilación: es una farsa total. 3. La vida continúa: diario de una microdeficiencia No es, por otra parte, el único ejemplo posible. Recientemente, ha corrido la noticia de la vulnerabilidad de los ficheros JPEG y de la posibilidad de cesión del control de la máquina donde se ha manipulado la imagen. Debido a un error de programación del código que maneja las imágenes JPEG -que es el formato más corriente para las fotos en Internet Explorer, el navegador de Microsoft-, una imagen puede ser manipulada y colocada en la web. Quien utilizando ese navegador, visualiza la imagen en cuestión puede conceder involuntariamente el control del ordenador en el que se ejecuta Explorer a la persona, grupo o institución que colocó en la web la imagen manipulada (14). Los pasos del "ataque" podrían ser los siguientes: 1. Una persona, un grupo o incluso un gobierno, con determinadas intenciones no forzosamente amables, retoca algunas imágenes JPEG y las sitúa en la red. 2. Un usuario, la víctima potencial, utiliza Windows e Internet Explorer para navegar por la web, instrumentos de software que, como es sabido, usa un gran porcentaje de la ciudadanía de numerosos países. 3. Cuando el usuario visualiza con su navegador una de las imágenes dañinas, la persona o grupo que la manipuló puede ganar el control de la máquina del -ahora sí- víctima y acceder a sus archivos, con sus informaciones reservadas. En el caso más común, la víctima visualiza la imagen con IE, pero otros programas de Microsoft que también representan imágenes, tienen el mismo problema. Por ejemplo, el cliente de correo Outlook y Office. No es necesario destacar el poder no controlado que podría obtener la persona, gobierno, empresa o institución con tuviera capacidad para manipular esas imágenes. Microsoft ha lanzado un parche para actualizar la vulnerabilidad, pero debido a la ingente cantidad existente de ordenadores con Windows y a que, claro está, no todos se actualizan, cabe esperar que el ataque se pueda utilizar en la próxima generación de gusanos y/o virus informáticos (15). Se trata, pues, de un error y errar es parte de nuestra condición, de nuestro hacer. La gravedad no reside en cometer errores sino en empecinarse en ellos, negarse a rectificar. Los códigos ocultos dificultan la tarea; los códigos abiertos, como siempre se ha hecho en general en las comunidades científicas, técnicas o filosficas, facilitan comprobaciones, análisis, estudios, críticas, matices o modificaciones. En definitiva, ayudan a detectar y rectificar nuestras inevitables pifias. No es condición suficiente, pero parece una condición necesaria muy razonable.
Notas
(1) Barry Commorer, Ciencia y supervivencia. Barcelona, Plaza y Janés 1974, pp. 68-69. |
|