Certificato TLS / SSL - Utilizzo chiave e crittografia

4

Quindi guardo il certificato SSL di google.com e non capisco alcune cose:

Capiscoperfettamentechegarantiscel'identitàdelserverwebdiGoogle,manoncapiscocomeproviqualcosasullamiaidentitàalserverweb?

Inoltremichiedoilmotivopercuinonesisteunoscopo"Key Encipherment" o "Key Agreement" per questo certificato? Come può SSL eseguire uno scambio di chiavi / diffie helmann? La chiave RSA a 2048 bit (visibile nella scheda dei dettagli) è utilizzata per la crittografia?

    
posta netik 26.05.2016 - 15:24
fonte

1 risposta

5

... how it proves anything about my identity to the webserver?

Non è così. Dimostra solo l'identità del server per te, in modo che un uomo nel mezzo dell'attacco (dove qualcuno afferma di essere google.com) non sia possibile. Se è richiesta l'identificazione del cliente (in genere no), è possibile utilizzare i certificati client.

"Il certificato è inteso ... dimostra la tua identità" non significa che il certificato sia effettivamente utilizzato per questo scopo. Significa solo che il certificato può essere utilizzato per l'autenticazione del server ("identità di un computer remoto") e per l'autenticazione del client ("la tua identità"). Ma in questo caso viene utilizzato solo per l'autenticazione del server.

In realtà "la tua identità" è in realtà confusa perché non significa affatto la tua identità. Ciò significa che se possiedi questo certificato (che non lo fai), puoi utilizzarlo come certificato client per dimostrare la tua identità. Altri visualizzatori di certificati (Chrome su Linux) mostrano questo utilizzo chiave esteso in un modo meno confuso:

 TLS WWW Server Authentication (OID.1.3.6.1.5.5.7.3.1)
 TLS WWW Client Authentication (OID.1.3.6.1.5.5.7.3.2)

Also I'm wondering why there is no "Key Encipherment" or "Key Agreement" purpose for this certificate? Is the 2048 bit RSA key (visible under the details tab) used for encryption?

Il certificato che ottengo per google.com con Chrome non ha una chiave RSA ma è un certificato ECDSA con una chiave a 256 bit. Ma con alcune modifiche alle preferenze di cifratura posso anche ottenere il certificato RSA a 2048 bit.

Secondo Quali usi chiave sono richiesti per ogni metodo di scambio di chiavi? ha bisogno della firma digitale nel certificato ECDSA e ha questo. In base a questo Q & A avrebbe anche bisogno di "Key Encipherment" per cifrari come AES128-SHA (supportati da google). Ma il certificato a 2048 bit manca completamente l'uso delle chiavi, quindi in questo caso ci riferiamo a RFC 5280: 4.2.1.12. Utilizzo chiave esteso :

This extension indicates one or more purposes for which the certified public key may be used, in addition to or in place of the basic purposes indicated in the key usage extension.

Pertanto, se non viene fornito alcun utilizzo di chiave ma esteso l'uso delle chiavi, possiamo implicare l'utilizzo della chiave da questo. E nella stessa sezione della RFC si afferma quindi che serverAuth implica digitalSignature, keyEncipherment o keyAgreement. Pertanto abbiamo la chiave keyEncipherment anche se non è stata data esplicitamente.

A parte questo non vengono usate né le chiavi RSA né quelle ECDSA per la crittografia della connessione stessa, solo per l'autenticazione e con i codici all'interno dello scambio di chiavi. La crittografia del traffico viene eseguita con la crittografia simmetrica utilizzando una chiave creata all'interno dello scambio di chiavi. Vedi Come funziona SSL / TLS? per ulteriori dettagli.

    
risposta data 26.05.2016 - 15:44
fonte

Leggi altre domande sui tag