Attribute und Custom Extensions in X.509v3 Zertifikaten

vorhergehende Artikel in: PKI-X.509-CA Linux Security
11.12.2022

Wie bereits im letzten Artikel zu diesem Thema angedeutet kann man in X.509 Zertifikate der Version 3 beliebige Daten einbetten.

Dabei ist es so, dass es sich dabei nicht um flache Daten mit Elementardatentypen wie IA5String, *UTF8String* oder UTCTime handeln muss. Es ist ebenso möglich, strukturierte Datenstrukturen als Werte für Custom Extensions zu hinterlegen, die aus beliebig tief geschachtelten Sequences bestehen können.

Der vorhergehende Artikel beschreibt im Detail, wie man solche custom Extensions in Zertifikatsrequests (Certificate Signing Request oder CSR) bzw Zertifikaten integrieren kann wenn man zur Verwaltung der PKI OpenSSL benutzt.

Attribute folgen bei der Integration derselben Logik / denselben vorgestellten Mechanismen. Allerdings ist es so, dass Attribute lediglich der Information der CA dienen - sie haben keine direkte Auswirkung auf die letztlich ausgestellten Zertifikate. Das kann bei einzelnen CAs natürlich anders sein, dann sollte dies aber genauestens in den jeweiligen Certificate Practise Statements bzw. Certificate Policies dokumentiert und niedergelegt sein.

Es ist auf diese Weise wie gesagt möglich, beliebige Daten an die digitale Identität zu knüpfen - dabei ist es egal, ob es sich hierbei um menschenlesbare inhalte oder Binärdaten handelt - beides ist unbegrenzt möglich. Es sollte sich natürlich dabei imer um Daten handeln, bei denen garantiert ist, dass sie sich mindestens für die geplante Lebensdauer des Zertifikats nicht ändern! So wäre es etwa tatsächlich möglich, zum Beispiel ein Bild des zum Zertifikats gehörenden Subjects in das Zertifikat einzubetten. Ebenso wäre es möglich, biometrische Daten in das Zertifikat zu integrieren.

Wichtig ist in diesem Zusammenhang natürlich noch der Hinweis darauf, dass jedes Attribut und jede Custom Extension eine eigene OID haben muss, deren Bedeutung der CA, dem Subject (Ersteller des CSR) und allen Relying Parties bekannt sein muss und die sich natürlich nicht ändern darf.

Es existieren diverse Möglichkeiten, einen eigenen OID Arc zu reservieren. Es existieren auch solche Arcs, die explizit von der Reservierung von Entities ausgenommen wurden und in denen jeder nach Gutdünken OIDs definieren kann. Da aber dort keine Regelungen existieren, kann es bei Zertifikaten in der freien Wildbahn natürlich zu Kollisionen kommen.

Daher rate (nicht nur) ich dazu, sich bei der IANA einen eigenen Arc zu reservieren - der meinige beginnt mit 1.3.6.1.4.1.59452. Dabei ist 1.3.6.1.4.1 der Prefix für IANA-registered Private Enterprises und meine Private Enterprise Number demzufolge 59452. OIDs, die man in Zertifikaten findet und die mit diesem Prefix beginnen wurden also durch mich definiert - die Bedeutung kann bei mir erfragt werden, bzw. ist in den CPS von mir verwalteter PKIs zu finden.

Eigene Private Enterprise Number kann man sehr leicht kostenlos hier beantragen.

Alle Artikel rss Wochenübersicht Monatsübersicht Codeberg Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • xBrowserSync in Docker

    29.03.2021

    Nachdem ich schon längere Zeit nicht mehr über neue Dienste in meinem Docker-Zoo berichtet habe, habe ich in der vergangenen Woche wieder einmal einen Neuzugang begrüßen dürfen...

    Weiterlesen

Neueste Artikel

  • Asymmetrische Kryptographie

    Ich habe mich mit der Idee schon länger getragen: Nochmal einen Rundumschlag zu asymmetrischer Kryptographie zu machen. Dabei werde ich mich auf Demonstrationen der einzelnen Konzepte und Operationen mit Beispielcode konzentrieren und zu jedem der vorgestellten Konzepte mehr oder weniger ausführlich bezüglich der Einsatzszenarien und Vor- und Nachteile Stellung beziehen

    Weiterlesen
  • Windows? Nur noch gegen Bezahlung!

    Ich habe mich nun völlig von Windows - der armseligen Ausrede für ein Computerbetriebssystem aus Redmond - abgenabelt

    Weiterlesen
  • Vergleich Analoger und Digitaler Identitäten

    Eine Präsentation zum besseren Verständnis der Konzepte hinter digitalen Identitäten

    Aktualisierung vom 16. März 2025

    Aktualisierung der Präsentation mit einem Beispiel aus einem Film der 1980er Jahre und Betonung des Fakts, dass das Subjekt überhaupt nicht bemerken muss, dass eine Identität erstellt wird...

    Aktualisierung vom 17. August 2025

    Ein weiteres Beispiel wurde hinzugefügt.

    Aktualisierung vom 30. März 2026

    Aktualisierung der Präsentation: Erläuterung der Möglichkeit, mehr als ein Zertifikat für dasselbe Schlüsselpaar auszustellen und Exkurs zu Transport Layer Security als Beispiel der Forderung des Vorweisens bestimmter Arten digitaler Identitäten.
    Weiterlesen

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen Codeberg-Repositories findet man hier.