A computer-implemented method for performing secure communications between a first participant of a central signing service in a secure communications network system and a second participant of the central signing service over a public network, the method performed by the first participant comprising the steps of: generating a request message to send to the second participant; retrieving a domain name system, DNS, signature from a text, TXT, record from a domain associated with the second participant; retrieving a first public key, wherein the first public key is associated with the central signing service and part of a first key pair used to generate the DNS signature; validating the DNS signature against the first public key; upon successful validation of the DNS signature, retrieving a second public key and an endpoint signature from an endpoint associated with the second participant, wherein the endpoint signature is generated by the central signing service using the first key pair, and wherein the second public key is associated with the second participant and configured to be valid for a first predetermined time period; validating the endpoint signature using the first public key; upon successful validation of the endpoint signature; encrypting the request message using the second public key; signing the encrypted request message with a request signature using a private key, wherein the private key is associated with the first participant and configured to be valid for a second predetermined time period; sending the signed encrypted request message to the second participant, wherein the signed encrypted request message comprises the request signature and a domain name associated with the first participant; receiving a signed encrypted response message from the second participant; validating the signed encrypted response message using the second public key; decrypting the signed encrypted response message using the private key; and processing the signed decrypted response message, wherein the sending of the signed encrypted request message is within both the first predetermined time period and the second predetermined time period. generating a request message to send to the second participant; retrieving a domain name system, DNS, signature from a text, TXT, record from a domain associated with the second participant; retrieving a first public key, wherein the first public key is associated with the central signing service and part of a first key pair used to generate the DNS signature; validating the DNS signature against the first public key; upon successful validation of the DNS signature, retrieving a second public key and an endpoint signature from an endpoint associated with the second participant, wherein the endpoint signature is generated by the central signing service using the first key pair, and wherein the second public key is associated with the second participant and configured to be valid for a first predetermined time period; validating the endpoint signature using the first public key; upon successful validation of the endpoint signature; encrypting the request message using the second public key; signing the encrypted request message with a request signature using a private key, wherein the private key is associated with the first participant and configured to be valid for a second predetermined time period; sending the signed encrypted request message to the second participant, wherein the signed encrypted request message comprises the request signature and a domain name associated with the first participant; receiving a signed encrypted response message from the second participant; validating the signed encrypted response message using the second public key; decrypting the signed encrypted response message using the private key; and processing the signed decrypted response message, wherein the sending of the signed encrypted request message is within both the first predetermined time period and the second predetermined time period.