如何驗證 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 檔將驗證 .sha256sum 檔案(包含套件的校驗和)沒有被篡改。一旦簽名被驗證有效(見下面的方法),套件的完整性就可以用以下方法驗證:
$ sha256sum -c *.sha256sum
這些檔案用於驗證你所下載的正是我們希望你得到的檔案。 一般來說,可以通過右擊 “簽名”和“校驗和”連結並選擇“另存為”選項來下載檔案,不過這可能因瀏覽器而異。
例如,tor-0.4.6.7.tar.gz配有tor-0.4.6.7.tar.gz.sha256sum.asc。 有些範例檔案的名稱不會跟您所下載的檔名完全相同。
請注意數位簽章上壓印的日期就是該套裝軟體被簽署的時間。 因此每當檔案被更新的時候,就會產生一個壓有不同日期的新的數位簽章。 只要您有驗證過數位簽章,就不用擔心上述有可能改變的數位簽章日期。
安裝 GnuPG
首先,開始驗證數位簽章前,您需要先安裝好 GnuPG。 如果您用的是 Windows 系統,請下載 Gpg4win並執行安裝程式。
您會需要在 Windows 的命令提示字元模式cmd.exe中,輸入幾道指令才能驗證數位簽章。
取得洋蔥路由開發人員的金鑰
下面的密鑰可以對 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 驗證。
底下範例假設您將該二檔案存放於「下載」資料夾中。 請注意,此處的指令中都是使用範例檔名,跟您所實際下載取得的檔名不會相同:您下載的可能不是第 9.0 版,而且也可能不是英文(美式)版本。
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 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 檔將驗證 .sha256sum 檔案(包含套件的校驗和)沒有被篡改。一旦簽名被驗證有效(見下面的方法),套件的完整性就可以用以下方法驗證:
$ sha256sum -c *.sha256sum
這些檔案用於驗證你所下載的正是我們希望你得到的檔案。 一般來說,可以通過右擊 “簽名”和“校驗和”連結並選擇“另存為”選項來下載檔案,不過這可能因瀏覽器而異。
例如,tor-0.4.6.7.tar.gz配有tor-0.4.6.7.tar.gz.sha256sum.asc。 有些範例檔案的名稱不會跟您所下載的檔名完全相同。
請注意數位簽章上壓印的日期就是該套裝軟體被簽署的時間。 因此每當檔案被更新的時候,就會產生一個壓有不同日期的新的數位簽章。 只要您有驗證過數位簽章,就不用擔心上述有可能改變的數位簽章日期。
安裝 GnuPG
若您是使用 MacOS 系統的話,您可以安裝GPGTools。
取得洋蔥路由開發人員的金鑰
下面的密鑰可以對 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 驗證。
底下範例假設您將該二檔案存放於「下載」資料夾中。 請注意,此處的指令中都是使用範例檔名,跟您所實際下載取得的檔名不會相同:您下載的可能不是第 9.0 版,而且也可能不是英文(美式)版本。
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 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 檔將驗證 .sha256sum 檔案(包含套件的校驗和)沒有被篡改。一旦簽名被驗證有效(見下面的方法),套件的完整性就可以用以下方法驗證:
$ sha256sum -c *.sha256sum
這些檔案用於驗證你所下載的正是我們希望你得到的檔案。 一般來說,可以通過右擊 “簽名”和“校驗和”連結並選擇“另存為”選項來下載檔案,不過這可能因瀏覽器而異。
例如,tor-0.4.6.7.tar.gz配有tor-0.4.6.7.tar.gz.sha256sum.asc。 有些範例檔案的名稱不會跟您所下載的檔名完全相同。
請注意數位簽章上壓印的日期就是該套裝軟體被簽署的時間。 因此每當檔案被更新的時候,就會產生一個壓有不同日期的新的數位簽章。 只要您有驗證過數位簽章,就不用擔心上述有可能改變的數位簽章日期。
安裝 GnuPG
首先,開始驗證數位簽章前,您需要先安裝好 GnuPG。
若您是 GNU/Linux 系統的使用者的話,那您的系統中應該已經有安裝 GnuPG 程式了,這是在大多數 GNU/Linux 系統的封裝發行版中會預載的軟體。
若要驗證其數位簽章,您需要在命令列模式輸入幾道指令。 這個方式會隨著您所使用的系統發行版不同而有所差異。
取得洋蔥路由開發人員的金鑰
下面的密鑰可以對 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 驗證。
底下範例假設您將該二檔案存放於「下載」資料夾中。 請注意,此處的指令中都是使用範例檔名,跟您所實際下載取得的檔名不會相同:您下載的可能不是第 9.0 版,而且也可能不是英文(美式)版本。
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