Sistema per l'autenticazione reciproca e la riservatezza

5

Sto cercando un protocollo in cui sia necessaria l'autenticazione reciproca tra client e server. Ad esempio il server dovrebbe connettersi solo a un particolare client. Questo è il client che dovrebbe autenticare il client e il client deve comunicare con il server. Inoltre, dopo questa operazione, tutte le comunicazioni devono essere crittografate.

Se SSL / TLS può fornire questo? Oppure esiste un metodo in cui il client può fornire la password per autenticarsi sul server.

Il mio requisito principale è che il server fornisca informazioni solo a un determinato cliente.

    
posta user2315 25.11.2011 - 19:13
fonte

2 risposte

6

Ci sono due modi per ottenere l'autenticazione reciproca all'interno di SSL / TLS:

  • Utilizza i certificati. Il server presenta la sua chiave pubblica all'interno di un certificato, come è consuetudine; il client convalida il certificato del server relativamente ad una CA principale che il client conosce in anticipo (questa parte è ciò che comunemente si verifica con i siti Web HTTPS). Quindi il server può richiedere un certificato client , nel qual caso il client deve inviare un certificato ed eseguire una firma, che il server verificherà utilizzando la chiave pubblica nel certificato client. Il client viene quindi autenticato con qualsiasi "nome" scritto in questo certificato. Questo è descritto nelle sezioni 7.4.6 e 7.4.8 dello standard TLS .

  • Utilizza SRP . Questo è un protocollo di scambio di chiavi autenticate con password in cui il client e il server si autenticano reciprocamente attraverso la conoscenza di un segreto condiviso . Ciò che è decisamente interessante su PAKE in generale, e SRP in particolare, è che lo schema è strong anche quando il segreto condiviso è di bassa entropia (diciamo, questa è una "password"), perché resiste ai tentativi di dizionario offline attacchi : in parole semplici, il protocollo è tale che se un utente malintenzionato vuole "provare" una potenziale password, deve interagire con il server o il client in qualche modo, e deve farlo per ogni singolo tentativo. L'utente malintenzionato non ottiene mai informazioni sufficienti per controllare solo le password sulle proprie macchine.

SRP evita tutte le torbide attività dei certificati. Sfortunatamente, SRP non è ancora ampiamente supportato; GnuTLS è una libreria opensource che implementa server e client SSL / TLS e supporta SRP.

    
risposta data 25.11.2011 - 21:32
fonte
3

SSL / TLS fornirà questo e sarebbe probabilmente il modo più semplice per far funzionare l'autenticazione reciproca. Questo viene fatto usando i certificati client. Tuttavia, senza sapere quale software per server e browser, non potrei indicarti la direzione giusta per l'installazione. Ho trovato queste informazioni che trattano di Apache .

    
risposta data 25.11.2011 - 20:31
fonte