The Call of the Open Sidewalk

From a place slightly to the side of the more popular path

User Tools

Site Tools


pgpfan:forward_secrecy

This is an old revision of the document!


Forward Secrecy

The PGP protocol is sometimes criticized because it lacks a feature called forward secrecy which goes something like this:

Some process is used to come up with a temporary key known only to you and your correspondent (e.g. Diffie–Hellman key exchange). That key is used to encrypt the message. After the message is transferred and decrypted that temporary key is destroyed. Since the key is gone the message is inaccessible. The idea is to prevent access to your message after it has been transferred.

The first important point is that forward secrecy depends on the integrity of the encryption. If someone manages to break the encryption on your old messages they will still get access to them.

The second important point comes from the first. Since forward secrecy depends on the integrity of the encryption it will only be superior in the case where someone gets access to your private key information. For the end to end encryption case that will mean compromising an end device. The next three subsections break out the potential benefit of forward secrecy after an end device is compromised.

Message Archives

If someone gains access to one of your private PGP encryption keys then they can decrypt all the archived email that was originally sent to the associated identity. A system with forward secrecy requires a separate system to save and encrypt archived messages. That system can't be made any more secure than a system for protecting a PGP private key. If a better system was invented then you could use it to protect your PGP keys.

There is no practical security difference between PGP and a system providing forward secrecy for the case of message archives.

Post-Compromise

If someone gains access to one of your private PGP encryption keys then they can then decrypt any intercepted email sent to the associated identity. If someone gains access to a private key associated with an identity used in a forward secrecy system then they only gain the ability to impersonate you. They still don't have access to shared keys you might negotiate with your correspondents so they can't decrypt passively intercepted messages.

This only works for the case where the access is only a copy of your private key. If your opponent gets write access to your device they can probably leverage that into access to your messages going forward. Gaining access to a pass-phrase protected PGP private key requires at least enough access to install a key-logger (or equivalent) which implies write access. The ability to impersonate you would normally give them at least partial access to your discussions.

A system providing forward secrecy has a theoretical advantage in this case, but in practice the advantage would likely be minimal.

Pre-Compromise

This assumes that there is someone with enough foresight (and ability) to record your encrypted messages off the network or your email server. That message archive can be decrypted if they later gain access to your PGP private key. That archive would have been useless in the case of a forward secrecy supporting system as the decryption key(s) would of been destroyed.

This is the advantage of forward secrecy.

Conclusions

Forward secrecy:

  • provides no real protection after a compromise.
  • provides no protection of archives.
  • is rendered pointless for messages that are archived.

The addition of forward secrecy to a protocol increases the complexity of that protocol. In the case of something like encrypted email where archived messages almost always exist it wouldn't be worth the cost even if it could somehow be provided. That is probably true for any end to end encrypted messaging application with an offline message delivery capability. Adding in the issue with message archives we can reasonably conclude that forward secrecy is not generally something one would want in a messaging system.

PGP FAN index

pgpfan/forward_secrecy.1594745122.txt.gz · Last modified: 2020/07/14 16:45 by b.walzer