PGP, GPG defeated
Not broken, just beaten
OpenPGP and GnuPG are susceptible to a chosen-cyphertext attack which would allow an adversary capable of intercepting an encrypted message to use the intended recipient as an unwitting 'decryption oracle', researchers Kahil Jallad, Jonathan Katz and Bruce Schneier report in a recent paper.
In a nutshell, Jane sends an encrypted e-mail message to Dick. Unfortunately, Bill intercepts Jane's message and forwards her message to Dick following a bit of tinkering. When Dick receives it, he's puzzled by an incomprehensible message. If he replies to Bill for clarification with the cyphertext in his reply, and if he has his crypto program set on cruise control, Bill may well be able to read Jane's message.
Of course there are numerous complications which we'll get to presently, but conceptually that's all there is to it. It's similar to a man-in-the-middle attack, only Dick and Jane are not kept under the illusion that they're communicating with each other.
The authors have confirmed that the attack can be exploited practically.
However, it's not exactly easy. One obstacle for the attacker, Bill, is to tempt Dick into replying. If they're already acquainted, this should be easy. If they're strangers, then a bit of social engineering will be in order. The most obvious point of failure, then, is the problem of causing Dick to take action.
On the technical front, there are a number of conditions which have to be met for the attack to succeed. First, Dick has to set his PGP or GPG application to encrypt automatically, or somehow choose to encrypt a reply to what appears to be a nonsense message. Second, if he uses the crypto application's compression feature (which is normal) the attack will fail. With GPG it fails because of an integrity check which is not actually required by the standard, but which is widely employed. With PGP it fails because, while the standard requires that 'uncompressed' be a valid condition, no one follows the requirement.
If Dick's reply is not compressed by the crypto app, but is compressed with an outside application, the attack will succeed.
What this example shows is that the standard is wrong and that the attack is unlikely in the real world merely because the rules are not being followed. The team recommends, obviously, that the standard be modified to protect against this sort of attack. It also illustrates the importance of a holistic approach to crypto applications.
It's not enough that an algorithm is strong. As we reported recently, a buffer overflow vulnerability in Network Associates' PGP plugin for MS Outlook on Windows was capable of compromising the user's privacy, and even of giving up his machine. In this case, too, there was no 'breaking' of the algorithm. It was simply an attack against a component of a crypto application, which in practical terms is just as bad.
The research team's paper describes the chosen-cyphertext attack in gruesome detail, parts of which, I readily confess, went in one eye and out the other as I read it. ®