1.2.1 Access control in the mainframe era
The growth in multiuser computer systems and the increased dependence of defense systems on computers led to efforts by the U.S. Defense Science Board to investigate the vulnerability of government systems in the late 1960s. University researchers also considered the problem. The earliest work in defining a formal, mathematical description of access control is that of Lampson [2], who introduced the formal notions of subject and object and an access matrix that mediated the access of subjects to objects. An access matrix is a simple conceptual representation in which the (i,j) entry in the matrix specifies the rights that subject i has to object j. An example is shown in Figure 1.1. Subjects (processes invoked by users) are allowed to access objects such as files or peripherals according to the rights specified in the matrix. For example, user Bob is allowed read and write access to the payroll file, and read access to the accounts receivable and accounts payable file.
A RAND Corporation report from 1970 [3] provided a comprehensive analysis of security for DoD computer systems. Included in the report was the definition of a method to implement multilevel—relating to documents classified by a security level, such as confidential, secret, or top-secret— access control on a resource-sharing system, with separate considerations for local access and remote access where password-based authorization would be required. This document also discussed the basic requirements for controlling access to information based on a user’s clearance level and the classification level of files stored on the system. Proposals for a multilevel secure system were extended in a U.S. Air Force report [4] that included engineering development plans for such a system along with communications.
Bell and LaPadula [5] formalized military access control rules into a mathematical model suitable for defining and evaluating computer security systems. As formulated in this model, multilevel secure systems implement the familiar government document classification rule: Users are only allowed to access information that is classified at or below their own clearance level. Conceptually, this is a very simple policy, readily understood and followed by humans. However, as with much in information technology, implementing this seemingly simple policy on a computer system can be tricky. Unexpected loopholes and nonobvious interactions between different components of the system can leave a computer security system vulnerable. The Bell-LaPadula model was significant because it provided a formal (i.e., mathematical) model of the multilevel security policy, making it possible to analyze properties of the model in detail.
Two basic rules are required in the formal model: the simple security rule and the *-property, commonly known as "no read up" and "no write down." The simple security rule is obvious: A user with a particular clearance level cannot be allowed to read information above that level (e.g., a user with secret clearance cannot read top-secret documents). The *-property, which is essentially the reverse of the simple security rule, is required to maintain system security: A user operating at a particular clearance level can write information only at that level or above. For example, if a user is logged in at secret level, programs or processes operated by that user are not permitted to write information at the confidential level, although it could be written to a higher level, such as top-secret. (Note that this rule makes sense where we are concerned with processes operating on a computer. Obviously, a human being could log in at a high level, then print out or memorize information and re-enter it after logging in at a lower level.) Also included in the Bell-LaPadula model was the notion of categories, which refers to a vertical breakdown of security compartments across levels. In addition to having the proper clearance level, a user is required to be cleared for all of the categories attached to a classified document. For example, a document might be classified [Secret, nuclear, NATO]. To access the document, a user would need a clearance of secret or above and must also be cleared for the two categories—nuclear and NATO. (Chapter 2 provides a more detailed discussion of these rules.) This policy ensures that information cannot be downgraded either through unintentional or malicious actions of a process.
A 1976 paper by Harrison, Ruzzo, and Ullman showed that safety is inherently undecidable in a conventional access matrix view of security [6]. In other words, it is impossible to know whether a given configuration considered "safe" with respect to some security requirement would remain safe. If the system is started with a set of access rights to objects, it is impossible to know that the system will not eventually grant access rights that are not in the original matrix. Although the proof of this result is somewhat technical, the underlying reason for the undecidability is that users can give away access rights. If the system has no control over what rights are passed from one user to another, there is no way to be sure that an unauthorized user will not eventually receive rights improperly, through some chain of rights delegation.
1.2.4 Origins of RBAC
Like the multilevel security policy formalized by Bell and LaPadula, RBAC has its roots in historical practices that predate the formal model, except that RBAC’s features stem primarily from the commercial world. Also like multilevel security, RBAC is conceptually simple: Access to computer system objects is based on a user’s role in an organization. Roles with different privileges and responsibilities have long been recognized in business organizations, and commercial computer applications dating back to at least the 1970s implemented limited forms of access constraints based on the user’s role within the organization. For example, on-line banking applications in that period included both teller and teller supervisor roles that could execute different sets of transactions, while simultaneously users at ATMs were able to execute another set of transactions against the same databases.
In the late 1980s and early 1990s researchers began recognizing the virtues of roles as an abstraction for managing privileges within applications and database management systems. A role was seen as a job or position within an organization. A role exists as a structure separate from that of the users who were assigned to the roles. Dobson and McDermid [8] used the term functional roles. Baldwin [9] called these structures named protection domains (NPDs) and stated that they could be related and organized into hierarchies based on NPD permission subsets. Also recognized was the use of roles in support of the principle of least privilege in which a role is created with minimum permissions in specification of duty requirements [10]. The Brewer and Nash model [11] presented a basic theory for use in implementing dynamically changing access permissions. The model is described in terms of a particular commercial security policy, known as the Chinese wall. The model is developed by first defining what a Chinese wall means and then defining a set of rules (SoD requirements) such that no user can ever access data from the wrong side of the wall. Nash and Poland [12] discussed the application of role-based security to cryptographic authentication devices commonly used in the banking industry.
These role-based systems were relatively simple and application-specific. That is, there was no general-purpose model defining how access control could be based on roles, and little formal analysis of the security of these systems. The systems were developed by a variety of organizations, with no commonly agreed upon definition or recognition in formal standards.
In 1992, NIST initiated a study [13] of both commercial and government organizations, and found that access control needs were not being met by products on the market at the time, many of which implemented only TCSEC-style discretionary controls, considered by many organizations as the "standard of due care." In many enterprises within industry and civilian government, end users do not "own" the information for which they are allowed access as assumed by DAC. For these organizations, the corporation or agency is the actual "owner" of system objects, and discretionary control on the part of the users may not be appropriate. Conventional MAC, focused on preserving confidentiality, is also inadequate for these organizations. Although enforcing a need-to-know policy is important where classified information is of concern, there existed a general need to support subject-based security policies, such as access based on competency, the enforcement of conflict-of-interest rules, or access based on a strict concept of least privilege. Supporting such policies requires the ability to restrict access based on a user function or role within the enterprise.
A solution to meet these needs was proposed in 1992 by Ferraiolo and Kuhn [14], integrating features of existing application-specific approaches into a generalized RBAC model. This paper described, in a simple formal manner, the sets, relations, and mappings used in defining roles and role hierarchies, subject-role activation, and subject-object mediation, as well as the constraints on user-role membership and role-set activation. Three basic rules were required:
-
Role assignment: A subject can execute a transaction only if the subject has selected, or been assigned to, a role. The identification and authentication process (e.g., login) is not considered a transaction. All other user activities on the system are conducted through transactions. Thus, all active users are required to have some active role.
-
Role authorization: A subject’s active role must be authorized for the subject. With rule 1, this rule ensures that users can take on only roles for which they are authorized.
-
Transaction authorization: A subject can execute a transaction only if the transaction is authorized for the subject’s active role. In concert with rules 1 and 2, this rule ensures that users can execute only transactions for which they are authorized.
The formal description of the model is given in Figure 1.2. A key feature of this model is that all access is through roles. A role is essentially a collection of permissions, and all users receive permissions only through the roles to which they are assigned, as shown in Figure 1.3. Within an organization, roles are relatively stable, while users and permissions are both numerous and may change rapidly. Controlling all access through roles therefore simplifies the management and review of access controls.
The most common method of implementing access control in a computer system is through access control lists (ACLs). All system resources, such as files, printers, and terminals, have a list of authorized users attached. This makes it easy and quick to answer the per object review question: "What users have access to object X?" Much more difficult is the per subject review question: "What objects can user X access?" Answering this question requires scanning all objects on the computer system, which may number in the millions; recording their access control lists; and finally reporting on user X. Measurements of real systems have shown that this process can take more than a day. A side effect of this scheme is that ACLs make it easy to add permissions to an object but hard to revoke all of a particular user’s permissions. In many systems, users are combined into groups, which are then used as entries in ACLs.
Readers familiar with conventional group mechanisms will recognize a superficial similarity between RBAC and groups. As normally implemented, a group is a collection of users, rather than a collection of permissions, and permissions can be associated with both users and the groups to which they belong, as shown in Figure 1.4. Because users may access objects based on either their user or group ID, it is possible for users to retain access permissions that should be revoked when group permission is removed from the object. The permission based on the individual user ID is in effect a loophole in the enforcement of the security policy. The RBAC requirement that all access be through roles helps to strengthen security significantly in real applications by eliminating this loophole.
A second important feature of the Ferraiolo-Kuhn model is that roles are hierarchical—roles can inherit permissions from other roles Figure 1.5 —while groups are normally treated as flat collections of users. Also included in this model was a provision for constraints on role membership, although specific types of constraints were not proposed.
The 1992 paper showed that this model subsumes the Clark-Wilson model (i.e., the Clark-Wilson model is included as a special case). A subsequent NIST publication [15] investigated RBAC in more detail, proposing additional functions beyond those included in the 1992 model, and included specific forms for constraints to implement separation-of-duty requirements.
George Mason University Professor Ravi Sandhu, a well-known and influential security expert, described the Ferraiolo-Kuhn RBAC model as "an important innovation, which makes RBAC a service to be used by application…. Instead of scattering security in application code, RBAC will consolidate security in a unified service which can be better managed while providing the flexibility and customization required by individual applications" [16]. Dr. Sandhu went on to conduct extensive research and publish numerous papers in the area of RBAC. Several of his students have joined him in this research, and some have produced doctoral theses in areas related to RBAC.
In 1994, Nyanchama and Osborn [17] proposed a very generalized form of role organization called a role graph model. The authors showed that roles could be organized based on three role relationships: partial, shared, and augmented privileges. The role graph model is particularly useful in analyzing privilege sharing, which is critical in detecting and preventing conflict of interest relationships between roles. Gligor introduced the notion of "role types," which allow role administration to be simplified with parameterized types that are instantiated to produce roles. This work became the subject of the first U.S. patent in the area of RBAC [18].
In 1996, Sandhu and colleagues [19] introduced a framework of RBAC models, RBAC96, breaking down RBAC into four conceptual models. Shown in Figure 1.6, this framework specified a base model, RBAC0, that contains the minimal features of a system implementing RBAC. Two advanced models, RBAC1 and RBAC2, include RBAC0, but add (respectively) support for hierarchies and for constraints such as SoD. A fourth component, RBAC3, includes all aspects of the lower-level models. The Sandhu et al. RBAC96 framework established a modular structure for RBAC systems, providing for simplified commercial implementations that could offer basic RBAC0 functionality, or more advanced features as required by customers.
Largely due to a series of conferences sponsored by the Association for Computing Machinery (ACM), founded by Professor Sandhu and David Ferraiolo of NIST, a robust RBAC research community had developed, and today commercial implementations are providing ever more sophisticated RBAC systems. RBAC began to see application in a wide variety of areas. Early work by Barkley [20] showed that RBAC has a natural application in health care. Workflow management, an economically important field that deals with the automation of business processes, is another area where RBAC seems to be ideally suited to not only provide security, but serve as a framework for workflows as well. Barkley and Cincotta [21] and Bertino, Ferrari, and Atluri [22] introduced RBAC-based workflow systems.
In 2000, NIST initiated an effort to establish an international consensus standard for RBAC, publishing a proposal [23] in the ACM RBAC workshop. The proposed standard follows the RBAC96 structure and incorporates features developed out of subsequent discussions and formal comments received from the research and commercial vendor communities. In 2002 the proposed standard was submitted to the international standards process, and commercial firms have already begun building products that will conform to the RBAC standard.
What is most striking about RBAC’s history is its rapid evolution from a concept to its commercial implementation and deployment. Although this success can be attributed to a variety of factors, recognition of RBAC’s dual policy and productivity advantages have undoubtedly contributed to its present stature. In this respect, RBAC differs from many other security concepts, in that its costs of deployment need not be justified based solely on perceived threats and system vulnerabilities. Although RBAC allows for the enforcement of a wide variety of important access control policies that are either impractical or even impossible to enforce in its absence, RBAC’s productivity advantages alone are often sufficient in justifying its deployment. When taken together, these dual motivators can lead to a strong business justification. To improve the efficiency of heath care systems, the U.S. Health Insurance Portability and Accountability Act of 1996 (HIPAA) explicitly calls out RBAC requirements [24], and the U.S. Federal Aviation Administration cites RBAC in its specifications for National Airspace System security [25]. RBAC is now being prescribed as a generalized approach to access control. For instance, RBAC was found to be "the most attractive solution for providing security features in multidomain digital government infrastructure" [26] and has shown its great relevance in meeting the complex security needs of Web-based applications [27].
Although RBAC can be justified squarely on economics, something else was going on over the last decade. During this period, hundreds of papers were published on topics revolving on the theme of RBAC. As we have discussed, RBAC is a packaging of closely related and dependent access control and management features and ideas. Although the focus of RBAC is clearly on access control, in many respects RBAC can be viewed as a model for regulation and management of user actions and activities within IT environments. Furthermore, these activities have been encapsulated into highly intuitive role structures that appear naturally within most business environments. As it turns out, role structures not only apply to resource provisioning systems and access control and policy management systems, they also fit naturally into workflow, process management, collaborative, and virtual enterprise environments. When RBAC models first appeared, these enterprise applications were not envisioned. However, once published, and thoroughly examined, other researchers quickly began expanding and elaborating on RBAC concepts and structures.
The pervasiveness of RBAC’s application within modern day IT infrastructures is significant. Today, RBAC features are included at all levels of enterprise computing, including operating system, database management system, network, and enterprise management levels. RBAC is being incorporated and integrated within infrastructure technologies such as public key infrastructure (PKI), workflow management systems, and directory and Web services. In addition, RBAC is being proposed as an enabling technology in formulating metapolicies within collaborative and virtual enterprise systems.
1.3 Comparing RBAC to DAC and MAC
The principle motivations behind RBAC are the ability to specify and enforce enterprise-specific access control policies and to streamline the typically burdensome process of authorization management. RBAC represents a major advancement in flexibility and detail of control from the existing standards of DAC and MAC.
As defined in the TCSEC and commonly implemented, DAC is an access control policy and mechanism that permits system users to allow or disallow other users access to the objects under their control. The TCSEC DAC policy is defined as follows:
A means of restricting access to objects based on the identity of subjects or groups, or both, to which they belong. The controls are discretionary in the sense that a subject with a certain access permission is capable of passing that permission (perhaps indirectly) on to any other subject (unless restricted by MAC) [1].
DAC, as the name implies, permits the granting and revocation of access permissions to be left to the discretion of the individual users. A DAC mechanism allows users to grant or revoke access to any of the objects under their control without the intercession of a system administrator.
For many enterprises within industry and civilian government, end users do not "own" the information to which they are allowed access as is assumed by DAC policies. For these organizations, the corporation or agency is the actual "owner" of system objects, and it may not be appropriate to allow users to give away access rights to the objects. With RBAC, access decisions are based on the roles individual users have as part of an organization. This includes the specification of duties, responsibilities, and qualifications. For example, the roles an individual associated with a hospital can assume include doctor, nurse, clinician, and pharmacist. Roles in a bank include teller, loan officer, and accountant. Roles can also apply to military systems; for example, target analyst, situation analyst, and traffic analyst are common roles in tactical systems. An RBAC policy is based on the functions or the actions that a user is allowed to perform within the context of an organization (referred to as either privileges or permissions). The users cannot normally pass their permissions on to other users at their discretion. For example, a doctor who may posses the permission to prescribe medication should not be able to pass that permission onto a clinician.
Security policy often supports higher level organizational objectives, such as maintaining and enforcing ethics pertaining to a judge’s chambers, or the laws and respect for privacy associated with the diagnosis of ailments, treatment of disease, and the administering of medication within a hospital. To support such policies, a capability to centrally control and maintain access rights is required. The security administrator, not the users for which the policies apply, must diligently represent the organization in specifying the access policy over organizational resources.
As such, RBAC is sometimes described as a form of MAC in the sense that users are unavoidably constrained by and have no influence over the enforcement of the organization’s protection policies. However, RBAC is different from TCSEC MAC. MAC is defined in the TCSEC as follows:
A means of restricting access to objects based on the sensitivity (as represented by a label) of the information contained in the objects and the formal authorization (i.e., clearance) of subjects to information of such sensitivity [1].
As rationalized in the TCSEC, MAC supports DoD requirements and regulations pertaining to unauthorized access to classified information, and in particular to the protection of the confidentiality (reading or observing) of sensitive information. Systems that support MAC policies are concerned with the unlawful flow of information from a high level to a low level. As such, policy support is with respect to controlling reading and writing. However, control over write operations is only concerned with preventing the indirect unlawful observation of sensitive information, and not with its integrity (unauthorized modification or destruction).
With regard to RBAC controls, policies may pertain to issues of confidentiality or integrity, or both: "Who can perform what actions?"
To distinguish RBAC from the policy specifics of MAC, RBAC is often characterized as nondiscretionary access control. RBAC allows for the nondiscretionary enforcement of a variety of protection policies that can be tailored on an enterprise-by-enterprise basis. The policies enforced within a stand-alone or distributed system are the net result of the administrative configuration of various components of RBAC.
1.4 RBAC and the enterprise
RBAC has emerged as the primary alternative to MAC and DAC because it is much better suited to the needs of commercial users than these earlier models. This section introduces a simple economic model that demonstrates RBAC’s cost effectiveness and then discusses how RBAC fits into a large organization.
1.4.1 Economics of RBAC
From a business perspective RBAC has the potential to offer several benefits. This includes greater administrative productivity in performing common authorization management functions. These administrative functions pertain to assigning permissions for new user access to resources (both new users and new resources), reviewing and selectively removing accesses that are no longer necessary (and potentially harmful) with respect to a user’s change of job assignment, and the completeness and immediacy of the removal of permissions in the event of a user’s separation from the enterprise. These same features have demonstrated their ability to increase user productivity by reducing the downtime between administrative events, where the enterprise would be deprived of productivity during the period when the user is unable to access system resources. There is usually a direct relationship between the cost of administration and the number of associations that must be managed in order to administer an access control policy: The larger the number of associations, the costlier and more error-prone access control administration. In most organizations, the use of RBAC reduces the number of associations that must be managed.
A simple economic model can be used to approximate the savings that results from using a role-based approach [28]. Job positions typically are occupied by more than one individual, and most positions require more than one permission in order for an individual in a job position to carry out the responsibilities of that position. One can describe the associations authorizing permissions to individuals who perform the responsibilities of a job position as an ordered pair consisting of a set of individuals and a set of permissions (U, P) where:
U = the set of individuals in a job position;
P = the set of permissions required to perform that job position.
The number of associations required to directly relate the individuals to those permissions is |U|⋅|P|, where
|U| = the number of individuals in the set U;
|P| = the number of permissions in the set P.
In other words, for each individual in U, there is an association for each permission in P.
A role can be described as a set of permissions. Thus, the set P can refer to a role, or a job position whose user-role and role-permission associations are represented by the ordered pair (U, P). The number of user-role and role-permission associations required to authorize each user in the set U for each of the permissions in the set P where P represents a role is |U| + |P| (i.e., an association with the role P for each individual in U and an association with the role P for each permission in P).
For a job position, if |U| + |P| < |U| ⋅ |P|, then the administrative advantage of RBAC over relating users directly with permissions is realized for that job position. A sufficient condition for |U| + |P| < |U| ⋅ |P| is |U|,|P|, > 2, which is typically the case for most job positions in most organizations.
If n is the number of job positions within an organization, then the administrative advantage of RBAC is realized organizationwide when
(Note that this is only an approximation, as users may frequently fill more than one role in an organization, and roles may be hierarchically related.)
In addition to cost savings due to greater administrative and user productivity, RBAC has the advantage of avoiding future expenses incurred through breaches of security or privacy policies. Because RBAC can map naturally to organizational and business structures, is more configurable then conventional identity-based access control mechanisms, and can be managed at an abstraction above and across the systems and applications for which it controls access, RBAC can enforce a greater number and type of access control policies. Depending on the type of RBAC deployment these policies can include the enforcement of least privilege (the time-honored administrative practice of assigning privileges to users’ that are minimally necessary for the performance of duty), and separation-of-duty policies (thus avoiding situations that can lead to a conflict of interest). RBAC can also increase user productivity by allowing users greater access to more resources and the ability to better delegate administrative responsibility to customers and partners where possible.
1.4.2 Authorization management and resource provisioning
At the lowest level, administrators control user access rights through the creation and maintenance of ACLs on a system-by-system basis. ACLs specify, for each protected resource, a list of individual users, or groups composed of individual users, with their respective modes of access (e.g., read or write) to the resource. This use of ACLs has proved problematic for a variety of reasons. ACLs are tied to particular resources. ACLs further complicate matters because they are managed on a system-by-system basis. A large number of users, each with many privileges, imply a very large number of user-privilege associations that are spread over potentially large numbers of independently managed platforms and applications. Thus, when a user takes on different responsibilities within the enterprise, administering these changes entails a thorough review, resulting in the selective addition or deletion of the user’s privileges, typically within numerous systems.
Authorization management and resource provisioning tools, which typically incorporate RBAC, have been developed to assist administrators in dealing with these challenges.
Security administrators who manage users, resources, and privileges on more than one platform must perform many similar tasks on different systems. Because each system has its own proprietary administrative interface, even routine tasks require security administrators to have detailed knowledge of each type of security system. They spend valuable time logging on and off different security systems while performing each task locally.
As organizations grow, users typically require access to more and more systems, including one or more applications that the user interacts with on a daily basis, an e-mail server, systems used for occasional transactions such as entering travel reimbursements or managing retirement accounts, and possibly print servers, Web sites, and a host of other systems that require authorization. All of these systems require some form of authentication and access control, and they may be changed and updated independently of one another, making it difficult for users to keep their passwords consistent across all systems. Some organizations may explicitly require that users not use the same passwords for different systems, particularly if the systems vary in sensitivity. Managing authentication and access control across multiple systems is the key problem in authorization management.
Maintaining user IDs, role memberships, permissions, and the associations between roles and permissions are all tasks included in authorization management. In most cases, system administrators must deal with these problems on a daily basis, as organizations gain and lose employees, and jobs and permissions change within the organization. Managing permissions for a large number of applications is thus not only a problem for users; it represents an enormous challenge for enterprise system administrators.
Although there are many authorization management solutions to this challenge, they all provide a means of centralizing authorization information on a server. Broadly speaking, there are two common ways of dealing with the problem of centralizing authorization, as shown in Figures 1.7 and Figures 1.8.
In the first approach, which has been termed user pull [29], the user is authenticated by the authorization server, obtains some sort of credential to access applications, and then presents the credentials as authorization to the applications. The second approach, termed server pull [29], requires applications to authenticate users, but centralizes information about user privileges on an authorization server. When a user attempts to invoke an application, the application queries the authorization server to determine the user’s permissions.
Before users can begin accessing the applications they need to do their jobs, the organization must set up access permissions for them throughout the network. This is the problem of resource provisioning. In addition to thousands of employees, the company may need to establish permissions for contractors, business partners, and customers who access corporate data on the Internet. Equally important is the task of decommissioning permissions held by employees leaving the company. Surveys of corporations have found that current and prior employees are the top two sources of security breaches. Past employees are cited as a security problem nearly as often as current employees, because of the problem of deleting permissions after employees leave [30]. Creating and maintaining proper access permissions in a fast-changing business environment is a complex problem, which has led to the development of sophisticated tools typically costing from $600,000 to $800,000 [31]. Resource provisioning typically requires cooperation among computer systems from the corporate human resources, information systems, and a broad collection of other corporate departments depending on the user’s job. If "Bob Smith" is hired, he must be given permissions for all the resources needed in his job. With conventional access control systems, this would mean assigning his user ID to every resource he will access. The direct linking of user with permission is not only timeconsuming; it invariably leads to errors as user assignments change, resulting in users having permissions they should not have.
RBAC does not permit users to be directly associated with permissions. With RBAC, permissions are authorized for roles, and roles are authorized for users. The permissions that are authorized for a role may span multiple platforms and applications. Thus, when administering RBAC two different types of associations must be managed (i.e., associations between users and roles and associations between roles and permissions). When a user’s job position changes, only the user-role associations change. If the job position is represented by a single role, then when a user’s job position changes, there are only two user-role associations to change: To implement these changes, it is necessary to remove the association between the user and the user’s current role and to add an association between the user and the user’s new role. Complexities introduced by organizational hierarchies and constraints such as separation-of-duty requirements are hidden by the access control software. This conceptually simple approach is what gives RBAC its power and flexibility.
References
-
DoD, Trusted Computer System Evaluation Criteria (TCSEC), DoD 5200.28-STD.
-
Lampson, B. W., "Dynamic Protection Structures," AFIPS Conference Proceedings, 35, 1969, pp. 27–38.
-
Ware, W. H., Security Controls for Computer Systems (U): Report of Defense Science Board Task Force on Computer Security, Santa Monica, CA: The RAND Corporation, February 1970.
-
Anderson, J. P., Computer Security Technology Planning Study Volume II,ESD-TR-73-51, Electronic Systems Division, Air Force Systems Command, Hanscom Field, Bedford, MA, 01730, October 1972.
-
Bell, D. E., and L. J. LaPadula, Secure Computer Systems: Mathematical Foundations and Model, Bedford, MA: The Mitre Corporation, 1973. See also D. E. Bell and L. J. LaPadula, Secure Computer System: Unified Exposition and MULTICS Interpretation, MTR-2997 Rev. 1, Bedford, MA: The MITRE Corporation, March 1976, and ESD-TR-75-306, rev. 1, Electronic Systems Division, Air Force Systems Command, Hanscom Field, Bedford, MA 01731.
-
Harrison, M., W. Ruzzo, and J. Ullman, Protection in Operating Systems, CACM 19, No. 8, August 1976, pp. 461–471.
-
Clark, D. D., and D. R. Wilson, "A Comparison of Commercial and Military Computer Security Policies," IEEE Symposium of Security and Privacy, 1987, pp. 184–194.
-
Dobson, J. E., and J. A. McDermid, "Security Models and Enterprise Models," in Database Security II: Status & Prospects, C. E. Landwehr (ed.), North Holland, 1989, pp. 1–39.
-
Baldwin, R. W., "Naming and Grouping Privileges To Simplify Security Management in Large Database," in Proceedings IEEE Computer Society Symposium on Research in Security and Privacy, April 1990, pp. 184–194.
-
Thomsen, D. J., "Role-Based Application Design and Enforcement," in Database Security, IV: Status and Prospects, S. Jajodia and C. E. Landwehr (eds.), North Holland, 1991, pp. 151–168.
-
Brewer, D. F. C., and M. J. Nash, "The Chinese Wall Security Policy," Proceedings IEEE Computer Society Symposium on Research in Security and Privacy,April 1989, pp. 215–228.
-
Nash, M., and K. Poland, "Some Conundrums Concerning Separation of Duty," presented at the IEEE Symposium on Security and Privacy, Oakland, CA, 1990.
-
Ferraiolo, D., D. Gilbert, and N. Lynch, "An Examination of Federal and Commercial Access Control Policy Needs," in Proceedings of the NIST-NSA National (USA) Computer Security Conference, 1993, pp. 107–116.
-
Ferraiolo, D., and D. R. Kuhn, "Role-Based Access Control," in Proceedings of the NIST-NSA National (USA) Computer Security Conference, 1992, pp. 554–563.
-
Ferraiolo, D. F., J. Cugini, and D. R. Kuhn, "Role-Based Access Control (RBAC): Features and Motivations," in Proceedings of the 11th Annual Computer Security Application Conference, New Orleans, LA, December 11–15 1995, pp. 241–248.
-
Sandhu, R. S., et al., "Role-Based Access Control: A Multidimensional View," Proceedings of the 10th Annual Computer Security Applications Conference, December 1994, pp. 54–62.
-
Nyanchama, M., and S. L. Osborn, "Access Rights Administration in Role-Based Security Systems," Proceedings of the IFIP WG11.3 Working Conference on Database Security, 1994. See also M. Nyanchama and S. L. Osborn, "The Role Graph Model and Conflict of Interest," ACM Transactions on Information and System Security (TISSEC), Vol. 2, No. 1, February 1999, pp. 3–33.
-
Deinhart, K., et al., "Method and System for Advanced Role-Based Access Control in Distributed and Centralized Computer Systems," U.S. Patent 5,911,143, June 8, 1999.
-
Sandhu, R., et. al., "Role-Based Access Control Models," IEEE COmputer, Vol. 29, No. 2, February 1996.
-
Barkley, J. F., "Application Engineering in Health Care," Second Annual CHIN Summit, June 9, 1995.
-
Barkley, J. F., and A. V. Cincotta. "Implementation of Role/Group Permission Association Using Object Access Type," U.S. Patent 6,202,066, 2002.
-
Bertino, E., E. Ferrari, and V. Atluri, "A Flexible Model for the Specification and Enforcement of Authorizations in Workflow Management Systems," 2nd ACM Workshop on Role-Based Access Control, November 1997.
-
Sandhu, R., D. Ferraiolo, and R. Kuhn, "The NIST Model for Role-Based Access Control: Towards a Unified Standard," Proc. 5th ACM Workshop on Role-Based Access Control, July 26–27, 2000.
-
U.S. Health Insurance Portability and Accountability Act of 1996 (HIPAA) at http://cms.hhs.gov/hipaa.
-
Federal Aviation Administration, National Airspace System (NAS) Protection Profile Template Supplement, Version 1.0. http://www.faa.gov/aio/common/documents/NAS_PP_Supp_v1.pdf.
-
Joshi, J., et al., "Digital Government Security Infrastructure Design Challenges," IEEE Computer, 33(2), February 2001, pp. 66–72.
-
Joshi, J. B. D., et al., "Security Models for Web-Based Applications," Communications of the ACM, 44(2), February 2001, pp. 38–44.
-
Ferraiolo, D. F., J. F. Barkley, and D. R. Kuhn, "A Role-Based Access Control Model and Reference Implementation Within a Corporate Intranet," ACM Transactions on Information and System Security (TISSEC), Vol. 2, No. 1, February 1999, pp. 34–64.
-
Park, J. S., and R. Sandhu, "RBAC on the Web by Smart Certificates," Proc. ACM Workshop on Role-Based Access Control 1999: 1–9, New York: ACM Press.
-
Daniels, J., "This is Not a Game: The Weakest Link," SANS Institute, August 9, 2001.
-
Messmer, E., "Role-Based Access Control on a Roll," Network World, July 30, 2001 at http://www.nwfusion.com/news/2001/0727burton.html.