GUIDE TO UNDERSTANDING TRUSTED FACILITY MANAGEMENT








June 1989







       NATIONAL COMPUTER SECURITY CENTER

                               NCSC-TG-O15
                                   Library No. S-231, 429


                FOREWORD

The National Computer Security Center (NCSC) has established an aggresive
program to study and implement computer security technology and to
encourage the widespread availability to trusted computer operations.  To
provide insight into the Trusted Computer Systems Evaluation Criteria
(TCSEC) and to assure that each feature of the TCSEC will be discussed in
detail and provide the proper interpretation with specific guidance, the
NCSC has established a Technical Guideline Program   This Technical
Guideline Program, and the cooperative business relationship being forged
with the computer and telecommunication industries, will result in the
fulfillment of our country's computer security requirement.  We are
determined to meet the challenge of identifying trusted computer
guidelines suitable for use in processing all types and classifications of
information.

"A Guide to Understanding Trusted Facility Management" is the latest in
the series of technical guidelines that are being published by the
National Computer Security Center.  This technical guideline has been
written to help the computer security manufacturers, system evaluators,
accreditors, as well as end users understand what procedures, methods, and
processes are required for trusted facility management at B2 through A1
classes ofthe TCSEC.

As the Director, National Computer Security Center, I invite your
recommendations for revision to this technical guideline.  We plan to
review this document periodically or when the need arises.



_______________
Patrick R. Gallagher Jr.                                15 August 1989
Director
National Computer Security Center


                        ACKNOWLEDGMENTS

Special recognition for their contributions to this document are extended
to Info Systems Technology, Inc., and to Dr. Virgil D. Gligor of the
University of Maryland as primary author of this document, and to Ms.
Valerie A. Maurer and MAJ James P. Gordon (U S Army) as Project Managers
for the production and preparation of this guideline.

Acknowledgment is given to the many computer vendor representatives, and
members of the National Computer Security Center (NCSC) community, who
enthusiastically gave of their time and technical expertise in reviewing
the guideline and providing valuable comments and suggestions.  Special
thanks is given to Ms. Carol Lane, Mr. Leon Howell and Mr. Douglas Hardie
for their invaluable assistance and guidance in this effort.


                        PREFACE

This guideline contains information derived from the requirements of the
TCSEC prefaced by the word "shall", and recommendations derived from good
practices prefaced by the word "should" when conducting trusted facility
management.  The recommendations in this document are also not to be
construed as supplementary requirements to the TCSEC.  The TCSEC is the
only metric against which systems are to be evaluated.

Throughout this guideline there will be examples, illustrations, or
citations of administrative roles and operations that have been used in
trusted facility management.  The use of these examples, illustrations,
and citations does not mean that they contain the only acceptable
procedures, methods, or processes.  The selection of these examples is
based solely on their availability in the computer security literature.
Examples in this document are not to be construed as the only
implementations that will satisfy the TCSEC requirements or intended to
single out any particular operating system to highlight weaknesses and
shortfalls, but merely to provide clarification.  The examples are
suggestions of appropriate implementations.


       TABLE OF CONTENTS

       FOREWORD        i


       ACKNOWLEDGMENTS ii


       PREFACE iii


1.  INTRODUCTION        1

       1.1.  PURPOSE   1

       1.2.  SCOPE     2

       1.3.  CONTROL OBJECTIVES        3



2.  SECURITY ADMINISTRATION - THE PROBLEM       4



3.  TCSEC REQUIREMENTS FOR TRUSTED FACILITY MANAGEMENT  5

       3.1.  REQUIREMENTS FOR SECURITY CLASS B2        5

               3.1.1.  Security Policy 5

               3.1.2.  Accountability  5

               3.1.3.  Operational Assurance   5

                       3.1.3.1.  System Architecture   5

                       3.1.3.2.  Trusted Facility Management   6

               3.1.4.  Life-Cycle Assurance    6

                       3.1.4.1.  Security Testing      6

                       3.1.4.2.  Design Specification and Verification
                                                       6

                       3.1.4.3.  Configuration Management      7

               3.1.5.  Documentation   7

                       3.1.5.1.  Trusted Facility Manual       7

                       3.1.5.2.  Test Documentation    8

                       3.1.5.3.  Design Documentation  8

       3.2.  REQUIREMENTS FOR SECURITY CLASS B3        9

               3.2.1.  Security Policy 9

               3.2.2.  Accountability  9

               3.2.3.   Operational Assurance  9

                       3.2.3.1.  System Architecture   9

                       3.2.3.2.  Trusted Facility Management   9

                       3.2.3.3.  Trusted Recovery      11

               3.2.4.  Life-Cycle Assurance    11

                       3.2.4.1.  Security Testing      11

                       3.2.4.2.  Design Specification and Verification
11

                       3.2.4.3.  Configuration Management 11

               3.2.5.  Documentation   11

                       3.2.5.1.  Trusted Facility Manual       11

                       3.2.5.2.  Test Documentation    11

                       3.2.5.3.  Design Documentation  11

       3.3.  REQUIREMENTS OF SECURITY CLASS A1 12

               3.3.1.  Additional Life-Cycle Assurance Requirements 12

                       3.3.1.1.  Configuration Management      12

                       3.3.1.2.  Trusted Distribution  12



4.  SATISFYING THE TCSEC REQUIREMENTS   13

       4.1.  SEPARATION OF ADMINISTRATOR AND OPERATOR  13

               4.1.1.  Security-Relevant Functions of the System
                       Administrator 16

               4.1.2.  Security-Relevant Functions of the Operator 17

       4.2.  SEPARATION OF SECURITY AND NONSECURITY-RELEVANT FUNCTIONS 17

       4.3.  IMPACT OF OTHER TCSEC REQUIREMENTS        19

5.  SEPARATION OF OPERATOR'S AND ADMINISTRATOR'S ROLES  21

       5.1.  FUNCTIONS OF THE SECURITY ADMINISTRATOR   24

       5.2.  FUNCTIONS OF THE SECURE OPERATOR  30

       5.3.  FUNCTIONS OF THE ACCOUNT ADMINISTRATOR    31

       5.4.  FUNCTIONS OF THE AUDITOR  32

       5.5.  FUNCTIONS OF THE OPERATOR 36

       5.6.  FUNCTIONS OF THE SYSTEM PROGRAMMER        37

       5.7.  OTHER ROLES       38

       5.8.  RELATIONSHIP AMONG ADMINISTRATIVE ROLES   39



6. IMPACT OF OTHER TCSEC REQUIREMENTS   42

       6.1.  SECURITY POLICY   42

       6.2.  ACCOUNTABILITY    43

       6.3.  ASSURANCE 44

               6.3.1.  Operational Assurance   44

               6.3.2.  Life-Cycle Assurance    46

       6.4.  DOCUMENTATION     46



               GLOSSARY        47


               REFERENCES      58




LIST OF FIGURES

       Figure 1.       Required Class B2 Separation of Functions,
               Privileges,and Databases                        16

       Figure 2.  Required Class B2 and Class B3 Separation
                of Functions, Privileges, and Databases of
                Administrative Roles                   19

       Figure 3.  Recommended Separation of Functions, Privileges, and
                Databases of Administrative Roles              23

       Figure 4.  Relationships Among Administrative Roles     41



1.  INTRODUCTION

The principal goal of the National Computer Security Center is to
encourage the widespread availability of trusted computer systems.  In
support of that goal a metric was created, the DoD Trusted Computer System
Evaluation Criteria (TCSEC), against which computer systems could be
evaluated for security.  The TCSEC was originally published on 15 August
1983 as CSC-STD-001-83.  In  December 1985 the DoD adopted it, with a few
changes, as a DoD Standard, DoD 5200.28-STD.  DoD Directive 5200.28,
"Security Requirements for  Automated Information Systems (AISs)", has
been written, among other reasons, to require the Depart*ment of Defense
Trusted Computer System Evaluation Criteria be used throughout the DoD.
The TCSEC is the standard used for evaluating the effectiveness of
security controls built into AISs.  The TCSEC is divided into four
divisions:  D, C, B, and A, ordered in a hierarchical manner with the
highest division (A) being reserved for systems providing the best
available level of assurance.  Within divisions C , B, and A, there are
subdivisions known as classes, which are also ordered in a hierarchical
manner to represent different levels of security.

         1.1.  PURPOSE

       An important assurance requirement of the TCSEC, which appears in
all classes from B2 to A1, is trusted facility management.  This refers to
the administrative procedures, roles, functions (e.g., commands, programs,
interfaces), privileges and databases that are used for secure system
configuration, administration and operation.

       The objective of trusted facility management is to support
security and accountability policies throughout a system's operation.  To
accomplish this goal, two key requirements are the separation between
Administrator and Operator functions, in class B2, and between
security-relevant and nonsecurity-relevant functions of System
Administrators, in class B3.  This separation of administrative and
operator functions, and security-relevant and nonsecurity-relevant
functions of System Administrators, also applies to class A1.  These
separations help ensure that security-adverse effects of human error,
misdeed, and system failure do not affect administrative functions and
data.

       The purpose of "A Guide to Understanding Trusted Facility
Management" is to provide guidance to manufacturers on how to incorporate
functions of trusted facility management into their systems; to system
evaluators and accreditors on how to evaluate the design and
implementation of trusted facility management functions; and to end users
on how to use these functions effectively, e.g., on how to avoid common
pitfalls of system management.

         1.2.  SCOPE

       The guidelines for trusted facility management presented herein
refer to the separation of administrative functions, interfaces, and
procedures of an important assurance requirement of classes B2 through A1
of the TCSEC.  This guideline is intended to present the issues involved
in the design of trusted facility management.

       This guideline contains five.additional sections.  Section 2
contains a brief overview of the inherent vulnerabilities of
administrative roles.  Section 3 presents TCSEC requirements that affect
the design and implementation of trusted facility management functions,
and includes recommendations corresponding to each evaluation class.
Section 4 reviews the major requirements of trusted facility management as
stated in the TCSEC.  Section 5 presents the separation between
Administrator's and Operator's functions and the possible partitioning of
the security-relevant functions of the Administrator and Operator into
separate roles, functions and databases.  Section 6 discusses the impact
of the other TCSEC requirements on trusted facility management, including
design and modeling alternatives for trusted facility management.

       Not addressed herein are personnel security measures, physical
security of the automated information system  equipment, and other
administrative measures external to the AIS.  The evaluation of these
measures is beyond the scope of TCSEC-based evaluations [12, p.87].  These
guidelines apply to computer systems, processing environments,  and
products built or modified with the intention of satisfying the TCSEC
requirements.  Note that this document contains suggestions and
recommendations derived from TCSEC objectives but which are not required
by the TCSEC.  Additional recommendations are made, which are derived from
the stated objectives of the TCSEC.

         1.3.  CONTROL OBJECTIVES

       Trusted facility management is one of the areas of operational
assurance.  As such, the trusted facility management is an aspect of the
objective, "assurance."  The assurance objective provided in the TCSEC is:

               "Systems that are used to process classified or other
sensitive information must be designed to guarantee correct and accurate
interpretation of the security policy and must not distort the intent of
that policy.  Assurance must be provided that correct implementation and
operation of the policy exists throughout the system's life cycle."

       This objective affects trusted facility management in two
important ways.  First, administrative roles of the system are the key
components that help to ensure the enforcement of the system security
policy, and thus, their function must support the intent of that policy.
Second, the administrative roles must satisfy the life-cycle assurance
requirements of correct implementation and operation.

2.  SECURITY ADMINISTRATION - THE PROBLEM

Weaknesses of trusted facility management are role specific and common to
all administrative roles.  Careful examination of both common
administrative roles and role-specific weaknesses is important for both
system designers and administrators because exposure to some of these
weaknesses can be reduced or eliminated by specific designs or by
administrative procedure external to the system in use.  The distinction
between the two types of weaknesses is also useful for the strengthening
of mechanisms and procedures supporting different roles selectively.

The weaknesses discussed below are generic in the sense that they are not
specific to any particular system or design.  Careful analysis should be
performed in designing and implementing specific systems to identify
specific additional weaknesses and their required countermeasures.
Design, implementation, and use of auto*mated tools for analyzing specific
system weaknesses are useful, but still a research subject [1].

Three types of weaknesses affect all administrative roles to various
degrees:

               (1) unauthorized modification of hardware and software
system configuration Unauthorized changes of system configuration, including
both hardware and software changes, can take place during all phases of a
system life-cycle.

               (2)     penetration of a specific administrative role.
Penetration of administrative roles by non-administrative users, or by
unauthorized administrative users, is usually made possible by flawed, or
weak, mechanisms for identification and authentication, TCB protection, or
role separation.

               (3)     misuse of administrative authority.  This can
arise from careless or deliberate misuse of administrative authority.
Misuse of authority can cause both TCB and user security violations, and
therefore can lead to extensive damage.


3.  TCSEC REQUIREMENTS FOR TRUSTED FACILITY MANAGEMENT

In the TCSEC, n requirements for Trusted Facility Management are for
security classes B2 through A1.  Classes C1 through B1 have no Trusted
Facility Management requirements.

         3.1.  REQUIREMENTS FOR SECURITY CLASS B2

                  3.1.1.  Security Policy

               No Additional Requirements.

                  3.1.2.  Accountability

               All identification and authentication requirements of
class B2, including trusted path, shall apply to the administrative users
individually.

               All actions of administrative users shall be auditable in
accordance with the B2 audit requirements.

                  3.1.3.  Operational Assurance

                           3.1.3.1.  System Architecture
                       The TCB programs and data structures
implementing administrative functions:

                       * must satisfy the modularity requirements of
class B2;

                       * must satisfy the least privilege principle;

                       * must use logically distinct storage objects
with separate attributes (e.g., files, segments).

                       The interfaces of the administrative roles
implemented by the TCB must be completely defined, and all the elements of


the TCB implementing the administrative roles must be identified.


                           3.1.3.2.  Trusted Facility Management

                       The TCB shall support separate Operator and
Administrator functions.  The Administrator's functions include those of:

                                       * the Security Administrator

                                       * System Programmer

                                       * the Auditor

                                       * the Account Administrator
(whenever this role is defined to be security-relevant).

These functions must be separated from those of the Secure Operator.
While the Administrator's functions may be combined into one function, we
recommend they be separated as described in section 5.   The remaining
functions include only the nonsecurity-relevant functions.

                  3.1.4.  Life-Cycle Assurance

                           3.1.4.1.  Security Testing

                       All security testing requirements of class B2
apply to the TCB functions and interfaces implementing administrative
roles as stated.

                           3.1.4.2.  Design Specification and
Verification

                       Recommendation:

                                       -Descriptive Top-Level
Specifications (DTLSs) of the TCB functions and interfaces implementing
administrative roles must be maintained that completely and accurately
describe these functions and interfaces in terms of exceptions, error
messages, and effects.
                                       -A formal security and
integrity model of trusted facility management should be used to define the
separation of administrative roles, functions, privileges and databases.

                           3.1.4.3.  Configura*tion Manage*ment

                       All configuration management requirements of
class B2 apply to the TCB functions and interfaces implementing administrative
roles as stated.

                  3.1.5.  Documentation

                           3.1.5.1.  Trusted Facility Manual

                       A manual shall be available that provides the
following:

                                       * be addressed to the ADP
system administrator shall present cautions about functions and privileges
that should be controlled when running a secure facility.

                                       * give procedures examining
and maintaining the audit files.

                                       * give the detailed audit
record structure for each type of audit event.

                                       * describe the operator and
administrator functions related to security, to include changing the security
characteristics of a user.

                                       * provide guidelines on the
consistent and effective use of the protection features of the system.

                                       * explain how the protection
features of the system interact.

                                       * show how to securely
generate a new TCB.

                                       * provide guidelines on
facility procedures, warinings, and privileges that need to be controlled in
order to operate the facility in a secure manner.

                                       * identify the TCB modules
that contain the reference validation mechanism.

                                       * describe the procedures
for secure generation of a new TCB from source after modification of any
modules in the TCB.

                           3.1.5.2.  Test Documentation

                       All test documentation requirements of class B2,
except those for covert channel testing, apply to the TCB functions and
interfaces implementing administrative roles as stated.

                           3.1.5.3.  Design Docu*menta*tion

                       Documentation shall be available that provides a
description of:

                       *       Interfaces between the TCB modules
implementing functions of the administrative roles;

                       * Specific TCB protection mechanisms used for
the separation of administrative roles;

                       *       Descriptions of the TCB modules
implementing functions and interfaces of the administrative roles;

                       *       How the least privilege principle is
supported by the functions and interfaces of the TCB implementing
administrative roles;

                       *       How the actions of the administrative
roles are audited.

                       Recommendation:

       -A formal description of the security and integrity policy model
used to define the separation of administrative roles should be available
and proven to be sufficient to enforce the claimed separation.
         3.2.  REQUIREMENTS FOR SECURITY CLASS B3

       All the requirements of Class B2 are included at this level.  The
additional class B3 requirements are listed below.

                  3.2.1.  Security Policy

               No Additional Requirements.

                  3.2.2.  Accountability

               The trusted-path requirements of class B3 apply to
administrative users.

               The additional audit requirements of class B3 apply to the
administrative users.

                  3.2.3.   Operational Assurance

                           3.2.3.1.  System Architecture

                       The additional TCB structuring requirements of
class B3 (i.e., significant use of abstraction, information hiding, and
layering) apply to the functions and interfaces of the TCB implementing
administrative roles.

                           3.2.3.2.  Trusted Facility Management

                       The security-relevant administrative functions
(i.e., those of the Security Administrator, System Programmer, Auditor and
the Secure Operator's roles defined above) must be separated from the
nonsecurity-relevant administrative functions.

                       The security-relevant administrative functions
must be limited to those that are essential to performing the security
roles effectively.

                       All actions of security personnel (Secure
Administrator and Secure Operator) must be audited.



                       Recommendations:

                       - The functions of security administration and
personnel should distinguish among

                                               * System
Programmer, Security Administrator, Auditor, and Secure Operator

                                               * their privileges

                                               * their databases.

                       - Different levels of trust should be
established for the following roles in accordance with the power and
vulnerability of each role:

                               * System Programmer (maintenance and
diagnostics mode);

                               *       Security Administrator;

                               *       Auditor;

                               *       Secure Operator;

                               *       Account Administrator;

                               *       Operator.

                       (Note: The distinction between the System
Administrators, Operators, and System Security Officers is explicitly made
in the audit requirements of the TCSEC [11, p. 16].  These roles
correspond to the Account Administrator, Secure/Normal Operator, and
Security Administrator/Auditor roles above.  Also note that these
distinctions do not require the separation of security-relevant and
nonsecurity-relevant functions as they are made in the audit -- not
trusted facility management -- requirement area).

                           3.2.3.3.  Trusted Recovery

                       The trusted recovery requirement of class B3
applies to the functions and interfaces of the TCB implementing
administrative roles.

                  3.2.4.  Life-Cycle Assurance

                           3.2.4.1.  Security Testing

                       All additional security testing requirements of
class B3 apply to the functions and interfaces of the TCB implementing
administrative roles.

                           3.2.4.2.  Design Specification and
Verification

                       Recommendation:

                                       - The additional design
specification and verification requirements of class B3 should be applied to
the functions and interfaces of the TCB implementing administrative roles.

                           3.2.4.3.  Configuration Management

                       No Additional Requirements.

                  3.2.5.  Documentation

                           3.2.5.1.  Trusted Facility Manual

                       The additional requirements shall include
procedures to ensure that the system is initially started in a secure
state and procedures to resume secure system operation after any lapse in
system operation.

                           3.2.5.2.  Test Documentation

                       No Additional Requirements.

                           3.2.5.3.  Design Docu*menta*tion

                       No Additional Requirements.

         3.3.  REQUIREMENTS OF SECURITY CLASS A1

       All requirements of the security class B3 are included here.  The
only additional requirements are in the following "Life-Cycle Assurance"
areas:

                  3.3.1.  Additional Life-Cycle Assurance Requirements


                           3.3.1.1.  Configuration Management

                       All additional configuration management
requirements of class A1 apply to the TCB functions and interfaces
implementing administrative roles.

                           3.3.1.2.  Trusted Distribu*tion

                       All trusted distribution requirements of class
A1 apply to the TCB functions and interfaces implementing administrative
roles.

4.  SATISFYING THE TCSEC REQUIREMENTS

       The principal requirements of trusted facility management are:

                       * the separation of Operator and Administrator
functions;

                       * the logical (or physical) separation of the
database information corresponding to those functions; and

                       * the implementation of least privilege such
that functions have only the minimum necessary privileges to the databases.


         4.1.  SEPARATION OF ADMINISTRATOR AND OPERATOR FUNCTIONS

       The separation of Administrator and Operator functions is a
requirement of TCSEC class B2, which states:

               "The TCB shall support separate Operator and Administrator
functions."

       The primary purpose behind the separation of the Operator and
Administrator functions is to limit the potential damage that untrusted,
or errant, code can inflict on the information the TCB uses to enforce the
security policy.  Any code executed with Operator or Administrator
privileges has the ability to change the TCB data structures, thus
affecting the enforcement of policy.  Through the application of the
principal of least privilege and the separation of Operator and
Administrator functions so that they are prevented from executing
untrusted code, the TCB data structures can be protected.  The principle
of least privilege requires that each subject be granted the most
restrictive set of privileges needed for the specific task.  In the case
of the operator and administrator functions, the privileges need to be
established at a low level of granularity so that the proceses that
implement those functions do not have unnecessary privileges.  This low
level of granularity provides several important protections:

                       * limits the effects of errors on the part of
the administrator;

                       * limits the effects of incorrect code which
implements the administrator functions;

                       * provides some protection against malicious
administrators, in that damage that can be done is strictly contained to the
provileges defined for that role.  Some additional protection is afforded by
the auditing of administrator actions.  (This argument can be extended to
malicious code which is inserted in the administrator functions.)

       The TCSEC recognizes the need to separate the operator and
adminstrator functions from the normal user abilities to execute code.
There are several ways to implement such separation.  One way is to
enforce those restrictions on the Administrator and Operator functions.
They can only execute trusted code that has been shown to preserve the TCB
data structures properly.  This requires that the people who perform those
functions also have a separate account that allows them to be a normal
user.  That separate account would not have any Operator or Administrator
capabilities.  Whatever approach to separation is selected, it must be
shown to restrict the Operator or Administrators from executing untrusted
code.

       The separation of Operator and Administrator functions, namely
between the commands, programs, and interfaces implementing those
functions, is important because these functions are used with different
privileges, on different system data.  Should these functions not be
separated, Operators could use commands that include Administrators'
privileges and databases.  This would mean that all Operators would need
to be trusted to the same degree as that needed for Administrators.  It
would also mean that the principles of least privilege and separa*tion of
privilege, which are two of the most important security principles (see
reference [18] for a further explanation of these principles), are
violated, overexposing the system to error, failure, and misdeed.
Furthermore, lack of functional separation would fail to confine the
effects of any function penetration, leaving the entire system in a
vulnerable state.

       In addition to the separation of Administrator and Operator
functions, trusted facility management should also separate internal
system databases which the Operator and Administrator manipulate.  Checks
and balances are necessary to avoid trusting too many all-powerful
Administrators.  The identification of the security-relevant, internal
system databases and the correlation between each function and the
corresponding database shall be carefully performed and documented.  The
separation of Operator's and Administrator's functions shall also lead to
the separation of accessible objects and of access privileges to shared
databases.  This is an essential design requirement for the enforcement of
the least privilege principle within the TCB because it helps identify and
eliminate unnecessary Operator access to administrator data.  For example,
the Administrator has full access to system databases that need not be
fully accessible to the Operator; i.e., the Administrator has Read/Write
privileges to some (shared) databases, such as the system security
profile, for which the Operator only needs Read privileges.  Thus, the
Write privilege of the Operator to these databases would be eliminated.
Also, because these databases are separate, consistency checks may be
derived from the security-relevant databases of the Administrator and
applied to the security-relevant functions of the Operator.  This would
increase the robustness of the administrative functions of the system and,
implicitly, its usefulness.

       Figure 1 illustrates both the separation of function and of
privileges/databases for class B2.  Note, although the functions of the
Operator and Administrator are completely separated, the Administrator's
privileges include those of the Operator in the sense that the
Administrator can always get access to all Operator functions, databases,
and privileges.  For example, an Administrator can always log in as an
Operator and perform Operator functions.  In contrast, the Operator cannot
get access to functions, databases, and privileges that are exclusively
the Administrator's.  Note, this hierarchical relationship of roles is a
functional hierarchy.  The system could provide a "flat" set of roles,
functions and privileges, and the hierarchy could be managed
administratively.












                  4.1.1.  Security-Relevant Functions of the System
Administrator

               The security-relevant functions of the System
Administrator include those that:

                       * Define and change the user security
characteristics and those of the system security data (e.g., user identifier,
user's group identifiers, user/group maximum security level; and the
maximum/minimum security level of the system data, the maximum/minimum
security level of each file system).

                       * Define and change the system's security
characteristics (e.g., security level limits of multilevel channels, I/O
processors, communication lines, and devices; all possible level changes of
single level devices).

                       * Perform system programming functions; (e.g.,
trusted system configuration in accordance with the configuration management
policy, system distribution, system installation, TCB code maintenance that
may affect system configuration, distribution and installation).

                       * Perform audit functions (e.g., determine what
events should be audited, manage the audit trail, analyze the audit trail,
produce audit reports).

                  4.1.2.  Security-Relevant Functions of the Operator

               The security-relevant functions of the Operator include
those that:

                               * Enable and disable peripheral
devices, make changes to the device security characteristics within the limits
defined by the Administrator (e.g., the Operator sets the level of a
single-level device within the range defined by the Administrator).

                               * Control the mounting of file systems
and load labeled disk packs and tape reels on appropriate drives.

                               * Recover user files following system
crashes.

                               * Handle printed output.

                               * Perform maintenance operations on
user databases and routine maintenance of TCB databases.

                               * Boot up and shut down the system.


         4.2.  SEPARATION OF SECURITY AND NONSECURITY-RELEVANT FUNCTIONS


       The second requirement of the trusted facility management is to
identify, audit, and separate the security-relevant functions of the
Administrator from the nonsecurity-relevant functions.  The purpose of
this requirement is to prevent an Operator or Administrator from executing
untrusted code using their special privileges that would enable that code
to corrupt the policy enforcement data or mechanisms.  This requirement is
introduced in class B3, and is stated in the TCSEC as follows:

                       "The functions performed in the role of a
Security Administrator shall be identified.  The AIS administrative personnel
shall only be able to perform Security Administrator functions after taking a
distinct auditable action to assume the Security Administrator role on the
AIS.  Nonsecurity functions that can be performed in the Security
Administrator role shall be limited strictly to those essential to performing
the security role effectively."

       Both the Administrator and the Operator roles include
security-relevant functions.  Security-relevant functions include all
administrative functions that are used to implement the security and
accountability policies supported by a system.  Nonsecurity-relevant
functions are those that cannot affect the implementation of security and
accountability policies supported by a system.  The separation of
security-relevant and nonsecurity-relevant functions is important because
nonsecurity-relevant functions need to be trusted to a degree lower than
that of the security-relevant ones.  A higher degree of trust implies that
the operational and life-cycle assurance tasks are more extensive than
those necessary for functions of a lower level of trust.  Although some
nonsecurity-relevant functions of the Administrator may be functionally a
part of the TCB in class B2, flaws in these functions should lead only to
potential denial-of-service instances, but not to security or integrity
violations.  In class B3, essentially where the nonsecurity-relevant
functions of the Administrator shall be removed from the TCB.  The TCSEC
does permit the inclusion of nonsecurity relevant functions that are
essential to performing the security role.  While the separation of
administrative functions is not required below class B2, the benefits and
protection it provides should be seriously considered.

       Figure 2 illustrates both the separation of function and of
privileges/databases for classes B2 and B3.  Note, although the functions
of the Operator and Security Administrator (i.e., the nonsecurity-relevant
role of the Administrator) are completely separated.













       (Alternative administrative procedures for systems that do not
support any separation of roles have been suggested [5].  These procedures
may be useful for systems in TCSEC classes C1 through B1.)

         4.3.  IMPACT OF OTHER TCSEC REQUIREMENTS ON TRUSTED FACILITY
MANAGEMENT

       The third important requirement of trusted facility management is
the integration of functions and programs that implement administrative
roles within the TCB in such a way that the security policy,
accountability, assurance, and documentation requirements of specific
TCSEC classes are satisfied.  For example, in a B3 or above system, the
design of each function supporting a specific role must ensure that the
programs executing that function operate with the fewest privileges
necessary and that they are designed to satisfy the abstraction,
information hiding, and layering requirements.  Furthermore, in a class B3
or above system, the nonsecurity-relevant functions of Administrators
shall be removed from the TCB because "significant system engineering
shall be directed towards minimizing the complexity of the TCB and
excluding from the TCB modules that are not protection critical" [11].
Some work environments require the system to support multiple work shifts.
Such a system design, allowing multiple individuals to belong to the same
role, shall ensure that these individuals are not forced to share a role
password, such that accountability on an individual basis is lost.

       Most documentation requirements of the TCSEC apply to trusted
facility management as stated in each evaluation class.  However, some
requirements such as those that state the need for a Security Features
Users' Guide (SFUG) and for covert channel analysis are obviously not
applicable.  The SFUG is relevant for all users, whereas the Trusted
Facility Manual and Management are relevant only for administrative users.
Also, since most administrative users have multilevel access to system
and user data, they must be trusted to maintain the secrecy and
classification of the data.  Thus, administrative users must be cleared to
the highest level of data classification.  Furthermore, all code
implementing functions of administrative roles should be scrutinized to
ensure, to the largest extent possible, that it does not contain any
Trojan horses or trap doors.  Additional requirements imposed by the TCSEC
oftrusted facility management are discussed in the section entitled,
"TCSEC Requirements For Trusted Facility Management."



5.     SEPARATION OF OPERATOR'S AND ADMINISTRATOR'S ROLES

       An important aspect of trusted facility management is that of
partitioning the security-relevant duties of the Administrators and
Operators into separate roles.  For example, this partitioning could
distinguish the security-relevant roles of Security Administrator, System
Programmer, and Auditor -- in addition to the non-security-relevant role
of Accounts Administrator; and also could distinguish between the
security-relevant functions of the Operator (the Secure Operator role) and
the nonsecurity-relevant ones (the Operator role).  Although this further
partitioning of the Administrator's duties is not required by the TCSEC,
it is suggested:

                       (1) by the need to differentiate between the
skills required by different security-relevant functions of the
Administrator and Operator,

                       (2) by the need to divide the power (e.g.,
privileges) of the all-encompassing Administrator duty into multiple roles
that incorporate different levels of trust,

                       (3) by the need to avoid entrusting all
security-relevant functions to a single role or individual.  In this
partitioning of the Administrator's duties, the Security Administrator
role retains the functions of defining and changing the users' and the
system security profiles.

       The System Programmer's functions differ from those of the
Security Administrator, Auditor, Account Administrator and Operators.  The
System Programmer's functions, privileges, and databases include those of
the other roles, as the System Programmer is the most privileged
administrative user defined in any system.  In contrast with the other
roles, some of the System Programmer's actions may not be auditable.  This
is the case because some of the System Programmer's actions take place
before the Auditor's programs and databases are configured and loaded.
Furthermore, the System Programmer's maintenance activities may refer to
the maintenance/repair of the TCB, including the other roles' interfaces
(e.g., commands, programs), databases, and privileges.  Whenever possible,
the System Programmer functions should be relegated to system maintenance
mode only and monitored by administrative procedure.  Whenever possible,
work on TCB code should be done on a developmental system rather than on a
system in current use.  The developmental system may be a physically
separate system or a system from which user data, and in particular
classified data, have been removed (e.g., by changing disk packs or
overwriting memory) prior to performing TCB maintenance.  Note that any
modification of the TCB code, even by authorized users in the System
Programmer role, may invalidate the system's rating.  The above measures
allow the design of a system whose mode of operation does not include an
all-powerful role.

       The Auditor's functions, databases, and access privileges differ
significantly from those of the other administrative roles (e.g., Security
Administrator, Account Administrator, Operators).  The separation of the
Auditor's functions, databases, and access privileges from those of the
Security Administrator, Account Administrator, and Operators is an
important application of the separation of privilege and least privilege
principles.  Should such separation not be performed, and should the
Security Administrator be allowed to undertake Auditor functions or
vice-versa, the entire security function would become the responsibility
of a single, unaccountable individual or role in normal mode of system
operation.  For example, a Security Administrator may take actions that
represent misuse of authority and then use Auditor functions to erase any
evidence of his actions.  Although this is obviously undesirable, the
TCSEC does not require the separation of Security Administrator and
Auditor functions (and neither does it require the separation between
Secure Operator and Operator functions).

       Figure 3 illustrates both the fine-grained separation of roles and
of databases/privileges.  The relationships between the different roles
defined here are explained in Section 5.8.









The design of each administrative role should include explicitly the set
of commands, privileges, and databases specific to that role.  In
contrast, the assignment of individuals to the roles is best left to the
management of the installations familiar with the skill, interests, and
trust that can be assigned to the individuals.  Furthermore, this guide
does not distinguish between the role of the System Programmer of a
specific installation and that assigned to a manufacturer's programmer.
Such distinctions depend on the operational environment and administrative
procedures enforced in that environment.  In small system environments the
two roles become indistinguishable, whereas in large system environments
the two roles are different.  In some environments, the System Programmer
has the right to examine, modify, recompile, and rebuild the TCB, whereas
in others the System Programmer can only install a given object code
version of it.  For example, it is not uncommon that System Programmers at
a given installation site add device drivers to a TCB for new multilevel
devices supported in the systems, and then rebuild the TCB.  Whenever the
System Programmer is allowed to modify, recompile, and rebuild the TCB,
strict configuration management procedures should be followed at the
installation site and evidence be gathered to demonstrate to the
Accreditor that the system rating is maintained properly.  Again, it
should be noted that any modification to the evaluated TCB code or
configuration may invalidate the system's rating.

The distinction between various Operator's and Administrator's functions
are established by:

                       (1) who performs the system configuration,
distribution, installation and maintenance,

                       (2) who defines the user and the system security
characteristics,

                       (3) who performs systems operations such as
routine maintenance and response to user requests.  This section
recommends a more structured separation of roles that provides more
effective management of the computer resources and accountability for
those personnel.


         5.1.  FUNCTIONS OF THE SECURITY ADMINISTRATOR

       The security-relevant functions of the Security Administrator can
operate at more than one security level, and invoke processes or programs
that operate with some system privileges.  Thus, these functions must be
trusted to a high degree.  These functions include identification and
authentication functions, mandatory access control functions, and
discretionary access control functions.

       1.      The identifica*tion and authentica*tion functions of the
Security Administrator may include:

               The setting of the parameters of the login/out mechanism,
such as:

               * timeout period (maximum amount of time the system waits
for the next command or for the completion of the current command);

               * maximum login time (maximum amount of time the user may
remain logged in to a system);

               * limit of successive, unsuccessful tries to log in from a
specific terminal before Administrators are notified;

               * limit of successive, unsuccessful tries to log in to an
account, regardless of the terminal location, before Administrators are
notified;

               * terminal lockout establishment and resetting;

               * multiple (simultaneous) login attributes;

               * whether a specific user's login needs to trigger an
administrative warning (to the Administrator or to the Operator's console).

               The setting of the authentication parameters; the Security
Administrator functions may include those that carry out the following
decisions:

               * if the authentication mechanism is password-based, the
Security Administrator determines the password characteristics (whether the
user's password choice is user-generated or system-generated, the setting of
the minimum and maximum password age, the password complexity parameters,
etc.);

               * if the mechanism is dialogue-based, the Administrator
installs the dialogue programs on a per-user basis;

               * the Administrator defines and manages the distribution
of special passwords for the trusted processes that are started by passwords
(i.e., the TCB repair and maintenance processes, such as security-label
repair, etc.).

                                               [Note: The above
decisions are made when the system is installed for a particular organization,
and the system Security Administrator carries out the installation decisions
made by that organization.]
               The definition of user account and registration profile;
this definition may include:

               * user identifier (this should be unique for the lifetime
of the system); initial user password; change of user password;

               * user's full name, address, and affiliation;

               * user's group identifiers (these should also be unique
for the lifetime of the system);

               * user's default group.

                               The definition of group accounts and
registration profile; this definition may include:

               * user group id (this should be unique for the system's
lifetime);

               * group title, group administrator identifier, name and
address;

               * group disk quota;

               * group statistics.

                                               [Note: In some
environments, the user and the group identifiers of registered users may not
be disclosed to other users.  Note also that, whenever the TCB does not
automatically create unique identifiers for users and for groups, the system
Security Administrator does not reuse user/group names until he is certain
that name conflicts do not occur.]

       2.  The mandatory access control functions of the Security
Administrator may include the following:

               Definition and maintenance of the security label map; this
includes functions such as the mapping between internal representations and
human-readable representations of security lables.

               Setting of the security-level limits and the default
security levels for: the system, the users, the user groups, the system
devices, and the file systems.

               Labeling of imported unlabeled data, and unlabeled media
such as disk packs.

               Reclassification of objects; this includes:

               * object upgrade or downgrade;

               * label overrides on user output;

               * restoration of damaged labels (whenever this function is
not provided by the System Programmer role).

       3.  The discretionary access control functions of the Security
Administrator may include the following:

               Initialization of the discretionary access privileges for
group administrators to group directories and group devices; also,
initialization of storage quotas for user groups.

               Definition and maintenance of group membership (whenever
special group administrators are not supported).

                               [Note: Since any change in group
membership affects all discretionary access control decisions made by
individual users, such changes should not take place without prior
consultation with the users who may be affected by this decision.]

               Setting of discretionary privileges on file systems.

               Changes of object ownership in systems that support the
notion of ownership; also, changes of discretionary privileges on objects
whose privileges are accidentally deleted by the object's creators or owners.

               Discretionary distribution, review, and revocation of
privileges on behalf of object creators/owners in systems that do not allow
individual users to distribute, review, and revoke privileges directly (i.e.,
where the control of object sharing is centralized [9]).

       4.  Additional functions of the Security Administrator are listed
below.  Specifically, the Security Administrator may:

               Perform consistency checks to verify that:

               * the database of user and system security profiles
satisfies the system security requirements and is in a consistent state;

               * the TCB is installed properly (e.g., displays and checks
installation tables);

               * the TCB does not contain extraneous programs (e.g.,
programs that are privileged but are not part of the TCB configuration).

               Determine that the current system configuration is within
the constraints established by configuration management and the System
Programmer.  This includes the verification of:

               * device and terminal registration;

               * maximum storage size;

               * file (device) system name table and file (device) mount
tables;

               * device and terminal connection database.

               Cut off user/group accounts (whenever the Account
Administrator is not defined as a separate role).

               Delete user/group accounts.

               Display and update constants of various system tables.

               Initiate and analyze the system integrity tests.

               Supervise the maintenance procedures (hardware, etc.).

               Respond to real-time alarm messages (B3 and higher).

               Destruction of errant processes.

               Definition of the site identifier, logo, and the site
authentication protocols within a network.

                               Set up and access the following four
types of databases:

                               * The database of the user and system
security profiles;

                               * The security label map;

                               * The file system hierarchy;

                               * The system configuration database
[this includes the current hardware configuration and the security-level
limits of the various devices, terminal connections, the file-system name and
mount database, etc.].

       All the modifications to these databases are performed by the
Security Administrator using the commands of a trusted database editor and
the system's trusted path.  Although the trusted path mechanism is not
required for these modifications in class B2 systems, the trusted editor
commands are part of the administrative interface commands that must be
supported by all trusted systems.  All actions of the Security
Administrators are audited.

         5.2.  FUNCTIONS OF THE SECURE OPERATOR

       The security-relevant functions of the Operator role can operate
across more than one security level and sometimes invoke processes that
require system privileges.  Thus, these functions require a high degree of
trust.  An Operator who executes security-relevant operations is called
the Secure Op*er*a*tor.  These functions of the Secure Operator may
include the following:

       1.  Booting and shutting down the system; setting the system's
clocks; also, setting the security level of individual system devices within
the range of levels allowed by the Security Administrator's database.

               [Note:  Shutting down the system requires that the
Operator ensure that appropriate physical and administrative security
features be in place to protect the information while the system is not
running.  For example, shutting down for maintenance might require that
the date be removed and the system cleared.]

       2.  Locating damaged user files and volumes.  The "salvager" process
identifies damaged labels (e.g., labels inconsistent with those of containing
directories and files) and deletes all access to the corresponding objects
until repair is finished by the System Programmer and Security Administrator.

       3.  Performing routine maintenance of TCB databases.

               The Operator performs the following routine maintenance
operations:

                       * audit file backup (whenever this is not
included in the Auditor's role);

                       * security-level changes for some devices (these
are within the limits set by the system Security Administrator);

                       * user database backup;

                       * security-map backup;

                       * TCB tables backup.

       It must be noted that the Operator should not have the privilege
to modify file contents for file backup.

       4.  Performing on-line terminal and device tests (including
authentication tests).

       5.      Responding to user's requests.

                       The Operator should be able to respond to the
following user requests:

                       * mount/unmount physically (externally) labeled
removable media (e.g., tape reels and disk packs);

                       * import/export other physically (externally)
labeled data into/from the system.

       It must be noted that all Operator's actions must be auditable.
Mounting unlabeled storage devices is not recommended.  The TCB needs the
Label information in order to correct access control decisions.  If the
Operator is not provided the label, the system will not be able to enforce
the policy correctly.


         5.3.  FUNCTIONS OF THE ACCOUNT ADMINISTRATOR

       The security-relevant functions of the Administrator role may not
need the special privileges to operate properly, but in most installations
they will be trusted processes  However, all output generated by the
Account Administrator will be marked with the highest security level.
Otherwise, leakage of classified information may take place (e.g., encoded
in the user bills).  The nonsecurity-relevant role of the Security
Administrator is called the Account Administrator.

       The (nonsecurity-relevant) functions of the Account Administrator
are listed below.  Specifically, the Account Administrator:

                       1.  Installs and maintains accounting files.

                       2.  Turns system accounting on and off.

                       3.  Runs accounting tools and produces
accounting reports/bills.

                       4.  Enables and disables accounts at users'
requests (whenever this function is not provided by the Security
Administrator); however, the Account Administrator does not have the privilege
to define or change the users' security profiles.

                       5.  Establishes the billing rates, prices and
policies.

                       6.  On a regular basis, collects system
statistics such as:

                               * system availability;

                               * system configuration;

                               * disk/CPU/memory statistics.

                       7.  Publishes revenue/cost reports.

         5.4.  FUNCTIONS OF THE AUDITOR

       The Auditor role invokes processes that operate with system
privileges.  Thus, all functions of the Auditor require a high degree of
trust.   These functions include those that enable the audit selectivity
mechanism (e.g., audit-event setup and change), the management of audit
trails, the setting of the covert-channel delays and randomization
variables, audit data compression and postprocessing analysis [7].  Data
generated by the Auditor must be classified at the System High level since
they may contain information generated at all security levels defined in
the system.  System High is defined as the security label that dominates
all other security labels in the system.  In a sense, it is the highest
possible label.  It would be beneficial, and possibly necessary, to create
the System High level such that it is hierarchically higher than all the
data levels used in the system.  This approach has the benefit that the
mandatory access controls provide additional protections for the audit
data since only the Auditor would have authorization for this level.

       1.  The Auditor functions that define the events recorded in the
audit log (or trail) may include:

       Functions that turn on and off events that should be recorded in
the audit trail to ensure the consistency of subsequent events selected by
the Auditor.  These events ensure that the postprocessing tools function
properly.  For example, in systems where object-unique names are
represented by file system pathnames, any change to the working directory
relative to which pathnames are interpreted, should be audited.  (An
object-unique name is the unique name that identifies and distinguishes a
particular object from all other objects in a system.  In a hierarchical
file system, the object-unique name includes the associated directory
names so users can use the same name for objects in different
directories).  Otherwise, audit analysis tools that read audit events
recorded after a directory change cannot identify objects unambiguously.
For similar reasons, all events that record process creation or
destruction and identification or authentication actions should be
selected whenever the audit is on.

       Functions that display all security-relevant events which can be
audited.

       (The determination of the security-relevant events in a system is
done at design time, and is based on the interpretation of the chosen
security policy and accountability models in the system.  Any event, such
as those provided by a user invocation of a TCB or trusted process call,
is security-relevant if it causes a state transition or if it denies a
state transition in the model's interpretation.  For example, the
introduction of an object in an address space of a process is
security-relevant in a system designed to support the Bell-LaPadula model
because it causes a state transition in the interpretation of the
current-access-set component of that model's interpretation [2].
Similarly, distribution and revocation of access privileges cause a state
transition because they modify the access-matrix component of the model;
whereas a change in security level of an object/subject causes a state
transition because it modifies the security-function component of the
model.  Other state transitions, which should also be audited, may modify
multiple components of a system state; e.g., the creation/destruction of
objects that modify both the object hierarchy and the access matrix.
Additional security-relevant events may be derived from the interpretation
of the trusted facility management model whenever such a model is not
included in the security policy model.  Also, additional security-relevant
events may be derived from the covert-channel handling requirements of the
TCSEC).

       Functions that turn on or off audit events selectively on a
per-user, per-process, per-security-level or per-object basis are also
included here.  These events may be signaled by the processors, TCB, or
trusted processes.  Selection of auditor-determined subsets of these
events should also be possible.

       Functions that turn on or off events representing accumulations of
other auditable events (e.g., multiple successive unsuccessful logins) and
alarms are also included here.

       2.  Auditor functions that help manage the audit files may include:

       Creation and destruction of audit logs and postprocessing audit
files.

       Change of audit-log size and of warning points.  The warning
points may be expressed as a specific number, or percentage, of bytes
available in the audit log.  When these warning points are crossed by the
event recording mechanism, an auditor warning may be given by the system.
If the audit log becomes full and the audit mechanism is on, then the
system may stop and delay further activity until the Auditor takes
corrective action [7].

               Functions used to empty full audit files.

       Functions that format and compress events in the audit log and
postprocessing audit files.  The formatting functions may convert binary
audit data into text format, and combine partial event records into the
required record format.  The storing of formatted postprocessing files may
require the use of compression techniques to improve storage utilization.

       Functions that display the audit log and postprocessing audit
files in various formats.

       Consistency checking functions which operate on the entire auditor
database for use after system crashes.

       3.  Functions that set the delays or the randomization values for
covert channel handling should also be included in the Auditor's role.
The reason for this is that the covert channel handling guideline of the
TCSEC correlates the covert-channel audit requirement with specific
covert-channel bandwidth values and, therefore, with delay values and
randomization ranges.  For example, depending upon the values set for the
audit delays, specific channels may, or may not, need to be audited.
Thus, the specification of the delay values and randomization ranges
becomes the duty of the Auditor.  These functions may include:

       The setting of the default and current values of the delays for
single covert channels or for groups of covert channels.

       The setting of the default and current values of the randomization
ranges for covert channels arising from the dynamic allocation or
deallocation of indices in TCB tables.

       4.  Functions that perform the postprocessing of the audit data are
necessary for any audit log analysis and, therefore, should be included in any
trusted system.  Although some of these functions are independent of the
required audit analysis, such as the functions that retrieve various fields of
the audit logs, most of these functions are specific to the postprocessing
analysis required by specific applications.

       In summary, the functions of the Auditor role may set up, access
and modify the following types of databases:

                       * audit log files containing full or partial
records of audit events in binary or text formats;

                       * audit event file containing the definition of
all auditable events in the system;

                       * selected-event file containing the definitions
of all events selected on a per-user, per-process, per-security-level,
per-object basis;

                       * formatted or compressed audit files containing
the input to the postprocessing phase;

                       * audit report files.

       Access to the audit databases may be performed only by individuals
who can assume the Auditor role, using the commands defined for that role.
Use of Auditor commands must be audited.  For class B3 and above systems,
the use of Auditor commands must be through the trusted path mechanism.



         5.5.  FUNCTIONS OF THE OPERATOR

       The security-relevant functions of the Operator role do not need
all the system privileges to operate properly.  However, the Operator
should be able to change the authorization of his processes between System
Low and System High because he may need to operate at different security
levels.  System Low is the security label that is dominated by all other
security labels in the system.  In a sense, it is the lowest possible
label.

       The (security-relevant) functions of the Operator are defined
below.  Specifically, the Operator:

                       1.  Performs user volume backup.  This includes:

                               * complete volume dumps;

                               * complete volume retrievals.
                       2.      Performs system performance metering.

                       3.  Responds to various other user requests
(request for the installation of user-level software packages, etc.).

                       4.  Adjusts resource quotas for user-visible
resources.

          5.6.  FUNCTIONS OF THE SYSTEM PROGRAMMER

       The functions of the System Programmer role are the most
security-sensitive functions of the system.  They may affect the TCB
configuration, distribution and maintenance.  These functions are not
necessarily audited and, thus, any error, omission, or malicious act,
which affects the security of the entire system, may remain undetected.
(However, some form of auditing, possibly off-line, is still necessary in
some environments.  Multiple Systems Programmers checking each others'
actions may also be required in some environments for the execution of the
System Programmer functions.  Furthermore, a two-person rule may be
instituted or built into the login procedure requiring that a System
Programmer may not log in successfully unless another System Programmer is
also logging in).  Thus, the System Programmer functions should have the
highest degree of trust in the system.  The System Programmer functions
may include the following:

                       1.  Trusted system distribution; for example,
this includes the generation and handling of the site's system master copy.

                       2.  Setting of system configuration parameters
(as specified by the site's configuration management policy); for example,
this includes:

                               * generic system configuration;

                               * initialization of the TCB data
structures (before any security profiles or audit characteristics are
defined);

                               * loading of the TCB.


                       3.  Nonroutine TCB maintenance; for example,
this includes:

                               * analysis of dumps;

                               * installation of "patches" to the TCB
code and data (for this the Operator should be able to recompile TCB code from
modified source code and should use a trusted loader to reload the system);

                               * trusted recovery actions after
system crashes; for example the Operator performs consistency checks on the
file system structure, on individual TCB files, directories and tables,
repairs damaged labels;

                               * repairs damaged security labels
whenever this function is not provided by the Security Administrator role
(damaged labels identified by Secure Operators or Users).

       The databases of the System Programmer include:

                       * all TCB files (e.g., TCB code, security-map,
auditor files);

                       * all TCB tables (e.g., interrupt vectors, trap
tables, gates).



         5.7.  OTHER ROLES

       Other administrative roles can be defined in a secure system.  For
example, in certain environments the role of the Analyst can be defined.
An Analyst may be an otherwise unprivileged user who is trusted to label
imported data from various system inputs, to create new files and label
them as he sees fit.  The Analyst cannot label any data file with a
security level higher than his maximum clearance.  All the Analyst's
actions are audited as are those of a normal user.

       When a system is tied into a network, additional roles may be
necessary to ensure consistency and accuracy of the network policy
enforcement.  Such roles could involve additional security-relevant
databases.


         5.8.  RELATIONSHIP AMONG ADMINISTRATIVE ROLES

       The fine-grained separation of administrative roles defined above
permits the establishment of a hierarchical relationship among
administrative roles based on a notion of "role dominance" (not to be
confused with the notion of dominance among security or integrity levels).
This notion signifies the ability of an administrative user in a certain
role to change the attributes of objects and security profiles of users in
other roles and, if necessary, to log in and take actions in that role.

       Object attributes include:

                       * access privileges;

                       * size;

                       * security and integrity levels; and

                       * ownership.

       Profile attributes include:

                       * user and group identifiers;

                       * passwords;

                       * group membership; and

                       * time restrictions on user activity.

       The above notion of role dominance can be useful because it
provides both a measure of necessary trust (based on skills, on checking
administrative users' background and interests, etc.) that should be
invested in a role and a measure of vulnerability associated with that
role.  The most privileged role  is that of the System Programmer.  It
dominates all other roles in the system and, consequently, it exhibits the
highest degree of vulnerability.  The Auditor role should be strictly
separated from all other remaining roles defined in the system because it
maintains sensitive information describing the behavior of all users,
including the administrative ones.  The Security Administrator dominates
the Secure Operator, Account Administrator, Analyst, and user roles;
however, the dominated roles are separated from each other.  It must be
noted that users in the same role do not dominate each other.  Although
they share most functions, privileges, and databases of the common role,
their security profiles are disjoint to allow individual accountability.
This helps distinguish the activities of individual users in the same
role.  Figure 4 illustrates the relationship among the administrative
roles defined above.  The system could provide a "flat" set of roles,
functions and privileges, and the role relationships that could be managed
administratively.  Implementations of hierarchical relationships among
administrative roles can benefit from the use of mandatory security and,
especially, integrity models.  Mandatory integrity models, such as the
Biba model [4] and the Clark-Wilson model [8], could be used to guide the
design of the above-mentioned roles and hierarchical relationships, as
discussed below.

6.     IMPACT OF OTHER TCSEC REQUIREMENTS  ON TRUSTED FACILITY MANAGEMENT

The major areas of the TCSEC requirements (security policy,
accountability, assurance and documentation) impact on trusted facility
management.  The design and implementation of the functions of various
administrative roles may use some of the security mechanisms and policies
of the underlying system to implement some of their special protection
requirements or may choose to implement new protection mechanisms and
policies.  For example, the implementors of Security Administrator
functions may use the discretionary access control mechanisms or may
choose to implement to protect the Security Administrator databases from
other administrative users and from normal users.  This section examines
the relationship of other TCSEC requirements to trusted facility
management.

         6.1.  SECURITY POLICY

       To support the system's security policies, the functions of
trusted facility management must control access to, and sharing of,
administrative data.  Trusted processes implementing the security
functions of the Administrator's and Operator's role share files of the
administrative database in a variety of ways.  Some files are private to
each role and are never shared with other roles, with other users of the
same role, or with nonadministrative trusted processes.  For example, the
security label map file is private to the Security Administrator role, the
audit log and the postprocessing audit files are private to the Auditor
role, and the accounting files are private to the Account Administrator
role.  All such files are shared among all users of the same role.  Other
files, such as those containing the user and group registration, may be
shared between processes of different roles.  These files may be read and
written by Security Administrator processes, and are read by Auditor,
Secure Operator and Account Administrator processes.  Account
Administrators and Operators may perform special tasks, such as the
collection of user and system statistics and performance metering, for
which they would create and maintain private files (those not shared with
others in the same role).  Furthermore, other files are shared between
processes of an administrative role and nonadministrative trusted
processes.  For example, the user password file is read and written by the
Security Administrator role, read by the "login" trusted process, and read
and written by the "change-password" trusted process, which can be invoked
by any user.

       To control access to administrative data and to implement the
above-mentioned sharing relationships among processes of the
administrative roles, the design and implementation of trusted facility
management may, or may not, rely on discretionary and mandatory access
controls of the underlying system.  If they do, some processes
implementing role functions, which need to read and write files at all
security levels (e.g., Accounting, Auditor, and Secure Operator
processes), would need to bypass the mandatory access controls at least
occasionally.  Some other processes will operate at the highest level in
the system (e.g., accounting and audit processes) and maintain data files
at this level (e.g., audit log and postprocessing files, accounting files).

       Whenever the sharing relationships among programs and processes of
the administrative roles cannot be supported by existing mechanisms, new
mechanisms have to be introduced.  For example, the association of
specific programs implementing administrative functions with roles may
require the implementation of restricted command processors, of restricted
groups that cannot be modified by the Security Administrator, or of other
more complex integrity mechanisms (discussed below).  In all such cases,
the design and implementation of trusted facility management functions
should follow existing guidelines (see example,[9]).

         6.2.  ACCOUNTABILITY

       The accountability requirements of the TCSEC impose several
constraints on the implementation of trusted facility management, in
addition to the separation of roles.  First, the identification and
authentication of all administrative users must be unambiguous, and must
be done on an individual basis, not on a per-role basis.  For example, if
all users of a role share the same password, accountability will be lost
since any user can take the identity of other users of the same role and
commit acts of intrusion attributable to those users.

       Second, the trusted-path mechanism for classes B3 and above must
ensure that the administrative users are connected to the commands or
processes that belong to their role, and that no other users or processes
can interpose themselves into the path connecting any combination of the
administrative users, their commands, and their processes.  This can be
accomplished by providing administrative consoles recognized and separated
by the TCB hardware or software from the rest of the terminals, or by the
design of a full (i.e., B3-A1) trusted-path mechanism.

       Third, use of all administrative functions, other than those used
by System Programmers in maintenance mode, must be audited.  This implies
that trusted programs and processes implementing these commands should be
able to request the writing of audit records during the execution of those
commands.  In all areas of accountability, the design and implementation
of trusted facility management functions should follow existing guidelines
(see example, [7]).

         6.3.  ASSURANCE

       The assurance requirements of the TCSEC have a significant impact
on trusted facility management both in the operational and in the
life-cycle areas.  These requirements affect both the design and the
implementation of the trusted facility management functions.

                  6.3.1.  Operational Assurance

               The only relevant areas of operational assurance are the
system architecture and the trusted recovery areas.  The covert channel
analysis area is not relevant here because (1) all users in
security-relevant administrative roles have been screened for this
position of trust and are therefore expected not to disclose information
in an unauthorized way, and (2) all code implementing administrative
functions is reviewed to ensure, to the largest possible extent, that no
Trojan horses are present.  The system integrity requirements of the TCSEC
are also irrelevant here as they deal only with the test of proper
hardware and firmware operation.

               The system architecture requirements impose major
constraints on the design of trusted facility management.  Because all the
security-relevant and accountability functions of the administrative roles
are part of a system's TCB, all requirements of TCB interface definition
apply to the administrative interfaces.  Similarly, all requirements of
internal TCB structuring, such as those of modularity, abstraction,
information hiding, and layering apply to the design and implementation
code of the programs and processes of trusted facility management.
Careful analysis and documentation of this design and implementation area,
as well as  careful scrutiny by evaluators, is expected in this area.

               The application of the least privilege principle to the
design of trusted processes is also required of the administrative
processes of the TCB.  Several specific design requirements should be
observed here.  First, the protection of the administrative databases
should be performed at the granularity of individual files (or segments)
and individual privileges.  (The term file is used here in a generic sense
to represent a logically small structure such that the structure does not
include information unrelated to the specific function).  Second, programs
and processes of the administrative roles should have access only to the
TCB and user files, and to the privileged TCB calls, that are necessary
for implementing those roles, but to no other files or calls.  Several
design alternatives are available in this area.  For example, certain
files should be associated only with certain processes.  Privileged TCB
calls, which can be represented by ring-gate descriptors [15,19],
domain-entry capabilities [13], or per-process privilege vectors
corresponding to specific calls [16,14], should be associated with
processes only on an "as needed" basis.  These associations can be
controlled by careful application of nondiscretionary labels and
authorizations at system configuration or installation time.

               The only specific requirement of trusted recovery imposed
on the design and implementation of trusted facility management is that
the consistency of the administrative databases be maintained after system
crashes.  This requirement can be satisfied by ensuring that :

                                       * these databases are stored
on nonvolatile storage that survives system crashes;

                                       * that updates to such
storage are atomic ;

                                       * that at least one of the
administrative roles is equipped with commands for checking the consistency of
the administrative file contents.  Note that this could be a fully automated
mechanism not requiring administrator interaction.


                  6.3.2.  Life-Cycle Assurance

               Most life-cycle assurance requirements apply to the
processes and interfaces of trusted facility management as stated.  For
example, security testing, configuration management, and trusted
distribution requirements of the TCB apply to trusted facility management
to the degree of rigor commensurate with the chosen evaluation class.
This is the case because the TCB code and interfaces include the
security-relevant code and interfaces of trusted facility management.

               In contrast, only some of the requirements of the design
specification and verification area apply to the trusted facility
management directly.  For example, the need for accurate DTLSs for the TCB
interfaces applies as stated.  However, the requirements for a formal
model, for an interpretation of this model in the DTLSs of the trusted
facility management part of the TCB, and for a convincing argument that
the DTLSs are consistent with the model are not directly applicable here.
The reason for this is that no generally acceptable formal model of the
trusted facility management area exists to date.  Should a generally
acceptable formal model become available, then all requirements of the
design specification and verification area would apply to trusted facility
management directly.

         6.4.  DOCUMENTATION

       The documentation requirements of the TCSEC relevant to the
trusted facility management area are the trusted facility manual
requirements in section 3, the test documentation requirements, and some
of the design documentation [8].  In the design documentation area, only
the requirements referring to the DTLSs, TCB internal structuring, and
enforcement of the least privilege principle are relevant.



                        GLOSSARY

Access
               A specific type of interaction between a subject and an
object that results in the flow of information from one to the other.

Account Administrator
               An administrative role or user assigned to maintain
accounting files, tools, user accounts, and system statistics.

Administrative User
               A user assigned to supervise all or a portion of an AIS.

Administrator
               See Administrative User.

Approval/Accreditation
               The official authorization that is granted to an AIS to
process sensitive information in its operational environment, based upon
comprehensive security evaluation of the system's hardware, firmware, and
software security design, configuration, and implementation and of the
other system procedural, administrative, physical, TEMPEST, personnel, and
communications security controls.

Audit
               To conduct the independent review and examination of
system records and activities.

Audit Event Selection
               Selection, by authorized personnel, of the auditable
events that are to be recorded on the audit trail.

Audit Mechanism
               The processes used to collect, review, and/or examine
system activities.

Audit Postprocessing
               Processing, under the control of authorized personnel, of
specified events that had been recorded on the audit trail.

Audit Trail
               A chronological record of system activities that is
sufficient to enable the reconstruction, reviewing, and examination of the
sequence of environments and activities surrounding or leading to an
operation, a procedure, or an event in a transaction from its inception to
final results.

Auditable Event
               Any event that can be selected for inclusion in the audit
trail.  These events should include, in addition to security-relevant
events, actions taken to recover the system after failure and any events
that might prove to be security-relevant at a later time.

Auditor
               An authorized individual, or role, with administrative
duties, which include selecting the events to be audited on the system,
setting up the audit parameters which enable the recording of those
events, and analyzing the trail of audit events.

Authenticate
               (1) To verify the identity of a user, device, or other
entity in a computer system, often as a prerequisite to allowing access to
resources in a system.

               (2) To verify the integrity of data that have been stored,
transmitted, or otherwise exposed to possible unauthorized modification.

Authenticated User
               A user who has accessed an AIS with a valid identifier and
authentication combination.

Auto*mated Informa*tion System (AIS)
               An assembly of computer hardware, software and/or firmware
configured to collect, create, communicate, compute, disseminate, process,
store, and/or control data or information.

Bandwidth
               A characteristic of a communication channel that is the
amount of information that can be passed through it in a given amount of
time, usually expressed in bits per second.

Category
               A restrictive label that has been applied to classified or
unclassified data as a means of increasing the protection of the data and
further restricting access to the data.

Channel
               An information transfer path within a system.  May also
refer to the mechanism by which the path is effected.

Covert Channel
               A communication channel that allows a process to transfer
information in a manner that violates the system's security policy.    See
also:  Covert Storage Channel, Covert Timing Channel.

Covert Storage Channel
               A covert channel that involves the direct or indirect
writing of a storage location by one process and the direct or indirect
reading of the storage location by another process.  Covert storage
channels typically involve a finite resource (e.g., sectors on a disk)
that is shared by two subjects at different security levels.

Covert Timing Channel
               A covert channel in which one process signals information
to another by modulating its own use of system resources (e.g., CPU time)
in such a way that this manipulation affects the real response time
observed by the second process.

Data
               Information with a specific physical representation.

Data Integrity
               The property that data meet an a priori expectation of
quality.

Descriptive Top-Level Specification (DTLS)
               A top-level specification that is written in a natural
language (e.g., English), an informal program design notation, or a
combination of the two.

Discretionary Access Control
               A means of restricting access to objects based on the
identity and need-to-know of the user, process and/or groups 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.

Formal Security Policy Model
               A mathematically precise statement of a security policy.
To be adequately precise, such a model must represent the initial state of
a system, the way in which the system progresses from one state to
another, and a definition of a "secure" state of the system.  To be
acceptable as a basis for a TCB, the model must be supported by a formal
proof that if the initial state of the system satisfies the definition of
a "secure" state and if all assumptions required by the model hold, then
all future states of the system will be secure.  Some formal modeling
techniques include:  state transition models, temporal logic models,
denotational semantics models, and algebraic specification models.

Formal Top-Level Specification (FTLS)
               A Top-Level Specification that is written in a formal
mathematical language to allow theorems showing the correspondence of the
system specification to its formal requirements to be hypothesized and
formally proven.

Functional Testing
               The segment of security testing in which the advertised
features of a system are tested, under operational conditions, for correct
operation.

Least Privilege
               The principle that requires that each subject be granted
the most restrictive set of privileges needed for the performance of
authorized tasks.  The application of this principle limits the damage
that can result from accident, error, or unauthorized use.

Mandatory Access Control
               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
access information of such sensitivity.

Multilevel Device
               A device that is used in a manner that permits it to
process data simultaneously of two or more security levels without risk of
compromise.  To accomplish this, sensitivity labels are normally stored on
the same physical medium and in the same form (i.e., machine-readable or
human-readable) as the data being processed.

Multilevel Secure
               A class of system containing information with different
sensitivities that simultaneously permits access by users with different
security clearances and needs-to-know, but prevents users from obtaining
access to information for which they lack authorization.

Object
               A passive entity that contains or receives information.
Access to an object potentially implies access to the information it
contains.  Examples of objects are:  records, blocks, pages, segments,
files, directories, directory trees, and programs, as well as bits, bytes,
words, fields, processors, video displays, keyboards, clocks, printers,
network nodes, etc.

Object-Unique Names
               The unique name that identifies and distinguishes a
particular object from all other objects in a system.  In a hierarchical
file system, the object-unique name includes the associated directory
names so users can use the same name for objects in different directories.

Operator
               An administrative role or user assigned to perform routine
maintenance operations of the AIS and to respond to routine user requests.

Output
               Information that has been exported by a TCB.

Password
               A protected/private character string that is used to
authenticate an identity.

Process
               A program in execution.  It is completely characterized by
a single current execution point (represented by the machine state) and
address space.

Read
               A fundamental operation that results only in the flow of
information from an object to a subject.

Read Access (Read Privilege)
               Permission to read information.

Secure Operator
               An administrative role (or user) assigned to perform those
aspects of the Operator role that can affect the security relevant data
used by the TCB to enforce its policy (e.g., notifying the TCB of the
security label of a newly mount ed tape).

Security Administrator
               An administrative role (or user) responsible for the
security of an Automated Information System and having the authority to
enforce the security safeguards on all others who have access to the
Automated Information System (with the possible exception of the Auditor).
Also called System Ad*min*is*tra*tor.

Security Label Map
               A map defining the correspondence between the binary and
ASCII formats of security levels (e.g., between binary format of security
levels and sensitivity labels).

Security Level
               The combination of a hierarchical classification and a set
of nonhierarchical categories that represents the sensitivity of
information.

Security Policy
               The set of laws, rules, and practices that regulate how an
organization manages, protects, and distributes sensitive information.

Security Policy Model
               A formal presentation of the security policy enforced by
the system.  It must identify the set of rules and practices that regulate
how a system manages, protects, and distributes sensitive information.

Security-Relevant Event
               Any event that attempts to change the security state of
the system, (e.g., change discretionary access controls, change the
security level of the subject, change user password, etc.).  Also, any
event that attempts to violate the security policy of the system (e.g.,
too many attempts to login, attempts to violate the mandatory access
control limits of a device, attempts to downgrade a file, etc.).

Security Testing
                A process used to determine that the security features of
a system are implemented as designed.  This includes hands-on functional
testing, penetration testing, and verification.


Sensitive Information
               Information that, as determined by a competent authority,
must be protected because its unauthorized disclosure, alteration, loss,
or destruction will at least cause perceivable damage to someone or
something.

Sensitivity Label
               A piece of information that represents the security level
of an object and that describes the sensitivity (e.g., classification) of
the data in the object.  Sensitivity labels are used by the TCB as the
basis for mandatory access control decisions.

Separation of Privilege
               The separation of functions, namely between the commands,
programs, and interfaces implementing those functions, such that malicious
or erroneous code in one function is prevented from affecting the code or
data of another function.

Spoofing
               An attempt to gain access to a system by posing as an
authorized user.  Also called masquerad*ing or mimick*ing.

Subject
               An active entity, generally in the form of a person,
process, or device that causes information to flow among objects or
changes the system state.  Technically, a process/domain pair.

Subject Security Level
               A subject's security level is equal to the security level
of the objects to which it has both Read and Write access.  A subject's
security level must always be dominated by the clearance of its associated
user.

System Administrator
               See Security Administrator.

System High
               The security label that dominates all other security
labels in the system.  In a sense, it is the highest possible label.

System Low
               The lowest security level supported by a system at a
particular time or in a particular environment.

System Programmer
               An administrative role (or user) responsible for trusted
system distribution, configuration, installation, and nonroutine
maintenance.

Top-Level Specification (TLS)
               A nonprocedural description of system behavior at the most
abstract level; typically, a functional specification that omits all
implementation details.

Trap Door
               A hidden software or hardware mechanism that can be
triggered to permit system protection mechanisms to be circumvented.  It
is activated in some innocent-appearing manner; e.g., a special "random"
key sequence at a terminal.  Software developers often introduce trap
doors in their code to enable them to reenter the system and perform
certain functions.  Synonymous with back door.

Trojan Horse
                A computer program with an apparently or actually useful
function that contains additional (hidden) functions that surreptitiously
exploit the legitimate authorizations of the invoking process to the
detriment of security or integrity.

Trusted Computer System
                A system that employs sufficient hardware and software
assurance measures to allow its use for processing simultaneously a range
of sensitive or classified information.

Trusted Computing Base (TCB)
               The totality of protection mechanisms within a computer
system -- including hardware, firmware, and software -- the combination of
which is responsible for enforcing a security policy.  A TCB consists of
one or more components that together enforce a unified security policy
over a product or system.  The ability of a TCB to enforce correctly a
unified security policy depends solely on the mechanisms within the TCB
and on the correct input by system administrative personnel of parameters
(e.g., a user's clearance level) related to the security policy.

Trusted Path
               A mechanism by which a person at a terminal can
communicate directly with the Trusted Computing Base.  This mechanism can
only be activated by the person or the Trusted Computing Base and cannot
be imitated by untrusted software.

User
               Person or process accessing an AIS either by direct
connections (i.e., via terminals), or indirect connections (i.e., prepare
input data or receive output that is not reviewed for content or
classification by a responsible individual).

Verification
               The process of comparing two levels of system
specification for proper correspondence (e.g., security policy model with
top-level specification, top-level specification with source code, or
source code with object code).  This process may or may not be automated.

Virus
               A self-propagating Trojan horse, composed of a mission
component, a trigger component, and a self-propagating component.

Vulnerability
               A weakness in system security procedures, system design,
implementation, internal controls, etc., that could be exploited to
violate system security policy.

Write
               A fundamental operation that results only in the flow of
information from a subject to an object.

Write Access (Write Privilege)
               Permission to write an object.



REFERENCES


1.      Baldwin, R. W., "Rule-Based Analysis of Computer Security,"
Technical Report MIT/LCS/TR-401, March 1988.

2.      Bell, D.E., and L. J. LaPadula, "Secure Computer System: Unified
Exposition and Multics Interpretation," MITRE Corp., Rep. No. MTR-2997,
1976 (available as NTIS AD-A023588).

3.      Biba, K.J., "Integrity Considerations for Secure Computer
Systems," Mitre Corp., MTR-3153, Bedford, Mass., June 1975.

4.      Bishop, M., "How to Write a Setuid Program"; login, vol. 12, no.
       1, January/February 1987.

5.      Bishop M., "Managing Superuser Privileges under Unix," Research
Institute for Advanced Computer Science, Technical Report, NASA Ames
Research Center, Moffet Field, California, (June 1986).

6.      Clark, D.D., and D. R. Wilson, "A Comparison of Commercial and
Military Computer Security Policies," Proc. of the IEEE Symp. on Security
and Privacy, Oakland, Calif., April 1987.

7.      Department of Defense -- A Guide To Understanding Audit In
Trusted Systems, NCSC-TG-001, version-1, July 1987.

8.      Department of Defense -- A Guide To Understanding Design
Documentation In Trusted Systems, NCSC-TG-007, version-1, October 1988.

9.      Department of Defense, A Guide to Understanding Discretionary
Access Control in Trusted Systems, NCSC-TG-003, version-1, September 1987.

10.     Department of Defense, Password Manage*ment Guideline,
CSC-STD-002-85, April 1985.

11.     Depart*ment of Defense, Trusted Computer System Evalua*tion
Criteria, DoD 5200.28-STD, December 1985.

12.     Gligor V.D., C.S. Chandersekaran, R.S. Chapman, L.J. Dotterer,
M.S. Hecht, W.D. Jiang, A. Johri, G.L. Luckenbaugh, and N. Vasudevan,
"Design and Implementation of Secure Xenix," IEEE Trans. on Software
Engineer*ing, vol. SE-13, No. 2, February 1986.

13.     Gligor V. D., J.C. Huskamp, S.R. Welke, C. J. Linn, and W.T.
Mayfield, "Traditional Capability-Based Systems: An Analysis of their
Ability to Meet the Trusted Computer Security Evaluation Criteria,"
Institute for Defense Analyses, IDA Paper P-1935, February 1987

14.     Hecht M.S., M.E. Carson, C.S. Chandersekaran, R.S. Chapman, L.J.
Dotterer, V.D. Gligor, W.D. Jiang, A. Johri, G.L. Luckenbaugh, and N.
Vasudevan, "Unix Without the Superuser," Proc. of the Usenix Conference,
Phoenix, Arizona, June 1987.

15.     Intel Corp., iAPX 286 Programmers Reference Manual, Chapter 7,
section 5, Intel Corp., 1983.

16.     Knowles, F., and S. Bunch, "A Least Privilege Mechanism for Unix,"
Proc. of the 10th Na*tional Computer Security Conference, Baltimore, MD.,
September 1987.

17.     Lee, T.M.P., "Using Mandatory Integrity to Enforce 'Commercial'
Security," Proc. of the IEEE Symp. on Security and Privacy, Oakland,
Calif., 1988.

18.     Saltzer, J. H., and M. D. Schroeder, "The Protection and Control
of Information Sharing in Computer Systems," Proc. of the IEEE, vol. 63,
no. 9, September 1975.

19.     Schroeder, M.D. and J.H. Saltzer, "A Hardware Architecture for
Implementing Protection Rings," Communica*tions of the ACM, vol. 15, no.
3, March 1972.

20.     Thompson, K., "Reflections on Trusting Trust," Turing Award
Lecture, Communica*tions of the ACM, vol. 27, no. 8, August 1984..