aboutsummaryrefslogtreecommitdiff
path: root/proposals/ideas
diff options
context:
space:
mode:
authorJacob Appelbaum <jacob@appelbaum.net>2011-12-16 17:12:16 -0800
committerJacob Appelbaum <jacob@appelbaum.net>2011-12-16 17:12:16 -0800
commit06a4623955e4111553173c4d5210e55e8979e981 (patch)
treed8bcb9f81a9f4aad54f9c24aa23f072a8c40d0b8 /proposals/ideas
parentd329528c3942727c591ba8bb9100d5d65a50fd8a (diff)
downloadtorspec-06a4623955e4111553173c4d5210e55e8979e981.tar.gz
torspec-06a4623955e4111553173c4d5210e55e8979e981.zip
add xxx-onion-nyms.txt to ideas/
Diffstat (limited to 'proposals/ideas')
-rw-r--r--proposals/ideas/xxx-onion-nyms.txt77
1 files changed, 77 insertions, 0 deletions
diff --git a/proposals/ideas/xxx-onion-nyms.txt b/proposals/ideas/xxx-onion-nyms.txt
new file mode 100644
index 0000000..e41ce3d
--- /dev/null
+++ b/proposals/ideas/xxx-onion-nyms.txt
@@ -0,0 +1,77 @@
+Filename: xxx-onion-nyms.txt
+Title: .onion nym system
+Author: Arturo Filastò, Jacob Appelbaum
+Created: 17 December 2011
+Status: Draft
+
+1. Intro and Motivation
+
+ The main issue that prohibits the wide scale adoption of .onion addressing
+ is the fact that they are not human memorable. While Zooko's triangle says that
+ you can only have at most two of "memorable", "secure" and "global" it is
+ possible to build a simple nym mechanism that relies on the current .onion
+ addressing system. We define a basic registration system generally and also
+ it's particual application to the tor2web network. This is a very simple kind
+ of petname system for applications such as tor2web.
+
+2. Definitions
+
+ These are the definitions of the actors involved in the process.
+
+ Beppe - The owner of the Tor Hidden Service
+ User - A random user of Tor/tor2web
+ v2cbb2l4lsnpio4q.onion - The .onion address that Beppe is interested in registering
+ antani - The nym Beppe is interested in associating to v2cbb2l4lsnpio4q.onion
+ t2w - A tor2web node
+
+
+3. Registration
+
+ This is the process through which Beppe is able to make a registration for his chosen
+ nym.
+
+3.1 General implementation
+
+ Beppe wishes to register "antani" to point to v2cbb2l4lsnpio4q.onion so he creates a
+ a TCP service listening on his .onion will respond with the string "reg antani" when
+ interrogated. The requester will make a lookup in his database to see if
+ "antani" is already registered. If it is not registered the "antani" <->
+ v2cbb2l4lsnpio4q.onion mapping is created. A timestamp is added to the
+ database.
+
+3.2 Tor2web implementation
+
+ Beppe creates a file called "onion.txt" containing the string "reg antani" and uploads
+ it to the root of his web server. When User visits v2cbb2l4lsnpio4q.tor2web.org the
+ t2w checks if his database contains a mapping with v2cbb2l4lsnpio4q.onion, if it does
+ not, it requests the http://v2cbb2l4lsnpio4q.onion/onion.txt file.
+ If the file exists t2w reads it and extracts the "antani" string. A lookup is made in
+ his database. If "antani" is not registered he creates a mapping between "antani" and
+ v2cbb2l4lsnpio4q.onion. A timestamp is added to the database.
+
+4. Expiration
+
+ A nym will expire if either the HS goes offline for longer than a given time
+ threshold or if he explicitly requests removal of the association to that
+ particualr nym. This allows dynamic reallocation of nyms and avoids nym
+ squatting.
+
+4.1 Time delay
+
+ We define the default tiem threshold to be 30 days since the last check. At
+ the time of expiry or anytime before, another request is made to either the TCP
+ service or for the "onion.txt" file. If the Hidden Service is offline or if
+ the requested mapping has changed the mapping is removed or modified. If the
+ onion.txt is unchanged, the nym remains valid and the database timestamp
+ entry is updated.
+
+ 4.2 Release
+
+ The HS can specify the "release" string to delete the entry from the nym database.
+
+5. Synchronization
+
+ To keep the database of registered nyms up to date in for many t2w nodes, a synchronization
+ mechanism is required but currently out of scope for this document.
+
+