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 Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Testdatengeneratoren als Microservices mit Docker

    02.11.2019

    Ich habe die verschiedenen Testdatengeneratoren mittels Microservices über HTTP zugänglich gemacht, um sie unabhängig von der verwendeten Programmiersprache und/ oder Version (Java 11) verwenden zu können.

    Weiterlesen...

Neueste Artikel

  • Gif-Animationen in Java

    Nachdem ich neulich auf einen sehr interessanten Link gestoßen war, habe ich mich dafür interessiert, ob es möglich wäre - und falls ja: wie einfach - GIF-Animationen aus Java heraus zu erzeugen - und zwar mit Bordmitelln und ohne Zuhilfenahme externer Biblioheken

    Weiterlesen...
  • LinkCollections 2024 VIII

    Nach der letzten losen Zusammenstellung (für mich) interessanter Links aus den Tiefen des Internet von 2024 folgt hier gleich die nächste:

    Weiterlesen...
  • Generator für syntaktisch korrekten Python Code

    Nachdem es nun bereits seit einiger Zeit ein wenig stiller um meine diversen Generatoren für Testdaten geworden ist, habe ich über den Feiertag in Thüringen einen neuen begonnen.

    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, muß 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 GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.