Beispiel-Dokumentation: Schlüsselalgorithmen vergleichen
1. Ziel
RSA, ECDSA und Ed25519 werden lokal erzeugt und mit ihren Einsatzgrenzen verglichen.
Dieses Dokument ergänzt das Haupt-README um fachliche Einordnung, Reviewfragen und Betriebsbezug. Es ist keine öffentliche CA-Betriebsanleitung, sondern ein reproduzierbares Lern- und Analysebeispiel.
2. Was gemacht wird
Das Beispiel wird lokal ausgeführt, erzeugt nur temporäre Artefakte unter work/ und dokumentiert den Nachweis unter work/evidence/. Je nach Thema werden Root, Intermediate, CSR, Serverzertifikat, Clientzertifikat, CRL, Widerruf oder ein Automatisierungsmodell erstellt.
Die Arbeitsschritte sind bewusst klein gehalten:
- Konfigurationsdateien lesen.
- Skript ausführen.
- Evidence prüfen.
- OpenSSL-Ausgaben interpretieren.
- Fehlerfall oder Betriebsfrage diskutieren.
- Cleanup und Schutz privater Schlüssel bestätigen.
3. Warum es gemacht wird
PKI-Fehler sind selten reine Syntaxfehler. Häufig ist ein Zertifikat technisch erzeugt, aber fachlich falsch: falscher Issuer, falscher SAN, zu lange Gültigkeit, fehlende Key Usage, unklare Chain, fehlender Widerruf oder ungeschützter privater Schlüssel. Dieses Beispiel zwingt deshalb jede technische Aktion in eine Review-Struktur.
4. Typische Kommandos
openssl version
openssl req -in work/csr/server.csr.pem -noout -subject -text 2>/dev/null || true
openssl x509 -in work/certs/server.crt.pem -noout -subject -issuer -serial -dates 2>/dev/null || true
openssl x509 -in work/certs/server.crt.pem -noout -text 2>/dev/null | sed -n '/X509v3 extensions:/,/Signature Algorithm/p' || true
openssl verify -CAfile work/root/certs/root.crt.pem -untrusted work/intermediate/certs/intermediate.crt.pem work/certs/server.crt.pem 2>/dev/null || true
find work/evidence -type f -maxdepth 2 -print 2>/dev/null | sort || true
5. Erfolg prüfen
- Das Skript endet ohne unerwarteten Fehler.
- Die Evidence-Dateien passen zum Thema des Beispiels.
- End-Entity-Zertifikate haben
CA:FALSE. - CA-Zertifikate haben
CA:TRUEund passende Key Usage. - Serverzertifikate enthalten SANs.
- Chain-Verifikation trennt Root als Trust Anchor und Intermediate als untrusted Chain-Zertifikat.
- Widerruf, OCSP oder CRL werden nicht behauptet, ohne Nachweis oder klare Lab-Grenze.
6. Typische Fehler
| Beobachtung | Wahrscheinliche Ursache | Korrektur |
|---|---|---|
| Zertifikat sieht gültig aus, Client lehnt es ab | SAN fehlt oder passt nicht | CSR-Konfiguration prüfen und neu signieren |
openssl verify schlägt fehl |
Chain oder Trust Anchor falsch | Root mit -CAfile, Intermediate mit -untrusted übergeben |
| CA kann nicht weiter signieren | Basic Constraints oder Key Usage fehlen | CA-Extensions korrigieren und Zertifikat neu erzeugen |
| Widerruf ist nicht sichtbar | CRL wurde nicht neu veröffentlicht | CRL neu erzeugen, Seriennummer prüfen, Clientverhalten testen |
| Evidence enthält private Daten | falsche Dateien kopiert | Evidence auf öffentliche Ausgaben, Fingerprints und Seriennummern begrenzen |
7. Sicherheitsaspekte
In echten PKIs müssen Root- und Intermediate-Schlüssel stärker geschützt werden als in diesem Lab. Root-Schlüssel werden typischerweise offline gehalten, Intermediate-Schlüssel werden durch HSM, strenge Dateirechte, Audit-Logs und getrennte Rollen geschützt. Für öffentlich vertrauenswürdige Zertifikate gelten zusätzliche Anforderungen, die in diesem Workshop nur eingeordnet, aber nicht simuliert werden.
8. Realistischer Einsatz
Dieses Muster lässt sich auf interne TLS-Zertifikate, mTLS zwischen Services, Kubernetes Ingress, Vault PKI, cert-manager, Smallstep, SPIFFE/SPIRE und klassische Unternehmens-PKIs übertragen. Entscheidend ist nicht das Tool, sondern die Beweisführung: wer signiert, wofür gilt das Zertifikat, wie wird Vertrauen verteilt, wann wird erneuert und wie wird widerrufen.
9. Workshop-Durchführung
- Lernziel laut vorlesen und Scope begrenzen.
- Repository-Dateien von Laufzeitartefakten unterscheiden.
- OpenSSL-Konfiguration öffnen und relevante Sections markieren.
- Private-Key-Pfade identifizieren.
- CSR-Subject und SANs prüfen.
- CA-Extensions vor der Signatur erklären.
- Zertifikat erzeugen oder Modellartefakt validieren.
- Issuer und Subject vergleichen.
- Basic Constraints und Key Usage interpretieren.
- Chain-Verifikation ausführen.
- Fehlerfall absichtlich reproduzieren, falls das Beispiel ihn vorsieht.
- Evidence-Dateien öffnen und auf private Schlüssel prüfen.
- Betriebsfrage stellen: Wer besitzt dieses Zertifikat?
- Sicherheitsfrage stellen: Wie wäre Kompromittierung erkennbar?
- Renewal-Frage stellen: Wann muss gehandelt werden?
- Widerrufsfrage stellen: Welche Clients prüfen CRL oder OCSP?
- Audit-Frage stellen: Welche Entscheidung ist nachvollziehbar?
- Cleanup durchführen.
- Abweichungen dokumentieren.
- Ergebnis in ein kurzes Review-Fazit überführen.
10. Review-Matrix
| Prüffeld | Erwartete Aussage |
|---|---|
| Scope | Lab, interne PKI oder öffentlich vertrauenswürdiger Kontext ist getrennt. |
| Subject | Entität und Zweck sind eindeutig. |
| Issuer | Signierende CA ist dokumentiert. |
| Chain | Root und Intermediate werden korrekt verwendet. |
| SAN | Hostidentität steht im SAN. |
| Basic Constraints | CA- und Leaf-Rollen sind getrennt. |
| Key Usage | Signatur, Key Encipherment, cRLSign oder keyCertSign passen zur Rolle. |
| EKU | ServerAuth oder ClientAuth ist nur dort gesetzt, wo benötigt. |
| Laufzeit | Gültigkeit und Renewal-Fenster sind plausibel. |
| Widerruf | CRL, OCSP oder Lab-Grenze ist klar. |
| Schlüssel | Private Keys werden nicht committet. |
| Evidence | Nachweise enthalten keine Geheimnisse. |
Offizielle Referenzen
- RFC 5280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile: https://datatracker.ietf.org/doc/html/rfc5280
- CA/Browser Forum Baseline Requirements: https://cabforum.org/working-groups/server/baseline-requirements/requirements/
- NIST SP 800-57 Part 1 Revision 5: https://csrc.nist.gov/pubs/sp/800/57/pt1/r5/final
- OpenSSL Manual Pages: https://www.openssl.org/docs/manpages/
Beispielanhang: Evidence, Transfer und Betrieb
Dieser Zusatzteil macht das Beispiel als Trainingsbaustein vollständiger. Er ist bewusst auf reale PKI-Fragen begrenzt: Zertifikatsinhalt, Vertrauenskette, Schlüsselmaterial, Widerruf, Erneuerung, Audit und Übergabe in einen Betriebsprozess.
Evidence-Checkliste
openssl versionwurde notiert, damit Ausgaben einer konkreten Tool-Version zugeordnet werden können.- Subject, Issuer, Serial und Gültigkeit wurden über
openssl x509 -nooutgeprüft. - SAN, Basic Constraints, Key Usage und EKU wurden aus dem Zertifikatstext extrahiert.
- Die Chain wurde mit Root als Trust Anchor und Intermediate als Chain-Zertifikat geprüft.
- Fehlerfälle wurden nicht nur beschrieben, sondern mit kontrolliertem Exit-Code oder Evidence-Datei sichtbar gemacht.
- Private Schlüssel wurden nicht in Evidence-Dateien kopiert.
- Laufzeitartefakte liegen unter
work/und sind vom Repository-Inhalt getrennt. - Cleanup ist möglich, indem
work/entfernt wird.
Transferfragen
- Wer ist Owner des Zertifikats und wer darf die Ausstellung freigeben?
- Welche CA signiert und wie wird diese CA selbst geschützt?
- Welche Clients oder Systeme müssen dem Trust Anchor vertrauen?
- Welche Laufzeit ist fachlich begründet und wann startet Renewal?
- Wie wird Widerruf verteilt und wie wird geprüft, ob Clients ihn auswerten?
- Welche Logs oder Tickets beweisen Antrag, Genehmigung, Ausstellung und Änderung?
- Welche Abweichung wäre in einer öffentlichen CA nicht zulässig?
- Welche Teile des Labs müssten durch HSM, Vault, cert-manager, ACME oder SPIFFE automatisiert werden?
Betriebsnotizen
| Thema | Erwartung |
|---|---|
| Rollen | Antragsteller, Approver, CA-Operator und Auditor sind getrennt oder begründet kombiniert. |
| Schlüssel | Private Keys sind geschützt, nicht versioniert und nur für die benötigte Rolle zugänglich. |
| Zertifikate | Leaf-Zertifikate haben CA:FALSE; CA-Zertifikate haben CA:TRUE und passende Key Usage. |
| Namen | DNS- und IP-Identitäten stehen im SAN, nicht nur im Common Name. |
| Chain | Root, Intermediate und Leaf sind nachvollziehbar und korrekt verteilt. |
| Widerruf | CRL oder OCSP ist als Prozess eingeordnet, auch wenn das Lab nur lokal arbeitet. |
| Renewal | Ablaufüberwachung und Erneuerungsfenster sind dokumentiert. |
| Audit | Evidence enthält nachvollziehbare Entscheidungen, aber keine Geheimnisse. |
Review-Fazit
Ein Beispiel ist erst abgeschlossen, wenn die technische Ausführung, die fachliche Erklärung und der Sicherheitsnachweis zusammenpassen. Für CA-Workshops ist das wichtiger als die reine Befehlsfolge, weil ein Zertifikat auch dann gefährlich sein kann, wenn OpenSSL es erfolgreich erzeugt hat.