Costruire una rete anonima

1

Immagina di costruire Facebook, tranne che non vuoi rivelare l'identità dell'utente per post e commenti. Vuoi ancora verificare l'organizzazione di ciascun utente. Ad esempio, se l'utente si iscrive con [email protected] , gli consentirà solo di scrivere post dopo aver verificato la sua email. Questa è la mia configurazione iniziale.

  1. Posts e Comments hanno campo authorId .
  2. Ci dovrebbe essere un'opzione per diventare "non anonimo" e rivelare il tuo indirizzo email quando scrivi un post.

A causa del numero 2, esito dal buttare via l'indirizzo email da un User una volta verificato. In questo momento, ritengo che la soluzione migliore sia eseguire periodicamente un lavoro cron e rimuovere il campo userId da post e commenti anonimi più vecchi di un certo periodo di tempo. Quindi, quando il database viene compromesso, nessuno sarà in grado di associare un post anonimo con un utente registrato.

Non so se è il modo migliore per farlo e ho bisogno di chiedere aiuto agli esperti di sicurezza. Qualsiasi aiuto sarà molto apprezzato !!

    
posta Maximus S 23.08.2015 - 04:28
fonte

2 risposte

1

Se ti capisco bene di quanto vuoi assicurarti che nessun dato utente venga compromesso anche se il tuo sito viene violato. Innanzitutto dovresti essere chiaro che questo può essere applicato solo se rilevi gli hack sul tuo sito. Se l'utente malintenzionato riesce a hackerare il tuo sito e tu non lo noti, l'utente malintenzionato può tracciare tutte le attività su questo sito e probabilmente rendere anonimi gli utenti che utilizzano il sito compromesso.

Dovresti anche essere chiaro che gli utenti potrebbero essere de-anonimizzati dal modo in cui scrivono, vale a dire lo stile di scrittura, il tempo che scrivono, gli argomenti che conoscono e gli argomenti che usano. Pertanto la completa anonimizzazione probabilmente non sarà possibile perché le informazioni fornite inavvertitamente dagli utenti.

A parte questo, non dovresti mai memorizzare alcuna informazione che potrebbe essere usata per rendere più facile la de-anononizzazione. Dovresti dimenticare l'indirizzo e-mail fornito dall'utente subito dopo aver inviato la mail di verifica e associare solo un token casuale all'account. E non dovresti associare nessun post dell'utente con l'account o tra di loro perché l'analisi su più post dello stesso utente fornisce più informazioni sull'utente di quanto farebbe un singolo post.

Ovviamente queste restrizioni nelle informazioni memorizzate influiscono sull'usabilità del sito. Non è inoltre possibile fornire alcun recupero della password poiché non si dispone di alcuna informazione sull'utente (nessuna e-mail, nessuna domanda segreta). Puoi anche non avere nulla come tutti i post dell'utente o anche i post recenti perché non si associano i post l'uno con l'altro. E potrebbe anche essere difficile per un utente modificare i propri post, anche se vedi questa domanda per possibili modi.

Alla fine potrebbe essere necessario trovare un equilibrio tra anonimato e usabilità. Ma per fare ciò dovresti analizzare a fondo la situazione, cioè fare una valutazione della quantità di anonimato che devi fornire e dei rischi che tu e i tuoi utenti siete disposti a prendere al costo di una migliore usabilità. E ovviamente gli utenti devono essere consapevoli dei rischi, quindi non rivendicare il pieno anonimato se non puoi fornirlo.

    
risposta data 23.08.2015 - 10:29
fonte
1

Requisito 2: attivazione del nome e email

L'opzione 2 può essere facilmente eseguita senza che il tuo server debba sempre ricordare UserId & email dell'utente:

Quando l'utente vuole pubblicare un messaggio non anonimo, l'utente fornisce il suo nome e indirizzo email. Se lo sproofing di identità è un problema, l'utente può conservare un certificato che dimostra di possedere il nome utente indicato e di collegarlo ai suoi post attribuiti.

Requisito 1: anonimato

La prima opzione potrebbe essere implementata tramite le chiavi API:

  • Una volta verificato l'indirizzo email dell'utente, fornisci all'utente una serie di chiavi API;
  • Chiedere al server di dimenticare l'e-mail dell'utente e altri dati di identità;
  • L'utente può pubblicare uno o più messaggi utilizzando la chiave API ricevuta, di nuovo il server dimentica qualsiasi informazione che colleghi una chiave API a un'altra; e
  • L'utente può richiedere più chiavi API quando necessario.

Requisito di Nic Barker: cronologia personale dei post, ricezione di feedback

Un utente può tenere traccia dei propri messaggi memorizzando id di messaggi postati o memorizzando id in chiavi API o in alliasses utilizzati per inviare messaggi in un archivio dati controllato da lui stesso (il proprio dispositivo o un archivio crittografato sul server).

    
risposta data 23.08.2015 - 12:53
fonte

Leggi altre domande sui tag