web-dev-qa-db-ja.com

バックアップが改ざんされていないことを確認するにはどうすればよいですか?

NAS合計サイズが2TBまでのファイルがいくつかあります。ファイルが重複している可能性があるため、これを縮小できると思います。必要なものを送信して、2番目のバックアップを作成する予定です。 Googleドライブ。問題はバックアップの検証方法です。手動で検証するのに数日かかったと思いますが、バックアップ全体が改ざんされていないことを確認するより速い方法はありますか?

すべてのファイルに対して「rclone」を実行するだけでなく、バ​​ックアップを検証できる別の方法を使用してバックアップする必要がありますか?

編集:システムに関する情報を少し追加します。私のNASはArch Linuxを実行しているRaspberry Pi 3B +ですARM Aarch64

編集2:私の懸念は、ローカルバックアップドライブが故障した場合(多分誰かが故意にそれらを台無しにした場合)、私がすべてのもの(写真、音楽など)を覚えているとおりであることを100%確認する方法がないことです。

2
RansuDoragon

暗号ハッシュリスト

理論的な観点から、信頼できないメディア(リモートバックアップサーバーや無人ストレージデバイスなど)に書き込まれるデータの整合性を検証するには、何かを保持する必要があります信頼され、改ざんできない安全なメディア。それsomethingを使用すると、残りのデータが改ざんされていないことを確認できます。つまり、データ自体からいくつかの補助データ(ハッシュ、暗号化署名など)に信頼を移しています。この補助データは非常に小さく、ほとんどのメディアにローカルに保存できるため、これは望ましいことです。ドライブバックアップの場合、各ファイルでSHA-256などの暗号化ハッシュを使用できます。

find /path/to/backup -type f -exec sha256sum -- {} + > hashlist.txt

結果のテキストファイルには、ファイルとそのSHA-256ハッシュのリストが含まれています。ファイル自体は、信頼できるマシンのローカルに保存するか、暗号化して(たとえば、GnuPGまたは signify で)署名して、バックアップ自体に保存できます。これにより、バックアップへの書き込みアクセス権(ハッシュリストへの書き込みアクセス権を持たない)を持つユーザーが、検出されずにファイルを変更、追加、または削除することを防ぎます。

デジタル署名

大きなファイルシステムイメージまたはtarballにバックアップを保存している場合は、代わりにそれをハッシュすることができます。これにより、ディレクトリとメタデータを保持するという追加の利点が得られます。

tar cpf - /path/to/backup | tee backup.tar | sha256sum > backup.tar.sha256

ハッシュリストをバックアップ自体に保存する場合は、ハッシュリストが検出されずに改ざんされないようにする必要があります。これを行う最も一般的な方法は、GPGを使用することです。 署名キーを作成した を取得したら、ファイルがハッシュリストであってもtarball全体であっても、 ファイルに署名 できます。署名はバックアップと一緒に保存でき、対応する公開鍵を使用してバックアップを安全に検証できます。公開鍵のローカルコピーを保持し、秘密鍵が敵の手に渡らないようにしてください。この手法には、セキュリティ指向の スマートカード と互換性があるという利点があります。

安全なバックアップユーティリティ

完全性と機密性を提供するバックアップ専用に設計されたツールがいくつかあります。 Duplicity たとえば、クライアント側の暗号化された増分バックアップを、Googleドライブを含む多数のオンラインデータホストに送信できます。公開鍵と秘密鍵のペアを使用してバックアップを暗号化および署名しますが、代わりに対称鍵(プレーンパスフレーズ)を使用することもできます。増分バックアップがサポートされているため、大きなドライブの初期バックアップのみにかなりの時間がかかります。以降のバックアップでは、変更されたファイルのみが送信されます。

duplicity /path/to/backup gdocs://user[:password]@other.Host/some_dir 

バックアップから復元するとデータが検証され、データを手動で検証することもできます。 GPGと同様に、キーペアを信頼できるメディア(ローカルドライブまたはスマートカード)に保存する必要があります。秘密鍵への読み取りアクセスは、公開鍵への書き込みアクセスと同様に、有効な署名を偽造することを可能にします。

これは私が使用するものです。

注意すること

ハッシュ値がハッシュされるファイルの内容の忠実な表現であることを保証するために、強力なハッシュ関数を使用する必要があります。 MD5またはSHA-1はどちらも壊れているため、使用は避けてください(内容が異なるが同じハッシュの2つのファイルを作成できるため)。 SHA-256アルゴリズムが最も一般的ですが、SHA-3-256とBLAKE2bも使用できます。

キーペアを生成している場合(GnuPGを使用してハッシュリストまたはアーカイブ、またはDuplicityなどのキーペアを必要とするバックアップユーティリティに署名しているため)、強力なアルゴリズムを使用する必要があります。業界標準は、暗号化および署名用のRSAであり、2048以上のキーサイズを備えています。

コメントで、これを使用して、問題のあるファイルがあなたの知識で追加されなかったことを証明できるようにしたいと述べています。これは法廷で飛ぶ可能性は低いです。なぜなら、あなたが新しい有罪のファイルをアップロードし、それを主張するためにnotに署名することは簡単だからです。あなたが追加したのではありません。これにより、ローカルハッシュリスト(または署名キー)を信頼するのと同じくらい、バックアップを信頼することができます。

9
forest