tor ソースコードを検証する方法
デジタル署名は、ダウンロードした tor ソースコードが Tor 開発者によって作成されたものであり、改ざんされていないことを保証するプロセスです。 以下では、これが重要な理由と、ダウンロードした Tor が私たちが作成したものであり、攻撃者によって改ざんされていないことを確認する方法についてご説明します。
注意: これらの手順は、tor のソースコードを検証するためのものです。 Tor Browser の署名を検証する方法につきましては、こちらの手順をご覧ください。
署名ファイルのダウンロード
The Tor source files on our download page are accompanied by two files which are labelled "checksum" and "sig" with the same name as the package and the extension ".sha256sum" and ".sha256sum.asc" respectively.
.asc ファイルは、 (パッケージのチェックサムを含む) .sha 256 sumファイルが改ざんされていないことを検証します。署名が検証されると (その方法については以下を参照) 、パッケージの整合性を次の方法で検証できます。
$ sha256sum -c *.sha256sum
これらのファイルを使用すると、ダウンロードしたファイルが意図したものであることを検証できます。 ウェブブラウザーによって操作は多少異なりますが、通常は "sig" と "checksum" のリンクを右クリックし、「名前を付けてファイルを保存」オプションを選択することで、このファイルをダウンロードできます。
例えば、tor-0.4.6.7.tar.gz には tor-0.4.6.7.tar.gz.sha256sum.asc が付属しています。 これらはファイル名の例であり、ダウンロードするファイル名と完全に一致するとは限りません。
署名の日付は、パッケージが署名された時点のものとなります。 そのため、新しいファイルがアップロードされるたびに、異なる日付の新しい署名が生成されます。 一度署名を検証しておけば、表示される日付が異なっていても心配する必要はありません。
GnuPG のインストール
署名を検証するには、まず GnuPG をインストールする必要があります。 Windows をご利用の場合、Gpg4win をダウンロードし、インストーラーを実行してください。
署名を検証するためには、Windows のコマンドライン cmd.exe にいくつかのコマンドを入力する必要があります。
Tor Developers キーの取得
以下のキーが tarball に署名することができます。誰がリリースするかによって異なるので、すべてを期待しないでください。
- Alexander Færøy: 514102454D0A87DB0767A1EBBE6A0531C18A9179
- David Goulet: B74417EDDF22AC9F9E90F49142E86A2A11F48D36
- Nick Mathewson: 2133BC600AB133E1D826D173FE43009C4607B1FB
上記のリンクまたは次のリンクを使用してキーを取得できます。
$ gpg --auto-key-locate nodefault,wkd --locate-keys ahf@torproject.org $ gpg --auto-key-locate nodefault,wkd --locate-keys dgoulet@torproject.org $ gpg --auto-key-locate nodefault,wkd --locate-keys nickm@torproject.org
(nickm の場合) 次のように表示されます。
gpg: key FE43009C4607B1FB: public key "Nick Mathewson nickm@torproject.org" imported gpg: Total number processed: 1 gpg: imported: 1 pub rsa4096 2016-09-21 [C] [expires: 2025-10-04] 2133BC600AB133E1D826D173FE43009C4607B1FB uid [ unknown] Nick Mathewson nickm@torproject.org sub rsa4096 2016-09-23 [S] [expires: 2025-10-04] sub rsa4096 2016-09-23 [E] [expires: 2025-10-04]
エラーメッセージが表示された場合、何か問題が発生したため、原因を特定するまで作業を続行できません。 代わりに 回避策 (公開鍵を使用) セクションを使用してキーをインポートできる場合があります。
鍵をインポートしたら、ファイルに保存できます (ここではフィンガープリントで識別します) 。
$ gpg --output ./tor.keyring --export 0x2133BC600AB133E1D826D173FE43009C4607B1FB
このコマンドを実行すると、鍵は ./tor.keyring というパス、つまり現在のディレクトリーにファイルとして保存されます。 このコマンドを実行した後、./tor.keyring が存在しない場合、何か問題が発生したため、原因を特定するまで作業を続行できません。
署名の検証
ダウンロードしたパッケージの署名を検証するには、対応する .sha256sum.asc 署名ファイルと .sha256sum ファイルそのものをダウンロードし、ダウンロードしたファイルの検証を GnuPG に求めるコマンドを使って検証する必要があります。
以下の例では、これら 2 つのファイルを「Downloads」フォルダーにダウンロードしたものとします。 これらのコマンドはファイル名の例であり、あなたのファイル名は異なる可能性があることにご注意ください。あなたは 9.0 以外のバージョンをダウンロードし、英語 (en-US) ではない言語を選択していない可能性があります。
gpgv --keyring .\tor.keyring Downloads\tor-0.4.6.10.tar.gz.sha256sum.asc Downloads\tor-0.4.6.10.tar.gz.sha256sum
コマンドの結果は次のようになるはずです (どのキーが署名したかによって変化します) 。
gpgv: Signature made Mon 16 Aug 2021 04:44:27 PM -03 gpgv: using RSA key 7A02B3521DC75C542BA015456AFEE6D49E92B601 gpgv: Good signature from "Nick Mathewson nickm@torproject.org"
「No such file or directory」を含むエラーメッセージが表示された場合は、前の手順のいずれかで何か問題が発生したか、またはこれらのコマンドが例示のファイル名を使用しており、実際のファイル名が少し異なる可能性があります。
GnuPG の詳細につきましては、こちらをご覧ください。
チェックサムを検証する
チェックサムの署名を検証したので、パッケージの整合性を検証する必要があります。
certUtil -hashfile tor-0.4.6.10.tar.gz.sha256sum SHA256
注意: これらの手順は、tor のソースコードを検証するためのものです。 Tor Browser の署名を検証する方法につきましては、こちらの手順をご覧ください。
署名ファイルのダウンロード
The Tor source files on our download page are accompanied by two files which are labelled "checksum" and "sig" with the same name as the package and the extension ".sha256sum" and ".sha256sum.asc" respectively.
.asc ファイルは、 (パッケージのチェックサムを含む) .sha 256 sumファイルが改ざんされていないことを検証します。署名が検証されると (その方法については以下を参照) 、パッケージの整合性を次の方法で検証できます。
$ sha256sum -c *.sha256sum
これらのファイルを使用すると、ダウンロードしたファイルが意図したものであることを検証できます。 ウェブブラウザーによって操作は多少異なりますが、通常は "sig" と "checksum" のリンクを右クリックし、「名前を付けてファイルを保存」オプションを選択することで、このファイルをダウンロードできます。
例えば、tor-0.4.6.7.tar.gz には tor-0.4.6.7.tar.gz.sha256sum.asc が付属しています。 これらはファイル名の例であり、ダウンロードするファイル名と完全に一致するとは限りません。
署名の日付は、パッケージが署名された時点のものとなります。 そのため、新しいファイルがアップロードされるたびに、異なる日付の新しい署名が生成されます。 一度署名を検証しておけば、表示される日付が異なっていても心配する必要はありません。
GnuPG のインストール
macOS をご利用の場合は、GPGTools をインストールしてください。
Tor Developers キーの取得
以下のキーが tarball に署名することができます。誰がリリースするかによって異なるので、すべてを期待しないでください。
- Alexander Færøy: 514102454D0A87DB0767A1EBBE6A0531C18A9179
- David Goulet: B74417EDDF22AC9F9E90F49142E86A2A11F48D36
- Nick Mathewson: 2133BC600AB133E1D826D173FE43009C4607B1FB
上記のリンクまたは次のリンクを使用してキーを取得できます。
$ gpg --auto-key-locate nodefault,wkd --locate-keys ahf@torproject.org $ gpg --auto-key-locate nodefault,wkd --locate-keys dgoulet@torproject.org $ gpg --auto-key-locate nodefault,wkd --locate-keys nickm@torproject.org
(nickm の場合) 次のように表示されます。
gpg: key FE43009C4607B1FB: public key "Nick Mathewson nickm@torproject.org" imported gpg: Total number processed: 1 gpg: imported: 1 pub rsa4096 2016-09-21 [C] [expires: 2025-10-04] 2133BC600AB133E1D826D173FE43009C4607B1FB uid [ unknown] Nick Mathewson nickm@torproject.org sub rsa4096 2016-09-23 [S] [expires: 2025-10-04] sub rsa4096 2016-09-23 [E] [expires: 2025-10-04]
エラーメッセージが表示された場合、何か問題が発生したため、原因を特定するまで作業を続行できません。 代わりに 回避策 (公開鍵を使用) セクションを使用してキーをインポートできる場合があります。
鍵をインポートしたら、ファイルに保存できます (ここではフィンガープリントで識別します) 。
$ gpg --output ./tor.keyring --export 0x2133BC600AB133E1D826D173FE43009C4607B1FB
このコマンドを実行すると、鍵は ./tor.keyring というパス、つまり現在のディレクトリーにファイルとして保存されます。 このコマンドを実行した後、./tor.keyring が存在しない場合、何か問題が発生したため、原因を特定するまで作業を続行できません。
署名の検証
ダウンロードしたパッケージの署名を検証するには、対応する .sha256sum.asc 署名ファイルと .sha256sum ファイルそのものをダウンロードし、ダウンロードしたファイルの検証を GnuPG に求めるコマンドを使って検証する必要があります。
以下の例では、これら 2 つのファイルを「Downloads」フォルダーにダウンロードしたものとします。 これらのコマンドはファイル名の例であり、あなたのファイル名は異なる可能性があることにご注意ください。あなたは 9.0 以外のバージョンをダウンロードし、英語 (en-US) ではない言語を選択していない可能性があります。
macOS ユーザーの場合:
gpgv --keyring ./tor.keyring ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum.asc ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum
「No such file or directory」を含むエラーメッセージが表示された場合は、前の手順のいずれかで何か問題が発生したか、またはこれらのコマンドが例示のファイル名を使用しており、実際のファイル名が少し異なる可能性があります。
GnuPG の詳細につきましては、こちらをご覧ください。
チェックサムを検証する
チェックサムの署名を検証したので、パッケージの整合性を検証する必要があります。
shasum -a 256 tor-0.4.6.10.tar.gz.sha256sum
注意: これらの手順は、tor のソースコードを検証するためのものです。 Tor Browser の署名を検証する方法につきましては、こちらの手順をご覧ください。
署名ファイルのダウンロード
The Tor source files on our download page are accompanied by two files which are labelled "checksum" and "sig" with the same name as the package and the extension ".sha256sum" and ".sha256sum.asc" respectively.
.asc ファイルは、 (パッケージのチェックサムを含む) .sha 256 sumファイルが改ざんされていないことを検証します。署名が検証されると (その方法については以下を参照) 、パッケージの整合性を次の方法で検証できます。
$ sha256sum -c *.sha256sum
これらのファイルを使用すると、ダウンロードしたファイルが意図したものであることを検証できます。 ウェブブラウザーによって操作は多少異なりますが、通常は "sig" と "checksum" のリンクを右クリックし、「名前を付けてファイルを保存」オプションを選択することで、このファイルをダウンロードできます。
例えば、tor-0.4.6.7.tar.gz には tor-0.4.6.7.tar.gz.sha256sum.asc が付属しています。 これらはファイル名の例であり、ダウンロードするファイル名と完全に一致するとは限りません。
署名の日付は、パッケージが署名された時点のものとなります。 そのため、新しいファイルがアップロードされるたびに、異なる日付の新しい署名が生成されます。 一度署名を検証しておけば、表示される日付が異なっていても心配する必要はありません。
GnuPG のインストール
署名を検証するには、まず GnuPG をインストールする必要があります。
GNU/Linux をご利用の場合、ほとんどの GNU/Linux ディストリビューションには GnuPG がプリインストールされているため、システムにすでに GnuPG がインストールされている可能性が高いです。
署名を検証するには、ターミナルウィンドウでいくつかのコマンドを入力する必要があります。 これを行う方法は、ディストリビューションによって異なります。
Tor Developers キーの取得
以下のキーが tarball に署名することができます。誰がリリースするかによって異なるので、すべてを期待しないでください。
- Alexander Færøy: 514102454D0A87DB0767A1EBBE6A0531C18A9179
- David Goulet: B74417EDDF22AC9F9E90F49142E86A2A11F48D36
- Nick Mathewson: 2133BC600AB133E1D826D173FE43009C4607B1FB
上記のリンクまたは次のリンクを使用してキーを取得できます。
$ gpg --auto-key-locate nodefault,wkd --locate-keys ahf@torproject.org $ gpg --auto-key-locate nodefault,wkd --locate-keys dgoulet@torproject.org $ gpg --auto-key-locate nodefault,wkd --locate-keys nickm@torproject.org
(nickm の場合) 次のように表示されます。
gpg: key FE43009C4607B1FB: public key "Nick Mathewson nickm@torproject.org" imported gpg: Total number processed: 1 gpg: imported: 1 pub rsa4096 2016-09-21 [C] [expires: 2025-10-04] 2133BC600AB133E1D826D173FE43009C4607B1FB uid [ unknown] Nick Mathewson nickm@torproject.org sub rsa4096 2016-09-23 [S] [expires: 2025-10-04] sub rsa4096 2016-09-23 [E] [expires: 2025-10-04]
エラーメッセージが表示された場合、何か問題が発生したため、原因を特定するまで作業を続行できません。 代わりに 回避策 (公開鍵を使用) セクションを使用してキーをインポートできる場合があります。
鍵をインポートしたら、ファイルに保存できます (ここではフィンガープリントで識別します) 。
$ gpg --output ./tor.keyring --export 0x2133BC600AB133E1D826D173FE43009C4607B1FB
このコマンドを実行すると、鍵は ./tor.keyring というパス、つまり現在のディレクトリーにファイルとして保存されます。 このコマンドを実行した後、./tor.keyring が存在しない場合、何か問題が発生したため、原因を特定するまで作業を続行できません。
署名の検証
ダウンロードしたパッケージの署名を検証するには、対応する .sha256sum.asc 署名ファイルと .sha256sum ファイルそのものをダウンロードし、ダウンロードしたファイルの検証を GnuPG に求めるコマンドを使って検証する必要があります。
以下の例では、これら 2 つのファイルを「Downloads」フォルダーにダウンロードしたものとします。 これらのコマンドはファイル名の例であり、あなたのファイル名は異なる可能性があることにご注意ください。あなたは 9.0 以外のバージョンをダウンロードし、英語 (en-US) ではない言語を選択していない可能性があります。
gpgv --keyring ./tor.keyring ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum.asc ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum
コマンドの結果は次のようになるはずです (どのキーが署名したかによって変化します) 。
gpgv: Signature made Mon 16 Aug 2021 04:44:27 PM -03 gpgv: using RSA key 7A02B3521DC75C542BA015456AFEE6D49E92B601 gpgv: Good signature from "Nick Mathewson nickm@torproject.org"
「No such file or directory」を含むエラーメッセージが表示された場合は、前の手順のいずれかで何か問題が発生したか、またはこれらのコマンドが例示のファイル名を使用しており、実際のファイル名が少し異なる可能性があります。
GnuPG の詳細につきましては、こちらをご覧ください。
チェックサムを検証する
チェックサムの署名を検証したので、パッケージの整合性を検証する必要があります。
sha256sum -c tor-0.4.6.10.tar.gz.sha256sum