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.