Come posso rendere più difficile per un utente creare più account?

5

Vorrei conoscere il modo migliore per aumentare la sicurezza su un sito Web in modo che un singolo utente non possa creare più account.

Che cosa può essere rintracciato tutto un utente? Sto pensando:

  • indirizzo IP
  • Indirizzo MAC
  • Dettagli del browser
  • Nome computer e relativi dettagli

So che un indirizzo IP può essere falsificato, ma c'è un modo per identificare ancora un utente bannato? Forse una combinazione di IP, MAC e dettagli del computer?

Possiamo vietare gli utenti sulla base del loro indirizzo MAC? C'è un altro modo per rintracciarli per impedire che creino più account?

    
posta adam rai 15.04.2012 - 02:37
fonte

3 risposte

7

Non esiste un modo efficace per impedire a un utente malintenzionato dedicato di creare più account. A prescindere da quello che fai, l'attaccante sarà comunque in grado di creare più account "fantoccio di calzino". Il meglio che puoi fare è aumentare il costo della creazione di account aggiuntivi.

Un approccio consiste nel richiedere all'utente di fornire un numero di telefono cellulare, autenticare il numero di telefono dell'utente (chiamandolo, pronunciando un codice di autenticazione casuale e inserendo l'utente nel codice di autenticazione nel sito Web, come Google Voice lo fa). Quindi puoi assicurarti che ogni numero di cellulare sia collegato alla maggior parte di un account. Ciò non impedisce la creazione di più account - un utente malintenzionato può ancora acquistare più telefoni usa e getta, ad esempio - ma aumenta i costi dell'attaccante e potrebbe essere sufficiente per convincerlo a disturbare qualcun altro. Lo svantaggio è che impedisce ad alcune persone di utilizzare il tuo sito, ad esempio, se non hanno un telefono cellulare, o se non sono disposti a condividere il loro numero di cellulare con te (probabilmente le persone saranno riluttanti a condividere il loro numero di cellulare con un sito non hanno già un ottimo rapporto di fiducia con).

Un altro approccio possibile è richiedere all'utente di autenticarsi con un account Facebook e affidarsi a Facebook per verificare l'unicità. Anche questo è tutt'altro che perfetto: le persone possono ancora creare account Facebook falsi. Lo svantaggio è che richiede alle persone di accedere tramite Facebook può impedire a molte persone di utilizzare il tuo sito e fa male alla privacy . È scortese per le persone che non vogliono accedere con Facebook, non usano Facebook, o non vogliono condividere le loro informazioni di Facebook con te.

Vedi anche Come prevenire imbrogli (voti extra) nei concorsi online? per ulteriori discussioni su una varietà di mitigazioni.

    
risposta data 15.04.2012 - 06:59
fonte
4

Per riassumere l'eccellente risposta di D.W. ...

Non puoi leggere l'indirizzo MAC di un client attraverso un router. Un indirizzo MAC può essere facilmente modificato (così facile da non doppiare nemmeno l'epiffo "spoofed").

Un agente utente del browser non è univoco e di nuovo banale da cambiare.

L'unico "nome computer" che vedrai al server è il record PTR DNS per l'indirizzo IP, quindi consulta la discussione sull'indirizzo IP.

L'indirizzo IP può essere falsificato. Lo spoofing di un indirizzo IP su un flusso TCP indirizzato senza avere accesso ai router è difficile da eseguire, tuttavia una grande percentuale di utenti su Internet ottiene indirizzi IP temporanei da un pool e un volume crescente di utenti condividerà un indirizzo IP. L'utilizzo del netname dal record whois può aiutare a identificare un utente attraverso diversi indirizzi IP, ma utilizzarlo da solo genererà un numero enorme di falsi positivi.

Potresti dare un'occhiata a questo post sul mio blog parlando del fingerprinting del browser e dei collegamenti ad altre fonti, in particolare evercookie tuttavia si tenga presente che questo approccio si basa sul sovvertimento del modello di sicurezza del browser.

L'uso di un FSM basato su cookie e un test di Turing contribuiranno a garantire che ci sia un essere umano seduto all'estremità remota, impedendo così il voto del bot.

    
risposta data 16.04.2012 - 12:13
fonte
1

Cercherò di rendere più account meno attraente rispetto a un unico account. Forse gli utenti accumulano privilegi come SO con un buon comportamento (i nuovi account hanno pochi privilegi ma possono fare ben poco) quindi l'effetto del divieto sta perdendo tutti i privilegi? Forse fai solo divieti silenziosi, quindi gli utenti vietati non sono consapevoli di essere stati bannati, ma la loro attività non è vista da nessun altro?

Se devi bannare un utente e vuoi identificarlo in qualche modo, mi baserei principalmente sull'indirizzo IP riconoscendo che (a) gli utenti esperti avranno più indirizzi IP e (b) potrebbero condividere gli indirizzi IP con non vietati utenti.

Non userò il fingerprinting del browser utente come panoptclick.com (banale per cambiare l'impronta digitale - ad esempio, usa un browser diverso (firefox / chrome / opera / konquerer / safari / IE) o computer, cambia il tuo user agent string ; installa / disinstalla fonts / plugins).

Non utilizzerei evercookie - facilmente evitato cambiando computer o macchine virtuali e in qualche modo non etico.

Potresti anche voler creare un rimedio per gli utenti che dichiarano che il loro indirizzo IP è stato bannato e che non hanno mai utilizzato in modo improprio il tuo servizio. Ad esempio, oggi 100.101.102.103 è assegnato all'utente A che è stato bannato dal tuo ISP, domani è assegnato all'utente B che è buono e non dovrebbe essere bannato (soprattutto comune per i dispositivi mobili). Oppure condividi un router WiFi con diverse persone in un appartamento che desiderano account separati, ma tutti sembrano avere lo stesso indirizzo IP nel tuo account (ad esempio, il router utilizza NAT).

Ricorda che i siti web operano su TCP. Quindi non è banale spoofare un indirizzo IP; il tuo indirizzo IP è come un indirizzo postale - contiene informazioni di routing e TCP richiede un handshake avanti e indietro prima di inviare informazioni come una richiesta GET / POST di una pagina web. Quindi, mentre è facile trovarsi durante il primo passo di un handshake TCP e dire che sono al falso indirizzo IP che risiede in California piuttosto che il tuo vero indirizzo IP a New York, i pacchetti finiranno per essere indirizzati verso un computer in California piuttosto che il tuo a New York e visto che non vedrai mai le risposte dei server non potrai completare l'handshake e fare la richiesta (a meno che non controlli il computer in California (o un router intermedio) e rimandi i pacchetti al tuo computer o finiscono per indovinare il numero intero a 32 bit corretto (1 su 4 miliardi di possibilità) dal server).

È garantito che costa ~ $ 5 per ottenere legittimamente un altro indirizzo IP per configurare un proxy e la maggior parte delle persone con tecnologia avanzata hanno già diversi indirizzi IP che potrebbero utilizzare. Ma diventa meno conveniente per loro farlo.

    
risposta data 16.04.2012 - 19:40
fonte

Leggi altre domande sui tag