デジタル署名とは、パッケージが開発者によって生成されたものであり、改ざんされていないことを保証するプロセスです。 以下では、これが重要な理由と、ダウンロードした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
pub   rsa4096 2014-12-15 [C] [expires: 2025-07-21]
      EF6E286DDA85EA2A4BA7DE684E2C6E8793298290
uid           [ unknown] Tor Browser Developers (signing key) <torbrowser@torproject.org>
sub   rsa4096 2018-05-26 [S] [expires: 2020-12-19]

エラーメッセージが表示された場合は、何らかの問題が発生しており、その原因がわかるまで続行できません。代わりに回避策(公開鍵を使用)のセクションを使用して鍵をインポートできる場合があります。

キーをインポートしたら、ファイルに保存できます (ここではフィンガープリントで識別します) 。

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の詳細 もご参考にしてみてください。