Perché è richiesto un certificato CA per i client EAP-TLS?

8

Quando si impostano i client con EPA-TLS WPA2, la maggior parte dei client (ad esempio: il mio telefono, il mio computer) richiede sia una coppia di chiavi pubblica / privata client (per ovvi motivi) sia un certificato dell'autorità di certificazione.

È questo secondo parametro per il quale non sono sicuro dell'uso. La mia attuale configurazione è la seguente:

.
└── root-ca
    ├── wifi-client-ca
    │   └── client1-client-cert
    └── wifi-server-cert

Ho una singola CA radice autofirmata ( root-ca ) che si dirama in basso. Il mio server RADIUS utilizza wifi-server-cert come certificato SSL e utilizza l'autorità di certificazione wifi-client-ca per la convalida dei certificati client.

Uso i certificati di catena nella distribuzione ovunque, sia per i componenti dei certificati client che server.

Non ho avuto problemi a connettermi usando client1-client-cert e wifi-client-ca sulle mie macchine Ubuntu, ma non sono stato in grado di connettermi su Android usando questi stessi certificati. Sto pensando che il problema sta nel fatto che Android non sta scalando correttamente la catena di certificati.

Questo si divide in due domande simili:

  1. Perché è richiesto un certificato CA per i client EAP-TLS / che cosa fa?
  2. Quale certificato CA dovrebbe essere usato sui miei clienti, il certificato root-ca (che firma direttamente il wifi-server-cert ) o il wifi-client-ca ?
posta Naftuli Kay 02.01.2014 - 03:58
fonte

1 risposta

11

EAP-TLS racchiude in realtà un handshake SSL / TLS, in cui sia server che client si scambiano reciprocamente un certificato. Questo ha le seguenti proprietà:

  • Quando il server invia un certificato , invia effettivamente una catena di certificati , inclusa la CA che l'ha emessa, e la CA sopra di essa, e così via, fino a la radice (la radice stessa può essere inviata, ma questa è facoltativa).
  • Allo stesso modo, quando un client invia un certificato, è anche parte della catena di certificati.
  • Il client convalida la catena del server, il server convalida la catena del cliente.

Pertanto, sul lato client, con le tue notazioni:

  • Il client deve conoscere wifi-client-ca perché deve inviarlo come parte della sua "catena client" al server.
  • Il client deve conoscere e fiducia root-ca per poter convalidare il certificato del server (questo è fondamentale per la sicurezza: questo protegge il client dal parlare con un punto di accesso falso).

Alcuni clienti potrebbero essere convinti di fidarsi direttamente di wifi-server-cert , ma non tutti consentono una tale fiducia diretta e significherebbe problemi quando scade il certificato.

Potrebbe essere illuminante considerare quanto segue: il certificato del client è per il server, non per il client stesso; quindi, il cliente non ha bisogno di fidarsi del proprio certificato. In modo generico, la CA radice per il certificato del server e la CA radice per i certificati client possono essere distinti e non correlati tra loro. Tuttavia, il client deve sapere (ma non necessariamente fidarsi ) della catena per il proprio certificato per inviarlo al server, come richiesto da SSL / TLS.

    
risposta data 02.01.2014 - 17:41
fonte