[tor-commits] [community/master] Add new onion services images. Fix #152

gus at torproject.org gus at torproject.org
Mon Dec 14 22:14:15 UTC 2020


commit 80623c484a325f45036e2f6ded98988336434730
Author: gus <gus at torproject.org>
Date:   Wed Dec 9 21:58:26 2020 -0500

    Add new onion services images. Fix #152
---
 .../onion-services/overview/onion-service-01.png   | Bin 0 -> 152528 bytes
 .../onion-services/overview/onion-service-02.png   | Bin 0 -> 119489 bytes
 .../onion-services/overview/onion-service-03.png   | Bin 0 -> 141765 bytes
 .../onion-services/overview/onion-service-04.png   | Bin 0 -> 159940 bytes
 .../onion-services/overview/onion-service-05.png   | Bin 0 -> 172457 bytes
 .../onion-services/overview/onion-service-06.png   | Bin 0 -> 147472 bytes
 .../onion-services/overview/onion-service-07.png   | Bin 0 -> 137636 bytes
 .../onion-services/overview/onion-service-08.png   | Bin 0 -> 137909 bytes
 .../onion-services/overview/onion-service-09.png   | Bin 0 -> 125387 bytes
 .../overview/tor-onion-services-1.png              | Bin 17222 -> 0 bytes
 .../overview/tor-onion-services-4.png              | Bin 21419 -> 0 bytes
 content/onion-services/overview/contents.lr        | 101 ++++++++++++---------
 12 files changed, 57 insertions(+), 44 deletions(-)

diff --git a/assets/static/images/onion-services/overview/onion-service-01.png b/assets/static/images/onion-services/overview/onion-service-01.png
new file mode 100755
index 0000000..cd92201
Binary files /dev/null and b/assets/static/images/onion-services/overview/onion-service-01.png differ
diff --git a/assets/static/images/onion-services/overview/onion-service-02.png b/assets/static/images/onion-services/overview/onion-service-02.png
new file mode 100755
index 0000000..d50c0ad
Binary files /dev/null and b/assets/static/images/onion-services/overview/onion-service-02.png differ
diff --git a/assets/static/images/onion-services/overview/onion-service-03.png b/assets/static/images/onion-services/overview/onion-service-03.png
new file mode 100755
index 0000000..e551d9c
Binary files /dev/null and b/assets/static/images/onion-services/overview/onion-service-03.png differ
diff --git a/assets/static/images/onion-services/overview/onion-service-04.png b/assets/static/images/onion-services/overview/onion-service-04.png
new file mode 100755
index 0000000..7f68c8a
Binary files /dev/null and b/assets/static/images/onion-services/overview/onion-service-04.png differ
diff --git a/assets/static/images/onion-services/overview/onion-service-05.png b/assets/static/images/onion-services/overview/onion-service-05.png
new file mode 100755
index 0000000..5e8ba7a
Binary files /dev/null and b/assets/static/images/onion-services/overview/onion-service-05.png differ
diff --git a/assets/static/images/onion-services/overview/onion-service-06.png b/assets/static/images/onion-services/overview/onion-service-06.png
new file mode 100755
index 0000000..cb59f60
Binary files /dev/null and b/assets/static/images/onion-services/overview/onion-service-06.png differ
diff --git a/assets/static/images/onion-services/overview/onion-service-07.png b/assets/static/images/onion-services/overview/onion-service-07.png
new file mode 100755
index 0000000..ad20f47
Binary files /dev/null and b/assets/static/images/onion-services/overview/onion-service-07.png differ
diff --git a/assets/static/images/onion-services/overview/onion-service-08.png b/assets/static/images/onion-services/overview/onion-service-08.png
new file mode 100755
index 0000000..34d4ba7
Binary files /dev/null and b/assets/static/images/onion-services/overview/onion-service-08.png differ
diff --git a/assets/static/images/onion-services/overview/onion-service-09.png b/assets/static/images/onion-services/overview/onion-service-09.png
new file mode 100755
index 0000000..062a158
Binary files /dev/null and b/assets/static/images/onion-services/overview/onion-service-09.png differ
diff --git a/assets/static/images/onion-services/overview/tor-onion-services-1.png b/assets/static/images/onion-services/overview/tor-onion-services-1.png
deleted file mode 100644
index 75de366..0000000
Binary files a/assets/static/images/onion-services/overview/tor-onion-services-1.png and /dev/null differ
diff --git a/assets/static/images/onion-services/overview/tor-onion-services-4.png b/assets/static/images/onion-services/overview/tor-onion-services-4.png
deleted file mode 100644
index 88db970..0000000
Binary files a/assets/static/images/onion-services/overview/tor-onion-services-4.png and /dev/null differ
diff --git a/content/onion-services/overview/contents.lr b/content/onion-services/overview/contents.lr
index 1122aa1..1fa3c20 100644
--- a/content/onion-services/overview/contents.lr
+++ b/content/onion-services/overview/contents.lr
@@ -45,7 +45,6 @@ Is your network filtered and you can't open ports on your firewall?
 This could happen if you are in a university campus, an office, an airport, or pretty much anywhere.
 Onion services don't need open ports because they punch through NAT. They only establish outgoing connections.
 
-
 ## The Onion Service Protocol: Overview
 
 Now the question becomes **what kind of protocol is needed to achieve all these properties?**
@@ -56,79 +55,93 @@ In particular, an onion service's address looks like this: `vww6ybal4bd7szmgncyr
 This looks weird and random because it's the _identity public key_ of the onion service.
 That's one of the reasons we can achieve the security properties above.
 
-The onion service protocol uses the Tor network so that the client (Alice) can introduce itself to the service (Bob), and then set up a rendezvous point with the service over the Tor network.
+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.
 Here is a detailed breakdown of how this happens:
 
 ### Act 1: Where the onion service sets up its introduction points
 
-![Onion Services: Step 1](/static/images/onion-services/overview/tor-onion-services-1.png)
+Let's imagine that your local newspaper decides to set up an onion service (using [SecureDrop](https://securedrop.org/)) 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.
 
-As the first step in the protocol, Bob (the onion service) contacts a bunch of Tor relays and asks them to act as his _introduction points_, by establishing long-term circuits to them.
-These circuits are anonymized circuits, so Bob does not reveal his locations to his 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 three-hop Tor circuit.
 
-As part of this step, Bob gives its introduction point a special "authentication key", so that if any clients come for introductions later the introduction point can use that key to match them to Bob.
+<img class="col-lg-8" src="../../static/images/onion-services/overview/onion-service-01.png" alt="Onion Services: Step 1">
 
 ### Act 2: Where the onion service publishes its descriptors
 
-![Onion Services: Step 2](/static/images/onion-services/overview/tor-onion-services-2.png)
-
-Now that the introduction points are setup, we need to create a way for clients to be able to find them.
+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, Bob assembles an _onion service descriptor_, containing a list of his introduction points (and their "authentication keys"), and signs this descriptor with his _identity private key_.
+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_.
 The _identity private key_ used here is the private part of the **public key that is encoded in the onion service address**.
 
-Now, Bob uploads that signed descriptor to a _distributed hash table_ which is part of the Tor network, so that clients can also get it.
-Bob uses an anonymized Tor circuit to do this upload, so that he does not reveal his location.
+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.
 
-### Act 3: Where a client wants to visit the onion service
+<img class="col-lg-8" src="../../static/images/onion-services/overview/onion-service-02.png" alt="Onion Services: Step 2">
 
-All the previous steps were just setup 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:
+### Act 3:  Where a client wants to visit the onion service
 
-![Onion Services: Step 3](/static/images/onion-services/overview/tor-onion-services-3.png)
+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.
 
-In this case, Alice (the client) has the onion address of Bob and she wants to visit it, so she connects to it with her Tor Browser.
-Now the next thing that needs to happen is that Alice goes to the _distributed hash table_ from the step above, and ask for the signed descriptor of Bob.
+<img class="col-lg-8" src="../../static/images/onion-services/overview/onion-service-03.png" alt="Onion Services: Step 3">
 
-When Alice receives the signed descriptor, she verifies 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 Bob and no one else.
-And inside the descriptor there are the introduction points which allow Alice to introduce herself to Bob.
+### Act 4: Where the client introduces itself to the onion service
 
-### Act 4: Where the client establishes a rendezvous point
+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.
 
-Now before the introduction takes place, Alice picks a Tor relay and establishes a circuit to it.
-Alice asks the relay to become her _rendezvous point_ and gives it an "one-time secret" that will be used as part of the rendezvous procedure.
+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.
 
-### Act 5: Where the client introduces itself to the onion service
+<img class="col-lg-8" src="../../static/images/onion-services/overview/onion-service-04.png" alt="Onion Services: Step 4">
 
-![Onion Services: Step 4](/static/images/onion-services/overview/tor-onion-services-4.png)
+### Act 5:  Where the client verify onion address signature
 
-Now, Alice goes ahead and connects to one of Bob's introduction points and introduces herself to Bob.
-Through this introduction Bob learns Alice's choice of rendezvous point and the "one-time secret".
+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.
 
-### Act 6: Where the onion service rendezvous with the client
+And inside the descriptor, there are the introduction points that allow the client to introduce themselves to SecureDrop.
 
-![Onion Services: Step 5](/static/images/onion-services/overview/tor-onion-services-5.png)
+<img class="col-lg-8" src="../../static/images/onion-services/overview/onion-service-05.png" alt="Onion Services: Step 5">
 
-In this last act, the onion service is now aware of Alice's rendezvous point.
-The onion service connects to the rendezvous point (through an anonymized circuit) and sends the "one-time secret" to it.
+### 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.
+
+<img class="col-lg-8" src="../../static/images/onion-services/overview/onion-service-06.png" alt="Onion Services: Step 6">
+
+### Act 7: Where the onion service rendezvous with the client
+
+The introduction point passes your details on to the onion service, which runs multiple verification processes to decide whether you're trustworthy or not.
 
-Upon the rendezvous point receiving the "one-time secret" from Bob, it informs Alice that the connection has been **successfuly completed**, and now Alice and Bob can use this circuit to communicate with each other.
+<img class="col-lg-8" src="../../static/images/onion-services/overview/onion-service-07.png" alt="Onion Services: Step 7">
+
+### Act 8: Where the rendezvous point verifies the client's secret
+
+The onion service connects to the rendezvous point (through an anonymized circuit) and sends the "one-time secret" to it.
 The rendezvous point simply relays (end-to-end encrypted) messages from client to service and vice versa.
 
-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:
+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).
+
+<img class="col-lg-8" src="../../static/images/onion-services/overview/onion-service-08.png" alt="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 6](/static/images/onion-services/overview/tor-onion-services-6.png)
+<img class="col-lg-8" src="../../static/images/onion-services/overview/onion-service-09.png" alt="Onion Services: Step 9">
 
 ## Further resources
 
-This was just a high-level overview of the Tor onion services protocol. Here are some more resources if you want to learn more:
+This was just a high-level overview of the Tor onion services protocol.
+Here are some more resources if you want to learn more:
 
-- The original Tor design paper describing the original design:
-https://svn.torproject.org/svn/projects/design-paper/tor-design.pdf
-- The Tor v3 onion services protocol specification.
-https://gitweb.torproject.org/torspec.git/tree/rend-spec-v3.txt
-- Presentations about onion services
-https://www.youtube.com/watch?v=VmsFxBEN3fc
-https://www.youtube.com/watch?v=Di7qAVidy1Y
+- The [Tor design paper](https://svn.torproject.org/svn/projects/design-paper/tor-design.pdf) describing the original design.
+- The [Tor v3 onion services](https://gitweb.torproject.org/torspec.git/tree/rend-spec-v3.txt) protocol specification.
+- Presentations about onion services: [Understanding Tor Onion Services and Their Use Cases - HOPE XI 2016](https://www.youtube.com/watch?v=VmsFxBEN3fc), [DEF CON 25 - Roger Dingledine - Next Generation Tor Onion Services](https://www.youtube.com/watch?v=Di7qAVidy1Y).





More information about the tor-commits mailing list