私は、バックアップするディレクトリサーバーのxz
圧縮tar
アーカイブを作成するバックアップサーバーを持っています。これらのtarアーカイブは巨大(複数TB)になり、split
に断片(2.5TB)になり、各断片はLTO-6テープに書き込まれ、テープはオフサイトに移動します。
次に、暗号化を追加します。分割する前に、公開鍵と秘密鍵の暗号化を使用して、1人以上の受信者(管理公開鍵)を使用して、tarアーカイブをGPGで暗号化できます。
ただし、リカバリの場合、ファイルが大きすぎて他の場所に解凍できないため、少なくとも1人の管理者が自分の秘密鍵をバックアップサーバーに配置する必要があります。
GPGは、内部でハイブリッド暗号化スキームを使用し、セッション鍵を使用したAESのような対称暗号を使用し、そのセッション鍵のみが受信者に対して公開鍵と秘密鍵を暗号化します。
復元するファイルを復号化するためのセッションキーを管理者に提供させる方法はありますかバックアップサーバーに秘密キーを配置せずに?
もちろん、ホイールを再発明することもできます。
しかし、上記を達成するための「標準」または組み込みの、またはベストプラクティスの方法はありますか?
これは、--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 <[email protected]>"
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, ID DC21D645, created 2016-02-01
"admin <[email protected]>"
あなたの質問のほとんどは答えられているように見えますが、管理者チームがローカル制御から外れる秘密鍵に警戒している場合は、sshセッションでリモートバックアップをマウントすることをsshfs
に検討するかもしれません。
各リモート管理者のシステムにaptを介してインストールします
Sudo apt-get install sshfs
管理者のssh構成が次のようになっていると仮定します
# configuration for ssh login to remote server
Host Remote
Hostname Remote.web.domain
User admin
IdentityFile ~/.ssh/private.key
次に、管理者は以下のようなものを使用してマウントできます
# make a mount point
mkdir -p /mnt/remote
# mount remote directory to local file system
sshfs Remote:/path/to/encrypted/dir /mnt/remote
検査後にマウントを解除するには、リモート管理者は次を使用できます
fusermount -u /mnt/remote
Sshfsを使用することの利点は、リモートサーバーではGnuPGとsshの公開鍵のみが必要であり、関連する秘密鍵は所有しているシステムにとどまることです。 2つ目のいい点は、読み取りまたはアクセスされるまで、ほとんどのファイル情報が関連するファイルシステムにとどまることです。
ログまたはディレクトリの自動暗号化を容易にするツールをまだ探している場合は、私がプッシュしたコンセプトツールの専門家を確認する必要があるかもしれません GitHub (具体的には シナリオ4sshsf
用に作成)少しカスタマイズすると、GnuPGを介してほぼすべてのデータを暗号化できます。ただし、これは実験的なものであり、その機能の一部を誤用するとデータが破損する可能性があることに注意してください。ソースコードは〜1600〜行未満であるため、週末よりも短い期間で監査することが非常に可能です。
リモートサーバーのssh設定をchrootユーザーに設定して、暗号化されたディレクトリへのアクセスのみを許可し、この方法で使用される管理者キーのインタラクティブシェルを無効にすることで、セキュリティを強化できます。
秘密鍵をハードディスクから切り離したい場合は、ramdiskを作成し(それらを覚えていますか?)、必要に応じて安全なサーバー上ではない場所から秘密鍵をそこにロードします。復号化に使用し、完了したら/ dev/randomで上書きします。秘密はRAM=とにかくGPGで使用される必要があるので、なぜ2度しないのですか?
RAM上であっても、サーバー上に秘密鍵を置くことができない場合、技術的に不可能です。 GPGは、何かを復号化するために、どこかに秘密鍵を持っている必要があります。
Ramdisk情報: https://unix.stackexchange.com/questions/66329/creating-a-ram-disk-on-linux