Chú ý: Những hướng dẫn này là để xác minh mã nguồn của tor. Xin hãy theo sát các chỉ dẫn đúng đắn để xác minh chữ ký của trình duyệt Tor Browser.

Chữ ký điện tử là một quá trình bảo đảm rằng một gói package nhất định đã được khởi tạo bởi chính các nhà phát triển nó và chưa bị can thiệp, động chạm vào. Dưới đây, chúng tôi giải thích tại sao đó là điều quan trọng và làm thế nào để xác minh mã nguồn tor mà bạn tải xuống đúng chính là cái mà chúng tôi đã tạo ra và chưa bị chỉnh sửa bởi một số kẻ tấn công.

Mỗi một tập tin trên trang web tải xuống của chúng tôi được đi kèm theo bởi hai tập tin. Hai tập tin này được dán nhãn "checksum" và "sig" với cùng tên gọi như gói package và tiện ích mở rộng extension ".sha256sum" và ".sha256sum.asc" tương ứng.

Tập tin .asc sẽ xác minh rằng, tập tin .sha256sum (chứa đựng tổng số kiểm tra checksum của gói package) vẫn chưa bị can thiệp vào. Một khi chữ ký đã được xác nhận (xem bên dưới về cách làm thế nào để thực hiện điều đó), tính toàn vẹn của gói package có thể được xác nhận với:

$ sha256sum -c *.sha256sum

Các tập tin này cho phép bạn xác minh rằng, tập tin mà bạn đã tải xuống đúng chính xác là cái mà chúng tôi dự định cho bạn lấy về. Điều này sẽ thay đổi khác biệt đối với mỗi một trình duyệt web, nhưng tổng quan mà nói, bạn có thể tải xuống tập tin này bằng cách nhấp chuột phải vào đường dẫn link "sig" và "checksum" và lựa chọn tuỳ chọn "save file as" (sao lưu tập tin như).

Ví dụ, tor-0.4.6.7.tar.gz được kèm theo với tor-0.4.6.7.tar.gz. Đây là các tên tập tin ví dụ và sẽ không hoàn toàn trùng khớp với các tên tập tin mà bạn tải xuống.

Hiện tại, chúng tôi cho bạn thấy, làm thế nào để bạn có thể xác minh chữ ký điện tử của tập tin đã được tải xuống trên các hệ điều hành khác nhau. Xin hãy lưu ý rằng, một chữ ký sẽ được định ngày tháng vào thời điểm mà gói package được ký. Do đó, mỗi lần một tập tin mới được tải lên, một chữ ký mới sẽ được tạo ra với một ngày tháng khác biệt. Miễn là bạn đã xác minh chữ ký rồi, bạn không cần phải lo lắng rằng, ngày báo cáo có thể thay đổi.

Việc cài đặt GnuPG

Đầu tiên trước hết, bạn cần phải có GnuPG đã được cài đặt trước khi bạn có thể xác minh các chữ ký.

Cho người dùng Windows:

Nếu bạn chạy Windows, tải xuống Gpg4win và chạy trình cài đặt installer của nó.

Để xác minh chữ ký, bạn sẽ cần phải gõ nhập vào một số các lệnh command trong command-line của Windows, cmd.exe.

Cho người dùng macOS:

Nếu bạn đang sử dụng macOS, bạn có thể cài đặt GPGTools.

Để xác minh chữ ký, bạn sẽ cần phải gõ nhập vào một số lệnh command trong Terminal (dưới mục "Applications" (Các ứng dụng).

Cho người dùng GNU/Linux:

Nếu bạn đang sử dụng GNU/Linux, thì bạn có lẽ đã có GnuPG trong hệ thống của bạn rồi, bởi hầu hết các bản phân phối GNU/Linux kèm theo nó đã được cài đặt trước.

Để xác minh chữ ký, bạn sẽ cần phải gõ nhập vào một số các lệnh command trong một cửa sổ terminal. Làm thế nào để thực hiện điều này sẽ còn phụ thuộc vào bản phân phối của bạn.

Tìm nạp (fetch) khoá key Các nhà phát triển Tor

Các khoá key sau đây có thể ký cho tarball. Đừng mong đợi vào tất cả chúng, bởi nó còn phụ thuộc vào việc ai sẵn sàng thực hiện việc phát hành.

Bạn có thể gọi fetch khoá key với các đường dẫn link được cung cấp bên trên hoặc với:

$ 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

Điều này nên hiển thị cho bạn thứ trông giống như (cho nickm):

gpg: key FE43009C4607B1FB: public key "Nick Mathewson <nickm@torproject.org>" imported
gpg: Tổng số lượng đã xử lý: 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]

Nếu bạn nhận được một thông báo lỗi, có điều gì đó đã xảy ra sự cố và bạn không thể tiếp tục cho đến khi tìm ra lý do tại sao điều này không hoạt động. Bạn có thể có khả năng truy nhập khoá key bằng cách sử dụng mục Workaround (sử dụng một khoá key công cộng) thay vào đó.

Sau khi truy nhập khoá key, bạn có thể sao lưu nó vào một tập tin (định danh nó bằng dấu vết vân tay fingerprint của nó tại đây):

$ gpg --output ./tor.keyring --export 0x2133BC600AB133E1D826D173FE43009C4607B1FB

Lệnh command này làm cho khoá key được sao lưu vào một tập tin mà có thể được tìm thấy tại đường dẫn path ./tor.keyring, ví dụ như trong thư mục hiện tại. Nếu như ./tor.keyring không tồn tại sau khi chạy lệnh command này, có điều gì đó đã sai sót và bạn không thể tiếp tục cho tới khi bạn đã tìm hiểu ra tại sao điều này không hoạt động.

Việc xác minh chữ ký

Để xác minh chữ ký của gói package mà bạn đã tải xuống, bạn sẽ cần phải tải xuống tập tin chữ ký .sha256sum.asc tương ứng và tập tin .sha256sum chính nó, và xác minh nó với một lệnh command để yêu cầu GnuPG xác minh tập tin mà bạn đã tải xuống.

Các ví dụ bên dưới giả định rằng, bạn đã tải xuống cả hai tập tin này vào thư mục "Downloads" (Tải xuống) của bạn. Hãy lưu ý rằng, các lệnh command này sử dụng các tên tập tin thí dụ và nó sẽ khác với các tên tập tin của bạn: có khi bạn đã tải xuống một phiên bản khác với phiên bản 9.0 và bạn có lẽ đã không chọn phiên bản tiếng Anh (en-US).

Cho người dùng Windows:

gpgv --keyring .\tor.keyring Downloads\tor-0.4.6.10.tar.gz.sha256sum.asc Downloads\tor-0.4.6.10.tar.gz.sha256sum

Cho người dùng macOS:

gpgv --keyring ./tor.keyring ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum.asc ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum

Cho người dùng BSD/Linux:

gpgv --keyring ./tor.keyring ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum.asc ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum

Kết quả của lệnh command nên tạo ra thứ gì đó trông như thế này (còn phụ thuộc vào chiếc khoá key nào đã ký cho nó):

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>"

Nếu bạn nhận được các thông báo lỗi có chứa 'No such file or directory' (Không có tập tin hoặc thư mục nào như vậy), vậy thì hoặc có điều gì đó sai sót với một trong các bước trước, hoặc bạn đã quên rằng các lệnh command này sử dụng các tên tập tin ví dụ và các tập tin của bạn có tên khác một chút.

Bạn có thể cũng muốn được tìm hiểu thêm về GnuPG.

Xác minh tổng số kiểm tra checksum

Giờ đây chúng ta đã xác nhận chữ ký của tổng số kiểm tra checksum rồi, chúng ta cần phải xác nhận tính toàn vẹn của gói package.

Cho người dùng Windows:

certUtil -hashfile tor-0.4.6.10.tar.gz.sha256sum SHA256

Cho người dùng macOS:

shasum -a 256 tor-0.4.6.10.tar.gz.sha256sum

Cho người dùng BSD/Linux:

sha256sum -c tor-0.4.6.10.tar.gz.sha256sum