| draft-ietf-sasl-gs2-16.txt | draft-ietf-sasl-gs2-17.txt | |||
|---|---|---|---|---|
| Network Working Group S. Josefsson | Network Working Group S. Josefsson | |||
| Internet-Draft SJD AB | Internet-Draft SJD AB | |||
| Intended status: Standards Track N. Williams | Intended status: Standards Track N. Williams | |||
| Expires: February 5, 2010 Sun Microsystems | Expires: March 13, 2010 Sun Microsystems | |||
| August 4, 2009 | September 9, 2009 | |||
| Using GSS-API Mechanisms in SASL: The GS2 Mechanism Family | Using GSS-API Mechanisms in SASL: The GS2 Mechanism Family | |||
| draft-ietf-sasl-gs2-16 | draft-ietf-sasl-gs2-17 | |||
| Status of this Memo | Status of this Memo | |||
| This Internet-Draft is submitted to IETF in full conformance with the | This Internet-Draft is submitted to IETF in full conformance with the | |||
| provisions of BCP 78 and BCP 79. This document may contain material | provisions of BCP 78 and BCP 79. This document may contain material | |||
| from IETF Documents or IETF Contributions published or made publicly | from IETF Documents or IETF Contributions published or made publicly | |||
| available before November 10, 2008. The person(s) controlling the | available before November 10, 2008. The person(s) controlling the | |||
| copyright in some of this material may not have granted the IETF | copyright in some of this material may not have granted the IETF | |||
| Trust the right to allow modifications of such material outside the | Trust the right to allow modifications of such material outside the | |||
| IETF Standards Process. Without obtaining an adequate license from | IETF Standards Process. Without obtaining an adequate license from | |||
| skipping to change at page 1, line 43 | skipping to change at page 1, line 43 | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on February 5, 2010. | This Internet-Draft will expire on March 13, 2010. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2009 IETF Trust and the persons identified as the | Copyright (c) 2009 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents in effect on the date of | Provisions Relating to IETF Documents in effect on the date of | |||
| publication of this document (http://trustee.ietf.org/license-info). | publication of this document (http://trustee.ietf.org/license-info). | |||
| Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
| skipping to change at page 6, line 5 | skipping to change at page 6, line 5 | |||
| SHA-1 hash [FIPS.180-1.1995] string computed over the ASN.1 DER | SHA-1 hash [FIPS.180-1.1995] string computed over the ASN.1 DER | |||
| encoding [CCITT.X690.2002], including the tag and length octets, of | encoding [CCITT.X690.2002], including the tag and length octets, of | |||
| the GSS-API mechanism's Object Identifier. The Base32 rules on | the GSS-API mechanism's Object Identifier. The Base32 rules on | |||
| padding characters and characters outside of the base32 alphabet are | padding characters and characters outside of the base32 alphabet are | |||
| not relevant to this use of Base32. If any padding or non-alphabet | not relevant to this use of Base32. If any padding or non-alphabet | |||
| characters are encountered, the name is not a GS2 family mechanism | characters are encountered, the name is not a GS2 family mechanism | |||
| name. This name denotes that the server does not support channel | name. This name denotes that the server does not support channel | |||
| binding. Add the suffix "-PLUS" and the resulting name denotes that | binding. Add the suffix "-PLUS" and the resulting name denotes that | |||
| the server does support channel binding. | the server does support channel binding. | |||
| A GS2 mechanism that has a non-OID-derived SASL mechanism name is | ||||
| said to have a "user friendly SASL mechanism name". | ||||
| 3.2. Computing mechanism names manually | 3.2. Computing mechanism names manually | |||
| The hash-derived GS2 SASL mechanism name may be computed manually. | The hash-derived GS2 SASL mechanism name may be computed manually. | |||
| This is useful when the set of supported GSS-API mechanisms is known | This is useful when the set of supported GSS-API mechanisms is known | |||
| in advance. This obliterate the need to implement Base32, SHA-1 and | in advance. This obliterate the need to implement Base32, SHA-1 and | |||
| DER in the SASL mechanism. The computed mechanism name can be used | DER in the SASL mechanism. The computed mechanism name can be used | |||
| directly in the implementation, and the implementation need not | directly in the implementation, and the implementation need not | |||
| concern itself with that the mechanism is part of a mechanism family. | concern itself with that the mechanism is part of a mechanism family. | |||
| 3.3. Examples | 3.3. Examples | |||
| skipping to change at page 14, line 32 | skipping to change at page 14, line 32 | |||
| Return major_status codes: | Return major_status codes: | |||
| o GSS_S_COMPLETE indicates successful completion, and that | o GSS_S_COMPLETE indicates successful completion, and that | |||
| output parameters holds correct information. | output parameters holds correct information. | |||
| o GSS_S_BAD_MECH indicates that a desired_mech was unsupported | o GSS_S_BAD_MECH indicates that a desired_mech was unsupported | |||
| by the GSS-API implementation. | by the GSS-API implementation. | |||
| The GSS_Inquire_SASLname_for_mech call is used to get the SASL | The GSS_Inquire_SASLname_for_mech call is used to get the SASL | |||
| mechanism name for a GSS-API mechanism. It also returns a name | mechanism name for a GSS-API mechanism. It also returns a name | |||
| and description of the mechanism in a human readable form. | and description of the mechanism in user friendly form. | |||
| The output variable sasl_mech_name will hold the IANA registered | The output variable sasl_mech_name will hold the IANA registered | |||
| mechanism name for the GSS-API mechanism, or if none is | mechanism name for the GSS-API mechanism, or if none is | |||
| registered, a mechanism name computed from the OID as described | registered, a mechanism name computed from the OID as described | |||
| in section 3.1 of this document. | in section 3.1 of this document. | |||
| 10.1. gss_inquire_saslname_for_mech | 10.1. gss_inquire_saslname_for_mech | |||
| The C binding for the GSS_Inquire_SASLname_for_mech call is as | The C binding for the GSS_Inquire_SASLname_for_mech call is as | |||
| follows. | follows. | |||
| skipping to change at page 15, line 22 | skipping to change at page 15, line 22 | |||
| const gss_OID desired_mech, | const gss_OID desired_mech, | |||
| gss_buffer_t sasl_mech_name, | gss_buffer_t sasl_mech_name, | |||
| gss_buffer_t mech_name, | gss_buffer_t mech_name, | |||
| gss_buffer_t mech_description, | gss_buffer_t mech_description, | |||
| ); | ); | |||
| Purpose: | Purpose: | |||
| Output the SASL mechanism name of a GSS-API mechanism. | Output the SASL mechanism name of a GSS-API mechanism. | |||
| It also returns a name and description of the mechanism in a | It also returns a name and description of the mechanism in a | |||
| human readable form. | user friendly form. | |||
| Parameters: | Parameters: | |||
| minor_status Integer, modify | minor_status Integer, modify | |||
| Mechanism specific status code. | Mechanism specific status code. | |||
| Function value: GSS status code | Function value: GSS status code | |||
| GSS_S_COMPLETE Successful completion | GSS_S_COMPLETE Successful completion | |||
| skipping to change at page 19, line 21 | skipping to change at page 19, line 21 | |||
| be used as a GS2 mechanism. To make this easier for SASL | be used as a GS2 mechanism. To make this easier for SASL | |||
| implementations we assign a symbolic SASL mechanism name to the | implementations we assign a symbolic SASL mechanism name to the | |||
| SPNEGO GSS-API mechanism: "SPNEGO". SASL client implementations MUST | SPNEGO GSS-API mechanism: "SPNEGO". SASL client implementations MUST | |||
| NOT choose the SPNEGO mechanism under any circumstances. | NOT choose the SPNEGO mechanism under any circumstances. | |||
| The GSS_C_MA_MECH_NEGO attribute of GSS_Inquire_attrs_for_mech | The GSS_C_MA_MECH_NEGO attribute of GSS_Inquire_attrs_for_mech | |||
| [RFC5587] can be used to identify such mechanisms. | [RFC5587] can be used to identify such mechanisms. | |||
| 15. IANA Considerations | 15. IANA Considerations | |||
| The IANA is advised to register a SASL mechanism family as per | ||||
| [RFC4422] using the following information. | ||||
| Subject: Registration of SASL mechanism family GS2-* | ||||
| SASL mechanism prefix: GS2- | ||||
| Security considerations: RFC [THIS-DOC] | ||||
| Published specification: RFC [THIS-DOC] | ||||
| Person & email address to contact for further information: | ||||
| Simon Josefsson <simon@josefsson.org> | ||||
| Intended usage: COMMON | ||||
| Owner/Change controller: iesg@ietf.org | ||||
| Note: Compare with the GSSAPI and GSS-SPNEGO mechanisms. | ||||
| The IANA is advised that SASL mechanism names starting with "GS2-" | The IANA is advised that SASL mechanism names starting with "GS2-" | |||
| are reserved for SASL mechanisms which conform to this document. The | are reserved for SASL mechanisms which conform to this document. The | |||
| IANA is directed to place a statement to that effect in the sasl- | IANA is directed to place a statement to that effect in the sasl- | |||
| mechanisms registry. | mechanisms registry. | |||
| The IANA is further advised that GS2 SASL mechanism names MUST NOT | The IANA is further advised that GS2 SASL mechanism names MUST NOT | |||
| end in "-PLUS" except as a version of another mechanism name simply | end in "-PLUS" except as a version of another mechanism name simply | |||
| suffixed with "-PLUS". | suffixed with "-PLUS". | |||
| The SASL names for the Kerberos V5 GSS-API mechanism [RFC4121] | The SASL names for the Kerberos V5 GSS-API mechanism [RFC4121] | |||
| [RFC1964] used via GS2 SHALL be "GS2-KRB5" and "GS2-KRB5-PLUS". | [RFC1964] used via GS2 SHALL be "GS2-KRB5" and "GS2-KRB5-PLUS". | |||
| The SASL names for the SPNEGO GSS-API mechanism used via GS2 SHALL be | The SASL names for the SPNEGO GSS-API mechanism used via GS2 SHALL be | |||
| "SPNEGO" and "SPNEGO-PLUS". As described in Section 14 the SASL | "SPNEGO" and "SPNEGO-PLUS". As described in Section 14 the SASL | |||
| "SPNEGO" and "SPNEGO-PLUS" MUST NOT be used. These names are | "SPNEGO" and "SPNEGO-PLUS" MUST NOT be used. These names are | |||
| provided as a convenience for SASL library implementors. | provided as a convenience for SASL library implementors. | |||
| Subject: Registration of SASL mechanism GS2-* | ||||
| SASL mechanism prefix: GS2- | ||||
| Security considerations: RFC [THIS-DOC] | ||||
| Published specification: RFC [THIS-DOC] | ||||
| Person & email address to contact for further information: | ||||
| Simon Josefsson <simon@josefsson.org> | ||||
| Intended usage: COMMON | ||||
| Owner/Change controller: iesg@ietf.org | ||||
| Note: Compare with the GSSAPI and GSS-SPNEGO mechanisms. | ||||
| 16. Security Considerations | 16. Security Considerations | |||
| Security issues are also discussed throughout this memo. | Security issues are also discussed throughout this memo. | |||
| The security provided by a GS2 mechanism depends on the security of | The security provided by a GS2 mechanism depends on the security of | |||
| the GSS-API mechanism. The GS2 mechanism family depends on channel | the GSS-API mechanism. The GS2 mechanism family depends on channel | |||
| binding support, so GSS-API mechanisms that do not support channel | binding support, so GSS-API mechanisms that do not support channel | |||
| binding cannot be successfully used as SASL mechanisms via the GS2 | binding cannot be successfully used as SASL mechanisms via the GS2 | |||
| bridge. | bridge. | |||
| skipping to change at page 23, line 21 | skipping to change at page 23, line 21 | |||
| [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | |||
| (TLS) Protocol Version 1.2", RFC 5246, August 2008. | (TLS) Protocol Version 1.2", RFC 5246, August 2008. | |||
| [RFC5587] Williams, N., "Extended Generic Security Service Mechanism | [RFC5587] Williams, N., "Extended Generic Security Service Mechanism | |||
| Inquiry APIs", RFC 5587, July 2009. | Inquiry APIs", RFC 5587, July 2009. | |||
| [I-D.ietf-sasl-scram] | [I-D.ietf-sasl-scram] | |||
| Menon-Sen, A., Melnikov, A., Newman, C., and N. Williams, | Menon-Sen, A., Melnikov, A., Newman, C., and N. Williams, | |||
| "Salted Challenge Response (SCRAM) SASL Mechanism", | "Salted Challenge Response (SCRAM) SASL Mechanism", | |||
| draft-ietf-sasl-scram-04 (work in progress), July 2009. | draft-ietf-sasl-scram-05 (work in progress), August 2009. | |||
| [I-D.altman-tls-channel-bindings] | [I-D.altman-tls-channel-bindings] | |||
| Altman, J., Williams, N., and L. Zhu, "Channel Bindings | Altman, J., Williams, N., and L. Zhu, "Channel Bindings | |||
| for TLS", draft-altman-tls-channel-bindings-05 (work in | for TLS", draft-altman-tls-channel-bindings-06 (work in | |||
| progress), June 2009. | progress), August 2009. | |||
| [mitm] Asokan, N., Niemi, V., and K. Nyberg, "Man-in-the-Middle | [mitm] Asokan, N., Niemi, V., and K. Nyberg, "Man-in-the-Middle | |||
| in Tunneled Authentication", | in Tunneled Authentication", | |||
| WWW http://www.saunalahti.fi/~asokan/research/mitm.html. | WWW http://www.saunalahti.fi/~asokan/research/mitm.html. | |||
| Authors' Addresses | Authors' Addresses | |||
| Simon Josefsson | Simon Josefsson | |||
| SJD AB | SJD AB | |||
| Hagagatan 24 | Hagagatan 24 | |||
| End of changes. 10 change blocks. | ||||
| 19 lines changed or deleted | 25 lines changed or added | |||
This html diff was produced by rfcdiff 1.29, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ | ||||