Re: [saag] AD review of draft-iab-crypto-alg-agility-06

Russ Housley <housley@vigilsec.com> Thu, 03 September 2015 21:16 UTC

Return-Path: <housley@vigilsec.com>
X-Original-To: saag@ietfa.amsl.com
Delivered-To: saag@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6E7AD1B2D74 for <saag@ietfa.amsl.com>; Thu, 3 Sep 2015 14:16:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.9
X-Spam-Level:
X-Spam-Status: No, score=-101.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, USER_IN_WHITELIST=-100] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uWDoU5so3NUB for <saag@ietfa.amsl.com>; Thu, 3 Sep 2015 14:16:57 -0700 (PDT)
Received: from odin.smetech.net (x-bolt-wan.smeinc.net [209.135.219.146]) by ietfa.amsl.com (Postfix) with ESMTP id CCF651B2A0B for <saag@ietf.org>; Thu, 3 Sep 2015 14:16:56 -0700 (PDT)
Received: from localhost (unknown [209.135.209.5]) by odin.smetech.net (Postfix) with ESMTP id 5703CF2412D for <saag@ietf.org>; Thu, 3 Sep 2015 17:16:46 -0400 (EDT)
X-Virus-Scanned: amavisd-new at smetech.net
Received: from odin.smetech.net ([209.135.209.4]) by localhost (ronin.smeinc.net [209.135.209.5]) (amavisd-new, port 10024) with ESMTP id 2k3LpuvLnOXV for <saag@ietf.org>; Thu, 3 Sep 2015 17:15:28 -0400 (EDT)
Received: from [192.168.2.100] (pool-108-51-128-219.washdc.fios.verizon.net [108.51.128.219]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by odin.smetech.net (Postfix) with ESMTP id 10DCDF2412B for <saag@ietf.org>; Thu, 3 Sep 2015 17:16:25 -0400 (EDT)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Apple Message framework v1085)
From: Russ Housley <housley@vigilsec.com>
In-Reply-To: <20150902212858.GM9021@mournblade.imrryr.org>
Date: Thu, 3 Sep 2015 17:16:14 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <A4F863D6-6917-40FD-B205-36E909015A98@vigilsec.com>
References: <55A938F1.9090404@cs.tcd.ie> <20150720044849.GY28047@mournblade.imrryr.org> <B866063D-C1A8-4286-83E1-9EBAE7994297@vigilsec.com> <20150902212858.GM9021@mournblade.imrryr.org>
To: saag@ietf.org
X-Mailer: Apple Mail (2.1085)
Archived-At: <http://mailarchive.ietf.org/arch/msg/saag/Hj8xRiIYDpr9gi3T-yzzcJ_E9M8>
Subject: Re: [saag] AD review of draft-iab-crypto-alg-agility-06
X-BeenThere: saag@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Security Area Advisory Group <saag.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/saag>, <mailto:saag-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/saag/>
List-Post: <mailto:saag@ietf.org>
List-Help: <mailto:saag-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/saag>, <mailto:saag-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 03 Sep 2015 21:16:59 -0000

Viktor:

{ Dropping things where we have reached agreement. }

>>> I find section 2.5 too vague, not sure what point it is really
>>> trying to make.
>> 
>> I'm not sure how to handle this comment.  I guess the point that I am
>> trying to make is that there can be too many levels of indirection and
>> still preserve the integrity of the first part of the negotiation.
> 
>    2.5.  Cryptographic Key Management
> 
>       Traditionally, protocol designers have avoided more than one approach
>       to key management because it makes the security analysis of the
>       overall protocol more difficult.  When frameworks such as EAP and
>       GSSAPI are employed, the key management is very flexible, often
>       hiding many of the details from the application.  This results in
>       protocols that support multiple key management approaches.  In fact,
>       the key management approach itself may be negotiable, which creates a
>       design challenge to protect the negotiation of the key management
>       approach before it is used to produce cryptographic keys.
> 
>       Protocols can negotiate a key management approach, derive an initial
>       cryptographic key, and then authenticate the negotiation.  However,
>       if the authentication fails, the only recourse is to start the
>       negotiation over from the beginning.
> 
>       Some environments will restrict the key management approaches by
>       policy.  Such policies tend to improve interoperability within a
>       particular environment, but they cause problems for individuals that
>       need to work in multiple incompatible environments.
> 
> Reading section 2.5 again, and being well versed in both TLS and
> GSSAPI (I commit code to both OpenSSL and Heimdal), I still have
> no idea what it is saying.  In what sense is "key management" (which
> for me means how keys are deployed and rotated) "negotiated" in
> the protocol.
> 
> Is this talking about "Key Exchange" rather than "Key Management"?
> Is the problem you have in mind that when, for example, negotiating
> "GSSAPI" in SASL one might not know what that entails before deciding
> to use GSSAPI over some other SASL mechanism?
> 
> Whatever this section is trying to say, I'm just not smart enough
> to figure it out, even with the hint in this response.

Perhaps the section heading has been the problem all along.

Yes, the use of GSSAPI by SASL is another example.  In fact RFC 4422 makes the point:

   Note that the mechanism negotiation is not protected by the
   subsequent authentication exchange and hence is subject to downgrade
   attacks if not protected by other means.

Does "Cryptographic Key Establishment Techniques" work better for you?

>>> 	   Institutions, being large or dominate users within a large
>>> 	   user base, can assist by coordinating the demise of an
>>> 	   algorithm suite, making the rollover easier for their own
>>> 	   users as well as others.
>>> 
>>>   Somehow the meaning of the above eludes me.  It needs a rewrite.
>> 
>> The point is that big customers can help with the social part of the
>> transition by putting pressure on their suppliers.  I'm not sure what part
>> to change to make that more clear for you.
> 
>    Dominant, or otherwise sufficiently large, market players can ...

How about this:

   Dominant players in a market, or others with a sufficiently large
   user base, can assist by coordinating the demise of an algorithm
   suite, making the transition easier for their own users as well as
   others.

> 
>>> Section 2,7:
>>> 
>>>      When selecting or negotiating a suite of cryptographic algorithms,
>>>      the strength of each algorithm SHOULD be considered.  The algorithms
>>>      in a suite SHOULD be roughly equal;
>>> 
>>>   s/roughly equal/comparably strong/ or (to really spell it out):
>>>                  /have comparable best known attack work-factors/
>>> 
>>>   However if a particular element of a suite is believed stronger
>>>   than the rest, we don't need to get too pedantic about that.
>>>   Slightly lop-sided choices are OK if the stronger outlier is
>>>   adequately fast, and weaker variants are not widely used.
>> 
>> That was the point of "roughly".  Also, the second paragraph bring in the point about performance being a factor.
>> 
>> How about this:
>> 
>>   When selecting or negotiating a suite of cryptographic algorithms,
>>   the strength of each algorithm SHOULD be considered.  The algorithms
>>   in a suite SHOULD be roughly equal; however, the security service
>>   provided by each algorithm in a particular context needs to be
>>   considered when making the selection.  Algorithm strength needs to be
>>   considered at the time a protocol is designed.  It also needs to be
>>   considered at the time a protocol implementation is deployed and
>>   configured.  Advice from from experts is useful, but in reality, such
>>   advice is often unavailable to system administrators that are
>>   deploying a protocol implementation.  For this reason, protocol
>>   designers SHOULD provide clear guidance to implementors, leading to
>>   balanced options being available at the time of deployment.
> 
> I do not think the greater length makes it clearer, perhaps the
> original shorter version will do.

This is the text that went to the IESG yesterday, so if this is working, let's keep it.

>>>  Overall I think this text is wrong to weasel out.  Failure to
>>>  negotiate the DH parameter size has proved rather problematic
>>>  in TLS, with servers needing to guess at universally inteoperable
>>>  prime bit length.  This is being addressed, with the DH groups
>>>  extension now supporting standard prime groups as well as standard
>>>  EC curves.  Underspecified algorithms MUST NOT be used.  Either
>>>  fix the parameters, or negotiate them.
>> 
>> You raise an important point.  I suggest:
>> 
>>   Performance is always a factor is selecting cryptographic algorithms.
>>   Performance and security need to be balanced.  Some algorithms offer
>>   flexibility in their strength by adjusting the key size, number of
>>   rounds, authentication tag size, prime group size, and so on.  For
>>   example, TLS cipher suites include Diffie-Hellman or RSA without
>>   specifying a particular public key length.  If the algorithm
>>   identifier or suite identifier named a particular public key length,
>>   migration to longer ones would be more difficult.  On the other hand,
>>   inclusion of a public key length would make it easier to migrate away
>>   from short ones when computational resources available to attacker
>>   dictate the need to do so.  The flexibility on asymmetric key length
>>   has lead to interoperability problems, and to avoid these problems in
>>   the future any aspect of the algorithm not specified by the algorithm
>>   identifier MUST be negotiated, including key size and parameters.
> 
> Better, but of course negotiating the strength of long-term public
> keys is generally not possible, the server can't choose these on
> the fly.  So the MUST is perhaps too strong.  Rather, protocol
> designs SHOULD try to avoid unilateral choices of cryptographic
> parameters to the extent possible.  Thus we should encourage
> specification of a small set of explicit sizes or set of explicit
> groups, ... and then negotiate their use.

Stephen did not think the MUST was appropriate for a BCP.

The current wording is:

   Performance is always a factor is selecting cryptographic algorithms.
   Performance and security need to be balanced.  Some algorithms offer
   flexibility in their strength by adjusting the key size, number of
   rounds, authentication tag size, prime group size, and so on.  For
   example, TLS cipher suites include Diffie-Hellman or RSA without
   specifying a particular public key length.  If the algorithm
   identifier or suite identifier named a particular public key length,
   migration to longer ones would be more difficult.  On the other hand,
   inclusion of a public key length would make it easier to migrate away
   from short ones when computational resources available to attacker
   dictate the need to do so.  The flexibility on asymmetric key length
   has led to interoperability problems, and to avoid these problems in
   the future any aspect of the algorithm not specified by the algorithm
   identifiers need to be negotiated, including key size and parameters.

Russ