WinodwsでISOイメージの整合性をチェックする

PC

Linux ユーザーの間では、データが改竄されていないか破損していないか確認するためによく用いられる整合性チェックですが、Windows ユーザーの間ではあまり知られていないと思います。

そこで今回は、WinodwsでISOイメージの整合性をチェックする方法について書き残しておきたいと思います。環境は Windows 11 Home 64bit バージョン22H2です。

またここでは、整合性確認のために Linux Mint 21 Cinnamon Edition のISOイメージを使います。

下準備

まず Linux Mint の公式サイトのダウンロードページから以下のファイルをダウンロードします。

  • Linux Mint 21 Cinnamon Edition のISOファイル
  • sha256sum.txt
  • sha256sum.txt.gpg (ダウンロードサイトにない、あるいは後述する信頼性チェックをしない場合は不要)

この時、必ず右クリックを押して「名前をつけてリンク先を保存」でダウンロードしてください。左クリックや他の方法でのダウンロードは認証に失敗すると書かれています。

It is essential that at step 3 you follow the instruction to right click the links and select to Save as…(exact wording varies depending on your browser, e.g. Save Link As… in Chrome and Firefox). Left clicking the files and saving the contents in other ways will lead to authentication failure.

https://forums.linuxmint.com/viewtopic.php?f=42&t=291093

整合性のチェックをする (Integrity Check)

先程のファイルを保存した場所でコマンドプロンプトを開きます。ここでは保存場所がデスクトップということで話を進めます。

整合性のチェックには Windows Vista や Windows Server 2008 以降に標準で付属している certutil を使います。使い方は以下の通りです。

Certutil -hashfile [filename] [アルゴリズム]

アルゴリズムには「MD2」「MD4」「MD5」「SHA1」「SHA256」「SHA384」「SHA512」のいずれかを指定できます (デフォルトではSHA1が指定されます)。今回はsha256sum.txtなので、アルゴリズムには「SHA256」を指定します。

certutilコマンドを実行し、linuxmint-21-cinnamon-64bit.isoの整合性をチェックします。

C:\Users\YourName\Desktop>Certutil -hashfile linuxmint-21-cinnamon-64bit.iso SHA256

画像のようにハッシュ (f524114e4a10fb04ec428af5e8faf7998b18271ea72fbb4b63efe0338957c0f3)CertUtil: -hashfile コマンドは正常に完了しました と出ればハッシュは無事に取得できています。

なお、CertUtilコマンドはワイルドカード(*)が指定できないので複数のファイルをチェックするには for コマンドを使う必要があります。以下はDesktopディレクトリにある全てのファイルの整合性をチェックするコマンドです。

C:\Users\YourName\Desktop>for %i in (*.*) do @certutil -hashfile "%1" SHA256

後は、以下のようにfindコマンドを使って sha265sum.txt の中のハッシュと linuxmint-21-cinnamon-64bit.iso のハッシュが一致していることを確かめます。

>find "f524114e4a10fb04ec428af5e8faf7998b18271ea72fbb4b63efe0338957c0f3" sha256sum.txt

以下の画像のように linuxmint-21-cinnamon-64bit.iso と出てきたら整合性に問題はありません

信頼性のチェックをする (Authenticity Check)

sha256sum.txt の信頼性も確認したい場合は、以下のサイトからGnuPGインストーラーをダウンロードしインストールします。

GnuPG - Download

以下のコマンドをコマンドプロンプトにコピペして実行してください。

C:\Users\YourName\Desktop>gpg --keyserver hkps://keyserver.ubuntu.com:443 --recv-key 27DEB15644C6B3CF3BD7D291300F846BA25BAE09

最後に、以下のコマンドを実行して sha256sum.txt の信頼性をチェックします。

C:\Users\YourName\Desktop>gpg --verify sha256sum.txt.gpg sha256sum.txt

gpg: Good signature from “Linux Mint ISO Signing Key <root@linuxmint.com>”」 と表示されていれば信頼性も問題ありません。

ちなみにその後に「WARNING」と警告が出ていますが「後に出てくる警告は無視して構いません」と書かれているので無視してOKです。

You can ignore the warning that comes after that, it is expected and perfectly normal.

https://forums.linuxmint.com/viewtopic.php?f=42&t=291093

感想

実は Linux Mint は、2016年2月20日~21日にかけて公式サイトが何者かによって改竄され、ISOイメージにバックドアが仕込まれて情報の流出といった被害に遭った経緯があります。詳しくは以下の記事や「Linux Mint 2016 改竄」で検索すると出てくると思います

バックドア仕込んだ「Linux Mint」、Webサイト改ざんしてダウンロードさせる
何者かがLinux Mint ISOを改ざんしてバックドアを仕込み、同プロジェクトのWebサイトをハッキングして改ざん版をダウンロードさせていた。

こういったこともあるので、手間はかかりますがセキュリティを考えるととても重要な作業なので忘れないようにしましょう。

参考にさせていただいたサイト様

How to verify the ISO image on Windows - Linux Mint Forums
Verify your ISO image — Linux Mint Installation Guide documentation
Windowsでファイルのハッシュ値を取得する方法
フリーソフトやLinux系OSのインストーラのISOなど、インターネット上から自由に入手できるソフトウェアには…
【Windows 11対応】MD5/SHA-1/SHA-256ハッシュ値を計算してファイルの同一性を確認する
Webサイトなどで配布されているファイルは、ダウンロード時に破損したり、悪意のある攻撃者によって改ざんされていたりする可能性がある。ダウンロードしたファイルの「ハッシュ値」を計算して、正しいファイルであるかどうかをチェックする方法を解説する...

コメント

  1. 鹿せんべい より:

     ダウンロードした isoファイル linuxmint-21.2 の検証方法を求めて、こちらのサイトにたどり着きました。
    整合性のチェック、信頼性のチェック、ともに無事終えることができました。ひとえに xerus さまのわかりやすい記事のおかげです。ありがとうございました。