Revoke and expire
David Shaw
dshaw at jabberwocky.com
Wed Jun 13 22:38:25 CEST 2007
On Wed, Jun 13, 2007 at 02:02:14PM -0600, Henry Hertz Hobbit wrote:
> gnupg-users-request at gnupg.org wrote:
> David Shaw <dshaw at jabberwocky.com> wrote:
>
> > On Mon, Jun 11, 2007 at 10:24:23PM +0530, Hardeep Singh wrote:
> >> Hi
> >>
> >> When a key is revoked using the revocation certificate, does it have
> >> the same effect as reaching the expiry date of the key? In other words
> >> if I set a key to no expire but generate a revocation certificate, it
> >> is equally safe?
> >
> > They're similar, but different. A key that has reached its expiration
> > date is not usable, but a new expiration date can be put on it that
> > makes the key usable again. A key that has been revoked cannot be
> > easily un-revoked.
> >
> > Note that I'm talking about whole keys here. It is possible to
> > un-revoke a revoked user ID on a key.
>
> How do you unrevoke a key, especially if it is on the keyservers?
> I can think of making a backup of the key, revoking it and then
> sending the revocation to the keyservers, then unpacking the non-
> revoked folder, extending the date, and squirreling that away in
> some safe deposit box just in case I need it some time in the future.
> Once you are pretty sure you will never need it again you can destroy
> the backup. But that means it is only unrevoked for myself. Was
> that what you meant?
Essentially, yes, though there are simpler ways to do it. Save a
revoked key to a file and run 'gpgsplit' on it. Delete the revocation
packet. Join the parts back together again, and poof: you have a
unrevoked key.
The catch, of course, is that the key on the keyservers is still
revoked. You can send out this "non-revoked" key, but as soon as
someone refreshes from a keyserver, it'll become revoked again.
There are a few interesting attacks around this sort of packet
tampering. Say that Alice got a copy of Bob's private key and his
passphrase. Bob finds this out, and immediately revokes his key and
sends the revocation to a keyserver. Later, Charlie wants to
communicate with Bob, and Alice "helpfully" gives him a copy of Bob's
un-revoked public key, knowing that she can read anything encrypted to
it. This doesn't work in practice, as Bob will presumably notice that
Charlie is using a revoked key. (GPG will actually warn Bob when
decrypting Charlie's message) Still, Alice could get one message that
way...
> But more to the point, what would most people prefer for somebody
> else to do when they no longer intend to use a key, especially if
> it is on the keyservers - allow it to expire or revoke it with
> some message like "key deprecated"? This is more along the line
> of human usability and preferences, not technical. I am assuming
> from what has been said that most people want the key revoked,
> rather than just allowing it to elapse and expire like Johannes
> Ullrich does. Any opinions?
I have a different opinion for full keys (for which I mildly favor
revocation because it's an explicit step that means "this key is dead,
full stop") and subkeys, which I'd just let expire.
It's not really a big deal though - either way, the key and/or subkey
isn't usable.
David
More information about the Gnupg-users
mailing list