Skip to content

Server Cryptographic Identity #411

Open
@goto-bus-stop

Description

@goto-bus-stop

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions