Zusammenfassung

  • Eine X.509-v3-Erweiterung besteht aus Objektbezeichner, kodiertem Wert und dem standardmäßig falschen Boolean critical. Die OID benennt die Semantik, der Wert trägt Aussage oder Grenze, das Flag bestimmt die Folge fehlender Verarbeitungskompetenz.
  • Unbekannte nichtkritische Erweiterungen dürfen ignoriert werden. Eine unbekannte oder nicht verarbeitbare kritische Erweiterung erzwingt Ablehnung; erkannte Erweiterungen müssen unabhängig vom Flag verarbeitet werden.
  • Das Verfahren ließ das äußere Zertifikatsformat stabil, während neue Regeln hinzukamen. Es machte aber den Preis sichtbar: Reichweite zu Altsoftware kann die Durchsetzung neuer Semantik kosten; verpflichtende Semantik kostet Kompatibilität mit unfähigen Validatoren.

Die Signatur schützte Bytes, nicht das Verständnis des Empfängers

Eine Zertifizierungsstelle ergänzt eine neue Beschränkung. Ein älterer Validator kann die Signatur prüfen und feststellen, dass der Aussteller genau diese Bytes geschützt hat. Doch seine Software kennt die OID nicht. Sie besitzt weder den Decoder für den Wert noch die Logik, die dessen Wirkung auf den Zertifikatspfad berechnet.

Die Kryptografie hat damit ihre Aufgabe erfüllt. Offen bleibt eine semantische Lücke. Ignoriert das alte System die Beschränkung, kann es mehr Befugnis anerkennen, als der Aussteller gewähren wollte. Lehnt es dagegen jede Neuerung ab, zerstört schon eine folgenlose Zusatzinformation die Rückwärtskompatibilität.

Das in RFC 1422 beschriebene Privacy Enhanced Mail arbeitete noch mit der starreren Zertifikatswelt früher X.509-Versionen. RFC 2459 erklärte später, warum v1 und v2 für zusätzliche Identitäts- und Beschränkungsinformationen nicht ausreichten. Die 1996 vollendete Version 3 führte ein Erweiterungsfeld ein, dessen Elemente Standards oder Organisationen definieren konnten.

Damit war Platz für neue Bedeutung geschaffen. Noch fehlte die gemeinsame Regel für einen Leser, dem diese Bedeutung unbekannt blieb.

Drei Bestandteile trennten Benennung, Behauptung und Pflicht

RFC 5280 beschreibt die Erweiterung als Folge aus extnID, critical und extnValue: eine Objektkennung, ein Boolean mit dem Vorgabewert FALSE und ein OCTET STRING mit dem kodierten Erweiterungswert.

Die OID verweist auf eine Definition. Ein Parser muss die Bedeutung nicht aus den Bytes erraten. Der Wert enthält Namen, Nutzungszwecke, Pfadlängen, Namensräume oder Richtlinien. Das Critical-Flag erklärt nichts davon. Es beantwortet, ob ein Zertifikat akzeptabel bleibt, wenn der Empfänger diese Definition nicht anwenden kann.

Alle drei Teile liegen im signierten TBSCertificate. Wer nachträglich aus TRUE ein FALSE macht, bricht die Signatur ebenso wie bei einer Änderung des Werts. Der Aussteller signiert also auch die Pflicht, die neue Semantik zu verstehen. Die Signatur beweist jedoch weder deren sachliche Richtigkeit noch das Vorhandensein passender Software beim Empfänger.

RFC 5280 verbietet zudem, dieselbe Erweiterungs-OID in einem Zertifikat mehrfach zu verwenden. Der Validator soll keine widersprüchlichen Kopien nach Reihenfolge auflösen. Erweiterbarkeit bleibt eine typisierte Menge und wird nicht zur versteckten Überschreibungslogik.

Nichtkritisch war keine Erlaubnis zum bewussten Wegsehen

Die Verarbeitungsregel kennt drei Fälle. Eine unbekannte nichtkritische Erweiterung darf übersprungen werden. Eine unbekannte kritische Erweiterung führt zur Ablehnung; dasselbe gilt, wenn ihre Informationen nicht verarbeitet werden können. Eine erkannte Erweiterung muss dagegen immer verarbeitet werden, gleichgültig ob ihr Flag wahr oder falsch ist.

Gerade der dritte Fall korrigiert eine verbreitete Fehlübersetzung. Nichtkritisch bedeutet nicht bedeutungslos, dekorativ oder optional für fähige Software. Das Flag erlaubt Unkenntnis, nicht vorsätzliche Nichtbeachtung.

Kritisch bedeutet ebenso wenig „zuerst ausführen“. Es ist keine Rangfolge, stärkt weder Schlüssel noch Signatur und bestätigt keine Aussage des Ausstellers. Es fügt nur eine Akzeptanzbedingung hinzu: Ohne die Fähigkeit, die signierte Semantik einzuhalten, darf der Pfad nicht gelten.

Aus einem unsichtbaren Kompatibilitätsproblem wird so eine nachweisbare Grenze. Ein Validator muss eine unbekannte OID weder wohlwollend deuten noch teilweise nachbilden. Innerhalb des jeweiligen Profils hat der Aussteller entschieden und signiert, ob Unwissen zulässig ist.

Der Preis einer Migration ließ sich nicht auf beide Seiten vermeiden

Eine neue Erweiterung kann nützliche Zusatzinformation liefern, ohne die Zertifikatsbefugnis einzuschränken. Als nichtkritisch markiert erreicht sie neue Systeme, während alte Systeme mit der bisherigen Bedeutung fortfahren. Der Funktionsumfang unterscheidet sich, die sichere Akzeptanzgrenze muss es nicht.

Bei einer zwingenden Beschränkung kippt die Rechnung. Ist sie nichtkritisch, darf ein alter Validator sie ignorieren. Das Zertifikat bleibt weithin nutzbar, aber die neue Regel bindet gerade die alten Teilnehmer nicht. Eine signierte Absicht ist noch keine universelle Durchsetzung.

Als kritische Erweiterung erhält die Beschränkung Vorrang vor Reichweite. Unfähige Clients fallen aus, können aber keine Befugnis gewähren, ohne deren Grenze zu verstehen. RFC 5280 warnt, dass die allgemeine Verwendung kritischer Erweiterungen die Interoperabilität beeinträchtigen kann. Diese Warnung benennt eine Einführungsaufgabe; sie erklärt die Pflicht nicht für entbehrlich.

Das eine Bit ordnet folglich Migrationskosten zu. Der Aussteller bestimmt, wann alte Interpretation ungenügend ist. Implementierer bestimmen den unterstützten OID-Satz. Betreiber bestimmen Update- und Zertifikatswechsel. Das Format verbirgt fehlende Abstimmung nicht hinter einer gültigen Signatur.

Nummernressourcen und TLS zogen die Kompatibilitätsgrenze verschieden

RFC 3779 definierte Erweiterungen für IP-Adressblöcke und AS-Nummern und empfahl, sie kritisch zu markieren. Wer ein solches Ressourcenzertifikat für seinen vorgesehenen Zweck verwendet, muss verstehen, welche Ressourcen das Nutzungsrecht tatsächlich umfasst. Eine gültige Signatur ohne diese Reichweite beantwortet die betriebliche Frage nicht.

RFC 7633 wählte für TLS Feature die andere Voreinstellung. Die Erweiterung sollte nicht kritisch sein, weil ältere Validatoren sonst das gesamte Zertifikat zurückweisen. Kritikalität bleibt möglich, wenn genau dieser Ausschluss beabsichtigt ist; sie soll nicht als unbeabsichtigte Nebenwirkung einer neuen Funktion auftreten.

Die Profile widersprechen sich nicht. Bei Nummernressourcen war Verständnis Teil des Zertifikatszwecks. Bei TLS Feature durfte fähige Software die neue Semantik anwenden, ohne jeden älteren Empfänger auszuschließen. Beide Fälle nutzen dasselbe Bit, um eine andere Migrationsentscheidung ehrlich zu kodieren.

Ein leeres subject machte den alternativen Namen unverzichtbar

subjectAltName zeigt, dass Kritikalität aus dem konkreten Zertifikat folgt. RFC 5280 erlaubt ein leeres herkömmliches subject, wenn die gesamte Identität des Subjekts in dieser Erweiterung liegt. Dann muss subjectAltName kritisch sein.

Ein alter Validator dürfte sonst das einzige Identitätsfeld übergehen und ein Zertifikat akzeptieren, dessen Subjekt er überhaupt nicht verarbeitet hat. Die Erweiterung ist hier keine Ergänzung. Sie ist der einzige Ort der Bindung zwischen Schlüssel und Identität; Unkenntnis muss stoppen.

Ist subject nicht leer, sollen konforme Aussteller subjectAltName nichtkritisch kennzeichnen. Alte Software hat dann weiterhin eine Identität im vertrauten Feld. Software, die die Erweiterung kennt, muss deren Namen dennoch verarbeiten.

Dieselbe OID kann also je nach restlichem Zertifikat unterschiedliche Kritikalität tragen. Das Flag ist kein dauerhafter Gefahrenrang eines Erweiterungstyps. Es sagt, ob dieses Zertifikat ohne dessen Bedeutung noch sicher interpretierbar ist.

CA-Beschränkungen begrenzten abgeleitete Autorität

basicConstraints kennzeichnet eine Zertifizierungsstelle und kann die Tiefe weiterer untergeordneter CAs begrenzen. Bei einem konformen CA-Zertifikat, dessen Schlüssel Zertifikatssignaturen prüft, muss die Erweiterung vorhanden und kritisch sein.

Ohne ihr Verständnis könnte ein Validator einem Endentitätszertifikat Ausstellerbefugnis geben oder eine Pfadlängengrenze verlieren. Die Ablehnung schützt nicht nur das aktuelle Zertifikat, sondern alle Nachkommen, die daraus Autorität ableiten würden.

nameConstraints definiert erlaubte und ausgeschlossene Namens-Teilbäume für spätere Zertifikate. Konforme CAs müssen die Erweiterung kritisch markieren. Trifft eine Anwendung auf eine betroffene Namensform, die sie nicht verarbeiten kann, muss sie ablehnen. Die unbekannte Form als ausgenommen zu behandeln, würde die Delegation heimlich erweitern.

Auch policyConstraints muss kritisch sein. Es kann eine ausdrückliche Zertifikatsrichtlinie verlangen oder Policy Mapping nach einer bestimmten Tiefe unterbinden. Ignorieren ändert die Bedeutung des ganzen Pfades.

Andere Erweiterungen sollen oder müssen nichtkritisch sein. Sicherheit lässt sich nicht durch möglichst viele wahre Flags maximieren. Entscheidend ist, ob Unkenntnis die Akzeptanz semantisch verändert und welche Regel das jeweilige Erweiterungsprofil festlegt.

Pfadvalidierung führte eine Liste offener Pflichten

Ein Zertifikatspfad ist mehr als eine Folge gültiger Signaturen. Vom Vertrauensanker aus verarbeitet der Validator Laufzeiten, Namen, Verwendungen, CA-Befugnis, Pfadlänge und Richtlinien. Eine Erweiterung in einem Zwischenzertifikat kann sämtliche darunterliegenden Zertifikate begrenzen.

Das Verfahren in RFC 5280 macht kritische Erweiterungen zum Teil des Urteils. Bekannte Regeln verarbeiten die zugehörigen Erweiterungen. Bleibt eine unbekannte kritische Erweiterung übrig, kann der Pfad nicht erfolgreich sein. Sie ist eine unerfüllte signierte Bedingung, kein Hinweis für spätere Mutmaßungen der Anwendung.

Die OID in einer lokalen Tabelle zu kennen genügt nicht. Ein Wert kann falsch kodiert sein, eine nicht unterstützte Namensform verwenden oder eine abgeschaltete Funktion verlangen. Die Regel erfasst deshalb auch Informationen, die nicht verarbeitet werden können. Namenskenntnis darf sich nicht als semantische Fähigkeit ausgeben.

Auch ein erfolgreicher Pfad hat begrenzte Aussagekraft. Er erfüllt den Algorithmus mit den gewählten Vertrauensankern und lokalen Eingaben. Er beweist weder die Redlichkeit des Subjekts noch perfekte Prüfung durch den Aussteller, vollständige Sperrinformationen oder die Zulässigkeit einer konkreten Geschäftshandlung. Die Anwendung entscheidet weiter.

Das äußere Gefäß blieb, während Profile reiften

RFC 3280 ersetzte RFC 2459 im Jahr 2002, RFC 5280 wiederum RFC 3280 im Jahr 2008. Einzelne Definitionen und Critical-Empfehlungen – auch für Richtlinien – entwickelten sich. Der generische Behälter aus OID, Boolean und Wert blieb erkennbar.

Eine neue Beschränkung benötigte kein neues oberstes Zertifikatsfeld. Alte Parser konnten unbekannte nichtkritische Erweiterungen passieren lassen. Für zwingende neue Bedeutung gab es eine gemeinsame Ablehnungsregel statt produktspezifischer Vermutung.

Die stabile Syntax beseitigte aber keine Einführungsschuld. Wer kritische Erweiterungen breit ausstellt, braucht Unterstützung in allen relevanten Validatoren oder muss Ablehnungen hinnehmen. Wer eine Beschränkung nichtkritisch ausstellt, kann nicht behaupten, alte Systeme hätten sie durchgesetzt. Softwareverteilung und Zertifikatsaustausch bleiben erforderlich.

RFC 9618 bestätigte 2024 den Vertrag für die Policy-Validierung. Ist diese Funktion deaktiviert, müssen kritische Policy-Erweiterungen als unerkannt gelten und zur Ablehnung führen. Ein abgeschaltetes Teilsystem hat seine Bedingungen nicht erfolgreich verarbeitet.

Das ist keine Aussage über heutige Marktanteile. Es zeigt die fortbestehende Logik: Eine Implementierung darf auf eine Funktion verzichten, aber nicht auf die Ablehnung eines Zertifikats, das diese Funktion zur Annahmebedingung macht.

Das Flag bürgte nie für die Wahrheit des Werts

Ein Aussteller kann eine falsche Beschränkung signieren oder sie dem falschen Zertifikat hinzufügen. Ein Pfad kann zu einem ungeeigneten Anker führen; Sperrinformation kann fehlen. Critical repariert keine dieser Schwächen.

Auch die Registrierung einer OID erzwingt kein Vertrauen. Der Namensraum verhindert Bedeutungszusammenstöße; ein Standard beschreibt gemeinsame Verarbeitung. Welche Software, Anker und Anwendungsbefugnisse gelten, entscheidet weiterhin die vertrauende Seite.

Der historische Beitrag war enger und gerade deshalb dauerhaft. X.509 v3 erlaubte, nicht nur neue Bedeutung zu signieren, sondern auch die verlangte Reaktion eines Empfängers, der sie nicht versteht. Bei einer kritischen Erweiterung wurde Unwissen vom internen Softwaredetail zum Validierungsfehler vor der Befugnisvergabe.

Quellen und Grenzen der Evidenz

Den frühen Ausgangspunkt dokumentiert RFC 1422. Die Entwicklung der Internetprofile steht in RFC 2459, RFC 3280 und RFC 5280. RFC 3779 und RFC 7633 zeigen gegensätzliche, bewusst gewählte Kompatibilitätsgrenzen; RFC 9618 liefert das moderne Policy-Update. Diese Quellen belegen Format und Sollverhalten, nicht heutige Produktunterstützung, Konformität, Zertifikatsbestände oder Fehlerhäufigkeit.