שרותי בצל הנם שרותים שניתן לגשת אליהם רק מ Tor. הפעלת שרות Tor מאפשרת למשתמשיך את כל האבטחה של HTTPS עם תוספת יתרונות הפרטיות של דפדפן Tor.

מדוע שרותי בצל?

שרותי בצל מאפשרים מגוון יתרונות פרטיות ואבטחה למשתמשים שלהם.

הסתרת מיקום

כתובת ה IP של שרות בצל הנה מוגנת. שרותי בצל הנם שכבת רשת מעל TCP/IP, כך שבמובן מסוים כתובות IP אינן בכלל משמעותיות עבור שרותי בצל: הן אפילו אינן בשימוש בפרוטוקול.

אותנתיקציה מקצה אל קצה

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

הצפנה מקצה אל קצה

תעבורת שרות בצל הנה מוצפנת מהלקוח עד מארח הבצל. זה כמו לקבל SSL/HTTPS חזק בחינם.

חדירת NAT

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

פרוטוקול שרות הבצל: כללי

כעת השאלה הופכת ל איזה סוג פרוטוקול נדרש כדי להשיג את כל התכונות האלה? בדרך כלל, אנשים מתחברים לכתובת IP וזהו זה, אך האם ניתן להתחברו למשהו שאין לו כתובת IP?

בפרט, כתובת שרות בצל שנראית משהו כזה: vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd.onion

זה נראה מוזר ואקראי כיון שזהו ה identity public key  של שרות הבצל. זוהי אחת הסיבות בגללה אנו מסוגלים להשיג את תכונות האבטחה הנ"ל.

The onion service protocol uses the Tor network so that the client can introduce itself to the service, and then set up a rendezvous point with the service over the Tor network. להלן פירוק מפורט של האופן בו הדבר מתבצע:

Act 1: שרות הבצל מגדיר את נקודות הגישה שלו.

Let's imagine that your local newspaper decides to set up an onion service (using SecureDrop) to receive anonymous tips. As the first step in the protocol, the onion service will contact a bunch of Tor relays and ask them to act as its introduction points by establishing long-term circuits to them. These circuits are anonymized circuits, so the server does not reveal the service location to the introduction points.

The onion service will hide and protect itself behind the Tor network by only allowing access through three introduction points that it connects to through a two-hop Tor circuit.

Onion Services: Step 1

Act 2: היכן שרות הבצל מפרסם את המזהים שלו

Now that the introduction points are set up, we need to create a way for clients to be able to find them.

For this reason, the onion service assembles an onion service descriptor, containing a list of its introduction points (and "authentication keys"), and signs this descriptor with the onion service's identity private key. השימוש ב identity private key כאן הנו המרכיב הפרטי של ה מפתח הציבורי שמוצפן בתוך כתובת שרות הבצל.

The onion service upload that signed descriptor to a distributed hash table, which is part of the Tor network, so that clients can also get it. It uses an anonymized Tor circuit to do this upload so that it does not reveal its location.

Onion Services: Step 2

Act 3: Where a client wants to visit the onion service

Say you want to anonymously send some tax fraud data to your local newspaper through its SecureDrop. You find the onion address for the newspaper's SecureDrop from a public website or friend.

Onion Services: Step 3

Act 4: Where the client introduces itself to the onion service

All the previous steps were just set up for the onion service so that it's reachable by clients. Now let's fast-forward to the point where an actual client wants to visit the service.

In this case, the client has the onion address of SecureDrop and want to visit it, so they connect to the service with Tor Browser. Now the next thing that needs to happen is that the client goes to the distributed hash table from Step 2 and ask for the signed descriptor of SecureDrop's onion service.

Onion Services: Step 4

Act 5: Where the client verify onion address signature

When the client receives the signed descriptor, they verify the signature of the descriptor using the public key that is encoded in the onion address. This provides the end-to-end authentication security property, since we are now sure that this descriptor could only be produced by that onion service and no one else.

And inside the descriptor, there are the introduction points that allow the client to introduce themselves to SecureDrop's onion service.

Onion Services: Step 5

Act 6: Where the client establishes a rendezvous point

Before the introduction takes place, the client (in this case, you) picks a Tor relay and establishes a circuit to it. The client asks the relay to become their rendezvous point and give it an "one-time secret" that will be used as part of the rendezvous procedure.

Onion Services: Step 6

Act 7: Where the onion service rendezvous with the client

The introduction point passes your details (secret string and rendezvous address) on to the onion service, which runs multiple verification processes to decide whether you're trustworthy or not.

Onion Services: Step 7

Act 8: Where the rendezvous point verifies the client's secret

שרות הבצל מתקשר לנקודת המפגש (דרך מעגל אנונימי) ושולח אליה את ה "one-time secret"  The rendezvous point makes one final verification to match the secret strings from you and service (the latter also comes from you but has been relayed through the service).

נקודת המפגש פשוט מנתבת (end-to-end encrypted)  הודעות מהלקוח לשרות וחזרה.

Onion Services: Step 8

Act 9: Where the onion service rendezvous with the client

In general, the complete connection between client and onion service consists of 6 relays: 3 of them were picked by the client, with the third being the rendezvous point, and the other 3 were picked by the onion service. This provides location hiding to this connection.

Finally, using the rendezvous point, a Tor circuit is formed between you and your newspaper's SecureDrop onion service.

Onion Services: Step 9

מקורות נוספים

This was just a high-level overview of the Tor onion services protocol. Here are some more resources if you want to learn more: