I have a public pgp key, so that users can send me an encrypted message. Ofcourse, any user that wants to send me a message, wants to verify that the public key (s)he has, really belongs to me. From what I have read, one can publish his public key to a trusted third party (for example: the MIT PGP Public Key Server). The MIT PGP server then ensures the user that the key really belongs to me. My problem is: can't everyone forge a key on that server (there is no mail verification)? Isn't the method insecure?
- My name is John Doe. My public key is 0xE3D, my mail adress is email@example.com
- An atacker Eve. Eve has a public key 0xA49, and wants to pretend that he is is John Doe
- John publishes his public key on his website and registers his key on the PGP server. He states on his website: my key is created on 1/1/15, my key is 0xE3D, my mail is firstname.lastname@example.org and you can verify my key at the MIT PGP server.
- Eve registers his public key (0xA49) on the MIT PGP key server with John his email (after John has published his .
- When a user Alice visits John's website, Eve performs a MITM attack and changes the message on the website to: my key is created on 1/2/15, my key is 0xA49, my mail is email@example.com and you can verify my key at the MIT PGP server.
How can Alice know if the key 0xA49 really is Johns public key? When she looks up John Doe's key, she sees two keys: 0xE3D & 0xA49. How can she knows which key is really posted by John?