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

  • OAuth und OTP

    16.02.2020

    Wie bereits beschrieben will ich mich demnächst näher mit OAuth befassen...

    Weiterlesen...

Neueste Artikel

  • Split von Filesets in Apache ANT

    Ich musste neulich darüber nachdenken, eine Parallelisierung für einen meiner ANT-Tasks in meinem Static Site Generator einzubauen.

    Weiterlesen
  • Ein Doclet zur Erzeugung von DocBook aus Javadoc

    Ich habe mich mit der Idee zu diesem Projekt Monate abgequält - hätte ich gewusst, was die eigentliche Implementierung für Qualen verursachen würde, hätte ich sie wahrscheinlich eingestampft.

    Weiterlesen
  • Motion JPEG Erzeugung aus Java heraus

    Da ich mich in den letzten Wochen wieder einmal mit Javas Sicherheitsmechanismen und dem Erzeugen von Animationen beschäftigt habe, habe ich den Entschluss gefasst, die bisher mittels JMF AVIs in dWb+ zu erstetzen - nur wodurch?

    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.