A computer-implemented method for establishing a secure connection between a first and a second computing device, comprising:
- a) generating an ephemeral private key by a connection-establishing application;
- b) deriving a related ephemeral public key;
- c) generating a unique ID by the connection-establishing application;
- d) submitting the unique ID to a trusted server for an additional signature;
- e) receiving from the trusted server the signed unique ID by the first computing device;
- f) registering a virtual endpoint on a relay server with the signed unique ID;
- g) sending to the second computing device from the first computing device, an information packet comprising information about:
- i. a network configuration of the first computing device;
- ii. the ephemeral public key;
- iii. a fully qualified domain name of the trusted server;
- and
- iv. a signature associated with the signed unique ID;
- h) establishing a connection between the second computing device and the first computing device via the virtual endpoint by means of a transparent relay through the relay server if the signature associated with the signed unique ID is valid and trusted;
- i) receiving, at the first computing device and from the second computing device, an information packet response, wherein the information packet response is encrypted with the ephemeral public key and is transferred through the relay server;
- j) determining, by the first computing device, whether a publicly trusted certificate received from the second computing device and associated with the second computing device, is valid;
- k) verifying a signature contained in the information packet response by validating the signature contained in the information packet response against a public key obtained from a publicly trusted certificate received from a trusted source;
- l) initiating a secure connection to the second computing device when the verification of the information packet response is successful;
- m) providing by the first computing device to the second computing device, a proof of possession of the ephemeral private key;
- and
- n) initiating between the first computing device and the second computing device, a further data exchange by:
- i. sending a hypertext transfer protocol secure request to the second computing device with a unique authorization token
- ii. verifying the proof of possession of the ephemeral private key and then granting permanent communication authentication, allowing the second computing device to authorize the secure connection from the first computing device.