Coder Social home page Coder Social logo

Comments (2)

lthibault avatar lthibault commented on June 3, 2024

@aratz-lasa In connection with #17 and the question of adding a namespace to Beacon payloads: what are your thoughts on this?

As it stands, a Beacon will be able to advertise a peer on a namespace without that peer's approval. The procedure for doing so is as follows:

  1. Obtain a valid peer.Record for the node you're targeting.
  2. Construct beacon payload using that record, and attach an arbitrary namespace.
  3. Serve the record to incoming crawlers.

At first glance this doesn't seem dramatic because consumers of the beacon payload won't be able to connect to a namespace unless the peer is actually serving it, but it might not be so innocuous because:

  1. It could potentially be used as a DDoS vector. I can potentially trick a large number of peers into spamming a target with connection requests.
  2. A peer may have joined a namespace that it does not wish to make public. Although we can't prevent members of the namespace from leaking the identity of the namespace, we can at least signal to peers that the advertised node does not wish to receive connections on that namespace. (More exactly: recipients of the beacon payload should not attempt connections if they cannot assert that the peer wishes to receive connections, i.e. if the beacon payload was not signed by said peer.)

Maybe we should bundle this into your current sprint?

from casm.

lthibault avatar lthibault commented on June 3, 2024

Implemented in #33.

from casm.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.