Re: [Cfrg] Adoption call for draft-harkins-pkex-05

"Blumenthal, Uri - 0553 - MITLL" <uri@ll.mit.edu> Tue, 07 August 2018 19:07 UTC

Return-Path: <prvs=17574c5325=uri@ll.mit.edu>
X-Original-To: cfrg@ietfa.amsl.com
Delivered-To: cfrg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B3674130F25 for <cfrg@ietfa.amsl.com>; Tue, 7 Aug 2018 12:07:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.196
X-Spam-Level:
X-Spam-Status: No, score=-4.196 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=0.001, RCVD_IN_DNSWL_MED=-2.3, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 AMRr-BBhzV09 for <cfrg@ietfa.amsl.com>; Tue, 7 Aug 2018 12:07:31 -0700 (PDT)
Received: from llmx3.ll.mit.edu (LLMX3.LL.MIT.EDU [129.55.12.49]) by ietfa.amsl.com (Postfix) with ESMTP id 4B850130EDD for <cfrg@irtf.org>; Tue, 7 Aug 2018 12:07:30 -0700 (PDT)
Received: from LLE2K16-MBX03.mitll.ad.local (LLE2K16-MBX03.mitll.ad.local) by llmx3.ll.mit.edu (unknown) with ESMTP id w77J7TpE046554 for <cfrg@irtf.org>; Tue, 7 Aug 2018 15:07:29 -0400
From: "Blumenthal, Uri - 0553 - MITLL" <uri@ll.mit.edu>
To: cfrg <cfrg@irtf.org>
Thread-Topic: [Cfrg] Adoption call for draft-harkins-pkex-05
Thread-Index: AQHTzy6gzyFPmT3oYUe8tnKbH45aD6P6kBuAgAAunYCAATiVAIAAELCAgAAciYCAADIigIAADp4AgAAq8ICAANbxgIAAsC8AgAAdtICAAAo1gICz6wcAgAHYlICAAZ1XgP//xTYA
Date: Tue, 07 Aug 2018 19:07:28 +0000
Message-ID: <5C97C8AD-3A1D-4CB9-9149-50B14946AFF3@ll.mit.edu>
References: <5ACA0006.4020809@isode.com> <810C31990B57ED40B2062BA10D43FBF501C515B8@XMB116CNC.rim.net> <810C31990B57ED40B2062BA10D43FBF501C5168A@XMB116CNC.rim.net> <810C31990B57ED40B2062BA10D43FBF501C51B18@XMB116CNC.rim.net> <16affdfc-df9a-a883-e0d6-dd52efee15e4@lounge.org> <CAL02cgT72J=cboruKiHnF4BP7ffaDfae=JeoYDJJfjenF4wC8Q@mail.gmail.com> <fe239e8a-0a64-4b8b-7dba-f38fcfcdc4fd@lounge.org> <CAL02cgRy7M8AjQySy=1njavj+cyxPvQe-n1f+N4xVc_GZFwdNA@mail.gmail.com> <90c10953-6550-09d0-642e-e84710b706cf@lounge.org> <CAL02cgTF6E697t+twXwbkrzZ7OHsFPh--W_NaT5-f0VJ=Jo7Tg@mail.gmail.com> <e186b642-7282-3bfe-3da1-f68e4c3b687c@lounge.org> <CAL02cgQc2HJ0bOZzOc1Q9iqX0-E-PN5qYqW6=iWGE3iggdRQUA@mail.gmail.com> <CABkgnnWSNiM6SrbhFuAptRaRpNGAOtQEiG1RtDXXMUbcBV_tGQ@mail.gmail.com> <CABcZeBOyb9TOZiKSuh_yPHoucQ16gzkv+Kg4FqD1rsR4Tp74gQ@mail.gmail.com> <493c5403-19e6-d620-5bb8-22ab2b9fbfb0@lounge.org> <CABcZeBNETzotkk1bo8JygP_UxvL3x4Agk6-XmgHzuX2mUCGCdQ@mail.gmail.com>
In-Reply-To: <CABcZeBNETzotkk1bo8JygP_UxvL3x4Agk6-XmgHzuX2mUCGCdQ@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/10.f.0.180709
x-originating-ip: [172.25.1.90]
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha256"; boundary="B_3616499248_1793070249"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-08-07_07:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1807170000 definitions=main-1808070192
Archived-At: <https://mailarchive.ietf.org/arch/msg/cfrg/InamxceAtuHp54ziNO854RpUgcs>
Subject: Re: [Cfrg] Adoption call for draft-harkins-pkex-05
X-BeenThere: cfrg@irtf.org
X-Mailman-Version: 2.1.27
Precedence: list
List-Id: Crypto Forum Research Group <cfrg.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/cfrg>, <mailto:cfrg-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cfrg/>
List-Post: <mailto:cfrg@irtf.org>
List-Help: <mailto:cfrg-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/cfrg>, <mailto:cfrg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Aug 2018 19:07:36 -0000

Considering the usefulness of PKEX on one hand, and the fact that the benefits of security proofs in general are limited in practice – I support adoption of this document/protocol by CFRG.

 

(Yes, all things equal – it’s better to have security proofs than not to… But to me at least absence of the proofs is not necessarily a show-stopper.)

 

From: Cfrg <cfrg-bounces@irtf.org> on behalf of Eric Rescorla <ekr@rtfm.com>
Subject: Re: [Cfrg] Adoption call for draft-harkins-pkex-05

 

Dan,

 

I'm not sure what your argument is here. I agree that it's not like there's some fully worked out alternative proposal, but I don't think that's an argument for adopting this one. If your argument is that there's nothing mature enough here to take on, you'll get no argument from me.

 

-Ekr

 

 

 

 

 

On Mon, Aug 6, 2018 at 10:58 AM, Daniel Harkins <dharkins@lounge.org> wrote:


 About "commodity tools", there were two complaints raised:

  1. PKEX hashes the user identity with the password and uses the result
     with the role-specific constant while SPAKE2 does not;
  2. PKEX should just have a generic proof-of-possession protocol after the PAKE.

The implication being you combine these two and voila, something better than PKEX
because it's just using known tools to do this and is not rolling new crypto.

  Regarding the first, it's a draft that will be a work item of the research
group. If the consensus of the group is to edit the draft then the draft gets
edited to reflect the consensus of the group.

  Regarding the second, the suggestion was to do this:

    A->B: SPAKE-Kex
    B->A: SPAKE-Kex, SPAKE-Confirm, {ID_B, Pub_B, Eph_B}K_spake_B
    A->B: SPAKE-Confirm, {ID_A, Pub_A, Eph_A}K_spake_A, MAC(K_DH_A,transcript}
    B->A: MAC(K_DH_B, transcript)

Now I'm pretty sure that is not a generic commodity tool for doing proof-of-possession
so I'm not sure what complaint is. That proof-of-possession is more complicated than
what PKEX does, has more moving parts in the form of new ephemeral keys, does not
actually seem to prove possession of the private key, and I'd wager does not have a
security proof (Eric's final complaint about PKEX). 

  The request is not to rubber stamp the imprimatur of the CFRG on a document,
it is to adopt a document as a work item of the research group. With that in mind,
I have updated PKEX to incorporate the first suggestion (don't hash the ID with the
password). The current version is -06, it's in the repository. Please take a look and
consider its adoption.

  thanks,

  Dan.

On 8/5/18 6:47 AM, Eric Rescorla wrote:

I concur with Richard and Martin. Given that this will happen only infrequently, what's the advantage over plugging together commodity tools.

 

FWIW, while I recognize that the CFRG does not exist solely to support IETF protocols, I'm not seeing a lot of demand for this in the IETF.

 

In addition to the above, I note that the final line of the security considerations says "There is no proof of security of PKEX at this time." That seems like a pretty big concern. We're moving towards wanting security proofs for IETF protocols, and I'd generally expect that a lot of the value of CFRG is that it would produce primitives with high levels of assurance.

 

For these reasons, I would not support adoption.

 

-Ekr

 

 

On Thu, Apr 12, 2018 at 7:15 PM, Martin Thomson <martin.thomson@gmail.com> wrote:

Richard has summarized my own reservations with this and the
composition of existing primitives makes a lot of sense.  We're seeing
a relative explosion in the number of cryptographic tools available of
late, and this is a clear example of where we can make an engineering
decision to use existing tools rather than build new ones.  I
recognize that this isn't the IETF, but that doesn't make that any
less valid a choice.

FWIW, the lack of support for anything other than DSA and ECDSA is
also a major problem. DSA is basically non-existent in practice.  What
about Ed25519/Ed448?


On Fri, Apr 13, 2018 at 11:38 AM, Richard Barnes <rlb@ipv.sx> wrote:
>
>
> On Thu, Apr 12, 2018 at 7:52 PM, Dan Harkins <dharkins@lounge.org> wrote:
>>
>>
>>
>> On 4/12/18 6:21 AM, Richard Barnes wrote:
>> [snip]
>>
>>
>> I guess what I don't understand here is the benefit of conjoining the
>> primitives rather than composing them.  It seems like you would get the same
>> effects here in the same number of RTTs with a straightforward combination
>> of PAKE, sending identities, and a proof-of-possession protocol [1], all of
>> which are already well-established.  Instead, you've mushed them all
>> together.  That seems like it has some costs, e.g., the restriction to ECDSA
>> when with a more composed design you could support arbitrary DH or signing
>> keys.  What are the corresponding benefits?
>>>
>>>
>>>   I'm not sure where the mashup is. You have basically described PKEX. It
>>> does
>>> SPAKE2 and then it sends identities and a proof of possession protected
>>> by the
>>> PAKE shared secret.
>>
>>
>> What I mean is that in addition to just using the PAKE, you're also
>> changing its internals:
>>
>> - Instead of using the password as input, PKEX hashes in the identities
>>
>>
>>   So? The password is still used. Are you saying this is not SPAKE2
>> anymore?
>>
>> - The key shares from SPAKE2 are re-used for the proof of possession
>>
>>
>>   There needs to be some demonstration that the key is used "live" in the
>> exchange
>> otherwise you're not really proving possession. In your sketch below
>> (which I
>> admittedly don't understand 100%) you are introducing yet another
>> Diffie-Hellman
>> with Eph_A and Eph_B which I guess are used with the private analogs of
>> Pub_B
>> and Pub_A, respectively, to produce K_DH_B and K_DH_A, respectively.
>>
>>   I don't see the value of treating the PAKE a closed some black box.
>
>
> The benefits are the typical "don't roll your own crypto" benefits --
> generality, code re-use, and analysis re-use.  If you have a general "insert
> proof of possession here" slot, you can address keys from any DH group (even
> if it can't do SPAKE) or even signing keys.   You can take an SPAKE
> implementation that has a "password in, key out" interface and re-use it.
> And when you're trying to prove the properties of the system, you can treat
> the "black box" sub-units as things with known properties; you don't have to
> worry about whether re-using a key share will undermine some property.
>
> It seems like you're trading off 1 DH key generation per side (the
> incremental cost of the sketch below over PKEX) against a lot of work to
> analyze this thing and more difficulty implementing.  I'm just saying that
> trade-off doesn't seem like a good deal to me.  (If I were the chairs, I
> might consider whether this merits the group's time, given that the can be
> solved with existing primitives at not much cost.)  If others feel it is
> worthwhile, though, I'm not going to stand in the way.
>
> --Richard
>
>
>>
>> It already
>> has a perfectly good ephemeral Diffie-Hellman share which I am putting to
>> good use
>> instead of ignoring which necessitates generation of yet another ephemeral
>> Diffie-Hellman share.
>>
>> You're not treating the PAKE as a box that takes a password on one side
>> and emits a key on the other side.
>>
>>
>>>
>>> The limitations are that the two sides have to be exchanging
>>> keys from the same group and since they've already agreed on a group for
>>> their
>>> identity keys then they have to use the same one for the PAKE. Those were
>>> not
>>> seen as serious issues because such a restriction may already be imposed
>>> on the
>>> subsequent key exchange protocol (e.g. MQV), and it obviates the need to
>>> discuss
>>> what it means to exchange, for instance, a p521 public key over a PAKE
>>> that uses
>>> brainpool256. It cuts down on problematic options. That's the same reason
>>> that
>>> the hash algorithm and SIV key length are determined by the prime
>>> defining the
>>> group, less options that might be used poorly means a more robust and
>>> idiot-proof
>>> protocol.
>>
>>
>> I'll grant that you do get more rigidity from the conjunction.  But I'm
>> not sure that this is more effective than simply expressing the requirement
>> in prose.
>>
>>
>>>
>>>
>>>   Also, there is no restriction on ECDSA.
>>
>>
>> Maybe you should revise this text then :)
>>
>> """
>> Due to the nature of the exchange, only DSA ([DSS]) and ECDSA
>>    ([X9.62]) keys can be exchanged with PKEX.
>> """
>>
>>
>>   Right, it expressly includes DSA keys.
>>
>> And maybe add a clearer explanation than "due to the nature of the
>> exchange".
>>
>>
>>   OK, good comment. That is overly vague.
>>
>>   Dan.
>>
>> --Richard
>>
>>
>>>
>>> In fact, Appendix A.2 has the SPAKE2
>>> role-specific elements for four standard DH groups and the Appendix talks
>>> about
>>> how to generate role-specific elements for other groups not enumerated.
>>>
>>> --Richard
>>>
>>> [1] Sketch:
>>>
>>> A->B: SPAKE-Kex
>>> B->A: SPAKE-Kex, SPAKE-Confirm, {ID_B, Pub_B, Eph_B}K_spake_B
>>> A->B: SPAKE-Confirm, {ID_A, Pub_A, Eph_A}K_spake_A, MAC(K_DH_A,
>>> transcript}
>>> B->A: MAC(K_DH_B, transcript)
>>>
>>> Note that at this point, it's starting to look simpler just to do TLS!
>>>
>>>
>>>   It's not really. There is running code for this protocol (and not just
>>> by
>>> me) and it's much simpler than TLS.
>>>
>>>   regards,
>>>
>>>   Dan.
>>>
>>>
>>
>>
>
>

> _______________________________________________
> Cfrg mailing list
> Cfrg@irtf.org
> https://www.irtf.org/mailman/listinfo/cfrg
>

_______________________________________________
Cfrg mailing list
Cfrg@irtf.org
https://www.irtf.org/mailman/listinfo/cfrg

 



_______________________________________________
Cfrg mailing list
Cfrg@irtf.org
https://www.irtf.org/mailman/listinfo/cfrg
 


_______________________________________________
Cfrg mailing list
Cfrg@irtf.org
https://www.irtf.org/mailman/listinfo/cfrg