如何驗證 tor 原始碼
數位簽章可用來確認你下載的 Tor 原始碼是由 Tor 開發者發布,且未遭竄改。 以下會說明為何這件事很重要,以及如何驗證你下載的 Tor 確實由我們發布、未被攻擊者修改。
注意:以下教學是關於驗證洋蔥路由的原始程式碼。 請依正確步驟驗證 Tor Browser 簽章。
下載簽章檔案
在 下載頁面 中,每個 Tor 原始碼檔案都會附上兩個同名檔案:.sha256sum(標示為「checksum」)與 .sha256sum.asc(標示為「sig」)。
.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 簽章。
下載簽章檔案
在 下載頁面 中,每個 Tor 原始碼檔案都會附上兩個同名檔案:.sha256sum(標示為「checksum」)與 .sha256sum.asc(標示為「sig」)。
.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 簽章。
下載簽章檔案
在 下載頁面 中,每個 Tor 原始碼檔案都會附上兩個同名檔案:.sha256sum(標示為「checksum」)與 .sha256sum.asc(標示為「sig」)。
.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