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