Seguimiento de visitas únicas al sitio web sin registrar las direcciones IP

7

El lunes, alguna dirección IP xxx.xxx.xxx.xxx visita mi sitio. Lo registro.

El martes, otra dirección IP yyy.yyy.yyy.yyy visita mi sitio. Lo registro.

Si las dos direcciones IP son iguales, descarto la segunda porque solo me interesan las visitas únicas a mi sitio. Si no son lo mismo, guardo ambos en mi registro.

Pregunta: ¿Es posible hacer esto sin tener que registrar las direcciones IP, usando algún tipo de hashing / encriptación, de tal manera que no sea posible deducir las direcciones IP de ¿Los datos hash / cifrados?

A primera vista, me parece que esto sería imposible, porque siempre puedes forzar a todas las direcciones IP posibles en cualquier esquema de cifrado / hash que estés usando, hasta que coincida con tus datos cifrados / cifrados, y por lo tanto deduciendo la dirección IP original.

Pero espero que me esté perdiendo algo. Tal vez es posible traer tiempo a esto para que esto sea posible de alguna manera?

No tengo suficiente conocimiento en seguridad para saber la posibilidad o imposibilidad de esto. Cualquier consejo sería apreciado.

Información adicional: me gustaría almacenar la mayor cantidad de información posible (sin que, por supuesto, podamos deducir las direcciones IP originales). Por ejemplo, es posible que no necesariamente desee almacenar simplemente el total de visitantes únicos de todos los tiempos. En su lugar, es posible que desee saber el total de visitantes únicos durante un día, semana o mes en particular. Por lo tanto, sería realmente importante almacenar todas las direcciones IP cifradas / hash. Entonces, en este sentido, me equivoqué cuando hablé más arriba sobre "tirar el segundo".

Nota: Estoy buscando un esquema bajo el cual nadie, ni siquiera yo , pueda deducir la dirección IP. Se han proporcionado algunas soluciones que me permiten deducir técnicamente la dirección IP original, pero ni siquiera quiero poder hacerlo por mi cuenta. Esto suena imposible, pero quién sabe. Tal vez existan algunos trucos para lograr lo que quiero?

    
pregunta SecurityClown 11.08.2012 - 06:37
fuente

6 respuestas

8

En primer lugar: ¿por qué está tan preocupado por no almacenar direcciones IP? No se trata de datos privados; el enrutador OS o NAT lo incluye felizmente con cada paquete enviado. Está bien, es algo necesario, pero lo que quiero decir es que no son realmente privados. Además, las direcciones IP aleatorias no son realmente útiles para los piratas informáticos, y no es un problema de privacidad cuando solo puedes verlas tú mismo.

En segundo lugar, no es realmente útil guardar direcciones IP con el objetivo de contar visitas únicas. Una IP no solo puede tener cientos o miles de usuarios (como escuelas), sino que un solo usuario también puede ocupar fácilmente una / 16 subred o dos (la IP de muchas personas cambia cada pocos días), sin mencionar las computadoras portátiles y los teléfonos móviles. Una mejor técnica sería las cookies de sesión, que desafortunadamente están restringidas al navegador (y, por lo tanto, a un dispositivo, por lo que no contamos a la gente, pero sí la cantidad de navegadores), pero es mucho mejor que las direcciones IP.

Por último, si aún quieres ir con el almacenamiento de direcciones IP, existen básicamente dos formas:

  1. filtro Bloom , como se mencionó anteriormente. Sin embargo, esto no es 100% correcto, pero probablemente sea lo suficientemente bueno para este propósito.
  2. Usando una función de hashing que tarda una eternidad en computar. Sha-2 es un par de millones de veces el IP, no es práctico forzarlo brutalmente.
    • (Hay alrededor de 3.7 mil millones de direcciones IP únicas y utilizables a nivel mundial, por lo que si se necesitan 50 ms para calcular un hash, se necesitan 2.9 años antes de que tenga el 50% de posibilidades de forzar una de ellas, sin tener en cuenta la ley de Moore .)
respondido por el Luc 11.08.2012 - 21:47
fuente
3

Consideremos el estado completo de sus sistemas. Ese estado puede ser duplicado; simplemente apague las máquinas y tome una copia del contenido del disco.

Ahora obtenga esa copia como estado inicial para algunas máquinas virtuales, que emulará sus servidores. Enciéndalos y haga la contabilidad que produce el número de "visitas únicas". Esto da un número N . Luego emule una conexión desde una IP determinada (estas son máquinas virtuales en una red virtual, para que pueda emular todo el Internet que desee), y haga la contabilidad nuevamente . Si esto produce N + 1 , entonces la IP era nueva; de lo contrario, devolverá N , revelando que la IP ya se contabilizó.

Este método extremadamente genérico muestra que, independientemente de la cantidad de criptografía que pueda arrojar al problema, usted, como administrador del sistema, todavía tiene la capacidad de comprobar si una IP determinada se encuentra en el conjunto de "direcciones IP vistas anteriormente" o no. Dado que solo hay cuatro billones o más de posibles direcciones IP (en IPv4), la búsqueda exhaustiva es factible. Ese es un poder que no puede renunciar, siempre que sus máquinas sean suyas. Y si no puedes perder este poder, no podrás convencer a nadie de que no lo tienes (excepto gente crédula).

En el mejor de los casos, puede utilizar hashing lento (como bcrypt ) para hacer el exhaustivo busque más, pero no puede subir la barra demasiado alto porque su servidor tendrá que hacer este hash para cada cliente entrante. Además, todos estos hashes tendrán que usar la misma "sal", porque esta no es la misma situación que el hashing de contraseña. De todos modos , no podrá probar que no guarda las direcciones IP en algún lugar, porque sería fácil conectar otra máquina que pasivamente espía en la red y registra las direcciones IP de las conexiones entrantes.

Como lo mencionó @Luc, las direcciones IP no son un secreto. Vienen de un conjunto limitado que se puede enumerar exhaustivamente con la tecnología existente. Una situación diferente es cuando desea hacer un seguimiento de direcciones de correo electrónico , para detectar duplicados, pero sin realmente mantenerlos en su base de datos porque no quiere ser el responsable de filtrar millones de direcciones a cualquier spammer. Quien roba una copia de seguridad. Para esa situación, el hashing es conveniente. La principal diferencia entre las direcciones IP y las direcciones de correo electrónico es el tamaño del conjunto de direcciones posibles, lo que hace que la enumeración exhaustiva sea altamente factible para las direcciones IP y totalmente ridícula para las direcciones de correo electrónico.

    
respondido por el Thomas Pornin 24.02.2013 - 16:28
fuente
2

Le confirmo que es posible no registrar las direcciones IP de los visitantes. Como ejemplo, si está utilizando apache como servidor web, puede personalizar el formato de registro para que no rastree la dirección IP. De esta manera, no necesita hash de las direcciones IP.

Sin embargo, si tiene que hacer un seguimiento de los visitantes únicos de su sitio, usar ip para ese propósito no ayuda. Trate de pensar en una LAN con un sinnúmero de potenciales visitantes. En su lugar, debe utilizar el mecanismo de sesión y almacenar el ID de sesión único junto con la fecha real en lugar de ip.

De nuevo, esto no puede asegurar que las direcciones IP no se almacenen en ningún otro lugar, como en enrutadores o firewalls u otros dispositivos sw / hw.

    
respondido por el Giovanni Lombardo 11.08.2012 - 08:47
fuente
1

enlace : Bloom Filter le permite crear grupos (filtros) y agregar datos, lo que no es reversible Debido a los falsos positivos.

Otros métodos no están bien, porque es fácil atacar el espacio IPv4 de 32 bits.

    
respondido por el Andrew Smith 11.08.2012 - 11:22
fuente
1

Si le preocupa la privacidad de sus visitantes, pero desea que los análisis analicen Piwik. enlace

puedes ocultar la ip como 201.xxx.xxx.xxx (No sé si lo mismo se aplica en la base de datos de la instalación de piwik)

En el pasado he visto una técnica con piwik y apache para no registrar las direcciones IP, pero registrar el ID de los navegadores o algo así. Estoy buscando el lugar pero no lo encontré.

    
respondido por el Stelios Joseph Karras 11.08.2012 - 21:16
fuente
0

He oído hablar de personas que modifican la dirección IP y otra información (cadena de agente de usuario, configuración regional del navegador ...) y que almacenan ese hash. Siempre y cuando no sea solo la dirección IP, esto debería hacer que sea imposible discernir los datos del hash, pero conservar la opción de agrupar a los visitantes.

No proporcionó ningún detalle, pero para Apache hay un módulo llamado removeip (paquete Debian / Ubuntu para Apache2: libapache2-mod-removeip ).

El problema en este último caso es que no se puede saber quién es quién. Pero luego, cualquier persona que le extienda esa información puede usar cualquier información que pueda usar para rastrear a sus usuarios. Entonces, como ya ha señalado: el mejor método es no tener esos datos en primer lugar.

    
respondido por el 0xC0000022L 24.02.2013 - 16:49
fuente

Lea otras preguntas en las etiquetas