multiple signing keys
Marco Colombo
marco@esi.it
Fri Sep 7 13:41:04 2001
On Fri, 7 Sep 2001, Janusz A. Urbanowicz wrote:
> Marco Colombo wrote/napisa=B3[a]/schrieb:
> [Charset ISO-8859-15 unsupported, filtering to ASCII...]
>
> > I see. So, generally speaking, it is not advisable to remove expired =
keys,
> > since they can be un-expired later. But if I delete the (private) key=
,
> > no one can un-expire it (not even me), true?
>
> Yes, and moreover you won't be able to decrypt anything encrypted with
> corresponding public key. This applies to messages received both before=
and
> after expiration date.
I know. But the key is used *only* for RPM signing. I don't really care:
there shouldn't be any message at all. Even the public key actually never
"goes public": it lives only in root's keyring on target hosts, and it
is placed there by hand - something like:
gpg --export -a <uid> | rsh root@target gpg --import
> > An example:
> > - I create a signing key, with expire 2002-01-01, and export it to th=
e
> > target hosts;
> > - On 2002-01-01, it expires.
> > - On 2002-01-04, I change the expire date, and sign something with it.
> > - I DO NOT re-export it to targets.
> >
> > Do target hosts verify the signature as good or bad?
>
> The signature will be good although there will be warning that 'Signing=
key
> has expired on <date>.' or similar.
Oh, ok, now it makes perfect sense to me. That was the missing point.
I need rpm -K to fail when the key expires. I'll try and find a workaroun=
d,
if needed.
> > If it is good, then I see the need to revoke the key, but then I don'=
t
> > understand what 'expire' means. If it is bad, then I guess I need to
> > export the key again to host targets.
>
> Expire date means that signatures made with that key are not to be
> considered valid after the expire date. But they still will be perfectl=
y
> good and verifiable signatures.
So the signature is "good", but to be considered "invalid". I need to
check what rpm -K really does, if that happens.
> > But if an attacker is able to do that (and here the keyring on the ta=
rget
> > hosts is root's one) he can add ANY key to the keyring.
>
> Do what? Reset the expiry date? You need key's secret key to do this.
Ok, I need to make it clearer. The application here is to protect the
target hosts, which use an automated update system, so that only signed
software gets installed. If an attacker is able to tamper with root's
keyring on a target system, he can already do any kind of damage, and
besides that, he can replace or add any (public) key. After that he's
able to have any software installed. The point is that he doesn't need
the private key at all.
>
> Alex
>
I was under the impression that setting an expires helps if the key
is compromized, somewhat limiting the damage (in time). But if one is
able to change the expire date, it doesn't really fit the job.
If the attacker has the private key, he can change the expire date and
make other (valid) signatures with the same key. Or am I still missing
something?
.TM.
--=20
____/ ____/ /
/ / / Marco Colombo
___/ ___ / / Technical Manager
/ / / ESI s.r.l.
_____/ _____/ _/ Colombo@ESI.it