注意: この記事の内容は執筆時 (2016-02-11) のものに基づいており、変更されている恐れもあります。
前提
VirtualBox は https://www.virtualbox.org/wiki/Downloads からダウンロードできます。このページは https で接続できるので、インストーラの .exe ファイルや.dmg ファイルも https でダウンロードされるかと思いきや、それらは download.virtualbox.org から http でダウンロードされます。
しかも、この download.virtualbox.org は Akamai の CDN を使っているようで、URL を編集して https で繋ぎ直しても正しく証明書が構成されていないせいでエラーになってしまいます。
これでは一見 VirtualBox のインストーラを安全にダウンロードする方法はないように思えてしまいますが、ファイルの SHA256 ハッシュ値を検証することで、ファイルが正しいものかどうか簡単 1 に検証できることに気が付きました。
実践
まずは普通にインストーラをダウンロードします。
次に、ダウンロードしたファイルの SHA256 ハッシュ値を検証します。正しい SHA256 ハッシュ値は、先ほどのダウンロードページからリンクされています。
インストーライメージの SHA256 ハッシュ値は、先ほどのダウンロードページのこの位置にあります:
この SHA256 ハッシュの一覧ページは https で配信されているので、インストーラファイルが改ざんされていないかチェックできるというわけです。
ダウンロードしたファイルの SHA256 ハッシュ値を取得する
Windows
Windows 8.1 以降であれば、PowerShell から簡単にファイルの SHA256 ハッシュ値を取得できます。それ以前のバージョンの Windows を使っているならば他の手段を適当に見繕ってください。
PS C:\Users\hoge> Get-FileHash -Path C:\path\to\VirtualBox-5.0.14-105127-Win.exe
Algorithm Hash Path
--------- ---- ----
SHA256 63B4AC2C308300406A9FA04470B69606C430AC9F62690A9243E36D22F991296E C:\path\to\Vir...
OS X
OS X の場合は shasum(1)
が標準でインストールされています。coreutils をインストールしているなら sha256sum(1)
でも同様の結果が得られます。
user@host$ shasum -a 256 /path/to/VirtualBox-5.0.14-105127-OSX.dmg
4de41068712eb819749b5376c90dca47f9a1d6eecf4c516d83269ac12add2aa4 VirtualBox-5.0.14-105127-OSX.dmg
user@host$ sha256sum /path/to/VirtualBox-5.0.14-105127-OSX.dmg
4de41068712eb819749b5376c90dca47f9a1d6eecf4c516d83269ac12add2aa4 VirtualBox-5.0.14-105127-OSX.dmg
ちなみに、OS X 用の VirtualBox のインストーラファイル (/VirtualBox.pkg
) は Code Signing が行われているので、説明したような手順を踏まずともそれなりに安全性は担保されているはずです。
この画面は、VirtualBox.pkg から起動したインストーラのタイトルバーの一番右にある鍵アイコンをクリックすることで表示できます。また、以下のようにコマンドラインから検証することが出来ます:
user@host$ pkgutil --check-signature /Volumes/VirtualBox/VirtualBox.pkg
Package "VirtualBox.pkg":
Status: signed by a certificate trusted by Mac OS X
Certificate Chain:
1. Developer ID Installer: Oracle America, Inc.
SHA1 fingerprint: ED 99 8E 48 56 BE ED D8 ED E0 60 C2 07 4F 12 E4 E9 E0 B0 FE
-----------------------------------------------------------------------------
2. Developer ID Certification Authority
SHA1 fingerprint: 3B 16 6C 3B 7D C4 B7 51 C9 FE 2A FA B9 13 56 41 E3 88 E1 86
-----------------------------------------------------------------------------
3. Apple Root CA
SHA1 fingerprint: 61 1E 5B 66 2C 59 3A 08 FF 58 D1 4A E2 24 52 D1 98 DF 6C 60
余談ですが、コマンドプロンプト、PowerShell や Terminal.app では、エクスプローラーや Finder などからファイルをドラッグ & ドロップするだけでカーソル位置にそのファイルのフルパスが入力されます。
-
簡単、というのはやるのが簡単というわけでなく、簡易な、というニュアンスです ↩