Oops, thank you for pointing out my misstatement.  While there is a 
vulnerability with Spake2+, I misremembered the details (I must be getting 
old...)

The actual vulnerability is "if they know the relation between M and P, then 
there's an active attack and allows the attacker to test multiple keys as the 
result of a single exchange".

Here's how it works: the attacker controls the client and tries to log into a 
server (who knows the keys) (and in the TLS context, the client is the Spake2+ 
prover and the server is the Spake2+ verifier, and I'll be using the 
terminology from the Spake2+ RFC)

The attacker controlled client picks an arbitrary value r and sends the server 
X = r*P

The server then selects a random value y and sends back Y = y*P + w0*N

The server then computes:
Z = h*y*(X - w0*M)
V = h*y*L = h*y*w1*P

The server then computes the corresponding transcript TT and the corresponding  
confirmV, which he sends.

Our attacker then breaks the connection and then, for each guess in his 
dictionary, computes the corresponding w0', w1'.  and computes:
Z' = h*(r - w0'*m) * (Y - w0' * N)
V' = h*w1' * (Y - w0' * N)
(where m is the known discrete log of M).

If his guess of the password is correct, then Z=Z' and V=V', and so the 
transcripts TT will match, and hence the so the computed confirmV will match 
what the server sent.  This means the attacker is able to scan through his 
entire dictionary, with doing only one active exchange.

This works because, if w0=w0' and w1=w1', we have:
Z' = h*(r - w0*m) * (Y - w0 * N) = h * (r - w0*m) * y * P = h * y * (X - w0*M) 
= Z
V' = h*w1 * (Y - w0 * N) = h * w1 * y * P = h * y * w1 * P = V

TT (and confirmV) is a function of Z, V and known data, so those can be 
computed.

Hence, while what I originally stated was incorrect, my point remains; by 
solving a single discrete log problem, the security guarantees of the Spake2+ 
(which is that a single active attack would be able to test a single password) 
becomes incorrect.

And, I cannot recommend endorsing a PAKE where solving a single discrete log 
problem breaks the system globally, given there are other PAKE protocols that 
do not have this vulnerability.

________________________________
From: Michael Rosenberg <mrosenberg=40cloudflare....@dmarc.ietf.org>
Sent: Thursday, May 29, 2025 12:03 PM
To: Scott Fluhrer (sfluhrer) <sfluh...@cisco.com>
Subject: Re: [TLS] Comment on draft-bmw-tls-pake13

Could you describe in more detail how finding relation between M and N leads to 
an attack? This paper<https://eprint.iacr.org/2019/1194> says that even in the 
most trivial relation, ie M = N, we have security under the gap squared DH 
assumption.

-Michael

On Mar 14, 2025, at 4:53 AM, Scott Fluhrer (sfluhrer) 
<sfluhrer=40cisco....@dmarc.ietf.org> wrote:

I went through the PAKE draft on TLS 1.3, and while I certainly appreciate the 
use of a PAKE within TLS, I would like to highlight one potential security 
issue that the working group needs to be aware of.

The draft has SPAKE2+ as its sole defined parameter set; SPAKE2+ has a rather 
interesting property that if the attacker can perform a single discrete log 
problem, in particular, compute the discrete log of N to the base of M, that 
is, find k such that kM = N, then the PAKE properties go away.  That is, an 
active attacker can perform a single exchange, and then efficiently run through 
his dictionary of potential passwords and (as long as the correct password is 
in the dictionary) recover the password.

Let me repeat this: if someone can solve a single discrete log problem (for 
example, if he has a slow Cryptographically Relevant Quantum Computer), then 
the attacker can immediately attack any SPAKE2+ implementation using that 
parameter set, anywhere in the world.

If the working group endorses SPAKE2+, then they need to be aware of this, and 
should highlight it in the security considerations.
_______________________________________________
TLS mailing list -- tls@ietf.org<mailto:tls@ietf.org>
To unsubscribe send an email to tls-le...@ietf.org<mailto:tls-le...@ietf.org>

_______________________________________________
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org

Reply via email to