De Utrechtse wiskunde-student Sieuwert van Otterloo heeft tijdens zijn afstudeerproject een beveiligingsfout in het populaire email-versleutelings programma PGP gevonden. PGP is voor het versturen van beveiligde e-mail zo langzamerhand een standaard geworden, dus deze fout treft heel veel mensen en bedrijven.
Bij PGP wordt de public key van de ontvanger gebruikt door de verzender om e-mail te versleutelen: als Bob een bericht naar Alice wil sturen gebruikt hij de public-key van Alice om het bericht te versleutelen. Alleen Alice kan dan het bericht lezen, ze gebruikt daarvoor haar (geheime) private key. Met de gevonden bug kan Eve echter net doen alsof ze Alice is. Ze stuurt op een speciale manier haar public key naar Bob en Bob denkt dan dat de key van Alice kwam. Als Bob nu een versleutelde e-mail naar Alice wil sturen gebruikt hij eigenlijk de public key van Eve, dus kan Eve nu met haar private key de e-mail lezen die voor Alice bedoeld was.
Het hele document is op deze pagina te vinden. De preciese problemen met PGP worden daar uiteengezet:
The other windows also show interesting things. The PGPKeys window shows exactly what it should show: The first user ID is not valid, the second is, and if one takes Alice as the name of the key, then the key is not valid. The properties window however is confused and/or confusing. It shows the name Alice, but the Eve properties: It thinks the key is valid. It even allows raising the trust bar. If Bob raises the trust bar, because he trusts Alice, the first user ID becomes also valid (it is signed by a trusted key, namely itself) and Bob will start encrypting his secret messages to Alice with Eves key. Eve can now read everything Bob sends to Alice!
PGP normally does not allow setting the trust of invalid keys, but here it does. So both the validity and the trust slider are wrong (or one can say the properties window should show a different name. It is the mixing of the two strategies that creates the problem). [break] Het blijkt dus een combinatie te zijn van een slechte implementatie van de OpenPGP standaard door Network Associates en van een onoverzichtelijke gebruikersinterface. Dat de Open Source variant GNU Privacy Guard ook niet helemaal veilig voor dit soort aanvallen is, valt te lezen op de mailinglijst bugtraq: [/break] GnuPG does not mark non-certified user IDs when listing the user IDs for a key (but at least lists all user IDs, so you can notice that something fishy is going on), and the use of '--with-colons' without '--fixed-list-mode' by a frontend might cause the frontend to output misleading information much in the same way as PGP 7.
Meer informatie over PGP en over de gevonden bug is in de complete scriptie te lezen.