summaryrefslogtreecommitdiff
path: root/docs/Hardening.txt
diff options
context:
space:
mode:
authorirungentoo <irungentoo@gmail.com>2013-10-10 20:47:06 -0400
committerirungentoo <irungentoo@gmail.com>2013-10-10 20:47:06 -0400
commit77ec51085828c8dbe764030cbae7242994e590de (patch)
treebba667e7766c558898ebdefb93f15bc37359aa82 /docs/Hardening.txt
parent5344413e0b702f24154affc5210cb16094ac5ed8 (diff)
Hardening the Tox network, document writing in progress.
Diffstat (limited to 'docs/Hardening.txt')
-rw-r--r--docs/Hardening.txt48
1 files changed, 48 insertions, 0 deletions
diff --git a/docs/Hardening.txt b/docs/Hardening.txt
new file mode 100644
index 00000000..838b3566
--- /dev/null
+++ b/docs/Hardening.txt
@@ -0,0 +1,48 @@
1Currently an attacker with sufficient resources could launch a large scale
2denial of service type attack by flooding the Tox network with a bunch of nodes
3that do not act like real nodes to prevent people from finding each other.
4
5Due to the design of Tox, this is the worst thing an attacker can do to disrupt
6the network.
7
8This solution's goal is to make these denial of service attack very very hard
9to accomplish.
10
11For the network to work every Tox node must:
121. Respond to ping requests.
132. Respond to get node requests with the ids of nodes closest to a queried id
14(It is assumed each nodes know at least the 32 nodes closest to them.)
153. Properly send crypto request packets to their intended destination.
16
17Currently the only thing a node needs to do to be part of the network is
18respond correctly to ping requests.
19
20The only people we really trust on the network are the nodes in our friends
21list.
22
23
24The behavior of each Tox node is easily predictable this means that it possible
25for Tox nodes to test the nodes that they are connected to to see if they
26behave like normal Tox nodes and only send nodes that are confirmed to behave
27like real Tox nodes as part of send node replies when other nodes query them.
28
29If correctly done, this means that to poison the network an attacker can only
30infiltrate the network if his "fake" nodes behave exactly like real nodes
31completely defeating the purpose of the attack. Of course nodes must be
32rechecked regularly to defeat an attack where someone floods the network with
33many good nodes then suddenly turns them all bad.
34
35This also prevents someone from accidentally killing the tox network with a bad
36implementation of the protocol.
37
38Implementation ideas (In Progress):
39
401. Use our friends to check if the nodes in our close list are good.
41
42EX: If our friend queries a node close to us and it correctly returns our
43ip/port and then sends a crypto request packet to it and it routes it correctly
44to us then it is good.
45
46Problems with this: People don't always have at least one online friend.
47
482. ...