Perché un server anonimo non può richiedere un certificato client?

6

In TLS un server non anonimo può richiedere un certificato client corrispondente a determinati criteri. Tuttavia, è un errore fatale per un server anonimo richiedere un certificato client. C'è una buona ragione per questo?

A non-anonymous server can optionally request a certificate from the client, if appropriate for the selected cipher suite. This message, if sent, will immediately follow the ServerKeyExchange message (if it is sent; otherwise, this message follows the server's Certificate message).

[Further down...]

Note: It is a fatal handshake_failure alert for an anonymous server to request client authentication.

Parte pertinente della RFC TLS

    
posta ReyCharles 25.09.2016 - 11:09
fonte

4 risposte

4

Per rispondere a questa domanda, ritengo importante esaminare la definizione di ciò che è un cliente in base alle specifiche. Nel Glossario un cliente è definito come

The application entity that initiates a TLS connection to a server. This may or may not imply that the client initiated the underlying transport connection. The primary operational difference between the server and client is that the server is generally authenticated, while the client is only optionally authenticated.

Ciò significa che i server devono sempre essere autenticati e quindi i server non autenticati (o i server anonimi) non possono chiedere l'autenticazione del client. In altre parole, poiché il client sta iniziando la connessione TLS, il server dovrebbe autenticarsi sul client prima di autenticare il client. Penso che la lingua possa essere più chiara, quindi non c'è ambiguità.

Nel tuo commento hai menzionato l'inversione dei ruoli, quindi il server TCP diventa il client TLS e il client TCP diventa il server TLS. Questo è possibile usando una programmazione intelligente a livello di socket. Dai un'occhiata a STARTTLS che può essere utilizzato per aggiornare una connessione semplice a una connessione TLS in un modo standard. Netty è una libreria Java che fornisce un'implementazione di StartTLS .

    
risposta data 29.09.2016 - 23:55
fonte
0

La ragione di questo è piuttosto semplice. Lascia che ti prenda l'esempio di Tor e ti spieghi in dettaglio.

Supponiamo che il secondo salto effettuato dal messaggio dall'origine alla destinazione sia il server anonimo. Quindi può richiedere al certificato client solo il suo server precedente che non è il client.

Percorso del pacchetto in TOR, Source = > A = > B = > C = > Destinazione

Qui assumiamo che B sia il nostro server anonimo che sta richiedendo il suo certificato a source / client ma se fa la richiesta otterrà il certificato di Server / Sistema A ma non del client.

Questo è il motivo dell'errore fatale se il server anonimo chiede al client il suo certificato.

    
risposta data 03.10.2016 - 20:19
fonte
-1

Penso di poterti rispondere per te senza dettagli tecnici. Ti fideresti e dare qualcuno che non hai mai incontrato le chiavi della tua porta di casa? E la tua auto? E la tua password del telefono? Se la tua risposta era no, ora capisci la logica dietro quell'errore.

Suppongo che tu sia interessato ai dettagli comunque. Controlla la sezione "Autenticazione del certificato client nella stretta di mano SSL / TLS" di questo MSDN articolo per quello. Ha una buona grafica che illustra quella logica.

    
risposta data 02.10.2016 - 23:57
fonte
-1

Bene,

Per fornire comunicazioni sicure attraverso la rete, il server deve fornire il protocollo di comunicazione LDAPS su TLS per creare SSL e il server di directory.

Il server di directory supporta TLS / SSL per proteggere le comunicazioni tra i client LDAP e il server Directory Server, tra i server di directory vincolati da un accordo di replica.

Before the Directory Server can be set to run in TLS/SSL, server and CA certificates must be properly configured in the Directory Server. If a server certificate has already been generated for the Directory Server instance and the issuing certificate authority (CA) is already trusted by the Directory Server, begin setting up TLS/SSL.

In altre parole.

Dovrai creare certificati server directory

    
risposta data 03.10.2016 - 06:24
fonte

Leggi altre domande sui tag