# How to verify tor source code

Windows
macOS
BSD/Linux

توجه: این رهنمون‌ها برای تأیید کد منبع Tor هستند. Please follow the right instructions to verify Tor Browser's signature.

### Downloading the signature files

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`

این فایل‌ها به شما اجازه می‌دهند که تأیید کنید فایلی که بارگیری کرده‌اید دقیقاً همان فایلی است که ما قصد داشتیم شما دریافت کنید. این کار در هر مرورگر وب متفاوت است، اما عموماً می‌توانید با کلیک-راست روی پیوندهای «sig» و «checksum» و انتخاب گزینهٔ «save file as» این فایل را بارگیری کنید.

برای مثال، `tor-0.4.6.7.tar.gz` با `tor-0.4.6.7.tar.gz.sha256sum.asc` همراهی می‌شود. این‌ها نام‌های فایل نمونه هستند و دقیقاً با نام‌های فایلی که شما بارگیری می‌کنید مطابقت نخواهند داشت.

لطفاً توجه داشته باشید که امضا در لحظه‌ای که بسته امضا می‌شود، تاریخ‌گذاری می‌شود. بنابراین هر بار که فایلی جدید بارگذاری می‌شود یک امضای جدید با یک تاریخ متفاوت تولید می‌شود. مادامی که شما امضا را تأیید کرده‌اید لازم نیست نگران تفاوت تاریخ گزارش‌شده باشید.

### نصب GnuPG

اول از همه نیاز است تا GnuPG را نصب داشته باشید تا بتوانید امضاها را تأیید کنید. اگر از Windows استفاده می‌کنید، Gpg4win را بارگیری کنید و نصب‌کنندهٔ آن را اجرا کنید.

برای تأیید امضا لازم است چندین فرمان را در خط فرمان Windows، یا `cmd.exe` وارد کنید.

### واکشی کلید توسعه‌دهندگان Tor

کلیدهای زیر می‌توانند 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 بارگیری خواهید کرد و ممکن است نسخهٔ انگلیسی (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"

اگر پیغام خطایی حاوی ‹چنین فایل یا شاخه‌ای وجود ندارد› دریافت می‌کنید، یا در یکی از مراحل گذشته اشتباهی پیش آمده است و یا اینکه فراموش کردید که این فرمان‌ها از نام‌های فایل نمونه استفاده می‌کنند و نام‌های فایل شما کمی متفاوت خواهند بود.

شاید همچنین بخواهید دربارهٔ GnuPG بیشتر بیاموزید.

### تایید جمع‌آزما

اکنون که امضاهای جمع‌آزما را صحت‌سنجی کردیم، باید صحت بسته را تأیید کنیم.

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

توجه: این رهنمون‌ها برای تأیید کد منبع Tor هستند. Please follow the right instructions to verify Tor Browser's signature.

### Downloading the signature files

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`

این فایل‌ها به شما اجازه می‌دهند که تأیید کنید فایلی که بارگیری کرده‌اید دقیقاً همان فایلی است که ما قصد داشتیم شما دریافت کنید. این کار در هر مرورگر وب متفاوت است، اما عموماً می‌توانید با کلیک-راست روی پیوندهای «sig» و «checksum» و انتخاب گزینهٔ «save file as» این فایل را بارگیری کنید.

برای مثال، `tor-0.4.6.7.tar.gz` با `tor-0.4.6.7.tar.gz.sha256sum.asc` همراهی می‌شود. این‌ها نام‌های فایل نمونه هستند و دقیقاً با نام‌های فایلی که شما بارگیری می‌کنید مطابقت نخواهند داشت.

لطفاً توجه داشته باشید که امضا در لحظه‌ای که بسته امضا می‌شود، تاریخ‌گذاری می‌شود. بنابراین هر بار که فایلی جدید بارگذاری می‌شود یک امضای جدید با یک تاریخ متفاوت تولید می‌شود. مادامی که شما امضا را تأیید کرده‌اید لازم نیست نگران تفاوت تاریخ گزارش‌شده باشید.

### نصب GnuPG

اگر از macOS استفاده می‌کنید، می‌توانید GPGTools را نصب کنید.

### واکشی کلید توسعه‌دهندگان Tor

کلیدهای زیر می‌توانند 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 بارگیری خواهید کرد و ممکن است نسخهٔ انگلیسی (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

اگر پیغام خطایی حاوی ‹چنین فایل یا شاخه‌ای وجود ندارد› دریافت می‌کنید، یا در یکی از مراحل گذشته اشتباهی پیش آمده است و یا اینکه فراموش کردید که این فرمان‌ها از نام‌های فایل نمونه استفاده می‌کنند و نام‌های فایل شما کمی متفاوت خواهند بود.

شاید همچنین بخواهید دربارهٔ GnuPG بیشتر بیاموزید.

### تایید جمع‌آزما

اکنون که امضاهای جمع‌آزما را صحت‌سنجی کردیم، باید صحت بسته را تأیید کنیم.

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

توجه: این رهنمون‌ها برای تأیید کد منبع Tor هستند. Please follow the right instructions to verify Tor Browser's signature.

### Downloading the signature files

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`

این فایل‌ها به شما اجازه می‌دهند که تأیید کنید فایلی که بارگیری کرده‌اید دقیقاً همان فایلی است که ما قصد داشتیم شما دریافت کنید. این کار در هر مرورگر وب متفاوت است، اما عموماً می‌توانید با کلیک-راست روی پیوندهای «sig» و «checksum» و انتخاب گزینهٔ «save file as» این فایل را بارگیری کنید.

برای مثال، `tor-0.4.6.7.tar.gz` با `tor-0.4.6.7.tar.gz.sha256sum.asc` همراهی می‌شود. این‌ها نام‌های فایل نمونه هستند و دقیقاً با نام‌های فایلی که شما بارگیری می‌کنید مطابقت نخواهند داشت.

لطفاً توجه داشته باشید که امضا در لحظه‌ای که بسته امضا می‌شود، تاریخ‌گذاری می‌شود. بنابراین هر بار که فایلی جدید بارگذاری می‌شود یک امضای جدید با یک تاریخ متفاوت تولید می‌شود. مادامی که شما امضا را تأیید کرده‌اید لازم نیست نگران تفاوت تاریخ گزارش‌شده باشید.

### نصب GnuPG

اول از همه نیاز است تا GnuPG را نصب داشته باشید تا بتوانید امضاها را تأیید کنید.

اگر از GNU/Linux استفاده می‌کنید، پس احتمالاً GnuPG را از پیش روی سیستم خود دارید، چراکه بیشتر توزیع‌های GNU/Linux آن را از پیش نصب‌شده دارند.

برای تأیید امضا، باید چند فرمان را در یک پنجرهٔ ترمینال تایپ کنید. نحوهٔ انجام این کار بسته به توزیع شما متفاوت است.

### واکشی کلید توسعه‌دهندگان Tor

کلیدهای زیر می‌توانند 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 بارگیری خواهید کرد و ممکن است نسخهٔ انگلیسی (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"

اگر پیغام خطایی حاوی ‹چنین فایل یا شاخه‌ای وجود ندارد› دریافت می‌کنید، یا در یکی از مراحل گذشته اشتباهی پیش آمده است و یا اینکه فراموش کردید که این فرمان‌ها از نام‌های فایل نمونه استفاده می‌کنند و نام‌های فایل شما کمی متفاوت خواهند بود.

شاید همچنین بخواهید دربارهٔ GnuPG بیشتر بیاموزید.

### تایید جمع‌آزما

اکنون که امضاهای جمع‌آزما را صحت‌سنجی کردیم، باید صحت بسته را تأیید کنیم.

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