Schnittstellen und Integration
Zusammenfassung. WKL TrustBridge unterscheidet vier Arten von Schnittstellen: standardisierte Protokolle für Partnersysteme (ACME, EST, CMP), die öffentliche Verteilung von CA-Zertifikaten, Sperrlisten und Vertrauensbündeln per HTTP, eine fachliche Verwaltungs-API für Verwaltungsanwendung, Partnerportal und Automatisierung und die lokalen Schnittstellen von TLS-Adapter und Schlüsselagent auf jedem angebundenen Rechner. Standardisierte Endpunkte werden unverändert umgesetzt; eine eigene Schnittstelle gibt es nur, wo kein Standard existiert. Alle Wege führen zu denselben fachlichen Operationen und denselben Rechten.
Begriffe
- Protokolladapter – Komponente, die ein Standardprotokoll vollständig umsetzt (Nachrichten, Signaturen, Zustände, Fehlerformate) und die fachliche Entscheidung an den gemeinsamen Kern weitergibt.
- Fachlicher Kern – Verwaltung und Enrollment-Kern: Autorisierung, Mandant, Bildung des Auftrags, Audit.
- OData v4 – OASIS- und ISO/IEC-Standard für REST-Schnittstellen mit maschinenlesbarem Schema, Abfrageoptionen und Aktionen.
- Befehl – Operation, die über eine Zeile hinaus wirkt, einen Auftrag erzeugt oder ein Geheimnis zurückgibt; als OData-Aktion bzw.
POSTumgesetzt.
Übersicht
graph TD
subgraph EXT [Standardprotokolle]
ACME[ACME<br/>RFC 8555]
EST[EST<br/>RFC 7030]
CMP[Lightweight CMP<br/>RFC 9483]
end
subgraph MGM [Fachliche API]
OD[Verwaltungs-API<br/>OData v4, Aktionen]
end
subgraph PUB [Öffentliche Verteilung]
AIA[CA-Zertifikate<br/>HTTP GET]
CDP[Sperrlisten<br/>HTTP GET]
TB[Vertrauensbündel<br/>HTTP GET]
end
PS[Systeme der Partner] --> ACME
PS --> EST
PS --> CMP
ADM[Verwaltungsanwendung] --> OD
PP[Partnerportal] --> OD
AUT[Automatisierung] --> OD
PR[Prüfende Gegenstellen] --> AIA
PR --> CDP
TLA[TLS-Adapter, Schlüsselagenten] --> TB
ACME --> K[Fachlicher Kern]
EST --> K
CMP --> K
OD --> K
K --> DB[(Aufträge)]
classDef std fill:#deecf9,stroke:#0078d4,color:#201f1e
classDef own fill:#f3f2f1,stroke:#605e5c,color:#201f1e
classDef par fill:#deecf9,stroke:#0078d4,color:#201f1e
classDef onl fill:#f3f2f1,stroke:#605e5c,color:#201f1e
class ACME,EST,CMP,AIA,CDP,TB std
class OD,K,PP own
class ADM,AUT,PR,PS,TLA par
class DB onl
style EXT fill:#ffffff,stroke:#8a8886,color:#201f1e
style MGM fill:#ffffff,stroke:#8a8886,color:#201f1e
style PUB fill:#ffffff,stroke:#8a8886,color:#201f1eGrundsatz: Standards unverändert, eigene API nur ohne Standard
Ein Partnersystem soll für gewöhnliche PKI-Vorgänge keinen eigenen Client von TrustBridge brauchen. Deshalb werden standardisierte Endpunkte genau so umgesetzt, wie die Spezifikation sie beschreibt – einschließlich ihrer Pfade und Fehlerformate –, statt sie in eine eigene Namenskonvention zu übersetzen. Bei großen Anbietern privater CAs ist das Muster dasselbe: Systeme sprechen IETF-Protokolle, die Verwaltung eine eigene, ressourcenorientierte API.
Protokolladapter
Wrapper-Prinzip. Ein Adapter ist vollständig im Protokoll und dünn in der Fachlogik:
| Verantwortung | Adapter | Fachlicher Kern |
|---|---|---|
| HTTP-Protokoll, Nachrichtenformate, Signaturen des Protokolls | ja | nein |
| Zustände des Protokolls (etwa ACME-Bestellung, Nonce) | ja | nein |
| Autorisierung | liefert den Kontext (Konto, Client-Zertifikat) | entscheidet |
| Prüfung des Antrags gegen Profilklasse und Namensraum | nein | ja |
| Bildung des Auftrags, Attestierung automatischer Klassen | nein | ja |
| Audit | liefert Protokollereignisse | schreibt das Sicherheitsaudit |
| Fehler | übersetzt in das Format des Protokolls | liefert fachliche Fehler |
Der Kern muss nicht wissen, was eine ACME-Bestellung ist; er versteht: Ein autorisierter Teilnehmer beantragt ein Zertifikat für eine bestimmte Identität in einer bestimmten Profilklasse. Signiert wird weder im Adapter noch im Kern, sondern später im CA-Worker; kein Adapter wartet auf die Signatur.
ACME (RFC 8555)
| Aspekt | Festlegung |
|---|---|
| Einstieg | Verzeichnis (directory) unter einer frei gewählten Adresse; die Namen der Operationen (newNonce, newAccount, newOrder, revokeCert, keyChange) sind standardisiert, ihre Pfade nicht |
| Bindung an den Mandanten | ACME-Konten werden über External Account Binding an einen Mandanten gebunden; ein Konto ohne Bindung erhält nichts |
| Nachweis der Namenskontrolle | http-01, dns-01 oder tls-alpn-01 für Namen im Namensraum des Partners; welche Arten je Partner zugelassen sind, legt die Profilklasse fest |
| Ausstellung | Abschluss der Bestellung erzeugt einen Auftrag; das Zertifikat ist abrufbar, sobald der Worker ausgestellt hat (ACME sieht asynchrone Bearbeitung vor) |
| Sperrung | revokeCert mit Nachweis über den Schlüssel des Zertifikats oder durch das Konto |
EST (RFC 7030)
| Endpunkt | Verwendung |
|---|---|
/.well-known/est/cacerts | Abruf der CA-Zertifikate |
/.well-known/est/simpleenroll | Erstausstellung, authentisiert über den Nachweis der Profilklasse (Einmalwert, Gerätezertifikat oder TPM-Attestierung) |
/.well-known/est/simplereenroll | Erneuerung mit dem bisherigen Zertifikat |
/.well-known/est/serverkeygen | Schlüsselerzeugung durch den Server: nicht angeboten, TrustBridge erzeugt keine Schlüssel für Antragsteller |
Zusätzliche Pfadsegmente je CA oder Profil sind nach RFC 7030 zulässig.
Lightweight CMP (RFC 9483)
Lightweight CMP ist in industriellen Geräten und Steuerungen verbreitet. TrustBridge bietet es für Profilklassen von Maschinen und Geräten an, mit Herstellerzertifikat (IEEE 802.1AR) als Nachweis der Erstausstattung. Wie bei ACME und EST erzeugt der Adapter nur einen Auftrag; signiert wird im CA-Worker.
SCEP
SCEP wird nicht angeboten. Es authentisiert die Erstausstattung mit einem gemeinsamen Challenge-Kennwort, das den Anforderungen an die Erstausstattung nicht genügt. Geräteverwaltungen, die nur SCEP sprechen, werden über einen vorgelagerten Dienst mit EST oder CMP angebunden.
Verwaltungs-API
Die Verwaltungs-API ist die eine fachliche Schnittstelle für Verwaltungsanwendung, Partnerportal und Automatisierung. Alle drei durchlaufen dieselben Prüfungen, Rechte und Audit-Einträge; ob ein Befehl aus Access oder aus einem Skript kommt, macht keinen Unterschied.
| Aspekt | Festlegung |
|---|---|
| Form | OData v4: Mengen zum Lesen (Filtern, Sortieren, seitenweises Abrufen, Zählen, Gruppieren), Aktionen für Befehle; maschinenlesbares Schema; daraus erzeugte OpenAPI-Beschreibung für Werkzeuge ohne OData |
| Namen | englische Ressourcen- und Feldnamen (etwa certificates, certificate-requests, trust-relationships) |
| Befehle | erzeugen Aufträge und antworten, sobald diese gespeichert sind; kein Befehl wartet auf den Worker |
| Idempotenz | Idempotency-Key an jedem schreibenden Aufruf; eine Wiederholung erhält die erste Antwort |
| Schreibkonflikte | Zeilenversion als ETag, If-Match, Antwort 412 |
| Fehler | Fehlerformat von OData mit fester Kennung und Meldung in der Sprache des Aufrufers; kein Schlüssel, keine Signatur und kein Datenbankfehler im Wortlaut |
| Mandanten | ein Objekt außerhalb des eigenen Sichtbereichs ergibt 404, nicht 403 |
| Anmeldung von Personen | persönlicher Schlüssel in einer Kopfzeile; zweiter Faktor über eine Herausforderung (401 mit Verweis auf die Adresse zum Eintausch eines Einmalcodes gegen eine Sitzung); für jede Person, auch nur lesend. In Windows-Domänen alternativ Windows-Anmeldung über Kerberos |
| Anmeldung von Programmen | mTLS mit Client-Zertifikat der eigenen Zertifizierungsstelle |
| Freie Datenbankanweisungen, Transaktionen über mehrere Anfragen | nicht angeboten |
| Versionen | Hauptversion im Pfad; Ankündigung des Endes einer Fassung über die Kopfzeilen Deprecation (RFC 9745) und Sunset (RFC 8594) mit einer Mindestlaufzeit von zwölf Monaten |
Warum OData und nicht reine REST-Listen. Die Verwaltungsanwendung verknüpft Listen über einen ODBC-Treiber, der ausschließlich OData spricht; reine REST-Listen kann er nicht verknüpfen. OData ist ein REST-Standard; die daraus erzeugte OpenAPI-Beschreibung bedient Werkzeuge ohne OData. Eine zweite REST-Lesefläche neben den OData-Mengen würde dieselben Daten zweimal liefern und zweimal berechtigt und geprüft werden müssen.
Warum kein OAuth für Personen. Der ODBC-Treiber der Verwaltungsanwendung unterstützt Schlüssel in einer Kopfzeile, Windows-Anmeldung und Basic-Anmeldung, aber keine Bearer-Tokens. Für Personen bleibt es deshalb beim persönlichen Schlüssel mit zweitem Faktor.
Sicherheitsanalyse der Anmeldung von Personen
Die Anmeldung von Personen – persönlicher Schlüssel in einer Kopfzeile, zweiter Faktor über einen Einmalcode, Sitzung in einer Kopfzeile – ist an den Möglichkeiten des ODBC-Treibers der Verwaltungsanwendung ausgerichtet. Diese Ausrichtung darf das Sicherheitsniveau nicht bestimmen; die folgende Analyse bewertet die Anmeldung deshalb gegen die einschlägigen Bedrohungen.
| Bedrohung | Bewertung | Maßnahme | Verbleibendes Risiko |
|---|---|---|---|
| Kopieren des persönlichen Schlüssels | Der Schlüssel ist ein Inhabergeheimnis (256 Bit Zufall), gespeichert im Anmeldespeicher des Windows-Kontos; Schadsoftware mit Benutzerrechten kann ihn lesen | zweiter Faktor für jede Person; Ablaufdatum je Schlüssel; Herkunftsregeln (Netzbereiche) | ein kopierter Schlüssel allein genügt nicht, zusammen mit einem abgefangenen Code schon |
| Abfangen des Einmalcodes (Phishing in Echtzeit) | Einmalcodes aus einer App sind nicht phishing-resistent | Herkunftsregeln; Code ist nur einmal gültig | bleibt; phishing-resistente Verfahren (FIDO2, Chipkarte) unterstützt der Treiber nicht |
| Wiederholung einer Anfrage | Transport über TLS; jeder Einmalcode wird genau einmal angenommen; schreibende Aufrufe tragen einen Idempotenzschlüssel, eine Wiederholung erhält die erste Antwort und wirkt nicht doppelt | M-40, Idempotenz | gering |
| Diebstahl des Sitzungstokens | Die Sitzung gilt nur zusammen mit dem Schlüssel, mit dem sie eröffnet wurde; ein Token allein öffnet nichts | Bindung an Person, Verfahren und Schlüssel | Bindung an Gerät oder TLS-Kanal fehlt; Schadsoftware auf demselben Arbeitsplatz kann die Sitzung mitbenutzen |
| Ablauf | Sitzungen enden nach einer festen Dauer; Schlüssel haben ein Ablaufdatum | M-44 | Missbrauch innerhalb der Sitzungsdauer |
| Verlust des Geräts | Schlüssel liegt im Anmeldespeicher des verlorenen Geräts; Einmalcode-App auf dem Telefon | sofortige Sperrung des Schlüssels beendet alle daran gebundenen Sitzungen; Zurücksetzen des zweiten Faktors durch eine andere berechtigte Person mit Audit-Eintrag | Zeit bis zur Meldung des Verlusts |
| Entzug von Rechten | Rechte werden bei jeder Anfrage geprüft, nicht in der Sitzung zwischengespeichert | M-43 | keines über die laufende Anfrage hinaus |
| Kompromittierter Arbeitsplatz eines Mitarbeiters | Ein Angreifer handelt mit den Rechten der Person, solange die Sitzung gilt: Aufträge vorschlagen, stornieren, Sperren auslösen, lesen | Freigaben brauchen einen getrennten Freigabe-Schlüssel auf eigener Hardware mit Bestätigung durch die Person (M-45); Zwei-Personen-Regel in sensiblen Klassen | Schadsoftware kann die Anzeige eines Auftrags verfälschen; dagegen hilft nur eine zweite, unabhängige Freigabe oder eine Anzeige auf dem Freigabegerät |
Windows-Anmeldung. In Windows-Domänen melden sich Personen alternativ über Kerberos (Negotiate) an. Damit entfällt das gespeicherte Inhabergeheimnis; mit einer Chipkarten-Anmeldung an Windows ist die Anmeldung phishing-resistent. Die Sicherheit hängt dann an der Domäne; jede Organisation wählt das Verfahren für ihre Personen.
Freigabe über die API
Eine Freigabe ist keine angemeldete Bestätigung, sondern eine Signatur der Person über den Hash des Auftrags. Der Ablauf über die API:
sequenceDiagram participant P as Person participant A as Verwaltungsanwendung participant V as Verwaltungs-API P->>A: Auftrag öffnen A->>V: Auftragsbytes abrufen V-->>A: Bytes, unverändert A->>A: SHA-256 bilden, mit Kennung vergleichen,<br/>Inhalt aus genau diesen Bytes anzeigen P->>A: freigeben A->>A: Hash mit persönlichem Schlüssel signieren A->>V: Aktion: Freigabe einreichen (Signatur) V->>V: speichern, nicht prüfen Note over V: Die Prüfung macht der CA-Worker
Die API bezeugt nichts und prüft die Signatur nicht; sie reicht sie weiter. Der Freigabe-Schlüssel liegt auf einer Chipkarte oder einem Sicherheitsschlüssel mit PIV-Funktion und verlangt für jede Signatur die PIN der Person.
Zustände und Fehler
Befehle der Verwaltungs-API ändern Zustände nur in der Datenbank; das Ergebnis des CA-Workers erscheint später als Projektion. Für die Verwaltungsanwendung heißt das: Nach einem Befehl wird der Auftrag erneut gelesen, nicht auf eine Antwort des Workers gewartet.
| Zustand eines Auftrags in der API | Bedeutung | Mögliche Befehle |
|---|---|---|
| zur Freigabe | gespeichert, wartet auf Freigaben | Freigabe einreichen, stornieren |
| Freigabe vollständig | Freigaben liegen vor | stornieren |
| beansprucht | der Worker bearbeitet ihn | keine |
| ausgestellt / abgelehnt | Ergebnis aus dem Register | keine; bei Ablehnung mit Grund |
| storniert, abgelaufen | endgültig | keine |
| Status | Verwendung |
|---|---|
400 | Eingabe unzulässig (etwa CSR ohne Besitznachweis, Name außerhalb des Namensraums, unzulässiger Sperrgrund) |
401 | nicht angemeldet oder zweiter Faktor verlangt |
403 | angemeldet, aber ohne das nötige Recht |
404 | nicht vorhanden oder außerhalb des Sichtbereichs |
409 | Zustand erlaubt den Befehl nicht (etwa Freigabe für einen stornierten Auftrag) |
412 | veraltete Zeilenversion |
503 | Datenhaltung nicht erreichbar |
Den Übergang nach „Freigabe vollständig“ setzt der CA-Worker, weil nur er die Freigaberegeln seines Regelwerks kennt. Bis dahin zeigt die API die eingereichten Freigaben an.
Verwaltungsanwendung
Die Verwaltungsanwendung ist das Werkzeug der Mitarbeiter einer Organisation und ihres Betriebspartners (Systemverwaltung, Partnerverwaltung, Support). Sie ist eine Access-Anwendung, die ausschließlich die Verwaltungs-API anspricht: Listen sind verknüpfte OData-Mengen, Befehle laufen über eine VBA-Klasse. Eine Datenbankverbindung aus dem Client ist ausgeschlossen.
Partnerportal
Das Partnerportal ist die Weboberfläche für Verantwortliche eines Partners, dessen ausstellende CA in der Hierarchie des Auftraggebers liegt. Es nutzt dieselbe Verwaltungs-API mit einem Sichtbereich je Partner: Anträge stellen, eigene Aufträge freigeben, Inventar und Sperrstatus des eigenen Namensraums einsehen, Sperrungen auslösen. Partner mit eigener Installation verwenden ihre eigene Verwaltungsanwendung.
Schnittstellen auf dem angebundenen Rechner
| Schnittstelle | Verwendung |
|---|---|
| Ausgehender Anschluss des TLS-Adapters | die lokale Anwendung verbindet sich mit einer lokalen Adresse; der Adapter baut die geschützte Verbindung zur Gegenstelle auf |
| Eingehender Anschluss des TLS-Adapters | der Adapter nimmt Verbindungen der Partner an und leitet sie an die lokale Anwendung weiter |
| Weitergabe der Partneridentität | bei HTTP in Kopfzeilen mit Organisation, Dienstname, Beziehung und Zweck; die Anwendung darf nur über den Adapter erreichbar sein |
| Schnittstelle des Schlüsselvermittlers | nur für das Dienstkonto des TLS-Adapters, mit Zugriffsschutz des Betriebssystems |
| Zertifikate von Adapter und Agent | Erneuerung automatisch über ACME oder EST bei der eigenen Zertifizierungsstelle |
| Zustandsauskunft | lokale Abfrage von Beziehungen, Gültigkeit der Geheimnisse, letztem Austausch und letzten Ablehnungen, ohne Schlüsselmaterial |
Was diese Seite nicht festlegt
- Kein SCEP und keine Schlüsselerzeugung für Antragsteller.
- Keine Identitätsversorgung kurzlebiger Workloads über die SPIFFE-Workload-API. TrustBridge vergibt genau einen DNS-Namen je System; URI-Namen sind nicht vorgesehen.
- Keine Gestaltung der Verwaltungsanwendung und des Partnerportals. Diese Seite beschreibt die Schnittstelle, die sie nutzen, nicht ihre Oberfläche.
Quellen
- RFC 8555 – ACME: Verzeichnis, Konten, Bestellungen, Nachweise, External Account Binding (Abschnitt 7.3.4).
- RFC 7030 – EST: Endpunkte unter
/.well-known/est/, Authentisierung, optionale Pfadsegmente. - RFC 9483 – Lightweight CMP Profile: Profil für industrielle Geräte.
- OData Version 4.01: Protokoll, Schemaformat, Abfrageoptionen.
- RFC 9745 – Deprecation-Kopfzeile und RFC 8594 – Sunset-Kopfzeile: Ankündigung des Endes einer API-Fassung.