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

  • Synchronisieren Zwischenablage mit XPRA

    01.09.2019

    Nachdem ich neulich mein XPRA-Skript nochmal ein wenig erneuert habe, hatte ich ein Problem:

    Weiterlesen...

Neueste Artikel

  • Will it go round in circles - Nashville Jam

    Eine neue Musikreihe/Show auf Youtube gefunden...

    Weiterlesen...
  • Diskless Setup über PXE mit readonly root FS für eine beliebige Anzahl Clients

    Ich habe neulich über meinen kleinen Erfolg berichtet, einen Futro über das Netzwerk zu booten. Das war allerdings nur das Minimalziel...

    Weiterlesen...
  • Futro s920 Booten übers Netz

    Ich habe hier bereits von den Anfängen meiner Versuche berichtet, Ersatz für die Raspis und vergleichbarer Hardware zu finden.

    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.