Skip to content

Commit dc86a06

Browse files
authored
OPAQUE is an sdPAKE (#448)
1 parent 4b3c6b1 commit dc86a06

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

draft-irtf-cfrg-opaque.md

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: The OPAQUE Asymmetric PAKE Protocol
2+
title: The OPAQUE Augmented PAKE Protocol
33
abbrev: OPAQUE
44
docname: draft-irtf-cfrg-opaque-latest
55
date:
@@ -271,7 +271,7 @@ protocols"
271271

272272
--- abstract
273273

274-
This document describes the OPAQUE protocol, a secure asymmetric
274+
This document describes the OPAQUE protocol, an augmented (or asymmetric)
275275
password-authenticated key exchange (aPAKE) that supports mutual
276276
authentication in a client-server setting without reliance on PKI and
277277
with security against pre-computation attacks upon server compromise.
@@ -296,7 +296,7 @@ TLS is also vulnerable to cases where TLS may fail, including PKI
296296
attacks, certificate mishandling, termination outside the security
297297
perimeter, visibility to TLS-terminating intermediaries, and more.
298298

299-
Asymmetric (or Augmented) Password Authenticated Key Exchange (aPAKE)
299+
Augmented (or Asymmetric) Password Authenticated Key Exchange (aPAKE)
300300
protocols are designed to provide password authentication and
301301
mutually authenticated key exchange in a client-server setting without
302302
relying on PKI (except during client registration) and without
@@ -2265,6 +2265,23 @@ attacker from using this data to mount a server spoofing attack. Supporting impl
22652265
need to consider allowing separate AKE and OPRF algorithms in cases where the HSM is
22662266
incompatible with the OPRF algorithm.
22672267

2268+
## Client Authentication Using Credentials
2269+
2270+
For scenarios in which the client has access to private state that can be persisted across
2271+
registration and login, the client can back up the `randomized_password` variable (as
2272+
computed in {{finalize-request}}) so that upon a future login attempt, the client can
2273+
authenticate to the server using `randomized_password` instead of the original password.
2274+
This can be achieved by supplying an arbitrary password as input to
2275+
`CreateCredentialRequest` in the login phase, and then using `randomized_password` from
2276+
the backup in `RecoverCredentials` (invoked by `GenerateKE3`) rather than computing it from
2277+
the password.
2278+
2279+
This provides an advantage over the regular authentication flow for login
2280+
in that if `randomized_password` is compromised, an adversary cannot use this value to
2281+
successfully impersonate the server to the client during login. The drawback is that it is
2282+
only applicable to settings where `randomized_password` can be treated as a credential
2283+
which can be stored securely after registration and retrieved upon login.
2284+
22682285
# IANA Considerations
22692286

22702287
This document makes no IANA requests.

0 commit comments

Comments
 (0)