Hashdeep: Linuxでのファイル検証における強力なツール

経験豊富なLinuxユーザーとして、10年以上の経験を積んできました。システム管理、セキュリティ、およびフォレンジックのさまざまな側面で役立つ多くのツールに触れてきました。

私が特に役立つと感じるそのようなツールの1つは、hashdeepです。これは、主にファイルの整合性チェックと暗号ハッシュの検証に使用される強力なコマンドラインユーティリティです。

この記事では、hashdeepが何であるか、どのように機能するか、およびLinux環境で効果的に使用する方法について詳しく説明します。

hashdeepとは何ですか?

hashdeepは、ファイルのハッシュを計算、比較、および検証するためのツールであり、これらはファイルの内容にハッシュ関数(例:SHA-256MD5)を適用して作成される一意の識別子です。これらのハッシュはファイルの「指紋」として機能します。2つのファイルが同じハッシュを持っているとき、それはその内容が同一であることを意味します。

hashdeepは、MD5SHA-1SHA-256など複数のハッシュアルゴリズムをサポートしており、さまざまなユースケースに柔軟に対応しています。

最も一般的に使用されるのは:

  • ファイルの整合性チェック: ファイルが改ざんされていないか、または時間の経過とともに破損していないことを確認する。
  • デジタルフォレンジックス: 法医学調査においてファイルの整合性を検証する。
  • バックアップとリストア: バックアップファイルの整合性を検証し、リカバリープロセス中にデータの整合性を確保する。

Linux に hashdeep をインストールする

使用法に入る前に、まず Linux システムに hashdeep をインストールします。ほとんどのディストリビューションパッケージリポジトリで利用可能なので、インストールは簡単です。

sudo apt install hashdeep         [On Debian, Ubuntu and Mint]
sudo yum install hashdeep         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/hashdeep  [On Gentoo Linux]
sudo apk add hashdeep             [On Alpine Linux]
sudo pacman -S hashdeep           [On Arch Linux]
sudo zypper install hashdeep      [On OpenSUSE]    
sudo pkg install hashdeep         [On FreeBSD]

インストールが完了したら、hashdeep を使用してファイルのハッシュを計算および検証できます。

以下に、最も一般的な使用例を示します。

1. ファイルのハッシュを計算する

hashdeep の最も基本的な使用法は、単一ファイルまたは複数ファイルのハッシュを計算することです。

hashdeep -c sha256 myqr.png

このコマンドでは:

  • -c sha256 がハッシュアルゴリズムを指定します(この場合は SHA-256)。
  • myqr.png はハッシュを計算したいファイルです。

好みに応じて、sha256md5sha1、またはその他のサポートされているアルゴリズムに置き換えることができます。

Calculating File Hashes in Linux

2. ディレクトリ内のファイルを再帰的にハッシュ化する

サブディレクトリを含むディレクトリ内のすべてのファイルをハッシュ化するには、-r フラグ(再帰的)を使用します。

hashdeep -c sha256 -r /path/to/your/directory
Recursively Hashing a Directory

3. ハッシュをファイルに保存

計算されたハッシュを後で比較するためにファイルに保存したい場合は、-oオプションを使用して出力ファイルを指定できます。

hashdeep -r ravi > hashes.txt
cat hashes.txt
Save Calculated Hashes to a File

4. ファイルの整合性を検証する

hashdeepの最も重要な用途の1つは、ファイルの整合性を検証することです。既知のハッシュ値のリスト(例:以前のセッションから)がすでにある場合は、現在のファイルのハッシュをこれらの既知の値と比較して、ファイルが変更されていないかどうかを確認できます。

これを行うには、次のコマンドを使用してファイルを検証します:

hashdeep -a -k hashes.txt -r /home/ravi/ravi

このコマンドは、「ravi」ディレクトリ内のすべてのファイルをhashes.txtにリストされたハッシュと比較し、それらの整合性を適切に検証できます。

Verifying File Integrity

5. 複数のハッシュを同時に生成する

一度に複数の種類のハッシュ(例:MD5、SHA-1、SHA-256など)を計算するには、-cフラグで複数のアルゴリズムを指定できます:

hashdeep -c md5,sha1,sha256 -r /path/to/your/directory
Calculate Multiple Hashes
結論

hashdeepは、ファイルの整合性チェックやデジタルフォレンジックスにおいて汎用性と強力な機能を持つツールです。複数のハッシュアルゴリズムのサポート、再帰的ディレクトリハッシング、ファイル比較などがセキュリティ、フォレンジクス、システム管理に従事するすべての人にとって不可欠なユーティリティとなっています。

Source:
https://www.tecmint.com/hashdeep-file-integrity-checker/