it-swarm.dev

Qual è la differenza tra i certificati SSL e X.509?

Ho usato openssl per creare un certificato X.509 ma non capisco bene la relazione tra un X.509 e un certificato SSL. Sono gli stessi? Un certificato SSL è solo un certificato X.509 utilizzato per SSL?

47
vernomcrp

SSL è di gran lunga il più grande uso di certificati X.509, molte persone usano i termini in modo intercambiabile. Non sono uguali comunque; un "certificato SSL" è un certificato X.509 con utilizzo chiave esteso: autenticazione server (1.3.6.1.5.5.7.3.1).

Altri tipi "comuni" di certificati X.509 sono l'autenticazione client (1.3.6.1.5.5.7.3.2), la firma del codice (1.3.6.1.5.5.7.3.3) e una manciata di altri sono utilizzati per varie crittografie e schemi di autenticazione.

49
Chris S

certificati X.509 sono un formato generico, altamente flessibile. SSL (ora noto come "TLS") utilizza i certificati X.509. Un "certificato SSL" è un certificato i cui contenuti lo rendono utilizzabile per SSL (di solito, utilizzabile per un server SSL ).

In particolare, nella maggior parte degli utilizzi di SSL, il client vorrà vedere il nome del server previsto nel certificato. In un contesto Web (HTTPS), il "nome server previsto" è quello che appare nell'URL; i controlli eseguiti dal cliente sono descritti in RFC 2818 (sezione 3.1) . Inoltre, quando un client e un server "parlano di SSL", si accordano sugli algoritmi crittografici da utilizzare, alcuni dei quali implicano l'uso della chiave pubblica del server, come appare nel certificato; ad esempio, se client e server scelgono una suite di cifratura che dice "Scambio di chiavi RSA", il certificato del server deve contenere una chiave pubblica RSA e se il certificato contiene estensioni che limitano i modi autorizzati di utilizzare quella chiave (ad es. Key Usage extension), quindi queste estensioni devono consentire l'uso della "crittografia" perché questo è implicito nello "scambio di chiavi RSA" in SSL.

Altre caratteristiche dei certificati possono vietare l'utilizzo per un server SSL, dove "vietare" significa "il client urlerà e balbetterà e visualizzerà un avviso spaventoso rosso all'utente". Ad esempio, un certificato può contenere un Extended Key Usage estensione che elenca l'elenco esaustivo di "ruoli" per l'entità che lo utilizza; se l'estensione è presente, dovrebbe contenere "autenticazione del server" o l'indicatore speciale "qualsiasi utilizzo".

Ci sono molti dettagli di cui preoccuparsi. La CA commerciale riassume il tutto come "un certificato SSL", che significa in realtà "un certificato X.509 che è tutto kosher per SSL, tutti i clienti ne saranno soddisfatti".

27
Thomas Pornin