it-swarm.com.de

Was ist der Unterschied zwischen SSL- und X.509-Zertifikaten?

Ich habe openssl verwendet, um ein X.509-Zertifikat zu erstellen, aber ich verstehe die Beziehung zwischen einem X.509- und einem SSL-Zertifikat nicht ganz. Sind sie gleich? Ist ein SSL-Zertifikat nur ein X.509-Zertifikat, das für SSL verwendet wird?

47
vernomcrp

SSL ist bei weitem die größte Verwendung von X.509-Zertifikaten, viele Leute verwenden die Begriffe austauschbar. Sie sind jedoch nicht gleich; Ein "SSL-Zertifikat" ist ein X.509-Zertifikat mit erweiterter Schlüsselverwendung: Serverauthentifizierung (1.3.6.1.5.5.7.3.1).

Andere "übliche" Arten von X.509-Zertifikaten sind die Clientauthentifizierung (1.3.6.1.5.5.7.3.2), die Codesignatur (1.3.6.1.5.5.7.3.3) und eine Handvoll anderer werden für verschiedene Verschlüsselungs- und Verschlüsselungszwecke verwendet Authentifizierungsschemata.

49
Chris S

X.509-Zertifikate sind ein generisches, hochflexibles Format. SSL (jetzt als "TLS" bekannt) verwendet X.509-Zertifikate. Ein "SSL-Zertifikat" ist ein Zertifikat, dessen Inhalt es für SSL verwendbar macht (normalerweise für einen SSL-Server ).

Insbesondere in den meisten SSL-Anwendungen möchte der Client den beabsichtigten Servernamen im Zertifikat sehen. In einem Webkontext (HTTPS) ist der "beabsichtigte Servername" derjenige, der in der URL angezeigt wird. Die vom Client durchgeführten Prüfungen sind in RFC 2818 (Abschnitt 3.1) beschrieben. Wenn ein Client und ein Server "SSL sprechen", vereinbaren sie außerdem die Verwendung kryptografischer Algorithmen, von denen einige die Verwendung des öffentlichen Schlüssels des Servers implizieren, wie er im Zertifikat angegeben ist. Wenn Client und Server beispielsweise eine Verschlüsselungssuite mit der Aufschrift "RSA-Schlüsselaustausch" auswählen, muss das Serverzertifikat einen öffentlichen RSA-Schlüssel enthalten und if Das Zertifikat enthält Erweiterungen, die die autorisierten Verwendungsmöglichkeiten dieses Schlüssels einschränken (z. B. die Erweiterung Key Usage). Diese Erweiterungen müssen dann die Verwendung der "Verschlüsselung" ermöglichen, da dies durch "RSA-Schlüsselaustausch" in SSL impliziert wird.

Andere Funktionen von Zertifikaten können die Verwendung für einen SSL-Server verbieten, wobei "Verbieten" bedeutet, dass "der Client kreischt und stammelt und dem Benutzer eine rote, beängstigende Warnung anzeigt". Beispielsweise kann ein Zertifikat eine Erweiterung Extended Key Usage Enthalten, in der die vollständige Liste der "Rollen" für die Entität aufgeführt ist, die es verwendet. Wenn die Erweiterung vorhanden ist, sollte sie "Serverauthentifizierung" oder den speziellen Indikator "Beliebige Verwendung" enthalten.

Es gibt viele Details, um die man sich kümmern muss. Kommerzielle Zertifizierungsstellen fassen das Ganze als "SSL-Zertifikat" zusammen, was wirklich bedeutet "ein X.509-Zertifikat, das für SSL alles koscher ist, alle Clients werden damit zufrieden sein".

27
Thomas Pornin