What was not mentioned in the article was why the ClientHello and ServerHello messages include a bunch of random data. The reason is to prevent a replay attack, where Mallory has intercepted Alice and Bob's previous transmission and fools Alice into thinking that she's talking with Bob by re-transmitting Bob's messages from the previous attack. The random data has to be signed with your key so the other party can be sure it's you sending that data. This kind of liveness guarantees are used quite often in public key cryptography.