O Cliente gera o PMS "como quiser", ele escolhe esse valor, e não o gera a partir da chave pública do servidor.
A chave pública é usada para CIFRAR o PMS (e não pra *gerar*) antes dele ser enviado ou servidor. Desta forma, o cliente (que escolheu o PMS) e o servidor (que decifra o valor enviado pelo cliente usando sua chave privada) são os únicos a conhecer o PMS. E a partir dele e dos números randômicos da fase inicial do handshake, geram a chave simétrica que será usada na comunicação (derivada de MS)
O MAC (Message Authentication Code) é (a grosso modo) como que uma "assinatura digital" feita com chave simétrica. Visa verificar a integridade e autenticidade das mensagens entre duas partes que conhecem uma determinada chave simétrica. No SSL é usada em alguns passos p/ verificar que as mensagens anteriores estão íntegras e são autenticas. É usada uma chave simétrica derivada tb de MS, e o MAC é calculado sobre o conjunto de mensagens enviadas.


Responder com citação
