Distributed secure routing in permissionless flat networks
Distributed secure routing in permissionless flat networks
Benedict Lau // Radical Networks 2018
Distributed secure routing in permissionless flat networks
Distributed secure routing in permissionless flat networks
IP address packet
Distributed secure routing in permissionless flat networks
IP address packet
Distributed secure routing in permissionless flat networks
https://csperkins.org/research/thesis-phd-strowes.pdf
Distributed secure routing in permissionless flat networks
For a large network to scale, it must be subnetted into smaller, more easily manageable networks, which then must in turn be networked together (to form a network of networks from inter-network connections, i.e. the internet). This requires some level of expertise and planning to do, and tends to favor hierarchies wherein small networks are largely at the mercy of a larger network (e.g. the only connection your LAN has to another network is your connection to an ISP, and “peering” or directly connecting to your neighbor’s LAN is virtually unheard of).
Arceliar, Yggdrasil: The World Tree, https://yggdrasil-network.github.io/2018/07/17/world-tree.html
Distributed secure routing in permissionless flat networks
Distributed secure routing in permissionless flat networks
Distributed secure routing in permissionless flat networks
Distributed every node is capable of compact routing
Distributed secure routing in permissionless flat networks
Distributed every node is capable of compact routing
Secure end-to-end encryption • route around malicious nodes
Distributed secure routing in permissionless flat networks
Distributed every node is capable of compact routing
Secure end-to-end encryption • route around malicious nodes
Permissionless IP address self-assignment • autonomous network
Distributed secure routing in permissionless flat networks
Distributed every node is capable of compact routing
Secure end-to-end encryption • route around malicious nodes
Permissionless IP address self-assignment • autonomous network
Flat random IP addresses • no subnet hierarchy
Distributed secure routing in permissionless flat networks
in comparison to BGP inter-domain routing
Distributed secure routing in permissionless flat networks
in comparison to BGP inter-domain routing
Distributed secure routing in permissionless flat networks
in comparison to BGP inter-domain routing
Keep small amounts of routing state at each router, rather than piling all that work onto the core network infrastructure
Without the full network view, a node cannot always determine shortest path
e.g. Dijkstra's algorithm as in OSPF
Distributed secure routing in permissionless flat networks
in comparison to BGP inter-domain routing
Keep small amounts of routing state at each router, rather than piling all that work onto the core network infrastructure
Without the full network view, a node cannot always determine shortest path
e.g. Dijkstra's algorithm as in OSPF
Have routing table grow sublinearly with number of nodes, while getting close to shortest path routing with upper bound
Distributed secure routing in permissionless flat networks
in comparison to BGP inter-domain routing
Keep small amounts of routing state at each router, rather than piling all that work onto the core network infrastructure
Without the full network view, a node cannot always determine shortest path
e.g. Dijkstra's algorithm as in OSPF
Have routing table grow sublinearly with number of nodes, while getting close to shortest path routing with upper bound
Name-independent schemes that require no pre-processing are suitable for an unmanaged permissionless network
Distributed secure routing in permissionless flat networks
Auto-configure overlay network
Secure all network traffic with end-to-end encryption:
Self-assign IPv6 in fc00::/8
from cryptographic keys
Source route with Kademlia-like distributed hash table
Distributed secure routing in permissionless flat networks
for permissionless network participation
Distributed secure routing in permissionless flat networks
for permissionless network participation
Perform two rounds of SHA-512 on Curve25519 public key then truncate to derive IPv6 address
fc00::/8
address space has 2120 addresses
Distributed secure routing in permissionless flat networks
for permissionless network participation
Perform two rounds of SHA-512 on Curve25519 public key then truncate to derive IPv6 address
fc00::/8
address space has 2120 addresses
1 in 1,329,227,995,784,915,872,903,807,060,280,344,576 chance of generating the same IPv6. Feeling Lucky?
https://github.com/cjdelisle/cjdns/blob/master/doc/notes/arc-workings.md
Distributed secure routing in permissionless flat networks
Distributed every node is capable of compact routing
Secure end-to-end encryption • route around malicious nodes
Permissionless IP address self-assignment • autonomous network
Flat random IP addresses • no subnet hierarchy
Distributed secure routing in permissionless flat networks
Node 0011 has physical peers to some neighbourhoods
Node 0011 learns paths to every neighbourhood
Each node keeps a routing table at each XOR distance
Each node knows its neighbourhood well relative to distant ones
https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf
Distributed secure routing in permissionless flat networks
https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf
0011 knows path to 101 and makes first query to learn 1101
0011 makes successive queries 1 to 4 to reach 1110
0011 calculates XOR distance:
0011
1110
----
1101 XOR distance
0011 adds newly learnt path to its routing table at 1--- bucket
Distributed secure routing in permissionless flat networks
Distributed every node is capable of compact routing
Secure end-to-end encryption • route around malicious nodes
Permissionless IP address self-assignment • autonomous network
Flat random IP addresses • no subnet hierarchy
Distributed secure routing in permissionless flat networks
Rick 1101 wants to send a packet to 1110
Distributed secure routing in permissionless flat networks
0000000000000000000000000 |
0001 |
101011 |
011010 |
100101101 |
10111 |
0100011 |
unused space |
Distributed secure routing in permissionless flat networks
0000000000000000000000000 |
0001 |
101011 |
011010 |
100101101 |
10111 |
0100011 |
unused space |
1000000 | 0000000000000000000000000 |
0001 |
101011 |
011010 |
100101101 |
10111 |
unused space |
Distributed secure routing in permissionless flat networks
0000000000000000000000000 |
0001 |
101011 |
011010 |
100101101 |
10111 |
0100011 |
unused space |
1000000 | 0000000000000000000000000 |
0001 |
101011 |
011010 |
100101101 |
10111 |
unused space |
Distributed secure routing in permissionless flat networks
Distributed every node is capable of compact routing
Secure end-to-end encryption • route around malicious nodes
Permissionless IP address self-assignment • autonomous network
Flat random IP addresses • no subnet hierarchy
Distributed secure routing in permissionless flat networks
with more than 1000 nodes mostly tunneled over Internet links
Distributed secure routing in permissionless flat networks
with more than 1000 nodes mostly tunneled over Internet links
XOR address space distance and DHT does not resemble physical network topology
Nodes lack local visibility to link quality typical of wireless links
64-bit packet header cannot fit all the directors for long paths with many hops
Distributed secure routing in permissionless flat networks
with more than 1000 nodes mostly tunneled over Internet links
XOR address space distance and DHT does not resemble physical network topology
Nodes lack local visibility to link quality typical of wireless links
64-bit packet header cannot fit all the directors for long paths with many hops
Supernodes have full network view and offer path discovery service to subnodes
Traffic is still source routed and distributed throughout the mesh
Distributed secure routing in permissionless flat networks
the mythical world tree of Norse cosmology
Auto-configure a self-addressing encrypted network similar to cjdns
Route traffic via paths resembling physical topology
Allow all nodes to make the same assumptions about the network topology without keeping a full view
Guarantee a path to every node, which although unbound in theory, is usually close to the shortest path
https://en.wikipedia.org/wiki/Yggdrasil#/media/File:The_Ash_Yggdrasil_by_Friedrich_Wilhelm_Heine.jpg
Distributed secure routing in permissionless flat networks
Distributed secure routing in permissionless flat networks
Switch layer creates a globally agreed spanning tree
A DHT is used to look up the coordinates for a given IP address
Distributed secure routing in permissionless flat networks
Switch layer creates a globally agreed spanning tree
A DHT is used to look up the coordinates for a given IP address
edges are always direct peers, selected based on peering stability
Distributed secure routing in permissionless flat networks
Switch layer creates a globally agreed spanning tree
A DHT is used to look up the coordinates for a given IP address
edges are always direct peers, selected based on peering stability
coordinates are shared with peers and cryptographically verifiable from root
Distributed secure routing in permissionless flat networks
Switch layer creates a globally agreed spanning tree
A DHT is used to look up the coordinates for a given IP address
edges are always direct peers, selected based on peering stability
coordinates are shared with peers and cryptographically verifiable from root
Switch layer uses coordinate system for greedy embedded routing
Distributed secure routing in permissionless flat networks
Switch layer creates a globally agreed spanning tree
A DHT is used to look up the coordinates for a given IP address
edges are always direct peers, selected based on peering stability
coordinates are shared with peers and cryptographically verifiable from root
Switch layer uses coordinate system for greedy embedded routing
Each node keeps a partial view of where locally stored state information scale at O(p*log(n))
for p
peers in a network with n
nodes
Distributed secure routing in permissionless flat networks
Switch layer creates a globally agreed spanning tree
A DHT is used to look up the coordinates for a given IP address
edges are always direct peers, selected based on peering stability
coordinates are shared with peers and cryptographically verifiable from root
Switch layer uses coordinate system for greedy embedded routing
Each node keeps a partial view of where locally stored state information scale at O(p*log(n))
for p
peers in a network with n
nodes
Routing traffic by walking represents a worst-case path with guaranteed reachablity, since greedy routing often take shortcuts not shown on
Distributed secure routing in permissionless flat networks
view from node 3efd [ 3 ]
Distributed secure routing in permissionless flat networks
view from node 3efd [ 3 ]
to d40c [ 3 5 2 ]
Distributed secure routing in permissionless flat networks
view from node 3efd [ 3 ]
to d40c [ 3 5 2 ]
Distributed secure routing in permissionless flat networks
view from node 3efd [ 3 ]
to d40c [ 3 5 2 ]
Distributed secure routing in permissionless flat networks
cjdns Yggdrasil
Distributed secure routing in permissionless flat networks
#tomesh:tomesh.net freenode/#tomesh
#cjdns:matrix.org efnet/#cjdns
#yggdrasil:matrix.org freenode/#yggdrasil
Distributed secure routing in permissionless flat networks
Keyboard shortcuts
↑, ←, Pg Up, k | Go to previous slide |
↓, →, Pg Dn, Space, j | Go to next slide |
Home | Go to first slide |
End | Go to last slide |
Number + Return | Go to specific slide |
b / m / f | Toggle blackout / mirrored / fullscreen mode |
c | Clone slideshow |
p | Toggle presenter mode |
t | Restart the presentation timer |
?, h | Toggle this help |
Esc | Back to slideshow |