atsign-foundation / noports

Connect to any device with no external listening ports open
https://noports.com
BSD 3-Clause "New" or "Revised" License
272 stars 15 forks source link

Implement challenge response on initial connections to rvd #519

Closed gkc closed 10 months ago

gkc commented 1 year ago

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

VJag commented 1 year ago

This task has the following sub-tasks:

Socket connector: Enable conditional data flow. i.e. the clients connected to the sockets joined should authenticate themself by sending signed session IDs. The socket connector will only let the data flow after authenticating the clients by verifying the signature of the session ID.

Design concerns: Backwards compatibility, Pluggable authentication, and Right naming convention (we need to pass sessionId in clear, client atSign and the device atSign)

rvd: Needs to have the knowledge to decide whether to call serverToServer the old one or the new serverToServer that will authenticate the clients.

sshrv process: Need to have the information to determine whether to utilize unauthenticated socket joining method or the authenticated socket method. Then the ability to authenticate itself with the signed session ID.

VJag commented 1 year ago

Almost done with the Socket connector part, will raise a PR in a day or two.

VJag commented 11 months ago

Pending items:

gkc commented 10 months ago

Work is complete; socket_connector unit tests are complete; sshnoports unit tests are WIP; PRs need to be finalized and merged. 2 SP remaining for this and 2 SP for #626 which is addressed by the same PRs

gkc commented 10 months ago

Reducing to 1SP for final PR merge once e2e test overhaul has been completed as part of #659