IETF-SSH archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: draft-ietf-secsh-gss-keyex and null host keys
On Wednesday, July 16, 2003 11:28:05 +0200 Jeffrey Hutzelman
<jhutz%cmu.edu@localhost> wrote:
On Wed, 16 Jul 2003, Sam Hartman wrote:
First, I propose that the GSSAPI draft fold in
draft-weber-secsh-pkalg-none-00. The none key type should be combined
with the null host key type already in the GSSAPI draft.
Second, I believe we should add text to the GSSAPI draft proposing two
possible ways of handling the host key transmitted by the GSSAPI key
exchange.
I agree that both of these changes would be useful.
And yet, I haven't done anything about them. :-(
Quite some time ago, I came to some conclusions about "none":
- It is probably a good idea to have some mechanism along these lines
to allow rekeying in the absence of whatever credentials allowed the
original key exchange to happen.
- "none" has significantly different semantics from "null", and combining
them is not only inappropriate but potentially dangerous.
"null" is a host key algorithm which does not claim to provide signing
or encryption operations, and which therefore cannot be used with any
keyex algorithm which requires such operations. For example, it cannot
be used with the mandatory DH-based algorithms, because those require a
host key algorithm which supports signing. This algorithm is valuable
any time a keyex algorithm like gss-* might be used and no other host
key is available.
By contrast, "none" is an algorithm which _claims_ to provide both
signing and encryption operations, but for which those operations don't
actually do anything. That is, the encrypt/decrypt operations are the
identity mapping, and the verify-signature operation always succeeds.
This algorithm would really be better named "noop". This algorithm is
intened to be used only during rekeys, when it can be assumed that
confidentiality and integrity are provided by the ssh transport layer.
Its use during initial key exchange is prohibited, and with good reason.
These algotithms are quite different, and combining them under a single
name would be quite a bad idea. Doing so would introduce a single name
which must describe one set of behaviours during initial key exchange,
and a different set during a rekey. The set of key exchange algorithms
that could be used with this host key algorithm would differ depending
on the context. It would be easy to screw this up and end up with an
insecure result.
- Given that "none" and "null" are distinct algorithms and should not be
combined, I do not believe that "none" belongs in the GSS document at
all. I would like to see this work proceed, and am willing to take up
editorship of Joel's document if he is no longer available to work on
it. I suspect it can be completed fairly quickly. But I don't think
it belongs in the GSS document.
I sent mail to Joel about this quite some time ago, but I can't find any
indication that I've brought it up on the list previously. Of course I
will roll the definition of "none" into the GSS document if that is the
consensus of the WG, but I don't believe it is appropriate to do so, and
I'd rather get the document finished in something close to its current
state.
Sam also proposed some text recommending handling for host keys received
via the GSS mechanism. I agree these changes are a good idea; assuming
there is agreement I will make them in the next rev.
-- Jeff
Home |
Main Index |
Thread Index |
Old Index