Memorizza le parti di un indirizzo IP, affinché l'utente rimanga anonimo?

2

Sto pensando di creare un forum molto anonimo, in cui le persone possano commentare e alterare i commenti degli altri in modo anonimo. Le persone dovrebbero rimanere anonimi anche se i contenuti del database del forum diventano disponibili pubblicamente. Come un passo per prevenire la frode elettorale, sto pensando di memorizzare parti dell'indirizzo IP. Solo parti di esso - se dovessi memorizzare l'intero IP, il forum non sarebbe più così anonimo.

Gli indirizzi IP sono come 111.222.333.444 . Quali parti dell'indirizzo IP consiglieresti di archiviare? (Se c'è?)

E che dire di IPv6, quali parti di un numero IPv6?

Per quanto ne so, la parte iniziale dell'indirizzo IP identifica il provider di servizi Internet. E le ultime cifre identificano il computer all'interno della rete dell'ISP. Che ne dici di memorizzare le parti _22 e _44, ___._22.___._44 ?

(L'hashing dell'IP non sembra un'opzione, dato che ci sono solo 4e9 IP e quindi sarebbe relativamente facile craccare l'hash, cioè testare tutti gli IP 4e9 e scoprire quale si ottiene in un determinato hash. hashing un valore segreto + l'IP non funzionerà, dal momento che le persone dovrebbero rimanere anonimi anche se il valore segreto è esposto.)

(I filtri Bloom sono un'opzione, ma penso che richiederebbero molto spazio di archiviazione, qualcosa come 5 KB per commento.)

    
posta KajMagnus 01.03.2014 - 05:17
fonte

2 risposte

4

Per IPv4, non c'è una buona opzione. Lo spazio degli indirizzi è effettivamente interamente in uso, quindi qualsiasi memorizzazione parziale significa che una persona che vota può potenzialmente impedire ad altri di votare. I numeri verso sinistra rappresentano generalmente ISP, area geografica, ecc. - cose che un aggressore potrebbe essere in grado di capire con altri mezzi. I numeri verso destra rappresentano generalmente i singoli utenti.

Quali parti dell'indirizzo memorizzate determinano il modello in base al quale i voti degli utenti bloccano quali altri utenti e in una certa misura viene fornita la privacy. Ad esempio, se si memorizzano le tre parti più a destra dell'indirizzo, un utente non può impedire ad altre persone dal proprio ISP di votare, ma bloccherà le persone a caso sparse in tutto il mondo; un utente malintenzionato in grado di indovinare l'ISP dell'utente può trovare il proprio indirizzo IP completo. D'altra parte, la memorizzazione delle tre parti più a sinistra significa che un utente malintenzionato sa immediatamente quale ISP e probabilmente la posizione geografica di un utente proviene, ma non può identificare l'individuo; un elettore di un piccolo ISP (o della nazione del Qatar) può bloccare tutti gli altri.

IPv6 è diverso. Essenzialmente, la metà superiore dell'indirizzo viene assegnata dall'ISP all'utente, mentre la metà inferiore viene generata dal singolo dispositivo (vedi Autoconfigurazione stateless IPv6 e Estensioni privacy IPv6 ).

Se si memorizza solo la metà inferiore dell'indirizzo, qualcuno che ottiene una copia del database può essere in grado di confermare che la persona che sospettano di partecipare è effettivamente, ma non può andare nella direzione opposta e generare un elenco di partecipanti . Se l'utente ha un sistema operativo con le estensioni della privacy attivate, la conferma è impossibile, ma lo stesso impedisce il voto duplicato.

Se si memorizza solo la metà superiore (o solo una parte della metà superiore), la situazione è essenzialmente la stessa di IPv4.

    
risposta data 14.03.2015 - 02:22
fonte
0

Potrei eseguire l'hash dell'IP a 16 bit e memorizzare quei 16 bit. Quindi ci sarebbero 65 536 possibili valori hash e, per ognuno di questi hash, ci sarebbero circa 65 536 possibili IP che mappano quel valore.

O hash l'IP a soli 8 bit, in modo che ci siano solo 256 possibili hash, ognuno dei quali deriva da uno qualsiasi di circa 2 ^ (32 - 8) = 16 777 216 IP.

Ciò nasconderebbe tutte le parti dell'IP originale.

Tuttavia , 1) dato un numero IP, sarebbe possibile scoprire se è probabile che abbia visitato il sito web, tagliandolo e cercando l'hash. Inoltre, 2) se il sito Web (con il database con gli hash IP) è correlato a una certa città non molto grande, un utente malintenzionato con accesso agli hash IP potrebbe enumerare tutti gli indirizzi IP nelle vicinanze della città, quindi solo alcuni di questi IP corrispondono agli hash nel database. In questo modo, potrebbe essere possibile trovare i reali IP delle persone nella città che hanno visitato il sito web. - Quindi, per i piccoli villaggi, si potrebbe / dovrebbe usare gli hash più brevi.

Questo sarebbe per gli utenti normali (cioè utenti non anonimi). Non vorrei mantenere i loro indirizzi IP per sempre, quindi dopo un po 'gli IP potrebbero essere convertiti in hash. Per utenti veramente anonimi, non dovrei ricordare nulla, suppongo.

(Rispondendo alla mia domanda.)

    
risposta data 06.04.2015 - 10:07
fonte

Leggi altre domande sui tag