Member-only story

Mutual TLS for OAuth Client Authentication

Sathya Bandara
6 min readFeb 18, 2018

--

Mutual TLS is a widely used, secure, authentication technique in enterprise environments to ensure the authenticity of the clients to server and vice versa. It facilitates authentication via certificates followed by the establishment of an encrypted channel between the parties.

The TLS Handshaking Protocol for mutual authentication.

As per the TLS specification, it has three subprotocols that are used to allow peers to agree upon security parameters for the record layer, to authenticate themselves, to instantiate negotiated security parameters, and to report error conditions to each other.

The Handshake Protocol is responsible for negotiating a session which includes the validation of the peer certificate — X509 certificate of the peer.

Server requests a client certificate (as part of the TLS handshake), it will also provide a list of trusted CA’s as part of the certificate request. When the client certificate you wish to present for authentication is not signed by one of these CA’s, the client certificate will not be presented to the server. Also, the certificate can be signed by an intermediate CA “ICA”, and the server can present the client with the root CA “RCA”, and your web browser will still let you pick your certificate even though it’s signed by ICA…

--

--

Sathya Bandara
Sathya Bandara

Written by Sathya Bandara

A Software Engineer on a Quest for Knowledge, Eager to Learn, Share, and Lift Others Along the Way

Responses (1)