Veritabanı Şifrelemesi
Libre WebUI, hassas değerleri depolamaya yazmadan önce uygulama düzeyinde şifreler.
Şifreleme Yöntemi
Sunucu Node.js crypto üzerinden AES-256-GCM kullanır. Anahtar 32 baytlık, 64 karakterli onaltılık dize olmalıdır:
ENCRYPTION_KEY=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
Anahtar oluşturun:
openssl rand -hex 32
Anahtar Depolama
Sıra:
- Ortamdan
ENCRYPTION_KEY. - Seçili
DATA_DIRaltındaki kalıcı.encryption_key. - Yalnızca yeni depoda, veritabanından önce
DATA_DIR/.encryption_keyiçine kalıcı yazılan yeni anahtar.
Ortam ve dosya anahtarları eşleşmelidir, aksi halde başlatma başarısız olur. Özgün anahtarı olmayan mevcut şifreli durum da güvenli biçimde reddedilir; Libre mevcut depo için yenisini üretmez.
Önemli Kurallar
ENCRYPTION_KEYile veritabanını birlikte yedekleyin.- Şifreli değerler için geçiş planı olmadan anahtarı döndürmeyin.
- Anahtarı kaybetmek verileri kurtarılamaz yapar.
- Verileri yeniden şifrelemeden anahtarı değiştirmek mevcut değerleri okunamaz yapar.
Neyi Korur
Şifreleme hizmetini veya şifreli depolama yardımcılarını kullanan kod yollarındaki kimlik bilgileri ve özel kullanıcı verileri gibi hassas değerleri korur.
Tam disk, SQLite sayfası veya kullanıcıyla tarayıcı arasında uçtan uca şifreleme değildir. Bu katmanlar için disk şifreleme ve HTTPS kullanın.
Work Verileri
Uygulama şifrelemesi bütün Work görevini şifrelemez. Kaynaklar ve bağımlılıklar görev Docker birimlerinde sıradan dosyalardır. Konuşmalar, araç sonuçları, komut çıktısı ve meta veriler SQLite içindedir ve bazı kimlik bilgisi yolları şifreleniyor diye otomatik şifrelenmez.
Gerektiğinde Docker veri kökünü ve DATA_DIR dizinini erişim denetimi ve disk şifrelemeyle koruyun. Veritabanını, ENCRYPTION_KEY anahtarını ve Work birimlerini birlikte yedekleyin. Uzak modele gönderim konuşmayı, dosyaları veya çıktıyı sağlayıcıya açıklayabilir; depolama şifrelemesi ağ sınırını değiştirmez.
Docker ve Kubernetes
Üretimde kararlı anahtarı açıkça ayarlayın:
ENCRYPTION_KEY=replace-with-64-hex-characters
DATA_DIR=/data
DATA_DIR kalıcı depolamada olmalıdır. Kubernetes’te anahtarı Secret içinde, veriyi PersistentVolume üzerinde tutun.
Sorun Giderme
Geçersiz anahtar uzunluğu
Tam 64 onaltılık karakter gerekir:
openssl rand -hex 32
Yeniden dağıtımdan sonra veri çözülemiyor
Aynı ENCRYPTION_KEY ve DATA_DIR birimini doğrulayın.
Geliştirme yeni anahtar üretti
DATA_DIR/.encryption_key dosyasını veritabanıyla saklayın. Aynı değeri ENCRYPTION_KEY ile de verebilirsiniz; ikisi varsa eşleşmelidir.