Ga naar hoofdinhoud

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:

  1. ENCRYPTION_KEY.
  2. .encryption_key in DATA_DIR.
  3. Alleen bij nieuwe opslag een nieuwe sleutel, duurzaam geschreven naar DATA_DIR/.encryption_key vóó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_KEY met 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.

Gerelateerde documenten