مجوز سرویسگیرنده روشی برای اصالتسنجی و خصوصیکردن سرویس Onion است.
برای اتصال به سرویس Onion ، سرویسگیرندههای Tor نیازمند ارائهٔ یک اعتبارنامه اصالتسنجی هستند.
برای سرویسهای Onion v3، این روش با یک جفت کلید (یکی عمومی و یکی خصوصی) کار میکند.
سمت سرویس با یک کلید عمومی پیکربندی شده است و سرویسگیرنده فقط با یک کلید خصوصی میتواند به آن دسترسی داشته باشد.
توجه: هنگامی که مجوز سرویسگیرنده را پیکربندی کردید، هیچ کسی با نشانی مورد نظر از این مرحله به بعد نمیتواند به آن دسترسی داشته باشد.
اگر هیچ مجوزی پیکربندی نشده باشد، این سرویس برای هر کسی که نشانی Onion داشته باشد قابل دسترسی خواهد بود.
پیکربندی سرویسهای Onion v3
سمت سرویس
برای پیکربندی مجوز سرویسگیرنده در سمت سرویس، شاخه <HiddenServiceDir>/authorized_clients/
باید موجود باشد.با پیروی از دستورالعملهای توضیح دادهشده در بخش نصب بهطور خودکار این شاخه ایجاد خواهد شد.
مجوز سرویسگیرنده تنها در صورتی برای سرویس بهکار میافتد که Tor حداقل یک فایل مجوز را با موفقیت بارگیری کند.
درحالحاضر، شما باید کلیدها را خودتان با یک اسکریپت (مانند مواردی که با Bash، Rust یا Python نوشته شده است) یا بهصورت دستی ایجاد کنید.
برای تولید دستی کلیدها، باید openssl
نسخهٔ ۱.۱+ و basez
را نصب کنید.
گام ۱. با استفاده از الگوریتم x25519 یک کلید ایجاد کنید:
$ openssl genpkey -algorithm x25519 -out /tmp/k1.prv.pem
اگر پیغام خطایی دریافت کردید، مشکلی رخ داده است و تا زمانی که متوجه علت عدم کارکرد آن نشدهاید، نمیتوانید ادامه دهید.
گام ۲. کلیدها را به قالب base32 تبدیل کنید:
کلید خصوصی
$ cat /tmp/k1.prv.pem | grep -v " PRIVATE KEY" | base64pem -d | tail --bytes=32 | base32 | sed 's/=//g' > /tmp/k1.prv.key
کلید عمومی
$ openssl pkey -in /tmp/k1.prv.pem -pubout | grep -v " PUBLIC KEY" | base64pem -d | tail --bytes=32 | base32 | sed 's/=//g' > /tmp/k1.pub.key
گام ۳. کلید عمومی را کپی کنید:
$ cat /tmp/k1.pub.key
گام ۴. یک فایل سرویسگیرندهٔ مجاز ایجاد کنید:
اصالتسنجی سرویسگیرنده را قالببندی کرده و یک فایل جدید در شاخه <HiddenServiceDir>/authorized_clients/
ایجاد کنید.
هر فایل در آن شاخه باید با پسوند «.auth» باشد (یعنی «alice.auth»؛ نام فایل مهم نیست) و قالب محتوای آن باید به این شکل باشد:
<auth-type>:<key-type>:<base32-encoded-public-key>
مقادیر پشتیبانیشده برای <auth-type>
عبارتند از: «descriptor».
مقادیر پشتیبانیشده برای <key-type>
عبارت است از: «x25519».
<base32-encoded-public-key>
نمایش base32 از فقط بایتهای کلید خام است (32 بایت برای x25519).
برای مثال فایل /var/lib/tor/hidden_service/authorized_clients/alice.auth
باید به این شکل باشد:
descriptor:x25519:N2NU7BSRL6YODZCYPN4CREB54TYLKGIE2KYOQWLFYC23ZJVCE5DQ
اگر قصد دارید سرویسگیرندههای تأییدشده بیشتری داشته باشید، هر فایل باید حاوی فقط یک سطر باشد. هر فایل معیوب نادیده گرفته خواهد شد.
گام ۵. سرویس Tor را دوباره راهاندازی کنید:
$ sudo systemctl reload tor
اگر پیغام خطایی دریافت کردید، مشکلی رخ داده است و تا زمانی که متوجه علت عدم کارکرد آن نشدهاید، نمیتوانید ادامه دهید.
مهم: لغو یک سرویسگیرنده با حذف فایل «.auth» آنها قابل انجام است، اما لغو فقط پس از راهاندازی دوباره فرایند Tor اعمال خواهد شد.
سمت سرویسگیرنده
برای دسترسی به سرویس Onion نسخهٔ ۳ با مجوز سرویسگیرنده بهعنوان سرویسگیرنده، مطمئن شوید که ClientOnionAuthDir
را در torrc خود تنظیم کردهاید.
برای مثال، این سطر را به /etc/tor/torrc
اضافه کنید:
ClientOnionAuthDir /var/lib/tor/onion_auth
سپس، در شاخه <ClientOnionAuthDir>
، یک فایل .auth_private
برای سرویس Onion متناظر با این کلید (برای مثال 'bob_onion.auth_private') ایجاد کنید.
محتوای فایل <ClientOnionAuthDir>/<user>.auth_private
باید شبیه به این باشد:
<56-char-onion-addr-without-.onion-part>:descriptor:x25519:<x25519 private key in base32>
برای مثال:
rh5d6reakhpvuxe2t3next6um6iiq4jf43m7gmdrphfhopfpnoglzcyd:descriptor:x25519:ZDUVQQ7IKBXSGR2WWOBNM3VP5ELNOYSSINDK7CAUN2WD7A3EKZWQ
اگر جفت کلید را بهصورت دستی طبق دستورالعملهای این صفحه ایجاد کردهاید، میتوانید کلید خصوصی ایجادشده در گام ۲ را کپی کرده و از آن استفاده کنید.
سپس tor
را دوباره راهاندازی کنید و باید بتوانید به نشانی سرویس Onion متصل شوید.
اگر درحال ایجاد یک کلید خصوصی برای یک سایت Onion هستید، کاربر لزوماً نیازی به ویرایش torrc مرورگر Tor ندارد. این امکان وجود دارد که کلید خصوصی را بهطور مستقیم در رابط مرورگر Tor وارد کرد.
برای اطلاعات بیشتر در مورد اصالتسنجی سرویسگیرنده، لطفاً راهنمای Tor را ببینید.