MD5、SHA-1、およびSHA-256ハッシュとは何ですか?また、それらを確認する方法はありますか?
インターネットの移動中に、MD5、SHA-1、またはSHA-256ハッシュがダウンロードと一緒に表示されることがありますが、実際にはその内容がわかりません。ランダムに見えるこれらのテキスト文字列を使用すると、ダウンロードしたファイルが破損または改ざんされていないことを確認できます。これは、Windows、macOS、およびLinuxに組み込まれているコマンドで実行できます。.
ハッシュのしくみ、およびデータ検証に使用される方法
ハッシュは、文字列を生成するように設計された暗号化アルゴリズムの製品です。多くの場合、これらの文字列は、入力データのサイズに関係なく、固定長です。上のチャートを見てみると、 "Fox"と "Red Foxが青い犬を飛び越える"の両方で同じ長さの出力が得られることがわかります。.
それでは、チャートの2番目の例と3番目、4番目、5番目の例を比較してください。入力データが非常にわずかに変更されていても、結果として得られるハッシュはすべてまったく異なっていることがわかります。たとえ誰かが非常に小さな入力データを変更したとしても、ハッシュは劇的に変化するでしょう。.
MD5、SHA-1、およびSHA-256はすべて異なるハッシュ関数です。ソフトウェア作成者は、多くの場合、Linuxの.isoファイル、またはWindowsの.exeファイルのようにファイルをダウンロードし、それをハッシュ関数で実行します。彼らはそれから彼らのウェブサイトのハッシュの公式リストを提供する.
そうすれば、ファイルをダウンロードしてからハッシュ関数を実行して、実際の元のファイルがあること、およびダウンロード処理中にファイルが破損していないことを確認できます。上で見たように、ファイルを少し変更してもハッシュは劇的に変わります。.
非公式のソースから入手したファイルがあり、それが正当であることを確認したい場合にも、これらが役立ちます。どこかから入手したLinuxの.ISOファイルがあり、それが改ざんされていないことを確認したいとしましょう。その特定のISOファイルのハッシュは、LinuxディストリビューションのWebサイトでオンラインで調べることができます。それからあなたはそれをあなたのコンピュータ上のハッシュ関数を通して実行し、それがあなたがそれが持っていると期待するであろうハッシュ値と一致することを確認することができる。これはあなたが持っているファイルが変更なしでLinuxディストリビューションのウェブサイトでダウンロードのために提供されているのと全く同じファイルであることを確認します.
「衝突」がMD5とSHA-1機能で発見されたことに注意してください。これらは複数の異なるファイル(たとえば、安全なファイルと悪質なファイル)であり、結果として同じMD5またはSHA-1ハッシュが生成されます。可能であればSHA-256を好むべき理由はそういうわけです.
どのオペレーティングシステムでもハッシュ関数を比較する方法
それを念頭に置いて、ダウンロードしたファイルのハッシュをチェックし、それを与えられたものと比較する方法を見てみましょう。これは、Windows、macOS、およびLinux用のメソッドです。同じファイルに対して同じハッシュ関数を使用している場合、ハッシュは常に同一になります。どのオペレーティングシステムを使用してもかまいません。.
Windows
このプロセスは、PowerShellのおかげで、Windows上にサードパーティのソフトウェアがなくても可能です。.
開始するには、スタートメニューの[Windows PowerShell]ショートカットを起動してPowerShellウィンドウを開きます。.
次のコマンドを実行して、「C:\ path \ to \ file.iso」をハッシュを表示したいファイルへのパスに置き換えます。
Get-FileHash C:\ path \ to \ file.iso
ファイルのサイズ、使用しているアルゴリズム、およびファイルが存在するドライブの速度によっては、ファイルのハッシュを生成するのに時間がかかります。.
デフォルトでは、このコマンドはファイルのSHA-256ハッシュを表示します。ただし、MD5、SHA-1、またはその他の種類のハッシュが必要な場合は、使用したいハッシュアルゴリズムを指定できます。.
次のいずれかのコマンドを実行して、別のハッシュアルゴリズムを指定します。
Get-FileHash C:\ path \ to \ file.iso -Algorithm MD5
Get-FileHash C:\ path \ to \ file.iso - アルゴリズムSHA1
Get-FileHash C:\ path \ to \ file.iso -Algorithm SHA256
Get-FileHash C:\ path \ to \ file.iso -Algorithm SHA384
Get-FileHash C:\ path \ to \ file.iso -Algorithm SHA512
Get-FileHash C:\ path \ to \ file.iso - アルゴリズムMACTripleDES
Get-FileHash C:\ path \ to \ file.iso - アルゴリズムRIPEMD160
ハッシュ関数の結果を、予想される結果と比較します。同じ値であれば、ファイルは破損していない、改ざんされていない、または元のファイルから変更されていない.
マックOS
macOSには、さまざまな種類のハッシュを表示するためのコマンドが含まれています。それらにアクセスするには、ターミナルウィンドウを起動します。 Finder>アプリケーション>ユーティリティ>ターミナルでそれを見つけることができます.
の md5
コマンドはファイルのMD5ハッシュを表示します。
md5 / path / to / file
の シャム
デフォルトでは、commandはファイルのSHA-1ハッシュを表示します。つまり、次のコマンドは同じです。
shasum / path / to / file
shasum -a 1 / path / to / file
ファイルのSHA-256ハッシュを表示するには、次のコマンドを実行します。
shasum -a 256 / path / to / file
Linux
Linuxでは、ターミナルにアクセスして、表示するハッシュの種類に応じて、ファイルのハッシュを表示するために次のいずれかのコマンドを実行します。
md5sum / path / to / file
sha1sum / path / to / file
sha256sum / path / to / file
一部のハッシュは暗号化されてさらにセキュリティが強化されています
ハッシュはファイルが改ざんされていないことを確認するのに役立ちますが、ここでも攻撃の道が1つあります。攻撃者がLinuxディストリビューションのWebサイトを制御してそこに表示されるハッシュを変更する可能性があります。または、HTTPの代わりにHTTP経由でWebサイトにアクセスしている場合は攻撃者暗号化されたHTTPS.
それが、現代のLinuxディストリビューションがWebページにリストされているハッシュ以上のものを提供することが多い理由です。彼らは、ハッシュを修正しようとする可能性のある攻撃者から保護するために、これらのハッシュに暗号的に署名します。ハッシュとファイルが改ざんされていないことを絶対に確認したい場合は、暗号化署名を検証してハッシュファイルが実際にLinuxディストリビューションによって署名されていることを確認します。.
暗号署名の検証は、より複雑なプロセスです。完全な手順については、改ざんされていないLinux ISOを検証するためのガイドを読んでください。.
画像クレジット:ホルヘ・ストルフィ/ウィキメディア