web-dev-qa-db-ja.com

暗号化されたファイルでrsyncは便利ですか?

Rsyncは暗号化されたファイルを転送するのに効率的ですか?すなわち:

  • 公開鍵で「x」を暗号化し、結果を「y」と呼びます。
  • 'y'をバックアップサーバーにrsyncします。
  • 「x」はわずかに変化します
  • 変更された「x」を暗号化し、変更された「y」をバックアップサーバーにrsyncします。

これは効率的ですか? 'x'の小さな変更が 'y'の大きな変更をもたらすことは知っていますが、変更はローカライズされていますか?または、「y」が完全に変更されたため、rsyncはscpよりもはるかに優れていませんか?

私は現在、「重要な」ファイルを毎晩tar/bzipすることでバックアップし、次に.tar.bzファイルを暗号化して、バックアップサーバーにrsyncします。

個々のファイルの多くは変更されませんが、もちろん、ファイルの1つでも変更されると、tarファイルは変更されます。

これは効率的ですか?各ファイルを個別に暗号化してバックアップする必要がありますか?そうすれば、変更されていないファイルはrsyncに時間がかかりません。

編集してさらに情報を追加します。

  • ソースは私のホームマシンです。私はそれを所有していて、安全だと考えています。

  • ターゲットは同じ場所に配置されたサーバーです。それは私のものですが、コロケーション会社は、そのマシンのハードドライブ上のすべてのネットワークトラフィックとすべてを見ることができました。

  • ソースには空き領域がほとんどありません。暗号化されたバックアップを保存してスペースを半分にしたくありません。

  • ターゲットには多くのスペースがあります。

この新しい情報に基づいて何か考えはありますか?

5
barrycarter
2
RedGrittyBrick

まず、バックアップを真剣に受け止めていただき、ありがとうございます。

純粋にrsync-transfer-efficiencyの観点から見ると、個々のファイルを圧縮および暗号化してから、それ以上暗号化または圧縮を行わないtarball それらのを作成する方がはるかに優れています。

Tarballをスキップし、暗号化/圧縮されたファイルの階層をrsyncするだけで、(ここでも転送時間のみを見ると)さらに良いでしょう。

任意の圧縮および暗号化されたファイルで、変更の時点(または実際にはbzip2のようなブロックコンプレッサーの最初の変更されたブロック)までは同じファイルを取得すると思いますが、それ以降は同期しません古いストリーム。つまり、tarballの残りの部分は異なります。

OTOHは、セキュリティの観点から、tarballを暗号化すると、ファイル名と変更パターンが非表示になり、トラフィック分析が妨げられます。

Rsyncだけを使用して増分バックアップと完全なセキュリティの両方を取得する方法がわかりません。

更新:

両端を制御している場合は、rsync -e ssh -a ...を使用できます。これはsshトンネルを使用し(これはssh_configを正しく設定して圧縮も提供します)そしてthenあなたは本当に両方の長所を持っているかもしれません。

そして最後の考えとして、 チェックアウトrdiff-backup

4
DigitalRoss

GNU tar(および場合によっては他のファイル)を使用している場合は、バックアップするすべてのファイルのtarファイルを作成し、ローカルに保存してから、「-append」を使用してファイルへのすべての更新が最後に行われるため、暗号化によって変更されていないデータがrsyncから隠されないため、非常に効率的に実行されます。欠点は、両方の場所に多くのスペースが必要であり、それぞれの場所で大きくなることです。バックアップ。利点は、変更の履歴を使用して順次バックアップを実行することです。

OS Xを使用している場合は、問題に対する簡単で効率的な解決策があります。暗号化されたスパースバンドルディスクイメージを作成し、それをrsyncします。

バンドルは、ディスクイメージのコンテンツが保存されている個々のファイルにメタデータと暗号化されたデータの小さなセグメントを含むディレクトリツリーです。固定サイズのセグメントの数は、ディスクイメージがいっぱいになると増加し(動的ハードドライブブロックと考えてください)、変更されたデータを含むセグメントのみがディスク上で変更されるため、rsyncが効率的になります。ただし、公開鍵暗号化を使用する場合は、rwアクセスを使用できるとは思えません。

セキュリティ...公開鍵暗号を使用しているため、攻撃者がバックアップされているボックスに侵入した場合、攻撃者は履歴データにアクセスできませんか? AESで公開鍵を使用する他の理由は考えられません。 rsyncを使用すると、攻撃者はバックアップするボックスにアクセスできるときに、すべてのバックアップを破棄したり、任意のバックアップで上書きしたりできることに注意してください。

1
Robert Lamont