Raccomandazione per il sistema di identità

0

Voglio sviluppare un sistema, qualcosa come un sistema di commenti per un sito web, che mi assicuri di sapere chi sta postando commenti. Il contenuto che viene scambiato non è prezioso e non ha bisogno di essere crittografato, voglio solo avere una certa ragionevole certezza che la persona che pubblica il commento sia in realtà chi dicono di essere. Ad esempio, se un post è spam, voglio essere in grado di ritenere la persona responsabile. Allo stesso tempo ho bisogno che il sistema sia a basso carico per gli utenti. Ad esempio, fornire loro un elenco di 100 frasi una tantum che dovrebbero essere incollate in un'e-mail o su un sito Web sarebbe accettabile.

Sto usando node.js e stavo considerando l'utilizzo di uno scambio di chiavi diffie-hellman.

So che questo è sfocato e non sto cercando risposte di per sé, ma piuttosto un modo per pensarci, un esempio o punto di partenza o ...?

Modifica n. 1 Grazie per le domande e i pensieri intelligenti.

Caso d'uso: qualcuno viene fisicamente da me e con una pen drive e io do loro una serie di cifrari una tantum. [206,99087,3, etc]. E sì, devono accettare di darmi alcune informazioni e essere fisicamente identificati. Ogni volta che commentano o postano (e magari pubblicano tramite e-mail) voglio che uno di quei codici venga inviato a me, e non sono riutilizzabili. Quando la mia domanda riceve un'email o un commento pubblicato, vi è un alto grado di certezza circa l'identità della persona. Poco è in gioco oltre alla "reputazione", quindi c'è poco incentivo a penetrare nel sistema, ma non dovrebbe essere banale.

Responsabilità significa che la loro reputazione soffre o sono bannati dall'utilizzo dell'applicazione. Poiché questo è basato sulla persona fisica piuttosto che sulla persona che usa e getta, questo è sufficiente.

    
posta user1562766 11.07.2014 - 18:43
fonte

4 risposte

1

I captcha sono uno dei modi migliori per bloccare il bot dello spam, quindi ne avrai bisogno da qualche parte, ma sono un problema per l'utente. Ecco perché mi piace quando posso autenticare in qualche modo un sistema che significa che non devo rispondere ad un captcha ogni volta.

I cookie di sessione sono la soluzione per identificare un cliente. Si registra 1 volta (o dimostra che non è un bot 1 volta rispondendo) un captcha quindi gli dai un ID di sessione all'interno di un cookie. In realtà ci sono solitamente 2 cookie, un cookie di sessione e un cookie di autenticazione. Il cookie di sessione viene creato non appena l'utente si connette al tuo sito, l'autenticazione viene creata al momento del login.

Per bloccare l'utente, puoi bloccarli per indirizzo IP, nome utente o terminando la sessione (invalidando il suo cookie di sessione, quindi deve rianimare un captcha). Ma se hai scelto di farlo per nome utente, devi proteggere il nome utente con una password o chiunque potrebbe impersonare un nome utente.

Inoltre, se non vuoi che il tuo cookie utente o le informazioni di accesso vengano rubate (da qualcuno che ascolta il tuo traffico web), dovrai crittografare tutte le comunicazioni tra il client e il server usando HTTPS. In caso contrario, i tuoi cookie e le informazioni di accesso non sono al sicuro. Se un utente malintenzionato accede a un cookie può impersonare quella persona.

Vedo 2 alternative

Alternativa 1: nome utente + password

Chiedi un nome utente univoco, una password e una risposta a un captcha quando crei l'account. Successivamente, il client può semplicemente accedere con un nome utente + una password. Se un account è un bot spam, puoi bloccare il nome utente e / o l'indirizzo IP.

Alternativa 2: solo nome utente

Se non ti dispiace avere un nome utente duplicato puoi usare in questo modo. Semplicemente, chiedi un nome utente e la risposta a un captcha quindi assegna all'utente un cookie di sessione per autenticarlo in un secondo momento. Ovviamente, il blocco tramite nome utente non è utile qui e dovresti farlo tramite indirizzo IP o sessione di chiusura.

    
risposta data 11.07.2014 - 20:29
fonte
0

Per quanto posso dire, non ti serve nulla se non la possibilità che rilasci coppie nome utente / password .

Qualcuno viene da te e prova la sua identità in qualsiasi modo - lo stesso che doveva fare per la pen drive - e tu generi e gli dai un nome utente, una password e un avvertimento per avvisarti immediatamente se dovessero essere rubati.

Twist

Puoi farlo in modo che chiunque possa scegliere un nome utente e una password, e il sistema li visualizza come utenti non verificati . Quando dimostrano la loro identità, allora li contrassegni come utenti verificati . Meno oneroso per te, e le persone possono scegliere fino a che punto fidarsi degli utenti non verificati come desiderano.

Fondamentalmente i due sistemi sono perfettamente equivalenti, tranne che nel primo scenario gli utenti non verificati non possono pubblicare commenti: -)

    
risposta data 12.07.2014 - 00:58
fonte
0

Un meccanismo di autenticazione strong che sia facile per l'utente e fornisce una ragionevole garanzia sarebbe quello di sostenere una CA che non è considerata attendibile da nessun altro oltre all'applicazione. Emettere a ciascun utente un certificato con UPN come unica voce nell'estensione SAN. Configura la tua applicazione per autenticare l'utente tramite il loro certificato e ordina a ogni utente di installare il certificato nel proprio keystore con una chiave privata non esportabile (in Windows CAPI, questa è una casella di controllo; in JKS, è automatica; come FF o Chrome lo fanno su piattaforme non Windows).

Poiché solo il detentore della chiave privata può ottenere l'accesso, si è dimostrato essere la persona registrata, o che la persona on-record era sciatta con la protezione della propria chiave privata. Revoca significa che la tua applicazione può vedere se qualcuno è stato disabilitato molto facilmente, solo tramite la richiesta OCSP. La coppia di chiavi RSA è più potente di qualsiasi password e non è necessario memorizzare la propria chiave privata o alcuna forma o derivazione della propria password, pertanto l'attacco dell'utente non ottiene un accesso avversario ai propri utenti. Le date di scadenza incorporate indicano un meccanismo di rotazione delle password forzato efficace.

Fornire un modo semplice per un utente di richiedere la revoca e la sostituzione.

    
risposta data 27.11.2014 - 17:28
fonte
-1

Ci sono alcuni modi per identificare chi sta commentando. Puoi rendere le persone collegate account di social media, inserire indirizzi email e altro ancora.

    
risposta data 11.07.2014 - 20:41
fonte

Leggi altre domande sui tag