In SSL/TLS process, message authentication code ensures a message's data integrity.
However, digital signatures offers not only data integrity but also non-repudiation.

Then, why does SSL/TLS use message authentication code instead of digital signature for data integrity?

  • 5
    TLS makes use of certificates which by default make use of digital signatures which are verified by respective certificate authorities. MAC is used in conjunction with this because the cryptography involved in checking digital signatures for each request is unnecessarily ineffecient. – Jonathan Gray Dec 25 '15 at 5:41
  • 1
    non-repudiability is only useful if you can check that the message is really signed by the specified party after the fact. This means you'll need to modify the data itself to contain the signature. Since TLS is intended to be application transparent, non-repudiability is unsuitable to be enforced in the TLS layer. Also, an attacker would not be able to successfully complete the key exchange part of the handshake unless they know the private key, so the connection itself is already authenticated. – Lie Ryan Dec 28 '15 at 15:37

Message Authentication Code (MAC) are based on symmetric cryptography. Digital Signature are based on asymmetric cryptography. Using the existing algorithms, symmetric cryptography is by far computationally cheaper than asymmetric.

It means that you can create and verify a MAC for each packet on a network traffic with a reasonable increase of calculation, i.e. without slowing the traffic to much. With digital signature, the cost of signing and verifying each packet will surely create a bottleneck slowing drastically the traffic or needing a huge amount of computational power.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.