¿Almacenar qué partes de una dirección IP, para que el usuario permanezca en el anonimato?

2

Estoy pensando en construir un foro muy anónimo, donde la gente pueda comentar y promocionar los comentarios de los demás de forma anónima. Se supone que las personas deben permanecer en el anonimato, incluso si los contenidos de la base de datos del foro se vuelven públicos. Como un paso para prevenir el fraude de votos, estoy pensando en almacenar partes de la dirección IP. Solo partes de él: si tuviera que almacenar toda la IP, el foro ya no sería tan anónimo.

Las direcciones IP son como 111.222.333.444 . ¿Qué partes de la dirección IP recomendarías que almacenara? (¿Si hay alguno?)

¿Y qué hay de IPv6, qué partes de un número de IPv6?

Por lo que sé, la parte inicial de la dirección IP identifica al proveedor de servicios de Internet. Y los últimos dígitos identifican la computadora dentro de la red del ISP. ¿Qué hay de almacenar las partes _22 y _44, ___._22.___._44 ?

(Hashing the IP no parece ser una opción, ya que solo hay 4e9 IP y, por lo tanto, sería relativamente fácil descifrar el hash, es decir, probar todos los 4e9 IP y descubrir cuál da como resultado un hash dado. Y el hashing de un valor secreto + la IP tampoco funcionará, ya que se supone que las personas deben permanecer en el anonimato incluso si el valor secreto está expuesto.)

(Los filtros Bloom son una opción, pero creo que requerirían bastante espacio de almacenamiento, algo así como 5 KB por comentario).

    
pregunta KajMagnus 01.03.2014 - 05:17
fuente

2 respuestas

4

Para IPv4, no hay una buena opción. El espacio de direcciones está efectivamente completamente en uso, por lo que cualquier almacenamiento parcial significa que una persona votando potencialmente puede impedir que otras voten. Los números hacia la izquierda generalmente representan ISP, área geográfica, etc., cosas que un atacante podría calcular por otros medios. Los números hacia la derecha generalmente representan usuarios individuales.

Las partes de la dirección que almacena determinan el patrón de los votos de los usuarios que bloquean a los demás usuarios y, hasta cierto punto, cuánta privacidad se proporciona. Por ejemplo, si almacena las tres partes más a la derecha de la dirección, un usuario no puede bloquear a otras personas de su ISP para que no voten, pero bloqueará a personas aleatorias dispersas por todo el mundo; un atacante que pueda adivinar el ISP del usuario puede averiguar su dirección IP completa. Por otro lado, almacenar las tres partes más a la izquierda significa que un atacante sabe inmediatamente de qué ISP y probablemente la ubicación geográfica de la que es un usuario, pero no puede identificar al individuo; un votante de un ISP pequeño (o la nación de Qatar) puede bloquear a todos los demás.

IPv6 es diferente. Esencialmente, la mitad superior de la dirección es asignada por el ISP al usuario, mientras que la mitad inferior es generada por el dispositivo individual (consulte Configuración automática sin estado de IPv6 y Extensiones de privacidad de IPv6 ).

Si almacena solo la mitad inferior de la dirección, una persona que obtenga una copia de la base de datos podrá confirmar que la persona que cree que está participando es, pero no puede ir en la otra dirección y generar una lista de participantes. . Si el usuario tiene un sistema operativo con extensiones de privacidad habilitadas, la confirmación es imposible, pero por lo tanto se evita la votación duplicada.

Si almacena solo la mitad superior (o solo una parte de la mitad superior), la situación es esencialmente la misma que con IPv4.

    
respondido por el Mark 14.03.2015 - 02:22
fuente
0

Podría hacer un hash del IP a 16 bits y almacenar esos 16 bits. Luego habría 65 536 posibles valores hash, y para cada uno de esos hashes, habría aproximadamente 65 536 direcciones IP posibles que se asignan a ese valor.

O hash el IP a solo 8 bits, para que solo haya 256 hashes posibles, cada uno de ellos proveniente de cualquiera de aproximadamente 2 ^ (32 - 8) = 16 777 216 IPs.

Esto ocultaría todas las partes de la IP original.

Sin embargo , 1) dado un número de IP, sería posible averiguar si es probable que haya visitado el sitio web, haciendo una "hash" y buscando el "hash". Además, 2) si el sitio web (con la base de datos con los hashes IP) está relacionado con una determinada ciudad no muy grande, un atacante con acceso a los hashes IP podría enumerar todas las direcciones IP cercanas a la ciudad, y luego solo unas pocas de esas IP coincidirán con los hashes en la base de datos. De esta manera, podría ser posible encontrar las IP reales de las personas de la ciudad que visitaron el sitio web. - Entonces, para los pueblos pequeños, uno podría / debería usar hashes más cortos.

Esto sería para usuarios normales (es decir, usuarios no anónimos). No me gustaría mantener sus direcciones IP para siempre, así que después de un tiempo, las direcciones IP podrían convertirse en hashes. Para usuarios verdaderamente anónimos, nada debería ser recordado, supongo.

(Respondiendo a mi propia pregunta)

    
respondido por el KajMagnus 06.04.2015 - 10:07
fuente

Lea otras preguntas en las etiquetas