diff options
Diffstat (limited to 'doc/rfc/rfc5683.txt')
-rw-r--r-- | doc/rfc/rfc5683.txt | 563 |
1 files changed, 563 insertions, 0 deletions
diff --git a/doc/rfc/rfc5683.txt b/doc/rfc/rfc5683.txt new file mode 100644 index 0000000..b8e1c96 --- /dev/null +++ b/doc/rfc/rfc5683.txt @@ -0,0 +1,563 @@ + + + + + + +Independent Submission A. Brusilovsky +Request for Comments: 5683 I. Faynberg +Category: Informational Z. Zeltsan +ISSN: 2070-1721 Alcatel-Lucent + S. Patel + Google, Inc. + February 2010 + + + Password-Authenticated Key (PAK) Diffie-Hellman Exchange + +Abstract + + This document proposes to add mutual authentication, based on a + human-memorizable password, to the basic, unauthenticated Diffie- + Hellman key exchange. The proposed algorithm is called the Password- + Authenticated Key (PAK) exchange. PAK allows two parties to + authenticate themselves while performing the Diffie-Hellman exchange. + + The protocol is secure against all passive and active attacks. In + particular, it does not allow either type of attacker to obtain any + information that would enable an offline dictionary attack on the + password. PAK provides Forward Secrecy. + +Status of This Memo + + This document is not an Internet Standards Track specification; it is + published for informational purposes. + + This is a contribution to the RFC Series, independently of any other + RFC stream. The RFC Editor has chosen to publish this document at + its discretion and makes no statement about its value for + implementation or deployment. Documents approved for publication by + the RFC Editor are not a candidate for any level of Internet + Standard; see Section 2 of RFC 5741. + + 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/rfc5683. + + + + + + + + + + + + +Brusilovsky, et al. Informational [Page 1] + +RFC 5683 PAK Diffie-Hellman Exchange February 2010 + + +Copyright Notice + + Copyright (c) 2010 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 ....................................................3 + 2. Conventions .....................................................3 + 3. Password-Authenticated Key Exchange .............................4 + 4. Selection of Parameters .........................................5 + 4.1. General Considerations .....................................5 + 4.2. Over-the-Air Service Provisioning (OTASP) and Wireless + Local Area Network (WLAN) Diffie-Hellman Parameters and + Key Expansion Functions ....................................5 + 5. Security Considerations .........................................7 + 6. Acknowledgments .................................................8 + 7. References ......................................................8 + 7.1. Normative References .......................................8 + 7.2. Informative References .....................................8 + + + + + + + + + + + + + + + + + + + + + + + + +Brusilovsky, et al. Informational [Page 2] + +RFC 5683 PAK Diffie-Hellman Exchange February 2010 + + +1. Introduction + + PAK has the following advantages: + + - It provides a secure, authenticated key-exchange protocol. + - It is secure against offline dictionary attacks when passwords are + used. + - It ensures Forward Secrecy. + - It has been proven to be as secure as the Diffie-Hellman solution. + + The PAK protocol ([BMP00], [MP05], [X.1035]) has been proven to be as + secure as the Diffie-Hellman ([RFC2631], [DH76]) in the random oracle + model [BR93]. That is, PAK retains its security when used with low- + entropy passwords. Therefore, it can be seamlessly integrated into + existing applications, requiring secure authentication based on such + low-entropy shared secrets. + +2. Conventions + + - A is an identity of Alice. + + - B is an identity of Bob. + + - Ra is a secret random exponent selected by A. + + - Rb is a secret random exponent selected by B. + + - Xab denotes a value (X presumably computed by A) as derived by B. + + - Yba denotes a value (Y presumably computed by B) as derived by A. + + - A mod b denotes the least non-negative remainder when a is divided + by b. + + - Hi(u) denotes an agreed-on function (e.g., based on SHA-1, + SHA-256, etc.) computed over a string u; the various H() act as + independent random functions. H1(u) and H2(u) are the key + derivation functions. H3(u), H4(u), and H5(u) are the hash + functions. + + - s|t denotes concatenation of the strings s and t. + + - ^ denotes exponentiation. + + - Multiplication, division, and exponentiation are performed over + (Zp)*; in other words: + + + + + +Brusilovsky, et al. Informational [Page 3] + +RFC 5683 PAK Diffie-Hellman Exchange February 2010 + + + 1) a*b always means a*b (mod p). + + 2) a/b always means a * x (mod p), where x is the multiplicative + inverse of b modulo p. + + 3) a^b means a^b (mod p). + +3. Password-Authenticated Key Exchange + + Diffie-Hellman key agreement requires that both the sender and + recipient of a message create their own secret, random numbers and + exchange the exponentiation of their respective numbers. + + PAK has two parties, Alice (A) and Bob (B), sharing a secret password + PW that satisfies the following conditions: + + H1(A|B|PW) != 0 + H2(A|B|PW) != 0 + + The global Diffie-Hellman publicly known constants, a prime p and a + generator g, are carefully selected so that: + + 1. A safe prime p is large enough to make the computation of + discrete logarithms infeasible, and + + 2. Powers of g modulo p cover the entire range of p-1 integers from + 1 to p-1. (References demonstrate working examples of + selections). + + Initially, Alice (A) selects a secret, random exponent Ra and + computes g^Ra; Bob (B) selects a secret, random exponent Rb and + computes g^Rb. For efficiency purposes, short exponents could be + used for Ra and Rb, provided they have a certain minimum size. Then: + + A --> B: {A, X = H1(A|B|PW)*(g^Ra)} + (The above precondition on PW ensures that X != 0) + + Bob + receives Q (presumably Q = X), verifies that Q != 0 + (if Q = 0, Bob aborts the procedure); + divides Q by H1(A|B|PW) to get Xab, the recovered value of g^Ra + + + + + + + + + + +Brusilovsky, et al. Informational [Page 4] + +RFC 5683 PAK Diffie-Hellman Exchange February 2010 + + + B --> A: {Y = H2(A|B|PW)*(g^Rb), S1 = H3(A|B|PW|Xab|g^Rb|(Xab)^Rb)} + (The above precondition on PW ensures that Y != 0) + + Alice + verifies that Y != 0; + divides Y by H2(A|B|PW) to get Yba, the recovered value of g^Rb, + and computes S1' = H3(A|B|PW|g^Ra|Yba|(Yba)^Ra); + authenticates Bob by checking whether S1' = S1; + if authenticated, then sets key K = H5(A|B|PW|g^Ra|Yba|(Yba)^Ra) + + + A --> B: S2 = H4(A|B|PW|g^Ra|Yba|(Yba)^Ra) + + Bob + Computes S2' = H4(A|B|PW|Xab|g^Rb|(Xab)^Rb) and + authenticates Alice by checking whether S2' = S2; + if authenticated, then sets K = H5(A|B|PW|Xab|g^Rb|(Xab)^Rb) + + If any of the above verifications fails, the protocol halts; + otherwise, both parties have authenticated each other and established + the key. + +4. Selection of Parameters + + This section provides guidance on selection of the PAK parameters. + First, it addresses general considerations, then it reports on + specific implementations. + +4.1. General Considerations + + In general implementations, the parameters must be selected to meet + algorithm requirements of [BMP00]. + +4.2. Over-the-Air Service Provisioning (OTASP) and Wireless Local Area + Network (WLAN) Diffie-Hellman Parameters and Key Expansion + Functions + + [OTASP], [TIA683], and [WLAN] pre-set public parameters p and g to + their "published" values. This is necessary to protect against an + attacker sending bogus p and g values, tricking the legitimate user + to engage in improper Diffie-Hellman exponentiation and leaking some + information about the password. + + According to [OTASP], [TIA683], and [WLAN], g shall be set to + 00001101, and p to the following 1024-bit prime number (most + significant bit first): + + + + + +Brusilovsky, et al. Informational [Page 5] + +RFC 5683 PAK Diffie-Hellman Exchange February 2010 + + + 0xFFFFFFFF 0xFFFFFFFF 0xC90FDAA2 0x2168C234 0xC4C6628B + 0x80DC1CD1 0x29024E08 0x8A67CC74 0x020BBEA6 0x3B139B22 + 0x514A0879 0x8E3404DD 0xEF9519B3 0xCD3A431B 0x302B0A6D + 0xF25F1437 0x4FE1356D 0x6D51C245 0xE485B576 0x625E7EC6 + 0xF44C42E9 0xA637ED6B 0x0BFF5CB6 0xF406B7ED 0xEE386BFB + 0x5A899FA5 0xAE9F2411 0x7C4B1FE6 0x49286651 0xECE65381 + 0xFFFFFFFF 0xFFFFFFFF + + In addition, if short exponents [MP05] are used for Diffie-Hellman + parameters Ra and Rb, then they should have a minimum size of 384 + bits. The independent, random functions H1 and H2 should each output + 1152 bits, assuming prime p is 1024 bits long and session keys K are + 128 bits long. H3, H4, and H5 each output 128 bits. More + information on instantiating random functions using hash functions + can be found in [BR93]. We use the FIPS 180 SHA-1 hashing function + [FIPS180] below to instantiate the random function as done in [WLAN]; + however, SHA-256 can also be used: + + H1(z): + SHA-1(1|1|z) mod 2^128 | SHA-1(1|2|z) mod 2^128 |...| + | SHA-1(1|9|z) mod 2^128 + + H2(z): + SHA-1(2|1|z) mod 2^128 | SHA-1(2|2|z) mod 2^128 |...| + | SHA-1(2|9|z) mod 2^128 + + H3(z): SHA-1(3|len(z)|z|z) mod 2^128 + H4(z): SHA-1(4|len(z)|z|z) mod 2^128 + H5(z): SHA-1(5|len(z)|z|z) mod 2^128 + + In order to create 1152 output bits for H1 and H2, nine calls to + SHA-1 are made and the 128 least significant bits of each output are + used. The input payload of each call to SHA-1 consists of: + + a) 32 bits of function type, which for H1 is set to 1 and for H2 is + set to 2; + b) a 32-bit counter value, which is incremented from 1 to 9 for each + call to SHA-1; + c) the argument z [for (A|B|PW)]. + + The functions H3, H4, and H5 require only one call to the SHA-1 + hashing function and their respective payloads consist of: + + a) 32 bits of function type (e.g., 3 for H3); + b) a 32-bit value for the bit length of the argument z; + c) the actual argument repeated twice. + + Finally, the 128 least significant bits of the output are used. + + + +Brusilovsky, et al. Informational [Page 6] + +RFC 5683 PAK Diffie-Hellman Exchange February 2010 + + +5. Security Considerations + + Security considerations are as follows: + + - Identifiers + + Any protocol that uses PAK must specify a method for producing a + single representation of identity strings. + + - Shared secret + + PAK involves the use of a shared secret. Protection of the shared + values and managing (limiting) their exposure over time is + essential and can be achieved using well-known security policies + and measures. If a single secret is shared among more than two + entities (e.g., Alice, Bob, and Mallory), then Mallory can + represent himself as Alice to Bob without Bob being any the wiser. + + - Selection of Diffie-Hellman parameters + + The parameters p and g must be carefully selected in order not to + compromise the shared secret. Only previously agreed-upon values + for parameters p and g should be used in the PAK protocol. This + is necessary to protect against an attacker sending bogus p and g + values and thus tricking the other communicating party in an + improper Diffie-Hellman exponentiation. Both parties also need to + randomly select a new exponent each time the key-agreement + protocol is executed. If both parties re-use the same values, + then Forward Secrecy property is lost. + + In addition, if short exponents Ra and Rb are used, then they + should have a minimum size of 384 bits (assuming that 128-bit + session keys are used). Historically, the developers, who strived + for 128-bit security (and thus selected 256-bit exponents), added + 128 bits to the exponents to ensure the security reduction proofs. + This should explain how an "odd" length of 384 has been arrived + at. + + - Protection against attacks + + a) There is a potential attack, the so-called discrete logarithm + attack on the multiplicative group of congruencies modulo p, in + which an adversary can construct a table of discrete logarithms + to be used as a "dictionary". A sufficiently large prime, p, + must be selected to protect against such an attack. A proper + 1024-bit value for p and an appropriate value for g are + published in [WLAN] and [TIA683]. For the moment, this is what + has been implemented; however, a larger prime (i.e., one that + + + +Brusilovsky, et al. Informational [Page 7] + +RFC 5683 PAK Diffie-Hellman Exchange February 2010 + + + is 2048 bits long, or even larger) will definitely provide + better protection. It is important to note that once this is + done, the generator must be changed too, so this task must be + approached with extreme care. + + b) An online password attack can be launched by an attacker by + repeatedly guessing the password and attempting to + authenticate. The implementers of PAK should consider + employing mechanisms (such as lockouts) for preventing such + attacks. + + - Recommendations on H() functions + + The independent, random functions H1 and H2 should output 1152 + bits each, assuming prime p is 1024 bits long and session keys K + are 128 bits long. The random functions H3, H4, and H5 should + output 128 bits. + + An example of secure implementation of PAK is provided in [Plan9]. + +6. Acknowledgments + + The authors are grateful for the thoughtful comments received from + Shehryar Qutub, Ray Perlner, and Yaron Sheffer. Special thanks go to + Alfred Hoenes, Tim Polk, and Jim Schaad for their careful reviews and + invaluable help in preparing the final version of this document. + +7. References + +7.1. Normative References + + [X.1035] ITU-T, "Password-authenticated key exchange (PAK) + protocol", ITU-T Recommendation X.1035, 2007. + + [TIA683] TIA, "Over-the-Air Service Provisioning of Mobile + Stations in Spread Spectrum Systems", TIA-683-D, May + 2006. + +7.2. Informative References + + [Plan9] Alcatel-Lucent, "Plan 9 from Bell Labs", + http://netlib.bell-labs.com/plan9/. + + [BMP00] Boyko, V., MacKenzie, P., and S. Patel, "Provably secure + password authentication and key exchange using Diffie- + Hellman", Proceedings of Eurocrypt 2000. + + + + + +Brusilovsky, et al. Informational [Page 8] + +RFC 5683 PAK Diffie-Hellman Exchange February 2010 + + + [BR93] Bellare, M. and P. Rogaway, "Random Oracles are + Practical: A Paradigm for Designing Efficient Protocols", + Proceedings of the 5th Annual ACM Conference on Computer + and Communications Security, 1998. + + [DH76] Diffie, W. and M.E. Hellman, "New directions in + cryptography", IEEE Transactions on Information Theory 22 + (1976), 644-654. + + [FIPS180] NIST Federal Information Processing Standards, + Publication FIPS 180-3, "Secure Hash Standard", 2008. + + [MP05] MacKenzie, P. and S. Patel, "Hard Bits of the Discrete + Log with Applications to Password Authentication", CT-RSA + 2005. + + [OTASP] 3GPP2, "Over-the-Air Service Provisioning of Mobile + Stations in Spread Spectrum Systems", 3GPP2 C.S0016-C v. + 1.0 5, October 2004. + + [RFC2631] Rescorla, E., "Diffie-Hellman Key Agreement Method", RFC + 2631, June 1999. + + [WLAN] 3GPP2, "Wireless Local Area Network (WLAN) Interworking", + 3GPP2 X.S0028-0, v.1.0, April 2005. + + + + + + + + + + + + + + + + + + + + + + + + + + +Brusilovsky, et al. Informational [Page 9] + +RFC 5683 PAK Diffie-Hellman Exchange February 2010 + + +Authors' Addresses + + Alec Brusilovsky + Alcatel-Lucent + Room 9B-226, 1960 Lucent Lane + Naperville, IL 60566-7217 USA + Tel: +1 630 979 5490 + EMail: Alec.Brusilovsky@alcatel-lucent.com + + + Igor Faynberg + Alcatel-Lucent + Room 2D-144, 600 Mountain Avenue + Murray Hill, NJ 07974 USA + Tel: +1 908 582 2626 + EMail: igor.faynberg@alcatel-lucent.com + + + Sarvar Patel + Google, Inc. + 76 Ninth Avenue + New York, NY 10011 USA + Tel: +1 212 565 5907 + EMail: sarvar@google.com + + + Zachary Zeltsan + Alcatel-Lucent + Room 2D-150, 600 Mountain Avenue + Murray Hill, NJ 07974 USA + Tel: +1 908 582 2359 + EMail: zeltsan@alcatel-lucent.com + + + + + + + + + + + + + + + + + + + +Brusilovsky, et al. Informational [Page 10] + |