Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Server Cryptographic Identity #411

Open
goto-bus-stop opened this issue Sep 24, 2020 · 0 comments
Open

Server Cryptographic Identity #411

goto-bus-stop opened this issue Sep 24, 2020 · 0 comments

Comments

@goto-bus-stop
Copy link
Member

There are a couple of situations where some permanent identity key for servers would be handy.

  • Announcements to the hub server. Here we need to ensure that servers cannot publish over each other. This is done by signing announcements with a secret key.
  • Storing server authentication settings in a mobile app. Here it's vital that servers cannot impersonate each other. Browsers can use the URL, HTTP API URL, WebSocket URL because of various security measures (CORS, same-origin HttpOnly cookies, SSL). For mobile apps which do not use the main URL, there is not really a way to validate that the main URL is correct, and that means it could be an angle of attack. Storing authentication settings under a public key may be a solution.

Currently, the announce plugin has a seed option that is used to generate a keypair. server hosts are responsible for generating this seed and making sure it never changes. We could instead generate a keypair the first time üWave boots, and store it in the database. The announce plugin can use it for secure announcements, and the server can provide endpoints for mobile apps to validate that they're talking to the correct one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant