ダウンロードしたファイルの元のファイルとの同一性を確認する方法としてチェックサム(checksum)がある。Windowsでチェックサムを使う方法とはどのようなものだろうか。この記事では、Windowsでチェックサムを確認する方法を解説する。
「チェックサム(checksum)」とは?
インターネット上からファイルをダウンロードした時に、サーバーからクライアントPCへの通信途中にファイルが改ざんされる恐れがある。実際にサーバーからダウンロードしたファイルと元々サーバーに保存されていたファイルが同じファイルかどうかを確認する必要がある時には、チェックサム(checksum)を利用する方法が簡単だ。
この記事では、チェックサムとはどのようなもので、Windowsでダウンロードしたファイルの同一性の確認はどのような方法で行えばいいのか、詳しく解説する。まずは、チェックサムとはどのようなものなのか詳しく見ていこう。
ファイルの編集やダウンロードした時に中身の同一性を確認する
チェックサム(checksum)とは、誤り検出符号のひとつである。誤り検出符号とは、データの送受信やディスクへの書き込みを行う途中で発生するデータの欠落や改変を検知するための符号である。
データを通信回線や電子回路の中で伝送すると、何らかの理由でデータが改変されてしまうことがよくある。この改変は、人為的なものではなく電気的なものであることが多く、完全に防止することは不可能だ。
そこで、元のデータを送信する時に、元のデータの状態の記録を符号として添付して、伝送時の改変をデータの受信側が検出できるようにする。これが誤り検出符号である。
誤り検出符号には、チェックサムの他にパリティ符号、巡回冗長符号などもある。この中でもチェックサムは誤り検知の精度は低いものの、比較的簡単な原理なので実装しやすく、簡易的な誤り検知方法として広く使われている。
チェックサムでは、送信されたデータの列を整数値の列として和を求める。それをある定数で割った余りで誤りを検知する仕組みである。
ダウンロードされる前のファイルの状態と、ダウンロードされた後のファイルでは、見かけ上は違いがまったくわからないこともある。しかし、チェックサムを確認することで、通信途中でデータの改変が行われているかどうかを確認することが可能になる。
チェックサムがまったく同じであれば改変はなくファイルの同一性が保たれていることがわかる。ダウンロード前とダウンロード後のチェックサムのハッシュ値に違いが生じれば、なんらかの改変が起きて同一性が保たれていないことが確認できる。
Windowsでファイルのチェックサムのハッシュ値を確認する方法
Windowsでダウンロードしたファイルのチェックサムのハッシュ値を確認する方法について見ていこう。Windowsでchecksumのハッシュ値を確認する方法には、コマンドプロンプトで確認する方法と、ツールを利用して確認する方法がある。
【方法①】コマンドプロンプトで確認する
コマンドプロンプトを使ってchecksumのハッシュ値を確認する方法である。チェックサムの確認方法はいくつかあるが、今回はファイルのデータから256bitのハッシュ値を算出する「SHA-256」形式を利用する。
コマンドプロンプトでファイルのチェックサムのハッシュ値を確認するためのコマンドは「certuti」を使う。「certutil」コマンドは証明書ファイルの中身を表示するためのコマンドである。
コマンドプロンプトでSHA-256形式でchecksumのハッシュ値を確認するための書式は次のとおりである。
certutil -hashfile <ファイル名> SHA256
実際にこのコマンドプロンプトの書式を使ってチェックサムを確認してみよう。今回は、ダウンロード元のページでSHA-256形式のハッシュ値が公開されていて、チェックサムで同一性の確認が取れる理研で配布しているCentos7のISOファイルをダウンロードしてみよう。
こちらのページから「CentOS-7-x86_64-Minimal-2009.iso」というファイルをダウンロードする。
また、同時に「sha256sum.txt」でダウンロードしたファイルのチェックサムのハッシュ値も確認しておく。ダウンロードしたファイルの場所を確認したら、コマンドプロンプトを起動して、チェックサムを確認するためのコマンドを実行してみよう。
certutil -hashfile F:\CentOS-7-x86_64-Minimal-2009.iso SHA256
このハッシュ値を、ダウンロードページに記載されていたハッシュ値と比べてみよう。
元のファイルのチェックサムのハッシュ値
07b94e6b1a0b0260b94c83d6bb76b26bf7a310dc78d7a9c7432809fb9bc6194a
コマンドプロンプトでチェックサムで確認したハッシュ値
07b94e6b1a0b0260b94c83d6bb76b26bf7a310dc78d7a9c7432809fb9bc6194a
まったく同じ値であることが確認できたので、ファイルの同一性は保たれていることがわかる。
【方法②】ツールを利用して確認する
チェックサムの確認方法にはツールを使う方法もある。チェックサムのハッシュ値を確認できるツールはいろいろなものがあるが、今回はコマンドを入力しなくても、ファイルのドラッグ&ドロップもしくは選択だけでハッシュ値を計算できる「HashLister」を使ってみよう。
まずはダウンロードページからインストーラーをダウンロードしよう。
●HashListerダウンロードページは→こちら
ダウンロードしたインストーラーをダブルクリックして実行し、画面に表示される手順に従ってインストールしよう。インストールしたらHashListerを起動してみよう。
起動したら、まずは確認するハッシュ値を選択する。
次にHashListerで確認するファイルを選択する。
ドラッグ&ドロップではなくファイルを選択する場合には、メニューバーから「ファイル」>「ファイルを選択」でファイルを指定する。同じフォルダに入っている複数のファイルのチェックサムを確認したい場合には「フォルダを選択」をクリックする。
ファイルをHashListerで選択するとチェックサムが計算される。しばらく待つと結果が表示される。
HashListerに表示されたチェックサムの結果は保存できる。保存形式でテキスト形式を選択することもできる。
保存するファイル名をつけて、「保存」をクリックすると結果を保存できる。
チェックサムの結果をファイルとして保存するだけでなく、テキストとしてコピーすることもできる。
するとチェックサムの結果がテキストとしてクリップボードにコピーされる。