NFSv4Internet Engineering Task Force (IETF) T. HaynesInternet-DraftRequest for Comments: 7204 NetAppIntended status:Category: InformationalDecember 02, 2013 Expires: June 05,April 2014 ISSN: 2070-1721 Requirements for Labeled NFSdraft-ietf-nfsv4-labreqs-05.txtAbstract This memo outlines high-level requirements for the integration of flexible Mandatory Access Control (MAC) functionality into the Network File System (NFS) version 4.2 (NFSv4.2). It describes the level of protections that should be provided over protocol components and the basic structure of the proposed system. The intent here is not to present the protocolchanges,changes but to describe the environment in which they reside. Status of This Memo ThisInternet-Draftdocument issubmitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documentsnot an Internet Standards Track specification; it is published for informational purposes. This document is a product of the Internet Engineering Task Force (IETF).Note that other groups may also distribute working documents as Internet-Drafts. The listIt represents the consensus ofcurrent Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents validthe IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are amaximumcandidate for any level of Internet Standard; see Section 2 ofsix monthsRFC 5741. Information about the current status of this document, any errata, and how to provide feedback on it may beupdated, replaced, or obsoleted by other documentsobtained atany 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 June 05, 2014.http://www.rfc-editor.org/info/rfc7204. Copyright Notice Copyright (c)20132014 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. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . 3....................................................3 2. Definitions. . . . . . . . . . . . . . . . . . . . . . . . . 3.....................................................3 2.1. Requirements Language. . . . . . . . . . . . . . . . . . 4......................................4 3. Requirements. . . . . . . . . . . . . . . . . . . . . . . . 4....................................................4 3.1. General. . . . . . . . . . . . . . . . . . . . . . . . . 4....................................................4 3.2. Security Services. . . . . . . . . . . . . . . . . . . . 5..........................................5 3.3. Label Encoding, Label Format Specifiers, and Label Checking Authorities. . . . . . . . . . . . . . . . . . 5.......................................5 3.4. Labeling. . . . . . . . . . . . . . . . . . . . . . . . 6...................................................6 3.4.1. Client Labeling. . . . . . . . . . . . . . . . . . . 6.....................................6 3.4.2. Server Labeling. . . . . . . . . . . . . . . . . . . 7.....................................7 3.5. Policy Enforcement. . . . . . . . . . . . . . . . . . . 7.........................................7 3.5.1. Client Enforcement. . . . . . . . . . . . . . . . . 7..................................7 3.5.2. Server Enforcement. . . . . . . . . . . . . . . . . 8..................................8 3.6. Namespace Access. . . . . . . . . . . . . . . . . . . . 8...........................................8 3.7. Upgrading Existing Server. . . . . . . . . . . . . . . . 8..................................9 4. Modes of Operation. . . . . . . . . . . . . . . . . . . . . 9..............................................9 4.1. Full Mode. . . . . . . . . . . . . . . . . . . . . . . . 9..................................................9 4.2. Limited Server Mode. . . . . . . . . . . . . . . . . . . 10.......................................10 4.3. Guest Mode. . . . . . . . . . . . . . . . . . . . . . . 10................................................10 5. Use Cases. . . . . . . . . . . . . . . . . . . . . . . . . . 11......................................................11 5.1. Full MAClabeling supportLabeling Support forremotely mounted filesystems . . . . . . . . . . . . . . . . . . . . . . . 11Remotely Mounted File Systems ..............................................11 5.2. MAClabelingLabeling ofvirtual machine images storedVirtual Machine Images Stored on thenetwork . . . . . . . . . . . . . . . . . . . . . . . . . 11Network ...............................................11 5.3. Simplesecurity label storage . . . . . . . . . . . . . . 11Security Label Storage .............................12 5.4. Diskless Linux. . . . . . . . . . . . . . . . . . . . . 12............................................12 5.5. Multi-Level Security. . . . . . . . . . . . . . . . . . 12......................................13 5.5.1. Full Mode -MAC-functionalMAC-Functional Client and Server. . . . 13.......13 5.5.2. MAC-Functional Client. . . . . . . . . . . . . . . . 14..............................14 5.5.3. MAC-Functional Server. . . . . . . . . . . . . . . . 14..............................15 6.IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 7.Security Considerations. . . . . . . . . . . . . . . . . . . 15 7.1.........................................15 6.1. Trust Needed for a Community. . . . . . . . . . . . . . 15 7.2...............................15 6.2. GuestModes . . . . . . . . . . . . . . . . . . . . . . . 15 7.3.Mode ................................................15 6.3. MAC-Functional Client Configuration. . . . . . . . . . . 15 8........................16 7. References. . . . . . . . . . . . . . . . . . . . . . . . . 16 8.1......................................................16 7.1. Normative References. . . . . . . . . . . . . . . . . . 16 8.2.......................................16 7.2. Informative References. . . . . . . . . . . . . . . . . 16....................................16 Appendix A. Acknowledgments. . . . . . . . . . . . . . . . . . 17 Appendix B. RFC Editor Notes . . . . . . . . . . . . . . . . . . 17 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 17.......................................18 1. Introduction Mandatory Access Control (MAC)([RFC4949])systems (as defined in [RFC4949]) have been mainstreamed in modern operating systems such as Linux, FreeBSD, and Solaris. MAC systems bind security attributes to subjects (processes) and objects within a system. These attributes are used with other information in the system to make access control decisions. Access control models such as Unix permissions or Access Control Lists (ACLs) are commonly referred to as Discretionary Access Control (DAC) models. These systems base their access decisions on user identity and resource ownership. Incontrastcontrast, MAC models base their access control decisions on the label on the subject (usually a process) and the object it wishes to access. These labels may contain user identity information but usually contain additional information. In DACsystemssystems, users are free to specify the access rules for resources that they own. MAC models base their security decisions on asystem widesystem-wide policy established by an administrator or organizationwhichthat the users do not have the ability to override. DAC systemsoffersoffer some protection against unauthorized users running malicious software. However, even an authorized user can execute malicious or flawed software with those programs running with the full permissions of the user executing it.InverselyInversely, MAC models can confine malicious or flawed software and usually act at a finer granularity than their DAC counterparts. Besides describing the requirements, this document records the functional requirements for the client imposed by thepre-existingpreexisting security models on the client. This document may help those outside the NFS community understand those issues. 2. Definitions Foreign Label:is when a MAC implementation encountersa label in a format other thanitthe format that a MAC implementation uses for encoding. Label Format Specifier (LFS):isan identifier used by the client to establish the syntactic format of the security label and the semantic meaning of its components.Label Format Registry: is the IANA registry (see [lfsreg]) containing all registered LFS along with references to the documents that describe the syntactic format and semantics of the security label.MAC-Aware:isa serverwhichthat can transmit and store object labels. MAC-Functional:isa client or serverwhichthat is Labeled NFS enabled. Such a system can interpret labels and apply policies based on the security system. Multi-Level Security (MLS):isa traditional model where objects are given a sensitivity level (Unclassified, Secret, Top Secret,etc)etc.) and a category set [RH_MLS]. Object:isa passive resource within the system that we wish tobe protected.protect. Objects can be entities such as files, directories, pipes, sockets, and many other system resources relevant to the protection of the system state. Policy Identifier (PI):isan optional part of the definition of a Label FormatSpecifier whichSpecifier. The PI allowsforclients andserverservers to identify specific security policies. Subject:isan active entity, usually a process,whichthat is requesting access to an object. 2.1. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. 3. Requirements The following initial requirements have been gathered fromusers,users and developers, and from previous development efforts in this area such asDTOSthe Distributed Trusted Operating System [DTOS] and the NSA's experimental NFSv3 enhancements[SENFSV3].[SENFSv3]. 3.1. General A mechanism is required to provide security attribute information to NFSv4 clients and servers. This mechanism has the following requirements: (1) Clients MUST be able to convey to the server the client'spriveleges,privileges, i.e., the subject, for making the access request. The server may provide a mechanism to enforce MAC policy based on the requesting client'spriveleges.privileges. (2) Servers MUST be able to store and retrieve the security attribute of exported files as requested by the client. (3) Servers MUST provide a mechanism for notifying clients of attribute changes of files on the server. (4) Clients and Servers MUST be able to negotiate Label Formats and provide a mechanism to translate between them as needed. 3.2. Security Services Labeled NFS or the underlying system on which the Labeled NFS operates MUST provide the following security services for all NFSv4.2messagingmessaging: o Authentication o Integrity o Privacy Mechanisms and algorithms used in the provision of security services MUST beconfigurable,configurable so that appropriate levels of protection may be flexibly specified per mandatory security policy. Strong mutual authentication is required between the server and the client for Full Mode operationSection 4.1.(Section 4.1). MAC security labels and any related security state MUST always be protected by these security services when transferred over thenetwork;network, as MUST the binding of labels and state to associated objects and subjects. Labeled NFS SHOULD support authentication on a context granularity so that different contexts running on a client can use different cryptographic keys and facilities. 3.3. Label Encoding, Label Format Specifiers, and Label Checking Authorities Encoding of MAC labels and attributes passed over the network MUST be specified in a complete and unambiguous manner while maintaining the flexibility of MAC implementations. To accomplishthisthis, the labels MUST consist of a format-specific component bound with a Label Format Specifier (LFS). The LFS component provides a mechanism for identifying the structure and semantics of the opaque component. Meanwhile, the opaque component is the security labelwhichthat will be interpreted by the MAC models. MAC models base access decisions on securityattributes privelegesattribute privileges bound to subjects and objects, respectively. With a given MAC model, all systems have semantically coherent labeling--- a security label MUST always mean exactly the same thing on every system. While this may not be necessary for simple MACmodelsmodels, it is recommended that mostlabel formatsLabel Formats assigned an LFS incorporate semantically coherent labeling into theirlabel format.Label Format. Labeled NFS SHOULD define an initial negotiation scheme with the primary aims of simplicity and completeness. This is to facilitate practical deployment of systems without being weighed down by complex andover-generalizedovergeneralized global schemes. Future extensibility SHOULD also be taken into consideration. Labeled NFS MUST provide a means for servers and clients to identify theirLFSLFSs for the purposes of authorization, security service selection, and security label interpretation. Labeled NFS MUST provide a means for servers and clients to identify their mode of operation (see Section 4). A negotiation scheme SHOULD be provided, allowing systems from differentlabel formatsLabel Formats to agree on how they will interpret or translate eachothersother's foreign labels. Multiple concurrent agreements may be current between a server and a client. All security labels and related security state transferred across the network MUST be tagged with a valid LFS. If the LFS supported on a system changes, the system SHOULD renegotiate agreements to reflect these changes. If a system receives any security label or security state tagged with an LFS it does not recognize or cannot interpret, it MUST reject that label or state. NFSv4.2 includes featureswhichthat may cause a client to cross an LFS boundary when accessing what appears to be a single file system. If LFS negotiation is supported by the client and the server, the server SHOULD negotiate a new, concurrent agreement with the client, acting on behalf of the externally located source of the files. 3.4. Labeling Implementations MUST validate security labels supplied over the network to ensure that they are within a set of labels permitted from a specificpeer, andpeer and, if not, reject them. Note that a system may permit a different set of labels to be accepted from each peer. 3.4.1. Client Labeling At the client, labeling semantics for NFS mounted file systems MUST remain consistent with those for locally mounted file systems. In particular, user-level labeling operations local to the client MUST be enacted locally via existing APIs, to ensure compatibility and consistency for applications and libraries. Note that this does not imply any specific mechanism for conveying labels over the network. When an object is newly created by the client, it will calculate the label for the object based on its policy. Once that isdonedone, it will send the request to theserverserver, which has the ability to deny the creation of the object with that label based on the server's policy. In creating thefilefile, the server MUST ensure that the label is bound to the object before the object becomes visible to the rest of the system. This ensures that any access control or further labeling decisions are correct for the object. 3.4.2. Server Labeling The server MUST provide the capability for clients to retrieve security labels on all exported file system objects where possible. This includes cases where only in-core and/or read-only security labels are available at the server for any of its exported file systems. The server MUST honor the ability for a client to specify the label of an object on creation. If the server is MACenabledenabled, it may choose to reject the label specified by theclientclient, due to restrictions in the server policy. The server SHOULD NOT attempt to find a suitable label for an object in the event of different labeling rules on its end. The server is allowed to translate the label but MUST NOT change the semantic meaning of the label. 3.5. Policy Enforcement The MAC-Functional client determines if a process request is sent to the remote server. Upon a successful response from the server, it must use its own policies on the object's security labels to determine if the process can be given access. The client SHOULD NOT need to be cognizantifof whether the server iseithera Limited Server or is fully MAC-Functional. 3.5.1. Client Enforcement The client MUST apply its own policy to remotely located objects, using security labels for the objects obtained from the server. It MUST be possible to configure the maximum length of time a client may cache state regarding remote labels beforere-validatingrevalidating that state with the server. If the server's policy changes, the client MUST flush all object state back to the server. The server MUST ensure that any flushed state received is consistent with current policy before committing it to stable storage. Any local security state associated with cached or delegated objects MUST also be flushed back to the server when any other state of the objects is required to be flushed back. The implication here is that if the client holds a delegation on an object, then it enforces policy to local changes based on the object label it got from the server. When it tries to commit those changes to the server, it SHOULD be prepared for the server to reject those changes based on the policies of the server. 3.5.2. Server Enforcement A MAC-Functional server MUST enforce its security policy over all exported objects, for operationswhichthat originate both locally and remotely. Requests from authenticated clients MUST be processed using security labels and credentials supplied by the client as if they originated locally. As with labeling, the system MUST also take into account any other volatile client security state, such as a change in process security context via dynamic transition. Access decisions SHOULD also be made based upon the current client security label accessing the object, rather than the security labelwhichthat opened it, if different. The server SHOULD recall delegation of an object if the object's security label changes. 3.6. Namespace Access The server SHOULD provide a means to authorize selective access to the exported file system namespace based upon client credentials and according to security policy. This is a common requirement of MLS-enabled systems, which often need to present selective views of namespaces based upon the clearances of the subjects. 3.7. Upgrading Existing Server Note that under the MAC model, all objects MUST have labels. Therefore, if an existing server is upgraded to include Labeled NFS support, then it is the responsibility of the security system to define the behavior for existing objects. 4. Modes of Operation In a Labeled NFS client and server interaction, we can describe three modes of operation: 1. Full 2. Limited Server 3. Guest These modes arise from the level of MAC functionality in the clients and servers. The clients can be non-MAC-Functional andMAC- Functional.MAC-Functional. The servers can be non-MAC-Functional, MAC-Aware, and MAC-Functional. A MAC-Functional client MUST be able to determine the level of MAC functionality in the server. Likewise, a MAC-Functional server MUST be able to determine whether or not a client is MAC-Functional. As discussed in Section 3.3, the protocol MUST provide for the client and server to make those determinations. 4.1. Full Mode The server and the client have mutually recognized MAC functionality enabled, and full Labeled NFS functionality is extended over the network between both client and server. An example of an operation infull modeFull Mode is as follows. On the initial lookup, the client requests access to an object on the server. It sends its process security context over to the server. The server checks all relevant policies to determine if that process context from that client is allowed to access the resource. Once this hassucceededsucceeded, theobjectobject, with its associated securityinformationinformation, is released to the client. Once the client receives theobjectobject, it determines if its policies allow the process running on the client access to the object. On subsequent operations where the client already has a handle for the file, the order of enforcement is reversed. Since the client already has the securitycontextcontext, it may make an access decision against its policy first. This enables the client to avoid sending requests to the server that it knows willfailfail, regardless of the server's policy. If the client passes its policycheckschecks, then it sends the request to theserverserver, where the client's process context is used to determine if the server will release that resource to the client. If both checks pass, the client is given the resource and everything succeeds. In the event that the client does not trust the server, it may opt to use an alternate labelingmechanismmechanism, regardless of the server's ability to return security information. 4.2. Limited Server Mode The server isMAC-AwareMAC-Aware, and the clients are MAC-Functional. The server can store and transmit labels. It cannot enforce labels. The server MUST inform clients when an object label changes for a file the client has open. In this mode, the server may not be aware of the format of any of its object labels. Indeed, it may service several different security models at the same time. A client MUST process foreign labels as discussed in Section 3.3. As with the Guest Mode, this mode's level of trust can be degraded ifnon-MAC-functionalnon-MAC-Functional clients have access to the server. 4.3. Guest Mode Only one of the server or client is MAC-Functional enabled. In the case of the server only being MAC-Functional, the server enforces itspolicy,policy and may selectively provide standard NFS services to clients based on their authentication credentials and/or associated network attributes (e.g., IP address, network interface) according to security policy. The level of trust and access extended to a client in this mode is configuration-specific. In the case of the client only being MAC-Functional, the client MUST operate as a standard NFSv4.2 (see[I-D.ietf-nfsv4-minorversion2]) client,[NFSv4_2]) client and SHOULD selectively provide processes access to servers based upon the security attributes of the local process, and network attributes of the server, according to policy. The client may also override default labeling of the remote file system based upon these securityattributes,attributes or other labeling methods such as mount point labeling. In other words, the Guest Mode is standard NFSv4.2 over the wire, with the MAC-Functional system mapping the non-MAC-Functional system's processes or objects to security labels based on other characteristics in order to preserve its MAC guarantees. 5. Use Cases MAC labeling is meant to allow NFSv4.2 to be deployed insitesite- configurable security schemes. The LFS and opaque data scheme allows for flexibility to meet these different implementations. In this section, we provide some examples of how NFSv4.2 could be deployed to meet existing needs. This is not an exhaustive listing. 5.1. Full MAClabeling supportLabeling Support forremotely mounted filesystemsRemotely Mounted File Systems In this case, we assume a local networked environment where the servers and clients are under common administrative control. All systems in this network have the same MAC implementation and semantically identical MAC security labels for objects(i.e.(i.e., labels mean the same thing on different systems, even if the policies on each system may differ to some extent). Clients will be able to apply fine-grained MAC policy to objects accessed via NFSmounts,mounts and thus improve the overall consistency of MAC policy application within this environment. An example of this case would be where user home directories are remotely mounted, and fine-grained MAC policy is implemented to protect, for example, private user data from being read by malicious web scripts running in the user's browser. With Labeled NFS, fine- grained MAC labeling of the user's files will allow the MAC policy to be implemented and provide the desired protection. 5.2. MAClabelingLabeling ofvirtual machine images storedVirtual Machine Images Stored on thenetworkNetwork Virtualization is now a commonly implemented feature of modern operating systems, and there is a need to ensure that MAC security policy is able to protect virtualized resources. A common implementation scheme involves storing virtualized guestfilesystemsfile systems on a networkedserver, whichserver; these file systems are then mounted remotely by guests upon instantiation. In this case, there is a need to ensure that the local guest kernel is able to access fine-grained MAC labels on the remotely mountedfilesystemfile system so that its MAC security policy can be applied. 5.3. Simplesecurity label storageSecurity Label Storage In this case, a mixed and loosely administered network is assumed, where nodes may be running a variety of operating systems with different security mechanisms and security policies. It is desired that network file servers be simply capable of storing and retrieving MAC security labels for clientswhichthat use such labels. The Labeled NFS protocol would be implemented here solely to enable transport of MAC security labels across the network. It should be noted that in such an environment, overall security cannot be as strongly enforced as when the server is alsoenforcing,enforcing and that this scheme is aimed at allowing MAC-capable clients to function with its MAC security policy enabled rather than perhaps disabling it entirely. 5.4. Diskless Linux A number of popular operating system distributions depend on amandatory access controlMandatory Access Control (MAC) model to implement a kernel-enforced security policy. Typically, such models assign particular roles to individual processes, which limit or permit performing certain operations on a set of files, directories, sockets, or other objects. While the enforcing of the policy is typically a matter for the diskless NFS client itself, thefilesystemfile system objects in such models will typically carry MAC labels that are used to define policy on access. These policies may, for instance, describe privilege transitions that cannot be replicated using standard NFSACL basedACL-based models. Forinstanceinstance, on aSYSV compatible system,SYSV-compatible system (see [SYSV]), if the 'init' process spawns a process that attempts to start the 'NetworkManager' executable, there may be a policy that sets up a role transition if the 'init' process and 'NetworkManager' file labels match a particular rule. Without this role transition, the process may find itself having insufficient privileges to perform its primary job of configuring network interfaces. In setups of this type, a lot of the policy targets (such as sockets or privileged system calls) are entirely local to the client. The use of RPCSEC_GSSv3([rpcsecgssv3])([RPC_SEC]) for enforcing compliance at the server level is therefore of limited value. The ability to permanently label files and have those labels read back by the client is, however, crucial to the ability to enforce that policy. 5.5. Multi-Level Security Inaan MLSsystemsystem, objects are generally assigned a sensitivity level and a set of compartments. The sensitivity levels within the system are given an order ranging from lowest to highest classification level. Read access to an object is allowed when the sensitivity level of the subject "dominates" the object it wants to access. This means that the sensitivity level of the subject is higher than that of the object it wishes to access and that its set of compartments is asuper-setsuperset of the compartments on the object. The rest ofthethis section will just use sensitivity levels. Ingeneralgeneral, the example is a client that wishes to list the contents of a directory. The system defines the sensitivity levels as Unclassified (U), Secret (S), and Top Secret (TS). The directory to be searched is labeled TopSecretSecret, which means access to read the directory will only be granted if the subject making the request is also labeled Top Secret. 5.5.1. Full Mode -MAC-functionalMAC-Functional Client and Server In the first part of thisexampleexample, a process on the client is running at the Secret level. The process issues a readdir() systemcallcall, which enters the kernel. Before translating the readdir() system call into a request to the NFSv4.2serverserver, the host operating system will consult the MAC module to see if the operation is allowed. Since the process is operating at Secret and the directory to be accessed is labeled TopSecretSecret, the MAC module will deny the request and an error code is returned to user space. Consider a second case where instead of running at Secret the process is running at Top Secret. In thiscasecase, the sensitivity of the process is equal to or greater than that of thedirectorydirectory, so the MAC module will allow the request. Now the readdir() is translated into the necessary NFSv4.2 call to the server. For theRPC requestremote procedure call (RPC) request, the client is using the proper credential to assert to the server that the process is running at Top Secret. When the server receives therequestrequest, it extracts the security label from the RPC session and retrieves the label on the directory. The server then checks with its MAC module to see if a Top Secret process is allowed to read the contents of the Top Secret directory. Since this is allowed by thepolicypolicy, then the server will return the appropriate information back to the client. In thisexampleexample, the policy on both the client and serverwere bothis the same. In the event that they were running differentpoliciespolicies, a translation of the labels might be needed. In thiscasecase, it could be possible for a check to pass on the client and fail on the server. The server may consider additional information when making its policy decisions. Forexampleexample, the server could determine that a certain subnet is only cleared for data up to Secret classification. If that constraint was in place for the exampleaboveabove, the client would still succeed, but the server wouldfailfail, since the client is asserting a label that it is not able to use (Top Secret on a Secret network). 5.5.2. MAC-Functional Client In these scenarios, the server is either non-MAC-Aware or MAC-Aware. The actions of the client will depend on whether it is configured to treat the MAC-Aware server in the same manner as the non-MAC-Aware one.I.e.,That is, does it utilize the approach presented in Section4.34.3, or does it allow the MAC-Aware server to return labels? With a client that is MAC-Functional and using the example in the previous section, the result should be the same. The one difference is that all decisions are made on the client. 5.5.2.1. MAC-Aware Server A process on the client labeled Secret wishes to access a directory labeled Top Secret on the server. This isdenieddenied, since Secret does not dominate Top Secret. Note that there will be NFSv4.2 operations issued that return an object label for the client to process. Note that in this scenario, all of the clients must beMAC- Functional.MAC-Functional. A single clientwhichthat does not do its access control checks would violate the model. 5.5.2.2. Non-MAC-Aware Server A process on the client labeled Secret wishes to access a directorywhichthat the client's policies label as Top Secret on the server. This isdenieddenied, since Secret does not dominate Top Secret. Note that there will not be NFSv4.2 operations issued. If the process hadinsteada Top Secret processlabel,label instead of Secret, the client would issue NFSv4.2 operations to access the directory on the server. 5.5.3. MAC-Functional Server With a MAC-Functional server and a clientwhichthat is not, the client behaves as if it were in a normal NFSv4.2 environment. Since the process on the client does not provide a securityattributeattribute, the server must define a mechanism for labeling all requests from a client. Assume that the server is using the same criteria used in the first example. The server sees the request as coming from a subnet that is a Secret network. The server determines that all clients on that subnet will have their requests labeled with Secret. Since the directory on the server is labeled Top Secret and Secret does not dominate TopSecretSecret, the server would fail the request with NFS4ERR_ACCESS. 6.IANA Considerations This document has no actions for IANA. 7.Security Considerations7.1.6.1. Trust Needed for a Community Labeled NFS is a transport mechanism for labels, a storage requirement for labels, and a definition of how to interpret labels. It defines the responsibilities of the client and the server in the various permutations of being MAC-Functional. It doesnot howevernot, however, dictate in any manner whether assumptions can be made about other entities in the relationship. For example, it does not define whether a MAC-Functional client can demand that a MAC-Aware server only accept requests from other MAC-Functional clients. That is a policy basedinon a MACmodelmodel, and this document does not impose policies on systems. As the requirement is a policy, it can be met with the use of a MAC model. Let L beaan LFSwhichthat implements the Limited Server mode, i.e., a MAC-Aware server connected to MAC-Functional clients. Then a newLFS L'LFS, L', can be createdwhichthat has the additional policy that the MAC-Aware server MUST NOT accept any requests from anon-MAC- Functionalnon-MAC-Functional client.7.2.6.2. GuestModesMode When either the client or server is operating inguest modeGuest Mode, it is important to realize that one side is not enforcing MAC protections. Alternate methods are being used to handle the lack of MACsupportsupport, and care should be taken to identify and mitigate threats from possible tampering outside of these methods.7.3.6.3. MAC-Functional Client Configuration We defined a MAC model asaan access control decision made on a system in which normal users do not have the ability to override policies (see Section 1). If the process labels are created solely on the client, then if a malicious user has sufficient access on that client, the Labeled NFS model is compromised. Note that this is no different from: o current implementations in which the server uses policies to effectively determine the object label for requests from the client, or o local decisions made on the client by the MAC security system.TheEither the server musteitherexplicitly trust the client (as in[SENFSV3])[SENFSv3]) or the MAC model should enforce that users cannot override policies, perhaps viaaan externally managed source. Once the labels leave the client, they can be protected by the transport mechanism as described in Section 3.2.8.7. References8.1.7.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.8.2.7.2. Informative References [DTOS] Smalley, S., "The Distributed Trusted Operating System (DTOS) HomePage ",Page", December 2000,<http://www.cs.utah.edu /flux/fluke/html/dtos/HTML/dtos.html>. [I-D.ietf-nfsv4-minorversion2]<http://www.cs.utah.edu/ flux/fluke/html/dtos/HTML/dtos.html>. [NFSv4_2] Haynes, T., "NFS Version 4 Minor Version 2",draft-ietf- nfsv4-minorversion2-21 (Work In Progress), November 2013.Work in Progress, February 2014. [RFC4949] Shirey, R., "Internet Security Glossary, Version 2", RFC 4949, August 2007. [RH_MLS]"Section 46.6. Multi-Level"Multi-Level Security(MLS) of Deployment Guide: Deployment,(MLS)", "Deployment, configuration and administration of Red Hat Enterprise Linux 5, Edition6 ", 2011. [SENFSV3] Carter, J., "Implementing SELinux Support for NFS", , <http://www.nsa.gov/research/_files/selinux/papers/ nfsv3.pdf>. [lfsreg] Quigley, D. and J. Lu, "Registry Specification for MAC Security Label Formats", draft-quigley-label-format- registry (work in progress), 2011. [rpcsecgssv3]10", Section 49.6, 2014, <http://docs.redhat.com/docs/ en-US/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/ sec-mls-ov.html>. [RPC_SEC] Adamson, W. and N. Williams, "Remote Procedure Call (RPC) Security Version 3",draft-ietf-nfsv4-rpcsec-gssv3-05 (Work In Progress), October 2013.Work in Progress, February 2014. [SENFSv3] Carter, J., "Implementing SELinux Support for NFS", <http://www.nsa.gov/research/_files/selinux/papers/ nfsv3.pdf>. [SYSV] AT&T, "System V Interface Definition (SVID)", Third Edition, Addison-Wesley, Reading, MA, 1989. Appendix A. Acknowledgments David Quigley was the early energy in motivating the entire Labeled NFS effort. James Morris, Jarrett Lu, and Stephen Smalley all were key contributors to both early versions of this document and to many conference calls. Kathleen Moriarty provided use cases for earlier versions of thedraft.document. Dan Walsh provided use cases for Secure Virtualization, Sandboxing, and NFS homedir labeling to handle process separation. Trond Myklebust provided use cases for secure diskless NFS clients. Both Nico Williams and Bryce Nordgren challenged assumptions during the review processes.Appendix B. RFC Editor Notes [RFC Editor: please remove this section prior to publishing this document as an RFC] [RFC Editor: prior to publishing this document as an RFC, please replace all occurrences of RFCTBD10 with RFCxxxx where xxxx is the RFC number of this document]Author's Address Thomas Haynes NetApp 495EEast JavaDrDr. Sunnyvale, CA9505494089 USA Phone: +1 408419 3018 Email: thomas@netapp.com215 1519 EMail: tdh@excfb.com