Hi Robert,

thanks for the reply.

I think there are two major misconceptions, at least one of them my fault:

   * I am not proposing to mandate that the private key stays the same
     (contrary to what my original bullet list said). I am merely
     proposing that the new key is signed by the old one, to authorize
     the new one by the owner.
   * I am not proposing to get rid of CAs, not proposing an SSH model.
     KCM is in *addition* to current requirements.

Most of the discussion below can be explained with that.

On 09.01.2009 02:10, Robert Relyea wrote:
Allowing the same private key over an extended time is a question of CA policy. Such allowances are already questionable *CRYPTO* (not PKI) policy. A system that requires the same key is a non-starter. This is crypto 101

I hope to see some reasons for that bold statement below, as most crypto systems which are considered very secure use long-lasting or not expiring keys.

That includes both SSH and PGP, which are both widely considered very secure when fingerprints are verified correctly. The CAs are not a threat to the security of *existing* relationships. This vector is exactly what we propose to remove.

All the rest stays the same.

Note that I later said that the keys *can* be changed, if you consider that better. The old one merely needs to sign the new one, to ensure continuity.

Debian-weak SSH keys never expire. The risk these keys pose to PKI based apps are small and shrinking.

Yes, that was a major screw-up.

However, fixing it is not a major problem for a responsible admin - he'd just replace them. I don't think I was affected, but I changed the keys of the systems which might have been affected anyways.

Also, the CA still can revoke the keys, even with this proposal.
(I think the fact that the CAs didn't do that was also a major screw-up on their part. Any admin which didn't exchange the key himself would quickly have noticed and replaced the cert. When waiting for expiry, they were vulnerable for a year and didn't notice it.)

The security value of a private key degrades over time. The rate of this effective degradation depends on the usage of the key, the strength, etc. 10-20 years for an RSA 1024 bit key issued today is definitely too long (independent on how it's used).

Sure. You're very welcome to replace the key in 5 years, when it's time to do so.

--------------------------
KCM is popular among people who "know a little security" because it puts the burden of security in the users own hands. It makes sense. I want to control my own destiny.

Exactly.

KCM is good for a single pipe between to fixed and seldom changing computers, which are set up by a conscientious, knowledgeable person. In the day to day operations it is an accident waiting to happen. I use ssh daily.

(Note: You're speaking of a KCM system without CA and without key verification on first sight in practice. That's not the proposal here.)

Machines get reloaded with new operating systems, events cause rekeying, I visit new machines that I don't deal with every day. The whole burden is placed on me to decide if I'm being attacked. 99.9% of the time I get a warning that is benign That .1 % when it's not, I'm now trained to ignore it....

FWIW:
I use SSH only for a few third-party machines, including the Mozilla CVS and hg servers. When/If the key changed there, I asked or even filed bugs.

I use SSH mostly for my own machines, and I didn't have unexplainable key changes so far. And the keys of machines at home are of course exchanged at first sight by a direct wire inside my home. And I know that if there is no way (apart from software bugs) for a third party like a CA to introduce himself between me and my machines without an alert (which I never had). That combination (and some trust in the openbsd/openssh team and open source in general) makes me fairly confident in the system. I can't have that confidence in solely PKI-based systems, because I get no warning (or lots of spurious warnings) in the same situation. That's why I propose to *add* KCM in addition to PKI.

The big secret is few (and I mean a lot fewer than people think) of us are sufficiently diligent enough to use such a scheme on a regular basis.

We all are less competent than we think, esp. in security, yes.

(I'm *not* pointing to you.)

Mozilla is the same. Users are making lots of connections, often to new sites that they have never visited before. They trash their profiles. They reload their machines. They visit sites from their mom's computers. Even if you could get every website to follow the (poor security) practice of never changing their keys, you are generating so much noise that users will ignore key change warnings.

There would be no warning when the user first encounters a host with a cert and he's never seen the host (as far as the profile goes) - we rely on CAs as we currently do for the first connection. Only on the second connection, the KCM kicks in and verifies that it's the same key, or the new key is signed by the old key, the old one authorizing the new one (if you prefer to change private keys, which is fine). So, in normal scenario, there are no warnings for users, and we lose no security that we currently have. We only add restrictions, namely that the admin signs the new key with the old one. (I hope I explained in previous posts what that is good for.)
_______________________________________________
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to