draft-ietf-nfsv4-rpcsec-gssv3-15.txt   draft-ietf-nfsv4-rpcsec-gssv3-16.txt 
NFSv4 W. Adamson NFSv4 W. Adamson
Internet-Draft NetApp Internet-Draft NetApp
Intended status: Standards Track N. Williams Intended status: Standards Track N. Williams
Expires: July 9, 2016 Cryptonector Expires: July 24, 2016 Cryptonector
January 06, 2016 January 21, 2016
Remote Procedure Call (RPC) Security Version 3 Remote Procedure Call (RPC) Security Version 3
draft-ietf-nfsv4-rpcsec-gssv3-15 draft-ietf-nfsv4-rpcsec-gssv3-16
Abstract Abstract
This document specifies version 3 of the Remote Procedure Call (RPC) This document specifies version 3 of the Remote Procedure Call (RPC)
security protocol (RPCSEC_GSS). This protocol provides support for security protocol (RPCSEC_GSS). This protocol provides support for
multi-principal authentication of client hosts and user principals to multi-principal authentication of client hosts and user principals to
a server (constructed by generic composition), security label a server (constructed by generic composition), security label
assertions for multi-level and type enforcement, structured privilege assertions for multi-level and type enforcement, structured privilege
assertions, and channel bindings. assertions, and channel bindings.
skipping to change at page 1, line 42 skipping to change at page 1, line 42
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
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."
This Internet-Draft will expire on July 9, 2016. This Internet-Draft will expire on July 24, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 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 Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 31 skipping to change at page 2, line 31
2.1. Compatibility with RPCSEC_GSSv2 . . . . . . . . . . . . . 6 2.1. Compatibility with RPCSEC_GSSv2 . . . . . . . . . . . . . 6
2.2. Version Negotiation . . . . . . . . . . . . . . . . . . . 6 2.2. Version Negotiation . . . . . . . . . . . . . . . . . . . 6
2.3. New REPLY Verifier . . . . . . . . . . . . . . . . . . . 6 2.3. New REPLY Verifier . . . . . . . . . . . . . . . . . . . 6
2.4. XDR Code Preliminaries . . . . . . . . . . . . . . . . . 7 2.4. XDR Code Preliminaries . . . . . . . . . . . . . . . . . 7
2.5. RPCSEC_GSS_BIND_CHANNEL Operation . . . . . . . . . . . . 9 2.5. RPCSEC_GSS_BIND_CHANNEL Operation . . . . . . . . . . . . 9
2.6. New auth_stat Values . . . . . . . . . . . . . . . . . . 9 2.6. New auth_stat Values . . . . . . . . . . . . . . . . . . 9
2.7. New Control Procedures . . . . . . . . . . . . . . . . . 10 2.7. New Control Procedures . . . . . . . . . . . . . . . . . 10
2.7.1. New Control Procedure - RPCSEC_GSS_CREATE . . . . . . 10 2.7.1. New Control Procedure - RPCSEC_GSS_CREATE . . . . . . 10
2.7.2. New Control Procedure - RPCSEC_GSS_LIST . . . . . . . 18 2.7.2. New Control Procedure - RPCSEC_GSS_LIST . . . . . . . 18
2.8. Extensibility . . . . . . . . . . . . . . . . . . . . . . 19 2.8. Extensibility . . . . . . . . . . . . . . . . . . . . . . 19
3. Operational Recommendation for Deployment . . . . . . . . . . 19 3. Operational Recommendation for Deployment . . . . . . . . . . 20
4. Security Considerations . . . . . . . . . . . . . . . . . . . 19 4. Security Considerations . . . . . . . . . . . . . . . . . . . 20
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.1. Normative References . . . . . . . . . . . . . . . . . . 21 6.1. Normative References . . . . . . . . . . . . . . . . . . 21
6.2. Informative References . . . . . . . . . . . . . . . . . 21 6.2. Informative References . . . . . . . . . . . . . . . . . 22
Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 21 Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 22
Appendix B. RFC Editor Notes . . . . . . . . . . . . . . . . . . 22 Appendix B. RFC Editor Notes . . . . . . . . . . . . . . . . . . 22
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22
1. Introduction and Motivation 1. Introduction and Motivation
The original RPCSEC_GSS protocol [RFC2203] provided for The original RPCSEC_GSS protocol [RFC2203] provided for
authentication of RPC clients and servers to each other using the authentication of RPC clients and servers to each other using the
Generic Security Services Application Programming Interface (GSS-API) Generic Security Services Application Programming Interface (GSS-API)
[RFC2743]. The second version of RPCSEC_GSS [RFC5403] added support [RFC2743]. The second version of RPCSEC_GSS [RFC5403] added support
for channel bindings [RFC5056]. for channel bindings [RFC5056].
skipping to change at page 13, line 25 skipping to change at page 13, line 25
The child context handle returned by a successful multi-principal The child context handle returned by a successful multi-principal
assertion binds the inner RPCSEC_GSSv3 context handle to the parent assertion binds the inner RPCSEC_GSSv3 context handle to the parent
RPCSEC_GSS context and MUST be treated by servers as authenticating RPCSEC_GSS context and MUST be treated by servers as authenticating
the GSS-API initiator principal authenticated by the inner context the GSS-API initiator principal authenticated by the inner context
handle's GSS-API security context. This principal may be mapped to a handle's GSS-API security context. This principal may be mapped to a
server-side notion of user or principal. server-side notion of user or principal.
Multi-principal binding is done by including an assertion of type Multi-principal binding is done by including an assertion of type
rgss3_gss_mp_auth in the RPCSEC_GSS_CREATE rgss3_create_args call rgss3_gss_mp_auth in the RPCSEC_GSS_CREATE rgss3_create_args call
data. The inner context handle is placed in the rgmp_handle field. data. The inner context handle is placed in the rgmp_handle field.
A MIC of the RPC call header up to and including the credential is A MIC of the RPC call header up to and including the credential plus
computed using the GSS-API security context associated with the inner the GSS security mechanism client host principal name is computed
context handle and is placed in rgmp_rpcheader_mic field. using the GSS-API security context associated with the inner context
handle and is placed in rgmp_rpcheader_mic field.
The target verifies the multi-principal authentication by first The target verifies the multi-principal authentication by first
confirming that the parent context used is an RPC client host confirming that the parent context used is an RPC client host
context, and then verifies the rgmp_rpcheader_mic using the GSS-API context, and then verifies the rgmp_rpcheader_mic using the GSS-API
security context associated with the rgmp_handle field. security context associated with the rgmp_handle field.
On a successful verification, the rgss3_gss_mp_auth field in the On a successful verification, the rgss3_gss_mp_auth field in the
rgss3_create_res reply MUST be filled in with the inner RPCSEC_GSSv3 rgss3_create_res reply MUST be filled in with the inner RPCSEC_GSSv3
context handle as the rgmp_handle, and a MIC computed over the RPC context handle as the rgmp_handle, and a MIC computed over the RPC
reply header (see section Section 2.3) using the GSS-API security reply header (see section Section 2.3) using the GSS-API security
skipping to change at page 17, line 19 skipping to change at page 17, line 19
Servers that do not support labeling or that do not support the Servers that do not support labeling or that do not support the
requested LFS reject the label assertion with a reply status of requested LFS reject the label assertion with a reply status of
MSG_DENIED, a reject_status of AUTH_ERROR, and an auth_stat of MSG_DENIED, a reject_status of AUTH_ERROR, and an auth_stat of
RPCSEC_GSS_LABEL_PROBLEM. RPCSEC_GSS_LABEL_PROBLEM.
2.7.1.4. Structured Privilege Assertions 2.7.1.4. Structured Privilege Assertions
<CODE BEGINS> <CODE BEGINS>
/// ///
/// typedef opaque utf8string<>; /* UTF-8 encoding */
/// typedef utf8string utf8str_cs; /* Case-sensitive UTF-8 */
///
/// struct rgss3_privs { /// struct rgss3_privs {
/// string rp_name<>; /* human readable */ /// utf8str_cs rp_name<>;
/// opaque rp_privilege<>; /// opaque rp_privilege<>;
/// }; /// };
<CODE ENDS> <CODE ENDS>
A structured privilege is a capability defined by a specific RPC A structured privilege is a capability defined by a specific RPC
application. To support the assertion of this privilege, by a client application. To support the assertion of this privilege, by a client
using the application, in a server that also supports the using the application, in a server that also supports the
application, the application may define a private data structure that application, the application may define a private data structure that
is understood by clients and servers implementing the RPC is understood by clients and servers implementing the RPC
skipping to change at page 17, line 49 skipping to change at page 18, line 4
RPCSEC_GSSv3 to identify the privilege and communicate the private RPCSEC_GSSv3 to identify the privilege and communicate the private
data between the relevant RPC application-specific code without data between the relevant RPC application-specific code without
needing to be aware of the details of the structure used. Thus, as needing to be aware of the details of the structure used. Thus, as
far as RPCSEC_GSSv3 is concerned, the defined structure is passed far as RPCSEC_GSSv3 is concerned, the defined structure is passed
between client and server as opaque data encoded in the between client and server as opaque data encoded in the
rpc_gss3_privs rp_privilege field. rpc_gss3_privs rp_privilege field.
Encoding, server verification and any server policies for structured Encoding, server verification and any server policies for structured
privileges are described by the RPC application definition. The privileges are described by the RPC application definition. The
rp_name field of rpc_gss3_privs carries the description string used rp_name field of rpc_gss3_privs carries the description string used
to identify and list the privilege. to identify and list the privilege. The utf8str_cs definition is
from [RFC7530].
A successful structured privilege assertion MUST be enumerated in the A successful structured privilege assertion MUST be enumerated in the
rcr_assertions field of the rgss3_create_res RPCSEC_GSS_CREATE reply. rcr_assertions field of the rgss3_create_res RPCSEC_GSS_CREATE reply.
If a server receives a structured privilege assertion that it does If a server receives a structured privilege assertion that it does
not recognize, the assertion is rejected with a reply status of not recognize, the assertion is rejected with a reply status of
MSG_DENIED, a reject_status of AUTH_ERROR, and an auth_stat of MSG_DENIED, a reject_status of AUTH_ERROR, and an auth_stat of
RPCSEC_GSS_UNKNOWN_MESSAGE. RPCSEC_GSS_UNKNOWN_MESSAGE.
It is assumed that a client asserting more than one structured It is assumed that a client asserting more than one structured
skipping to change at page 21, line 34 skipping to change at page 22, line 9
[RFC5056] Williams, N., "On the Use of Channel Bindings to Secure [RFC5056] Williams, N., "On the Use of Channel Bindings to Secure
Channels", RFC 5056, November 2007. Channels", RFC 5056, November 2007.
[RFC5403] Eisler, M., "RPCSEC_GSS Version 2", RFC 5403, February [RFC5403] Eisler, M., "RPCSEC_GSS Version 2", RFC 5403, February
2009. 2009.
[RFC5661] Shepler, S., Eisler, M., and D. Noveck, "Network File [RFC5661] Shepler, S., Eisler, M., and D. Noveck, "Network File
System (NFS) Version 4 Minor Version 1 Protocol", RFC System (NFS) Version 4 Minor Version 1 Protocol", RFC
5661, January 2010. 5661, January 2010.
[RFC7530] Haynes, T. and D. Noveck, "Network File System (NFS)
Version 4 Protocol", RFC 7530, March 2015.
6.2. Informative References 6.2. Informative References
[AFS-RXGK] [AFS-RXGK]
Wilkinson, S. and B. Kaduk, "Integrating rxgk with AFS", Wilkinson, S. and B. Kaduk, "Integrating rxgk with AFS",
draft-wilkinson-afs3-rxgk-afs (work in progress), April draft-wilkinson-afs3-rxgk-afs (work in progress), April
2014. 2014.
[RFC4949] Shirley, R., "Internet Security Glossary, Version 2", RFC [RFC4949] Shirley, R., "Internet Security Glossary, Version 2", RFC
4949, August 2007. 4949, August 2007.
 End of changes. 10 change blocks. 
14 lines changed or deleted 22 lines changed or added

This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/