p3lib icon indicating copy to clipboard operation
p3lib copied to clipboard

Specs and implement SURBs

Open gpestana opened this issue 6 years ago • 4 comments

SURB (single-use-reply-block) allows the last relay to send the response back to the initiator, while respecting the privacy and security properties of onion routing. Using SURBs must be optional.

  • [ ] add specs
  • [ ] implementation and testing

gpestana avatar Mar 03 '19 22:03 gpestana

For creating specs: https://katzenpost.mixnetworks.org/docs/specs/sphinx.html#single-use-reply-block-surb-creation

gpestana avatar Jul 09 '19 21:07 gpestana

Am I right that it is not possible to send any anonymous reply back to the initiator without this feature implemented?

derlaft avatar Jul 14 '19 19:07 derlaft

hey @derlaft!

At this point you can add a breadcrumb to the package that each of the relayers will use to keep state locally to relay the response back to the destination. So, it is possible to possible to send an anonymous reply back to the initiator, but the relayers will have to keep state of the package channel, which the sphinx protocol tries to avoid. With SURBs we can bypass the state completely and avoid potential linking problems with the breadcrumbs.

gpestana avatar Jul 22 '19 15:07 gpestana

@gpestana not sure how encryption should work in this case.

But probably, since libp2p already handles streams and stuff, it may be possible to use this library ~for only dh negotiation~ (meh, it also requires a handshake), and then use some symmetric encryption. This way no state is required to support a separate connection (which won't be able to change hops unfortunately).

derlaft avatar Jul 24 '19 01:07 derlaft