Re: [Cfrg] Wi-Fi Alliance Device Provisioning Protocol (DPP) - Draft Released for Public Review and Comments

Andy Lutomirski <luto@amacapital.net> Wed, 31 August 2016 19:25 UTC

Return-Path: <luto@amacapital.net>
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 CE30A12D73C for <cfrg@ietfa.amsl.com>; Wed, 31 Aug 2016 12:25:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=amacapital-net.20150623.gappssmtp.com
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 ZHzMaGhjJ97r for <cfrg@ietfa.amsl.com>; Wed, 31 Aug 2016 12:25:57 -0700 (PDT)
Received: from mail-ua0-x233.google.com (mail-ua0-x233.google.com [IPv6:2607:f8b0:400c:c08::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7028D12D73E for <cfrg@irtf.org>; Wed, 31 Aug 2016 12:25:57 -0700 (PDT)
Received: by mail-ua0-x233.google.com with SMTP id l94so106703430ual.0 for <cfrg@irtf.org>; Wed, 31 Aug 2016 12:25:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amacapital-net.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=fTXk9aLns5YgALBEFEUv6hG0DnBKguFJxQrpZOUTe7s=; b=f2eaxkXCp6XBTkffw/ng/Cxg3O5Iv1GxpuQLws/w08eUO5k9pXKRV3lIu3MvoFt5JU HeRIiVZnZFxaRLth/ZrCzqBEgX8UnjFg4pP4MQfMANrbb06JSsMWF3qfrKaQtMarMW/P R4ZQBVHK2C09cvFhvT9CH9fmt7t4yEcFb1rdzAuhdeGQOSBdbJaxkL+7cG+KoH5ZMAyz wC6DFPb7HHdqJghrpt9dzDO2vKy61fdWNnSedG27Fluhe4N+GnOsyOt0PYP37Q+tSN6w Hxe0wb2MD2ltGOqak2rCGsuQfWmGJAvOzqg6DwAZtj3DR6CvFCE37N5dsfeopVtcsGwR XJBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=fTXk9aLns5YgALBEFEUv6hG0DnBKguFJxQrpZOUTe7s=; b=HwuptQLOeTsAWyJB2721MnnF/eRcydhjDptWZkoOaFCwN4uWT6+si2bCQmw/mvoqwc MhzFxhqBd3I+ljRGc7bOj7bwqvSCQsxdWfLZ1buo8ofbGSNwDloCRkIBTdhr63P55YHD qdEBrKRh5dK5JwOPP9+h9d1l1gyz9Ci44WBkQSQABRayCeX2tF4EyOi7mh9ihZ2xUv+K jAUXO8G9AlhJiaki8BvAONKZ9aaWDl6XzuB+oMC4RXG1h9LVtIsjUskaZ0KKrIDTHLM0 0GF0WweH2aDirWefxP3Cb70SOfTroRhtPcLtRM569C+duuS7RT1igLQNLdvI2X+IJRyf XP9w==
X-Gm-Message-State: AE9vXwMj2MPqKPCGXkyB/DSS/rHYJfhZAYbbsyBbkqybVZrxngcPWjzXDAL+HLSt7Geq9GK0XnoDNXg5NW3uvwva
X-Received: by 10.31.165.136 with SMTP id o130mr6917188vke.9.1472671556225; Wed, 31 Aug 2016 12:25:56 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.103.76.146 with HTTP; Wed, 31 Aug 2016 12:25:35 -0700 (PDT)
In-Reply-To: <a120d8fb-c493-c6ea-fdd8-8ab9ebb7e5f4@lounge.org>
References: <b6b2e03faf504238b8681284fc72a1dd@SC-EXCH03.marvell.com> <CALCETrVmSHv9=aNZYudU012UhuSNSJJaZX2CFa++o4nYA=WtPg@mail.gmail.com> <D3EB69B5.9C1EE%paul@marvell.com> <a120d8fb-c493-c6ea-fdd8-8ab9ebb7e5f4@lounge.org>
From: Andy Lutomirski <luto@amacapital.net>
Date: Wed, 31 Aug 2016 12:25:35 -0700
Message-ID: <CALCETrXatKzPCqrbefbO9S1=orPEvOTNtRz1XsfDB691mDiuGg@mail.gmail.com>
To: Dan Harkins <dharkins@lounge.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/cfrg/44O7-WAUs59u3cWGY6L0xLCN7d4>
Cc: "t2trg@irtf.org" <t2trg@irtf.org>, "cfrg@irtf.org" <cfrg@irtf.org>, "adrian.p.stephens@ieee.org" <adrian.p.stephens@ieee.org>, "lear@cisco.com" <lear@cisco.com>
Subject: Re: [Cfrg] Wi-Fi Alliance Device Provisioning Protocol (DPP) - Draft Released for Public Review and Comments
X-BeenThere: cfrg@irtf.org
X-Mailman-Version: 2.1.17
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: Wed, 31 Aug 2016 19:26:00 -0000

On Tue, Aug 30, 2016 at 10:49 PM, Dan Harkins <dharkins@lounge.org> wrote:
>
>
> On 8/30/16 5:46 PM, Paul Lambert wrote:
>>>
>>> Section 5.5: Is the PKEX protocol publicly documented anywhere?  I'm
>>> concerned that the crypto here is highly suboptimal.
>>
>> Yes, I¹m not a fan of PKEX in DPP and tried to have it removed. It¹s not
>> been well reviewed, it¹s really hard to review (due to embedding in
>> 802.11) and it¹s just the wrong mechanism (PAKE) for the desired user
>> experience.
>> However,it an interesting design where a PAKE has been extended to provide
>> both peers with authenticated public keys.  The shared passphrase
>> effectively introduces two longer term pubic keys. It¹s a significant
>> design improvement over a typical PAKE that only establishes a shared
>> symmetric key. PKEX should get some review and get used where appropriate
>> or we should be working on similar extensions to PAKEs to authenticate
>> long term public keys.
>>
>> The specification for PKEX is available in two parts:
>> 1) the base SAE protocol is described in IEEE 802.11
>>
>> http://www.ieee802.org/11/private/Draft_Standards/11mc/Draft%20P802.11REVm
>> c_D8.0.pdf
>
>   PKEX has nothing to do with the SAE protocol. And it is not even in the
> draft REVmc document you refer to.
>>
>>         This is a IEEE 802.11 member private site, but I¹ve gotten
>> agreement from
>> the chair that he will provide access to "security researchers²
>>         You¹ll have to contact Adrian Stevens (IEEE 802.11 Chair -
>> adrian.p.stephens@ieee.org) to get the private area password
>> 2) the extension to create PKIX is in IEEE 802.11ai (fragments of text
>> that will later be incorporated into 802.11)
>>         This is also on the private site:
>> http://www.ieee802.org/11/private/index.shtml
>
>   This (802.11ai) is where PKEX is defined.
>>
>> IEEE 802.11 keeps draft specifications private, but the contribution
>> archive is open: https://mentor.ieee.org/802.11/documents
>> You can see some of it¹s structure by looking at:
>> https://mentor.ieee.org/802.11/documents?is_dcn=PKEX
>>
>>
>>> For example, the
>>> text mentions that:
>>>
>>>> Using this bootstrapping technique more than once with a different code
>>>> but the same bootstrapping key can enable a dictionary attack (to
>>>> recover the code) by the entity that obtained the bootstrapping key the
>>>> first time.
>
>   Think of EKE, a password is used to encrypt a public key to peer1. Now
> some
> time later the same public key is sent to peer2 using a different password.
> In this case peer1 would be able to do an off-line dictionary attack to
> recover
> the password used in the exchange to peer2. That's what is intended by the
> text
> in question.

If by EKE you mean DH-EKE, then I think this just means you're doing
EKE wrong.  For DH-EKE (which is actually secure), you send a brand
new share every time.  Given my very, very limited understanding of
what is proposed here (since I haven't gone and asked the editors for
all the relevant documents), the protocol being used doesn't really
achieve anything useful.

But from reading the draft DPP document, I can't even tell what the
workflow is.  Who generates a password, who types it where, and who
sends what?

And can someone explain what security properties the protocol is
trying to achieve?

>>>>
>>>> A well designed short authentication string system (e.g. ZRTP's)
>>>> should have no such issues.
>>
>> Interesting Š yes, a short authentication string is good idea for some
>> user cases (Rich-UI device to Rich-UI device). I¹ll look at it some more Š
>
>   That is exactly the case here. A short authentication string is used to
> bootstrap trust in a peer's public key.
>

Properly designed short authentication strings have very nice security
properties.  An online attacker has a 1/N chance of spoofing an
authentication per actual user interaction.  An offline attacker can't
get anything at all (unless they're willing to brute-force the
underlying high-entropy crypto).  Look at ZRTP for an example.

PKEX, as vaguely described here, doesn't sound like a properly
designed short authentication string.  Sorry.

--Andy