HOME

TheInfoList



OR:

The Password Authenticated Key Exchange by Juggling (or J-PAKE) is a
password-authenticated key agreement In cryptography, a password-authenticated key agreement method is an interactive method for two or more parties to establish cryptographic keys based on one or more party's knowledge of a password. An important property is that an eavesdropper or m ...
protocol, proposed by Feng Hao and Peter Ryan. This protocol allows two parties to establish private and authenticated communication solely based on their shared (low-entropy) password without requiring a
Public Key Infrastructure A public key infrastructure (PKI) is a set of roles, policies, hardware, software and procedures needed to create, manage, distribute, use, store and revoke digital certificates and manage public-key encryption. The purpose of a PKI is to facilit ...
. It provides
mutual authentication Mutual authentication or two-way authentication (not to be confused with two-factor authentication) refers to two parties authenticating each other at the same time in an authentication protocol. It is a default mode of authentication in some proto ...
to the key exchange, a feature that is lacking in the
Diffie–Hellman key exchange Diffie–Hellman key exchangeSynonyms of Diffie–Hellman key exchange include: * Diffie–Hellman–Merkle key exchange * Diffie–Hellman key agreement * Diffie–Hellman key establishment * Diffie–Hellman key negotiation * Exponential key exc ...
protocol.


Description

Two parties, Alice and Bob, agree on a group G with generator g of prime order q in which the discrete log problem is hard. Typically a
Schnorr group A Schnorr group, proposed by Claus P. Schnorr, is a large prime-order subgroup of \mathbb_p^\times, the multiplicative group of integers modulo p for some prime p. To generate such a group, generate p, q, r such that :p = qr + 1 with p, q prime. ...
is used. In general, J-PAKE can use any prime order group that is suitable for public key cryptography, including
Elliptic curve cryptography Elliptic-curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields. ECC allows smaller keys compared to non-EC cryptography (based on plain Galois fields) to provide e ...
. Let s be their shared (low-entropy) secret, which can be a password or a hash of a password (s \neq 0). The protocol executes in two rounds. ;Round 1: Alice selects x_1 \in_R , q-1/math>, x_2 \in_R , q-1/math> and sends out g^, g^ together with the
Zero-knowledge proofs In cryptography, a zero-knowledge proof or zero-knowledge protocol is a method by which one party (the prover) can prove to another party (the verifier) that a given statement is true while the prover avoids conveying any additional information a ...
(using for example Schnorr non-interactive zero-knowledge proof as specified in RFC 8235) for the proof of the exponents x_1 and x_2. Similarly, Bob selects x_3 \in_R , q-1/math>, x_4 \in_R , q-1/math> and sends out g^, g^ together with the
Zero-knowledge proofs In cryptography, a zero-knowledge proof or zero-knowledge protocol is a method by which one party (the prover) can prove to another party (the verifier) that a given statement is true while the prover avoids conveying any additional information a ...
for the proof of the exponents x_3 and x_4. The above communication can be completed in one round as neither party depends on the other. When it finishes, Alice and Bob verify the received
Zero-knowledge proofs In cryptography, a zero-knowledge proof or zero-knowledge protocol is a method by which one party (the prover) can prove to another party (the verifier) that a given statement is true while the prover avoids conveying any additional information a ...
and also check g^, g^ \neq 1. ;Round 2: Alice sends out A = g^ and a
Zero-knowledge proof In cryptography, a zero-knowledge proof or zero-knowledge protocol is a method by which one party (the prover) can prove to another party (the verifier) that a given statement is true while the prover avoids conveying any additional information a ...
for the proof of the exponent x_2 s. (Note Alice actually derives a new public key using g^ as the generator). Similarly, Bob sends out B = g^ and a
Zero-knowledge proof In cryptography, a zero-knowledge proof or zero-knowledge protocol is a method by which one party (the prover) can prove to another party (the verifier) that a given statement is true while the prover avoids conveying any additional information a ...
for the proof of the exponent x_4 s. After Round 2, Alice computes K = (B/g^)^ = g^. Similarly, Bob computes K = (A/g^)^ = g^. With the same keying material K, Alice and Bob can derive a session key using a
Cryptographic hash function A cryptographic hash function (CHF) is a hash algorithm (a map of an arbitrary binary string to a binary string with fixed size of n bits) that has special properties desirable for cryptography: * the probability of a particular n-bit output re ...
: \kappa = H(K). The two-round J-PAKE protocol is completely symmetric. This helps significantly simplify the security analysis. For example, the proof that one party does not leak any password information in the data exchange must hold true for the other party based on the symmetry. This reduces the number of the needed security proofs by half. In practice, it is more likely to implement J-PAKE in three flows since one party shall normally take the initiative. This can be done trivially without loss of security. Suppose Alice initiates the communication by sending to Bob: g^, g^ and Zero-knowledge proofs. Then Bob replies with: g^, g^, B = g^ and Zero-knowledge proofs. Finally, Alice sends to Bob: A = g^ and a Zero-knowledge proof. Both parties can now derive the same session key. Depending on the application requirement, Alice and Bob may perform an optional key confirmation step. There are several ways to do it. A simple method described in
SPEKE Speke () is a suburb of Liverpool. It is southeast of the city centre. Located near the widest part of the River Mersey, it is bordered by the suburbs of Garston and Hunts Cross, and nearby to Halewood, Hale Village, and Widnes. The rural are ...
works as follows: Alice sends to Bob H(H(\kappa)), and then Bob replies with H(\kappa). Alternatively, Alice and Bob can realize explicit key confirmation by using the newly constructed session key to encrypt a known value (or a random challenge). EKE, Kerberos and Needham-Schroeder all attempt to provide explicit key confirmation by exactly this method.


Security properties

Given that the underlying Schnorr non-interactive
zero-knowledge proof In cryptography, a zero-knowledge proof or zero-knowledge protocol is a method by which one party (the prover) can prove to another party (the verifier) that a given statement is true while the prover avoids conveying any additional information a ...
is secure, the J-PAKE protocol is proved to satisfy the following properties: # Off-line dictionary attack resistance - It does not leak any password verification information to a passive/active attacker. #
Forward secrecy In cryptography, forward secrecy (FS), also known as perfect forward secrecy (PFS), is a feature of specific key agreement protocols that gives assurances that session keys will not be compromised even if long-term secrets used in the session key ...
- It produces session keys that remain secure even when the password is later disclosed. # Known-key security - It prevents a disclosed session key from affecting the security of other sessions. # On-line dictionary attack resistance - It limits an active attacker to test only one password per protocol execution. In 2015, Abdalla, Benhamouda and MacKenzie conducted an independent formal analysis of J-PAKE to prove its security in a random oracle model assuming algebraic adversaries.


The protocol design

The J-PAKE protocol is designed by combining random public keys in such a structured way to achieve a vanishing effect if both parties supplied exactly the same passwords. This is somehow similar to the
Anonymous veto network In cryptography, the anonymous veto network (or AV-net) is a multi-party secure computation protocol to compute the boolean-OR function. It was first proposed by Feng Hao and Piotr Zieliński in 2006. This protocol presents an efficient solution to ...
protocol design. The essence of the idea, however, can be traced back to
David Chaum David Lee Chaum (born 1955) is an American computer scientist, cryptographer, and inventor. He is known as a pioneer in cryptography and privacy-preserving technologies, and widely recognized as the inventor of digital cash. His 1982 dissertatio ...
's original Dining Cryptographers network protocol, where binary bits are combined in a structured way to achieve a vanishing effect.


The implementation

J-PAKE has been implemented in
OpenSSL OpenSSL is a software library for applications that provide secure communications over computer networks against eavesdropping or need to identify the party at the other end. It is widely used by Internet servers, including the majority of HTT ...
and
OpenSSH OpenSSH (also known as OpenBSD Secure Shell) is a suite of secure networking utilities based on the Secure Shell (SSH) protocol, which provides a secure channel over an unsecured network in a client–server architecture. Network Working Gr ...
as an experimental authentication protocol. It was removed from the OpenSSH source code at the end of January 2014. It has also been implemented in Smoke Crypto Chat Messenger, in NSS and was used by
Firefox Sync Firefox Sync, originally branded Mozilla Weave, is a browser synchronization feature for Firefox web browsers. It allows users to partially synchronize bookmarks, browsing history, preferences, passwords, filled forms, add-ons, and the last 25 o ...
version 1.1 but discontinued in 1.5 which uses a different key exchange and storage method. Mozilla's J-PAKE server was shut down along with the Sync 1.1 storage servers on 30 September 2015.
Pale Moon Pale Moon is an open-source web browser with an emphasis on customization; its motto is "Your browser, Your way". There are official releases for Microsoft Windows and Linux, as well as contributed builds for various platforms. Pale Moon origi ...
continues to use J-PAKE as part of its Sync service. Since February 2013, J-PAKE has been added to the lightweight API in
Bouncycastle Bouncy Castle is a collection of APIs used in cryptography. It includes APIs for both the Java and the C# programming languages. The APIs are supported by a registered Australian charitable organization: Legion of the Bouncy Castle Inc. Bounc ...
(1.48 and onwards). J-PAKE is also used in the
Thread (network protocol) Thread is an IPv6-based, low-power mesh networking technology for Internet of things (IoT) products. Thread is reliable, secure and delivers fast response times, extended coverage and years of battery life to elevate smart home and building exper ...


Standardization

J-PAKE has been included in ISO/IEC 11770-4 (2017) as an international standard.https://www.iso.org/obp/ui/#iso:std:67933:en It is also published in RFC 8236.


References


External links


J-PAKE draft

A prototype demo of J-PAKE in C

A prototype demo of J-PAKE in Java

An example of implementing J-PAKE using Elliptic Curve

J-PAKE: From Dining Cryptographers to Jugglers
{{DEFAULTSORT:Password Authenticated Key Exchange By Juggling Cryptographic protocols