El protocolo de enlace TLS (no anónimo) requiere que el servidor firme el mensaje ServerKeyExchange para que el cliente pueda autenticar el servidor utilizando la clave pública presente en el certificado del servidor.
Sin embargo, el protocolo de enlace TLS con autenticación del cliente requiere que el cliente marque todos los mensajes anteriores del protocolo de enlace, lo firme digitalmente & enviar esta firma en el mensaje CertificateVerify. El Servidor luego verifica esta firma usando la clave pública presente en el Certificado de Cliente.
Es comprensible que ClientKeyExchange & CertificateVerify son 2 mensajes separados porque la autenticación del cliente es opcional. Pero, ¿hay alguna razón específica para que el Cliente firme todos los mensajes anteriores en lugar de simplemente firmar el ClientKeyExchange (como lo hace el Servidor) y enviar la firma en CertificateVerify?