Ribut.us Overview: Difference between revisions

From Adam Colton
Jump to navigation Jump to search
Created page with "Basic pitch. == Outline == * Privacy ** Advertising ** Coercion ** Confidence * P2P ** No servers ** P2P/UDP ** Shared resources * Mixnet / Leapfrog ** Everyone routes ** IDN..."
 
Line 30: Line 30:


== Privacy ==
== Privacy ==
The goal of Dist.ribut.us is to provide privacy to users. While the long term goal is for this to include state sponsored spying, the immediate concern is invasions of privacy for advertising via coercion. The most prominent example is that of social networks that gather and sell information about their users. The only way for a user to protect their privacy is to avoid using the service, but the simple pervasiveness of the service becomes a coercive force.
It is equally important that users understand that their privacy is protected. Too many services may claim to protect user privacy but couch that in exemptions and caveats. Users do not trust that their privacy is protected. Or they believe that small missteps will leak their information. We must build confidence in that platform that is can be used securely even by users with low computer literacy.
== P2P ==
One of the first conclusions that can be drawn from the goal of providing privacy is a need to move away from a client-server model. It is economically prohibitive, more difficult to secure and risks a concentration of power and authority. A better route is to build a peer-to-peer network where users share their bandwidth, storage and computation resources to collectively emulate services. So long as the burden of these shared resources is kept low (and particularly if that burden can be kept lower than the perceived burden of invasive advertising), I believe users will accept this cost.
== Leapfrog, a mixnet ==
The first step to protecting privacy is having all communication done through a mixnet or onion routing protocol. For Ribut, this is the Leapfrog protocol. All messages are sent with using this protocol. This does not have to incur delays for users who are not concerned about privacy, because they can still communicate directly, but wrap the communication in the Leapfrog protocol (make the message look like it's being routed around, even though it's being sent directly). Having all message on the network use this means that no messages look suspicious.
All nodes on the network act as routers. This means that the network can scale (practically indefinitely) and it provides each node with anonymity because it is unclear if a specific message originated with the node currently sending it. This achieves the same effect as networks that introduce chaff by sending packets randomly, there is enough network noise to mask any individual signal.
Users will have two types of nodes, ID nodes and Overlay nodes. A device will only have one overlay node at a time. The overlay node exposes the public IP address of the device. ID nodes provide pseudonyms that may be linked to the users identity. There must be strict "Heisenberg Privacy" no one (except the user) should know both the overlay node and an ID node, one or the other.
Overlay nodes and ID nodes are linked through mixnet routing. A send route allows a user to send a message containing identifying information by bouncing it between up to 3 nodes before it reaches it's destination. A receive route allows a user to define a path back to their overlay node. A received route can be sent to another user, providing a path for them to send information back. The combination, a send-receive route protects the anonymity of both the sender and receiver.
It's also worth mentioning that the routing is stateless, it does not maintain open tunnels. And once a message has been received, a layer removed and it is relayed, it can be safely removed from memory.

Revision as of 19:09, 5 October 2016

Basic pitch.

Outline

  • Privacy
    • Advertising
    • Coercion
    • Confidence
  • P2P
    • No servers
    • P2P/UDP
    • Shared resources
  • Mixnet / Leapfrog
    • Everyone routes
    • IDNode vs OverlayNode
    • Send Route
    • Receive Route
    • Stateless routing
  • DHT
    • Short records, short TTL
    • Connection Example
  • Broadcast
    • Most likely to change
    • Through DHT, pulsed, limited
    • General Request example
  • Email Example
  • Core Apps
    • Social (Speakeasy)
    • Group
    • Authority Publish

Privacy

The goal of Dist.ribut.us is to provide privacy to users. While the long term goal is for this to include state sponsored spying, the immediate concern is invasions of privacy for advertising via coercion. The most prominent example is that of social networks that gather and sell information about their users. The only way for a user to protect their privacy is to avoid using the service, but the simple pervasiveness of the service becomes a coercive force.

It is equally important that users understand that their privacy is protected. Too many services may claim to protect user privacy but couch that in exemptions and caveats. Users do not trust that their privacy is protected. Or they believe that small missteps will leak their information. We must build confidence in that platform that is can be used securely even by users with low computer literacy.

P2P

One of the first conclusions that can be drawn from the goal of providing privacy is a need to move away from a client-server model. It is economically prohibitive, more difficult to secure and risks a concentration of power and authority. A better route is to build a peer-to-peer network where users share their bandwidth, storage and computation resources to collectively emulate services. So long as the burden of these shared resources is kept low (and particularly if that burden can be kept lower than the perceived burden of invasive advertising), I believe users will accept this cost.

Leapfrog, a mixnet

The first step to protecting privacy is having all communication done through a mixnet or onion routing protocol. For Ribut, this is the Leapfrog protocol. All messages are sent with using this protocol. This does not have to incur delays for users who are not concerned about privacy, because they can still communicate directly, but wrap the communication in the Leapfrog protocol (make the message look like it's being routed around, even though it's being sent directly). Having all message on the network use this means that no messages look suspicious.

All nodes on the network act as routers. This means that the network can scale (practically indefinitely) and it provides each node with anonymity because it is unclear if a specific message originated with the node currently sending it. This achieves the same effect as networks that introduce chaff by sending packets randomly, there is enough network noise to mask any individual signal.

Users will have two types of nodes, ID nodes and Overlay nodes. A device will only have one overlay node at a time. The overlay node exposes the public IP address of the device. ID nodes provide pseudonyms that may be linked to the users identity. There must be strict "Heisenberg Privacy" no one (except the user) should know both the overlay node and an ID node, one or the other.

Overlay nodes and ID nodes are linked through mixnet routing. A send route allows a user to send a message containing identifying information by bouncing it between up to 3 nodes before it reaches it's destination. A receive route allows a user to define a path back to their overlay node. A received route can be sent to another user, providing a path for them to send information back. The combination, a send-receive route protects the anonymity of both the sender and receiver.

It's also worth mentioning that the routing is stateless, it does not maintain open tunnels. And once a message has been received, a layer removed and it is relayed, it can be safely removed from memory.