הרשאת לקוח הנה שיטה להפוך את שרות הבצל לפרטי ומזוהה. הדבר מחייב את לקוחות Tor לספק הוכחת הזדהות כדי להתחבר לשרות הבצל. בשרותי בצל V3, שיטה זו פועלת בעזרת שני מפתחות (ציבורי ופרטי). צד השרות מוגדר עם מפתח ציבורי וצד הלקוח יכול רק להתבר בעזרת המפתח הפרטי.

הערה: ברגע שקינפגתם את הרשאות הלקוח, כל אחד עם הכתובת לא יוכל להתחבר יותר החל מרגע זה ואילך, אם לא הוגדרה הרשאה, השרות יהיה זמין לכל אחד בעזרת כתובת הבצל.

הגדרות שרותי בצל V3

צד השרות

To configure client authorization on the service side, the <HiddenServiceDir>/authorized_clients/ directory needs to exist. Following the instructions described in the section Setup will automatically create this directory. הרשאות לקוח ישופעלו עבור השרות רק אם Tor מצליח להעלות לפחות קובץ הרשאה אחד.

לעת עתה, תצטרכו ליצור מפתחות בעצמכם בסקריפט (כמו זה שכתוב ב Bash, Rust או Python) או באפן ידני.

כדי ליצור את המפתחות ידנית, תצטרכו להתקין openssl version 1.1+ ו basez.

צעד 1. צרו מפתח תוך שימוש באלגוריתם x25519:

 $ openssl genpkey -algorithm x25519 -out /tmp/k1.prv.pem

אם קיבלתם הודעת שגיאה, משהו השתבש ואינכם מצליחים להמשיך עד אשר לבררו מדוע הדבר לא עבד.

צעד 2. פרמטו את המפתחות ל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

צעד 3. העתיקו את המפתח הציבורי:

 $ cat /tmp/k1.pub.key

צעד 4. צרו קובץ לקוח מאושר:

פרמטו את הזדהות הקלינט וצרו קובץ חדש במדריך <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 של המפתח הגולמי בבייטים x25519).

למשל, הקובץ /var/lib/tor/hidden_service/authorized_clients/alice.auth should look like:

 descriptor:x25519:N2NU7BSRL6YODZCYPN4CREB54TYLKGIE2KYOQWLFYC23ZJVCE5DQ

אם אתם מתכננים על יותר קליינטס מזוהים, כל קובץ חייב להכיל שורה אחת בלבד. כל קובץ שלא נבנה נכונה ידולג.

צעד 5. התחילו מחדש את שרות Tor:

 $ sudo systemctl reload tor

אם קיבלתם הודעת שגיאה, משהו השתבש ואינכם מצליחים להמשיך עד אשר לבררו מדוע הדבר לא עבד.

חשוב: הסרת קליינט יכולה להתבצע על ידי הסרת קובץ ".auth" שלהם, אך זו תבוא לידי ביטוי רק לאחר איתחול מחדש של Tor.

צד הקליינט

כדי להכנס לגירסה 3 של שרות הבצל עם הזדהות הקליינט כלקוח, וש לודא שיש לכם את הגדרות ClientOnionAuthDir ב torrc שלכם. למשל, הוסיפו שורה זו אל /etc/tor/torrc:

 ClientOnionAuthDir /var/lib/tor/onion_auth

ואז, במדריך <ClientOnionAuthDir>צרו קובץ .auth_private עבור שרות הבצל התואם את המפתח הזה (למשל '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

אם יצרתם ידנית זוג מפתחות לפי ההוראות בדף זה, אתם יכולים להעתיק את המפתח הפרטי שנוצר בצעד 2. ואז לאתחל את tor ואז תוכלו להתקשר לכתובת שרות הבצל.

אם אתם יוצרים מפתח פרטי עבור אתר הבצל, המשתמש לא חייב בהכרח לשנות את torrc של הדפדפן. ניתן להכניס את המפתח הפרטי ישירות ב Tor Browser interface.

למידע נוסף על הזדהות קליינטים עיינו ב Tor manual.

קינפוג שרותי בצל v2

להגדרת Cookie Authentication עבור שרותי v2, עיינו בחלקים של HidServAuth ואפשרויות HiddenServiceAuthorizeClient במדריך Tor. תחילה הוסיפו את השורה הבאה אל הקובץ torrc של שרותי הבצל שלכם:

 HiddenServiceAuthorizeClient [auth-type] [service-name]

אתחלו את Tor וקיראו את העוגיות משם קובץ האירוח, למשל ב /var/lib/tor/hidden_service_path/hostname. להתחבר אליו עם קליינט Tor, הוסיפו את השורה הבאה ל torrc ואתחלו את Tor:

 HidServAuth [onion-address] [auth-cookie] [service-name]

תוכלו כעת להתחבר לכתובת שרות הבצל.