In addition to providing a standard for public-key certificate formats. X.509 specifies an authentication protocol. The original version of X.509 contains a security flaw. The essence of the protocol is
A → B: A(tA, rA, IDB)
B → A: B{tB, rB, IDA, rA }
A → B: A{rB}