Zertifikate für den öffentlichen X.509-Schlüssel

Die Kryptografie für öffentliche Schlüssel basiert auf einem öffentlichen und einem privaten Schlüsselpaar, um Inhalte zu verschlüsseln und zu entschlüsseln. Die Schlüssel sind mathematisch miteinander verbunden, und inhalte, die mit einem der Schlüssel verschlüsselt werden, können nur mithilfe des anderen entschlüsselt werden. Der private Schlüssel wird geheim gehalten. Der öffentliche Schlüssel wird in der Regel in ein binäres Zertifikat eingebettet, und das Zertifikat wird in einer Datenbank veröffentlicht, auf die alle autorisierten Benutzer zugreifen können.

Der PKI-Standard (Public Key Infrastructure) von X.509 identifiziert die Anforderungen an robuste Zertifikate für öffentliche Schlüssel. Ein Zertifikat ist eine signierte Datenstruktur, die einen öffentlichen Schlüssel an eine Person, einen Computer oder organization bindet. Zertifikate werden von Zertifizierungsstellen ausgestellt. Alle, die an der Sicherung der Kommunikation mit einem öffentlichen Schlüssel arbeiten, verlassen sich auf die Zertifizierungsstelle, um die Identitäten der Personen, Systeme oder Entitäten, für die sie Zertifikate ausstellt, angemessen zu überprüfen. Der Grad der Überprüfung hängt in der Regel von der für die Transaktion erforderlichen Sicherheitsniveau ab. Wenn die Zertifizierungsstelle die Identität des Anfordernden entsprechend überprüfen kann, signiert (verschlüsselt), codiert und stellt das Zertifikat aus.

Ein Zertifikat ist eine signierte Datenstruktur, die einen öffentlichen Schlüssel an eine Entität bindet. Die Syntax Abstrakte Syntax Notation 1 (ASN.1) für das X.509-Zertifikat der Version 3 wird im folgenden Beispiel gezeigt.

-- X.509 signed certificate 

SignedContent ::= SEQUENCE 
{
  certificate         CertificateToBeSigned,
  algorithm           Object Identifier,
  signature           BITSTRING
}
 
-- X.509 certificate to be signed

CertificateToBeSigned ::= SEQUENCE 
{
  version                 [0] CertificateVersion DEFAULT v1,
  serialNumber            CertificateSerialNumber,
  signature               AlgorithmIdentifier,
  issuer                  Name
  validity                Validity,
  subject                 Name
  subjectPublicKeyInfo    SubjectPublicKeyInfo,
  issuerUniqueIdentifier  [1] IMPLICIT UniqueIdentifier OPTIONAL,
  subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL,
  extensions              [3] Extensions OPTIONAL
}

Seit seiner Gründung im Jahr 1998 haben sich drei Versionen des X.509-Zertifikatstandards für öffentliche Schlüssel weiterentwickelt. Wie in der folgenden Abbildung gezeigt, hat jede aufeinanderfolgende Version der Datenstruktur die Felder beibehalten, die in den vorherigen Versionen vorhanden waren, und weitere hinzugefügt.

x.509-Zertifikate, Versionen 1, 2 und 3

In den folgenden Themen werden die verfügbaren Felder ausführlicher erläutert:

Public Key-Infrastruktur