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 PowerShell) を開きます。
整合性のチェックには 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の整合性をチェックします。
Certutil -hashfile linuxmint-21-cinnamon-64bit.iso SHA256
以下の画像のように SHA256 のハッシュ と CertUtil: -hashfile コマンドは正常に完了しました というメッセージが出ればOKです。
ここで出力されたハッシュは、後ほど使うのでを [Ctrl] + [C] でコピーしておきます。ここでは、f524114e4a10fb04ec428af5e8faf7998b18271ea72fbb4b63efe0338957c0f3 がハッシュです。
後は find コマンドを使って sha265sum.txt の中のハッシュと linuxmint-21-cinnamon-64bit.iso のハッシュが一致していることを確かめます。先ほどコピーしておいたハッシュを貼り付けて以下を実行します。
find "f524114e4a10fb04ec428af5e8faf7998b18271ea72fbb4b63efe0338957c0f3" sha256sum.txt
以下の画像のように linuxmint-21-cinnamon-64bit.iso と出てきたら整合性に問題はありません。
なお、CertUtilコマンドはワイルドカード(*)が指定できないので複数のファイルをチェックするには for コマンドを使う必要があります。以下は現在いるディレクトリにある全てのファイルの整合性をチェックするコマンドです。
for %i in (*.*) do @certutil -hashfile "%1" SHA256
信頼性のチェックをする (Authenticity Check)
sha256sum.txt の信頼性も確認したい場合は、以下のサイトからGnuPGインストーラーをダウンロードしインストールします。
以下のコマンドをコマンドプロンプトにコピペして実行してください。
gpg --keyserver hkps://keyserver.ubuntu.com:443 --recv-key 27DEB15644C6B3CF3BD7D291300F846BA25BAE09
最後に、以下のコマンドを実行して sha256sum.txt の信頼性をチェックします。
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 改竄」で検索すると出てくると思います
こういったこともあるので、手間はかかりますがセキュリティを考えるととても重要な作業なので忘れないようにしましょう。
コメント
ダウンロードした isoファイル linuxmint-21.2 の検証方法を求めて、こちらのサイトにたどり着きました。
整合性のチェック、信頼性のチェック、ともに無事終えることができました。ひとえに xerus さまのわかりやすい記事のおかげです。ありがとうございました。
コメントありがとうございます。
こちらこそお役に立てて嬉しいです。