インストールイメージの署名検証

R48-7647.84(‘16.02.28リリース)からインストールイメージにGnuPGによる署名を行うようにしました。GnuPGは一般的なLinuxディストリビューションのインストールメディアへの署名にも使われていますので、これらで署名検証を行ったことのある方なら簡単に検証できると思います。

もともとこのカスタムビルドは匿名でリリースしていますので署名することにどれだけ意味があるか微妙ではありますが、この署名を検証することで第三者による改ざんなどの問題を検知できる可能性は高くなります。

Note

署名を検証しなければこちらで配布しているビルドを動かすことができない、 というわけではありませんので、難しいようであればこの手順をスキップしても動作には影響ありません。 ただし、手順をスキップした場合は一定のリスクを負うことになりますので、その辺りはユーザ様の事情に応じてご判断ください。

GnuPGは一般的なlinuxディストリビューションであれば最初からインストールされています。Windowsの場合は こちら から入手してください。 また、署名検証にはmd5チェックサムの検証ツールが必要になります。md5チェックサムの検証ツールはWindows, Linuxとも標準でツールが用意されています。

GnuPGのインストールや初期設定手順についてはここでは解説しません。他に詳しく解説しているサイトがありますのでそちらを参照してください。

以下ではツールのセットアップが終わっているという前提で、Windows版GnuPGを用いてChromium OS カスタムビルドの署名を検証する手順を示します。Linuxでも手順は同一です。

  1. ダウンロードページ からインストールイメージと、ファイルサイズの後ろにあるmd5, gpg, KEYの合計4つのファイルをすべて同じディレクトリにダウンロードします。
すでにカスタムビルドの検証を一度でも実施している場合は KEY のダウンロードおよび以下の手順2.は不要です。
  1. 今回初めてChromium OS カスタムビルドの検証を行う場合は、公開鍵をインポートしてください。Windowsではツールの実行はコマンドプロンプトから行います。以下ではc:\testの下にダウンロードファイルがあるものとします。
C:\test>gpg --import public.key
gpg: C:/xxxxx/trustdb.gpg: 信用データベースができました
gpg: 鍵F9FF1C19: 公開鍵"zui22904336 (Chromium OS Custom Build) <zui22904336@gmail.com>"をインポートしました
gpg:         処理数の合計: 1
gpg:           インポート: 1  (RSA: 1)

公開鍵は公開鍵サーバ(pgp.nic.ad.jp)にも登録していますので、そちらからインポートすることもできます。鍵IDは F9FF1C19 です。

C:\test>gpg --keyserver pgp.nic.ad.jp --recv F9FF1C19
gpg: 鍵F9FF1C19をhkpからサーバpgp.nic.ad.jpに要求
gpg: 鍵F9FF1C19: 公開鍵"zui22904336 (Chromium OS Custom Build) <zui22904336@gmail.com>"をインポートしました
gpg:         処理数の合計: 1
gpg:           インポート: 1  (RSA: 1)
  1. ダウンロードした署名ファイル(拡張子.asc)を検証します。以下はR48-7647.84の場合です。ファイル名はバージョンによって変わりますので適宜書き換えてください。
C:\test>gpg --verify R48-7647.84.2016_02_26_2323.img.zip.md5.asc
gpg: 署名されたデータが「R48-7647.84.2016_02_26_2323.img.zip.md5」にあると想定します
gpg: 02/28/16 10:40:59 東京 (標準時)にRSA鍵ID F9FF1C19で施された署名
gpg: "zui22904336 (Chromium OS Custom Build) <zui22904336@gmail.com>"からの正しい署名 [不明の]
gpg: *警告*: この鍵は信用できる署名で証明されていません!
gpg:       この署名が所有者のものかどうかの検証手段がありません。
主鍵のフィンガー・プリント: 45FC 0E47 A68A FA06 02FE  2BEF B72C C6E6 F9FF 1C19

上記の出力で4行目に 「~からの正しい署名」と表示されていれば検証は成功しています。警告が出ていますが、2.でインポートした公開鍵に対してご自身で署名を行えば表示されなくなります。 最終行の「主鍵のフィンガー・プリント」が上記の記述と完全に一致していることを確認してください。

  1. チェックサムの検証

署名の検証がうまくいったらチェックサムの検証を行います。まずチェックサムファイル(拡張子.md5)の内容を表示します。表示される内容はバージョンによって異なり、必ずしも以下の内容と同じではありません。

C:\test>type R48-7647.84.2016_02_26_2323.img.zip.md5
b0bde09274cff6e6ee4661e508dbde7d  R48-7647.84.2016_02_26_2323.img.zip

続けて、インストールイメージ(拡張子.zip)のチェックサムを計算しなおします。ここではWindows標準のcertutilを使う場合の例を示します。使用するツールに応じて読み替えてください。 Linuxであればmd5sumを使用します。

C:\test>certutil -hashfile R48-7647.84.2016_02_26_2323.img.zip MD5
MD5 ハッシュ (ファイル R48-7647.84.2016_02_26_2323.img.zip):
b0 bd e0 92 74 cf f6 e6 ee 46 61 e5 08 db de 7d
CertUtil: -hashfile コマンドは正常に完了しました。

certutilの場合は-hashfile ファイル名 のあとに大文字でMD5を付加してください。

表示されたチェックサム(上の例ではb0bde0~)が一致していれば検証は完了です。