X.509 support in ssh (revisited)
mouring at etoh.eviladmin.org
mouring at etoh.eviladmin.org
Thu Jan 24 03:14:42 EST 2002
As far as I'm aware of there is no such thing as --with-x509 for OpenSSH
unless that article was suppose to come with a patch to OpenSSH.
- Ben
On Wed, 23 Jan 2002, Donald van de Weyer wrote:
> Hi,
>
> I found this a while ago, but didn't have time to look into it. If you do so
> maybe you could share your experience ...
>
> In case the mentioned FTP site is down, drop me a mail and I'll send you the
> tarball I grabbed.
>
> Donald
>
> ----
> I found reference to this on the IPSEC mailing list. I think
> you might find it useful. Look at
> ftp://hplose.hpl.hp.com/pub/nd
>
> Alex
>
> (Yo, Emacs, this is -*- text -*-)
> OpenSSH X.509 Extensions
>
> Neil Dunbar (nd at hplb.hpl.hp.com)
> January 25th, 2000
>
> 1. Introduction
>
> One of the problems with SSH in the larger scale is that key
> management becomes quite tricky, as people forget all the accounts
> that they have authority to use, and (in an organisation), they leave
> without telling the infrastructure staff which keys they had
> generated. Add to this that SSH leaves the generation and transport of
> private and public keys up to the end user, and the problem can get
> quite gruesome.
>
> To this end, I adapted some of the code which I wrote for the
> FreeS/WAN project to serve as an interface between SSH and a PKI. Note
> that to use these extensions, you will need OpenSSL 0.9.4+ and NOT
> SSLeay. The code requires use of the X509v3 extensions, and won't
> compile without it. Note: the actual SSH protocol is untouched. Only
> the key handling and verification functions have been extended.
>
> 2. Configuration
>
> To configure the extensions, add the text '--with-x509' to the
> ./configure line which you would normally use to configure the OpenSSH
> code.
>
> If you want to be able to look up certificates via LDAP, you need to
> add '--with-ldap=PATH' to the configure arguments. At the moment, the
> code will understand both OpenLDAP and Netscape LDAP SDK 3.0 (although
> it doesn't use SSL, for the moment). Thus, assuming that you have the
> Netscape SDK in /usr/local/ns-ldap, the configure line might look like
> the following -
>
> ./configure --prefix=/usr --with-dante --with-x509 \
> --with-ldap=/usr/local/ns-ldap
>
> (If you've got OpenLDAP, installed in a sane location like /usr/lib or
> /usr/local/lib, then you can generally omit the pathname for LDAP).
>
> After that, compilation and installation should follow by the normal
> OpenSSH commands.
>
> 3. Usage
>
> The OpenSSH code has been modified such that, in addition to reading
> keys from public key files and SSH private key files, it can read
> public keys from X.509 certificate files in PEM format, and private
> keys either from OpenSSL RSA files, or better still, from PKCS-8 files
> (which are defined by reasonably well adhered to standards).
>
> Thus, to generate a key, you can use the sequence of commands as
> follows -
>
> openssl req -new -newkey rsa:1024 -nodes -keyout mykey.pem \
> -out myreq.pem
> [ Followed by requests for the name on the certificate,
> country, etc...]
> openssl pkcs8 -topk8 -in myreq.pem -out mykey.pk8 (*)
> [ Followed by request for the encryption passphrase... ]
> rm -f mykey.pem
> [ A secure wipe would be preferable to rm -f ...]
>
> (*) if you were generating a host key or unencrypted client key, you
> can add the options '-nocrypt' to this stage. Be sure that you really
> want an unencrypted key file.
>
> And that's it. Now, once you have your certificate, either signed by
> your friendly neighbourhood CA, or self-signed, you should concatenate
> the public key certificate to your private key.
>
> cat mycert.pem >> mykey.pk8
>
> This assumes that your certificate is in PEM format. If it's in DER
> format, convert it first via -
>
> openssl x509 -inform DER -in mycert.der -outform PEM \
> -out mycert.pem
>
> OK. Why do we have to do this step? Answer: because SSH stores its
> private/public keypairs as the encrypted private key concatenated to
> the unencrypted public key, and loads the public key from the private
> key file prior to asking for a passphrase. In a PKCS-8 (or RSA private
> key) file, all of the information is encrypted, so that the public key
> cannot be loaded from the keyfile without a passphrase. Thus, as a
> workaround, we concatenate the (unencrypted) certificate to the end of
> the (encrypted) private key, and everything works well.
>
> etc....
>
> ----
> URL: http://www-unix.gridforum.org/mail_archive/security-wg/msg00050.html
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: secureshell-unsubscribe at securityfocus.com
> For additional commands, e-mail: secureshell-help at securityfocus.com
>
>
More information about the openssh-unix-dev
mailing list