LinuxのISOのチェックサムを確認し、改ざんされていないことを確認する方法
先月、Linux Mintのウェブサイトがハッキングされ、バックドアが含まれた改変されたISOがダウンロード用にアップロードされました。問題はすぐに修正されましたが、ダウンロードしたLinuxのISOファイルを実行およびインストールする前に確認する重要性を示しています。方法は以下の通りです。
Linuxディストリビューションはチェックサムを公開しているので、ダウンロードしたファイルが主張しているものであることを確認できます。また、これらはしばしば署名されているため、チェックサム自体が改ざんされていないことも確認できます。これは、主要なサイト以外の場所、例えばサードパーティのミラーやBItTorrentを通じてISOをダウンロードする場合に特に便利です。なぜなら、そこではファイルを改ざんすることがはるかに容易だからです。
このプロセスがどのように機能するか
ISOをチェックするプロセスは少し複雑ですので、具体的なステップに入る前に、そのプロセスが何を含むのかを正確に説明しましょう:
- 通常通り、Linuxディストリビューションのウェブサイトや他の場所からLinux ISOファイルをダウンロードします。
- Linuxディストリビューションのウェブサイトからチェックサムとそのデジタル署名をダウンロードします。これらは2つの別々のTXTファイルであるか、あるいは両方のデータを含む単一のTXTファイルとして提供される場合があります。
- Linuxディストリビューションに属する公開PGPキーが手に入ります。これは、あなたのLinuxディストリビューションに応じて、Linuxディストリビューションのウェブサイトや同じ人々が管理する別のキーサーバーから取得できます。
- PGPキーを使用して、チェックサムのデジタル署名がその鍵を作成したのと同じ人物によって作成されたことを確認します。この場合、Linuxディストリビューションのメンテナが該当します。これにより、チェックサム自体が改ざんされていないことが確認されます。
- ダウンロードしたISOファイルのチェックサムを生成し、それがダウンロードしたチェックサムTXTファイルと一致するか確認します。これにより、ISOファイルが改ざんされていないことや、破損していないことが確認されます。
プロセスは異なるISOによって少し異なる場合がありますが、通常はその一般的なパターンに従います。例えば、いくつかの異なるタイプのチェックサムがあります。伝統的に、MD5サムが最も人気がありました。しかし、SHA-256サムは、SHA-256が理論的攻撃に対してより耐性があるため、現在は現代のLinuxディストリビューションでより頻繁に使用されています。ここでは主にSHA-256サムについて議論しますが、MD5サムにも同様のプロセスが適用できます。一部のLinuxディストリビューションではSHA-1サムも提供される場合がありますが、これはさらに一般的ではありません。
同様に、いくつかのディストリビューションはPGPでチェックサムに署名していません。その場合、ステップ1、2、5を実行する必要がありますが、プロセスははるかに脆弱になります。結局のところ、攻撃者がダウンロード用のISOファイルを置き換えることができれば、チェックサムも置き換えることができるのです。
PGPを使用することは非常に安全ですが、完璧ではありません。攻撃者は依然としてその公開鍵を自分のものに置き換えたり、ISOが正当なものであると思い込ませることができます。しかし、公開鍵が異なるサーバーにホストされている場合(Linux Mintの場合など)、これははるかに可能性が低くなります(攻撃者は1つだけでなく2つのサーバーをハックする必要があるため)。しかし、公開鍵がISOおよびチェックサムと同じサーバーに保存されている場合、いくつかのディストロにおいては、それほど安全性は高くありません。
それでも、もしあなたがチェックサムファイルのPGP署名を検証し、そのチェックサムでダウンロードを確認しようとしているのなら、それがLinux ISOをダウンロードするエンドユーザーとしてできるすべてです。あなたは、まったく気にしない人たちよりもはるかに安全です。
Linuxでチェックサムを確認する方法
ここではLinux Mintを例に使いますが、あなたのLinuxディストリビューションのウェブサイトで提供されている検証オプションを探す必要があるかもしれません。Linux Mintでは、ISOダウンロードのミラーサイトに2つのファイルが提供されています。ISOをダウンロードし、その後「sha256sum.txt」と「sha256sum.txt.gpg」ファイルをコンピュータにダウンロードします。ファイルを右クリックし、「リンク先を保存」を選択してダウンロードしてください。
Linuxデスクトップで、ターミナルウィンドウを開き、PGPキーをダウンロードします。この場合、Linux MintのPGPキーはUbuntuのキーサーバーでホストされており、これを取得するために次のコマンドを実行する必要があります。
gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 0FF405B2あなたのLinuxディストリビューションのウェブサイトは、必要なキーへのリンクを示してくれます。
私たちは今、必要なものすべてを揃えました:ISOファイル、チェックサムファイル、チェックサムのデジタル署名ファイル、そしてPGPキーです。それでは、次に、ダウンロードしたフォルダーに移動しましょう...
cd ~/Downloads...次に、チェックサムファイルの署名を確認するために次のコマンドを実行します:
gpg --verify sha256sum.txt.gpg sha256sum.txt
GPGコマンドがダウンロードしたsha256sum.txtファイルに「良好な署名」があることを知らせてくれた場合、続行しても構いません。以下のスクリーンショットの4行目で、GPGはこれがLinux Mintの創設者であるクレモン・レフェーブルに関連していると主張する「良好な署名」であることを伝えています。
「信頼できる署名」が付いていないことを心配しないでください。これはPGP暗号化の仕組みのためです。信頼できる人から鍵をインポートして信頼のウェブを設定していないためです。このエラーは非常に一般的です。
最後に、チェックサムがLinux Mintのメンテナーによって作成されたことがわかったので、ダウンロードした.isoファイルからチェックサムを生成し、ダウンロードしたチェックサムTXTファイルと比較するために以下のコマンドを実行してください:
sha256sum --check sha256sum.txt一つのISOファイルだけをダウンロードした場合、「そのようなファイルやディレクトリはありません」といったメッセージが多く表示されますが、ダウンロードしたファイルがチェックサムと一致する場合は、「OK」というメッセージが表示されるはずです。
ISOファイルに対して直接チェックサムコマンドを実行することもできます。それはISOファイルを調べて、そのチェックサムを出力します。その後、両方を目で見て、正しいチェックサムと一致するか確認するだけです。
例えば、ISOファイルのSHA-256ハッシュを取得するには:
sha256sum /path/to/file.isoまたは、md5sumの値を持っていて、ファイルのmd5sumを取得する必要がある場合は:
md5sum /path/to/file.iso結果をチェックサムTXTファイルと比較して、一致するかどうか確認してください。
Windowsでチェックサムを確認する方法
WindowsマシンからLinux ISOをダウンロードしている場合、そこでチェックサムを確認することもできますが、Windowsには必要なソフトウェアが組み込まれていません。したがって、オープンソースのGpg4winツールをダウンロードしてインストールする必要があります。
Linuxディストリビューションの署名キー・ファイルとチェックサムファイルを見つけてください。ここではFedoraを例にします。Fedoraのウェブサイトではチェックサムのダウンロードを提供しており、Fedoraの署名キーはhttps://getfedora.org/static/fedora.gpgからダウンロードできると教えてくれます。
これらのファイルをダウンロードした後、Gpg4winに含まれているKleopatraプログラムを使用して署名キーをインストールする必要があります。Kleopatraを起動し、「ファイル」>「証明書のインポート」をクリックします。ダウンロードした.gpgファイルを選択します。
ダウンロードしたチェックサムファイルがインポートしたキーのいずれかで署名されているか確認できます。そのためには、ファイルメニューから「ファイルを復号化/検証」を選択します。ダウンロードしたチェックサムファイルを選択し、「入力ファイルは独立した署名です」というオプションのチェックを外して、「復号化/検証」をクリックします。
この方法で行うと、エラーメッセージが表示されることは間違いありません。なぜなら、そのFedora証明書が実際に正当であることを確認する手間をかけていないからです。それはもっと難しい作業です。PGPはこのように機能するように設計されています。たとえば、個人で会って鍵を交換し、信頼のウェブを構築します。しかし、ほとんどの人はこのように使用しません。
ただし、より詳細を確認し、インポートしたキーのいずれかでチェックサムファイルが署名されていることを確認できます。これは、チェックせずにダウンロードされたISOファイルを単に信頼するよりもはるかに良いことです。
今すぐ「ファイル」>「チェックサムファイルを確認」を選択し、チェックサムファイルの情報がダウンロードした.isoファイルと一致することを確認できるはずです。しかし、私たちにはこれはうまくいきませんでした。おそらくFedoraのチェックサムファイルの形式の問題かもしれません。この操作をLinux Mintのsha256sum.txtファイルで試したところ、うまくいきました。
もしこれがあなたの好きなLinuxディストリビューションで動作しない場合、こちらに対処法があります。まず、設定をクリックし、Kleopatraを構成します。「暗号処理」を選択し、「ファイル処理」を選択して、Kleopatraに「sha256sum」チェックサムプログラムを使用するように設定します。これは、この特定のチェックサムが生成されたものであるためです。MD5チェックサムがある場合は、ここで「md5sum」を選択してください。
今、ファイルをクリックしてチェックサムファイルを作成し、ダウンロードしたISOファイルを選択します。Kleopatraは、ダウンロードした.isoファイルからチェックサムを生成し、それを新しいファイルに保存します。
これらのファイルの両方、ダウンロードしたチェックサムファイルと生成したばかりのファイルを、Notepadのようなテキストエディタで開くことができます。チェックサムが両方で同一であることを自分の目で確認してください。同一であれば、ダウンロードしたISOファイルが改ざんされていないことを確認できたことになります。
これらの検証方法は、もともとマルウェアから保護するために設計されたものではありませんでした。それらは、ダウンロードしたISOファイルが正しくダウンロードされ、ダウンロード中に壊れていないことを確認するために設計されていたので、焼いて使用する際に心配することなく利用できるのです。これらは完全に間違いのない解決策ではありません。ダウンロードしたPGPキーを信頼しなければならないからです。しかし、それでも、全くチェックせずにISOファイルを使用するよりも、はるかに多くの保証を提供します。
画像のクレジット: エドゥアルド・クアグリャートによるFlickr









