Databaseversleuteling
Libre WebUI versleutelt gevoelige waarden op applicatieniveau voordat ze worden opgeslagen.
Methode
De backend gebruikt AES-256-GCM via Node.js crypto. De sleutel is 32 bytes als 64 hexadecimale tekens:
ENCRYPTION_KEY=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
openssl rand -hex 32
Sleutelopslag
Volgorde:
ENCRYPTION_KEY..encryption_keyinDATA_DIR.- Alleen bij nieuwe opslag een nieuwe sleutel, duurzaam geschreven naar
DATA_DIR/.encryption_keyvóór de database.
Omgeving en bestand moeten overeenkomen. Bestaande versleutelde toestand zonder originele sleutel faalt veilig; Libre genereert nooit vervanging.
Belangrijke regels
- Back-up
ENCRYPTION_KEYmet de database. - Roteer alleen met migratieplan.
- Verlies betekent onherstelbare waarden.
- Wijzigen zonder opnieuw versleutelen maakt gegevens onleesbaar.
Bescherming
Geldt voor paden die de versleutelingsservice of helpers gebruiken, zoals referenties en privégegevens. Het is geen volledige schijf-, SQLite-pagina- of end-to-end-versleuteling; gebruik schijfversleuteling en HTTPS.
Work-gegevens
Een hele Work-taak wordt niet versleuteld. Bronbestanden en afhankelijkheden zijn gewone bestanden in Docker-volumes. Gesprekken, toolresultaten, commando-uitvoer en metadata staan in SQLite en worden niet automatisch versleuteld.
Bescherm Docker-data en DATA_DIR en maak gezamenlijke back-ups van database, ENCRYPTION_KEY en Work-volumes. Een remote model kan context en gevraagde inhoud ontvangen; opslagversleuteling verandert die netwerkgrens niet.
Docker en Kubernetes
ENCRYPTION_KEY=replace-with-64-hex-characters
DATA_DIR=/data
Gebruik persistente opslag; in Kubernetes een Secret en PersistentVolume.
Problemen oplossen
Ongeldige lengte
openssl rand -hex 32
Niet te ontsleutelen na herimplementatie
Controleer dezelfde ENCRYPTION_KEY en hetzelfde DATA_DIR-volume.
Ontwikkeling genereerde een nieuwe sleutel
Bewaar DATA_DIR/.encryption_key bij de database. Je kunt dezelfde waarde via ENCRYPTION_KEY zetten; beide moeten overeenkomen.