डेटाबेस एन्क्रिप्शन
Libre WebUI संवेदनशील मानों को संग्रहण में लिखने से पहले एप्लिकेशन स्तर पर एन्क्रिप्ट करता है।
एन्क्रिप्शन विधि
बैकएंड Node.js crypto के माध्यम से AES-256-GCM उपयोग करता है। कुंजी 32 बाइट, 64-अक्षर हेक्स स्ट्रिंग होनी चाहिए:
ENCRYPTION_KEY=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
openssl rand -hex 32
कुंजी संग्रहण
- पर्यावरण का
ENCRYPTION_KEY। - चुने
DATA_DIRमें स्थायी.encryption_key। - केवल नए संग्रह में, डेटाबेस शुरू होने से पहले
DATA_DIR/.encryption_keyमें टिकाऊ लिखी नई कुंजी।
पर्यावरण और फ़ाइल दोनों हों तो मेल आवश्यक है। मूल कुंजी के बिना मौजूदा एन्क्रिप्टेड स्थिति सुरक्षित रूप से असफल होती है; Libre मौजूदा संग्रह के लिए प्रतिस्थापन नहीं बनाता।
महत्वपूर्ण नियम
- डेटाबेस के साथ
ENCRYPTION_KEYबैकअप करें। - माइग्रेशन योजना के बिना कुंजी न घुमाएँ।
- कुंजी खोने पर डेटा वापस नहीं मिलता।
- पुनः एन्क्रिप्ट किए बिना बदलने पर पुराने मान अपठनीय होंगे।
क्या सुरक्षित है
एन्क्रिप्शन सेवा या सहायकों से गुजरने वाले क्रेडेंशियल और निजी उपयोगकर्ता डेटा जैसे मान सुरक्षित होते हैं। यह पूर्ण-डिस्क, SQLite पेज या एंड-टू-एंड एन्क्रिप्शन नहीं है; इनके लिए डिस्क एन्क्रिप्शन और HTTPS उपयोग करें।
Work डेटा
एप्लिकेशन एन्क्रिप्शन पूरा Work कार्य एन्क्रिप्ट नहीं करता। स्रोत और निर्भरताएँ Docker वॉल्यूम की सामान्य फ़ाइलें हैं। बातचीत, टूल परिणाम, कमांड आउटपुट और मेटाडेटा SQLite में हैं और कुछ क्रेडेंशियल पथ एन्क्रिप्ट होने से स्वतः एन्क्रिप्ट नहीं होते।
Docker डेटा रूट और DATA_DIR को पहुँच नियंत्रण व डिस्क एन्क्रिप्शन से सुरक्षित करें। डेटाबेस, ENCRYPTION_KEY और Work वॉल्यूम साथ बैकअप करें। दूरस्थ मॉडल को कार्य भेजना संदर्भ, फ़ाइल या आउटपुट प्रदाता को दिखा सकता है; संग्रहण एन्क्रिप्शन नेटवर्क सीमा नहीं बदलता।
Docker और Kubernetes
ENCRYPTION_KEY=replace-with-64-hex-characters
DATA_DIR=/data
DATA_DIR स्थायी संग्रहण पर रखें। Kubernetes में कुंजी Secret और डेटा PersistentVolume पर रखें।
समस्या निवारण
गलत कुंजी लंबाई
ठीक 64 हेक्स अक्षर चाहिए:
openssl rand -hex 32
पुनः डिप्लॉयमेंट के बाद डेटा नहीं खुलता
समान ENCRYPTION_KEY और DATA_DIR वॉल्यूम जाँचें।
विकास ने नई कुंजी बनाई
DATA_DIR/.encryption_key को डेटाबेस के साथ रखें। वही मान ENCRYPTION_KEY से दे सकते हैं; दोनों हों तो मिलें।