デジタル署名とは、パッケージが開発者によって生成されたものであり、改ざんされていないことを保証するプロセスです。
以下では、これが重要な理由と、ダウンロードした Tor Browser が私たちが作成したものであり、攻撃者によって改竄されていないことを確認する方法についてご説明いたします。
ダウンロードページの各ファイルには、パッケージと同じ名前に拡張子「.asc」を付けた「署名」というラベルのファイルが添付されています。これらの .asc ファイルはOpenPGP署名です。
これにより、ダウンロードしたファイルが、意図したものと正確に一致するか確認することができます。
これはウェブブラウザーによって異なりますが、通常は「署名」リンクを右クリックし、「名前を付けてファイルを保存」オプションを選択することで、このファイルをダウンロードできます。
例えば、tor-browser-windows-x86_64-portable-13.0.1.exe
にはtor-browser-windows-x86_64-portable-13.0.1.exe.asc
が添付されています。
これらはファイル名の例であり、ダウンロードするファイル名と完全に一致するとは限りません。
ここでは、さまざまなオペレーティングシステムでダウンロードしたファイルのデジタル署名を検証する方法についてご説明します。
署名はパッケージに署名された時点で日付が付けられます。
したがって新しいファイルがアップロードされる度に、新しい署名が異なる日付で生成されます。
署名を確認していれば、報告された日付が異なることを心配する必要はありません。
GnuPG のインストール
署名を検証するには、まず GnuPG をインストールする必要があります。
Windowsユーザーの場合:
Windows を使用している場合、Gpg4win をダウンロードして実行してください。
署名を検証するためには、Windows のコマンドライン cmd.exe
にいくつかのコマンドを入力する必要があります。
macOSユーザーの場合:
macOS を利用している場合、GPGTools をインストールすることができます。
署名を検証するには、ターミナル (「アプリケーション」の下) でいくつかのコマンドを入力する必要があります。
GNU/Linuxユーザーの場合:
GNU/Linux を使用してる場合、 おそらく既に GnuPG がインストールしてあるでしょう。ほとんどの GNU/Linux ディストリビューションにプレインストールされています。
署名を検証するには、いくつかのコマンドを端末に入力する必要があります。これを行う方法は、ディストリビューションによって異なります。
Tor デベロッパーキーをフェッチ
The Tor Browser teamはTor Browserリリースに署名をしています。
Tor Browser Developers の署名キー (0xEF6E286DDA85EA2A4BA7DE684E2C6E8793298290) をインポートしてください。
gpg --auto-key-locate nodefault,wkd --locate-keys torbrowser@torproject.org
以下のように表示されるはずです:
gpg: key 4E2C6E8793298290: public key "Tor Browser Developers (signing key) <torbrowser@torproject.org>" imported
gpg: Total number processed: 1
gpg: imported: 1
EF6E286DDA85EA2A4BA7DE684E2C6E8793298290
uid [ unknown] Tor Browser Developers (signing key) <torbrowser@torproject.org>
注意: 出力は上記と多少異なる (有効期限など) かもしれませんが、鍵は正しくインポートされているはずです。
エラーメッセージが表示された場合は、何らかの問題が発生しており、その原因がわかるまで続行できません。代わりに回避策(公開鍵を使用)のセクションを使用して鍵をインポートできる場合があります。
キーをインポートしたら、ファイルに保存できます (ここではフィンガープリントで識別します) 。
gpg --output ./tor.keyring --export 0xEF6E286DDA85EA2A4BA7DE684E2C6E8793298290
このコマンドを実行すると、鍵はパス ./tor.keyring
にあるファイル、つまり現在のディレクトリーに保存されます。
このコマンドを実行した後、./tor.keyring
が存在しない場合、何か問題が発生したため、これが機能しなかった原因が分かるまで続行できません。
署名を検証する
ダウンロードしたパッケージの署名を検証するには、対応する「.asc」署名ファイルとインストーラーファイル自体をダウンロードし、GnuPG にダウンロードしたファイルの検証を求めるコマンドを使って検証する必要があります。
以下の例では、これら2つのファイルを 「Downloads」 フォルダーにダウンロードしたものとします。
これらのコマンドはサンプルのファイル名を使用しており、あなたのファイル名は異なることにご注意ください。サンプルのファイル名は、あなたがダウンロードしたファイルの正確な名前に置き換える必要があります。
Windowsユーザの場合(32ビットパッケージをお使いの場合は、x86_64をi686に変更します)
gpgv --keyring .\tor.keyring Downloads\tor-browser-windows-x86_64-portable-13.0.1.exe.asc Downloads\tor-browser-windows-x86_64-portable-13.0.1.exe
macOSユーザーの場合:
gpgv --keyring ./tor.keyring ~/Downloads/tor-browser-macos-13.0.1.dmg.asc ~/Downloads/tor-browser-macos-13.0.1.dmg
GNU/Linuxユーザの場合(32ビットパッケージをお使いの場合は、x86_64をi686に変更します)
gpgv --keyring ./tor.keyring ~/Downloads/tor-browser-linux-x86_64-13.0.1.tar.xz.asc ~/Downloads/tor-browser-linux-x86_64-13.0.1.tar.xz
コマンドの結果には、以下の内容が含まれます。
gpgv: Good signature from "Tor Browser Developers (signing key) <torbrowser@torproject.org>"
「No such file or directory」を含むエラーメッセージが表示された場合は、前の手順のいずれかで何か問題が発生したか、またはこれらのコマンドがファイル名の例を使用していることを忘れていて、あなたのコマンドが少し異なる可能性があります。
PGP鍵の更新
以下のコマンドを実行して、キーサーバーからローカルのkeyring内のTor Browser Developers署名キーを更新します。これにより、新しいサブキーも取得されます。
gpg --refresh-keys EF6E286DDA85EA2A4BA7DE684E2C6E8793298290
回避策(公開鍵を使用)
修正できないエラーが発生した場合は、代わりに こちらの公開鍵をダウンロードしてご利用ください。または、以下のコマンドを使用できます。
curl -s https://openpgpkey.torproject.org/.well-known/openpgpkey/torproject.org/hu/kounek7zrdx745qydx6p59t9mqjpuhdf |gpg --import -
Tor Browser Developers キーは keys.openpgp.org でも入手でき、https://keys.openpgp.org/vks/v1/by-fingerprint/EF6E286DDA85EA2A4BA7DE684E2C6E8793298290 からダウンロードできます。
macOS または GNU/Linux を利用している場合、こちらのコマンドを使用してキーをフェッチすることができます:
gpg --keyserver keys.openpgp.org --search-keys EF6E286DDA85EA2A4BA7DE684E2C6E8793298290
GnuPGの詳細 もご参考にしてみてください。