I am learning TLS handshake and find client/serve will negotiate a cihpersuite during client/server hello.
Usually, the last part of a ciphersuite is a hash algorithm, like
ECDHE-ECDSA-AES128-SHA256. The second part of a ciphersuite is public key algorithm of server certificate like
ECDSA. As we know, public key is usually capable of signing a message.
I also noticed in the client Hello, there is an extension called
signature_algorithms to set the preferred hash/signature algorithm pairs. The chosen hash/signature is usually used to sign the Server Key Exchange.
My question is: since the ciphersuite already indicates both hash and signature algorithms, why we still needs the