Top-Fragen
Zeitleiste
Chat
Kontext

X.509

Standard zum Erstellen digitaler Zertifikate Aus Wikipedia, der freien Enzyklopädie

Remove ads

X.509 ist ein ITU-T-Standard für eine Public-Key-Infrastruktur zum Erstellen digitaler Zertifikate. Der Standard ist auch als ISO/IEC 9594-8 zuletzt im November 2020[1] aktualisiert worden. Der Standard spezifiziert die folgenden Datentypen: Public-Key-Zertifikat, Attributzertifikat, Certificate Revocation List (CRL) und Attribute Certificate Revocation List (ACRL). In der elektronischen Kommunikation finden X.509-Zertifikate Anwendung bei den TLS-Versionen diverser Übertragungsprotokolle, wie z. B. beim Abruf von Web-Seiten mit HTTPS oder zum Unterschreiben und Verschlüsseln von E-Mails nach dem S/MIME-Standard.

Remove ads

Geschichte

X.509 wurde erstmals 1988 veröffentlicht. Die Entwicklung von X.509 begann in Verbindung mit dem X.500-Standard, der nie vollständig implementiert wurde. X.509 setzt ein strikt hierarchisches System von vertrauenswürdigen Zertifizierungsstellen (englisch certificate authority, CA) voraus, die Zertifikate erteilen können. Dieses Prinzip steht im Gegensatz zum Web-of-Trust-Modell, welches einen Graphen und nicht nur einen Baum darstellt und bei dem jeder ein Zertifikat „unterschreiben“ und damit seine Echtheit beglaubigen kann (siehe z. B. OpenPGP).

Version 3 von X.509 (X.509v3) beinhaltet die Flexibilität, mit Profilen erweitert zu werden. Die IETF entwickelte das wichtigste Profil, PKIX Certificate and CRL Profile, kurz „PKIX“, im Rahmen des RFC 3280,[2] aktuell RFC 5280.[3] Der Begriff „X.509-Zertifikat“ bezieht sich meist darauf.

Remove ads

Zertifikate

Zusammenfassung
Kontext

Ein von einer Zertifizierungsstelle ausgestelltes digitales Zertifikat wird im X.509-System immer an einen „Distinguished Name“ oder einen „Alternative Name“ wie eine E-Mail-Adresse oder einen DNS-Eintrag gebunden.

Nahezu alle Webbrowser enthalten eine vorkonfigurierte Liste vertrauenswürdiger Zertifizierungsstellen, deren X.509-Zertifikaten der Browser vertraut. Die Mindestanforderungen an die Zertifizierungsstellen werden vom CA/Browser Forum herausgegeben. Umgangssprachlich wird häufig von SSL-Zertifikaten gesprochen.

X.509 beinhaltet außerdem einen Standard, mittels dessen Zertifikate seitens der Zertifizierungsstelle wieder ungültig gemacht werden können, wenn deren Sicherheit nicht mehr gegeben ist (z. B. nach dem öffentlichen Bekanntwerden des privaten Schlüssels für das Signieren von E-Mails). Die Zertifizierungsstelle kann hierfür ungültige Zertifikate in Zertifikatsperrlisten (certificate revocation list, kurz CRL) führen. Die automatische Überprüfung, ob ein Zertifikat inzwischen Teil einer Sperrliste ist, ist allerdings nicht in allen Programmen, die X.509-Zertifikate akzeptieren, standardmäßig aktiviert.

Struktur eines X.509-v3-Zertifikats

  • Zertifikat
    • Version
    • Seriennummer
    • Algorithmen-ID
    • Aussteller
    • Gültigkeit
      • von
      • bis
    • Zertifikatinhaber
    • Zertifikatinhaber-Schlüsselinformationen
      • Public-Key-Algorithmus
      • Public Key des Zertifikatinhabers
    • Eindeutige ID des Ausstellers (optional)
    • Eindeutige ID des Inhabers (optional)
    • Erweiterungen
  • Zertifikat-Signaturalgorithmus
  • Zertifikat-Signatur

Aussteller und Zertifikatinhaber werden jeweils durch eine Reihe von Attributen charakterisiert:

  • Gebräuchlicher Name (CN)
  • Organisation (O)
  • Organisationseinheit (OU)
  • Land/Region (C)
  • Bundesstaat (ST)
  • Ort (L)

Aussteller- und Inhaber-ID wurden in Version 2 eingeführt, Erweiterungen in Version 3.

Erweiterungen

Erweiterungen oder Extensions sind inzwischen ein sehr wichtiger Bestandteil eines Zertifikates geworden. Erweiterungen haben die folgende Unterstruktur:

  • Erweiterungs-ID
  • Flag (kritisch/unkritisch)
  • Wert

Jede Erweiterung hat eine spezifische ID. Die Flags dienen der schrittweisen Einführung einer neuen Erweiterung. So sind neue Erweiterungen zu Beginn als unkritisch markiert. Eine Implementierung, die auf eine unbekannte unkritische Erweiterung trifft, kann diese ignorieren. Wird eine Erweiterung mit der Zeit allerdings nach ausreichendem Testen auf kritisch gesetzt, so muss ein Zertifikat mit unbekannter kritischer Erweiterung als ungültig erachtet werden. Beispiele für Erweiterungen sind

  • KeyUsage: Gibt an, für welche Anwendung dieses Zertifikat ausgestellt wurde. Ein CA-Zertifikat muss hier bspw. keyCertSign und CRLsign eingetragen haben.
  • BasicConstraints: Transitivitätsvertrauen ist ohne diese Erweiterung unmöglich. BasicConstraints sind:
    • CA: Gibt an, ob das Zertifikat zu einer Zertifizierungsstelle gehört. In einer Zertifikatskette muss jedes Zertifikat, außer dem der letzten Instanz (des Users/Servers), als CA markiert sein.
    • PathLen: Gibt an, wie lang die Zertifikatskette maximal sein darf.

Dateinamenserweiterungen für Zertifikate

Übliche Dateinamenserweiterungen für X.509-Zertifikate sind:

  • .CERDER- oder Base64-kodiertes Zertifikat
  • .CRT – DER- oder Base64-kodiertes Zertifikat
  • .CSR – Base64-kodierte Zertifizierungsanfrage des öffentlichen Schlüssels (plus weitere Metadaten des Besitzers) an eine CA, umschlossen von „-----BEGIN CERTIFICATE REQUEST-----“ und „-----END CERTIFICATE REQUEST-----“
  • .DERDER-kodiertes Zertifikat
  • .P12PKCS#12, kann öffentliche Zertifikate und private Schlüssel (Kennwort-geschützt) enthalten.
  • .P7B – Siehe .P7C
  • .P7C – PKCS#7-signierte Datenstruktur ohne Dateninhalt, nur mit Zertifikat(en) oder Zertifikatsperrliste(n)
  • .PEMBase64-kodiertes Zertifikat, umschlossen von „-----BEGIN CERTIFICATE-----“ und „-----END CERTIFICATE-----“
  • .PFX – Siehe .P12

PKCS #7 ist ein Standard zum Signieren und Verschlüsseln von Daten. Da das Zertifikat gebraucht wird, um die signierten Daten zu verifizieren, kann es in der „SignedData“-Struktur untergebracht werden. Eine .P7C-Datei ist der Spezialfall einer Datei, die keine Daten zum Signieren enthält, sondern nur die „SignedData“-Struktur.

PKCS #12 entwickelte sich aus dem PFX-Standard (Personal inFormation eXchange) und wird benutzt, um öffentliche und private Schlüssel in einer gemeinsamen Datei auszutauschen.

Eine .PEM-Datei kann Zertifikate und/oder private Schlüssel enthalten, die von entsprechenden BEGIN/END-Zeilen umschlossen sind.

Remove ads

Beispiel für ein X.509-Zertifikat

Zusammenfassung
Kontext

Text-Darstellung eines nach X.509v3 (Version 3) aufgebauten digitalen Zertifikats der Domain anywhere.com. Das Zertifikat wurde mit den zwei verketteten openssl Befehlen

 echo "QUIT" | openssl s_client -showcerts -connect anywhere.com:443 2> /dev/null | openssl x509 -noout -text

ermittelt. Die Struktur basiert auf ASN.1.:

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            01:d9:ab:84:f1:85:d9:d3:a1:29:6a:b4:d1:f4:c7:a8
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = BE, O = GlobalSign nv-sa, CN = GlobalSign Atlas R3 DV TLS CA 2025 Q1
        Validity
            Not Before: Feb  5 17:25:12 2025 GMT
            Not After : Mar  9 17:25:11 2026 GMT
        Subject: CN = anywhere.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:b8:72:23:d4:d1:e1:77:08:f7:fe:d5:4e:ec:68:
                    22:36:f2:8c:b0:50:64:7b:44:84:a2:0d:2b:29:c4:
                    1b:db:37:c5:ed:65:7c:18:13:cb:1b:2f:db:38:62:
                    b4:6d:c6:67:b0:6b:f7:7e:41:e2:c0:58:de:b2:19:
                    ae:4a:84:8c:2c:80:a8:b6:ae:23:64:1f:ec:6d:83:
                    50:47:d3:8b:c9:dc:5b:31:7b:2f:0a:65:85:b7:18:
                    1c:85:5d:8b:93:14:04:71:88:59:eb:7b:c4:84:e6:
                    11:0d:80:44:70:02:b3:4e:54:44:76:57:bf:0f:41:
                    4d:16:02:38:e7:bb:04:60:2f:db:30:41:d3:bc:21:
                    29:38:98:bb:37:69:1c:49:32:e9:9b:87:e5:ff:c5:
                    d7:f7:1b:28:b0:d6:9c:fb:47:0c:a3:dd:bd:aa:09:
                    5e:ac:8a:66:df:96:33:cc:a8:c3:e6:e8:39:fc:c6:
                    be:7e:53:97:41:d9:71:07:e9:4d:6b:ca:9d:1a:8f:
                    ad:d7:39:33:ac:2f:b6:d7:68:5a:07:5f:f8:9f:22:
                    0a:55:21:93:d9:74:4c:37:bf:d9:e7:b1:67:a9:86:
                    69:3d:57:26:55:e9:6c:4e:3c:a7:03:12:00:29:85:
                    64:b7:9c:d4:2d:a7:53:c4:cc:1c:0f:52:c1:d5:7f:
                    ab:35
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Alternative Name: 
                DNS:anywhere.com
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage: 
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Subject Key Identifier: 
                C7:F6:A4:3D:8B:09:F6:FA:F4:1F:08:8D:3D:A5:7D:23:CC:10:80:BE
            X509v3 Certificate Policies: 
                Policy: 2.23.140.1.2.1
                Policy: 1.3.6.1.4.1.4146.10.1.3
                  CPS: https://www.globalsign.com/repository/
            X509v3 Basic Constraints: critical
                CA:FALSE
            Authority Information Access: 
                OCSP - URI:http://ocsp.globalsign.com/ca/gsatlasr3dvtlsca2025q1
                CA Issuers - URI:http://secure.globalsign.com/cacert/gsatlasr3dvtlsca2025q1.crt
            X509v3 Authority Key Identifier: 
                25:C4:28:11:E2:7D:9E:32:B1:21:4F:FB:7D:FF:E8:38:52:F1:92:E8
            X509v3 CRL Distribution Points: 
                Full Name:
                  URI:http://crl.globalsign.com/ca/gsatlasr3dvtlsca2025q1.crl
            CT Precertificate SCTs: 
                Signed Certificate Timestamp:
                    Version   : v1 (0x0)
                    Log ID    : 0E:57:94:BC:F3:AE:A9:3E:33:1B:2C:99:07:B3:F7:90:
                                DF:9B:C2:3D:71:32:25:DD:21:A9:25:AC:61:C5:4E:21
                    Timestamp : Feb  5 17:25:12.612 2025 GMT
                    Extensions: none
                    Signature : ecdsa-with-SHA256
                                30:45:02:20:42:21:61:45:57:87:E1:C1:96:49:BD:A2:
                                5E:53:CD:BA:2F:35:24:21:0B:C0:E8:C9:24:E5:16:DC:
                                E5:E0:C7:B0:02:21:00:8C:2D:55:C2:E3:43:34:D2:85:
                                B8:13:C2:87:B2:55:80:9A:84:90:F6:B1:70:1E:BA:C8:
                                6B:F1:F8:E0:0B:7C:63
                Signed Certificate Timestamp:
                    Version   : v1 (0x0)
                    Log ID    : CB:38:F7:15:89:7C:84:A1:44:5F:5B:C1:DD:FB:C9:6E:
                                F2:9A:59:CD:47:0A:69:05:85:B0:CB:14:C3:14:58:E7
                    Timestamp : Feb  5 17:25:12.628 2025 GMT
                    Extensions: none
                    Signature : ecdsa-with-SHA256
                                30:44:02:20:2F:9A:A5:00:8D:50:12:D9:F8:08:3F:90:
                                69:5E:A1:54:D5:A6:A6:2C:26:0E:0A:B4:1D:59:0F:28:
                                D2:CF:2B:39:02:20:5A:C8:3D:CC:F3:03:F2:32:F6:25:
                                01:37:91:16:BF:9F:1B:98:E4:93:55:07:3E:78:53:3F:
                                E7:4F:B1:01:5E:B2
                Signed Certificate Timestamp:
                    Version   : v1 (0x0)
                    Log ID    : 25:2F:94:C2:2B:29:E9:6E:9F:41:1A:72:07:2B:69:5C:
                                5B:52:FF:97:A9:0D:25:40:BB:FC:DC:51:EC:4D:EE:0B
                    Timestamp : Feb  5 17:25:13.459 2025 GMT
                    Extensions: none
                    Signature : ecdsa-with-SHA256
                                30:45:02:21:00:8A:F1:2D:CA:D0:6C:FB:89:14:0E:2B:
                                F9:F3:BF:2C:33:9C:04:73:E3:7C:A4:5C:40:21:13:D5:
                                E0:0D:4E:F6:AB:02:20:26:CB:5B:E5:7C:A2:A0:C8:CD:
                                7E:A5:96:8B:2D:54:41:C9:03:31:52:FF:A7:D3:28:56:
                                0A:6C:AC:96:E2:72:19
    Signature Algorithm: sha256WithRSAEncryption
    Signature Value:
        5a:8e:d3:8e:e9:89:cd:8a:bb:ef:f1:c6:b8:24:38:02:b5:f3:
        54:4d:50:0c:38:1b:4e:8e:b3:c2:d6:8b:1a:47:86:15:0a:ae:
        b0:ba:b9:c2:05:25:8e:4e:6b:e3:9a:64:1d:98:10:66:b0:ce:
        3b:ae:bc:da:0d:4c:b1:73:f6:ff:21:e1:b1:5e:a2:f8:fe:c3:
        14:44:16:b9:9d:cc:3d:1b:76:4e:f5:8c:27:ce:9a:5e:af:89:
        51:ab:38:75:2e:64:dd:68:bb:cc:b0:ae:08:7f:87:5a:dd:4c:
        43:b2:f1:1b:b2:6d:73:31:2c:b0:8f:64:cb:83:fb:92:b2:51:
        3a:66:51:29:8c:b5:ad:45:31:28:80:ac:cd:78:82:4b:ba:d0:
        0c:fd:b0:76:9b:fd:74:44:ee:82:d6:11:9f:27:f2:e0:73:c6:
        94:78:df:a9:a0:86:2f:f0:1a:b2:15:33:ad:66:a5:bc:05:63:
        5a:5e:3e:8e:46:41:da:c7:91:3f:f8:9f:d1:d1:2c:b9:b0:32:
        27:89:a2:ce:59:fa:a7:c0:f7:fc:91:79:9d:87:27:63:55:c0:
        08:5c:8c:52:b0:a9:fb:42:dc:6f:37:a1:d7:3c:67:91:bf:9d:
        ea:62:d2:70:c1:96:8c:1e:fa:d4:dd:d7:6e:dc:83:e9:92:68:
        95:3f:6b:20
Remove ads

Literatur

  • RFC: 2459 Internet X.509 Public Key Infrastructure Certificate and CRL Profile. (aktualisiert durch RFC 3280, englisch).
  • RFC: 3280 Internet X.509 Public Key Infrastructure, Certificate and CRL Profile. (aktualisiert durch RFC 5280, englisch).
  • RFC: 5280 Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile. (englisch).

Einzelnachweise

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads