IETF-SSH archive

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

Re: [psg.com #460] IESG - Transport - Oakley





On Tuesday, June 15, 2004 08:53:54 -0700 Chris Lonvick <clonvick%cisco.com@localhost> wrote:

Hi Folks,

From all of the notes on this subject, it looks like we may have some
consensus on how to address this issue.  Many thanks to everyone who
partifipated in this discussion; it helps to move us forward.  I believe
that this is going to require edits to 4 places in the documents.


[TRANSPORT] - revise section 8.1 (formerly titled
"diffie-hellman-group1-sha1")

8.1 Required Key Exchange Methods

   Two methods for key exchange are defined in this document.

   The "diffie-hellman-group1-sha1" method specifies Diffie-Hellman key
   exchange with SHA-1 as HASH, and Oakley Group 2 [RFC2409] (1024bit
   MODP Group).  This method MUST be supported for interoperability as all
   of the known implementations currently support it.

   The "diffie-hellman-group14-sha1" method specifies Diffie-Hellman key
   exchange with SHA-1 as HASH, and Oakley Group 14 [RFC3526] (2048bit
   MODP Group), and it MUST also be supported.


I don't like the section name.
Structurally, this section isn't about defining required methods; it's about defining some specific methods that build on the functional description in the section before. IMHO this would work better with separate sections 8.1 and 8.2, defining diffie-hellman-group1-sha1 and diffie-hellman-group14-sha1, resepectively.


In any case, the new method needs to be listed in section 6.5, "Key Exchange Methods".



[NUMBERS] - Add a line in the current Section 4.3

Fine.

[ARCHITECTURE]  (2 changes needed)

(1)
Section 9.2.7 discusses Forward Secrecy and PFS, and it specifically names
diffie-hellman-group1-sha1.  This can be changed to "the key exchange
methods described in Section 8.1 in [TRANS]".

Make it section 8. Really, the statement applies to anything built on that general description, including new methods that may be defined in the future with different groups or hashes.


(2)
A new section 9.2.8 will be needed to discuss the ordering of key exchange
method proposals.  Currently, [TRANS] Section 7.1 states:
-------------------
         kex_algorithms
         Key exchange algorithms were defined above.  The first
         algorithm MUST be the preferred (and guessed) algorithm.  If
         both sides make the same guess, that algorithm MUST be used.
         Otherwise, the following algorithm MUST be used to choose a key
         exchange method: iterate over client's kex algorithms, one at a
         time.  Choose the first algorithm that satisfies the following
         conditions:
         +  the server also supports the algorithm,
         +  if the algorithm requires an encryption-capable host key,
            there is an encryption-capable algorithm on the server's
            server_host_key_algorithms that is also supported by the
            client, and
         +  if the algorithm requires a signature-capable host key,
            there is a signature-capable algorithm on the server's
            server_host_key_algorithms that is also supported by the
            client.
         +  If no algorithm satisfying all these conditions can be
            found, the connection fails, and both sides MUST disconnect.
-------------------
The proposed new section in [ARCH] will say:

   As stated in Section 7.1 of [TRANS], each device will send a list of
   methods for key exchange.  The preferred method will be the first in
   the list.  The preferred method SHOULD be the cryptographically
   strongest method, and the method most likely to satisfy the conditions
   stated in that section.

The conditions are all about negotiating a method which both sides support. The only way to choose an order such that the preferred method is "likely to satisfy" these conditions is to choose one that you think the peer supports, and for which there is a suitable host key algorithm that you think the peer supports. That would imply either waiting for the other side's KEXINIT message (both sides can't do this, and neither should), or making guesses based on the version string.

I propose dropping everything after the last comma.


 Of the two methods defined in Section 8.1 of
   [TRANS], diffie-hellman-group14-sha1 MUST be listed before
   diffie-hellman-group1-sha1 in the kex list.

I don't think we have concensus for this requirement.



- Parameterizing the kex namespace.

I don't feel real strongly about this one way or the other. I don't think we have agreement to do it yet, and I'm not sure how important it is.


- Using SSH"group1" when we mean IKE"group2".  From what I understand,
making changes to this would have interoperability ramifications to the
deployed products.

Yeah; it would suck.


- Referencing DH-GEX.

I don't think this needs to be much more than a line in section 6.5 of the transport draft listing diffie-hellman-group-exchange-sha1 as a RECOMMENDED method, plus a mention somewhere in section 9.2 of the architecture draft.

-- Jeffrey T. Hutzelman (N3NHS) <jhutz+%cmu.edu@localhost>
  Sr. Research Systems Programmer
  School of Computer Science - Research Computing Facility
  Carnegie Mellon University - Pittsburgh, PA




Home | Main Index | Thread Index | Old Index