[ldap-sdk-commits] SF.net SVN: ldap-sdk:[1572] trunk/docs
A Java-based LDAP API
Brought to you by:
dirmgr,
kennethleo
|
From: <di...@us...> - 2022-10-11 14:18:45
|
Revision: 1572
http://sourceforge.net/p/ldap-sdk/code/1572
Author: dirmgr
Date: 2022-10-11 14:18:43 +0000 (Tue, 11 Oct 2022)
Log Message:
-----------
Add draft-schmaus-kitten-sasl-ht-08
Updated the set of LDAP-related specifications to include the latest
version of draft-schmaus-kitten-sasl-ht.
Modified Paths:
--------------
trunk/docs/release-notes.html
trunk/docs/specs/internet-drafts.html
Added Paths:
-----------
trunk/docs/specs/draft-schmaus-kitten-sasl-ht-08.txt
Removed Paths:
-------------
trunk/docs/specs/draft-schmaus-kitten-sasl-ht-04.txt
Modified: trunk/docs/release-notes.html
===================================================================
--- trunk/docs/release-notes.html 2022-09-02 17:17:58 UTC (rev 1571)
+++ trunk/docs/release-notes.html 2022-10-11 14:18:43 UTC (rev 1572)
@@ -6,6 +6,24 @@
<h2>Release Notes</h2>
+ <h3>Version 6.0.7</h3>
+
+ <p>
+ The following changes were made between the 6.0.6 and 6.0.7 releases:
+ </p>
+
+ <ul>
+ <li>
+ Updated the set of LDAP-related specifications to include the latest version of
+ draft-schmaus-kitten-sasl-ht.
+ <br><br>
+ </li>
+ </ul>
+
+ <p></p>
+
+
+
<h3>Version 6.0.6</h3>
<p>
Deleted: trunk/docs/specs/draft-schmaus-kitten-sasl-ht-04.txt
===================================================================
--- trunk/docs/specs/draft-schmaus-kitten-sasl-ht-04.txt 2022-09-02 17:17:58 UTC (rev 1571)
+++ trunk/docs/specs/draft-schmaus-kitten-sasl-ht-04.txt 2022-10-11 14:18:43 UTC (rev 1572)
@@ -1,616 +0,0 @@
-
-
-
-
-Common Authentication Technology Next Generation F. Schmaus
-Internet-Draft C. Egger
-Intended status: Experimental University of Erlangen-Nuremberg
-Expires: November 8, 2018 May 7, 2018
-
-
- The Hashed Token SASL Mechanism
- draft-schmaus-kitten-sasl-ht-04
-
-Abstract
-
- This document specifies the family of Hashed Token SASL mechanisms,
- which are meant to be used for quick re-authentication of a previous
- session. The Hashed Token SASL mechanism's authentication sequence
- consists of only one round-trip. This is achieved by the usage of
- short-lived, exclusively ephemeral hashed tokens. It further
- provides hash agility, mutual authentication and is secured by
- channel binding.
-
-Status of This Memo
-
- This Internet-Draft is submitted in full conformance with the
- provisions of BCP 78 and BCP 79.
-
- Internet-Drafts are working documents of the Internet Engineering
- Task Force (IETF). Note that other groups may also distribute
- working documents as Internet-Drafts. The list of current Internet-
- Drafts is at https://datatracker.ietf.org/drafts/current/.
-
- Internet-Drafts 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 Internet-Drafts as reference
- material or to cite them other than as "work in progress."
-
- This Internet-Draft will expire on November 8, 2018.
-
-Copyright Notice
-
- Copyright (c) 2018 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
- (https://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. Code Components extracted from this document must
- include Simplified BSD License text as described in Section 4.e of
-
-
-
-Schmaus & Egger Expires November 8, 2018 [Page 1]
-
-Internet-Draft May 2018
-
-
- the Trust Legal Provisions and are provided without warranty as
- described in the Simplified BSD License.
-
-Table of Contents
-
- 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
- 1.1. Conventions and Terminology . . . . . . . . . . . . . . . 3
- 1.2. Applicability . . . . . . . . . . . . . . . . . . . . . . 3
- 2. The HT Family of Mechanisms . . . . . . . . . . . . . . . . . 3
- 3. The HT Authentication Exchange . . . . . . . . . . . . . . . 4
- 3.1. Initiator First Message . . . . . . . . . . . . . . . . . 4
- 3.2. Initiator Authentication . . . . . . . . . . . . . . . . 6
- 3.3. Final Responder Message . . . . . . . . . . . . . . . . . 6
- 4. Compliance with SASL Mechanism Requirements . . . . . . . . . 6
- 5. Requirements for the Application-Protocol Extension . . . . . 7
- 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7
- 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
- 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 8
- 8.1. Normative References . . . . . . . . . . . . . . . . . . 8
- 8.2. Informative References . . . . . . . . . . . . . . . . . 10
- Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 10
- Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10
-
-1. Introduction
-
- This specification describes the the family of Hashed Token (HT)
- Simple Authentication and Security Layer (SASL) [RFC4422] mechanisms.
- The HT mechanism is designed to be used with short-lived, exclusively
- ephemeral tokens, called SASL-HT tokens, and allow for quick, one
- round-trip, re-authentication of a previous session.
-
- Further properties of the HT mechanism are 1) hash agility, 2) mutual
- authentication, and 3) being secured by channel binding.
-
- Clients are supposed to request SASL-HT tokens from the server after
- being authenticated using a "strong" SASL mechanism like SCRAM
- [RFC5802]. Hence a typical sequence of actions using HT may look
- like the following:
-
- A) Client authenticates using a strong mechanism (e.g., SCRAM)
- B) Client requests secret SASL-HT token
- C) Service returns SASL-HT token
- <normal client-server interaction here>
- D) Connection between client and server gets interrupted,
- for example because of a WiFi <-> GSM switch
- E) Client resumes previous session using HT and token from C)
- F) Service revokes the sucessfully used SASL-HT token
- [goto B]
-
-
-
-Schmaus & Egger Expires November 8, 2018 [Page 2]
-
-Internet-Draft May 2018
-
-
- The HT mechanism requires an accompanying, application protocol
- specific, extension, which allows clients to requests a new SASL-HT
- token (see Section 5). One example for such an application protocol
- specific extension based on HT is [XEP-0397]. This XMPP [RFC6120]
- extension protocol allows, amoungst other things, B) and C),
-
- Since the SASL-HT token is not salted, and only one hash iteration is
- used, the HT mechanism is not suitable to protect long-lived shared
- secrets (e.g. "passwords"). You may want to look at [RFC5802] for
- that.
-
-1.1. Conventions and Terminology
-
- 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 BCP
- 14 [RFC2119] [RFC8174] when, and only when, they appear in all
- capitals, as shown here.
-
-1.2. Applicability
-
- Because this mechanism transports information that should not be
- controlled by an attacker, the HT mechanism MUST only be used over
- channels protected by Transport Layer Security (TLS, see [RFC5246]),
- or over similar integrity-protected and authenticated channels. Also
- the application protoocl specific extension which requests a new
- SASL-HT token SHOULD only be used over similar protected channels.
-
- In addition, when TLS is used, the client MUST successfully validate
- the server's certificate ([RFC5280], [RFC6125]).
-
- The family of HT mechanisms is not applicable for proxy
- authentication, since they can not carry a authorization identity
- string (authzid).
-
-2. The HT Family of Mechanisms
-
- Each mechanism in this family differs by the choice of the hash
- algorithm and the choice of the channel binding [RFC5929] type.
-
- A HT mechanism name is a string beginning with "HT-" followed by the
- capitalized name of the used hash, followed by "-", and suffixed by
- one of 'ENDP' and 'UNIQ'.
-
- Hence each HT mechanism has a name of the following form:
-
- HT-<hash-alg>-<cb-type>
-
-
-
-
-Schmaus & Egger Expires November 8, 2018 [Page 3]
-
-Internet-Draft May 2018
-
-
- Where <hash-alg> is the capitalized "Hash Name String" of the IANA
- "Named Information Hash Algorithm Registry" [iana-hash-alg] as
- specified in [RFC6920], and <cb-type> is one of 'ENDP' or 'UNIQ'
- denoting the channel binding type. In case of 'ENDP', the tls-
- server-end-point channel binding type is used. In case of 'UNIQ',
- the tls-unique channel binding type is used. Valid channel binding
- types are defined in the IANA "Channel-Binding Types" registry
- [iana-cbt] as specified in [RFC5056].
-
- +------+----------------------+
- | CBT | Channel Binding Type |
- +------+----------------------+
- | ENDP | tls-server-end-point |
- | UNIQ | tls-unique |
- +------+----------------------+
-
- Mapping of CBT to Channel Bindings
-
- The following table lists the HT SASL mechanisms registered by this
- document.
-
- +------------------+------------------+-----------------------------+
- | Mechanism Name | HT Hash | Channel-binding unique |
- | | Algorithm | prefix |
- +------------------+------------------+-----------------------------+
- | HT-SHA-512-ENDP | SHA-512 | tls-server-end-point |
- | HT-SHA-512-UNIQ | SHA-512 | tls-unique |
- | HT-SHA3-512-ENDP | SHA3-512 | tls-server-end-point |
- | HT-SHA-256-UNIQ | SHA-256 | tls-unique |
- +------------------+------------------+-----------------------------+
-
- Defined HT SASL mechanisms
-
-3. The HT Authentication Exchange
-
- The mechanism consists of a simple exchange of exactly two messages
- between the initiator and responder.
-
- The following syntax specifications use the Augmented Backus-Naur
- form (ABNF) notation as specified in [RFC5234].
-
-3.1. Initiator First Message
-
- The HT mechanism starts with the initiator-msg, send by the initiator
- to the responder. The follwing lists the ABNF grammar for the
- initiator-msg:
-
-
-
-
-
-Schmaus & Egger Expires November 8, 2018 [Page 4]
-
-Internet-Draft May 2018
-
-
- initiator-msg = authcid NUL initiator-hashed-token
- authcid = 1*SAFE ; MUST accept up to 255 octets
- initiator-hashed-token = 1*OCTET
-
- NUL = %0x00 ; The null octet
- SAFE = UTF1 / UTF2 / UTF3 / UTF4
- ;; any UTF-8 encoded Unicode character except NUL
-
- UTF1 = %x01-7F ;; except NUL
- UTF2 = %xC2-DF UTF0
- UTF3 = %xE0 %xA0-BF UTF0 / %xE1-EC 2(UTF0) /
- %xED %x80-9F UTF0 / %xEE-EF 2(UTF0)
- UTF4 = %xF0 %x90-BF 2(UTF0) / %xF1-F3 3(UTF0) /
- %xF4 %x80-8F 2(UTF0)
- UTF0 = %x80-BF
-
- The initiator first message starts with the authentication identity
- (authcid, see[RFC4422]) as UTF-8 [RFC3629] encoded string. It is
- followed by initiator-hashed-token separated by as single null octet.
-
- The value of the initiator-hashed-token is defined as follows:
-
- initiator-hashed-token := HMAC(token, "Initiator" || cb-data)
-
- HMAC() is the function defined in [RFC2104] with H being the selected
- HT hash algorithm, 'cb-data' represents the data provided by the
- selected channel binding type, and 'token' are the UTF-8 encoded
- octets of the SASL-HT token string which acts as shared secret
- between initiator and responder.
-
- The initiator-msg MAY be included in TLS 1.3 0-RTT early data, as
- specified in [I-D.ietf-tls-tls13]. If this is the case, then the
- initiating entity MUST NOT include any further appliction protocol
- payload in the early data besides the HT initiator-msg and potential
- required framing of the SASL profile. The responder MUST abort the
- SASL authentication if the early data contains additional application
- protocol payload.
-
- TODO: It should be possible to exploit TLS 1.3 early data for
- "0.5" RTT resumption of the application protocol's session. That
- is, on resumption the initiating entity MUST NOT send any
- application protocol payload together with first flight data,
- besides the HT initiator-msg. But if the responding entity is
- able to verify the TLS 1.3 early data, then it can send additional
- application protocol payload right away together with the
- "resumption successful" response to the initiating entity.
-
-
-
-
-
-Schmaus & Egger Expires November 8, 2018 [Page 5]
-
-Internet-Draft May 2018
-
-
- TODO: Add note why HMAC() is always involved, even if HMAC() is
- usually not required when modern hash algorithms are used.
-
-3.2. Initiator Authentication
-
- Upon receiving the initiator-msg, the responder calculates itself the
- value of initiator-hashed-token and compares it with the received
- value found in the initiator-msg. If both values are equal, then the
- initiator has been successfully authenticated. Otherwise, if both
- values are not equal, then authentication MUST fail.
-
- If the responder was able to authenticate the initiator, then the
- used token MUST be revoked immediately.
-
-3.3. Final Responder Message
-
- After the initiator was authenticated the responder continues the
- SASL authentication by sending the responder-msg to the initiator.
-
- The ABNF for responder-msg is:
-
- responder-msg = 1*OCTET
-
- The responder-msg value is defined as follows:
-
- responder-msg := HMAC(token, "Responder" || cb-data)
-
- The initiating entity MUST verify the responder-msg to achieve mutual
- authentication.
-
-4. Compliance with SASL Mechanism Requirements
-
- This section describes compliance with SASL mechanism requirements
- specified in Section 5 of [RFC4422].
-
- 1. "HT-SHA-256-ENDP", "HT-SHA-256-UNIQ", "HT-SHA-3-512-ENDP" and
- "HT-SHA-3-512-UNIQ".
-
- 2. Definition of server-challenges and client-responses:
-
- a HT is a client-first mechanism.
-
- b HT does send additional data with success (the responder-msg).
-
- 3. HT is not capable of transferring authorization identities from
- the client to the server.
-
-
-
-
-
-Schmaus & Egger Expires November 8, 2018 [Page 6]
-
-Internet-Draft May 2018
-
-
- 4. HT does not offer any security layers (HT offers channel binding
- instead).
-
- 5. HT does not protect the authorization identity.
-
-5. Requirements for the Application-Protocol Extension
-
- It is REQUIRED that the application-protocol specific extension
- provides a mechanism to request a SASL-HT token in form of a Unicode
- string. The returned token MUST have been newly generated by a
- cryptographically secure random number generator and MUST contain at
- least 128 bit of entropy.
-
- It is RECOMMENDED that the the protocol allows the requestor to
- signal the name of the SASL mechanism which he intends to use with
- the token. If a token is used with a different mechanism than the
- one which was signalled upon requesting the token, then the
- authentication MUST fail. This allows to pin the token to a SASL
- mechanism, which increases the security because it makes it
- impossible for an attacker to downgrade the SASL mechanism.
-
-6. Security Considerations
-
- To be secure, the HT mechanism MUST be used over a TLS channel that
- has had the session hash extension [RFC7627] negotiated, or session
- resumption MUST NOT have been used.
-
- It is RECOMMENDED that implementations peridically require a full
- authentication using a strong SASL mechanism which does not use the
- SASL-HT token.
-
- It is of vital importance that the SASL-HT token is generated by a
- cryptographically secure random generator. See [RFC4086] for more
- information about Randomness Requirements for Security.
-
-7. IANA Considerations
-
- IANA has added the following family of SASL mechanisms to the SASL
- Mechanism registry established by [RFC4422]:
-
-
-
-
-
-
-
-
-
-
-
-
-Schmaus & Egger Expires November 8, 2018 [Page 7]
-
-Internet-Draft May 2018
-
-
- To: ia...@ia...
- Subject: Registration of a new SASL family HT
-
- SASL mechanism name (or prefix for the family): HT-*
- Security considerations:
- Section FIXME of draft-schmaus-kitten-sasl-ht
- Published specification (optional, recommended):
- draft-schmaus-kitten-sasl-ht-XX (TODO)
- Person & email address to contact for further information:
- IETF SASL WG <ki...@ie...>
- Intended usage: COMMON
- Owner/Change controller: IESG <ie...@ie...>
- Note: Members of this family MUST be explicitly registered
- using the "IETF Review" [@!RFC5226] registration procedure.
- Reviews MUST be requested on the Kitten WG mailing list
- <ki...@ie...> (or a successor designated by the responsible
- Security AD).
-
-8. References
-
-8.1. Normative References
-
- [I-D.ietf-tls-tls13]
- Rescorla, E., "The Transport Layer Security (TLS) Protocol
- Version 1.3", draft-ietf-tls-tls13-23 (work in progress),
- January 2018.
-
- [iana-cbt]
- Williams, N., "IANA Channel-Binding Types", 2010,
- <https://www.iana.org/assignments/channel-binding-types/
- channel-binding-types.xhtml>.
-
- [iana-hash-alg]
- Williams, N., "IANA Named Information Hash Algorithm
- Registry", 2010, <https://www.iana.org/assignments/named-
- information/named-information.xhtml#hash-alg>.
-
- [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed-
- Hashing for Message Authentication", RFC 2104,
- DOI 10.17487/RFC2104, February 1997,
- <https://www.rfc-editor.org/info/rfc2104>.
-
- [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
- Requirement Levels", BCP 14, RFC 2119,
- DOI 10.17487/RFC2119, March 1997,
- <https://www.rfc-editor.org/info/rfc2119>.
-
-
-
-
-
-Schmaus & Egger Expires November 8, 2018 [Page 8]
-
-Internet-Draft May 2018
-
-
- [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
- 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November
- 2003, <https://www.rfc-editor.org/info/rfc3629>.
-
- [RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker,
- "Randomness Requirements for Security", BCP 106, RFC 4086,
- DOI 10.17487/RFC4086, June 2005,
- <https://www.rfc-editor.org/info/rfc4086>.
-
- [RFC4422] Melnikov, A., Ed. and K. Zeilenga, Ed., "Simple
- Authentication and Security Layer (SASL)", RFC 4422,
- DOI 10.17487/RFC4422, June 2006,
- <https://www.rfc-editor.org/info/rfc4422>.
-
- [RFC5056] Williams, N., "On the Use of Channel Bindings to Secure
- Channels", RFC 5056, DOI 10.17487/RFC5056, November 2007,
- <https://www.rfc-editor.org/info/rfc5056>.
-
- [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
- Specifications: ABNF", STD 68, RFC 5234,
- DOI 10.17487/RFC5234, January 2008,
- <https://www.rfc-editor.org/info/rfc5234>.
-
- [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
- (TLS) Protocol Version 1.2", RFC 5246,
- DOI 10.17487/RFC5246, August 2008,
- <https://www.rfc-editor.org/info/rfc5246>.
-
- [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
- Housley, R., and W. Polk, "Internet X.509 Public Key
- Infrastructure Certificate and Certificate Revocation List
- (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,
- <https://www.rfc-editor.org/info/rfc5280>.
-
- [RFC5929] Altman, J., Williams, N., and L. Zhu, "Channel Bindings
- for TLS", RFC 5929, DOI 10.17487/RFC5929, July 2010,
- <https://www.rfc-editor.org/info/rfc5929>.
-
- [RFC6125] Saint-Andre, P. and J. Hodges, "Representation and
- Verification of Domain-Based Application Service Identity
- within Internet Public Key Infrastructure Using X.509
- (PKIX) Certificates in the Context of Transport Layer
- Security (TLS)", RFC 6125, DOI 10.17487/RFC6125, March
- 2011, <https://www.rfc-editor.org/info/rfc6125>.
-
-
-
-
-
-
-
-Schmaus & Egger Expires November 8, 2018 [Page 9]
-
-Internet-Draft May 2018
-
-
- [RFC6920] Farrell, S., Kutscher, D., Dannewitz, C., Ohlman, B.,
- Keranen, A., and P. Hallam-Baker, "Naming Things with
- Hashes", RFC 6920, DOI 10.17487/RFC6920, April 2013,
- <https://www.rfc-editor.org/info/rfc6920>.
-
- [RFC7627] Bhargavan, K., Ed., Delignat-Lavaud, A., Pironti, A.,
- Langley, A., and M. Ray, "Transport Layer Security (TLS)
- Session Hash and Extended Master Secret Extension",
- RFC 7627, DOI 10.17487/RFC7627, September 2015,
- <https://www.rfc-editor.org/info/rfc7627>.
-
- [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
- 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
- May 2017, <https://www.rfc-editor.org/info/rfc8174>.
-
-8.2. Informative References
-
- [RFC5802] Newman, C., Menon-Sen, A., Melnikov, A., and N. Williams,
- "Salted Challenge Response Authentication Mechanism
- (SCRAM) SASL and GSS-API Mechanisms", RFC 5802,
- DOI 10.17487/RFC5802, July 2010,
- <https://www.rfc-editor.org/info/rfc5802>.
-
- [RFC6120] Saint-Andre, P., "Extensible Messaging and Presence
- Protocol (XMPP): Core", RFC 6120, DOI 10.17487/RFC6120,
- March 2011, <https://www.rfc-editor.org/info/rfc6120>.
-
- [XEP-0397]
- Schmaus, F., "XEP-0397: Instant Stream Resumption", 2018,
- <https://xmpp.org/extensions/xep-0397.html>.
-
-Appendix A. Acknowledgments
-
- This document benefited from discussions on the KITTEN WG mailing
- list. The authors would like to specially thank Thijs Alkemade, Sam
- Whited and Alexey Melnikov for their comments on this topic.
- Furthermore we would like to thank Alexander Wuerstlein, who came up
- with the idea to pin the token to a SASL mechanism for increased
- security.
-
-Authors' Addresses
-
- Florian Schmaus
- University of Erlangen-Nuremberg
-
- Email: sc...@cs...
-
-
-
-
-
-Schmaus & Egger Expires November 8, 2018 [Page 10]
-
-Internet-Draft May 2018
-
-
- Christoph Egger
- University of Erlangen-Nuremberg
-
- Email: eg...@cs...
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Schmaus & Egger Expires November 8, 2018 [Page 11]
Added: trunk/docs/specs/draft-schmaus-kitten-sasl-ht-08.txt
===================================================================
--- trunk/docs/specs/draft-schmaus-kitten-sasl-ht-08.txt (rev 0)
+++ trunk/docs/specs/draft-schmaus-kitten-sasl-ht-08.txt 2022-10-11 14:18:43 UTC (rev 1572)
@@ -0,0 +1,616 @@
+
+
+
+
+Common Authentication Technology Next Generation F. Schmaus
+Internet-Draft C. Egger
+Intended status: Experimental FAU Erlangen-Nürnberg
+Expires: 13 April 2023 10 October 2022
+
+
+ The Hashed Token SASL Mechanism
+ draft-schmaus-kitten-sasl-ht-08
+
+Abstract
+
+ This I-D is developed at
+ https://github.com/Flowdalic/xeps/tree/master/draft-schmaus-
+ kitten-sasl-ht (https://github.com/Flowdalic/xeps/tree/master/
+ draft-schmaus-kitten-sasl-ht)
+
+ This document specifies the family of Hashed Token SASL mechanisms
+ which enable a proof-of-possession-based authentication scheme and
+ are meant to be used for quick re-authentication of a previous
+ session. The Hashed Token SASL mechanism's authentication sequence
+ consists of only one round-trip. The usage of short-lived,
+ exclusively ephemeral hashed tokens is achieving the single round-
+ trip property. The SASL mechanism specified herin further provides
+ hash agility, mutual authentication and is secured by channel
+ binding.
+
+Status of This Memo
+
+ This Internet-Draft is submitted in full conformance with the
+ provisions of BCP 78 and BCP 79.
+
+ Internet-Drafts are working documents of the Internet Engineering
+ Task Force (IETF). Note that other groups may also distribute
+ working documents as Internet-Drafts. The list of current Internet-
+ Drafts is at https://datatracker.ietf.org/drafts/current/.
+
+ Internet-Drafts 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 Internet-Drafts as reference
+ material or to cite them other than as "work in progress."
+
+ This Internet-Draft will expire on 13 April 2023.
+
+Copyright Notice
+
+ Copyright (c) 2022 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+
+
+
+Schmaus & Egger Expires 13 April 2023 [Page 1]
+
+Internet-Draft The Hashed Token SASL Mechanism October 2022
+
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents (https://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
+ 1.1. Conventions and Terminology . . . . . . . . . . . . . . . 3
+ 1.2. Applicability . . . . . . . . . . . . . . . . . . . . . . 3
+ 2. The HT Family of Mechanisms . . . . . . . . . . . . . . . . . 4
+ 3. The HT Authentication Exchange . . . . . . . . . . . . . . . 5
+ 3.1. Initiator First Message . . . . . . . . . . . . . . . . . 5
+ 3.2. Initiator Authentication . . . . . . . . . . . . . . . . 6
+ 3.3. Final Responder Message . . . . . . . . . . . . . . . . . 6
+ 4. Compliance with SASL Mechanism Requirements . . . . . . . . . 7
+ 5. Requirements for the Application-Protocol Extension . . . . . 7
+ 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7
+ 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
+ 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 8
+ 8.1. Normative References . . . . . . . . . . . . . . . . . . 8
+ 8.2. Informative References . . . . . . . . . . . . . . . . . 10
+ Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 11
+ Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11
+
+1. Introduction
+
+ This specification describes the family of Hashed Token (HT) Simple
+ Authentication and Security Layer (SASL) [RFC4422] mechanisms, which
+ enable a proof-of-possession-based authentication scheme. The HT
+ mechanism is designed to be used with short-lived, exclusively
+ ephemeral tokens, called SASL-HT tokens, and allow for quick, one
+ round-trip, re-authentication of a previous session.
+
+ Further properties of the HT mechanism are 1) hash agility, 2) mutual
+ authentication, and 3) being secured by channel binding.
+
+ Clients are supposed to request SASL-HT tokens from the server after
+ being authenticated using a "strong" SASL mechanism like SCRAM
+ [RFC5802]. Hence a typical sequence of actions using HT may look
+ like the following:
+
+
+
+
+
+
+
+
+
+Schmaus & Egger Expires 13 April 2023 [Page 2]
+
+Internet-Draft The Hashed Token SASL Mechanism October 2022
+
+
+ A) Client authenticates using a strong mechanism (e.g., SCRAM)
+ B) Client requests secret SASL-HT token
+ C) Service returns SASL-HT token
+ <normal client-server interaction here>
+ D) Connection between client and server gets interrupted,
+ for example because of a WiFi ↔ GSM switch
+ E) Client resumes the previous session using HT and token from C)
+ F) Service revokes the successfully used SASL-HT token
+ [goto B]
+
+ The HT mechanism requires an accompanying, application protocol
+ specific, extension, which allows clients to requests a new SASL-HT
+ token (see Section 5 (Section 5)). One example for such an
+ application protocol specific extension based on HT is [XEP-0397].
+ This XMPP [RFC6120] extension protocol allows, amongst other things,
+ B) and C),
+
+ Since the SASL-HT token is not salted, and only one hash iteration is
+ used, the HT mechanism is not suitable to protect long-lived shared
+ secrets (e.g. "passwords"). You may want to look at [RFC5802] for
+ that.
+
+1.1. Conventions and Terminology
+
+ 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
+ BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
+ capitals, as shown here. These words may also appear in this
+ document in lower case as plain English words, absent their normative
+ meanings.
+
+1.2. Applicability
+
+ Because this mechanism transports information that should not be
+ controlled by an attacker, the HT mechanism *MUST* only be used over
+ channels protected by Transport Layer Security (TLS, see [RFC5246]),
+ or over similar integrity-protected and authenticated channels.
+ Also, the application protcol specific extension which requests a new
+ SASL-HT token *SHOULD* only be used over similarly protected
+ channels.
+
+ Also, when TLS is used, the client *MUST* successfully validate the
+ server's certificate ([RFC5280], [RFC6125]).
+
+ The family of HT mechanisms is not applicable for proxy
+ authentication since they can not carry an authorization identity
+ string (authzid).
+
+
+
+Schmaus & Egger Expires 13 April 2023 [Page 3]
+
+Internet-Draft The Hashed Token SASL Mechanism October 2022
+
+
+2. The HT Family of Mechanisms
+
+ Each mechanism in this family differs by choice of the hash algorithm
+ and the choice of the channel binding [RFC5929] type.
+
+ An HT mechanism name is a string beginning with "HT-" followed by the
+ capitalised name of the used hash, followed by "-", and suffixed by
+ one of 'ENDP' and 'UNIQ'.
+
+ Hence each HT mechanism has a name of the following form:
+
+ HT-<hash-alg>-<cb-type>
+
+ Where <hash-alg> is the capitalised "Hash Name String" of the IANA
+ "Named Information Hash Algorithm Registry" [iana-hash-alg] as
+ specified in [RFC6920], and <cb-type> is one of 'ENDP', 'UNIQ', or
+ 'EXPR' denoting the channel binding type. In the case of 'ENDP', the
+ tls-server-end-point channel binding type is used. In the case of
+ 'UNIQ', the tls-unique channel binding type is used. In the case of
+ 'EXPR', the tls-exporter [RFC9266] channel binding type is used.
+ Valid channel binding types are defined in the IANA "Channel-Binding
+ Types" registry [iana-cbt] as specified in [RFC5056].
+
+ +=========+======================+
+ | cb-type | Channel Binding Type |
+ +=========+======================+
+ | ENDP | tls-server-end-point |
+ +---------+----------------------+
+ | UNIQ | tls-unique |
+ +---------+----------------------+
+ | EXPR | tls-exporter |
+ +---------+----------------------+
+
+ Table 1: Mapping of cb-type to
+ Channel Binding Types
+
+ The following table lists some examples of HT SASL mechanisms
+ registered by this document.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Schmaus & Egger Expires 13 April 2023 [Page 4]
+
+Internet-Draft The Hashed Token SASL Mechanism October 2022
+
+
+ +==================+===================+======================+
+ | Mechanism Name | HT Hash Algorithm | Channel-binding |
+ | | | unique prefix |
+ +==================+===================+======================+
+ | HT-SHA-512-ENDP | SHA-512 | tls-server-end-point |
+ +------------------+-------------------+----------------------+
+ | HT-SHA-512-UNIQ | SHA-512 | tls-unique |
+ +------------------+-------------------+----------------------+
+ | HT-SHA3-512-ENDP | SHA3-512 | tls-server-end-point |
+ +------------------+-------------------+----------------------+
+ | HT-SHA-256-UNIQ | SHA-256 | tls-unique |
+ +------------------+-------------------+----------------------+
+
+ Table 2: Examples of HT SASL mechanisms
+
+3. The HT Authentication Exchange
+
+ The mechanism consists of a simple exchange of precisely two messages
+ between the initiator and responder.
+
+ The following syntax specifications use the Augmented Backus-Naur
+ form (ABNF) notation as specified in [RFC5234].
+
+3.1. Initiator First Message
+
+ The HT mechanism starts with the initiator-msg, send by the initiator
+ to the responder. The following lists the ABNF grammar for the
+ initiator-msg:
+
+ initiator-msg = authcid NUL initiator-hashed-token
+ authcid = 1*SAFE ; MUST accept up to 255 octets
+ initiator-hashed-token = 1*OCTET
+
+ NUL = %0x00 ; The null octet
+ SAFE = UTF1 / UTF2 / UTF3 / UTF4
+ ;; any UTF-8 encoded Unicode character except NUL
+
+ UTF1 = %x01-7F ;; except NUL
+ UTF2 = %xC2-DF UTF0
+ UTF3 = %xE0 %xA0-BF UTF0 / %xE1-EC 2(UTF0) /
+ %xED %x80-9F UTF0 / %xEE-EF 2(UTF0)
+ UTF4 = %xF0 %x90-BF 2(UTF0) / %xF1-F3 3(UTF0) /
+ %xF4 %x80-8F 2(UTF0)
+ UTF0 = %x80-BF
+
+ The initiator first message starts with the authentication identity
+ (authcid, see[RFC4422]) as UTF-8 [RFC3629] encoded string. It is
+ followed by initiator-hashed-token separated by as single null octet.
+
+
+
+Schmaus & Egger Expires 13 April 2023 [Page 5]
+
+Internet-Draft The Hashed Token SASL Mechanism October 2022
+
+
+ The value of the initiator-hashed-token is defined as follows:
+
+ initiator-hashed-token := HMAC(token, "Initiator" || cb-data)
+
+ HMAC() is the function defined in [RFC2104] with H being the selected
+ HT hash algorithm, 'cb-data' represents the data provided by the
+ selected channel binding type, and 'token' are the UTF-8 encoded
+ octets of the SASL-HT token string which acts as a shared secret
+ between initiator and responder.
+
+ The initiator-msg *MAY* be included in TLS 1.3 0-RTT early data, as
+ specified in [RFC8446]. If this is the case, then the initiating
+ entity *MUST NOT* include any further application protocol payload in
+ the early data besides the HT initiator-msg and potential required
+ framing of the SASL profile. The responder *MUST* abort the SASL
+ authentication if the early data contains additional application
+ protocol payload.
+
+ SASL-HT hence allows exploiting TLS 1.3 early data for "0.5 Round
+ Trip Time (RTT)" resumption of the application protocol's session.
+ Using TLS early data requires extra care when implementing: The
+ early data should only contain the SASL-HT payload, i.e., the
+ initiator-msg, and not an application protocol specific payload.
+ The reason for this is that the early data could be replayed, and
+ thus needs to carry an idempotent operation. On the other hand,
+ if the responding entity can verify the early data, then it can
+ send additional application protocol payload together with the
+ "resumption successful" response to the initiating entity.
+
+3.2. Initiator Authentication
+
+ Upon receiving the initiator-msg, the responder calculates itself the
+ value of initiator-hashed-token and compares it with the received
+ value found in the initiator-msg. If both values are equal, then the
+ initiator has been successfully authenticated. Otherwise, if both
+ values are not equal, then authentication *MUST* fail.
+
+ If the responder was able to authenticate the initiator, then the
+ used token *MUST* be revoked immediately.
+
+3.3. Final Responder Message
+
+ After the initiator was authenticated the responder continues the
+ SASL authentication by sending the responder-msg to the initiator.
+
+ The ABNF for responder-msg is:
+
+ responder-msg = 1*OCTET
+
+
+
+Schmaus & Egger Expires 13 April 2023 [Page 6]
+
+Internet-Draft The Hashed Token SASL Mechanism October 2022
+
+
+ The responder-msg value is defined as follows:
+
+ responder-msg := HMAC(token, "Responder" || cb-data)
+
+ The initiating entity *MUST* verify the responder-msg to achieve
+ mutual authentication.
+
+4. Compliance with SASL Mechanism Requirements
+
+ This section describes compliance with SASL mechanism requirements
+ specified in Section 5 of [RFC4422].
+
+ 1. "HT-SHA-256-ENDP", "HT-SHA-256-UNIQ", "HT-SHA-3-512-ENDP" and
+ "HT-SHA-3-512-UNIQ".
+
+ 2. Definition of server-challenges and client-responses: a) HT is a
+ client-first mechanism. b) HT does send additional data with
+ success (the responder-msg).
+
+ 3. HT is not capable of transferring authorization identities from
+ the client to the server.
+
+ 4. HT does not offer any security layers (HT offers channel binding
+ instead).
+
+ 5. HT does not protect the authorization identity.
+
+5. Requirements for the Application-Protocol Extension
+
+ It is *REQUIRED* that the application-protocol specific extension
+ provides a mechanism to request a SASL-HT token in form of a Unicode
+ string. The returned token *MUST* have been newly generated by a
+ cryptographically secure random number generator and MUST contain at
+ least 128 bit of entropy.
+
+ It is *RECOMMENDED* that the protocol allows the requestor to signal
+ the name of the SASL mechanism which he intends to use with the
+ token. If a token is used with a different mechanism than the one
+ which was signalled upon requesting the token, then the
+ authentication *MUST* fail. This allows pinning the token to a SASL
+ mechanism, which increases the security because it makes it
+ impossible for an attacker to downgrade the SASL mechanism.
+
+6. Security Considerations
+
+ To be secure, the HT mechanism *MUST* be used over a TLS channel that
+ has had the session hash extension [RFC7627] negotiated, or session
+ resumption *MUST NOT* have been used.
+
+
+
+Schmaus & Egger Expires 13 April 2023 [Page 7]
+
+Internet-Draft The Hashed Token SASL Mechanism October 2022
+
+
+ It is *RECOMMENDED* that implementations periodically require a full
+ authentication using a strong SASL mechanism which does not use the
+ SASL-HT token.
+
+ It is of vital importance that the SASL-HT token is generated by a
+ cryptographically secure random generator. See [RFC4086] for more
+ information about Randomness Requirements for Security.
+
+7. IANA Considerations
+
+ IANA is requested to add the following family of SASL mechanisms to
+ the SASL Mechanism registry established by [RFC4422]:
+
+ To: ia...@ia...
+
+ Subject: Registration of a new SASL family HT
+
+ SASL mechanism name (or prefix for the family): HT-*
+
+ Security considerations: Section 6 of draft-schmaus-kitten-sasl-ht
+
+ Published specification (optional, recommended): draft-schmaus-
+ kitten-sasl-ht-XX (TODO)
+
+ Person & email address to contact for further information: IETF
+ SASL WG ki...@ie... (mailto:ki...@ie...)
+
+ Intended usage: COMMON
+
+ Owner/Change controller: IESG ie...@ie... (mailto:ie...@ie...)
+
+ Note: Members of this family MUST be explicitly registered using
+ the "IETF Review" [RFC5226] registration procedure. Reviews MUST
+ be requested on the Kitten WG mailing list ki...@ie...
+ (mailto:ki...@ie...) (or a successor designated by the
+ responsible Security AD).
+
+8. References
+
+8.1. Normative References
+
+ [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed-
+ Hashing for Message Authentication", RFC 2104,
+ DOI 10.17487/RFC2104, February 1997,
+ <https://www.rfc-editor.org/info/rfc2104>.
+
+
+
+
+
+
+Schmaus & Egger Expires 13 April 2023 [Page 8]
+
+Internet-Draft The Hashed Token SASL Mechanism October 2022
+
+
+ [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
+ 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November
+ 2003, <https://www.rfc-editor.org/info/rfc3629>.
+
+ [RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker,
+ "Randomness Requirements for Security", BCP 106, RFC 4086,
+ DOI 10.17487/RFC4086, June 2005,
+ <https://www.rfc-editor.org/info/rfc4086>.
+
+ [RFC4422] Melnikov, A., Ed. and K. Zeilenga, Ed., "Simple
+ Authentication and Security Layer (SASL)", RFC 4422,
+ DOI 10.17487/RFC4422, June 2006,
+ <https://www.rfc-editor.org/info/rfc4422>.
+
+ [RFC5056] Williams, N., "On the Use of Channel Bindings to Secure
+ Channels", RFC 5056, DOI 10.17487/RFC5056, November 2007,
+ <https://www.rfc-editor.org/info/rfc5056>.
+
+ [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
+ Specifications: ABNF", STD 68, RFC 5234,
+ DOI 10.17487/RFC5234, January 2008,
+ <https://www.rfc-editor.org/info/rfc5234>.
+
+ [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
+ (TLS) Protocol Version 1.2", RFC 5246,
+ DOI 10.17487/RFC5246, August 2008,
+ <https://www.rfc-editor.org/info/rfc5246>.
+
+ [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
+ Housley, R., and W. Polk, "Internet X.509 Public Key
+ Infrastructure Certificate and Certificate Revocation List
+ (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,
+ <https://www.rfc-editor.org/info/rfc5280>.
+
+ [RFC5929] Altman, J., Williams, N., and L. Zhu, "Channel Bindings
+ for TLS", RFC 5929, DOI 10.17487/RFC5929, July 2010,
+ <https://www.rfc-editor.org/info/rfc5929>.
+
+ [RFC6125] Saint-Andre, P. and J. Hodges, "Representation and
+ Verification of Domain-Based Application Service Identity
+ within Internet Public Key Infrastructure Using X.509
+ (PKIX) Certificates in the Context of Transport Layer
+ Security (TLS)", RFC 6125, DOI 10.17487/RFC6125, March
+ 2011, <https://www.rfc-editor.org/info/rfc6125>.
+
+
+
+
+
+
+
+Schmaus & Egger Expires 13 April 2023 [Page 9]
+
+Internet-Draft The Hashed Token SASL Mechanism October 2022
+
+
+ [RFC6920] Farrell, S., Kutscher, D., Dannewitz, C., Ohlman, B.,
+ Keranen, A., and P. Hallam-Baker, "Naming Things with
+ Hashes", RFC 6920, DOI 10.17487/RFC6920, April 2013,
+ <https://www.rfc-editor.org/info/rfc6920>.
+
+ [RFC7627] Bhargavan, K., Ed., Delignat-Lavaud, A., Pironti, A.,
+ Langley, A., and M. Ray, "Transport Layer Security (TLS)
+ Session Hash and Extended Master Secret Extension",
+ RFC 7627, DOI 10.17487/RFC7627, September 2015,
+ <https://www.rfc-editor.org/info/rfc7627>.
+
+ [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
+ Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
+ <https://www.rfc-editor.org/info/rfc8446>.
+
+ [RFC9266] Whited, S., "Channel Bindings for TLS 1.3", RFC 9266,
+ DOI 10.17487/RFC9266, July 2022,
+ <https://www.rfc-editor.org/info/rfc9266>.
+
+ [iana-hash-alg]
+ Williams, N., "IANA Named Information Hash Algorithm
+ Registry", 2010, <https://www.iana.org/assignments/named-
+ information/named-information.xhtml#hash-alg>.
+
+ [iana-cbt] Williams, N., "IANA Channel-Binding Types", 2010,
+ <https://www.iana.org/assignments/channel-binding-types/
+ channel-binding-types.xhtml>.
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119,
+ DOI 10.17487/RFC2119, March 1997,
+ <https://www.rfc-editor.org/info/rfc2119>.
+
+ [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
+ 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
+ May 2017, <https://www.rfc-editor.org/info/rfc8174>.
+
+8.2. Informative References
+
+ [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
+ IANA Considerations Section in RFCs", RFC 5226,
+ DOI 10.17487/RFC5226, May 2008,
+ <https://www.rfc-editor.org/info/rfc5226>.
+
+
+
+
+
+
+
+
+Schmaus & Egger Expires 13 April 2023 [Page 10]
+
+Internet-Draft The Hashed Token SASL Mechanism October 2022
+
+
+ [RFC5802] Newman, C., Menon-Sen, A., Melnikov, A., and N. Williams,
+ "Salted Challenge Response Authentication Mechanism
+ (SCRAM) SASL and GSS-API Mechanisms", RFC 5802,
+ DOI 10.17487/RFC5802, July 2010,
+ <https://www.rfc-editor.org/info/rfc5802>.
+
+ [RFC6120] Saint-Andre, P., "Extensible Messaging and Presence
+ Protocol (XMPP): Core", RFC 6120, DOI 10.17487/RFC6120,
+ March 2011, <https://www.rfc-editor.org/info/rfc6120>.
+
+ [XEP-0397] Schmaus, F., "XEP-0397: Instant Stream Resumption", 3
+ November 2018,
+ <https://xmpp.org/extensions/xep-0397.html>.
+
+Acknowledgments
+
+ This document benefited from discussions on the KITTEN WG mailing
+ list. The authors would like to especially thank Thijs Alkemade, Sam
+ Whited and Alexey Melnikov for their comments on this topic.
+ Furthermore, we would like to thank Alexander Wuerstlein, who came up
+ with the idea to pin the token to a SASL mechanism for increased
+ security.
+
+Authors' Addresses
+
+ Florian Schmaus
+ FAU Erlangen-Nürnberg
+ Email: fl...@cs...
+
+
+ Christoph Egger
+ FAU Erlangen-Nürnberg
+ Email: eg...@cs...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Schmaus & Egger Expires 13 April 2023 [Page 11]
Modified: trunk/docs/specs/internet-drafts.html
===================================================================
--- trunk/docs/specs/internet-drafts.html 2022-09-02 17:17:58 UTC (rev 1571)
+++ trunk/docs/specs/internet-drafts.html 2022-10-11 14:18:43 UTC (rev 1572)
@@ -672,9 +672,9 @@
</li>
<li>
- <a href="draft-schmaus-kitten-sasl-ht-04.txt">draft-schmaus-kitten-sasl-ht-04</a>: The Hashed Token SASL Mechanism
+ <a href="draft-schmaus-kitten-sasl-ht-08.txt">draft-schmaus-kitten-sasl-ht-08</a>: The Hashed Token SASL Mechanism
<br>
- Expiration Date: November 8, 2018
+ Expiration Date: April 13, 2023
<br><br>
</li>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|