我有一个备份服务器,它创建要备份的目录树的xz压缩tar档案.这些tar档案可以变得庞大(多个TB),被分成几块(2.5TB),每一块都被写入LTO-6磁带,而磁带也会出现在异地.
现在我想添加加密.我可以在拆分之前使用公钥 – 私钥加密以及一个或多个收件人(管理员公钥)来加密tar存档.
但是,在恢复的情况下,至少有一个管理员需要将他的私钥放到备份服务器上,因为这些文件太大而无法在其他任何地方解压缩.
GPG使用混合加密方案,使用AES等对称密码和会话密钥,只有该会话密钥才能为收件人加密公钥 – 私钥.
有没有办法让管理员提供会话密钥来解密要恢复的文件,而无需将私钥放到备份服务器上?
我当然可以重新发明轮子:
>根据要备份的每个文件在备份服务器上创建随机会话密钥
>使用GPG对称加密来加密文件
>使用GPG非对称加密来加密每个收件人的会话密钥
但是,是否有“标准”或内置或最佳实践方式实现上述目标?
解决方法
使用–show-session-key和–override-session-key选项绝对可以实现.
首先,您需要加密文件的开头.这是存储加密会话密钥的位置.
root @ qwerty:〜/ gpg #head -c 1024k bigfile.gpg> head.gpg
然后将其复制到工作站并检索会话密钥
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'
现在,您可以使用会话密钥解密文件
root@qwerty:~/gpg# gpg -d -o bigfile --override-session-key 9:926EC16DF1248A1C4401F5AD5D86C63C1BD4BF351ECEFB121C57EC209DE3933D bigfile.gpg gpg: encrypted with 2048-bit RSA key,created 2016-02-01 "admin <admin@domain.tld>"