Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why should I authenticate a client using a certificate?

I'm implementing a client with python's twisted that checks the server ssl certificate when connecting, following basically this recipe. I've seen in many HOWTOs such as this one the server checking the client's authenticity through a ssl certificate as well. Currently i authenticate my clients using an unique id and 1024 char string (they are automated clients without human interaction).

What I don't understand is what reason would I have to use the whole ssl thing for this instead of just sending the "password" to the server. After all the connection is already ssl encrypted, checking the server certificate and everything. This is a similar question but I want to know why people use ssl client certs and not just what is the best way to do it instead.

like image 439
Luiz Geron Avatar asked Jan 29 '10 19:01

Luiz Geron


People also ask

Why do we use authentication certificates?

Certificate-based authentication is generally considered preferable to password-based authentication because it is based on what the user has, the private key, as well as what the user knows, the password that protects the private key.

What is the purpose of client certificate?

In cryptography, a client certificate is a type of digital certificate that is used by client systems to make authenticated requests to a remote server. Client certificates play a key role in many mutual authentication designs, providing strong assurances of a requester's identity.

What is the advantages of client authentication?

The benefits of client authenticationEncrypts transactions over the network, identifies the server and validates any messages sent. Validates the user identity using a trusted party (the Certificate Authority) and allows for centralized management of certificates which enables easy revocation.

How does client authenticate server certificate?

SSL-enabled client software always requires server authentication, or cryptographic validation by a client of the server's identity. The server sends the client a certificate to authenticate itself. The client uses the certificate to authenticate the identity the certificate claims to represent.


1 Answers

A client certificate restricts access to people authorized with certificates. Assuming your certificates are distributed and managed correctly, this makes it more difficult to connect from an unauthorized location (or say, a bot network), since you need more than just a username and password.

Client-side certificates are a potential part of a defense-in-depth strategy, if you are in an environment where you can manage client certificates.

like image 183
Cade Roux Avatar answered Sep 25 '22 13:09

Cade Roux