0

I would like to offer a customer a cloud service in form of a website. Now I had the idea that it would increase security enormously if this customer (several employees) also authenticated himself with a client certificate. This certificate should then be installed on his office computers and tablets. The server SSL certificate is a Letsencrypt certificate. From the client certificate I would then also know the private key, but from my point of view this is not dangerous because it is only used to authenticate against my server.

Is there a practicable solution to provide the customer with a client certificate whose public key I then store on my HTTP server?

Can I buy such client certificates from an authentication authority? Did I understand correctly that if I generate a own client certificate, the customer also has to trust my CA and this represents a security risk? Or can the customer only trust this one generated certificate and not my self signed CA/Root CA?

Thanks for anwsers

Max1829
  • 11
  • 1
  • 1
    *"From the client certificate I would then also know the private key, but from my point of view this is not dangerous because it is only used to authenticate against my server."* - only the one who authenticates itself should be in possession of the private key. As the server who only authenticates the client you need to trust the certificate issuer but don't need to have knowledge of the certificates private key. – Steffen Ullrich Nov 13 '21 at 10:47

2 Answers2

1

Did I understand correctly that if I generate a own client certificate, the customer also has to trust my CA and this represents a security risk?

Trusting the issuer CA of a certificate is only needed by the one who verifies the certificate, not the one who authenticates itself with the certificate. Thus in case of a client certificate only the server needs to trust the issuer CA, the client not. This also means that the client does not need to import the CA as trusted which means that there is no security risk from importing some third-party CA.

Or can the customer only trust this one generated certificate and not my self signed CA/Root CA?

The client does neither need to trust the client certificate nor its issuer CA. The client just needs to import the client certificate and the associated private key to be used as client certificate.

It is thus perfectly fine to use a private CA and let it create the client certificates for the customers. The server will then only trust this private CA for client certificate validation.

Steffen Ullrich
  • 114,247
  • 10
  • 131
  • 172
  • Thank you for your prompt reply. Is there a way to buy a client certificate from an official certification authority so that my customer does not receive a warning message when installing the certificate (for example with ios)? I couldn't find a CA that explicitly sells client certificates. What are the requirements for such a certificate? Would a simple S / MIME certificate be sufficient or do I need an official domain for the client certificate? Or can I generate my own valid client certificates with a wildcard certificate? – Max1829 Nov 14 '21 at 11:27
  • 2
    @Max1829: Again, there is no trust involved when installing a client certificate on the client side regarding the certificate issuer. Why should the client receive a warning then? *"client certificates with a wildcard certificate?"* - Wildcard is about subdomains in server certificates, so this makes no sense with client certificates. *"Would a simple S / MIME certificate be sufficient ..."* - S/MIME requires a different certificate purpose and can not be used as TLS client certificate. – Steffen Ullrich Nov 14 '21 at 12:20
0

From the client certificate I would then also know the private key, but from my point of view this is not dangerous because it is only used to authenticate against my server.

Any Certificate is publicly available and only contains public key apart from other attributes and is signed by issuer CA. This can be private CA also if you only need to use certificates at organization level and not across the internet.

You may setup your private CA on your intranet and provide certificate to all Company or Organization employees. Having said this, depending on Certificate validation and revocation requirements (and your local law), you may achive PKI authentication with any Public and Private Key pair and may not require CA signed Certificate but this arrangement does not provide Certificate Revocation check and systematic PKI framework.

Refer working POC for PKI Web Authentication at PKI Authentication

This requires installing Signer.Digital Browser Extension (provided by my Company, CISPL) to be installed on clients to access User's Digital Certificate from local Certificate Store or Cryptographic device like Smartcard or USB.

The above extension also provides JavaScript API for Certificate issuance which also adds root certificate to user's trust store at the time of certificate download. You may test it at CSR Generation and Certificate Download

Bharat Vasant
  • 850
  • 3
  • 12
  • 46