Linuxでのチェックサムの検証方法

チェックサムとは、ソフトウェアからハッシュ関数を使用して導出されたテキストの文字列です。同じチェックサムは二つと存在しません。インターネットからソフトウェアをダウンロードする際、その整合性を確認する一つの方法は、チェックサムをウェブサイトが提供するものと比較することです。一致する場合、そのソフトウェアは正規品であり、改ざんされていません。ここでは、Linuxでチェックサムを確認し検証する方法をお教えします。
これはターミナルで簡単に行えますが、ここではグラフィカルツールである超シンプルなGtkHashを用いてチェックサムを確認し、検証する方法を学びます。
また読む: ハッシュ化と暗号化:パスワードがサーバーにどのように保存されているか
インストール
ほとんどのLinuxディストリビューションでは、パッケージマネージャーやソフトウェアセンターでGtkHashを見つけることができます。Ubuntuまたは互換性のあるディストリビューションを使用していて、ターミナルからインストールする場合、次のコマンドを使ってGtkHashをインストールできます:
sudo apt install gtkhash
openSUSEでは、インストールする前にリポジトリを追加する必要があります。詳細情報はここを参照してください。
ArchおよびManjaroの場合:
sudo pacman -S gtkhash
インストールが完了したら、インストールしたアプリケーションの中からそれを探して実行します。
ハッシュを作成する
GtkHashのインターフェースは非常に直感的です。1つ以上のファイルのハッシュを計算するには、左上の「追加」ボタンをクリックします。

リクエイザーを使用してファイルの場所を指定し、ファイルを選択します。Ctrlキーを押しながらクリックすることで、複数のファイルを選択できます。次に、右上の「開く」ボタンをクリックしてコマンドを完了させます。

GtkHashのリストには、選択したファイルが表示されます。必要に応じて、前の手順を繰り返してさらにファイルを追加できます。

GtkHashのウィンドウの右下にある「ハッシュ」ボタンをクリックして、リスト内のすべてのファイルのハッシュを計算します。
GtkHashはデフォルトで複数のハッシュタイプを計算し、それらを各ファイルの隣の列に表示します。

ファイルのハッシュをクリップボードにコピーするには、ファイルを右クリックし、「ダイジェストをコピー」サブメニューから好みのハッシュタイプを選択します。その後、コピーされたハッシュをどこかに貼り付けて参照用にします。

また、ハッシュをファイルに保存するには「ファイル -> 名前を付けて保存」を使用します。

ハッシュをチェックする
GtkHashを使用してファイルのデータ整合性を確認するには、「ファイル -> 開く」を選択し、メインファイルに付随するハッシュファイルを選択します。ハッシュファイルは通常「sha1」、「md5」、または「sfv」拡張子を持っており、GtkHashはすべての一般的な形式をサポートしています。

ファイルが読み込まれたら、右下の「ハッシュ」ボタンをクリックします。GtkHashはファイルのハッシュを計算し、報告されたものと比較し、結果を表示します。スクリーンショットのように、2つの一致と2つの失敗がありました。

より多くのハッシュ
GtkHashには最も一般的なハッシュアルゴリズムが有効になっていますが、それだけがサポートされているわけではありません。詳細については「編集 -> 設定」を訪れてください。

あなたのお気に入りのハッシュ関数が見つかる可能性のある、2ダースを超える異なるハッシュ関数から選択できます。

ターミナルでのチェックサムの比較
サーバー環境にいる場合、チェックサムを比較する唯一の方法はターミナルを介してです。幸いなことに、ターミナルでファイルのハッシュをチェックして作成するのは、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でチェックサムを検証するのは簡単ですが、すべてのファイルのハッシュをチェックするのは現実的ではありません。これは、敏感なデータやウェブからダウンロードしたLinux ISOに対して行うべきことです。Macを使用している場合、同様の方法が適用されます。