En SSL/TLS si tengo la clave privada del cliente de una conexión no puedo descifrar el tráfico, pues la clave privada del cliente sólo se usa para firmar en caso de que sea necesario.
Es opcional que el cliente disponga de su propio par pub/privkey asociado a un certificado en el handshake TLS. En cambio es obligatorio que el servidor tenga dicho certificado + par de claves. Hasta aquí bien, supongo.
Si el servidor, en este caso, tú, tuvieras la clave privada del cliente, podrías impersonarlo. Es decir, serías capaz de suplantarlo dentro de la organización a la que el cliente pertenece. En este caso, si tu alojas el servidor y sabes su privada, podrías registrar en un log que negociaste una password simétrica derivada de una PMK (pre-master key) con firma digital X, pero realmente lo hiciste con otra PMK y otra signature Y. Es decir, podrías forgear o engañar a tus supervisores sobre las negociaciones con el cliente al que pertenece dicha clave etc. También, si esa clave privada se utiliza en otros medios, como para autenticar firmas sobre archivos o mensajes, no hace falta que diga lo que puede pasar jejeje game over.
El cliente ofrece algoritmos al servidor => el servidor le responde con el que quiere.
El cliente envía un PMS (Pre-Master-Secret) cifrado con la PÚBLICA del servidor => el servidor recibe clave, y se genera a la vez que el cliente las claves definitivas.
Bueno, depende de la cipher suite. Con RSA seguro que sí, cogiendo la pública del certificado y envíando la PMS bajo la exponencial modular. En los algoritmos que cumplen PFS (perfect forward secrecy), el servidor, envía una firma digital sobre los parámetros ephemeral en cada handshake, el cliente válida con la pubkey del certificado si esos datos fueron firmados por el server. Si fuera así, entonces genera un valor público y un privado, no cifra con la pública ni nada, sino que
transforma el valor público de B en la PMS y B transforma el público de A en la PMS. A partir de aquí, A y B tienen la misma PMS y derivan la PMK. Entonces, se ve perfectamente como B no descifra para conseguir la PMS de A, sino que ambos llegan a la misma conclusion transformando valores públicos. Esta propiedad caracteriza la función del key exchange, por ejemeplo si es PMS_B=(g^x)^y y PMS_A=(g^y)^x vemos como conmuta en el grupo de los enteros multiplicativos mod p (falta el operador mod primo, y eso, al conmutar, se consiguen los mismos valores en PMS_A y PMS_B.
Imagina que en vez de tener una clave RSA fija en el certificado, pudieras tener una distinta en cada handshake, eso es PFS, pero sin utilizar RSA claro, en vez, RSA se usa para firmas digitales y el resto viene a ser ECDHE. ES DECIR,
en los algoritmos de intercambio de claves (key-exchange) no se cifra ni se descifra a no ser que el algoritmo criptográfico subyacente sea un criptosistema.