unredacted / freesocks-control-plane

The control plane that makes FreeSocks work
https://freesocks.org
GNU General Public License v3.0
14 stars 0 forks source link

Add support for dynamic access keys #4

Open lunarthegrey opened 2 months ago

lunarthegrey commented 2 months ago

Reference: https://www.reddit.com/r/outlinevpn/wiki/index/dynamic_access_keys/

Potential benefits:

Potential design:

Access key retrieval:

  1. User attempts to retrieve an access key via HTTP.
  2. FCP queries all available Outline servers via the closest serverless edge datacenter, picks best latency and lowest access key count Outline server.
  3. FCP creates a dynamic S3 access key file in a directory (using randomized character string) on 3 or more S3 bucket providers (AWS, Cloudflare, Wasabi & others potentially). The dynamic access key contains the JSON config from the chosen server.
  4. FCP stores the access key mirror ssconf:// links in a Workers KV namespace in JSON format to be used when updating or deleting access keys later.
  5. FCP returns the ssconf:// S3 mirrors to the user, allowing them to pick one that works for them.
  6. User enters the ssconf:// line in their Outline client, which pulls the JSON and connects to the server the FCP chose for them.

Considerations: