Using RSA we can prove that a server is the owner to the public key that they say is theirs:

image.png

But this does not verify that they can be trusted. Since anybody can create a private and public key.

Digital Certificates

This why need digital certificates. The verification uses a trusted third party, to authenticate that it’s legit. This is managed through a PKI (Public key infrastructure)

Example Certification:

Server.com wants to get a certificate

  1. They create a CSR (Certificate Signing Request)
  2. The CSR is sent to a CA (Certification Authority)

Examples of CA: GoDaddy, letsencrypt, Geotrust, etc.

  1. CA does identification checks, if you are who you say you are and they charge you for this.

image.png

Optionally: The CA could send an RA (Registration Authority) the task to verify your identity.

  1. If you are legit, the CA will create and sign this certificate (with their private key) and sends it back to the server

Now the server has the certificate from a trusted CA that proves them to their clients.

image.png

image.png

Usage of Certificates and Chain of Trust

If a client of server.com wants to see if they can trust server.com they will ask for their certificate.

image.png

  1. The client will receive a signature (signed with the private key of server.com) which the clients decrypts using their public key. The signature has the certificate from server.com + the signature of a CA inside.
  2. Now the client will have to decrypt this signature using the public key of the CA that signed the certificate from server. This will give them their certificate and a signature from another even more “trusted” CA.
  3. This continues until you (hopefully/if the chain of trust works) end up at a root certificate.

The root certificates are trusted because they are built into the operating system. They are self-signed

Root certificates

Are located in the trust store or the root certificate store of your operating system.

PKI (Public Key Infrastructure)

This chain of trust system we would call a PKI. The PKI is only secure if: