 1/draftietfhttpauthmutualalgo06.txt 20161113 17:14:10.617303714 0800
+++ 2/draftietfhttpauthmutualalgo07.txt 20161113 17:14:10.649304474 0800
@@ 1,25 +1,25 @@
HTTPAUTH Working Group Y. Oiwa
InternetDraft H. Watanabe
Intended status: Experimental H. Takagi
Expires: February 18, 2017 ITRI, AIST
+Expires: May 18, 2017 ITRI, AIST
K. Maeda
T. Hayashi
Lepidum
Y. Ioku
Individual
 August 17, 2016
+ November 14, 2016
Mutual Authentication Protocol for HTTP: KAM3based Cryptographic
Algorithms
 draftietfhttpauthmutualalgo06
+ draftietfhttpauthmutualalgo07
Abstract
This document specifies cryptographic algorithms for use with the
Mutual user authentication method for the Hypertext Transport
Protocol (HTTP).
Status of this Memo
This InternetDraft is submitted in full conformance with the
@@ 28,21 +28,21 @@
InternetDrafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as InternetDrafts. The list of current Internet
Drafts is at http://datatracker.ietf.org/drafts/current/.
InternetDrafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use InternetDrafts as reference
material or to cite them other than as "work in progress."
 This InternetDraft will expire on February 18, 2017.
+ This InternetDraft will expire on May 18, 2017.
Copyright Notice
Copyright (c) 2016 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/licenseinfo) in effect on the date of
publication of this document. Please review these documents
@@ 52,30 +52,29 @@
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
2. Cryptographic Overview (Nonnormative) . . . . . . . . . . . . 3
3. Authentication Algorithms . . . . . . . . . . . . . . . . . . 4
3.1. Support Functions and Notations . . . . . . . . . . . . . 5
 3.2. Functions for Discrete Logarithm Settings . . . . . . . . 5
+ 3.2. Functions for Discrete Logarithm Settings . . . . . . . . 6
3.3. Functions for EllipticCurve Settings . . . . . . . . . . 7
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
5. Security Considerations . . . . . . . . . . . . . . . . . . . 9
5.1. General Implementation Considerations . . . . . . . . . . 9
5.2. Cryptographic Assumptions and Considerations . . . . . . . 9
 6. Intellectual Properties Notice . . . . . . . . . . . . . . . . 10
 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10
 7.1. Normative References . . . . . . . . . . . . . . . . . . . 10
 7.2. Informative References . . . . . . . . . . . . . . . . . . 11
+ 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10
+ 6.1. Normative References . . . . . . . . . . . . . . . . . . . 10
+ 6.2. Informative References . . . . . . . . . . . . . . . . . . 10
Appendix A. (Informative) Group Parameters for Discrete
Logarithm Based Algorithms . . . . . . . . . . . . . 11
Appendix B. (Informative) Derived Numerical Values . . . . . . . 13
Appendix C. (Informative) Draft Change Log . . . . . . . . . . . 14
C.1. Changes in Httpauth WG Revision 06 . . . . . . . . . . . . 14
C.2. Changes in Httpauth WG Revision 05 . . . . . . . . . . . . 14
C.3. Changes in Httpauth WG revision 04 . . . . . . . . . . . . 14
C.4. Changes in Httpauth WG revision 03 . . . . . . . . . . . . 14
C.5. Changes in Httpauth WG revision 02 . . . . . . . . . . . . 14
C.6. Changes in Httpauth WG revision 01 . . . . . . . . . . . . 14
@@ 84,25 +83,26 @@
C.9. Changes in HTTPAUTH revision 01 . . . . . . . . . . . . . 15
C.10. Changes in revision 02 . . . . . . . . . . . . . . . . . . 15
C.11. Changes in revision 01 . . . . . . . . . . . . . . . . . . 15
C.12. Changes in revision 00 . . . . . . . . . . . . . . . . . . 15
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 15
1. Introduction
This document specifies algorithms for use withMutual authentication
protocol for HyperText Transport Protocol (HTTP)
 [ID.ietfhttpauthmutual]. The algorithms are based on "Augmented
 Passwordbased Authenticated Key Exchange" (Augmented PAKE)
 techniques. In particular, it uses one of three key exchange
 algorithms defined in ISO 117704: "Key management  Mechanisms based
 on weak secrets" [ISO.117704.2006] as its basis.
+ [ID.ietfhttpauthmutual] (referred as the "core specification"
+ hereafter). The algorithms are based on "Augmented Passwordbased
+ Authenticated Key Exchange" (Augmented PAKE) techniques. In
+ particular, it uses one of three key exchange algorithms defined in
+ ISO 117704: "Key management  Mechanisms based on weak secrets"
+ [ISO.117704.2006] as its basis.
In very brief summary, Mutual authentication protocol exchanges four
values, K_c1, K_s1, VK_c and VK_s, to perform authenticated key
exchanges, using the passwordderived secret pi and its "augmented
version" J(pi). This document defines the set of functions K_c1,
K_s1, and J for a specific algorithm family.
Please note that from the view of cryptographic literature, the
original functionality of Augmented PAKE is separated into the
functions K_c1 and K_s1 as defined in this draft, and the functions
@@ 115,34 +115,32 @@
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
[RFC2119].
The term "natural numbers" refers to the nonnegative integers
(including zero) throughout this document.
This document treats both the input (domain) and the output
(codomain) of hash functions to be octet strings. When a natural
 number output is required, the notation INT(H(s)) is used.
+ number output of hash function H is required, it will be notated like
+ INT(H(s)).
2. Cryptographic Overview (Nonnormative)
The cryptographic primitive used in this algorithm specification is
based on a variant of augmented PAKE proposed by T. Kwon, called
APKASAMP, originally submitted to IEEE P1363.2. The general flow of
the successful exchange is shown below, for informative purposes
 only. The DLbased notations are used, and all group operations (mod
 q and mod r) are omitted.

 Note that the only messages corresponding to the first two messages
 are defined in this specification. Those for latter two messages are
 defined in the main specification [ID.ietfhttpauthmutual].
+ only. The multiplicative notations are used for group operators, and
+ all modulus operations for finite groups (mod q and mod r) are
+ omitted.
C: S_c1 = random
C: K_c1 = g^(S_c1)
 ID, K_c1 >
C: t_1 = H1(K_c1) S: t_1 = H1(K_c1)
S: fetch J = g^pi by ID
S: S_s1 = random
S: K_s1 = (J * K_c1^(t_1))^(S_s1)
< K_s1 
C: t_2 = H2(K_c1, K_s1) S: t_2 = H2(K_c1, K_s1)
@@ 151,20 +149,27 @@
(assumption at this point: z = z' if authentication succeeded)
C: VK_c = H4(K_c1, K_s1, z) S: VK_c' = H4(K_c1, K_s1, z')
 VK_c >
S: assert(VK_c = VK_c')
C: VK_s' = H3(K_c1, K_s1, z) S: VK_s = H3(K_c1, K_s1, z')
< VK_s 
C: assert(VK_s = VK_s')
+ Note that the concrete (binary) message formats (mapping to HTTP
+ messages), as well as the formal definitions of equations for the
+ latter two messages, are defined in core specification
+ [ID.ietfhttpauthmutual]. The formal definitions for values
+ corresponding to the first two messages are defined in the following
+ sections.
+
3. Authentication Algorithms
This document specifies one family of APKASAMP based algorithm.
This family consists of four authentication algorithms, which differ
only in their underlying mathematical groups and security parameters.
These algorithms do not add any additional parameters. The tokens
for these algorithms are
o isokam3dl2048sha256: for the 2048bit discrete logarithm
setting with the SHA256 hash function.
@@ 283,21 +287,22 @@
protocol exchange. This functionality is contained in the functions
VK_c and VK_s.)
3.3. Functions for EllipticCurve Settings
For the ellipticcurve setting, we refer to some of the domain
parameters by the following symbols:
o q: for the prime used to define the group.
 o G: for the defined point called the generator.
+ o G: for the point defined with the underlying group called "the
+ generator".
o h: for the cofactor of the group.
o r: for the order of the subgroup generated by G.
The function P(p) converts a curve point p into an integer
representing point p, by computing x * 2 + (y mod 2), where (x, y)
are the coordinates of point p. P'(z) is the inverse of function P,
that is, it converts an integer z to a point p that satisfies P(p) =
z. If such p exists, it is uniquely defined. Otherwise, z does not
@@ 409,72 +415,58 @@
The latter usually involves some kinds of exchange transaction to
be verified, to avoid security risks or vulnerabilities caused by
mixing values from from two or more key exchanges. In the design
of the algorithms in this document, such a functionality is
defined in a generalized manner in the core specification
[ID.ietfhttpauthmutual] (see definitions of VK_c and VK_s). If
the algorithm defined above is used in other protocols, this
aspect MUST be given careful consideration.
o The domain parameters chosen and specified in this draft are based
 on a few assumptions. In the DL setting, q has to be a safe prime
 ([(q  1) / 2] must also be prime), and r should be the largest
 possible value [(q  1) / 2]. In the EC setting, r has to be
 prime. Defining a variation of this algorithm using a different
 domain parameter SHOULD be attentive to these conditions.

6. Intellectual Properties Notice

 The National Institute of Advanced Industrial Science and Technology
 (AIST) and Yahoo! Japan, Inc. have jointly submitted a patent
 application on the protocol proposed in this documentation to the
 Patent Office of Japan. The patent is intended to be open to any
 implementer of this protocol and its variants in a nonexclusive
 royaltyfree manner. For the details of the patent application and
 its status, please contact the author of this document.

 The ellipticcurve based authentication algorithms might involve
 several existing thirdparty patents. The authors of the document
 take no position regarding the validity or scope of such patents, and
 other patents as well.
+ on a few assumptions. In the discretelogarithm setting, q has to
+ be a safe prime ([(q  1) / 2] must also be prime), and r should
+ be the largest possible value [(q  1) / 2]. In the elliptic
+ curve setting, r has to be prime. Defining a variation of this
+ algorithm using a different domain parameter SHOULD be attentive
+ to these conditions.
7. References
+6. References
7.1. Normative References
+6.1. Normative References
[FIPS.1802.2002]
National Institute of Standards and Technology, "Secure
Hash Standard", FIPS PUB 1802, August 2002, .
[FIPS.1864.2013]
National Institute of Standards and Technology, "Digital
Signature Standard (DSS)", FIPS PUB 1864, July 2013, .
[ID.ietfhttpauthmutual]
Oiwa, Y., Watanabe, H., Takagi, H., Maeda, K., Hayashi,
T., and Y. Ioku, "Mutual Authentication Protocol for
 HTTP", draftietfhttpauthmutual09 (work in progress),
 August 2016.
+ HTTP", draftietfhttpauthmutual11 (work in progress),
+ November 2016.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/
RFC2119, March 1997,
.
[RFC3526] Kivinen, T. and M. Kojo, "More Modular Exponential (MODP)
DiffieHellman groups for Internet Key Exchange (IKE)",
RFC 3526, DOI 10.17487/RFC3526, May 2003,
.
7.2. Informative References
+6.2. Informative References
[ISO.117704.2006]
International Organization for Standardization,
"Information technology  Security techniques  Key
management  Part 4: Mechanisms based on weak secrets",
ISO Standard 117704, May 2006.
[RFC6090] McGrew, D., Igoe, K., and M. Salter, "Fundamental Elliptic
Curve Cryptography Algorithms", RFC 6090, DOI 10.17487/
RFC6090, February 2011,