jueves, abril 17, 2008

Un poco más sobre URLs

En el artículo anterior, uno de vosotros me animó a explicar el resto de cosas que puede tener una URL, y que no mencioné por no extenderme demasiado (con lo visto, ya era suficiente para ver la diferencia entre una URL y una dirección IP). Así que, vamos a ello.

Había explicado que una URL, en el caso más genérico, identifica un recurso en la red. Siendo más específicos, podemos decir que entre otras cosas, identifica un fichero en un ordenador. La URL nos dice también cómo acceder al recurso, es decir, qué protocolo utilizar. Nos quedamos con tres elementos básicos de la URL: el protocolo (lo que va antes de «://»), la máquina (identificada por su dirección IP o por su nombre de dominio), el puerto (tras «:», aparentemente opcional, aunque implícito si no aparece), y el recurso (tras el siguiente «/», también opcional, aunque se configura un recurso por defecto).

Fijaos que intento evitar la palabra «fichero» y referirme siempre a «recursos». Esto es porque no todos los recursos son ficheros. Pensemos en un buscador cualquiera (como Google, por ejemplo). Uno introduce sus palabras de búsqueda, y tras pulsar la tecla «Enter» o clicar el botón correspondiente, vamos a la siguiente página, que es una lista de resultados. Imagino que no pensaréis que dichas páginas existen en forma de ficheros en los servidores de Google, Yahoo, o el que sea, y que cientos de currantes han creado todas las páginas posibles, para todas las combinaciones de palabras posibles. Es obvio que algún programa genera en ese momento la página que vemos, y que ésta no tiene existencia real en ningún disco duro (salvo en alguna caché). Fijaos también que en este caso, en la página con la lista de resultados, la URL que vemos en la cajita de direcciones es muy larga, con símbolos «raros», y que aparecen las palabras que habéis tecleado.

Bien, eso es otro fragmento que puede aparecer en la URL, y que se denomina «query string» (que podríamos traducir como «cadena de consulta»). Esta «query string» aparece tras la ruta, precedida del símbolo de interrogación de cierre «?». Habitualmente (sobre todo en el caso de HTTP), consiste en parejas de tipo «nombre=valor» separados por el símbolo «&», donde «nombre» sería el nombre de un parámetro, y «valor» su valor. Si buscáis algo en Google, por ejemplo, veréis que la URL de la página de resultados comienza por «http://www.google.es/search» (si estáis en España, si no, el sufijo será diferente, como «.com», «.mx», «.ar», etc.), tras lo cual sigue la interrogación, y luego la «query string». En ella podemos observar un parámetro llamado «q», con los términos de búsqueda. Fijaos que los espacios en blanco han sido sustituidos por el símbolo de sumar «+», y que algunos caracteres (como eñes o vocales acentuadas) han sido sustituidos por una misteriosa secuencia de símbolos de porcentaje («%») seguidos de letras o números. Esto es porque en una URL no puede aparecer cualquier caracter, por lo que si queremos transmitir algún parámetro con uno de estos caracteres «prohibidos», hay que transformarlos (y el servidor, se ocupa de recuperarlos nuevamente).

Un recurso también puede ser un fragmento de otro recurso (por ejemplo, una sección en una página HTML). Para identificar un fragmento de un recurso, se coloca el caracter «#» al final de la URL (que identifica el recurso «padre»), seguido del identificador del fragmento. Si váis a cualquier artículo más o menos completo de la Wikipedia (por ejemplo, el relativo a URL), veréis que tras una breve introducción aparece una tabla de contenidos, consistente en varios enlaces. Estos enlaces llevan a secciones de la propia página, y si ponéis el puntero sobre ellos, veréis que la URL es la misma que la de la página, pero seguida del caracter «#» y un nombre. Si clicais sobre cualquiera de ellos, os desplazaréis por la página sin que ésta se recargue.

Finalmente, hay otro elemento que puede aparecer en una URL, pero esta vez, delante del identificador de la máquina (tras el «://»). Un recurso puede estar protegido, y sólo ser accesible a determinados usuarios, de forma que necesitamos autenticarnos. Si intentamos acceder a un recurso de este estilo mediante nuestro navegador, y la autenticación se realiza mediante nombre de usuario y contraseña, nos aparecerá una pequeña ventanita pidiendo dichos datos (ventanita que pinta el propio navegador, no la página, por lo que su apariencia varía de un navegador a otro, y es consistente con la de éste y la plataforma). En las aplicaciones web no es habitual, ya que la autenticación suele hacerse mediante un formulario HTML, integrado estéticamente en el diseño de la página. Sin embargo es algo que se puede hacer, y que sí es muy habitual en el caso de utilizar FTP. Si queremos, podemos evitar que aparezca la ventanita, añadiendo el nombre de usuario y la contraseña en la propia URL. Para ello, justo después del «://» se coloca el nombre de usuario, deguido del caracter de dos puntos («:»), la contraseña, el caracter arroba («@») y finalmente el resto de la URL (máquina, puerto, etc.). Así, nos quedaría algo de este tipo: «http://usuario:contraseña@dominio.com/recurso».

Como la contraseña aparecerá en la URL, y puede que no queramos que sea tan visible (y que quede guardada en algún registro de direcciones accedidas), podemos no ponerla, y utilizar sólo el nombre de usuario. En este caso, tras el nombre de usuario iría directamente la arroba, y luego el resto de la URL. El navegador nos mostrará igualmente la ventanita, pero con el nombre de usuario ya puesto, aunque esto ya depende del navegador: Opera lo hace así, Firefox muestra la ventana sin rellenar (al menos, en la versión 2), y Explorer, directamente no soporta añadir usuario y contraseña a la URL (al menos, en la versión 6).

Llegados a este punto, no puedo evitar mencionar una curiosidad sobre la arroba (que también es una antigua unidad de masa). Os habréis dado cuenta que la forma «usuario@dominio» es igual que la utilizada para una dirección de correo electrónico. Esta misma sintaxis se utiliza para otros protocolos y aplicaciones (como el telnet). Y es que en inglés, al simbolito en cuestión se le denomina «at», que dependiendo del contexto se puede traducir como «en» o «a». Por tanto, «fulanito@gmail.com» (por ejemplo), se puede leer como «fulanito en gmail.com». ¿A que ahora tiene más sentido lo de la arroba? Dejo a los filólogos e historiadores, el cómo surgió dicho simbolito, y cómo adquirió distintos significados.

Etiquetas: ,

jueves, abril 10, 2008

URLs y direcciones IP

Hace varias semanas, recibí un correo electrónico comentándome un detalle de un episodio de la serie de TV Life, que trata de un policía reintegrado en el servicio, tras pasar 14 años en prisión por error. En el episodio en cuestión, los protagonistas deben localizar a una chica (víctima de una violación, y que no había denunciado a su agresor) que solía conectarse mucho a Internet. Entre ellos se produce el siguiente diálogo (gracias JM):

—Ojala las personas tuviesen GPS.

—Los ordenadores lo tienen.

—¿En serio?

—Sí. Se conectaba a estas páginas desde su ordenador. Si no se ha desecho de él, podemos averiguar cual era su URL y localizarlo.

Aquí hay un error de concepto importante, ya que parece que se está confundiendo una URL con una dirección IP. ¿El qué? Bueno, empezaremos explicando qué es una URL.

Una URL es literalmente un localizador uniforme de recursos (Uniform Resource Locator). ¡Ah! ¿Y eso qué es?. Pues se trata de una serie de caracteres que se utilizan como nombre de un recurso en Internet (como páginas, imágenes, vídeos) y que además nos proporciona su localización en la red. ¿Ein? Bueno, hablando llanamente, es lo que aparece en la «caja de direcciones» de vuestro navegador, lo que tecleáis para acceder a un sitio.

Cada «trozo» de la URL (sí, aunque sean siglas de «localizador...», en castellano se suele utilizar el género femenino) tiene un significado concreto. Las letras que hay antes del «://» identifican el protocolo a utilizar, normalmente «http» o «https» (para los protocolos HTTP y HTTPS), aunque podéis encontrar otras cosas, como «ftp» (para el viejo amigo FTP) o «file» (para acceder al sistema de ficheros local; si utilizáis Windows, teclead «file:///C:/» y veréis). Lo que viene después del «://» nos dice dónde está lo que queremos. En el caso de un protocolo de red como HTTP, lo que viene es el identificador de la máquina (o máquinas, ya que pueden ser varios ordenadores trabajando conjuntamente), que normalmente es el nombre de dominio de la misma, aunque también puede ponerse su dirección IP (ya iremos a lo que es). Por ejemplo, para acceder a este vuestro blog, ponéis en la barra de direcciones lo siguiente: http://www.malaciencia.info.

Opcionalmente, para protocolos de red, se pueden poner el caracter de dos puntos («:») seguido de un número, que identifica un puerto. ¿Un puerto? Sí. Veréis, un ordenador puede ofercer varios servicios simultaneamente, a través de distintos protocolos (o a través del mismo, pero en procesos diferentes). Para diferenciar las peticiones a uno u otro servicio, existe el concepto de puerto, que viene a ser un canal de comunicaciones identificado por un número. Así, para diferenciar las peticiones a uno u otro servicio en el mismo ordenador, se utiliza el número de puerto. De hecho, toda comunicación de red se realiza a través de un puerto, lo que ocurre es que cada protocolo tiene un puerto asociado por defecto, de forma que si no se pone, la aplicación asume que se usa dicho valor por defecto. En el caso del protocolo HTTP es el puerto 80, de forma que es lo mismo poner http://www.malaciencia.info que http://www.malaciencia.info:80.

Tras el servidor y el puerto, puede aparecer una ruta hacia un recurso concreto (una página HTML, una imagen...). Por ejemplo, si colocáis el puntero sobre el «enlace permanente» de este artículo (al final del mismo), veréis que tras «malaciencia.info» aparece una ruta similar a la de un sistema de ficheros. Esa ruta identifica un recurso concreto dentro del servicio (en este caso, un fichero HTML). Al igual que antes, siempre debería ser necesaria esta información, lo que ocurre es que la mayoría de los sitios web tienen configurado un recurso por defecto, de forma que si no se especifica uno concreto, se utiliza dicho recurso (normalmente, la página de inicio).

Opcionalmente, pueden ir más cosas detrás de la ruta, pero de momento nos quedaremos aquí. Lo importante es darse cuenta de que una URL identifica básicamente un documento en una máquina (o en varias), que los hace públicos mediante algún servicio. Y eso sólo ocurre en servidores. El usuario medio, rara vez configurará su ordenador como servidor (al menos, de forma consciente). Es decir, en un ordenador que sólo se utilice para navegar por Internet, y no tenga funcionando un servicio HTTP, FTP, o similar (por ejemplo, si queremos que nuestro sitio web se ejecute en nuestro propio ordenador, en vez de buscar un alojamiento), no tiene ningún sentido hablar de URLs.

Por el contrario, una dirección IP sí que identifica un ordenador (o más genéricamente, una máquina, como por ejemplo, un router o una impresora). Se trata simplemente de un número de 4 bytes, y se suele representar como cuatro números entre 0 y 255, separados por puntos («.»). Su función es muy parecida a la de un número de teléfono. Para establecer una comunicación, hay que conocer la dirección IP de la máquina destino, y generalmente, entre los datos que se intercambian, se encuentran las direcciones IP de ambos extremos.

Antes mencioné que en la URL, puede aparecer un nombre o una dirección IP. Para evitar que la gente deba memorizar listas de números, se utilizan los nombres de dominio. Esos nombres son lo que realmente utilizáis y memorizáis (por ejemplo, «malaciencia.info», «google.com», «wikipedia.org», etc). Pero como los protocolos de red sólo entienden de direcciones IP, existen unos servidores especiales llamados DNS que funcionan como bases de datos, y que nos dice qué dirección IP corresponde a cada nombre de dominio.

Vemos por tanto que a lo que realmente se referían los protagonistas, es a la dirección IP del ordenador de la chica, no a la URL, que no tiene sentido. Una dirección IP identifica una máquina, mientras que una URL identifica un recurso concreto (un fichero) en esa máquina.

Y hay más. Una única dirección IP, no se corresponde necesariamente con una única máquina. En el caso de un usuario normal, que se conecte a Internet mediante un proveedor, puede que cada vez se le asigne una IP diferente, y puede que su IP esté siendo utilizada por más clientes. En estos casos, hay que conocer la fecha y hora de la conexión, para que el proveedor de servicios nos proporcione la información deseada (mediante la orden judicial correspondiente). Además, lo único que puede hacer éste, es darnos los datos que el cliente le haya proporcionado, que puede que no se correspondan con la ubicación física real del ordenador. La dirección IP sólo es un identificador, como un DNI o un número de teléfono. En este aspecto, la analogía con el GPS es totalmente incorrecta. Si deseamos conocer la ubicación física del ordenador, habría que ir «más abajo», y pedir la información a la compañía que mantenga la infraestructura telefónica si el acceso es por modem o ADSL, o a la que mantenga la infraestructura de cable (y que no tiene por qué ser la misma que la compañía que nos da el servicio de acceso a Internet).

La identificación del proveedor es sencilla, ya que existen organismos públicos que gestionan quién tiene qué direcciones (porque nuestra dirección IP, pertenece al proveedor), y dependiendo de aquél, puede que podamos disponer de forma rápida de información geográfica limitada, como el país, provincia o incluso la ciudad, a la que corresponde la IP (depende de cómo administre las direcciones el proveedor). Hay incluso sitios en la red donde se puede consultar toda esta información, y «contadores de clicks» que hacen estadísticas con los orígenes de los mismos (así puedo saber, por ejemplo, que aunque la mayoría de vosotros estáis en España, hay visitantes de México, Argentina, e incluso de Japón).

Estamos dando por sentado que la dirección IP se puede obtener sin problemas. Bueno, es muy fácil saber qué dirección IP se está utilizando para conectarse a un servicio nuestro. Pero en el caso que nos ocupa, se trata de obtener la dirección IP de conexiones de hace tiempo. Para ello necesitamos que el proveedor de servicios de internet, o el administrador de la web a la que se haya accedido, guarde un registro con dicha información (hace poco, hubo polémica con una ley, o intento de ley, o similar, que obligada a guardar esta información varios años). Además, necesitamos saber las fechas y horas en las que la persona que buscamos haya accedido a determinados sitios (o bien, que la información guardada incluya cosas como datos de autenticación, cosa que también es controvertida).

Una dificultad añadida podría ser obtener la dirección IP real del ordenador. Veréis, en muchos casos, el acceso se realiza a través de lo que se denomina proxy (literalmente, «representante», en inglés), que consiste básicamente en un «intermediario». Dependiendo de la tecnología y sistema utilizado, una posible consecuencia es que la dirección IP que vea el otro extremo (el administrador de la web) no sea la que tenemos nosotros en realidad.

Lo gracioso de todo este asunto, es que según me cuentan en el correo, la chica que buscaban se había mudado, después de frecuentar la red. Y aquí, o la portera del antiguo domicilio sabe algo, o no hay nada que hacer.

Etiquetas: , ,

miércoles, octubre 05, 2005

Servidores colapsados

Durante y tras el eclipse del pasado lunes, han sido muchos los que se han quejado de sitios web en las que se realizaba un seguimiento del mismo y terminaron colapsándose. Y no eran sitios de particulares, sino de entidades como el Planetario de Madrid o el Ministerio de Fomento. El punto común en casi todas las quejas ha sido el insuficiente ancho de banda disponible, culpando bien a los responsables del sitio web en cuestión, bien a la insuficiente infraestructura de comunicaciones existente en nuestro país.

Pero el ancho de banda no tiene nada que ver con el colapso de un servidor web. Y si existe una relación, es más bien al contrario: cuanto mayor ancho de banda, más fácil es colapsar un servidor.

¿Qué es el ancho de banda ese del que todo el mundo habla? Pues en el mundo digital, básicamente es la máxima velocidad de transmisión soportada, y se mide en bps (bits por segundo) o cualquier múltiplo de esta unidad, como Kbps (Kilobits por segundo) o Mbps (Megabits por segundo). A modo de ejemplo, una conexión mediante un módem de toda la vida, suele tener una ancho de banda de 54 Kbps. Una conexión ADSL suele tener entre 256 Kbps y 4 Mbps. Una conexión ADSL2+, puede alcanzar los 24 Mbps.

Pero no perdamos de vista que siempre estamos hablando de velocidad máxima. Una persona puede tener una flamante conexión ADSL de 4 Mbps y estar descargándose un fichero a una velocidad muchísimo menor. ¿Por qué? Bueno, todos recordaremos del colegio los tres elementos básicos de toda forma de comunicación: emisor, medio y receptor. El ancho de banda sólo se refiere a la máxima velocidad permitida por el medio (en este caso, la red). El emisor (el servidor web) y el receptor (nuestro PC) deben poder operar a esa velocidad.

El receptor nunca debería ser un problema (a menos que usemos un PC de más de 10 años, que simplemente no pueda tratar los datos a la velocidad que los recibe). Pero el emisor es otro cantar, puesto que no está para nosotros solos, sino que debe atender a multitud de usuarios. Un servidor web funciona básicamente de la siguiente manera: recibe una petición (cuando tecleamos en la barra de direcciones, o pinchamos en un enlace), y en fución de ella, envía datos (la página que queremos ver). Estamos obviando toda la complejidad de la propia Red, pero para lo que nos interesa, esta explicación nos vale. Un servidor tiene un número máximo de peticiones que puede atender a la vez. Si se supera ese número, el resto de peticiones pueden quedar en espera o descartarse (dependiendo de cómo esté configurado). Una petición descartada supondrá un mensaje de error en el navegador del que la haya enviado. Si se quedan en espera y el ritmo de peticiones no disminuye, llegará un momento en el que se empiecen a descartar las peticiones, o simplemente el servidor se "caiga" (como siempre, dependiendo del servidor en cuestión).

Cuantos más ordenadores y más potentes sean, más peticiones se podrán atender. Pero claro, todo esto cuesta dinero. Normalmente, los responsables de un sitio web intentan dimensionar sus máquinas para atender con holgura el número de peticiones que reciben normalmente, pero sin pasarse demasiado. Un evento extraordinario (como el eclipse del lunes) puede multiplicar por 10 o por 100 el número de peticiones, desbordando todas la previsiones. Y claro, de donde no hay, no se puede sacar. Los servidores se colapsan.

Así que no se puede achacar a la falta de ancho de banda el colapso generalizado del lunes. Es más, con un ancho de banda más pobre, tal vez se habrían colapsado menos servidores, ya que habría menos peticiones simultáneas.

Etiquetas: ,

jueves, septiembre 08, 2005

Mision Imposible

Carátula de Misión Imposible.Al hablar el lunes de Misón Imposible 2, inevitablemente me vino a la cabeza la primera película. Hay una escena más o menos por el principio, en la que Tom Cruise quiere hacer un trato con una traficante de información (creo que se llamaba Job). Él ha obtenido un disco, supuestamente con información valiosa, pero Cruise sospecha que se trata de una trampa, y que al leer el disco, se alertará al servicio secreto de turno. La mujer decide arriesgarse y mete el disco en un ordenador portátil (no recuerdo si era un disquette, un CD, un disco Zip, o algo así, pero era extraible). Tras un rato de tensión en el que el ordenador intenta leer el disco y no ocurre nada, llegan unos tipos trajeados y armados al edificio. Sin embargo, Cruise y compañía consiguen huir.

La gran pregunta que surge es ¿cómo demonios hace el disco ese para avisar a nadie? No es imposible que el disco llevase un virus de algún tipo para que, al ser leído el disco, haga algo. Un CD autoarrancable malicioso puede causar estragos en un Windows, por ejemplo. Aunque parece un poco extraño que una persona que se dedica a traficar con información y estar a la última en cuanto a tecnología, tenga un ordenador vulnerable a esos ataques.

Suponiendo que el programa de marras consiga ejecutarse, el verdadero problema es ¿cómo demonios envía una señal a ningún sitio? Vale, tenemos la omnipresente Internet, pero si uno va a utilizar un disco que sospecha que puede enviar información a alguien sin que nosotros queramos, pues no hay nada más sencillo que desconectarse de la red para evitarlo. Y es algo tan simple somo quitar el cable de red o teléfono. ¿Y si la conexión es inalámbrica? pues se quita la tarjeta inalámbrica y santas pascuas, que además en un portátil es de lo más sencillo del mundo, pues utilizan tarjetas PCMCIA que se insertan o extraen en una ranura, sin necesidad de abrir la carcasa ni apagar el ordenador.

En fin, una escena que pretende crear tensión, pero que me parece absurda.

Etiquetas: , ,

martes, septiembre 06, 2005

Ampliando imágenes

Foto promocional con el reparto de CSI: NYAyer pusieron el primer episodio de la serie CSI: NY, largamente esperada por los seguidores de CSI y CSI: Miami. Había una escena en la que los protas ven la grabación de la cámara de seguridad de una tienda de empeños. El cliente (y sospechoso) iba con una gorra y agachaba la cabeza, por lo que no se le podía ver la cara. Entonces se les ocurre ampliar la imagen para ver la cara del cliente en el reflejo del ojo del vendedor. "No hay problema" dice uno, y ¡voilà! vemos una ampliación de ojo en cuestión con un reflejo perfectamente nítido de la gorra del cliente. Lástima, no se le ve la cara.

El ampliar una imagen para ver algún detalle revelador es un recurso explotado hasta la saciedad en las películas o series policiacas o de intriga, que en la inmensa mayoría de los casos se realiza de forma totalmente irreal. Aunque lo del reflejo en el ojo se lleva la palma. Y es que no se puede ampliar una imagen de la manera que se ve en las películas.

Cualquier dispositivo capaz de tomar imágenes, ya sean estáticas o en movimiento, tiene un límite de resolución. En una cámara convencional, viene determinado por el grano de la película fotográfica. En una cámara digital, por la resolución del CCD. Esta limitación de resolución puede entenderse como una limitación de la información que captura la cámara. Y no se puede ir más allá, o estaríamos "inventando" información que no está presente en el original.

Bueno, esto es un poco lioso, así que vamos con un ejemplo.

Pinchando en la pequeña imagen de la izquierda, tenemos una foto del Palacio de Comunicaciones, en Madrid, que obtuve de madridman.com, una página con fotos de esta ciudad que encontré navegando por la web. Es bastante grande, de 1024 píxeles de ancho por 768 de alto. No es la más alta que se puede obtener con una buena cámara digital, pero es bastante mayor que la de una cámara de seguridad normalita. Supongamos que queremos saber cuál es la matrícula del taxi blanco que mira hacia nosotros. Pues vamos a ampliar...

¡Oh, vaya! No se distingue. Lógico, pues la resolución de la imagen no es suficiente. Lo único que hemos conseguido es ampliar el tamaño de los pequeños cuadraditos (píxeles) que forman la imagen. Si ampliamos más, simplemente veremos cuadrados más grandes.

¡Eh, un momento! En las pelis siempre hay algún programita que mejora la calidad de la imagen. Cierto. Podemos intentar mejorar el aspecto de la imagen mediante distintas técnicas de interpolación. Bien, utilicemos por ejemplo la interpolación cúbica que está presente en el editor de imagenes GIMP.

Bueno, la cosa ha mejorado sensiblemente, pero seguimos sin poder distinguir la matrícula. Es más, en esta nueva imagen, ni siquiera distinguimos bien el rectángulo blanco de la misma. Esto es debido a que la interpolación no puede suplir la ausencia de información. Lo único que hace cualquier algoritmo de interpolación, por bueno que sea, es "inventar" información a partir de la existente.

"Ya, pero es que has usado un programa gratuito. Seguro que con el Photoshop o algún programa profesional se pueden mejorar más la cosa" pensarán algunos. Tal vez (aunque en mi opinión, el GIMP tiene poco que envidiar al Photoshop), pero pese a todo, no se podrá distinguir la matrícula. Pensemos por ejemplo que nos dan una novela con sólo el 10% de las páginas, estando las demás arrancadas. Podemos imaginar en mayor o menor medida algo de lo que ocurre en los capítulos que nos faltan, a partir de lo que tenemos, pero no coincidirá con lo que en realidad había escrito. Ni en nuestros mejores sueños podremos reconstruir todo el libro. Nos falta información.

Dado que en la mayoría de las películas lo que se amplía es una cara, vamos a probar con caras en vez de con matrículas. Tal vez se consigan mejores resultados. Bueno, pues vamos a probar con unos tipos que cruzan la calle (justo debajo del autobús).

Por supuesto, no basta con ampliar la imagen así sin más. Así que vamos a realizar la misma interpolación que con la matrícula.

Otra cosa ¿verdad? Pero aún así no podemos distinguir las caras. Sólo podemos apreciar que el del fondo es calvo, y tal vez tenga perilla (aunque puede ser una sombra), que la chica de blanco lleva un moño, que el chico de violeta no tiene barba... Poco más. Desde luego, nunca sabremos quienes eran esas personas.

Este pequeño experimento lo hemos realizado con una imagen relativamente buena y con bastante resolución. En CSI: NY se utilizaba una imagen congelada de la grabación en vídeo de una cámara de seguridad, por lo que los resultados serían peores. Y no es una cuestión de tener ordenadores más potenes o mejor software. Los algoritmos de interpolación no hacen milagros. Es una cuestión de pura y simple matemática. De donde no hay, no se puede sacar.

Etiquetas: , , ,

jueves, agosto 18, 2005

DHTML, IBM y Firefox

El martes leí una noticia en El Mundo sobre la ayuda de IBM a Firefox para hacerlo más accesible (para el que no lo sepa, Firefox es un estupendo navegador web que, en mi opinión, supera al omnipresente Internet Explorer). La noticia dice que IBM ha donado código a la fundación Mozilla (la creadora de Firefox) para que la versión 1.5 del Firefox (ahora va por la 1.0.6) sea más accesible.

Hay que hacer notar que en este contexto, "accesibilidad" se refiere a las facilidades para que una persona discapacitada pueda utilizar el programa en cuestión. Un ejemplo de esto lo tienen los usuarios de Windows. Si van al Panel de Control, dependiendo de la versión que utilicen, aparecerá entre las diversas opciones, una de título "Opciones de accesibilidad" Icono de "Opciones de accesibilidad" del Panel de Control de Windows XPcon el clásico icono de un hombre en silla de ruedas. Allí podrán configurar cosas como el escuchar un pitido al presionar determinadas teclas, o que no sea necesario mantener pulsadas las teclas Sifth, Ctrl y Alt para realizar determinadas combinaciones de teclas.

La noticia es muy corta, y hay un párrafo que es engañoso:

Esta contribución, que fue anunciada por la compañía el lunes 15 de agosto, permitirá añadir las ventajas del lenguaje dinámico de hipertexto (DHTML) a la versión 1.5 de Firefox. Así, las páginas 'web' diseñadas para este navegador podrán ser leídas automáticamente, por ejemplo, o bien poder navegar por ellas mediante el uso del teclado, en lugar del ratón.

Este párrafo da a entender varias cosas: Por un lado, parece que el DHTML es algo nuevo de lo que Firefox carece y que lo tendrá a partir de la versión 1.5 gracias a IBM. Por otro lado, parece que hoy por hoy, es imprescindible el ratón para poder usar el Firefox, y que no se puede usar sólo con el teclado. Además, se establece una relación entre el DHTML y esa posibilidad.

Pues bien, eso no es así. ¿Que demonios es eso del DHTML? se estarán preguntando ya algunos. Bueno, para contestar, antes hay que explicar brevemente tres conceptos fundamentales en el mundo web: el HTML, las CSS y el JavaScript.

El HTML (Hyper Text Markup Language) es lenguaje que se utiliza para crear páginas web. Este texto que estás leyendo ahora mismo, está escrito en HTML. Este lenguaje, es lo que se llama un lenguaje de marcas. Esto básicamente quiere decir que tú escribes el texto que quieres mostrar tal cual, y utilizas determinadas marcas para indicar un enlace, una imagen, un texto en negrita, etc. Si utilizáis la opción "Ver código fuente" de vuestro navegador (normalmente accesible con el botón derecho del ratón), veréis el código HTML de esta página. Habrá muchas cosas que no se entiendan a simple vista, pero se puede ver que los textos que leéis están ahí. Hay que tener muy claro que el HTML es simplemente un lenguaje para presentar información de forma estática. Nada más.

Las CSS (Cascading Style Sheet) son una especificación para dar estilo y formato a la página. Yo puedo decir perfectamente en HTML que un texto vaya en negrita, utilizando la etiqueta <b>, o puedo cambiar el color de un texto mediante la etiqueta <font>. Pero entonces estaríamos mezclando el contenido con el formato. Es buena idea separar de alguna manera la estructura del documento de la apariencia que debe tener. Y para eso se crearon las CSS. Utilizando CSS, uno puede hacer que toda la información relativa a la apariencia de una página esté en lo que se llama una "hoja de estilos" y quede completamente separada del HTML que es el contenido. Así, podemos cambiar la hoja de estilos para variar completamente la apariencia, pero sin tocar una sola coma del HTML. Un buen ejemplo de esto lo tenemos en la web CSS Zen Garden, donde hay una interesante colección de hojas de estilo aplicadas a la misma página. Pinchad aquí, aquí y aquí. Aunque parezca mentira, todas son exactamente la misma página, pero con estilos diferentes. Si no me creéis, mirad los textos y los encabezados, o mejor aún, el código HTML.

Finalmente, el JavaScript es un lenguaje de programación interpretado que permite realizar multitud de cosas en una página web, como pequeñas animaciones, ventanas emergentes, incluso modificar el contenido de la página.

Vale, todo esto es muy interesante, pero ¿qué demonios es el DHTML? Pues el DHTML no es más que el nombre que le dan algunos fabricantes a la combinación de HTML, CSS y JavaScript, para crear páginas web más "dinámicas" y vistosas. En realidad, el DHTML no es nada tangible. No es un estándar, ni una especificación, ni un lenguaje. Es una forma de darle un nombre a una mezcla de cosas.

Una vez explicado esto, veamos los errores de la noticia. El primero es decir que gracias a IBM, la versión 1.5 de Firefox contará con DHTML. Veamos, como todo navegador, Firefox "comprende" el HTML y "pinta" las páginas en consecuencia. Además, es uno de los navegadores con mejor soporte de CSS que existen (no me atrevo a decir que el mejor, pero si no lo es, le falta poco). Y como todo navegador moderno, es capaz de interpretar JavaScript. Esta combinación de factores lo convierte en una navegador que ya tiene DHTML.

El segundo es el afirmar que la donación de IBM permitirá la navegación con el teclado, en vez de con el ratón. Bueno, al igual que muchos otros navegadores, el Firefox se puede utilizar sólo con el teclado. Presionad ahora mismo la tecla TAB varias veces. Veréis que el foco (un rectangulito punteado) se va desplazando por los enlaces de la página. Si presionáis la tecla Enter, iréis a la página del enlace seleccionado. También podéis utilizar las flechas del cursor "arriba" y "abajo" para mover la página.

Pero esa forma de navegar es muchas veces tediosa, y ahí está el quid de la cuestión. El código que dona IBM a Mozilla, lo que permitirá es que la navegación mediante el teclado pueda ser mucho más cómoda y sencilla, permitiendo que personas con problemas de mobilidad (y que no puedan utilizar un ratón), puedan navegar de forma rápida.

Otro error es el decir que ese código donado, permitirá que las páginas sean leídas. Bueno, supongo que con "leídas" se referirá a que sean leídas en voz alta por algún software de síntesis de voz, para que un invidente pueda saber lo que dice una página. Pero nuevamente, eso es algo que ya se puede hacer. Lo que hará ese nuevo código es permitir mejorar la forma en la que ese software interactua con la página.

Finalmente, la noticia parece dar a entender que el DHTML está relacionado con la accesibilidad de las páginas web, cuando la triste realidad es que en muchos casos, el DHTML se utiliza para añadir molestas animaciones y efectos visuales, en la creencia de que así la página será más vistosa. Bueno, puede que sea más vistosa, pero eso mismo hace que sea más dificil aún de moverse por ella sólo con el teclado, o de ser correctamente interpretada por un software para invidentes.

En defensa del redactor de la noticia, diré que la fuente original (IBM) también es engañosa con respecto a estos temas. Esto es algo por desgracia bastante habitual en este tipo de notas de prensa. Se envuelven en paquetes muy bonitos que deforman la realidad.

Etiquetas: ,

miércoles, agosto 10, 2005

Internet y la Web

Para variar un poco, pero siguiendo con Ángeles y Demonios, voy a hablar de algo que no sólo es un error en la novela, sino una confusión generalizada para muchísima gente. En Ángeles y Demonios, el director del CERN afirma con orgullo que Internet es una invención de ellos, en contra de la creencia popular de que fue un proyecto militar estadounidense. Aquí hay una mezcla de errores que voy a intentar aclarar.

Empecemos por algo que la mayoría de la gente no tiene claro: Internet y la Web no son lo mismo. No. Están muy relacionados, pero no son sinónimos. Internet es la red mundial de ordenadores que todos conocemos. Está formada por infinidad de nodos y servidores, que utilizan los mismos protocolos para entenderse entre sí. Y nada más. Los datos que viajan por la red pueden ser cualquier cosa. La Web, en cambio, es un servicio que opera sobre Internet en el que un navegador visualiza los contenidos de infinidad de servidores web.

Internet no es sólo la Web. El correo electrónico, el chat, las redes P2P, y muchas otras cosas, también utilizan Internet, pero no tienen nada que ver con la Web. Podemos hacer una analogía con la telefonía móvil. Por un lado tenemos la red de telefonía móvil, formada por las estaciones base, los propios terminales, y el sistema que utilizan para localizarse y comunicarse ambos. Por otro lado tenemos los servicios que utilizan esa red de comunicaciones: telefonía de voz, SMS, MMS, WAP... Con Internet ocurre lo mismo.

Y ahora vamos con los orígenes. Internet nació como evolución de la primitiva ARPANET, una red desarrollada por la Advanced Research Projects Agency (ARPA) que pertenece al Departamento de Defensa de EEUU. Esto hace que la mayoría de la gente piense en Internet como un "invento militar", pero el hecho es que en su primera encarnación, se implantó en entornos universitarios, allá por 1969. Sobre esta primitiva Internet, se implantaron servicios tan utilizados hoy en día como el FTP o el correo electrónico. En 1983 se cambió el protocolo de red por el TCP/IP, que es el utilizado actualmente en Internet.

El concepto de la Web (HTTP, HTML, navegador) fue creado en el CERN en 1989. De hecho, esta institución publicó la primera página web de la historia de Internet. Actualmente, uno de sus creadores es el presidente del W3C.

Así que, aunque la Web fuese originada en el CERN, es un error bastante gordo afirmar que la Internet en general fue inventada allí. Son cosas muy distintas. De hecho, la Web es posterior a Internet.

Hay que ser justos, y decir que creo que el error mencionado no es realmente de Dan Brown, sino del traductor de la edición española (Umbriel). En Simmonsays.com se reproduce el capítulo en cuestión, y se habla en todo momento de la Web, no de Internet. En este caso, la afirmación sería correcta, aunque el resto del diálogo es engañoso: El protagonista se asombra y comenta que siempre ha creído que la Web era un invento americano, y más adelante el director del CERN le dice que allí crean milagros mucho más importantes que la conexión global de ordenadores. Bien, la Web no es una conexión global de ordenadores. Eso es Internet. De una forma u otra, parece que Brown, al igual que mucha gente (incluído el traductor), confunde ambos conceptos.

Etiquetas: ,

viernes, julio 29, 2005

24: Reventando discos duros

Foto de Keifer Sutherland como Jack BauerAyer, como cada jueves, Antena 3 nos deleitó con tres nuevos episodios de 24. Es una pena que yo a esa hora prefiera ver Perdidos, que me gusta más, ya que cuando veo un poco de 24 durante los anuncios de la Primera, en seguida tomo notas mentales de los disparates que suceden.

En este caso, voy a comentar algo que ocurrió casi al final del último episodio de ayer. Resulta que Jack Bauer se hace con un disco duro externo donde creen que hay guardada una copia de seguridad de los planes de los terroristas. Lo engancha a su portátil pero no puede leer los ficheros. En una breve toma de la pantalla, vemos que todos aparecen con una etiqueta roja que pone "locked" (bloqueado). ¡Vaya hombre! No pasa nada. Bauer llama a la UAT, y le explica la situación al personaje gordito cuyo nombre no recuerdo. Te contesta que mire el núnero de serie del fabricante y que le dicte los tres últimos dígitos, Bauer se los da (por cierto, que había una "R" y eso no es un dígito), y ¡voila! el gordito le da la contraseña para acceder a los ficheros.

¿Y cómo? me pregunto yo. Porque, vamos a ver ¿cómo se puede deducir la contraseña que tiene bloqueados unos ficheros a partir de los tres últimos dígitos del número del fabricante? Lo único que se me ocurre es que el propio disco ya viniese con la posibilidad de algún tipo de bloqueo de ficheros, bien por hardware o por un software incluido al comprarlo, y que lo terroristas fuesen tan cutres que no le cambiaran la contraseña con la que venía de fábrica. Y eso es bastante difícil de creer. Lo primero que se hace con un dispositivo de esos, si realmente quieres tener la información protegida, es cambiar la contraseña de fábrica. Eso viene hasta en el manual. Teniendo en cuenta que en la serie los terroristas parecen saber muy bien lo que hacen, y lo tienen todo cuidadosamente planificado, resulta absurdo.

Otra cosa curiosa es la rápidez con la que el gordito le da la contraseña. no parece que consulte ninguna base de datos de fabricantes de discos duros, ni nada. El fiera se sabe de memoria todas las contraseñas por defecto de todos los fabricantes. Y eso que no eran cosas como "password", "default" o "changeit", que son las más habituales, sino una secuencia de números y letras.

Etiquetas: ,

miércoles, julio 27, 2005

Campus Party 2005

Es inevitable. Cada vez que ocurre un evento de estos, los medios de comunicación se empeñan en realizar artículos o reportajes con el poco recomendable sistema de "oír campanas sin saber dónde". Son varios los medios donde han insistido una y otra vez en que los 5.500 asistentes a la Campus Party podrán disfrutar de una velocidad de acceso a Internet 3.500 veces superior a la que se tiene en casa. Lo he visto en las noticias de Antena 3, y lo he leído en 20 minutos.

Y uno se pregunta ¿cuánto es eso? Decir 3.500 veces la velocidad alcanzada en casa, no es decir nada concreto, porque ¿cuál es esa velocidad? Uno puede navegar en casa con un modem de 56 Kbps (Kilobits por segundo). O puede tener una línea ADSL de 4 Mbps que tanto están promocionando ahora. Ambas velocidades son perfectamente normales en un domicilio particular, pero una es 71 veces mayor que la otra. Ya tenemos una diferencia de casi 2 órdenes de magnitud. ¿Entonces, 3.500 veces qué velocidad?

Pues según Antena 3 o El Mundo, la velocidad en cuestión es de 1,8 Gbps (Gigabits por segundo). Eso es 3.500 veces una velocidad de más o menos 514 Kbps. Parece obvio que ese dato está tomado de hacer una media de alguna estadística de las conexiones a Internet de los españoles, o peor aún, de obtener la velocidad del tipo de conexión cuyo porcentaje de uso sea mayor (514 está sospechósamente cerca de 512, que es una de las velocidades estándar de las ADSL). Pero es que como hemos visto, la distancia de esa media puede ser muy grande: 9 veces la velocidad de un modem de 56 Kbps, que siguen siendo muy utilizados.

Pero ojo, que aquí hay trampa. Por un lado, esos datos siempre se refieren a la capacidad máxima de la conexión. Muchas veces esa velocidad no se alcanza por la propia limitación del servidor al que estamos accediendo. Por ejemplo, el día que se anunció el primer trailer oficial de La Venganza de los Sith, por muy rápida que fuera la conexión de casa, los que intentaron descargárselo de la web oficial de Star Wars se desesperaban ante la lentitud. Eso es porque no sómos los únicos que nos conectamos a un determinado sitio en un determinado momento.

Por otro lado, hay más de 5.500 participantes en la Campus Party, y ese ancho de banda es el total, que hay que repartir entre las distinas máquinas. En el peor de los casos, si los 5.500 asistentes están navegando y exprimiendo a tope su conexión, tenemos que cada uno tendría (si el reparto es equitativo) una velocidad de 327 Kbps. Desde luego, sigue siendo una velocidad bastante alta, superior a algunos ADLS (128 o 256) pero no alcanza los 512 Kbps que por ejemplo tengo yo, o los famosos 4 Mbps que anuncian hasta en la sopa.

Así que aunque ciertamente 1,8 Gbps sea una velocidad de vértigo, y no dudo que pueda ser un 15% del ancho de banda total en España, es algo que hay que repartir entre todas las conexiones.

No se vayan todavía, aún hay más. Si visitamos la web oficial de la Campus Party, leemos que hay instaladas 3 líneas: 2 son las líneas principales, con 1.200 Mbps en total, pero la tercera es una línea de respaldo, que sólo entra en funcionamiento cuando falla una de las líneas principales. Es decir, que aunque las tres líneas sumen los famosos 1,8 Gbps, en realidad sólo se dispone de 1,2 Gbps (las dos líneas principales).

A veces me pregunto, ¿consultan los periodistas las fuentes originales?

Me gustaría tambier comentar que en casi todos los medios se hace hincapié en que se puede navegar a gran velocidad y descargarse muchas cosas. Pero esa no es la única actividad de la Campus Party. De hecho, en las noticias de la TV suelen poner monitores con videojuegos, ya que para muchos, el atractivo del evento son los juegos en red. Pero hay muchas más actividades, insisto.

Etiquetas: ,

lunes, julio 18, 2005

Jake 2.0

Foto de los protagonistas de Jake 2.0Pues no. La verdad es que no he visto aún un episodio completo de Jake 2.0, pero zapeando ayer un rato, vi un poco. En la escena que vi, el prota (supongo que era el prota) se infiltraba en un grupo de hackers que planeaban algo no muy bueno. Pasan a una habitación subterránea y se maravillan ante un megaordenador de varios Teraflops. Dicen que con esa potencia podrían reventar mil cosas, y deciden que se meterán en el sistema de vuelo de un avión lleno de jerifaltes y le harán dar vueltas hasta que no cumplan sus condiciones. Era algo así, pero insisto que sólo vi esa escena. Y sin embargo, ya vi varios errores dignos de mencionar.

El primero es el de los Teraflops, ya que dicen que el ordenador en cuestión puede ejecutar cuarenta mil millones de operaciones por segundo. ¿Y? En informática existe una medida llamada FLOPS. Es la abreviatura de FLoating point OPerations per Second, es decir operaciones de coma flotante por segundo. Como los ordenadores realizan cálculos muy rápido, lo realmente útil son los múltiplos de la unidad. Así, un Megaflops es un millón de FLOPS, un Gigaflops son mil millones de FLOPS, y un Teraflops es un billón de FLOPS (nótese que la unidad se llama FLOPS, incluso en singular). Así que si la velocidad del megaordenador ese se mide en Teraflops, estamos hablando de billones, no de miles de millones de operaciones por segundo.

Esto parece la clásica confusión entre los billones norteamericanos y europeos. En EEUU, un billón son mil millones, pero en Europa (y gran parte de Latinoamérica), un billón es un millón de millones. A veces, al doblar una película o serie estadounidense, los traductores olvidan este detalle, y los personajes hablan de billones cuando en realidad deberían decir miles de millones. Pero aquí ocurre al revés. Tal vez el guionista de turno leyó en algún sitio redactado por algún europeo que un Teraflops es un billón de FLOPS, y así lo puso. El traductor debió pensar "ja, a mí no me la cuelan, hay que poner mil millones", y así quedó la cosa.

Hay otro error, o al menos, un concepto equivocado, en el hecho de que con una máquina de esas se pueda reventar casi cualquier cosa. Está claro que la velocidad de proceso del ordenador siempre ayudará, pero para reventar sistemas, se suelen aprovechar vulnerabilidades conocidas (exploits) en los programas, debidos a errores (bugs) en los mismos. Y para eso no suele hacer falta un bicharraco de máquina como el que aparece en la serie. Hace falta conocimiento. Sólo es necesaria una velocidad exagerada cuando se realizan lo que se conoce como "ataques de fuerza bruta", es decir, probar todas y cada una de las posibles claves hasta dar con la que nos sirve. Y en un sistema que se precie de ser seguro, es inviable.

Pongamos un ejemplo: Cuando nos conectamos a una página segura en Internet (que empieza por https y nos aparece el candadito en la parde de abajo del navegador), los datos viajan cifrados por la red. Si se utilizan claves de 128 bits (que ya debería ser lo habitual, aunque aún quedan sitios que usan claves más pequeñas, de 56 ó 40 bits), resulta que tenemos 3,4 x 1038 claves posibles, es decir, 340 sextillones (europeos). Supongamos que cada intento con consume una única operación de coma flotante. A 40 Teraflops, necesitaríamos 2,698 x 1017 años, es decir, casi 270 mil billones de años (¿Petaaños?) para probar todas las claves posibles. Y eso suponiendo que cada intento sea una única operación de coma flotante, cosa que no es así, ya que la encriptación y desencriptación de datos requiere varias operaciones.

Por eso, realmente no importa mucho la velocidad de proceso, a menos que la vulnerabilidad consista en poder reducir a un número mucho más pequeño el número de posibilidades, a partir de otros datos, y realizar un ataque de fuerza bruta sobre ese conjunto reducido.

Y por último, hay que mencionar el hecho de poder entrar en el sistema de vuelo de un avión, en pleno vuelo, piratearlo, y hacerse con el control. Vamos a ver, para piratear un sistema, el que sea, lo primero que hay que tener es acceso físico a él. Un ordenador sólo puede ser atacado a distancia si se encuentra conectado a una red, accesible desde el ordenador atacante. O dicho de forma más sencilla, si no estás conectado a Internet (ni a ninguna otra red), tu ordenador está totalmente a salvo de cualquier tipo de ataque. Sería necesario que el hacker se sentara delante de él o te hiciera llegar un disco (flexible, CD o DVD) infectado, que tú mismo debes meter en el ordenador. Parece bastante lógico suponer que los sistemas de un avión no están conectados a una red de esa forma.

Y aun en el imposible caso de que pudieran piratear el sistema de vuelo del avión, bueno ¿y qué? Todo sistema automático se puede desconectar. Los aviones pueden ser pilotados manualmente. Es más, el movimiento de alerones y demás, se realiza de forma hidráulica, mediante pedales, timón y palancas, sin que ningún sistema informático controle nada.

En fin, intentaré ver un episodio entero, ya que veo que esta serie dará mucho de sí en este blog.

Etiquetas: ,

miércoles, julio 06, 2005

La informática de ID4

De los muchos errores de ID4, y ante la imposibilidad de comentar todos, hoy voy a quedarme con el que creo que es el mayor de todos, ya que además de que cualquier espectador con un mínimo de sentido común se habrá dado cuenta, afecta directamente a la resolución final de la trama. Me refiero por supuesto a ese virus informático que cuelan en la nave nodriza. Este error es en realidad una mezcla de varios, que voy a intentar desgranar y explicar.

Empezaremos por una secuencia añadida en la edición especial, que no se pudo ver en los cines (pero sí en el lunes pasado). En ella, Jeff Goldblum entra en la nave alienígena capturada y tras la explicación de Juan Tamariz... esto... Data... digo el jefe de los científicos, dice que va a ver si puede conectar su portátil al panel. Bueno, bueno, bueno. Supongo que esta escena intenta preparar al público para lo que viene después, y hacer más creíble que el Goldblum pueda crear un virus en un pis pas, pero es en sí misma algo absurdo. Porque ¿cómo conectar un ordenador portátil a una nave alienígena? Dudo mucho que la nave alienígena tenga un conector de red RJ45 (esas clavijas que son como los conectores de teléfono pero un poquito más grandes). Y no creo que tengan puertos serie o paralelo (de USB o FireWire ni hablamos, que la peli es de 1996). Y ya no es sólo cuestión de conectividad física (se podría coger muy por los pelos una conexión inalámbrica, ya que los alienígenas utilizan señales de radio, que retransmiten a través de los satélites), sino una cuestión de protocolo de comunicaciones. No basta que dos ordenadores estén conectados físicamente con un cable para que hablen entre sí. Tienen que tener además un conjunto común de reglas para intercambiar información. Eso es lo que se conoce en informática como protocolo. Y si no utilizan el mismo, te pongas como te pongas, no podrán comunicarse. Y para complicar más las cosas, podríamos pensar que una computadora completamente alienígena, no tiene por qué codificar la información en bits, ni agruparlos en bytes. Podría utilizar un sistema completamente diferente.

Sigamos con la peli. Más adelante, Goldblum está borracho, desesperado y abatido. Entonces, un comentario de su papi sobre que puede coger un catarro, le inspira para la idea del virus informático. En cuestión de horas, el tío va y diseña un virus que es capaz de afectar los ordenadores alienígenas, y propagarse por la señal que utilizan éstos a través de los satélites, hasta infectar todas sus naves y dejarlas sin escudo protector. Es dificil decidir si esto es una burrada mayor o menor que la anterior. Ya he comentado en otros envíos la realidad sobre los virus informáticos y cómo actuan los hackers, pero lo repetiré aquí. Un virus no es más que un programa, que aprovecha una vulnerabilidad o exploit conocido de algún otro programa (generalmente el sistema operativo), o cualquier otro tipo de error o bug del mismo, para hacer algo que se supone que no debería poderse hacer. Así, para crear un virus hace falta conocer el sistema al que va destinado (un virus para Windows no funcionará en Linux y viceversa), conocer algun exploit o bug del sistema, y desarrollar un programa que lo aproveche. Y por muy genio que uno sea, si no conoce bien el sistema que pretende atacar, o al menos, el exploit que pretende aprovechar, no podrá hacer nada. Nunca. Jamás. Y aquí estamos hablando de un sistema informático alienígena, y por tanto desconocido. ¿Cómo puede un técnico de antenas desarrollar un virus para un sistema desconocido en unas pocas horas (todo eso ocurre la madrugada del 4 de Julio)?

Y terminamos con la forma de avisar a la base del Área 51 que el virus se ha descargado. Uno de los militares dice que han instalado el transmisor más potente que conocen, para que envíe una señal cuando el virus se instale. Mucho antes en la peli, Goldblum explicaba que los alienígenas utilizaban los satélites terrestres para coordinarse, ya que no podrían transmitir información si no tenían visibilidad directa entre las naves. Bien, eso es correcto. Una enorme roca de más de 12.500 Km de diámetro es más que suficiente para bloquear cualquier tipo de señal de radio. Sin embargo, cuando los dos héroes viajan a la nave nodriza, nadie nos dice que esté en la misma cara de la Tierra que la base secreta de Nevada. La señal tendría que atravesar el interior de la nave nodriza (que al principio de la peli nos dicen que tiene unos 500 Km de diámetro), que estará hecha de algún material duro, y con un poco de mala suerte, varios miles de Km de roca terrestre. No puedo hablar por la nave nodriza (a saber de qué está hecha), pero es imposible que atraviese parte de la Tierra. Tendría que haber algún diálogo que explicara que por suerte la nave nodriza estaba en la misma cara que la base, o que utilizarían los satélites de algún modo. Y no importa la tecnología o potencia de la que puedan disponer. Las señales de radio se disipan muy rápidamente en determinados materiales (como roca o la misma agua del mar), haciendo imposible una transmisión que tenga que atravesar varios metros de alguno de ellos. No digamos ya kilómetros.

Tres en uno. No está mal.

Etiquetas: ,

lunes, junio 27, 2005

24: Piratear internet

24El pasado jueves comenzó en Antena 3 la cuarta temporada de la serie "24", de la que supongo todo el mundo ha oído hablar. La pauta que sigue esta serie en todas sus temporadas es la de supeditar la acción y el suspense a la verosimilitud. Y eso hace que cuando se mencione algo relacionado con la tecnología actual, sea probablemente pasto de este blog.

Hoy voy a comentar lo relacionado con ese supuesto "pirateo de internet" como lo llaman en la serie. Veamos, primero aparece un chico (estereotipo de hacker) frente a varios monitores de ordenador (un hacker siempre tiene que mirar a varias pantallas a la vez, por supuesto), y dice que está descargando software de Microsoft y Adobe. Su compañera le dice con sorna que más bien está robando. En los monitores se ven ventanas con caracteres ininteligibles. Vamos a ver, creo que no hace falta ser un hacker para obtener copias sin licencia de la mayoría de los programas comerciales, sobre todo los de Microsoft. Cualquiera puede hacerse con una copia ilegal de Windows, de Office, de lo que sea, buscando en las webs adecuadas (ojo, que no estoy animando a nadie a que lo haga ¿eh?). En la serie, sin embargo, se nos da a entender que el chico este se lo está descargando todo directamente de servidores de Microsoft (y Adobe), que ha reventado.

De pronto le salta una ventana con números y caracteres rojos que pasan a toda velocidad, llenándola y haciendo scroll hacia arriba. Entonces exclama "Están cifrando Internet". ¡Oh! ¡Vaya! Están cifrando Internet. ¿Y eso qué quiere decir exactamente? ¿Qué se está cifrando exactamente? ¿Los contenidos? ¿Las conexiones? Pues ya se usan conexiones cifradas desde hace mucho tiempo. Cada vez que nos aparece el icono del candadito en el navegador, o vemos que la URL empieza por https en vez de por http, estamos utilizando una conexión cifrada. Sea lo que sea a lo que se refieran, en la serie ocurre sólo en algunos nodos concretos, como luego dice. Entonces ¿por qué eso de "cifrar Internet"? ¿Toda? ¿Toda entera? Y lo más importante ¿cómo se da cuenta? Pues porque le aparece una ventana con números en rojo, que como cualquiera sabe, es una señal inequívoca de que se está cifrando Internet :-)

Más adelante, llama por teléfono a una amiga de la UAT, y le dice que hay por ahí un virus que está cambiando las tablas de enrutamiento de varios nodos. Bueno, esto ya tiene más sentido. Un nodo, en ese contexto y simplificando mucho, es una especie de router a lo bestia. Su misión principal es redirigir todo el tráfico que recibe hacia otros nodos o routers, dependiendo del destino de los datos. Las tablas de enrutamiento es donde se almacena la información que el nodo necesita para redirigir los datos correctamente. Básicamente, son reglas del tipo "si el destino es X, reenvía al nodo Y". Como digo, esto ya parece tener más sentido que eso de "cifrar internet". Alterando los nodos de esta manera, uno puede conseguir que cuando un usuario quiera conectarse a un servidor, en realidad lo haga a otro y no se de cuenta.

Pero luego dice algo que estropea la frase. Algo así como que en el código ha leído cosas en un idioma que parece de oriente medio. Bueno, aparte de que además de hacker el tipo ese parece ser filólogo, yo me pregunto ¿qué está en ese idioma? Si lo que vio es un programa que altera las tablas de los nodos, o las propias tablas modificadas, no ha podido leer nada en ningún idioma que no sea binario. Un programa de que actua de esa manera, no debería dejar trazas ni mensajes de información en ningún sitio, que es la única manera en la que el hacker haya podido ver algo en un idioma natural. Si no, es una forma evidente de decir "¡Eh! ¡Estoy aquí, reventándote el sistema".

Más adelante, la chica de la UAT informa a su superior que ha recibido la llamada esa de su amigo, y dice que el virus tiene su origen en un país concreto (no recuerdo el nombre, pero lo dicen). Tal y como lo cuenta, parece que han sido capaces de obtener su origen de forma geográfica, y no por lo del idioma. Esto también parece bastante improbable, ya que si difundes un virus que es capaz de alterar las tablas de enrutamiento de los nodos, pues aprovecha y que las altere de forma que no sea facil localizar el punto geográfico de origen. En cualquier caso, eso no es lo que le dijo el hacker.

Al final del segundo episodio (ya se sabe que a las televisiones españolas les gusta mucho eso de poner dos episodios seguidos de las series), en la UAT alguien exclama que están "difundiendo" por Internet un vídeo, en el que sale el pavo al que habían secuestrado (¿a quién han secuestrado? pero ¿es que no has visto la serie?). ¿Difundir? ¿Difundir cómo? Internet no funciona como una televisión. Uno se conecta a un sitio web y ve lo que ese sitio le muestra. Teniendo en cuenta lo que se dijo antes del pirateo de los nodos, parece lógico pensar que la idea es que todas las peticiones que iban dirigidas hacia sitios webs muy conocidos y visitados, se redirijan hacia el servidor que está emitiendo el vídeo. Pero podían haberlo explicado un poco, porque la palabra "difundir" conduce a una idea muy equivocada de lo que es Internet.

Bueno, de todo esto, lo único que tiene sentido es lo de cambiar las tablas de enrutamiento de los nodos para que luego todo el mundo vaya a la misma página web y vea el vídeo (los terroristas esos deben suponer que todo el mundo tiene una conexiónde alta velocidad). Pero aún así, alguien tendría que haberse dado cuenta además del hacker ese. Si quiero ir a www.microsoft.com (se supone que uno de los sitios afectados) y en vez de la página de bienvenida de la compañía de Redmont me sale otra cosa, pues me extrañaría ¿no? Bueno, vale, habrá quien no se extrañe y se parta de risa al ver el sitio de Microsoft pitareado, pero digo yo que algo de trascendencia tendría la cosa ¿no? Sobre todo si ocurre en muchos otros sitios web. Si no, habría que suponer que el virus en realidad no cambiaba las tablas de los nodos hasta determinada hora, que sería cuando empezara el vídeo, pero el hacker decía que se estaban cambiando en ese momento.

En ocasiones como esta me gustaría poder ver el episodio en versión original para ver si todos esos cambios entre un diálogo y otro (que parecía que estaban jugando al "teléfono") pueden deberse a una dejadez en la traducción, o es que los guionistas son así y ni se acuerdan de lo que hay escrito de una escena a otra.

Etiquetas: ,

viernes, junio 17, 2005

"Democratización" de la Informática

Los habituales habrán notado un parón de una semana en este blog (que espero sea de sus favoritos). Esto ha sido debido a unas merecidas vacaciones en la playa. Esperaba poder continuar con mis envíos ya que el hotel proporcionaba puntos de acceso a Internet y había al menos dos cibercafés en la misma calle, pero ir de viaje con dos niños pequeños (y uno de año y medio) es todo menos "vacaciones". No he tenido tiempo para nada, así que llamémoslo "viaje a la costa" en vez de vacaciones. Y la proliferación de cibercafés, disposición de PCs para clientes en hoteles y demás, viene bastante al caso en el envío de hoy.

El miércoles de la semana pasada (8 de junio) pusieron por la mañana en la 2 un programa que desconocía, "España es", y que trató el tema del eterno debate entre software libre y software propietario. Para ello, pudieron sendas entrevistas a Richard Stallman como defensor del software libre, y a un representante de Microsoft Ibérica (cuyo nombre no recuerdo) por el bando del software propietario.

Foto de Richard StallmanEl primer error que detecté enseguida es que presentaron a Richard Stallman como el creador de GNU/Linux. Bueno, es verdad que el señor Stallman ha sido el creador del proyecto GNU, que pretendía desarrollar un sistema libre completo, y no es menos cierto que el mismo ha desarrollado herramientas presentes en GNU/Linux como el editor Emacs o el imprescindible compilador GCC. Pero eso lo convierte en todo caso en co-creador, porque el que desarrolló el primer núcleo de Linux, fue el finlandés Linus Torvalds. De hecho, el nombre de Linux viene precisamente del nombre de pila de su creador. Aquí hay un pequeño matiz que a veces se escapa incluso a los profesionales de la informática: Linux es el sistema operativo, y GNU/Linux es el sistema completo, compuesto por el sistema operativo y numerosas aplicaciones que corren sobre él.

Pero este error palidece por lo que dice luego el representante de Microsoft Ibérica. Y no es porque sea más o menos gordo, sino porque es propaganda engañosa que no corresponde del todo con la realidad, y que es fácil que cualquier persona ajena a la informática se la crea. Y digo que no corresponde del todo con la realidad porque como ya dijo alguien "no hay peor mentira que una verdad a medias". ¿Y qué dijo este hombre? Pues una de sus frases fue que "Microsoft democratizó el uso del software" (frase últimamente recurrente de los empleados de Microsoft), lo que añadido al resto de su intervención, quería decir poco más o menos que la informática se ha extendido y popularizado tanto, y es tan "amigable" gracias a Microsoft. Y eso sin ser completamente falso, tampoco es cierto.

Fóto de un IBM PC 5150, con MS-DOS 5.0Retrocedamos un poco en el tiempo, hasta 1981. En ese año, IBM sacó al mercado su famoso IBM PC, precursor de los PCs actuales. Hasta ese momento, IBM se había especializado en grandes superordenadores sin interesarse por el mercado doméstico, que estaba dominado por el entonces flamante Apple II. Como tenían prisa por sacarlo, pero no era especialmente estratégico en su negocio, optaron por fabricarlo a partir de "terceros". Foto de un Apple IILas especificaciones técnicas del PC, la arquitectura, incluso las rutinas de la BIOS eran públicas, y cualquier fabricante podía hacer piezas para él. Éste y no otro fue el principal motivo de la popularización del PC, dado que a nivel puramente técnico no era tan superior a sus competidores. Así, mientras que los usuarios de Machintosh o Amiga se veían obligados a comprar sus teclados, memorias, discos duros, y demás componentes a Apple o a Commodore respectivamente (al precio que ellos quisieran), en el mundo de los PC había competencia entre fabricantes de componentes, lo que se tradujo en un abaratamiento progresvo de los precios. El boom definitivo ocurrió con la aparición de los llamados "clónicos", ordenadores fabricados por empresas distintas a IBM, a imagen y semejanza del IBM PC, y totalmente compatibles con éste.

¿Pero qué tiene que ver Microsoft con todo esto? Pues como todo ordenador, el IBM PC necesitaba un sistema operativo, y se lo encargó a la entonces no muy conocida Microsoft. Y para sorpresa de algunos que lean esto, Bill Gates nunca creo el MS-DOS, sino que compró un sistama llamado QDOS a la compañía Seattle Computer Products, junto con sus derechos. El verdadero creador fue un tal Tim Paterson, que pasó a formar parte de la plantilla de Microsoft, para mantener el MS-DOS. Él éxito del PC arrastró a Microsoft, ya que tenía el monopolio sobre el sistema operativo.

Y este inicio ha marcado toda la trayectoria de Microsoft, ya que la mayoría de sus productos estrella se han basado en otros ya existentes. Así por ejemplo, el omnipresente Windows surgió como copia del interfaz de ventanas del MacOs de Apple. La primera versión es de 1984 y era bastante lamentable. Así, mientras los usuarios de PC aún tecleaban comandos en su consola de MS-DOS, los usuarios de Machintosh o de Amiga ya disponían de un completo entorno de ventanas muchísimo más amigable. No fue hasta la versión 3.1 en 1990, cuando el Windows se comenzó a usar realmente de forma masiva. Y esa versión aún corría sobre MS-DOS, y había que lanzarlo desde la línea de comandos.

Otro ejemplo, espero que aún en la memoria de la mayoría, es el del Internet Explorer. Es un hecho que Microsoft llegó tarde al mundo de Internet, y cuando lo hizo, el Netscape Navigator era el navegador más utilizado por los usuarios de Windows. Captura de pantalla del Netscape Navigator 1.22Microsoft hizo uso y abuso de su posición de monopolio como proveedor de sistemas operativos para PC y comenzó a incluir de serie su Explorer en Windows (que para más inri, tampoco desarrolló completamente, sino que compró el navegador Mosaic a la empresa Spyglass). Las primeras versiones eran realmente malas (yo llegué a usar la 3), pero la versión 4, reescrita desde cero, ya igualaba a su homóloga de Netscape (que por otra parte tenía varios bugs), por lo que terminó desbancándolo como navegador más utilizado. Ahora, si preguntas a un adolescente, seguramente te dirá que Microsoft inventó Internet, y que el Explorer es la única forma de entrar. Ya nadie recuerda a Netscape.

Y lo mismo se aplica al Microsoft Office. ¿Alguien recuerda el Word Perfect? Pues fue el procesador de textos por excelencia mucho antes que el Word. ¿Y el Lotus 1-2-3? Excelente hoja de cálculo de la que ya nadie se acuerda, anterior al Excel. La misma Lotus integró varias aplicaciones en una suite, incluyendo Lotus Organizer, una aplicación equivalente al conocido Outlook, tan utilizada en su día que he llegado a escuchar en determinadas empresas la expresión "te lo envío por Lotus" para referirse al envío de un correo electrónico. Y ya existían programas de mensajería instantánea mucho antes del ahora omnipresente MSN Messenger. Ahora mismo somos testigos de cómo el Media Player está desplazando al todavía muy popular Winamp en cuanto a reproducción de música (por copiar, hasta ha copiado la personalización a través de skins), llegando incluso a imponer su formato propietario WMA sobre el conocidísimo MP3 o el técnicamente superior (y libre) Ogg Vorbis.

En fin, que la única aportación real de Microsoft al mundo de la informática ha sido que gracias a su marketing, la informática doméstica ha penetrado masivamente en los hogares, existiendo ordenadores en lugares donde realmente no son necesarios. Este es un mérito que no se le puede negar, pero ni los entornos de ventanas, ni la amigabilidad, ni la ofimática, ni la web, ni la multimedia, ni nada de lo que es la informática doméstica hoy, ha sido inventado por Microsoft, que sólo ha copiado lo que ya existía y lo ha envuelto en una caja mucho más bonita que sus competidores.

Un envío largo el de hoy, pero dado el parón de más de una semana, ¡qué menos!

Etiquetas: ,

sábado, mayo 07, 2005

Hackers

El otro día leí una noticia un tanto curiosa. Según parece, tras una acalorada discusión en un canal de chat, un supuesto hacker retó al moderador del canal a que le dijera su dirección IP. Éste le dio la 127.0.0.1, y el supuesto hacker al atacar la dirección con sus herramientas, borró su propio disco duro. La verdad, es que parece de chiste. La dirección IP 127.0.0.1 es una dirección especial, que se refiere al propio ordenador. Una especie de "yo mismo". Es dificil de creer que, ya no un hacker, sino cualquiera con un mínimo conocimiento de informática o simplemente de redes, desconozca algo tan elemental. Pero a pesar de lo aparentemente irreal de la noticia, he decidido comentarla aquí porque ilustra un hecho sobre este mundillo.

Casi todo el mundo, tiene una concepción totalmente equivocada sobre hackers, crackers y demás. Imagen normalmente potenciada por el cine. Ya comenté en su día la película Operación Swordfish, pero existen muchas otras donde nos muestran a supuestos genios informáticos haciendo milagros. Los vemos tecleando como locos aunque en el monitor sólo se vea un logotipo del sistema que intentan reventar, o un entorno gráfico con muchas ventanitas. Pero ¿qué es lo que teclean, que no sale en la pantalla?

Y es que esta noticia, aunque parezca una broma (y tal vez lo sea), es perfectamente posible. No es necesario ser un genio para intentar asaltar un sistema, basta con proveerse de las herramientas adecuadas. Lógicamente, cuantos más conocimientos tengas, mejor puedes utilizar esas herramientas, o incluso crear las tuyas propias, pero hoy en día cualquiera puede recopilar un buen número de programas dedicados a "atacar" otros sistemas, sin más que saber dónde buscar. No necesita ser un genio, ni siquiera saber demasiado de informática. Sólo al que ha programado la herramienta, documentandose sobre posibles bugs y "exploits", se le puede considerar un verdadero hacker.

Para ilustrar esto, pondré un ejemplo que será más o menos conocido por todos. Cuando surgió el formato DVD, allá por los 90, las distribuidoras y productoras insistieron en que los DVD de películas, debían estar protegidos de alguna manera, para evitar que se puderan copiar. Finalmente se optó por un sistema de cifrado, llamado CSS (Content-Scrambling System), de forma que sólo los reproductores de DVD y el software autorizado pudieran descifrar los datos y visionar la película. Pero resulta que los programas legales que eran capaces de reproducir un DVD, eran todos para Windows o Mac. Un grupo de usuarios de otras plataformas (de los cuales el más famoso es Jon Lech Johansen por ser llevado ante los tribunales), ante la inexistencia de un software similar para otros sistemas operativos, se dedicaron a investigar cómo estaban cifrados los DVD y consiguieron reventar el cifrado mediante ingeniería inversa, creando un programa llamado DeCSS. Gracias a él, ahora se puede, por ejemplo, ver un DVD en Línux. Además, DeCSS permitió la proliferación de programas para "ripear" el contenido de un DVD de vídeo, es decir, extraerlo, descifrarlo y guardarlo en el disco duro. Y esto es algo que cualquiera puede hacer. Uno no necesita ser ningún experto para descifrar un DVD. Basta con tener un programita de esos.

Pues lo mismo pasa con los ataques a otros ordenadores. No es necesario ser un genio para hacerlo, sólo contar con los programas adecuados. Bueno, eso, y que la víctima tenga un sistema desprotegido, sin las protecciones más elementales, como un cortafuegos, y con un software lleno de agujeros de seguridad, como cierto navegador de una mulinacional de Redmont. Por supuesto, existen verdaderos hackers que no sólo crean sus propios programas para atacar sistemas, sino que son capaces de reaccionar a medida que encuentran trabas, pero incluso ellos, necesitan tiempo y trabajo en su propio ordenador para crear la herramienta adecuada.

Etiquetas: ,

lunes, mayo 02, 2005

Yo sí conozco UNIX

Supongo que todo el mundo habrá oído hablar de Parque Jurásico, y que la mayoría habrá visto al menos la primera película. No, no voy a hablar de la clonación de dinosaurios a partir de ADN recuperado de mosquitos atrapados en ambar. Voy a comentar algo más conocido. El que haya visto la película (la primera),
recordará una escena en la que la nieta de Hammond, una supuesta experta en informática (algún día escribiré algo sobre estos absurdos topicazos), se sienta en un terminal de la red de ordenadores que controla el parque, y exclama "Sistema UNIX. Lo conozco". Bueno, el que realmente conozca algo de UNIX, supongo que se habrá hartado a reír, o se habrá llevado las manos a la cabeza (depende del estado de ánimo), al ver que en la pantalla aparecía un interfaz 3D, donde se veían carpetas en perspectiva, y un haz de luz que se movía para seleccionarlas.

Y es que el interfaz de UNIX, no se parece en nada a eso. El interfaz más habitual es una austera línea de comandos, donde se teclean instrucciones crípticas para cualquiera que no conozca UNIX. Así, por ejemplo, para listar el contenido de un directorio, hay que introducir el comando "ls", para copiar un fichero, "cp", y así. Algo parecido a la vieja consola de MS-DOS, pero mucho más compleja y potente. De hecho, es esta forma clásica de interactuar el motivo por el que su variante libre más popular, Linux, tiene colgado el sambenito de "complicado de usar", y "sólo para informáticos" (algo totalmente injusto, ya que desde hace algunos años, existen distribuci