API-Keys, Datenbank-Passwörter und OAuth-Tokens landen in TYPO3-Projekten häufig als Klartext in der LocalConfiguration.php oder in Umgebungsvariablen, die im Deployment-Log auftauchen. Die Extension nr_vault adressiert dieses Problem direkt: Secrets werden per Envelope-Encryption verschlüsselt abgelegt, ein tamper-evidentes Audit-Log protokolliert jeden Zugriff, und der VaultHttpClient führt authentifizierte API-Calls durch, ohne dass ein Secret jemals unverschlüsselt in einem Log landet.
Die Architektur folgt etablierten Konzepten aus dem Enterprise-Key-Management, ohne externe Infrastruktur wie HashiCorp Vault oder AWS KMS vorauszusetzen — alles läuft innerhalb der TYPO3-Instanz, gestützt auf die ab PHP 7.2 standardmäßig verfügbare libsodium-Bibliothek.
Inhaltsverzeichnis
Überblick
Was wurde gemacht
Funktionen im Detail
Installation
Überblick
nr_vault stellt ein verschlüsseltes Secret-Management direkt im TYPO3-Backend bereit. Das Kernprinzip ist Envelope-Encryption: Ein Master Key — außerhalb der Datenbank gespeichert, z.B. als Umgebungsvariable oder in einer separaten Key-Datei — verschlüsselt individuelle Data Encryption Keys (DEKs). Jedes Secret bekommt seinen eigenen DEK; kompromittiert ein Angreifer die Datenbank, bleibt ohne den Master Key nichts lesbar.
Der TCA-Feldtyp vaultSecret bindet sich in bestehende Backend-Formulare ein: Redakteur:innen und Administrator:innen sehen ein verschleiertes Eingabefeld, der gespeicherte Wert ist jedoch sofort verschlüsselt. Zugriffe werden in einem Audit-Log mit Hash-Chain protokolliert — nachträgliche Manipulation einzelner Log-Einträge ist dadurch erkennbar.
Diese Extension setzt TYPO3 ^14.3 (14.3 LTS), PHP ^8.2 und die PHP-Extension ext-sodium voraus. Die libsodium-Unterstützung ist ab PHP 7.2 standardmäßig verfügbar, muss aber in manchen Hosting-Umgebungen explizit aktiviert werden.

Vault-Dashboard im TYPO3-Backend: Status, Secret-Zähler, Audit-Log und Migrationsassistent zeigen, dass Secret-Verwaltung nicht nur ein API-Konzept ist, sondern redaktionell überprüfbar bleibt.
Was wurde gemacht
Dieser Fork basiert auf dem Upstream-Projekt von Netresearch DTT GmbH und enthält mehrere gezielte Korrekturen und Modernisierungen: Das TYPO3-v14-Icon-Set wurde vollständig erneuert, die Vault-UI am aktuellen TYPO3-Styleguide ausgerichtet. Ein Bugfix behebt einen kontextuellen Edit-Trigger, der in bestimmten Backend-Layouts nicht korrekt ausgelöst wurde. Kind-Routen werden nun im Modulmenü ausgeblendet, was die Backend-Navigation aufgeräumter macht.
Ein inhaltlich relevanter Bug wurde beim Base64-Encoding von XChaCha20-Poly1305-Nonces behoben: Fehlerhafte Padding-Behandlung konnte in Grenzfällen zu nicht dekodierbaren Nonces führen. Darüber hinaus wurde die XLIFF-Migration auf Version 2.0 abgeschlossen und die Codebase vollständig auf TYPO3 14.3 + PHPStan max ausgerichtet.
Funktionen im Detail
| Funktion | Nutzen |
|---|---|
| Envelope-Encryption (AES-256-GCM via libsodium) | Secrets bleiben ohne Master Key unlesbar — auch bei vollem Datenbank-Dump |
| TCA-Feldtyp vaultSecret | Direkt in Backend-Formulare eingebunden — kein Custom-ViewHelper notwendig |
| VaultHttpClient | Bearer, BasicAuth, Header, QueryParam und OAuth2 — kein Secret im Log |
| Tamper-evidentes Audit-Log (Hash-Chain) | Jeder Zugriff protokolliert; nachträgliche Manipulation erkennbar |
| CLI: vault:init / vault:list / vault:rotate / vault:audit | Key-Rotation und Audit ohne Backend-Session |
| Gruppen- und Kontext-basierte Zugriffskontrolle | Feingranulare Berechtigungen pro Secret und Backend-Gruppe |
| SLSA L3 + OpenSSF-Badges | Nachvollziehbare Build-Provenance und Supply-Chain-Sicherheit |
| Pluggable Adapter-Architektur | HashiCorp Vault, AWS Secrets Manager, Azure Key Vault als zukünftige Backends geplant |
Die Kombination aus Envelope-Encryption und tamper-evidentem Audit-Log adressiert zwei verschiedene Bedrohungsszenarien: Datenbank-Kompromittierung (durch Encryption) und Insider-Bedrohungen bzw. Compliance-Anforderungen (durch das Hash-Chain-Log). SLSA L3 stellt sicher, dass die Extension-Builds nachvollziehbar und nicht manipulierbar sind.
Installation
composer config repositories.nr-vault vcs https://github.com/dirnbauer/t3x-nr-vault.git
composer require netresearch/nr-vault:@devHäufige Fragen
Fazit
nr_vault ersetzt Klartext-Secrets in der LocalConfiguration.php — ohne externe Infrastruktur, mit einer Encryption-Architektur, die auch für Compliance-Szenarien tragfähig ist. Der tamper-evidente Audit-Log macht Zugriffe nachvollziehbar; SLSA L3 sorgt für Transparenz auf der Build-Ebene.
nr_vault ist ein Fork von Netresearchs gleichnamiger Extension. Dank an Netresearch DTT GmbH für die Vorarbeit. Die Extension steht unter der GPL.