Autenticazione reciproca tramite certificati

0

Come vengono utilizzati i certificati digitali per abilitare la autenticazione reciproca tra due utenti? Supponiamo, in una banca, che i dipendenti debbano autenticarsi reciprocamente prima di trasmettere dati sensibili. In che modo un certificato digitale può essere utile in questo scenario?

    
posta Shravan Varun 27.11.2018 - 07:13
fonte

1 risposta

0

Quando una parte si autenticano utilizzando i certificati, dimostra essenzialmente che può utilizzare la chiave privata associata alla chiave pubblica nel certificato, poiché presuppone che la chiave privata sia segreta e sia nota solo al proprietario del certificato.

Per dimostrare l'accesso alla chiave privata, la parte che ha effettuato l'autenticazione firma una sfida che è almeno in parte determinata dal pari (per scoraggiare gli attacchi di replay). Il peer può quindi verificare la firma utilizzando la chiave pubblica all'interno del certificato pubblico.

Poiché una firma riuscita dimostra solo l'accesso alla chiave privata per un certificato specifico, il peer deve anche verificare che il certificato corrisponda alle sue aspettative, in genere che sia firmato da un'autorità di certificazione (CA) attendibile, abbia un argomento specifico , non è scaduto o revocato e ha le estensioni di utilizzo della chiave corrette.

All'interno di TLS solitamente viene eseguita solo l'autenticazione del server, la firma fa parte del messaggio ServerKeyExchange e viene eseguita su vari dati che includono anche il ClientHello.random determinato dal client. Il client richiede in genere che il nome host corretto corrisponda ai certificati server Subject Alternative Names (SAN) o (più vecchio e obsoleto) corrisponda ai soggetti del certificato CN.

Con l'autenticazione reciproca il server richiede anche al client di autenticarsi. Questo viene fatto usando il messaggio CertificateRequest . Questo messaggio può anche fornire un elenco di CA che il server è disposto ad accettare come emittente del certificato client in modo che l'applicazione client possa scegliere il certificato previsto. Se un cliente ha ricevuto questo CertificateRequest e ha un certificato client corrispondente, invierà un messaggio Certificate con questo certificato. Inoltre invierà un messaggio di CertificateVerify che include una firma creata con la chiave privata dei certificati client e che copre tutti i messaggi di handshake inviati fino ad ora - che includono il% diServerHello.random determinato dal server.

La precisione con cui il certificato client è convalidato e associato a un cliente specifico non è definita, ma è normale che qualsiasi certificato emesso da una CA specifica sia accettato e che il nome o l'e-mail del cliente vengano estratti dagli oggetti del certificato CN.

    
risposta data 27.11.2018 - 16:16
fonte

Leggi altre domande sui tag