LinuxにおけるISOファイルのチェック:チェックサム、GPG、およびベストプラクティス

  • ISOファイルの検証には、チェックサムを用いたファイルの完全性の確認と、GPG署名を用いたファイルの真正性の確認の両方が含まれます。
  • md5sum、sha1sum、sha256sumユーティリティを使用すると、ターミナルから簡単にハッシュ値を計算および確認できます。
  • SHA256SUMSファイルとSHA256SUMS.gpgファイルは、ダウンロードしたファイルが公式イメージと一致していることを検証する上で重要な鍵となります。
  • 独自のチェックサムファイルを生成して公開することで、他のユーザーがダウンロードしたファイルを迅速かつ安全に検証することが容易になります。

LinuxでチェックサムとGPGを使用してISOを検証する

GNU/Linuxディストリビューションをダウンロードする場合、通常は ISOイメージを作成し、起動可能なUSBドライブの作成を開始します。 途中で何が起こったかなど、あまり深く考えずに。実際、多くの場合何も問題は起こらないにもかかわらず、私たちはISOファイルが正規のものであると盲目的に信じているのです。誰もそれをいじっておらず、ダウンロードしたファイルが破損していないと。

完全なオペレーティングシステムの話になると、状況は変わります。これらは大きなファイルで、ダウンロードに時間がかかり、そして何よりも、 ISOの不具合や改ざんはチーム全体を危険にさらす可能性があるそのため、Linuxの世界では、ISOイメージをDVDに書き込んだりUSBドライブに書き込んだりする前に、チェックサムやGPG署名を使用してISOイメージの完全性と真正性を検証することが非常に一般的であり、推奨されているのです。

ISOの完全性と真正性を検証するとはどういう意味ですか?

ISO規格を検証する場合、単一のチェックではなく、混同してはならない2つの異なるチェックを実行します。 ファイルの完全性と出所の真正性整合性とは、ディスク上のISOイメージがサーバー上のISOイメージとビット単位で完全に同一であるかどうかを示すものです。真正性とは、そのISOイメージとそのチェックサムが、実際にそれが表していると主張するプロジェクトから提供されたものであるかどうかを示すものです。

誠実性は、 ファイル全体に対して計算されたハッシュ関数(チェックサム)お使いのコンピューターで表示される結果が配布元が公開している結果と一致する場合、ISOファイルはダウンロード中に改ざんされたり、保管中に破損したりしていないことを意味します。

真正性は以下によって検証されます GPGデジタル署名 開発者の公開鍵に関連付けられています実際には、配布元はチェックサム(例えばSHA256SUMS)を含むファイルに署名し、ユーザーはこの署名が公式のプロジェクトキーと一致し、改ざんされていないことを検証します。

多くの人はMD5やSHAのチェックサムだけをチェックして有効と判断しますが、ダウンロードサーバーが侵害されている場合、他にも… ISOファイルを置き換えて、偽のチェックサムを公開する。したがって、適切な実施方法としては、合計ファイルのGPG署名を検証することも含まれる。

チェックサム ISO Linux

チェックサムとは何ですか?また、ISOイメージで使用される理由は何ですか?

チェックサムとは、ファイルにチェックサムを適用した結果のことです。 一意の文字列を生成する暗号学的ハッシュ関数 そのコンテンツの場合、その文字列は通常16進数(0~9の文字とaf)で表され、元のファイルのサイズに関係なく固定長です。

GNU/Linuxディストリビューションのコンテキストでは、チェックサムは、 プロジェクトが画像を公開してからデータが変更されていないことを確認してください。2つのファイルが同じアルゴリズムを使用して同じハッシュ値を生成する場合、それらは(実際には)同一であるとみなされます。ハッシュ値が一致しない場合は、1ビットの違いだけで値が完全に変わり、問題を検出できます。

ハッシュアルゴリズムは数多く存在しますが、ISOイメージと関連付けられることが多いのは以下のものです。 MD5、SHA-1、およびSHA-2ファミリー(SHA-256、SHA-384、SHA-512など)Debian、Ubuntu、Fedoraなどのディストリビューションのダウンロードページでは、ISOイメージの横にMD5SUMS、SHA1SUMS、SHA256SUMSといった名前のファイルが提供されていることがよくあります。

手順は簡単です。ISO とそのハッシュ ファイルをダウンロードし、マシン上で ISO ハッシュを計算し、 結果がチェックサムファイルに記載されている値と一致することを確認します。一致すれば、画像が破損したり切り詰められたりしていないとほぼ確信できます。

MD5は今日ではアルゴリズムとみなされている 重度のセキュリティ用途には不向き実用上の衝突が発見されているためです。それでも、基本的な整合性チェックには依然として役立ちます。特にISOファイルなどの大容量ダウンロードの場合は、...を使用する方が良いでしょう。 SHA-256は、現在推奨されている標準規格です。 ほとんどのディストリビューションで。

ISOファイルをダウンロードした際に見つかるファイルの種類

公式サーバーからディストリビューションをダウンロードする際、イメージファイル自体に加えて、一連の追加ファイルが見つかることがよくあります。それぞれのファイルには役割があり、それらが何であるかを知っておくことが重要です。 各ファイルの種類はどのような機能を果たし、検証とどのように関連しているのでしょうか? あなたがこれからやろうとしていること。

通常は以下のようなものが見つかるでしょう(ディストリビューションによって名称が若干異なる場合があります)。

  • 配布名-バージョン-アーキテクチャ.isoイメージファイルとは、USBドライブやDVDに書き込むファイルのことです。例えば、ubuntu-20.04-desktop-amd64.isoのように、ディストリビューション、バージョン、エディション(デスクトップ版/サーバー版)、アーキテクチャを示すファイル名です。
  • MD5SUMS: そのディレクトリにある画像ファイルのMD5ハッシュ値のリストを含むテキストファイル。各行はハッシュ値とファイル名を関連付けています。
  • MD5SUMS.gpg: 開発者の鍵で生成された、MD5SUMSファイルのGPG署名。これは、MD5ハッシュファイルが実際にプロジェクトから生成されたものであり、改ざんされていないことを検証するために使用されます。
  • SHA256SUMSMD5SUMSと同等の機能を持つが、SHA-256アルゴリズムを使用している。このファイルが利用可能であれば、優先的に処理すべきである。
  • SHA256SUMS.GPG。: SHA256SUMS GPGデジタル署名。その真正性を保証するために使用されます。

一部のディストリビューションでは、SHA1SUMS、SHA512SUMS、または類似のファイルも見られます。これらはすべて同じ原理に基づいています。 合計金額のリスト、およびオプションで関連付けられたGPG署名 これにより、リストが改ざんされていないことを確認できます。

HTTP/HTTPS経由でISOをダウンロードする代わりに、 BitTorrentでは、ほとんどのクライアントが既に検証システムを統合しています。 内部処理は断片的なハッシュに基づいて行われるため、ISOファイルが破損する可能性は大幅に低減されます。とはいえ、その真正性を完全に確認したい場合は、ハッシュファイルのGPG署名を検証することをお勧めします。

Linuxのハッシュ関数

ハッシュ関数の仕組み(MD5、SHA-1、SHA-256など)

実用的なレベルでは、ハッシュの背後にある数学を理解する必要はありませんが、明確な理解を得るためには、いくつかの基本的な概念を把握しておくと役立ちます。 ISOチェックにこれほど役立つのはなぜですか?暗号学的ハッシュ関数は、任意のサイズのファイルを入力として受け取り、固定長の文字列を返します。ファイルの1ビットを変更するだけで、まったく異なるハッシュ値が生成されます。

優れたハッシュ関数の要件には、ある意味では計算が容易であること、 投資は事実上不可能同じハッシュ値を持つ2つの異なるファイルを見つけることは非常に困難であり(衝突)、特定のハッシュ値に適合する悪意のあるコンテンツを生成しようとする試みに対して耐性がある。

MD5は長年この種の検証の事実上の標準であったが、暗号技術の進歩により、 同じMD5ハッシュを持つ異なるファイルを作成することが可能です。したがって、一部のプロジェクトでは依然として一般的な手法ではあるものの、セキュリティ上の理由から、より堅牢なアルゴリズムを使用することが推奨されます。

SHA-1はMD5の弱点のいくつかを改善したが、衝突問題も指摘されており、 高度なセキュリティを必要とする新規実装には適していませんSHA-2ファミリー(特にSHA-256)は、現在ISO認証においてセキュリティとパフォーマンスのバランスが最も取れた選択肢である。

実際には、ディストリビューションが複数の合計ファイルを提供している場合、その中から1つを選択するのが最善の選択肢です。 最初のオプションとしてSHA-256またはSHA-512SHA-1は他に選択肢がない場合のみ使用し、MD5は他に選択肢がない場合の基本的な整合性チェックに限定する。

チェックサムの計算と検証を行うためのLinuxツール

朗報は、特別なものをインストールする必要がないということです。最新のGNU/Linuxディストリビューションのほとんどには、すでにそれらが含まれています。 ハッシュ値を計算および検証するためのコマンドラインユーティリティこれらのツールは通常、coreutilsなどの基本パッケージに含まれています。

よく見かけるコマンドは以下のとおりです。

  • md5sum: MD5サムを計算し、検証します。
  • sha1sumSHA-1ハッシュ値を計算および検証します。
  • sha256sumSHA-256ハッシュ値を計算および検証します。
  • sha512sumSHA-512ハッシュ値を計算および検証します。

使い方は非常に簡単です。特定のファイルのハッシュ値を計算したい場合は、ISOファイルのあるディレクトリでターミナルを開き、以下のコマンドを実行するだけです。

cd Descargas
sha256sum nombre-de-tu-imagen.iso

このコマンドはハッシュとファイル名を含む行を出力します。この値をウェブサイトに公開されている値と比較できます。MD5またはSHA-1を希望する場合は、 コマンド形式は同じで、ユーティリティを変更すると (md5sum、sha1sum、sha512sum…)。

個々のハッシュを計算することに加えて、これらのツールを使用すると、複数のファイルを一度に検証できます。 -c オプションでチェックモードそこで、ISOイメージと一緒にダウンロードしたMD5SUMSファイルやSHA256SUMSファイルが登場するのです。

合計ファイルを使用してISOの整合性を確認する

一般的な手順では、ディストリビューションの公式ウェブサイトからISOイメージとそのSHA256SUMSファイル(および、利用可能な場合はMD5SUMSまたはSHA1SUMSファイル)をダウンロードします。このファイルの構造は非常にシンプルで、各行にはハッシュ、スペース、オプションでアスタリスクまたは追加のスペース、そしてファイル名が含まれています。

ISO を合計ファイルでチェックするには、 画像とSHA256SUMSファイルの両方を実行して:

sha256sum -c SHA256SUMS

このユーティリティは、SHA256SUMS のすべての行を順に処理し、リストされた各ファイルについてローカルで計算したハッシュ値をドキュメント内のハッシュ値と比較します。すべてが正常であれば、次のような表示になります。

nombre-distro.iso: OK

ISOが破損しているか、 ファイルは合計値のリストと一致しません次のようなメッセージが表示されます。

nombre-distro.iso: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match

MD5とSHA-1についても、対応するツールとファイルを置き換えることで同様の手順が適用されます。例:

md5sum -c MD5SUMS
sha1sum -c SHA1SUMS

この方法は、複数のISOファイルや複数のファイルを一度にダウンロードする場合に特に便利です。 1つのコマンドで全てのファイルを一度に検証できます。 そしてシステムは、どの商品がテストに合格し、どの商品が不合格だったかを教えてくれます。

GPG署名:合計の真正性を検証する

これまで私たちは誠実さについてのみ話してきましたが、2つ目の要素が欠けています。 合計ファイルが実際にプロジェクトから取得されていることを確認してください そして、サーバーを侵害した人物からの攻撃ではない。そこで登場するのが、GNU/Linuxにおける公開鍵暗号の標準ツールであるGnuPG(gpg)だ。

主要なディストリビューションのほとんどは、ハッシュサムファイル(例:SHA256SUMS.gpg)に開発者に関連付けられた秘密鍵で署名しています。ユーザーは、その署名をダウンロードして使用します。 検証するプロジェクトの公開鍵 SHA256SUMSファイルが改変されていないこと。

Ubuntuのようなディストリビューションでの一般的なワークフローは、gpgをインストールしてダウンロードディレクトリにいる場合、次のようになります。

gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS

お使いのコンピュータにUbuntuの公開鍵が正しくインポートされ信頼されている場合、gpgは次のようなメッセージを表示します。 有効な署名とキー識別子しかし、初めて実行したときに、その公開鍵が分からないというメッセージが表示されるのはよくあることです。

その場合、次のステップは信頼できる鍵サーバーから公開鍵をインポートすることです。例えば、Ubuntuでは次のように実行できます。

gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0xD94AA3F0EFE21092

これにより、指定された識別子を持つキーが公式キーサーバーからダウンロードされます。インポート後、SHA256SUMSを使用して署名検証コマンドを再度実行すると、次の結果が得られます。 署名が正しいことの確認 そして、「Ubuntu CD Image Automatic Signing Key (2012)」というキーに関連付けられています。[メール保護]ディストリビューションによっては、>” または同様の別のものになります。

GPGは「署名が所有者のものであるという証拠はありません」といった警告を表示することがありますが、これは基本的に あなたは、その鍵を完全に信頼できるものとしてマークしていません。これは致命的なエラーではありません。他の手段(公式サイト、ドキュメントなど)で、キーのフィンガープリントがプロジェクトで宣言されているものと一致していることを確認していれば、先に進むことができます。

実例:最新のUbuntu ISOイメージの検証

これを分かりやすく理解するために、Ubuntuの公式ウェブサイトからISOイメージ(例えば、最新のLTSバージョン)をダウンロードする場面を想像してみてください。そのページには、ISOイメージ、SHA256SUMSファイル、そしてその署名であるSHA256SUMS.gpgへのリンクが、すべて同じディレクトリ、もしくはその近くのディレクトリにあります。

基本的に、以下の手順に従うことになります。

まず、 お使いのアーキテクチャに適したISOイメージをダウンロードしてください。 (例えば、64ビットAMD64デスクトップイメージ)に加えて、そのバージョンに対応するSHA256SUMSファイルとSHA256SUMS.gpgファイル。

次に、システムにgpgがインストールされている場合は、次のコマンドでsumsファイルの署名を検証します。

gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS

gpgがキーを見つけられないと表示した場合は、プロジェクトに関連付けられたキーサーバーから、次のようなコマンドを実行してキーを取得できます。

gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0xD94AA3F0EFE21092

キーがインポートされ、SHA256SUMSファイル署名が検証されたら、以下の方法でISOファイルをそのリストと照合できます。

sha256sum -c SHA256SUMS

このコマンドはすべてのエントリをチェックし、リストされた各ファイルに対してメッセージを表示します。新しくダウンロードしたISOファイルの場合、次のような表示になるはずです。 「ubuntu-XX.XX-desktop-amd64.iso: 合計が一致します」 または「OK」と表示され、ローカルイメージが開発者によって公開されたものと完全に一致することを確認します。

単一のチェックサムを手動で確認する

場合によっては、完全な合計ファイルを入手できなかったり、ダウンロードページに単一のハッシュ値しか表示されなかったりすることがあります。そのような場合は、「昔ながらの」検証方法を実行することもできます。 ローカルチェックサムを計算し、手動で比較する 公表されている値との比較。

Red Hat ISOをダウンロードしたとします。ウェブサイトにはそのイメージのSHA-1ハッシュしか表示されていません。作業ディレクトリで、次のコマンドを実行します。

sha1sum redhat7-x64.iso

このコマンドを実行すると、次のような結果が返されます。

2ac2f3368e6c9fe4d7201d85ad85528698aeaf08 redhat7-x64.iso

そこからは、 ハッシュを視覚的に比較するか、コピー&ペーストして比較してください。 ウェブサイトに表示されているファイル名、またはダウンロードした小さなテキストファイルに記載されているファイル名と比較してください。文字が完全に一致していれば、ファイルの整合性は保証されています。異なっている場合は、再度ダウンロードする必要があります。

複数のISOファイルを一度に検証する

複数のイメージファイルを一度にダウンロードする場合(例えば、異なるバージョンやアーキテクチャの場合)、それらを一つずつチェックするのは面倒です。幸いなことに、MD5SUMS、SHA1SUMS、またはSHA256SUMSファイルは通常、それらをまとめてグループ化してくれます。 ディレクトリ内のすべての合計を単一のドキュメントにまとめる一括検証を一度に行えるようにするためです。

フォルダ内に6つの異なるISOファイルがあり、MD5SUM、SHA1SUM、SHA256SUMファイルをダウンロードしたとします。MD5チェックの場合は、次のような操作を行います。

md5sum -c MD5SUM

出力には、各ISOイメージが、合計値が一致するかどうかに応じて「OK」または「FAILED」とともに一覧表示されます。SHA-1とSHA-256についても同様で、ツールとファイルを変更するだけです。

sha1sum -c SHA1SUM
sha256sum -c SHA256SUM

意図的にISOファイルを改変した場合、またはディスク障害によりISOファイルが破損した場合、 その特定の項目のみが不合格と判定されました 他の部分はすべて正常ですが、プログラムは「警告:計算されたチェックサムのうち1つが一致しませんでした」といったメッセージを表示して警告を発するので、何らかの問題が発生したことがわかります。

独自のチェックサムファイルを生成する方法

他の人が投稿した内容を検証するだけでなく、ISOファイルやその他の種類のファイルをより多くの人と共有する予定がある場合は、独自のチェックサムファイルを作成することもできます。同じツールを使用するだけで簡単ですが、 標準出力をファイルにリダイレクトする それらをダウンロードファイルと一緒にアップロードできます。

例えば、ディレクトリ内に複数のISOイメージを用意していて、それらすべてを含むMD5SUMファイルを生成したい場合は、次のようにします。

md5sum *.iso > MD5SUM

このコマンドはフォルダ内のすべてのISOファイルをスキャンし、ハッシュ値とファイル名のリストをMD5SUMファイルに保存します。同様に、SHA-1またはSHA-256を使用してドキュメントを作成することもできます。

sha1sum *.iso > SHA1SUM
sha256sum *.iso > SHA256SUM

これらの検証ファイルをあなたのファイルと一緒に公開することで、誰でも実行できるようになります md5sum -c、sha1sum -co sha256sum -c それらを確認し、ダウンロードが正常に完了したこと、および転送中に誰かがファイルを改ざんしていないことを確認してください。

さらに一歩進んで本物であることの保証を提供したい場合は、 これらの合計ファイルにデジタル署名する 大規模プロジェクトでよく見られるように、独自のGPGキーを使用してください。こうすることで、資料を受け取った人は、データが完全であるだけでなく、それが本当にあなたから送られてきたものであることを確認できます。

Linuxディストリビューションをインストールする前にチェックサムとGPG署名を確認する習慣を身につけることは、ほんのわずかな時間で済み、その見返りとして重要なセキュリティ層を提供し、破損または改ざんされたISOイメージを使用したインストールを防ぎ、コンピュータに影響が出る前に問題を検出するのに役立ちます。

VentoyでマルチブートUSBドライブを簡単に作成
関連記事
VentoyでマルチブートUSBドライブを簡単に作成する方法

Googleで優先ソースとして追加する