RFC 8125 INFORMATIONAL SECURITY · PAKE · KEY EXCHANGE

PAKE Requirements: Requirements for Password-Authenticated Key Agreement (PAKE) Schemes

What a designer of a password-based key exchange has to get right, and what it has to explain.

On rfc-editor.org ↗
PUBLISHED
April 2017
AUTHORS
J. Schmidt
STREAM
IRTF
REQUIREMENTS IN THE SUMMARY
Eight
STATED AS MUST
REQ1 and REQ8
STATED AS SHOULD
REQ2, REQ3 and REQ4
STATED AS MAY
REQ5, REQ6 and REQ7
FIRST PAKE DESCRIBED
EKE, the Encrypted Key Exchange
SCHEME THAT ENCRYPTS A NONCE
PACE
DOI
10.17487/RFC8125

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Research Task Force (IRTF)                           J. Schmidt
Request for Comments: 8125                     secunet Security Networks
Category: Informational                                       April 2017
ISSN: 2070-1721


  Requirements for Password-Authenticated Key Agreement (PAKE) Schemes

Abstract

   Password-Authenticated Key Agreement (PAKE) schemes are interactive
   protocols that allow the participants to authenticate each other and
   derive shared cryptographic keys using a (weaker) shared password.
   This document reviews different types of PAKE schemes.  Furthermore,
   it presents requirements and gives recommendations to designers of
   new schemes.  It is a product of the Crypto Forum Research Group
   (CFRG).

Status of This Memo

   This document is not an Internet Standards Track specification; it is
   published for informational purposes.

   This document is a product of the Internet Research Task Force
   (IRTF).  The IRTF publishes the results of Internet-related research
   and development activities.  These results might not be suitable for
   deployment.  This RFC represents the consensus of the Crypto Forum
   Research Group of the Internet Research Task Force (IRTF).  Documents
   approved for publication by the IRSG are not a candidate for any
   level of Internet Standard; see Section 2 of RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc8125.

Copyright Notice

   Copyright (c) 2017 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Requirements Notation . . . . . . . . . . . . . . . . . . . .   3
   3.  PAKE Taxonomy . . . . . . . . . . . . . . . . . . . . . . . .   3
     3.1.  Storage of the Password . . . . . . . . . . . . . . . . .   3
     3.2.  Transmission of Public Keys . . . . . . . . . . . . . . .   4
     3.3.  Two Party versus Multiparty . . . . . . . . . . . . . . .   4
   4.  Security of PAKEs . . . . . . . . . . . . . . . . . . . . . .   5
     4.1.  Implementation Aspects  . . . . . . . . . . . . . . . . .   6
     4.2.  Special Case: Elliptic Curves . . . . . . . . . . . . . .   6
   5.  Protocol Considerations and Applications  . . . . . . . . . .   7
   6.  Privacy . . . . . . . . . . . . . . . . . . . . . . . . . . .   7
   7.  Performance . . . . . . . . . . . . . . . . . . . . . . . . .   8
   8.  Requirements  . . . . . . . . . . . . . . . . . . . . . . . .   8
   9.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   9
   10. Security Considerations . . . . . . . . . . . . . . . . . . .   9
   11. References  . . . . . . . . . . . . . . . . . . . . . . . . .   9
     11.1.  Normative References . . . . . . . . . . . . . . . . . .   9
     11.2.  Informative References . . . . . . . . . . . . . . . . .   9
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  10

1.  Introduction

   Passwords are the predominant method of accessing the Internet today
   due, in large part, to their intuitiveness and ease of use.  Since a
   user needs to enter passwords repeatedly in many connections and
   applications, these passwords tend to be easy to remember and can be
   entered repeatedly with a low probability of error.  They tend to be
   low-grade and not-so-random secrets that are susceptible to brute-
   force guessing attacks.

   A Password-Authenticated Key Exchange (PAKE) attempts to address this
   issue by constructing a cryptographic key exchange that does not
   result in the password, or password-derived data, being transmitted
   across an unsecured channel.  Two parties in the exchange prove
   possession of the shared password without revealing it.  Such
   exchanges are therefore resistant to offline, brute-force dictionary
   attacks.  The idea was initially described by Bellovin and Merritt in
   [BM92] and has received considerable cryptographic attention since
   then.  PAKEs are especially interesting due to the fact that they can
   achieve mutual authentication without requiring any Public Key
   Infrastructure (PKI).

   Different types of PAKE schemes are reviewed in this document.  It
   defines requirements for new schemes and gives additional
   recommendations for designers of PAKE schemes.  The specific
   recommendations are discussed throughout Sections 3-7.  Section 8
   summarizes the requirements.

   The requirements mentioned in this document have been discussed with
   active members and represent the consensus of the Crypto Forum
   Research Group (CFRG).

2.  Requirements Notation

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

3.  PAKE Taxonomy

   Broadly speaking, different PAKEs satisfy their goals in a number of
   common ways.  This leads to various design choices: how public keys
   are transmitted (encrypted or not), whether both parties possess the
   same representation of the password (balanced versus augmented), and
   the number of parties (two party versus multiparty).

3.1.  Storage of the Password

   When both sides of a PAKE store the same representation of the
   password, the PAKE is said to be "balanced".  In a balanced PAKE, the
   password can be stored directly in a salted state by hashing it with
   a random salt or by representing the credential as an element in a
   finite field (by, for instance, multiplying a generator from a finite
   field and the password represented as a number to produce a "password
   element").  The benefits of such PAKEs are that they are applicable
   to situations where either party can initiate the exchange or both
   parties can initiate simultaneously, i.e., where they both believe
   themselves to be the "initiator".  This sort of PAKE can be useful
   for mesh networking (see, for example, [DOT11]) or Internet of Things
   applications.

   When one side maintains a transform of the password and the other
   maintains the raw password, the PAKE is said to be "augmented".
   Typically, a client will maintain the raw password (or some
   representation of it as in the balanced case), and a server will
   maintain a transformed element generated with a one-way function.
   The benefit of an augmented PAKE is that it provides some protection
   for the server's password in a way that is not possible with a
   balanced PAKE.  In particular, an adversary that has successfully
   obtained the server's PAKE credentials cannot directly use them to
   impersonate the users to other servers.  The adversary has to learn
   the individual passwords first, e.g., by performing an (offline)
   dictionary attack.  This sort of PAKE is useful for strict client-
   server protocols such as the one discussed in [RFC5246].

3.2.  Transmission of Public Keys

   All known PAKEs use public key cryptography.  A fundamental
   difference in PAKEs is how the public key is communicated in the
   exchange.

   One class of PAKEs uses symmetric key cryptography, with a key
   derived from the password, to encrypt an ephemeral public key.  The
   ability of the peer to demonstrate that it has successfully decrypted
   the public key proves knowledge of the shared password.  Examples of
   this exchange include the first PAKE, called the "Encrypted Key
   Exchange (EKE)", which was introduced in [BM92].

   Another class of PAKEs transmits unencrypted public keys, like the
   J-PAKE (Password Authenticated Key Exchange by Juggling) protocol
   [JPAKE].  During key agreement, ephemeral public keys and values
   derived using the shared password are exchanged.  If the passwords
   match, both parties can compute a common secret by combining
   password, public keys, and private keys.  The SPEKE (Strong Password-
   Only Authenticated Key Exchange) [SPEKE] scheme also exchanges public
   keys, namely Diffie-Hellman values.  Here, the generator for the
   public keys is derived from the shared secret.  Afterwards, only the
   public Diffie-Hellman values are exchanged; the generator is kept
   secret.  In both cases, the values that are transmitted across the
   unsecured medium are elements in a finite field and not a random
   blob.

   A combination of EKE and SPEKE is used in PACE as described in
   [BFK09], which is, e.g., used in international travel documents.  In
   this method, a nonce is encrypted rather than a key.  This nonce is
   used to generate a common base for the key agreement.  Without
   knowing the password, the nonce cannot be determined; hence, the
   subsequent key agreement will fail.

3.3.  Two Party versus Multiparty

   The majority of PAKE protocols allow two parties to agree on a shared
   key based on a shared password.  Nevertheless, there exist proposals
   that allow key agreement for more than two parties.  Those protocols
   allow key establishment for a group of parties and are hence called
   "Group PAKEs" or "GPAKEs".  Examples of such protocols can be found
   in [ABCP06], while [ACGP11] and [HYCS15] propose a generic
   construction that allows the transformation of any two-party PAKE
   into a GPAKE protocol.  Another possibility of defining a multiparty
   PAKE protocol is to assume the existence of a trusted server with
   which each party shares a password.  This server enables different
   parties to agree on a common secret key without the need to share a
   password among themselves.  Each party has only a shared secret with
   the trusted server.  For example, Abdalla et al. designed such a
   protocol as discussed in [AFP05].

4.  Security of PAKEs

   PAKE schemes are modeled on the scenario of two parties, typically
   Alice and Bob, who share a password (or perhaps Bob shares a function
   of the password) and would like to use it to establish a secure
   session key over an untrusted link.  There is a powerful adversary,
   typically Eve, who would like to subvert the exchange.  Eve has
   access to a dictionary that is likely to contain Alice and Bob's
   password, and Eve is capable of enumerating through the dictionary in
   a brute-force manner to try and discover Alice and Bob's password.

   All PAKEs have a limitation.  If Eve guesses the password, she can
   subvert the exchange.  It is therefore necessary to model the
   likelihood that Eve will guess the password to access the security of
   a PAKE.  If the probability of her discovering the password is a
   function of interaction with the protocol participants and not a
   function of computation, then the PAKE is secure (that is, Eve is
   unable to take information from a passive attack or from a single
   active attack).  Thus, she cannot enumerate through her dictionary
   without interacting with Alice or Bob for each password guess, i.e.,
   the only attack left is repeated guessing.  Eve learns one thing from
   a single active attack: whether her single guess is correct or not.

   In other words, the security of a PAKE scheme is based on the idea
   that Eve, who is trying to impersonate Alice, cannot efficiently
   verify a password guess without interacting with Bob (or Alice).  If
   she were to interact with either, she would thereby be detected.
   Thus, it is important to balance restricting the number of allowed
   authentication attempts with the potential of a denial-of-service
   vulnerability.  In order to judge and compare the security of PAKE
   schemes, security proofs in commonly accepted models SHOULD be used.
   Each proof and model, however, is based on assumptions.  Often,
   security proofs show that if an adversary is able to break the
   scheme, the adversary is also able to solve a problem that is assumed
   to be hard, such as computing a discrete logarithm.  By conversion,
   breaking the scheme is considered to be a hard problem as well.

   A PAKE scheme SHOULD be accompanied with a security proof with
   clearly stated assumptions and models used.  In particular, the proof
   MUST show that the probability is negligible that an active adversary
   would be able to pass authentication, learn additional information
   about the password, or learn anything about the established key.
   Moreover, the authors MAY specify which underlying primitives are to
   be used with the scheme or MAY consider specific use cases or
   assumptions like resistance to quantum computers.  A clear and
   comprehensive proof is the foundation for users to trust in the
   security of the scheme.

4.1.  Implementation Aspects

   Aside from the theoretical security of a scheme, practical
   implementation pitfalls have to be considered as well.  If not
   carefully implemented, even a scheme that is secure in a well-defined
   mathematical model can leak information via side channels.  The
   design of the scheme might allow or prevent easy protection against
   information leakage.  In a network scenario, an adversary can measure
   the time that the computation of an answer takes and derive
   information about secret parameters of the scheme.  If a device
   operates in a potentially hostile environment, such as a smart card,
   other side channels like power consumption and electromagnetic
   emanations or even active implementation attacks have to be taken
   into account as well.

   The developers of a scheme SHOULD keep the implementation aspects in
   mind and show how to implement the protocol in constant time.
   Furthermore, adding a discussion about how to protect implementations
   of the scheme in potential hostile environments is encouraged.

4.2.  Special Case: Elliptic Curves

   Since Elliptic Curve Cryptography (ECC) allows for a smaller key
   length compared to traditional schemes based on the discrete
   logarithm problem in finite fields at similar security levels, using
   ECC for PAKE schemes is also of interest.  In contrast to schemes
   that can use the finite field element directly, an additional
   challenge has to be considered for some schemes based on ECC, namely
   the mapping of a random string to an element that can be computed
   with, i.e., a point on the curve.  In some cases, the opposite is
   also needed, i.e., the mapping of a curve point to a string that is
   not distinguishable from a random one.  When choosing a mapping, it
   is crucial to consider the implementation aspects as well.

   If the PAKE scheme is intended to be used with ECC, the authors
   SHOULD state whether there is a mapping function needed and, if so,
   discuss its requirements.  Alternatively, the authors MAY define a
   mapping to be used with the scheme.

5.  Protocol Considerations and Applications

   In most cases, the PAKE scheme is a building block in a more complex
   protocol like IPsec or Transport Layer Security (TLS).  This can
   influence the choice of a suitable PAKE scheme.  For example, an
   augmented scheme can be beneficial for protocols that have a strict
   server-client relationship.  If both parties can initiate a
   connection of a protocol, a balanced PAKE might be more appropriate.

   A special variation of the network password problem, called
   "Password-Authenticated Key Distribution", is defined in [P1363] as
   password-authenticated key retrieval: "The retrieval of a key from a
   secure key repository or escrow requiring authentication derived in
   part from a password."

   In addition to key retrieval from escrow, there is also the variant
   of two parties exchanging public keys using a PAKE in lieu of
   certificates.  In this variant, public keys can be encrypted using a
   password.  Authentication key distribution can be performed because
   each side knows the private key associated with its unencrypted
   public key and can also decrypt the peer's public key.  This
   technique can be used to transform a short, one-time code into a
   long-term public key.

   Another possible variant of a PAKE scheme allows combining
   authentication with certificates and the use of passwords.  In this
   variant, the private key of the certificate is used to blind the
   password key agreement.  For verification, the message is unblinded
   with the public key.  A correct key establishment therefore implies
   the possession of the private key belonging to the certificate.  This
   method enables one-sided authentication as well as mutual
   authentication when the password is used.

   The authors of a PAKE scheme MAY discuss variations of their scheme
   and explain application scenarios where these variations are
   beneficial.  In particular, techniques that allow long-term (public)
   key agreement are encouraged.

6.  Privacy

   In order to establish a connection, each party of the PAKE protocol
   needs to know the identity of its communication partner to identify
   the right password for the agreement.  In cases where a user wants to
   establish a secure channel with a server, the user first has to let
   the server know which password to use by sending some kind of
   identifier to the server.  If this identifier is not protected,
   everyone who is able to eavesdrop on the connection can identify the
   user.  In order to prevent this and protect the privacy of the user,
   the scheme might provide a way to protect the transmission of the
   user's identity.  A simple way to protect the privacy of a user that
   communicates with a server is to use a public key provided by the
   server to encrypt the user's identity.

   The PAKE scheme MAY discuss special ideas and solutions about how to
   protect the privacy of the users of the scheme.

7.  Performance

   The performance of a scheme can be judged along different lines
   depending on the optimization goals of the target application.
   Potential metrics include latency, code size/area, power consumption,
   or exchanged messages.  In addition, there might be application
   scenarios in which a constrained client communicates with a powerful
   server.  In such a case, the scheme has to require minimal efforts on
   the client side.  Note that for some clients, the computations might
   even be carried out in a hardware implementation, which requires
   different optimizations compared to software.

   Furthermore, the design of the scheme can influence the cost of
   protecting the implementation from adversaries exploiting its
   physical properties (see Section 4.1).

   The authors of a PAKE scheme MAY discuss their design choices and the
   influence of these choices on the performance.  In particular, the
   optimization goals could be stated.

8.  Requirements

   This section summarizes the requirements for PAKE schemes to be
   compliant with this document based on the previously discussed
   properties.

   REQ1:  A PAKE scheme MUST clearly state its features regarding
          balanced/augmented versions.

   REQ2:  A PAKE scheme SHOULD come with a security proof and clearly
          state its assumptions and models.

   REQ3:  The authors SHOULD show how to protect their PAKE scheme
          implementation in hostile environments, particularly, how to
          implement their scheme in constant time to prevent timing
          attacks.

   REQ4:  If the PAKE scheme is intended to be used with ECC, the
          authors SHOULD discuss their requirements for a potential
          mapping or define a mapping to be used with the scheme.

   REQ5:  The authors of a PAKE scheme MAY discuss its design choice
          with regard to performance, i.e., its optimization goals.

   REQ6:  The authors of a scheme MAY discuss variations of their scheme
          that allow the use in special application scenarios.  In
          particular, techniques that facilitate long-term (public) key
          agreement are encouraged.

   REQ7:  Authors of a scheme MAY discuss special ideas and solutions on
          privacy protection of its users.

   REQ8:  The authors MUST follow the IRTF IPR policy
          <https://irtf.org/ipr>.

9.  IANA Considerations

   This document does not require any IANA actions.

10.  Security Considerations

   This document analyzes requirements for a cryptographic scheme.
   Security considerations are discussed throughout the document.

11.  References

11.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

11.2.  Informative References

   [ABCP06]   Abdalla, M., Bresson, E., Chevassut, O., and D.
              Pointcheval, "Password-Based Group Key Exchange in a
              Constant Number of Rounds", PKC 2006, LNCS 3958,
              DOI 10.1007/11745853_28, 2006.

   [ACGP11]   Abdalla, M., Chevalier, C., Granboulan, L., and D.
              Pointcheval, "Contributory Password-Authenticated Group
              Key Exchange with Join Capability", CT-RSA 2011,
              LNCS 6558, DOI 10.1007/978-3-642-19074-2_11, 2011.

   [AFP05]    Abdalla, M., Fouque, P., and D. Pointcheval, "Password-
              Based Authenticated Key Exchange in the Three-Party
              Setting", PKC 2005, LNCS 3386,
              DOI 10.1007/978-3-540-30580-4_6, 2005.

   [BFK09]    Bender, J., Fischlin, M., and D. Kuegler, "Security
              Analysis of the PACE Key-Agreement Protocol", ISC 2009,
              LNCS 5735, DOI 10.1007/978-3-642-04474-8_3, 2009.

   [BM92]     Bellovin, S. and M. Merritt, "Encrypted Key Exchange:
              Password-Based Protocols Secure against Dictionary
              Attacks", Proc. of the Symposium on Security and
              Privacy, Oakland, DOI 10.1109/RISP.1992.213269, 1992.

   [DOT11]    IEEE, "IEEE Standard for Information technology--
              Telecommunications and information exchange between
              systems Local and metropolitan area networks--Specific
              requirements - Part 11: Wireless LAN Medium Access Control
              (MAC) and Physical Layer (PHY) Specifications",
              IEEE 802.11, DOI 10.1109/IEEESTD.2016.7786995.

   [HYCS15]   Hao, F., Yi, X., Chen, L., and S. Shahandashti, "The
              Fairy-Ring Dance: Password Authenticated Key Exchange in a
              Group", IoTPTS 2015, DOI 10.1145/2732209.2732212, 2015.

   [JPAKE]    Hao, F. and P. Ryan, "Password Authenticated Key Exchange
              by Juggling", SP 2008, LNCS 6615,
              DOI 10.1007/978-3-642-22137-8_23, 2008.

   [P1363]    IEEE Microprocessor Standards Committee, "Draft Standard
              Specifications for Password-Based Public Key Cryptographic
              Techniques", IEEE P1363.2, 2006.

   [RFC5246]  Dierks, T. and E. Rescorla, "The Transport Layer Security
              (TLS) Protocol Version 1.2", RFC 5246,
              DOI 10.17487/RFC5246, August 2008,
              <http://www.rfc-editor.org/info/rfc5246>.

   [SPEKE]    Jablon, D., "Strong Password-Only Authenticated Key
              Exchange", ACM SIGCOMM Computer Communications
              Review, Volume 26, Issue 5, DOI 10.1145/242896.242897,
              October 1996.

Author's Address

   Joern-Marc Schmidt
   secunet Security Networks
   Mergenthaler Allee 77
   65760 Eschborn
   Germany

   Email: joern-marc.schmidt@secunet.com

ISO Plain Language

On this page
PROBLEMPasswords are what people use to get into things, and they are weak secrets. Protocols that prove knowledge of a password by sending something derived from it let anyone who records the exchange check a whole word list against it offline.
MECHANISMA Password-Authenticated Key Exchange lets two parties prove they share a password and derive a strong key without ever putting the password or anything derived from it on the wire.
WHAT IT DELIVERSThe result is a set of requirements for new schemes: they must say whether they are balanced or augmented, should come with a security proof and a constant-time implementation, and should address mapping, privacy and performance.

§1What a PAKE Is For

Passwords are the predominant method of accessing the Internet today, due in large part to their intuitiveness and ease of use. A user has to enter passwords repeatedly in many connections and applications, so these passwords tend to be easy to remember and can be entered repeatedly with a low probability of error. They also tend to be low-grade and not-so-random secrets that are susceptible to brute-force guessing attacks.

A Password-Authenticated Key Exchange attempts to address this by constructing a cryptographic key exchange that does not result in the password, or password-derived data, being transmitted across an unsecured channel. Two parties in the exchange prove possession of the shared password without revealing it, so such exchanges are resistant to offline, brute-force dictionary attacks. The idea was initially described by Bellovin and Merritt and has received considerable cryptographic attention since then.

PAKEs are especially interesting because they can achieve mutual authentication without requiring any Public Key Infrastructure. This document reviews different types of PAKE scheme, defines requirements for new schemes and gives additional recommendations to designers. The requirements represent the consensus of the Crypto Forum Research Group.

The problem with passwords is not only that people choose weak ones, but that the usual way of checking one puts a hint on the wire that an attacker can take away and test at leisure. A PAKE holds the check and the key agreement together, so the hint never leaves the machine.

§3The Taxonomy: Balanced, Augmented and How Keys Travel

Storage of the password. When both sides of a PAKE store the same representation of the password, the PAKE is said to be balanced. In a balanced PAKE the password can be stored directly in a salted state by hashing it with a random salt, or by representing the credential as an element in a finite field, for instance by multiplying a generator from a finite field by the password represented as a number to produce a password element. The benefit is that these schemes apply where either party can initiate the exchange, or both can initiate simultaneously, so that both believe themselves to be the initiator. They can be useful for mesh networking or Internet of Things applications.

When one side maintains a transform of the password and the other maintains the raw password, the PAKE is said to be augmented. Typically a client maintains the raw password, or a representation of it as in the balanced case, and a server maintains a transformed element generated with a one-way function. The benefit is some protection for the server's password that a balanced PAKE cannot give: an adversary who obtains the server's PAKE credentials cannot directly use them to impersonate the users to other servers, because the adversary would have to learn the individual passwords first, for instance by performing an offline dictionary attack. Such a scheme suits strict client-server protocols.

Transmission of public keys. All known PAKEs use public key cryptography, and a fundamental difference is how the public key is communicated. One class uses symmetric key cryptography, with a key derived from the password, to encrypt an ephemeral public key; the peer's ability to show that it decrypted the public key proves knowledge of the shared password. The first PAKE, called the Encrypted Key Exchange, works this way. Another class transmits unencrypted public keys. J-PAKE, Password Authenticated Key Exchange by Juggling, exchanges ephemeral public keys and values derived using the shared password, and if the passwords match both parties can compute a common secret by combining password, public keys and private keys. SPEKE, Strong Password-Only Authenticated Key Exchange, exchanges Diffie-Hellman values, where the generator for the public keys is derived from the shared secret, so that only the public values are exchanged and the generator is kept secret. In both cases the values transmitted across the unsecured medium are elements in a finite field and not a random blob. A combination of EKE and SPEKE is used in PACE, which is used in international travel documents; in that method a nonce is encrypted rather than a key, the nonce generates a common base for the key agreement, and without knowing the password the nonce cannot be determined, so the key agreement will fail.

Two party versus multiparty. The majority of PAKE protocols allow two parties to agree on a shared key. Proposals also exist that allow key agreement for more than two parties, called Group PAKEs or GPAKEs, and generic constructions that transform any two-party PAKE into a GPAKE. Another way to define a multiparty PAKE is to assume a trusted server with which each party shares a password; this server enables different parties to agree on a common secret key without the need to share a password among themselves, since each party has only a shared secret with the trusted server.

Schemes differ in three ways. They differ in what each side keeps: the same thing on both sides, or the raw password on one side and a scrambled version on the other. They differ in how the public keys travel, encrypted under a key derived from the password or in the clear. And they differ in how many people take part, two or a group.

BALANCED AND AUGMENTED PAKES (RFC 8125, SECTION 3.1)
AspectBalancedAugmented
What each side storesThe same representation of the passwordThe raw password on one side, a one-way transform on the other
Who may start the exchangeEither side, or both at onceThe side that keeps the raw password
What the server keepsThe same value the client holdsA transformed credential that cannot be used directly to impersonate the user elsewhere
Where it fitsMesh networking and Internet of Things applicationsStrict client-server protocols

§4What Security Means for a PAKE

PAKE schemes are modelled on the scenario of two parties, typically Alice and Bob, who share a password, or where Bob shares a function of the password, and who would like to use it to establish a secure session key over an untrusted link. There is a powerful adversary, typically Eve, who would like to subvert the exchange. Eve has access to a dictionary that is likely to contain Alice and Bob's password, and Eve is capable of enumerating through the dictionary in a brute-force manner to try to discover it.

All PAKEs have a limitation. If Eve guesses the password, she can subvert the exchange. It is therefore necessary to model the likelihood of her discovering the password to assess the security of a PAKE. If the probability of her discovering the password is a function of interaction with the protocol participants and not a function of computation, then the PAKE is secure: Eve is unable to take information from a passive attack or from a single active attack. She cannot enumerate through her dictionary without interacting with Alice or Bob for each password guess, so the only attack left is repeated guessing. Eve learns one thing from a single active attack: whether her single guess is correct or not.

In other words, the security of a PAKE scheme rests on the idea that Eve, trying to impersonate Alice, cannot efficiently verify a password guess without interacting with Bob, or with Alice, and if she does interact she is thereby detected. It is therefore important to balance restricting the number of allowed authentication attempts against the potential of a denial-of-service vulnerability. To judge and compare schemes, security proofs in commonly accepted models SHOULD be used, and each proof and model is based on assumptions; often such proofs show that if an adversary is able to break the scheme, the adversary is also able to solve a problem assumed to be hard, such as computing a discrete logarithm, and by conversion breaking the scheme is considered to be a hard problem as well.

A PAKE scheme SHOULD be accompanied by a security proof with clearly stated assumptions and models. The proof MUST show that the probability is negligible that an active adversary would be able to pass authentication, learn additional information about the password, or learn anything about the established key. The authors MAY specify which underlying primitives are to be used with the scheme, and MAY consider specific use cases or assumptions such as resistance to quantum computers. A clear and comprehensive proof is the foundation for users to trust in the security of the scheme.

The security of these schemes rests on one rule: an attacker cannot test a password guess without talking to the other party, and talking to them means they can see it. So the attacker learns only whether one guess was right. The number of guesses allowed has to be limited, but limiting it too far opens the door to locking the real user out, and the document wants a written proof in a stated model as the basis for trusting a scheme.

WHAT THE SECURITY ARGUMENT RESTS ON (RFC 8125, SECTION 4)
  • A guess needs interactionAn attacker cannot check a password guess without talking to the other party, and talking means being seen.
  • One bit per attemptFrom a single active attack the attacker learns only whether that one guess was correct.
  • Attempts must be limitedThe number of allowed authentication attempts has to be balanced against the risk of denial of service.
  • A written proofThe scheme should come with a proof in a stated model, showing that an active adversary has only a negligible chance of passing, learning about the password, or learning the key.
  • Implementation leaks tooEven a secure scheme can leak through timing and other side channels, so the code must run in constant time.

§4.1Implementation and Elliptic Curves

Aside from the theoretical security of a scheme, practical implementation pitfalls have to be considered. If not carefully implemented, even a scheme that is secure in a well-defined mathematical model can leak information via side channels. The design of the scheme might allow or prevent easy protection against information leakage. In a network scenario an adversary can measure the time that the computation of an answer takes and derive information about secret parameters of the scheme. If a device operates in a potentially hostile environment, such as a smart card, other side channels like power consumption and electromagnetic emanations, or even active implementation attacks, have to be taken into account as well.

The developers of a scheme SHOULD keep the implementation aspects in mind and show how to implement the protocol in constant time. Adding a discussion about how to protect implementations of the scheme in potential hostile environments is encouraged.

Elliptic curve cryptography allows a smaller key length compared with traditional schemes based on the discrete logarithm problem in finite fields at similar security levels, so using it for PAKE schemes is also of interest. In contrast to schemes that can use the finite field element directly, an additional challenge has to be considered for some schemes based on elliptic curves, namely the mapping of a random string to an element that can be computed with, that is, a point on the curve. In some cases the opposite is needed too, the mapping of a curve point to a string that is not distinguishable from a random one. When choosing a mapping it is crucial to consider the implementation aspects as well. If the PAKE scheme is intended to be used with elliptic curves, the authors SHOULD state whether a mapping function is needed and, if so, discuss its requirements; alternatively, the authors MAY define a mapping to be used with the scheme.

A scheme that is sound on paper can still leak if the code takes a different amount of time depending on the secret. The document asks for constant-time implementations and a note on protecting the code in a hostile device such as a smart card. Elliptic curves need one more thing: a way to turn the password, which is a string, into a point on the curve, and getting that mapping right matters for the timing as well.

§5Applications, Privacy and Performance

In most cases the PAKE scheme is a building block in a more complex protocol such as IPsec or TLS, which can influence the choice of a suitable scheme. An augmented scheme can be beneficial for protocols that have a strict server-client relationship; if both parties can initiate a connection, a balanced PAKE might be more appropriate.

A special variation of the network password problem is called Password-Authenticated Key Distribution, defined in an IEEE standard as password-authenticated key retrieval: the retrieval of a key from a secure key repository or escrow requiring authentication derived in part from a password. In addition to key retrieval from escrow, there is also the variant of two parties exchanging public keys using a PAKE in place of certificates. In that variant public keys can be encrypted using a password; authentication key distribution can be performed because each side knows the private key associated with its unencrypted public key and can also decrypt the peer's public key. This technique can be used to transform a short, one-time code into a long-term public key. Another possible variant allows combining authentication with certificates and the use of passwords, where the private key of the certificate is used to blind the password key agreement and the message is unblinded with the public key for verification, so a correct key establishment implies possession of the private key belonging to the certificate; this enables one-sided authentication as well as mutual authentication when the password is used. The authors MAY discuss variations of their scheme and explain application scenarios where they are beneficial, and techniques that allow long-term public key agreement are encouraged.

On privacy, each party of the PAKE protocol needs to know the identity of its communication partner in order to identify the right password for the agreement. Where a user wants a secure channel with a server, the user first has to let the server know which password to use by sending some kind of identifier. If that identifier is not protected, everyone able to eavesdrop on the connection can identify the user. To prevent this, the scheme might provide a way to protect the transmission of the user's identity, and a simple way is to use a public key provided by the server to encrypt the user's identity. The scheme MAY discuss special ideas and solutions about how to protect the privacy of the users of the scheme.

On performance, the performance of a scheme can be judged along different lines depending on the optimization goals of the target application. Potential metrics include latency, code size and area, power consumption, or exchanged messages. There might be application scenarios in which a constrained client communicates with a powerful server, in which case the scheme has to require minimal effort on the client side, and for some clients the computations might even be carried out in a hardware implementation, which requires different optimizations compared with software. The design of the scheme can also influence the cost of protecting the implementation from adversaries exploiting its physical properties. The authors MAY discuss their design choices and the influence of those choices on performance, and in particular the optimization goals could be stated.

Which scheme to pick depends on the protocol it is used in: a strict client and server suits the augmented kind, and a protocol where either side can start suits the balanced kind. The document also asks about the user's privacy, because the exchange usually starts with a name that identifies the user, and about performance, because the client may be a tiny battery-powered device that needs to do very little work.

§8The Requirements

The document summarizes the requirements for PAKE schemes to be compliant with it, based on the properties discussed earlier.

  • REQ1: A PAKE scheme MUST clearly state its features regarding balanced and augmented versions.
  • REQ2: A PAKE scheme SHOULD come with a security proof and clearly state its assumptions and models.
  • REQ3: The authors SHOULD show how to protect their PAKE scheme implementation in hostile environments, particularly how to implement their scheme in constant time to prevent timing attacks.
  • REQ4: If the PAKE scheme is intended to be used with elliptic curves, the authors SHOULD discuss their requirements for a potential mapping or define a mapping to be used with the scheme.
  • REQ5: The authors of a PAKE scheme MAY discuss its design choice with regard to performance, that is, its optimization goals.
  • REQ6: The authors of a scheme MAY discuss variations of their scheme that allow use in special application scenarios; in particular, techniques that facilitate long-term public key agreement are encouraged.
  • REQ7: Authors of a scheme MAY discuss special ideas and solutions on privacy protection of its users.
  • REQ8: The authors MUST follow the IRTF IPR policy.

The IANA considerations section says the document requires no IANA actions, and the security considerations section says the document analyses requirements for a cryptographic scheme, with security considerations discussed throughout.

In short, a scheme must say whether it is balanced or augmented and must follow the research group's patent policy. It should come with a security proof, with a constant-time implementation, and, if it uses elliptic curves, with a mapping. It may discuss performance, variations for particular uses and the privacy of its users.

THE EIGHT REQUIREMENTS (RFC 8125, SECTION 8)
  • REQ1State balanced or augmented — MUST clearly state its features regarding balanced and augmented versions.
  • REQ2Security proof — SHOULD come with a security proof and clearly state its assumptions and models.
  • REQ3Constant time — SHOULD show how to protect the implementation in hostile environments, in constant time.
  • REQ4ECC mapping — SHOULD discuss requirements for a potential mapping, or define one.
  • REQ5Performance — MAY discuss the design choice with regard to performance, that is, its optimization goals.
  • REQ6Variations — MAY discuss variations of the scheme for special application scenarios.
  • REQ7Privacy — MAY discuss special ideas and solutions for the privacy of the users of the scheme.
  • REQ8IRTF IPR policy — MUST follow the IRTF IPR policy.

§7References

[RFC2119]RFC 2119Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.March 1997
[BM92]Bellovin, S. and M. Merritt, "Encrypted Key Exchange: Password-Based Protocols Secure against Dictionary Attacks", Proc. of the Symposium on Security and Privacy, Oakland, 1992.
[JPAKE]Hao, F. and P. Ryan, "Password Authenticated Key Exchange by Juggling", SP 2008, LNCS 6615, 2008.
[SPEKE]Jablon, D., "Strong Password-Only Authenticated Key Exchange", ACM SIGCOMM Computer Communications Review, Volume 26, Issue 5, October 1996.
[BFK09]Bender, J., Fischlin, M., and D. Kuegler, "Security Analysis of the PACE Key-Agreement Protocol", ISC 2009, LNCS 5735, 2009.
[RFC5246]RFC 5246Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, August 2008.August 2008
[P1363]IEEE Microprocessor Standards Committee, "Draft Standard Specifications for Password-Based Public Key Cryptographic Techniques", IEEE P1363.2, 2006.
[DOT11]IEEE, "IEEE Standard for Information technology - Telecommunications and information exchange between systems - Local and metropolitan area networks - Specific requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications", IEEE 802.11, 2016.