IETF-SSH archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Comments on draft-ietf-secsh-x509-00



Joseph Galbraith wrote:

Henrick Hellström wrote:
I can only see a point in using X.509 certificates with SSH, in case
secure distribution of public keys between the server and the clients is
not feasible.


To be honest, this covers most SSH cases, right?

Or at least, in most cases, password authentication must also
be enable to enable the secure distribution of publickeys,
and host keys are generally not distributed securely.

I haven't conducted any empirical studies of actual world wide SSH usage (<g>), but I would argue e.g. that it is recommended to only accept server host keys you already acquired securely out-of-band.

For example, if you use SSH for connecting to your home computer from work (or vice versa), it would be recommended to not let the client software accept any public key sent by the server unless it is identical to the one you carry with you on an USB stick.

Please note that I don't buy any arguments of the kind: "We already have a PKI infrastructure and management tells us to use it for everything so we really want to send X.509 certificates over SSH." If the host already maps user accounts to KNOWN certificates, the server might just as well extract the public keys from the certificates and use them as regular public keys.

The only valid reason I can see for using X.509 certificates would be to take advantage of the fact that a trusted CA has already mapped the name of the certificate subject to the private key of certificate subject. IOW the host administrator would just have to enter the username (and possibly other personal info likely to end up in a certificate) of a new user into a database (what ever), and send an unprotected email to the user instructing him to get a client certificate. Note that no confidential (password) or authenticated (publickey) information is exchanged directly between the host and the user at this stage. The client would instead go to a trusted CA to get a client certificate. The first time the client connects with the certificate the server would be able to immediately authenticate the identity of the user.


When the certificate is used as a hostkey, either the subject name
or the subjectaltname SHOULD match the canonical name of the server.
(Are their multiple names in the subject name or subject alt name;
I don't recall?)

Or should match the name used by the user?  Are there DNS issues
in saying canonical name?

I don't know. Typically, server certificates used by SSL/TLS servers have a subject.commonName identical to the *domain name* of the server.

Note that both the subject name and the subjectAltName might contain a lot of other name fields, such as organizationName, country, stateOrProvince, etc.


And what you are saying here is that the draft ought to include text
along the lines of:

When the certificate is used as part of publickey authentication,
the username specified in the publickey packet SHOULD match
either the subject name or the subjectAltName in the certificate.

It is a lot more complex than that. Perhaps it would be a better idea to state that the user<->certificate mapping is assumed to be implementation specific and/or server specific.


2) text regarding KeyUsage and ExtendedKeyUsage.


This is application specific, so it should go into the secsh-x509 spec.


It sounds like there is a missing 'not' in this sentance?

If their isn't a missing 'not', can you give me some more
details as to what you are thinking?

No, there is no 'not' missing. Example:

"A host server certificate SHOULD include the id_kp_serverAuth OID in the extKeyUsage extension, and a client user certificate SHOULD include the id_kp_clientAuth OID. The extKeyUsage extension SHOULD be marked as critical. Client implementations SHOULD reject host server certificates that contain the id_kp_clientAuth OID in the extKeyUsage extension, and server implementations SHOULD reject client certificates that contain the id_kp_serverAuth OID in the extKeyUsage extension."

Please note that I don't suggest that the above paragraph should be added. It just serves as an example of an application specific PKI policy.


--
Henrick Hellström
www.streamsec.com



Home | Main Index | Thread Index | Old Index