What happens if I remove client certificate from TLS If I have a TLS authentication process between two entities A and B, like the one outlined below, what would happen to it, if I remove the client's (A) certificate from it? In this case, the certificate of the client is defined as {A,pk(A)}inv(pk(s)).

A-&gt;B: A,NA,Sid,PA

B-&gt;A: NB,Sid,PB,
  {B,pk(B)}inv(pk(s))
A-&gt;B: {A,pk(A)}inv(pk(s))
{PMS}pk(B),
{hash(NB,B,PMS)}inv(pk(A)),
{|hash(prf(PMS,NA,NB),A,B,NA,NB,Sid,PA,PB,PMS)|}
  clientK(NA,NB,prf(PMS,NA,NB))

B-&gt;A:   {|hash(prf(PMS,NA,NB),A,B,NA,NB,Sid,PA,PB,PMS)|}
  serverK(NA,NB,prf(PMS,NA,NB))


Of course the client loses it's way of authenticating itself with the server (B), but in what way exactly does this make the message exchanges vulnerable to attacks?

Another way to frame the question would be by looking at the Wiki description of the TLS handshake. In the client-authenticated TLS handshake, what would happen if we omit the client certificate?
As SEJPM already has indicated, if you loose the client certificates the server loses client authentication and thus all the data authenticity and even confidentiality under active (man-in -the-middle) attacks.

On the internet this is usually not a big problem for e-commerce. The client can still authenticate the server and have a secure connection. The server doesn't care too much - it simply authenticates the payment transaction.

On the other hand, for e.g. B2B connections the lack of authentication on one side can be catastrophic.



Note: the client certificates is required for client authentication. If you leave it out you'll end up with regular server authenticated TLS.