Linuxでチェックサムを確認・検証する方法|GtkHashとターミナルコマンドの使い方
チェックサムとは、ハッシュ関数を使ってソフトウェアから生成される文字列のことです。異なるデータから同一のチェックサムが生成されることはありません。インターネットからソフトウェアをダウンロードする際、その整合性を確認する方法の一つが、ダウンロードしたファイルのチェックサムと、配布元ウェブサイトが公開しているチェックサムを比較することです。両者が一致すれば、そのソフトウェアは本物であり、改ざんされていないことが確認できます。
この記事では、Linuxでチェックサムを確認・検証する方法を紹介します。ターミナルでも簡単に行えますが、今回は超シンプルなGUIツール「GtkHash」を使った方法も合わせて解説します。
GtkHashのインストール
多くのLinuxディストリビューションでは、パッケージマネージャーやソフトウェアセンターからGtkHashを入手できます。Ubuntuおよび互換性のあるディストリビューションでターミナルからインストールする場合は、以下のコマンドを実行します。
sudo apt install gtkhash
openSUSEの場合は、インストール前に専用のリポジトリを追加する必要があります。詳細は公式ドキュメントをご確認ください。
ArchやManjaroの場合は、以下のコマンドを使用します。
sudo pacman -S gtkhash
インストールが完了したら、アプリケーション一覧からGtkHashを探して起動しましょう。
ハッシュ値を作成する
GtKHashのインターフェースは非常に直感的です。1つまたは複数のファイルのハッシュ値を計算するには、左上にある「Add」ボタンをクリックします。
ファイル選択ダイアログで対象ファイルの場所を指定して選択します。Ctrlキーを押しながらクリックすると、複数のファイルをまとめて選択できます。選択が完了したら、右上の「Open」ボタンをクリックします。
選択したファイルがGtkHashのリストに追加されます。必要に応じて、同じ手順を繰り返してさらにファイルを追加することも可能です。
ウィンドウ右下の「Hash」ボタンをクリックすると、リスト内のすべてのファイルのハッシュ値が計算されます。
GtKHashはデフォルトで複数種類のハッシュを同時に計算し、各ファイルの横に列として表示してくれます。
ファイルのハッシュ値をクリップボードにコピーするには、該当ファイルを右クリックし、「Copy Digest」サブメニューから希望のハッシュタイプを選択します。コピーしたハッシュは、後で参照できるようテキストエディタなどに貼り付けて保存しておくと便利です。
また、「File → Save As」から、ハッシュ値をファイルとして保存することもできます。
ハッシュ値を照合する
GtKHashでファイルのデータ整合性を確認するには、「File → Open」を選択し、本体ファイルに付属していたハッシュファイルを読み込みます。ハッシュファイルの拡張子は通常「sha1」「md5」「sfv」などで、GtkHashは主要なフォーマットにすべて対応しています。
ファイルが読み込まれたら、右下の「Hash」ボタンをクリックします。GtkHashが自動的にハッシュ値を計算し、記録されている値と比較して結果を表示します。スクリーンショットの例では、2件が一致(OK)、2件が不一致(FAILED)という結果になりました。
対応ハッシュアルゴリズムを追加する
GtKHashには人気の高いハッシュアルゴリズムがデフォルトで有効化されていますが、それ以外にも多数のアルゴリズムをサポートしています。「Edit → Preferences」を開いてみましょう。
20種類以上のハッシュ関数から選択できるので、お好みのアルゴリズムがきっと見つかるはずです。
ターミナルでチェックサムを比較する
サーバー環境などGUIが使えない場面では、ターミナル経由でチェックサムを比較することになります。幸い、ターミナルでのファイルハッシュの作成と確認は、GUIツールを使うのと同じくらい簡単です。ほとんどのディストリビューションには標準で以下のようなツールが用意されています。
- md5sum
- shasum
- sha256sum
- sha384sum
- sha512sum
いずれも使い方は共通しており、コマンド名の後にハッシュを計算したいファイル名を指定するだけです。例えば、ダウンロードしたArch LinuxのインストールISOのSHA-512ハッシュを計算するには、次のように入力します。
sha512sum archlinux-2020.05.01-x86_64.iso
上記のsha512sumが、使用するハッシュアルゴリズムを指定するコマンドです。少し待つと、画面にSHA-512のハッシュ値が表示されます。
後日ファイルを再確認したい場合のために、結果を画面ではなくファイルに出力しておくと便利です。ハッシュコマンド自体にその機能はありませんが、Linuxではリダイレクトを使うだけで実現できます。コマンドの後に>記号とファイル名を付けると、出力結果が画面に表示される代わりにファイルへ保存されます。sha256sumでも同様です。
sha256sum archlinux-2020.05.01-x86_64.iso > archlinux-2020.05.01-x86_64.iso.sha256
これにより、結果が通常のテキストファイルに出力されます。ファイルの中身を開くと、ハッシュ値の後にファイル名が記録されているのが確認できます。
ファイルとハッシュを照合するには、コマンドに-cオプションを追加し、本体ファイルの代わりにハッシュファイルを指定するだけです。具体的には、次のようなコマンドになります。
sha256sum -c archlinux-2020.05.01-x86_64.iso.sha256
Linuxでチェックサムを検証するのは非常に簡単ですが、すべてのファイルに対してハッシュを確認するのは現実的ではありません。機密性の高いデータや、WebからダウンロードしたLinux ISOなど、重要度の高いファイルに対して実施するのがおすすめです。なお、Macをお使いの場合も、基本的に同じ方法でチェックサムを確認できます。
-
LinuxでZsyncを使ってファイルの差分だけをダウンロード・更新する方法
ISOイメージのような大容量ファイルのダウンロードは、本当にストレスがたまる作業です。インターネット回線の速度によってはダウンロードに長時間かかり、ハードディスクの容量も大量に消費します。さらに厄介なのは、更新版が必要になったときに、同じダウンロード作業を最初からやり直さなければならない点です。 しかし、そんな悩みを解決してくれるツールがあります。それがZsyncです。ZsyncはLinux向けのファイル同期ツールで、ファイル全体を再ダウンロードすることなく、変更された部分だけを更新できるのが最大の特徴です。 Zsyncは、ファイルやディレクトリの同期でおなじみの人気ツールrsyncをベース
-
Linuxでファイルを完全に削除する方法|復元不能にする5つのテクニック
Linuxオペレーティングシステムでは、削除したファイルはまずゴミ箱へ移動します。ゴミ箱を空にすると、ファイルはシステムから削除されたように見えます。しかし、データ復元ソフトの需要が高まる昨今、ゴミ箱から削除したファイルでも、ある程度まで復元できてしまうのが実情です。つまり、ゴミ箱から取り除かれたファイルは完全に消去されたわけではなく、単に見えなくなっただけなのです。ファイルはハードディスクのどこかに残り続け、不要な領域を占有します。新しいファイルが作成され、同じセクターに上書き保存されて初めて、物理的には完全に消去されることになります。貴重なディスク容量を回収し、ファイル破損を防ぐためにも、