Yedekleme sunucusunda asla özel anahtarla GPG kullanılarak şifrelenmiş site dışı yedekleme?


11

Yedeklenecek dizin ağaçlarının xzsıkıştırılmış tararşivlerini oluşturan bir yedekleme sunucum var . Bu katran arşivleri büyük olabilir (çoklu splitTB'ler), parçalar halinde (2.5 TB) ve her parça bir LTO-6 kasetine yazılır ve bantlar saha dışına çıkar.

Şimdi şifreleme eklemek istiyorum. Genel veya özel anahtar şifrelemesini kullanarak ve bir veya daha fazla alıcıyla (yönetici ortak anahtarları) bölmeden önce tar arşivini GPG şifreleyebilirim.

Ancak, kurtarma durumunda, en az bir yöneticinin özel anahtarını yedekleme sunucusuna koyması gerekir, çünkü dosyalar başka bir yerde açılamayacak kadar büyüktür.

GPG, kaputun altında, bir oturum anahtarına sahip AES gibi simetrik bir şifreleme ile hibrit bir şifreleme şeması kullanır ve yalnızca bu oturum anahtarı, alıcılar için şifrelenmiş genel-özel anahtarı alır.

Bir yöneticinin , özel anahtarı yedekleme sunucusuna koymadan kurtarılacak dosyanın şifresini çözmek için oturum anahtarını sağlamasına izin vermenin bir yolu var mı ?


Tabii ki tekerleği yeniden keşfedebilirim:

  • yedeklenecek her dosya için yedek sunucuda rastgele bir oturum anahtarı oluşturun
  • dosyayı şifrelemek için GPG simetrik şifreleme kullanın
  • her alıcı için oturum anahtarını şifrelemek için GPG asimetrik şifreleme kullanın

Ancak yukarıda başarmanın bir "standart" veya yerleşik veya en iyi uygulama yolu var mı?

Yanıtlar:


18

Bu --show-session-keyve --override-session-keyseçenekleriyle kesinlikle mümkündür .

Öncelikle şifrelenmiş dosyanızın başlangıcına ihtiyacınız var. Şifrelenmiş oturum anahtarının saklandığı yer burasıdır.

root@qwerty:~/gpg# head -c 1024k bigfile.gpg > head.gpg

Ardından iş istasyonunuza kopyalayın ve oturum anahtarını alın

PS C:\Users\redacted\Downloads> gpg --show-session-key .\head.gpg
gpg: encrypted with 2048-bit RSA key, ID DC21D645, created 2016-02-01
  "admin <admin@domain.tld>"
gpg: session key: '9:926EC16DF1248A1C4401F5AD5D86C63C1BD4BF351ECEFB121C57EC209DE3933D'

Artık oturum anahtarınızı kullanarak dosyanın şifresini çözebilirsiniz

root@qwerty:~/gpg# gpg -d -o bigfile --override-session-key 9:926EC16DF1248A1C4401F5AD5D86C63C1BD4BF351ECEFB121C57EC209DE3933D bigfile.gpg
gpg: encrypted with 2048-bit RSA key, ID DC21D645, created 2016-02-01
  "admin <admin@domain.tld>"

Bu sorun için gerçekten harika bir çözüm
Lars

Teşekkürler!! Güzel hile headve böyle. Yaklaşım orijinal kaşıntımı çözüyor.
oberstet

4

Sorunuzun çoğu yanıtlanmış gibi görünüyor, ancak yönetici ekibiniz yerel anahtarlarından çıkan özel anahtarlara karşı ihtiyatlı davranıyorsa sshfs, uzaktan yedeklemeleri bir ssh oturumu üzerine monte etmeyi düşünebilirsiniz .

Her uzak yöneticinin sistemine apt üzerinden yükleme

sudo apt-get install sshfs

Yöneticilerin ssh yapılandırmasının aşağıdaki gibi olduğunu varsayarsak

# configuration for ssh login to remote server
Host Remote
    Hostname Remote.web.domain
    User admin
    IdentityFile ~/.ssh/private.key

Daha sonra yöneticileriniz montaj için aşağıdaki gibi bir şey kullanabilir

# make a mount point
mkdir -p /mnt/remote
# mount remote directory to local file system
sshfs Remote:/path/to/encrypted/dir /mnt/remote

İncelemeden sonra bağlantısını kesmek için uzak yönetici aşağıdakileri kullanabilir

fusermount -u /mnt/remote

Sshfs kullanmanın en tatlı yanı, uzak sunucuda sadece GnuPG ve ssh için ortak anahtarlara ihtiyaç duyulması, ilgili özel anahtarların sahip oldukları sistemlerde kalmasıdır. İkinci güzel bit, dosya bilgilerinin çoğu okunana veya erişilene kadar ilgili dosya sisteminde kalmasıdır.

Hala günlüklerin veya dizinlerin otomatik şifrelemesini kolaylaştıracak araçlar arıyorsanız, GitHub'a (özellikle kullanım için yazılmış Senaryo Dördüncü) ittiğim konsept aracının profisini kontrol etmek isteyebilirsiniz; sshsfGnuPG üzerinden veri. Ancak deneysel olduğu ve bazı özelliklerinin yanlış kullanıldığında verilerin bozulmasına neden olabileceği konusunda uyarılmalıdır. Kaynak kodu ~ 1600 ~ satırlarından daha azdır, bu nedenle bir haftasonundan daha kısa sürede denetlemek çok mümkündür.

Uzak sunucunun ssh yapılandırmasını kullanıcıları yalnızca şifrelenmiş dizine erişime izin verecek ve bu şekilde kullanılan yöneticiler için etkileşimli kabuğu devre dışı bırakacak şekilde ayarlayarak ek güvenlik sağlanabilir.


2

Gizli anahtarın sabit disklerden uzak tutulmasını istiyorsanız, bir ramdisk (bunları hatırlayın?) Oluşturabilir ve gizli anahtarları gerektiği gibi güvenli sunucudaki konumunuzdan yükleyebilirsiniz. Şifre çözme için ve bittiğinde / dev / random ile üzerine yazın. Sır, GPG tarafından kullanılmak için RAM'e girmek zorunda, neden iki kez olmasın?

Gizli bir anahtarın RAM'de bile sunucuda olmasına izin veremiyorsanız, teknik bir imkansızlığınız vardır. GPG, herhangi bir şeyin şifresini çözmek için bir yerde gizli anahtara sahip olmalıdır.

Ramdisk bilgisi: /unix/66329/creating-a-ram-disk-on-linux


2
GPG, şifrelenen her mesaj için farklı olan mesaj başına simetrik bir sır ("oturum anahtarı") kullanır. Teknik olarak ilgili mesajın şifresini çözen makinede olması gereken bu simetrik anahtardır. GPG (asimetrik) özel anahtarı çevrimdışı tutmak istiyorum. İkincisi GPG tarafından simetrik oturum anahtarını şifrelemek için kullanılır. Bu yönlerden yararlanan bir programdan
sonrayım
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.