LO NUEVO EN COMPUTACION
 

Nunca esta demás chequear lo nuevo, aquí iré colocando algunos desarrollos  que más me llaman la atención

 

BIOMETRICA

La biométrica se dedica a medir características biológicas y ha abierto grandes esperanzas en el campo de la seguridad informática, que normalmente tiene su punto mas débil en la creación, mantención y uso de passwords o claves secretas.

 Los problemas de la obtención no autorizada de los passwords, mediante engaños o medios tecnológicos constituye una de las estrategias fundamentales de la mayoría de los ataques a la seguridad de los sistemas informativos actuales. El que la posibilidad de acceder o negar el acceso a un sistema determinado dependa del simple conocimiento de una palabra clave es una de las principales debilidades de todo sistema informatico.

 En mi trabajo me ha tocado hacer peritajes a fraudes computacionales y he visto cuan poca seguridad existe en un sistema de palabras clave, las brechas de seguridad mas comunes respecto a estas claves ocurren porque

  •  Luego de un tiempo son muchas las personas que conocen la clave, aparte de los autorizados y responsables de ellas.

  •  Lo anterior se facilita por el hecho que rara vez se hace efectiva la responsabilidad de alguien que confía su clave a un tercero, el sistema de "personas de confianza" con acceso amplio a sistemas protegidos esta muy extendido en las organizaciones.

  •  Las claves, para ser seguras deben ser largas y contener una variedad importante de caracteres, de otro modo pueden ser fácilmente deducidas por medio de ataques computacionales del tipo "de diccionario", a un programa computacional puede tomarle solo unos minutos probar con todas las palabras del idioma castellano, por ejemplo. Una clave de buena calidad debe contener mayúsculas y minúsculas, signos de puntuación, letras y números. Lo normal sin embargo es usar claves cortas y triviales

 En la practica, se eligen a menudo palabras simple o nombres propios como claves, lo que hace a los sistemas de seguridad extremadamente débiles en este punto. Para facilitar el recuerdo de las claves se eligen cosas tales como nombres propios o de familiares, fechas de nacimiento, RUT y otros párrafos tan obvios que muchas veces ni siquiera es necesario usar programas de computación para inferirlos.

 Otra dificultad corriente es el cambio de claves y el olvido de las mismas. Para los sistemas de seguridad de varios niveles se hace necesario todo un sistema aparte de mantención y administración de las claves, con todos los riesgos de seguridad que conlleva tener este sistema.

 Los problemas antes descritos han llevado a buscar el método de acceso personal ideal que debe cumplir algunas características como:

  • Debe ser instranferible, el poseedor de la clave aunque quiera hacerlo no debe ser capaz de entregarla a un tercero.

  • Debe ser única y permanente, no debe cambiar nunca para un mismo poseedor y debe tener validez para una gran variedad de sistemas distintos

  • No debe estar sujeta a la memoria del dueño de la clave

 La biométrica soluciona estos problemas pero a la vez crea otros nuevos como veremos a continuación.

 Los métodos biométricos consisten en medir características biológicas que se presumen únicas al poseedor de la clave tales como huellas digitales, imagen del iris o forma general de la cara.

Estas cosas, simples de verificarpor cualquier persona, no lo son tanto para una maquina. Con nuestro superdesarrollado poder del cerebro hasta un niño puede reconocer a alguien por la forma de su cara, no ocurre lo mismo cuando tratamos que lo haga una maquina, de capacidades muchísimo mas limitadas, especialmente en los casos limites de personas físicamente parecidas o de gemelos idénticos.

 Las huellas digitales también se usan desde hace tiempo como medio de identificación biométrico, pero todavía estamos lejos de lograr programas que puedan reconocer unívocamente un patrón de huella digital entre otros miles parecidos.

 El problema, es que para que los métodos de identificación biométricos sean  utilizables en la practica deben tener un numero muy cercano al cien por ciento de aciertos, no es posible tener un sistema de identificación de acceso biométrico si, por ejemplo, reconoce solo ocho de cada diez intentos de acceso.

 Otra de las dificultades de los métodos biométricos es su irrevocabilidad y la imposibilidad de cambio ya que están basados en características físicas del poseedor, si alguien llega a conocer la clave generada por el dispositivo biométrico no seria posible cambiarla por otra nueva. En todo caso ya hay aplicaciones comerciales de bajo costo (como los Mouse que leen la huella digital) para identificación biométrica, pero yo creo que ocurre lo mismo que con los actuales software de reconocimiento de voz, están todavía lejos de la perfección para su uso masivo. Mientras tanto parece que tendremos que conformarnos con los tradicionales password con todos los problemas que traen aparejados.

 

COMPUTACION EVOLUTIVA

"El principio de la evolución es un concepto primario de unificación en la biología, que relaciona los organismos entre sí en una cadena histórica de eventos. Cada criatura de la cadena es producto de una serie de accidentes que han sido sorteados bajo la presión selectiva del ambiente. Después de muchas generaciones, la variación aleatoria y la selección natural dan forma al comportamiento de individuos y especies que se adaptan a las demandas del medio.

Esto puede resultar extraordinario, una clara indicación de que la evolución es creativa. Aunque no tiene un propósito intrínseco -es meramente el efecto de las leyes físicas que actúan en la propagación de las especies- es capaz de soluciona problemas de supervivencia que son 'únicos a cada individuo.

Imaginemos cuan útil podría ser el proceso evolutivo llevado a cabo por computadoras, proveería los medios par solucionar complejos problemas de la ingeniería -los que envuelven distorsiones caóticas, aleatoriedad, y dinámicas no lineales complejas- que nuestros tradicionales algoritmos han sido incapaces de conquistar."

 Así dice un articulo en el "Spectrum" de febrero del 2000 (What is evolutionary computation?, David B. Fogel) donde se resumen los fundamentos de la computación evolutiva, veamos algo mas de este articulo: "En términos muy generales, la evolución puede describirse como un proceso iterativo de dos pasos, consistente en variaciones aleatorias seguidas de selección. El vinculo entre esta descripción y los algoritmos de optimización que son el fundamento de la computación evolutiva es conceptualmente simple.

 "Tal como la evolución natural parte con una población inicial de criaturas, el enfoque algorítmico parte seleccionando un conjunto de soluciones competitivas entre sino del problema que se desea solucionar. Este conjunto puede ser escogido generando soluciones al azar o utilizando cualquier conocimiento disponible sobre el problema.

 Estas soluciones padres generan una camada mediante variación aleatoria por cualquier medio seleccionado de antemano. A las soluciones resultantes se les evalúa su efectividad y se impone la regla de "supervivencia de los mas aptos", el proceso es así repetido para las sucesivas generaciones."

 El resto del articulo se dedica a desarrollar un ejemplo practico de como implementar el algoritmo para el problema clásico del "vendedor viajero" que debe visitar 100 ciudades en su ruta y necesita determinar la ruta de recorrido mas corta para estos efectos. Luego se muestran los resultados de la implementación computacional de este algoritmo después de 4000 generaciones, lo que da una ruta bastante acercada al optimo. También se muestra la aplicación del método en el diseño de drogas, donde las variables son afinidad geométrica, interacción electrostática, fuerzas de Van del Wall, etc. y también muestra un resultado bastante impresionante obtenido en el diseño de una proteasa para el HIV (SIDA).

 Otro ejemplo que se coloca es la habilidad de estos algoritmos para crear programas de juego de damas, haciendo notar que, a diferencia del programa de Deep Blue para ajedrez que consistió simplemente en traspasar grandes cantidades de conocimiento experto a un computador, en este caso los diseñadotes del algoritmo no eran jugadores competentes y que fue el propio programa el capaz de aprender hasta llegar a un nivel de juego experto, muy superior a la capacidad de los creadores del programa

 Finalmente el articulo concluye destacando que "La habilidad de un computador de obtener preeficiencia en un  juego de habilidad como las damas, simplemente enseñándole las aperturas abre grandes posibilidades: obtener que los computadores aprendan sobre otras facetas del mundo real sin requerir personas expertas que los alimenten con conocimientos. A medida que los precios de computo bajan la factibilidad de la computación evolutiva para resolver problemas de la vida real crecerá. Esto por la naturaleza paralela de los procesos evolutivos....

 Todo esto me hace recordar los "métodos numéricos" que estudie en la universidad por los anos 80, que al principio nos parecían la panacea para evitar las complicaciones del enfoque analítico. También me acorde de los problemas de convergencia, cuando el método se nos iba por el lado de los quesos y las soluciones divergían al infinito. Todos estos métodos que se basan en mecanismos de prueba y error tienen una característica que tal vez no esta suficientemente te asumida: existe un riesgo de error considerablemente mayor que respecto a los metodos tadicionales y, yo creo, son solo aceptables en procesos donde la posibilidad de cometer grandes equivocaciones sea algo aceptable.

 Claro, la evolución podrá ser muy sabia, pero también comete grandes equivocaciones y a veces pierde el camino por largo tiempo (es cuestión de mirar a algunas personas), así, aunque la posibilidad de

admitir márgenes de error es la mejor forma de asegurar la creatividad no hay que olvidar todo lo que la ciencia y la técnica le deben a los métodos analíticos y tampoco que el punto fuerte de los computadores es precisamente el análisis, no la creatividad ni la intuición 

Office 2000
Aunque se enojen los detractores de Microisoft (a mi tampoco me cae muy bien que digamos) Officce 2000 tiene una caractyerística innovadora que, creo va a ser estándar a todas las futuras "suites" de aplicaciones de oficina.

Lo característico del Office, especialmente a partir de su edición 2000 es el grado de integración de todas las aplicaciones en un modelo común: el Modelo de Objetos de Microsoft. A primera vista Officce 2000 es solo un conjunto más gordo y pesado que ofrece prácticamente lo mismo para el usuario final, la verdad es que gran parte del aumento de peso no está en las características visibles para el usuario sino más bien en las que vienen disponibles para los programadores.

Desde Officce 97, cuando los distintos lenguajes de macros fueron reemplazados por el Visual Basic Para Aplicaciones, la integración del Officce con el Modelo de Objetos comenzó a notarse. Aunque algo de esto venía desde antes, cuando por ejemplo se construyó una especificación de métodos, barras de herramientas y menús comunes para todas las aplicaciones Officce.

En Officce 97, solamente tres aplicaciones tenían acceso al VBA, estas eran Word, Excel y, obviamente Acceess. En Officce 2000 todas las aplicaciones tiene objetos, métodos, formularios, etc. que pueden ser manipulados en VBA, particularmente interesante es el Outlook que ahora puede ser programado desde el lado del usuario. Esta característica permite además programar el trabajo conjunto de las distintas aplicaciones, aprovechando los métodos comunes y, al menos en teoría, la comprensión del Modelo de Objetos haría de las tareas de programación de Officce algo más o menos trivial

Finalmente, para el programador que quiera trabajar en serio en Officce, existe el ODE (Officce Development Edition) que es el entorno de desarrollo para Officce que permite crear objetos COM que trabajarán en todas las aplicaciones del Officcce, lo que permitirá crear Add inss que funcionen desde el el Word hasta Outlook de igual manera. Estos componentes COM (ver Programación Basada en Componentes en este mismo sitio) cumplen con normas de compatibilidad a nivel binario que las hacen especialmente interesantes para aplicaciones distribuidas por Internet  por ejemplo.

Hasta el momento no conozco ningún conjunto de aplicaciones de escritorio tan integrado como el Officce 2000, ni tampoco ninguno tan sub utilizado. Creo que en un futuro muy cercano la mayoría de la programación de aplicaciones (inventarios, sistemas de control, etc.) se van a programar desde adentro de estos entornos en lugar de usar los lenguajes de programación tradicionales. El Modelo de Objetos ha resultado una solución elegante y bastante clara, parece que no la hubiera hecho Microsoft.