Erweiterung des Distinguished Name für x509-Zertifikate

24.05.2021

Ich habe das Projekt zu Pflege und Management einer PKI aus beliebig vielen CAs erweitert.

Das Projekt wurde zunächst um einige kleinere Verbesserungen der Dokumentation erweitert - unter anderem betrifft das die explizite Anleitung zur Beantragung und Ausstellung von Zertifikaten für beliebig viele E-Mail-Adressen - zum Beispiel zur Verwendung von S/Mime zur vertraulichen EMail-Kommunikation:

Nutzt man diese Möglichkeit, benötigt man auch im Besitz mehrerer EMail-Adressen lediglich ein Zertifikat, da die EMail-Adressen - genau wie für Serverzertifikate, die für mehrere Hostnamen ausgestellt werden - einfach als Subject Alternative Names (SAN) angegeben werden können.

Funktional wurden die Skripte dahingehend erweitert, dass es möglich ist, die nutzerdefinierten OIDs nicht nur für custom Policies einzusetzen, sondern damit auch nutzerdefinierte Extensions und weitere Felder für den Distinguished Name (DN) zu definieren. Dazu werden bei der Erstellung einer Issuing CA entsprechende Konfigurationsdateien erstellt, die durch die End Entities zur Erzeugung des Zertifikatsrequests benutzt werden können. In diesen Dateien sind Platzhalter für sämtliche bei der Erstellung der CA definierten custom OIDs sowohl als Erweiterung des DN, als auch als custom Erweiterung enthalten. Vor Aktivierung der CA sind diese Platzhalter entsprechend zu aktivieren.

Entsprechende Platzhalter existieren ebenfalls in der Konfigurationsdatei für den Betrieb der CA - auch dort müssen die entsprechenden Änderungen - passend zu denen in den CSR-Konfigurationen - aktiviert werden. Ein entsprechender Abschnitt, der diese Änderungen demonstriert, wurde in die Dokumentation eingefügt.

Weiterhin wurde erste Tests zur Verwendung des Projektes für Cross-Zertifizierungen erfolgreich ausgeführt:

Erstellt man zwei PKI - je eine für Domain A und Domain B - wie hier dargestellt, so vertraut user1 einer EMail von user2 nicht, da dessen Zertifikat +ber keine von user1 als vertrauenswürdig eingestufte Wurzel verfügt.

Dieses Bild zeigt die Vertrauensketten, die user1 und user2 kennen - sie liegen jeweils in der eigenen Domain.

Beide könnten nun überein kommen, den Wurzelzertifikaten der jeweils anderen Domain das Vertrauen auszusprechen. Dann sind aber beide auf die Integrität und Vertrauenswürdigkeit der jeweils anderen Root CA angewiesen. Besser ist es, wenn dieses gegenseitige Vertrauen entkoppelt wird wie in der nächsten Abbildung dargestellt:

Dadurch, dass in Domain A eine CA eingerichtet wurde, die das Zertifikat der Identity CA B beglaubigt, entsteht eine Vertrauenskette, die user1 nutzen kann, um Zertifikate der Identity CA B zu prüfen - er muss dazu jetzt nicht mehr der Root CA (oder der Intermediary CA) der Domain B vertrauen. Außerdem kann ein Administrator auf einfache Art und Weise diese Kopplung wieder aufheben - er benötigt dazu nicht die Unterstützung der Administratoren aus Domain B - falls er den Verdacht hat, dass Domain B kompromittiert worden ist. Dazu muss er einfach das Zertifikat, das durch die Bridge cA für Identity CA B ausgestellt wurde widerrufen. Die untenstehende Abbildung zeigt die zwei bekannten Vertrauensketten und die durch die Bridge CA zusätzlich hinzugekommene:

Die Administration der Domain B kann sich entscheiden, dasselbe Vorgehen spiegelbildlich ebenfalls auszuführen - damit wird auch die Herkunft des Begriffes Cross Certification plausibel: Würde man diese zusätzliche Vertrauenskette ebenfalls noch in die Darstellung integrieren, würden sich die zwei kreuzen.

Artikel, die hierher verlinken

X509 Policies

07.05.2023

Ich wollte schon lange einmal etwas über einen oft missverstandenen und auch ignorierten Aspekt von (x.509) PKI schreiben: Policies

Was bedeutet das Vorhängeschloss im Browser?

12.11.2021

Ich habe immer wieder Anlauf genommen, mir das Folgende mal von der Seele zu schreiben und es immer wieder aufgeschoben - jetzt ist es aber soweit!

Datei verschlüsseln mit LUKS/dmcrypt

10.10.2021

Ich habe hier bereits öfter über die Einrichtung und Konfiguration von PKI bzw. CS gesprochen. Beides benötigt für die sensiblen Daten nicht wirklich viel Platz - allerdings wäre es schön, wenn diese Daten besonders geschützt wären...

Zertifikatsgültigkeit überwachen mit Grafana

04.10.2021

Ich habe ausprobiert, die verbleibende Lebenszeit von X.509-Zertifikaten per Telegraf, Influx und Grafana zu überwachen

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


Vor 5 Jahren hier im Blog

  • Alte Rechner zukunftsfähig (?)

    01.05.2019

    Ich mache immer wieder gerne Experimente mit Terminalsessions - meistens wegen der zentral möglichen Administration. Nunhabe ich das Thema von neuem angepackt: wegen einem alten(sehr alten) Laptop, der bei mir schon so lange im Schrank lag, dass sogar die BIOS-Batterie inzwischen leer war...

    Weiterlesen...

Neueste Artikel

  • Graphics2D Implementierung für Java mit verlegtem Koordinatenursprung

    Es gibt seit vielen Jahren immer mal wieder Leute, die im Internet fragen, ob man in Javas diversen Methoden zum Zeichnen von Graphiken das Koordinatensystem so ändern könnte, dass sich der Koordinatenursprung links unten befindet und die positive y-Achse nach oben weist. Meist sind die Antworten dann, dass eine Affine Transformation eingeschaltet werden solle, die das Bild spiegelt.

    Weiterlesen...
  • Unerwartete Probleme bei der Software Raid5 Erweiterung

    Ich bin an die Grenzen meiner Storagelösung gestoßen - es musste mehr Platz her...

    Weiterlesen...
  • Die sQLshell ist nun cloudnative!

    Die sQLshell hat eine weitere Integration erfahren - obwohl ich eigentlich selber nicht viel dazu tun musste: Es existiert ein Projekt/Produkt namens steampipe, dessen Slogan ist select * from cloud; - Im Prinzip eine Wrapperschicht um diverse (laut Eigenwerbung mehr als 140) (cloud) data sources.

    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.