Re: [Cfrg] [saag] Question regarding CFRG process

Trevor Perrin <> Fri, 13 December 2013 10:29 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 135A91AE1E5 for <>; Fri, 13 Dec 2013 02:29:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.978
X-Spam-Status: No, score=-1.978 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 0aF1RvaINQCX for <>; Fri, 13 Dec 2013 02:29:28 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id E1FB11AE1D0 for <>; Fri, 13 Dec 2013 02:29:27 -0800 (PST)
Received: by with SMTP id hq4so2026390wib.1 for <>; Fri, 13 Dec 2013 02:29:21 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=xJtJNRyUzrpp+pYiY85WWJVK0advwfW3WSaKnEQU9hc=; b=fHOR/REFFrUzWxZLvdzIZ9ACAMeJnYmhE+NZWC6802sTMyv3dLcjlzBvOdj8Ak21jn +7OntKWn/gDoji11FQIn9zEcBEQXx2AuP/YrluedmHwbHpADsUc4Hj86T5h7WjHxrpcj BBCoUGQvzNW2RI2wWzDWoVAK/vlPvaE+TXtrJ4t5hBLTZFxOVABvQV+LHIeJgUSjE0Fg KEE4WpynfVyh/4HNtmuSll91bShLGXZxKhcqlHOURhjB2Hr5WbTi/IANhLN1bWubyWe9 jX5wHoWfyQ4PA+2RIrIzdzzvNYDXNYi2wevLoDzNfMYYjiud5CcEn2vbp91SHTsx2lg5 I9vA==
X-Gm-Message-State: ALoCoQlzuIs1vHw8fNQD/CsIMCrkHoUNWpL+bgEbyT/9oxz3E+GUJhQkLJcNlD16t/l+a6GrcvJ2
MIME-Version: 1.0
X-Received: by with SMTP id dd4mr2313846wib.20.1386930561131; Fri, 13 Dec 2013 02:29:21 -0800 (PST)
Received: by with HTTP; Fri, 13 Dec 2013 02:29:21 -0800 (PST)
X-Originating-IP: []
In-Reply-To: <>
References: <> <>
Date: Fri, 13 Dec 2013 02:29:21 -0800
Message-ID: <>
From: Trevor Perrin <>
To: Dan Harkins <>
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable
Cc:, "" <>,
Subject: Re: [Cfrg] [saag] Question regarding CFRG process
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Crypto Forum Research Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 13 Dec 2013 10:29:33 -0000

Dan, all,

My message was directed at the CFRG chairs.  I believe CFRG consensus
has been misrepresented regarding Dragonfly.

I'd appreciate if the chairs would respond to this.

Regarding Dan's objections to my summary, I attempt to set the record
straight below.

On Thu, Dec 12, 2013 at 5:58 PM, Dan Harkins <> wrote:
>> Below is a summary of all CFRG discussion of Dragonfly.
>> =====
>> Feb 2008
>>  - Dan Harkins proposes early Dragonfly to CFRG
>>  - Scott Fluhrer breaks it
>   An event mentioned in the acknowledgments. Thank you Scott.
> His review and comments have been most helpful.
>> Nov 2011
>>  - David McGrew appoints Kevin Igoe as CFRG co-chair
>   Completely and utterly irrelevant.
>> Dec 2011
>>  - Dan Harkins asks CFRG to look at TLS-PWD, based on Dragonfly
>>  - Scott Fluhrer points out a problem
>   A simple "sanity" check that the an ECC point is not "infinity". Again,
> a good comment.

A crucial security check!

>>  - Adam Back questions necessity of it, and lack of security
>>    analysis
>   He does no such thing. He notices that SRP is not mentioned in the
> draft. Quite true. And he asks what key exchange is being implemented
> because "its harder than it looks". Which is also quite true.

I believe my description is accurate.

>> Jan 2012
>>  - Kevin Igoe's first email to CFRG:
>>    "I really like this idea & can find no problems."
>>  - Jonathan Katz questions lack of security analysis, points out
>>    problems
>   Yes, helpful comments on the draft. The susceptibility to attack under
> the random oracle model is, in fact, mentioned in my slide deck when
> I presented to the CFRG in Paris at IETF 83. It is a highly contrived
> scenario and completely unlikely a real world protocol but it does raise
> the question of making a formal proof in that model.
>   You should link to my slide deck in your next broadside.

The random oracle model is a well-accepted methodology for analyzing
crypto protocols.

The SPEKE protocol, which Dragonfly is based on, has some degree of
formal security proof in the random oracle model.  If this proof does
not carry over to Dragonfly, that's a source of concern:

>> March 2012
>>  - At IETF 83 CFRG meeting, concerns are raised about:
>>    - SPEKE patents
>>    - necessity of a new scheme
>>    - timing attacks
>>    - non-augmented properties
>   Wow, you make it sound as if you were there. But you weren't. And
> your summary is not an accurate description of the meeting.

I wasn't there.  I believe my summary of the minutes is accurate.

> The
> sole mention in the minutes of SPEKE is from me.

Yoav Nir - there are no IPR?  Really?  Is it really enough different
from speke that they won't go after.

> And the "concerns"
> are a recitation of comments received. That's how it works. You get
> comments and you resolve them.

The "concerns" seem critical of the whole enterprise:
 - "there are no IPR?  Really?"
 - "Why the not use what IEEE already had defined in P1363"
 - "The difference between the scheme and SRP.  Here both
    sides need to have same secret."
 - "could you scheme be made to be like SRP."

This don't sound like CFRG approval.  Yet after no significant further
discussion, at IETF 84 the CFRG chair claims:

Kevin Igoe: We approve of it, very clear and usable for general setting.

>> May 2012
>>  - Kevin Igoe points out a limitation due to "hunting-and-pecking"
>   He does no such thing. He just said that if the prime defining the
> curve p = 3 mod 4 that it's easier to compute the square root.

Kevin recommended constraining Dragonfly to elliptic curves over those fields.

This would eliminate Curve25519, and probably some other curves.

>>  - Zhou Sujing and Dan have an exchange that's hard to follow.
>> July 2012
>>  - At IETF 84 TLS meeting (CFRG does not meet):
>>    - Kevin Igoe informs TLS WG, as the CFRG chair:
>>      "We approve of it, very clear and usable for general setting."
>   Also note the comment: "Tie Dragonfly into EST would be very useful"
> Yes, it would.

I appreciate that the CFRG chairs are fond of Dragonfly.

I'd like to understand where this approval comes from.

>> Oct 2012
>>  - Kevin Igoe calls CFRG attention to Dragonfly draft-00
>>  - Jonathan Katz asks for a security proof - there is none
>   Correct. There is no formal proof of security. See my slides from
> IETF 83.

I read Jonathan's re-iteration of this point as expressing concern.

>> Dec 2012
>>  - Kevin Igoe calls CFRG attention to Dragonfly
>>    - raises timing attack issue, proposes 2 fixes, including
>>      rediscovery of Dan's original broken method (2008)
>   This is further discussion on addressing a side channel attack.
> Your attempt to spin this as "broken" is somewhat desperate.

Kevin's paragraph starting "A possible fix" is a rediscovery of the
older Dragonfly technique which Scott Fluhrer broke in 2008.

>>  - Rene Struik points out the error in Kevin's proposal, and
>>    the inefficiency of Dragonfly relative to SPEKE
>   He does no such thing. His "Suppose A and B…" is a recitation of
> a version of SPEKE that does not hash the password into a group in
> the domain parameter set. It's neither here nor there with respect
> to dragonfly.

Rene describes how Kevin's proposal leads to an attack, in the context
of SPEKE.  I agree it would be clearer if he described it in the
context of Dragonfly, but the attack is more or less the same.

> He further goes on to suggest on a check for "point at
> infinity". Which is already part of dragonfly.
>   There is no "error" noted and no "inefficiency" mentioned either.

"...but requires two full scalar multiplications (rather than one
scalar multiplication as, e.g., SPEKE requires)."

>>  - Scott Fluhrer points out the error in Kevin's proposal, and
>>    proposes a flawed "mostly constant time" fix.  Dan and Kevin
>>    embrace it.
>   As noted in the email thread, the described fix was added to the
> draft at the time. Your opinion on it being "flawed" has already been
> noted.

If you've "noted" the significant sidechannel risk, and the simple
mitigation that's been suggested repeatedly (don't mix in the nonces),
why doesn't your latest TLS-PWD (as of hours ago) include that fix?

>> Feb 2013
>>  - draft-01 is uploaded with flawed sidechannel fix
>>    - also quietly fixes security issue reported by Dylan Clarke
>>      and Feng Hao
>   This is a small sub-group attack possible if one does not check
> validity of received elements. All incarnations of dragonfly-- TLS-PWD,
> EAP-PWD and 802.11 already did this. It is entirely my fault that I left that
> crucial step out of the -00 version of the CFRG draft but it is hardly
> a flaw.

I described it as a "security issue", which it is.

>> Apr 2013
>>  - Kevin Igoe mentions a last call for Dragonfly
>>    "The design looks mature, it addresses a real need, and no one
>>     has raised any issues."
>   That's correct. You are included in that "no one".

I don't think that's correct:
 * The design remains immature, with a major problem regarding timing
 * I doubt the design addresses an important need.  There are many
better PAKEs, including SRP, which has been standardized and deployed
in TLS (RFC 5054).  In any case, there is little demand for TLS PAKE.
 * Many issues were raised.

>> May 2013
>>  - Feng Hao asks CFRG to consider J-PAKE (an alternative)
>   Completely irrelevant.

I think it's relevant that CFRG was made aware of other PAKEs, yet
made no effort to perform a comparative analysis, or question whether
Dragonfly was the best tool for the job.

>> July 2013
>>  - Rene Struik points out spec bugs, raises timing attack issue
>>    again
>   "Spec bugs", in other words typos. Yes, he brings up an issue that
> had previously been addressed.

Rene doesn't seem to think the timing attack issue has been properly
addressed, and neither do I.

>>  - IETF 87, CFRG meeting:
>>    - "The author is working on a new (and hopefully final) draft"
>   Sadly, it's not. I have to address the "Spec bugs" and address
> Rene's other comments, none of which demonstrate security flaws.

Rene's last message does, indeed, describe security flaws:

>> Aug 2013
>>  - draft-02 is uploaded with modifications to "hunting-and-pecking"
>   Don't forget comments dealing with internationalization!
>   The change is from a comment received from, if I recall, Russ Housley
> to use the technique from FIPS 186-3 to hide the bias added by the
> modular reduction. Again, a very nice comment, happily accepted.

Another security fix.

>> Sep 2013
>>  - SeongHan Shin asks CFRG to consider AugPAKE (an alternative)
>   Completely irrelevant. (Again, not sure why you're have become such
> a cheerleader for AugPAKE).

I'm not.  There are many PAKEs that are superior to Dragonfly *and*
have a clearer IPR situation:  SPAKE2, DH-EKE, SRP, J-PAKE, AugPAKE,
and probably others.

>> Nov/Dec 2013
>>  - Joe Saloway begins TLS-PWD last call, and informs TLS WG that:
>>    "The underlying cryptographic protocol for TLS-PWD has been
>>    reviewed by the IRTF CFRG group with satisfactory results."
>>  - Uproar on TLS WG:
>>    - Many object to lack of formal security analysis:
>>      Douglas Stebila, Uri Blumenthal, Bodo Moeller, Rene Struik,
>>      Watson Ladd
>   Missing, of course, the caveat "-- except I believe that whenever
> possible the IETF should aim to standardize cryptographic protocols
> that are unencumbered by license fees and patents. If the choice
> arises between a protocol that carries both (provable security and
> Intellectual Property) and a protocol that has neither - I'd strongly
> prefer the latter."

That choice doesn't have to be made.  There are protocols without
current patents *and* with formal security arguments (SPAKE2, DH-EKE,

>>    - Many point out better alternatives:
>>      SeongHan Shin, Robert Ransom, Watson Ladd, Trevor Perrin
>   And you're all free to write up Internet Drafts on them too!

I did, years ago - RFC 5054.  TLS/SRP is a better PAKE than Dragonfly,
has royalty-free IPR, and has been deployed.

>   In fact, SeongHan Shin has been following me around EMU, IPsec,
> CFRG and now TLS doing just that. After I write a dragonfly I-D he
> writes an AugPAKE I-D. Nothing is stopping you from doing it too.
>>    - Security flaws are pointed out by Bodo Moeller and
>>      CodesInChaos
>   Bodo's comment has been addressed. I dispute the use of the term
> "security flaw" to describe it but that is consistent with the rest of
> your email.

The flaw is only present in the TLS-PWD draft, not the CFRG draft.

I don't believe your latest TLS-PWD draft fixes it, however.  You
would have to introduce mandatory-to-implement domain parameters, as
in RFC 5054.

>   CodesInChaos suggested using PBKDF2 to hash the password. This
> really provides no additional benefit,, as I noted in a subsequent
> email (see coWPAtty and family attacks against a protocol that uses
> PBKDF2).

Using an "expensive" password hash is standard practice for
server-side password storage, to mitigate the effect of a server-side

>>    - Rene Struik and Bodo Moeller dispute that CFRG approved this
>   Actually, Rene notes that CFRG has not issued a LC. He does raise
> some comments, many of which are already addressed in the draft
> and he points out the "Spec bug" you allude to earlier. He suggests
> relaxation of one of the restrictions on parameter generation that I
> decline to accept. And he finds some additional typos and an
> erroneous description of point addition. Helpful comments.
>>  - Eric Rescorla (TLS WG chair) states:
>>    "we did have a verbal report back from the chair of the CFRG
>>    that they considered it satisfactory"
>   Indeed.
>   So what you've brought up is that there has been discussion of
> dragonfly on the list and it has, in fact, been reviewed. Quite a few
> comments have been made and resolved, security critical issues have
> been raised and properly addressed.

I agree that Dragonfly has had light review.  Some bugs have been
picked out of the CFRG and TLS drafts, some bugs remain.

What I don't understand is how the CFRG chairs decided the protocol
was "satisfactory".  This seems a decision made by the chairs that
neither reflects CFRG consensus nor was communicated to the broader
CFRG group prior to informing TLS.