Re: draft-igoe-secsh-x509v3-00

Jeffrey Hutzelman <jhutz@cmu.edu> Tue, 15 December 2009 21:41 UTC

Return-Path: <bounces-ietf-ssh-owner-secsh-tyoxbijeg7-archive=lists.ietf.org@NetBSD.org>
X-Original-To: ietfarch-secsh-tyoxbijeg7-archive@core3.amsl.com
Delivered-To: ietfarch-secsh-tyoxbijeg7-archive@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id D91003A6B1D for <ietfarch-secsh-tyoxbijeg7-archive@core3.amsl.com>; Tue, 15 Dec 2009 13:41:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.838
X-Spam-Level:
X-Spam-Status: No, score=-2.838 tagged_above=-999 required=5 tests=[AWL=-0.239, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MozErUIVn2w4 for <ietfarch-secsh-tyoxbijeg7-archive@core3.amsl.com>; Tue, 15 Dec 2009 13:41:27 -0800 (PST)
Received: from mail.netbsd.org (mail.NetBSD.org [IPv6:2001:4f8:3:7:2e0:81ff:fe52:9ab6]) by core3.amsl.com (Postfix) with ESMTP id 679AD3A6B11 for <secsh-tyoxbijeg7-archive@lists.ietf.org>; Tue, 15 Dec 2009 13:41:27 -0800 (PST)
Received: by mail.netbsd.org (Postfix, from userid 0) id 1EB1B63B300; Tue, 15 Dec 2009 21:41:10 +0000 (UTC)
Delivered-To: ietf-ssh@NetBSD.org
Received: from smtp01.srv.cs.cmu.edu (SMTP01.SRV.CS.CMU.EDU [128.2.217.196]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "smtp.srv.cs.cmu.edu", Issuer "CS CA Web 2" (not verified)) by mail.netbsd.org (Postfix) with ESMTPS id 65B4663B31D for <ietf-ssh@NetBSD.org>; Tue, 15 Dec 2009 21:41:06 +0000 (UTC)
Received: from ATLANTIS.PC.CS.CMU.EDU (SIRIUS.FAC.CS.CMU.EDU [128.2.216.216]) (authenticated bits=0) by smtp01.srv.cs.cmu.edu (8.13.6/8.13.6) with ESMTP id nBFLf1vJ008782 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 15 Dec 2009 16:41:01 -0500 (EST)
Date: Tue, 15 Dec 2009 16:41:01 -0500
From: Jeffrey Hutzelman <jhutz@cmu.edu>
To: Joseph Galbraith <galb-list@vandyke.com>, Douglas Stebila <douglas@stebila.ca>
cc: "Igoe, Kevin M." <kmigoe@nsa.gov>, ietf-ssh@NetBSD.org, jhutz@cmu.edu
Subject: Re: draft-igoe-secsh-x509v3-00
Message-ID: <F2DFBD9DC272890A0369A122@atlantis.pc.cs.cmu.edu>
In-Reply-To: <4B27D88F.4020605@vandyke.com>
References: <80F9AC969A517A4DA0DE3E7CF74CC1BB0349B5@MSIS-GH1-UEA06.corp.nsa.gov> <4B048844.4040405@vandyke.com> <6A5532F8-3FD1-45A4-A6CC-5A56B0A02823@stebila.ca> <4B27D88F.4020605@vandyke.com>
X-Mailer: Mulberry/4.0.8 (Linux/x86)
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
X-Scanned-By: mimedefang-cmuscs on 128.2.217.196
Sender: ietf-ssh-owner@NetBSD.org
List-Id: ietf-ssh.NetBSD.org
Precedence: list

--On Tuesday, December 15, 2009 11:42:23 AM -0700 Joseph Galbraith 
<galb-list@vandyke.com> wrote:

> I reviewed RFC 4253, 7.1.  Algorithm Negotiation, and what is
> actually negotiated is "server_host_key_algorithms".  So the absence
> of an algorithm in the list does not imply that the server
> doesn't support he algorithm, just that it doesn't have a hostkey
> using that algorithm.
>
> This is further supported by the fact that publickey usage during
> publickey userauth is not restricted to the algorithms negotiated
> during key exchange.
>
> So, based on that, I'm not sure we should actually make any restrictions
> based on the negotiated algorithms.

As you note, the absence of an algorithm in the server's list indicates 
only that it does not have a key using that algorithm, not that the 
algorithm is not supported.  However, the absence of an algorithm in the 
client's list does mean the client does not support that algorithm for host 
keys.  So I think it is reasonable to advise servers to prefer certificate 
chains using algorithms which the client claims to support.

However, I also agree with Douglas that a client must be prepared to 
receive a chain that contains other algorithms (and which it might not be 
able to validate), since a server may have a fixed chain and have no 
control over the algorithms used.

Or maybe we should drop the idea entirely.




> The CERT libraries I've dealt with seem to want to deal with individual
> certificates.  I.e., I have to add certificates to a store object of
> some sort individually and then the library will build a chain.  Or
> I have to put the chain in a C array of CERT* in chaining order.
>
> These libraries probably expose a general purpose ASN.1 decoder, but it
> is another piece of code I have to interface with...

OpenSSL, or at least every OpenSSL-using application I've seen, exposes an 
interface where you hand it a file containing one or more certificates in 
PEM-encoded ASN.1 and it builds a chain to use in the TLS handshake.  Now, 
I don't know if it exposes similar interfaces for non-TLS applications 
using X.509 directly.


>> 6) Extended key usage key purpose IDs.  I must confess to being a bit
>> confused about this one.  In the original X.509 in SSH draft, you say
>> that SSH implementations SHOULD NOT use extended key usage
>> extensions, but then go on to provide some anyway.  Can you help me
>> understand what appears to be a contradiction?  Would we need to get
>> new OIDs or could we reuse the ones from the previous document?
>
> Yeah... the language in the draft baffled me to, and I wrote it :-)
>
> I think we should pretend the SHOULD NOT phrase was never written
> unless someone else can come up with a reason why.

The EKU extension carries the semantics "this certificate may be used 
_only_ for the listed purposes".  So, if you want it to be possible for a 
certificate using the extension to list your application as one of the 
permitted uses, then you need to define a keyPurposeId.  It makes some 
amount of logical sense to say SHOULD NOT include the EKU extension (i.e. 
don't apply a usage restriction), but to define a keyPurposeId to be used 
when a restriction is applied.

That said, IMHO the SHOULD NOT is inappropriate, unless someone knows of an 
interoperabiltiy reason for it.  So I think just dropping the SHOULD NOT 
phrase is best.


> I don't think Data Fellows is involved in SSH anymore, so we'll
> probably need new OIDs... is there an ietf pool we can pull from?

The security AD's control an OID arc that can be used for IETF 
security-related protocols.

-- Jeff