In the earlier parts of our e-mail security protocol, we
simply assumed that Alice and Bob have a reliable
way of knowing each other's RSA public keys, PUB_A and PUB_B,
respectively. But a channel over which PUB_A or PUB_B might
be transmitted could be subject to falsification. Let
us suppose that the protocol is started by Alice sending
an unsecured e-mail message to Bob that said, "Hi Bob, My RSA
public key is PUB_A, Alice." Assuming Mallory can insert
his own false substitute into the channel, he can send the
message "Hi Bob, My RSA public key is PUB_M, Alice." (Mallory
would also delete Alice's genuine message.)
The next time Bob sends a "private" message to Alice, Mallory
can intercept and read it at will. In fact, if Mallory has
also thought to send a message to Alice that says, "Hi Alice,
My RSA public key is PUB_M, Bob," he can stay in the middle
of the channel, decrypt messages from both Alice and Bob,
then re-encrypt them using his own private key and/or Bob's
and Alice's public keys, then send re-encrypted false
messages along (either altered, or with the same M Alice or
Bob wrote). Notice that Mallory now knows both PUB_A and PUB_B,
while all Bob and Alice know is PUB_M, even though they
falsely believe PUB_M to be one of the former things.