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.
Vorhaben 2020
03.01.2020
Genau wie letztes Jahr habe ich auch dieses Jahr wieder ein "Listche" verfasst, um mir all die interessanten Vorhaben zu notieren, die ich mit mittlerem zeitlichen Horizont anzugehen gedenke.
Weiterlesen...Android Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Go GUI Gui Hardware Java Jupyter Komponenten Links Linux Markdown Markup Music Numerik OpenSource PKI-X.509-CA Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
In eigener Sache...
Weiterlesen...Nach dem ersten Teil von mir als interessant eingestufter Vorträge des Chaos Communication Congress 2024 hier nun die Nachlese
Weiterlesen...Nach dem So - wie auch im letzten Jahr: Meine Empfehlungen für Vorträge vom Chaos Communication Congress 2024 - vulgo: 38c3:
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.