I came across some password-based authenticated key exchange (PAKE) protocols that are based on the smooth projective hash function (SPHF) in the standard model. And I checked some related works, and most of them only considered the dictionary attack and forward security. I am wondering if this kind of PAKE via SPHF could prevent replay attacks? If it can prevent, why? Otherwise, how to fix this problem?
And I checked some related works, and most of them only considered the dictionary attack and forward security.
Actually, a PAKE has two security goals:
That someone cannot recover the password from a number of exchanges (with any greater advantage than being able to test $N$ potential passwords using $N$ active attacks).
That someone will not be authenticated without knowing the password (or having a correct guess to it).
Both of these needs to be true even if the adversary has the transcripts of a large number of successful authentications.
The "replay attack" falls in an attempt to violate the second security property. If the related works did not specifically call that out, the security proofs they presented still need to address that (and if they don't, well, that's a hole in the proof).
All of the PAKEs I'm familiar with handle replay attacks; most of them because the initial message from both sides include some randomness that is different with each exchange, and which is stirred into the later computations; this implies that straight-forward replay attacks will fail. The exception is Opaque, which has a different defense against replay attacks; the difference is on the replay on the client side, The adversary can indeed replay the initial message (and get the repeat of the server side message; it doesn't stir in any randomness for this part of the exchange), however the adversary cannot then retrieve the client's private key (stored in some data encrypted with a key that the adversary does not know), and hence will fail in the next stage of the protocol.