電子署名(プログラムの改竄検証)

 電子署名を構成する要約関数はプログラムなどの改竄見極めにも用いられます。

 プログラムにウィルスやスパイウェアを仕込まれた場合にシステムの安全性が損なわれてしまうことになるので、配布元のファイルと手元のファイルが改竄なく同一であることを確認するために使われます。その際にダイジェスト値が用いられますがこれをチェックサム(Checksum)とも呼びます。

 例として無料でダウンロードできるOSのひとつである「CentOS」の配布で見てみます。CentOS version8の配布サイト(http://ftp-srv2.kddilabs.jp/Linux/packages/CentOS/8-stream/isos/x86_64/)を開くと下記のような画面が表示されます。

試しに「CentOS-Stream-8-x86_64-20201007-boot.iso」が配布元のデータと手元にあるデータが同一であるか調べてみます。CECKSUMファイルの中身は下記です。2行目に「SHA256をアルゴリズムとして生成したハッシュ値」が書いてあります。

ここで下記のPHPスクリプトで実際にファイルからハッシュ値を生成します。

こうして得られたハッシュ値が「ca0daed77d0741c5342d92689d8ac8da87b869a36e6e85fb7651d281c988b2f2」であり、CECKSUMファイルで与えられたハッシュ値と同一であるので、手元のファイルは改竄がされていないものと判断されます。

なお、配布側から与えられたハッシュ値がそもそも改竄されていないことを担保するために、同時に電子署名も与えられるのが通例です。CentOSの配布ではgnupgで検証する電子署名が与えられていますが、OpenSSLとGnuPGで話がごっちゃになるとよくないので今回は割愛します。

なお、上記で使ったハッシュ値は電子署名の話で出てきた「ダイジェスト値」と同一であり、このようにして電子署名はファイルの改竄がないことの確認にも用いられます。


 ネットからプログラムをダウンロードする際は悪意のある細工が紛れ込んでいないか確認してから使いましょう。

0
Would love your thoughts, please comment.x
()
x