0

Say I have a central server whose job it is to tell a load of my other servers what to do. These other servers are running API's listening for instructions from my central server.

How can I cryptographically guarantee, on my listening servers that a request originates from a central server?

The listening server must only be able to verify that the request originates from my central server, it must not be able to also sign or encrypt requests, only decrypt or verify the signature.

Anything on the listening server can be pre-distributed before the server is deployed.

What are my best options in this case? SSL Certificates, Public Key/Private Key, something else? How would I go implement it (high level explanation)

2
  • I'm not sure what you are asking. Digital signatures are the precise answer to this question. You mention it, but appear to avoid it.
    – schroeder
    Commented Nov 23, 2017 at 15:56
  • Are you asking how digital signatures work?
    – schroeder
    Commented Nov 23, 2017 at 16:45

1 Answer 1

1

Your central server generates a public/private key pair. The public key is distributed to all the listening servers, the private key is kept, um, private.

Any command send by the central server is signed with its private key. The first thing the listening server does when it receives a command is verify the signature (using the public key). If the verification fails, write to the error log, and ignore the command.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .