- Cómo y por qué
se comparten las IP - NAT: la técnica
más usada para compartir una
IP - Posibles
soluciones
Tomar la dirección IP de un cliente para
tratar de individualizarlo es un método muy
usado por la mayoría de los programas de
Internet. Este
método (que funcionó muy bien durante varios
años), en el escenario actual de Internet ya no funciona,
dando lugar a grandes confusiones.
Este artículo describe detalladamente las razones
de este cambio de
escenario, y presenta las soluciones que
pueden adoptar los programadores y webmasters para recobrar la
exactitud perdida.
Uno de los fundamentos técnicos de Internet
consiste en que cada dispositivo u ordenador que se conecta a la
red de redes debe poseer una
única dirección IP (Internet Protocol) que lo
identifique.
Basados en esta afirmación, muchos programas en
la web intentan
identificar a sus visitantes usando la IP que éstos
muestran en sus cabeceras de petición HTTP (lo que el
explorador envía al servidor para
indicarle: "quiero ver tal página"):
- Muchos sistemas de
encuestas
(polls) no dejan votar más de una vez al día a
una determinada IP, para evitar que un usuario pueda manipular
los resultados votando muchas veces. - Muchos sistemas de estadísticas se basan en la IP del
usuario para determinar si las visitas que recibe un sitio
provienen de diferentes clientes, y cuántas visitas
repetidas nos generan algunos clientes en
particular. - Muchos sistemas de estadísticas usan nuestra
propia IP para evitar contabilizar nuestros propios accesos a
nuestro sitio web, y de esta forma mostrarnos sólo la
actividad de los clientes reales. - Muchos sistemas de intercambio de tráfico
(tops, CJs, ad-Servers y rotadores de banners) leen la IP del
cliente para determinar si una visita es "unica" o "raw": es
decir, si se trata de un cliente que nos visita por primera vez
en el día, o si es un "click" repetido, ya sea de
alguien que está entrando de nuevo a un link que ya
visitó, o está recargando la página, o
retrocediendo en el historial del navegador. - Todos estos "controles" basados en la IP del cliente
están asumiendo ingenuamente que cada PC conectada a
Internet tiene una IP única que lo identifica, tal como
decían los libros hace
unos pocos años.
Pero esto ya no es así, desde que Internet
comenzó su expansión masiva y las direcciones IP
comenzaron a escasear. Hoy nos encontramos con un escenario
algo cambiado: es posible encontrar cientos, e incluso miles de
PCs que comparten una misma IP. Pero el software que no
se ha adaptado a estos cambios seguirá considerando que
todo ese enorme conjunto de máquinas
es un solo cliente, aunque en realidad se trate de todo un
pueblo o una pequeña ciudad… - Entonces el mecanismo de encuestas dejará
votar a una sola persona de esa
ciudad (al primero que se levante a votar ese día). Los
demás vecinos no podrán votar en el sistema de
encuesta,
que les dará el mensaje: "usted ya ha votado
hoy". - Los sistemas de estadísticas nos
estarán marcando que tenemos una menor cantidad de
visitantes individuales, pero a su vez nos indicará que
los mismos mantienen una intensa actividad dentro de nuestro
sitio web. - Si compartimos nuestra IP con otros vecinos, y
configuramos nuestro sistema de estadísticas para que no
registre nuestra propia actividad, entonces tampoco
estará registrando las visitas provenientes de los
demás usuarios con que compartimos nuestra IP. Y
éstos pueden ser decenas, cientos, o miles. - Los sistemas de intercambio de tráfico
estarán considerando que las visitas de un número
creciente de personas son "raw", o repetidas. Y en algunos
casos puede penalizarse un intercambio (y bajar su
posición en el top o en las listas de enlaces) si se
reciben muchas visitas desde las mismas ciudades o pueblos (o
al menos desde clientes que se conecten mediante un mismo
proveedor de Internet).
Cómo y por qué se comparten las
IP
Cuando hace 10 años yo era consultor de una empresa que
contrató un enlace permanente a Internet de 64 Kbps, el
proveedor de Internet nos asignó un bloque de 32
direcciones IP. "Una dirección IP por cada 2 Kbps" era la
norma prácticamente en todo el mundo. En esa empresa
había unos 25 puestos de trabajo para
conectarse a Intenet. De forma que asigné una IP para cada
máquina.
El año pasado asesoré a otra empresa para
conectar sus sistemas a Internet. Se contrató una
línea de 2 Mbps, y el proveedor nos asignó 2
direcciones IP (una IP por cada 1 Mbps) 500 veces menos que hace
10 años! (en aquel entonces nos hubiesen asignado 1024
direcciones IP). Esto es porque los anchos de banda (las
velocidades de transmisión de datos) han
aumentado, pero el número de posibles direcciones IP sigue
siendo exactamente el mismo desde que se inventó Internet.
Los investigadores han diseñado un nuevo protocolo llamado
IPv6 (IP versión 6, a diferencia del que está
actualmente en uso que es IP versión 4). Pero el IPv6
aún está lejos de ser usado mundialmente, a pesar
de que los sistemas
operativos avanzados (como Linux) ya lo
traen desde hace tiempo. Cuando
el IPv6 esté en uso mundialmente, ya no existirán
las situaciones problemáticas a que hago referencia en
este artículo.
Pero por el momento, los proveedores de
acceso a la red están usando soluciones que posibilitan el
acceso a mucha más gente al Intenet, pero por otro lado
complican al webmaster y al administrador de
servidores en
la tarea de identificar a los clientes que acceden a los sitios
web.
NAT:
la técnica más usada para compartir una
IP
El NAT (Network Address Translation) permite que muchos
clientes usen una misma IP, y funciona de la siguiente forma: La
red de clientes tiene en cada una de las computadoras
una IP interna que no es válida en Internet (a estas IP se
les llama direcciones de red privada, y son 192.168.x.x para la
clase C;
172.16.x.x para la clase B, y 10.x.x.x para la clase
A).
Todas las máquinas de la red privada están
configuradas para usar como puerta de enlace (o gateway) a una
máquina o router que
sí tiene su propia IP real. Este dispositivo de enlace
tiene entonces 2 direcciones IP: una interna, que es la que ven
el resto de las máquinas cliente (y que a la vez la usan
como puerta de enlace), y una IP externa real, que es la que se
ve desde Internet.
Cuando una máquina de la red interna quiere
acceder a un sitio en Internet, entonces hace la solicitud a su
puerta de enlace. Y la puerta de enlace (el router NAT) repite la
solicitud desde su conexión a Internet, como si la
estuviese generando él mismo. Cuando el NAT recibe la
respuesta desde el sitio de Internet, la copia a la red interna,
enviándola a la máquina que generó la
petición inicialmente. Es entonces un "intermediario" para
toda la actividad de sus clientes. Un router NAT, visto desde
Internet, parece ser una máquina normal, pero con una
actividad muy intensa.
El NAT no es la única técnica de acceso a
Internet que invalida el viejo concepto de "1
cliente <–> 1 IP" que muchos programas pretenden usar
como mecanismo de control.
También exiten proxys anónimos, IPs
dinámicas, etc. Pero a efectos de este artículo,
trataremos el NAT como principal problema, sabiendo que las
soluciones son las mismas para los diferentes escenarios
técnicos.
Esquema de una red conectada a Internet
mediante NAT
La reivindicación de las cookies: las cookies son
parte del protocolo HTTP. Son un pequeño puñado de
datos que el servidor es capaz de almacenar en la PC del cliente:
un número de usuario o de sesión, preferencias de
idioma, etc. Su uso es muy seguro tanto para
el ciente como para el servidor. Pero el problema es que el
usuario tiene la posibilidad de borrar las cookies de su PC (o
directamente puede configurar su navegador para que no las
acepte). Pero en más de un 95% de los clientes, las
cookies harán su trabajo maravillosamente bien.
La "huella" de la PC: es el método más
nuevo y el menos conocido y usado, pero también el
más exacto. Consiste en obtener un sumario de las
caracterísitcas de la máquina del ciente que
establece una conexión. A su IP se suma el tamaño
de su pantalla, la profundidad de color de su
tarjeta de video,
la versión del sistema opertaivo, el modelo y
versión del explorador, si tiene instalado flash, quicktime,
shockwave, Real Player, etc, etc.
Leyendo la "huella" de los usuarios, aunque los veamos
conectarse desde una misma IP, sabremos por sus
características que se trata de máquinas
diferentes, y es posible identificarlas con gran
precisión. Aún si todas las máquinas fueran
iguales (dentro de una empresa, por ejemplo), pronto los usuarios
les instalan plugins de software que modifican la huella de cada
máquina. El sólo hecho de modificar el
tamaño de pantalla modifica la huella también: de
modo que en pocas horas, en un parque de máquinas
e^xactamente iguales y que comparten una IP, se estaría en
condiciones de individualizar la actividad que provenga de cada
máquina.
En el estado
actual de la tecnología, la
combinación de cookies y "huella" del computador nos
da una visión razonablemente precisa sobre la actividad de
nuestros visitantes en los sitios web. Y la identificación
de usuarios por su IP ya debería ser descartada por su
inexactitud (que va en aumento).
Por Ing. Eduardo González
González