Data Security
Data Security
D C
Coonntteenntt ddeessccrriippttiioonn
Part 1
Information System Security & Security Policy
Keywords:
Security, Security Policy, Security Incident, Security Audit, Prevention, Detection, Recovery.
Summary:
Each member of the community must be responsible for the security and protection of electronic
information resources over which he or she has control.
Resources to be protected include networks, computers, software, and data. The physical and logical
integrity of these resources must be protected against threats such as unauthorized intrusions, malicious
misuse, or inadvertent compromise. Activities outsourced to off-campus entities must comply with the
same security requirements as in-house activities.
However, security policy must be fixed and maintained with the collaboration of managers,
administrative officials and users.
Objectives:
Upon completion of this part, the student will be able to understand:
• What is information security?
• The definition of information security and the factors to consider when maintaining security
• Why is security design necessary?
• The objective of security design and security requirements should be established.
• Definition of security policy and advantages/disadvantages of having a security policy.
• General outline of security policy.
• Considerations when writing security policy.
• What factors should be considered when writing a security policy.
• August 1995
o A 24 years old student accessed CitiBank's computer system and illegally transferred
2.8 million US dollars to his bank account.
• March 1999
o Mellissa, a computer virus attached to Microsoft Words, spread through the use of
emails.
• February 2000
o Denial of Service attacks caused major websites such as Yahoo.com, Microsoft.com,
ebay.com, cnn.com, amazon.com to go offline.
• March 2000
o Two 18 years olds hacked into Internet shopping websites, stole 26,000 credit card data,
and shopped up to an amount of 3 million US dollars, using the stolen credit card
information.
• January 2003
o Computer virus (or worms) Slammer (2003.1) and Blaster spread through the Internet
attacking the security holes on the servers and client PCs.
20000
18000
16000
14000
12000
10000
8000
6000
4000
2000
0
1988 1990 1992 1994 1996 1998 2000
CERT is a center of internet security expertise, located at the Software Engineering Institute, a
federally funded research and development center operated by Carnegie Mellon University.
We in the slide the numbers of security incident in the united states reported to the CERT between
1988 and 2000.
• Confidentiality:
o Confidentiality is related to the READ Action
o It concerns part of the system and not necessary all the system
• Integrity:
o Integrity is related to the WRITE & MODIFY Actions
o It means that the current version is identical to a referential one
• Availability
o Availability is related to the EXECUTE Action
o It’s very difficult to implement it since DOS (Deny Of Service) attacks are easier than other
attacks.
o Actually computer systems try to reach 99.999% of availability.
• Access Control.
• Authorization
• Fault tolerance.
• Risk Management.
• Backup Policy.
• Disaster Recovery Policy.
• Anticipate the types of threats that will occur in accordance with the characteristics:
o System Configuration:
Site distribution
Site connection to the networks
etc …
o Types of user:
How the systems are used and accessed?
Is the number of users limited or unlimited?
etc…
o Expected threats
Anti-Viruses.
Password theft.
Deny of Services.
etc ...
o Damage amount
Direct loss in materials
Indirect loss in reputation.
For maximum effect, we must clarify the security requirements of the organization by assessing:
• Risks to the organization (By assessment of threats and vulnerabilities and by identifying all
possible risks
Success Factors
The following factors are often critical to the successful implementation of information security within
an organization:
Example:
Orange Book Summary
The following is a summary of the US Department of Defense Trusted Computer System Evaluation
Criteria, known as the Orange Book. Although originally written for military systems, the security
classifications are now broadly used within the computer industry.
In fact, the DoD security categories range from D (Minimal Protection) to A (Verified Protection).
D (Minimal Protection)
Any system that does not comply to any other category, or has failed to receive a higher classification.
D-level certification is very rare.
C (Discretionary Protection)
Discretionary protection applies to Trusted Computer Bases (TCBs) with optional object (i.e. file,
directory, devices etc.) protection.
B (Mandatory Protection)
Division B specifies that the TCB protection systems should be mandatory, not discretionary.
• Mandatory security and access labeling of all objects, e.g. files, processes, devices etc.
• Label integrity checking (e.g. maintenance of sensitivity labels when data is exported).
• Auditing of labeled objects.
• Mandatory access control for all operations.
• Ability to specify security level printed on human-readable output (e.g. printers).
• Ability to specify security level on any machine-readable output.
• Enhanced auditing.
• Enhanced protection of Operating System.
• Improved documentation.
• Operating Systems are: HP-UX BLS, Cray Research Trusted Unicos 8.0, Digital SEVMS,
Harris CS/SX, SGI Trusted IRIX.
A2 and above:
• Provision is made for security levels higher than A2, although these have not yet been
formally defined. No OSes are rated above A1.
Security training is oriented toward teaching users about the importance of security in order to let them
know what they should do for the security. The users are also given a clear understanding of security
policy.
• Example:
o Verify the incident.
o Determine the type and magnitude of the incident (number of internal/external hosts).
o Assess damage.
o Protect the evidence (capture a system snapshot for further analysis).
o Determine whether to track or trace.
o Communicate the problem and actions taken to: management, operations group, all affected
sites, other response organizations (such as the CERT Coordination Center), appropriate
investigative agencies.
o Recover (restore programs and applications from vendor-supplied media, ensure programs and
applications are securely Configured, restore data from periodic backups, install all relevant
patches)
o Assess time and resources used and damage incurred
o Prepare report and/or statistics
o Support prosecution activity (if appropriate)
o Conduct a post-mortem (review lessons learned, evaluate procedures, update response plan if
appropriate)
o Update policy and procedures as necessary
o Be prepared for media inquiries
Security Policy
Security policy is a set of rules that an organization establish in order to maintain the necessary
security level. It becomes the basis for the whole security design procedure.
More precisely, due to the changes in computer environment, a security policy is a set of basic rules or
guidelines to be followed by a system user. For example:
• In the narrow sense, security policy regards only settings of Operating Systems (such as UNIX) or
Firewall or Routers ...etc.
• In the broad sense, security policy covers the entire system, including operation and audit,
management …etc.
• Example:
• The number of divisions and employees within an organization increases; it becomes very
difficult to control the conduct of each employee.
• The employees within different divisions have different opinion towards security, and that could
become an obstacle when sharing information.
• In worst cases, because of differences of opinion, even frictions may occur between these
different divisions.
• Security risks that cannot be countered using security tools can be controlled.
o For example security tools cannot restrict users from connecting modem to their PCs, but
security policy can deter them
Technical Considerations
(When Writing Security Policy)
Interaction Considerations
(When Writing a Security Policy)
Security policy must be fixed and maintained with the collaboration of administrative officials and
users. Hence:
Users (individuals who access and use campus electronic information resources) must:
1. Purpose
The computer network has been a tool used in the management of our company for a long time. Since
its introduction, work efficiency has increased, and it has become a standard practice to use the
information stored on the computer network. We should continue to take full advantage of our
computer network as a management-support tool. However, network security is a high priority for a
company like us because we use the Internet to exploit business opportunities. We cannot afford to
ignore recent computer security attacks. Security issue is a business challenge we must address, to
prevent any problem in the future.
A security attack would significantly damage marketing and sales opportunities. For the sake of
customer satisfaction, we must establish a reputation of being a "secure" company.
To this end, we define the information system (e.g., the computers and the network) and the
information that resides on it as our fourth asset, hereinafter called "information assets." This
valuable asset must be carefully managed and protected.
We will formulate the Information Security Policy to protect information assets through
Information Security Management.
The Information Security Policy describes security measures, which protect the information
assets from problems such as falsification, damage, and leakage, whether intentional or not.
All parties who use the information assets must be aware of the importance of information
security and observe the Information Security Policy.
The following sample Information Security Policy statements are provided to guide
organizations in developing their own policies. It is general in nature and by no means definitive.
Each organization must assess whether the content and style is relevant to its own environment and
unique 'business requirements.
7. Definitions of Terms
Terms in the Information Security Policy are defined as follows:
7.4 Threats
Threats are direct causes of damage or loss: for example, natural disaster, mechanical
malfunction or failure, and malicious acts.
7.5 Vulnerabilities
Vulnerabilities are factors that contribute to the likelihood and frequency of threats. Examples
include structural flaws in buildings, failure to perform regular inspections, inadequate information
related security rules, and insufficient personnel training.
8. Organization
The following personnel and departments are involved in Information Security Management:
8.5 Operators
9.6 Organizer
The Information System Department serves as the Organizer and carries out administrative
tasks for the Information Security Committee. The Organizer manages documents developed by
the Information Security Committee, such as Information Security Management Plans and the
Information Security Policy.
10.4 Revision of the Information Security Policy and assessment of employee compliance
1. Objectives
User authentication is an important aspect of ensuring information security. This document has
been drafted to establish the standard for security and flexibility for user authentication. The
standard should be updated whenever necessary, such as length and type of characters, password
update frequency, and equipment, to follow changes in technology trend.
2. Persons Involved
This standard applies to all employees who use or are involved in user authentication.
4. Rules to Follow
4.3 Password
(1) Passwords should be at least 8 characters long and is recommended that it contain at least one
special character.
(2) Easily guessed passwords, such as generally used words or words related to personal hobbies or
information, are unacceptable.
(3) It is recommended that passwords be changed once a month.
(4) In principle, system administrators shall create and manage passwords of their systems. Passwords
may be written down, but not such that unauthorized users could identify the equipment or system
involved. The entire string of password characters may not be written in an easily decipherable form.
(5) Users may not speak their password out loud, or keep items near themselves that could be a clue for
their password.
(6) A new password may not be the same password used before, even if it is not updated consecutively.
(7) A user may not reuse a password, even if for another system.
4.7 Biometrics
5. Exception
If any part of this document cannot be followed for work-related reasons, users must request the
Information Security Committee for approval of exceptions. ^
6. Penalties
Violators of this document may be penalized according to the circumstances of the violation. The
"Penalty Standards" will determine the penalty.
7. Disclosure
This document is disclosed only to the Persons Involved.
8. Revisions
This document was approved by the Information Security Committee on April 1, 2004 and will
take effect on Oct 1, 2004. Requests for changes to this document must be submitted to the
Information Security Committee. The Committee must deliberate on each request, and if it concludes
that the changes are necessary, the Committee must modify the document promptly and inform the
Persons Involved. The Information Security Committee must review this document annually. Any
revision must be performed immediately, and the Committee must inform the Persons Involved of the
changes.
2.0 Purpose
The purpose of this policy is to establish a standard for creation of strong passwords, the protection
of those passwords, and the frequency of change.
3.0 Scope
The scope of this policy includes all personnel who have or are responsible for an account (or any
form of access that supports or requires a password) on any system that resides at any <Company
Name> facility, has access to the <Company Name> network, or stores any non-public <Company
Name> information.
4.1 General
• All system-level passwords (e.g., root, enable, NT admin, application administration accounts,
etc.) must be changed on at least a quarterly basis.
• All production system-level passwords must be part of the InfoSec administered global
password management database.
• All user-level passwords (e.g., email, web, desktop computer, etc.) must be changed at least
every six months. The recommended change interval is every four months.
• User accounts that have system-level privileges granted through group memberships or
programs such as "su" must have a unique password from all other accounts held by that user.
• Passwords must not be inserted into email messages or other forms of electronic
communication.
• Where SNMP is used, the community strings must be defined as something other than the
standard defaults of "public," "private" and "system" and must be different from the passwords
used to log in interactively. A keyed hash must be used where available (e.g., SNMPv2).
• All user-level and system-level passwords must conform to the guidelines described below.
4.2 Guidelines
General Password Construction Guidelines
Passwords are used for various purposes at <Company Name>. Some of the more common uses
include: user level accounts, web accounts, email accounts, screen saver protection, voicemail
password, and local router logins.
Since very few systems have support for one-time tokens (i.e., dynamic passwords which are only
used once) everyone should be aware of how to select strong passwords.
Poor, weak passwords have the following characteristics:
Passphrases
• Passphrases are generally used for public/private key authentication. A public/private key
system defines a mathematical relationship between the public key that is known by all, and
the private key, that is known only to the user. Without the passphrase to "unlock" the private
5.0 Enforcement
Any employee found to have violated this policy may be subject to disciplinary action, up to and
including termination of employment.
DoD 5200.28-STD
Supersedes
CSC-STD-001-83, dtd 15 Aug 83
Library No. S225,711
DEPARTMENT OF DEFENSE
DECEMBER 1985
FOREWORD
This publication, DoD 5200.28-STD, "Department of Defence Trusted Computer System Evaluation
Criteria," is issued under the authority of an in accordance with DoD Directive 5200.28, "Security
Requirements for Automatic Data Processing (ADP) Systems," and in furtherance of responsibilities
assigned by DoD Directive 5215.1, "Computer Security Evaluation Center." Its purpose is to provide
technical hardware/firmware/software security criteria and associated technical evaluation
methodologies in support of the overall ADP system security policy, evaluation and
approval/accreditation responsibilities promulgated by DoD Directive 5200.28.
The provisions of this document apply to the Office of the Secretary of Defence (ASD), the Military
Departments, the Organization of the Joint Chiefs of Staff, the Unified and Specified Commands, the
Defence Agencies and activities administratively supported by OSD (hereafter called "DoD
This publication is effective immediately and is mandatory for use by all DoD Components in carrying
out ADP system technical security evaluation activities applicable to the processing and storage of
classified and other sensitive DoD information and applications as set forth herein.
Recommendations for revisions to this publication are encouraged and will be reviewed biannually by
the National Computer Security Center through a formal review process. Address all proposals for
revision through appropriate channels to: National Computer Security Center, Attention: Chief,
Computer Security Standards.
DoD Components may obtain copies of this publication through their own publications channels. Other
federal agencies and the public may obtain copies from: Office of Standards and Products, National
Computer Security Center, Fort Meade, MD 20755-6000, Attention: Chief, Computer Security
Standards.
_________________________________
ACKNOWLEDGEMENTS[toc]
Special recognition is extended to Sheila L. Brand, National Computer Security Center (NCSC), who
integrated theory, policy, and practice into and directed the production of this document.
Acknowledgment is also given for the contributions of: Grace Hammonds and Peter S. Tasker, the
MITRE Corp., Daniel J. Edwards, NCSC, Roger R. Schell, former Deputy Director of NCSC, Marvin
Schaefer, NCSC, and Theodore M. P. Lee, Sperry Corp., who as original architects formulated and
articulated the technical issues and solutions presented in this document; Jeff Makey, formerly NCSC,
Warren F. Shadle, NCSC, and Carole S. Jordan, NCSC, who assisted in the preparation of this
document; James P. Anderson, James P. Anderson & Co., Steven B. Lipner, Digital Equipment Corp.,
Clark Weissman, System Development Corp., LTC Lawrence A. Noble, formerly U.S. Air Force,
Stephen T. Walker, formerly DoD, Eugene V. Epperly, DoD, and James E. Studer, formerly Dept. of
the Army, who gave generously of their time and expertise in the review and critique of this document;
and finally, thanks are given to the computer industry and others interested in trusted computing for
their enthusiastic advice and assistance throughout this effort.
FOREWORD
ACKNOWLEDGMENTS
PREFACE
INTRODUCTION
6.4 Assurance
GLOSSARY
REFERENCES
PREFACE [toc]
The trusted computer system evaluation criteria defined in this document classify systems into four
broad hierarchical divisions of enhanced security protection. They provide a basis for the evaluation of
effectiveness of security controls built into automatic data processing system products. The criteria
were developed with three objectives in mind: (a) to provide users with a yardstick with which to
assess the degree of trust that can be placed in computer systems for the secure processing of classified
INTRODUCTION[toc]
Historical Perspective
In October 1967, a task force was assembled under the auspices of the Defence Science Board to
address computer security safeguards that would protect classified information in remote-access,
resource-sharing computer systems. The Task Force report, "Security Controls for Computer Systems,"
published in February 1970, made a number of policy and technical recommendations on actions to be
taken to reduce the threat of compromise of classified information processed on remote-access
computer systems.[34] Department of Defence Directive 5200.28 and its accompanying manual DoD
5200.28-M, published in 1972 and 1973 respectively, responded to one of these recommendations by
establishing uniform DoD policy, security requirements, administrative controls, and technical
measures to protect classified information processed by DoD computer systems.[8;9] Research and
development work undertaken by the Air Force, Advanced Research Projects Agency, and other
defence agencies in the early and mid 70's developed and demonstrated solution approaches for the
technical problems associated with controlling the flow of information in resource and information
sharing computer systems.[1] The DoD Computer Security Initiative was started in 1977 under the
auspices of the Under Secretary of Defence for Research and Engineering to focus DoD efforts
addressing computer security issues.[33]
Concurrent with DoD efforts to address computer security issues, work was begun under the leadership
of the National Bureau of Standards (NBS) to define problems and solutions for building, evaluating,
and auditing secure computer systems.[17] As part of this work NBS held two invitational workshops
on the subject of audit and evaluation of computer security.[20;28] The first was held in March 1977,
and the second in November of 1978. One of the products of the second workshop was a definitive
paper on the problems related to providing criteria for the evaluation of technical computer security
effectiveness.[20] As an outgrowth of recommendations from this report, and in support of the DoD
Computer Security Initiative, the MITRE Corporation began work on a set of computer security
evaluation criteria that could be used to assess the degree of trust one could place in a computer system
to protect classified data.[24;25;31] The preliminary concepts for computer security evaluation were
The DoD Computer Security Center (the Center) was formed in January 1981 to staff and expand on
the work started by the DoD Computer Security Initiative.[15] A major goal of the Center as given in
its DoD Charter is to encourage the widespread availability of trusted computer systems for use by
those who process classified or other sensitive information.[10] The criteria presented in this document
have evolved from the earlier NBS and MITRE evaluation material.
Scope
The trusted computer system evaluation criteria defined in this document apply primarily to trusted
commercially available automatic data processing (ADP) systems. They are also applicable, as
amplified below, the evaluation of existing systems and to the specification of security requirements
for ADP systems acquisition. Included are two distinct sets of requirements: 1) specific security feature
requirements; and 2) assurance requirements. The specific feature requirements encompass the
capabilities typically found in information processing systems employing general-purpose operating
systems that are distinct from the applications programs being supported. However, specific security
feature requirements may also apply to specific systems with their own functional requirements,
applications or special environments (e.g., communications processors, process control computers, and
embedded systems in general). The assurance requirements, on the other hand, apply to systems that
cover the full range of computing environments from dedicated controllers to full range multilevel
secure resource sharing systems.
Purpose
As outlined in the Preface, the criteria have been developed to serve a number of intended purposes:
• To provide a standard to manufacturers as to what security features to build into their new
and planned, commercial products in order to provide widely available systems that satisfy
trust requirements (with particular emphasis on preventing the disclosure of data) for
sensitive applications.
• To provide DoD components with a metric with which to evaluate the degree of trust that
can be placed in computer systems for the secure processing of classified and other
sensitive information.
• To provide a basis for specifying security requirements in acquisition specifications.
• With respect to the second purpose for development of the criteria, i.e., providing DoD
components with a security evaluation metric, evaluations can be delineated into two
types: (a) an evaluation can be performed on a computer product from a perspective that
excludes the application environment; or, (b) it can be done to assess whether appropriate
security measures have been taken to permit the system to be used operationally in a
specific environment. The former type of evaluation is done by the Computer Security
Center through the Commercial Product Evaluation Process. That process is described in
Appendix A.
The latter type of evaluation, i.e., those done for the purpose of assessing a system's security attributes
with respect to a specific operational mission, is known as a certification evaluation. It must be
understood that the completion of a formal product evaluation does not constitute certification or
accreditation for the system to be used in any specific application environment. On the contrary, the
evaluation report only provides a trusted computer system's evaluation rating along with supporting
data describing the product system's strengths and weaknesses from a computer security point of view.
The trusted computer system evaluation criteria will be used directly and indirectly in the certification
process. Along with applicable policy, it will be used directly as technical guidance for evaluation of
the total system and for specifying system security and certification requirements for new acquisitions.
Where a system being evaluated for certification employs a product that has undergone a Commercial
Product Evaluation, reports from that process will be used as input to the certification evaluation.
Technical data will be furnished to designers, evaluators and the Designated Approving Authorities to
support their needs for making decisions.
Any discussion of computer security necessarily starts from a statement of requirements, i.e., what it
really means to call a computer system "secure." In general, secure systems will control, through use of
specific security features, access to information such that only properly authorized individuals, or
processes operating on their behalf, will have access to read, write, create, or delete information. Six
fundamental requirements are derived from this basic statement of objective: four deal with what needs
to be provided to control access to information; and two deal with how one can obtain credible
assurances that this is accomplished in a trusted computer system.
Policy
Requirement 1 - SECURITY POLICY - There must be an explicit and well-defined security policy
enforced by the system. Given identified subjects and objects, there must be a set of rules that are used
by the system to determine whether a given subject can be permitted to gain access to a specific object.
Computer systems of interest must enforce a mandatory security policy that can effectively implement
access rules for handling sensitive (e.g., classified) information.[7] These rules include requirements
such as: No person lacking proper personnel security clearance shall obtain access to classified
information. In addition, discretionary security controls are required to ensure that only selected users
or groups of users may obtain access to data (e.g., based on a need-to-know).
Requirement 2 - MARKING - Access control labels must be associated with objects. In order to
control access to information stored in a computer, according to the rules of a mandatory security
policy, it must be possible to mark every object with a label that reliably identifies the object's
sensitivity level (e.g., classification), and/or the modes of access accorded those subjects who may
potentially access the object.
Accountability
Assurance
Requirement 6 - CONTINUOUS PROTECTION - The trusted mechanisms that enforce these basic
requirements must be continuously protected against tampering and/or unauthorized changes. No
computer system can be considered truly secure if the basic hardware and software mechanisms that
enforce the security policy are themselves subject to unauthorized modification or subversion. The
continuous protection requirement has direct implications throughout the computer system's life-cycle.
These fundamental requirements form the basis for the individual evaluation criteria applicable for
each evaluation division and class. The interested reader is referred to Section 5 of this document,
"Control Objectives for Trusted Computer Systems," for a more complete discussion and further
amplification of these fundamental requirements as they apply to general-purpose information
processing systems and to Section 7 for amplification of the relationship between Policy and these
requirements.
The remainder of this document is divided into two parts, four appendices, and a glossary. Part I
(Sections 1 through 4) presents the detailed criteria derived from the fundamental requirements
described above and relevant to the rationale and policy excerpts contained in Part II.
Part II (Sections 5 through 10) provides a discussion of basic objectives, rationale, and national policy
behind the development of the criteria, and guidelines for developers pertaining to: mandatory access
control rules implementation, the covert channel problem, and security testing. It is divided into six
sections. Section 5 discusses the use of control objectives in general and presents the three basic
control objectives of the criteria. Section 6 provides the theoretical basis behind the criteria. Section 7
gives excerpts from pertinent regulations, directives, OMB Circulars, and Executive Orders which
provide the basis for many trust requirements for processing nationally sensitive and classified
information with computer systems. Section 8 provides guidance to system developers on expectations
in dealing with the covert channel problem. Section 9 provides guidelines dealing with mandatory
security. Section 10 provides guidelines for security testing. There are four appendices, including a
description of the Trusted Computer System Commercial Products Evaluation Process (Appendix A),
summaries of the evaluation divisions (Appendix B) and classes (Appendix C), and finally a directory
of requirements ordered alphabetically. In addition, there is a glossary.
Within each class, four major sets of criteria are addressed. The first three represent features necessary
to satisfy the broad control objectives of Security Policy, Accountability, and Assurance that are
discussed in Part II, Section 5. The fourth set, Documentation, describes the type of written evidence in
the form of user guides, manuals, and the test and design documentation required for each class.
A reader using this publication for the first time may find it helpful to first read Part II, before
continuing on with Part I.
Highlighting (UPPERCASE) is used in Part I to indicate criteria not contained in a lower class or
changes and additions to already defined criteria. Where there is no highlighting, requirements have
been carried over from lower classes without addition or modification. [Dynamoo.com note - this
marking is not present in this version of the criteria]
This division contains only one class. It is reserved for those systems that have been evaluated but that
fail to meet the requirements for a higher evaluation class.
Classes in this division provide for discretionary (need-to-know) protection and, through the inclusion
of audit capabilities, for accountability of subjects and the actions they initiate.
The Trusted Computing Base (TCB) of a class (C1) system nominally satisfies the discretionary
security requirements by providing separation of users and data. It incorporates some form of credible
controls capable of enforcing access limitations on an individual basis, i.e., ostensibly suitable for
allowing users to be able to protect project or private information and to keep other users from
accidentally reading or destroying their data. The class (C1) environment is expected to be one of
cooperating users processing data at the same level(s) of sensitivity. The following are minimal
requirements for systems assigned a class (C1) rating:
The TCB shall define and control access between named users and named objects (e.g., files and
programs) in the ADP system. The enforcement mechanism (e.g., self/group/public controls, access
control lists) shall allow users to specify and control sharing of those objects by named individuals or
defined groups or both.
2.1.2 Accountability
The TCB shall require users to identify themselves to it before beginning to perform any other actions
that the TCB is expected to mediate. Furthermore, the TCB shall use a protected mechanism (e.g.,
passwords) to authenticate the user's identity. The TCB shall protect authentication data so that it
cannot be accessed by any unauthorized user.
2.1.3 Assurance
The TCB shall maintain a domain for its own execution protects it from external interference or
tampering (e.g., by modification of its code or data structures). Resources controlled by the TCB may
be a defined subset of the subjects and objects in the ADP system.
Hardware and/or software features shall be provided that can be used to periodically validate the
correct operation of the on-site hardware and firmware elements of the TCB.
2.1.4 Documentation
A single summary, chapter, or manual in user documentation shall describe the protection mechanisms
provided by the TCB, guidelines on their use, and how they interact with one another.
A manual addressed to the ADP System Administrator shall present cautions about functions and
privileges that should be controlled when running a secure facility.
The system developer shall provide to the evaluators a document that describes the test plan, test
procedures that show how the security mechanisms were tested, and results of the security
mechanisms' functional testing.
Systems in this class enforce a more finely grained discretionary access control than (C1) systems,
making users individually accountable for their actions through login procedures, auditing of security-
relevant events, and resource isolation. The following are minimal requirements for systems assigned a
class (C2) rating:
The TCB shall define and control access between named users and named objects (e.g., files and
programs) in the ADP system. The enforcement mechanism (e.g., self/group/public controls, access
control lists) shall allow users to specify and control sharing of those objects by named individuals, or
defined groups of individuals, or by both, and shall provide controls to limit propagation of access
rights. The discretionary access control mechanism shall, either by explicit user action or by default,
provide that objects are protected from unauthorized access. These access controls shall be capable of
including or excluding access to the granularity of a single user. Access permission to an object by
users not already possessing access permission shall only be assigned by authorized users.
2.2.2 Accountability
The TCB shall require users to identify themselves to it before beginning to perform any other actions
that the TCB is expected to mediate. Furthermore, the TCB shall use a protected mechanism (e.g.,
passwords) to authenticate the user's identity. The TCB shall protect authentication data so that it
cannot be accessed by any unauthorized user. The TCB shall be able to enforce individual
accountability by providing the capability to uniquely identify each individual ADP system user. The
TCB shall also provide the capability of associating this identity with all auditable actions taken by that
individual.
2.2.2.2 Audit
The TCB shall be able to create, maintain, and protect from modification or unauthorized access or
destruction an audit trail of accesses to the objects it protects. The audit data shall be protected by the
TCB so that read access to it is limited to those who are authorized for audit data. The TCB shall be
able to record the following types of events: use of identification and authentication mechanisms,
introduction or objects into a user's address space (e.g., file open, program initiation), deletion of
objects, and actions taken by computer operators and system administrators and/or system security
officers, and other security relevant events. For each recorded event, the audit record shall identify:
date and time of the event, user, type of event, and success or failure of the event. For
identification/authentication events the origin of request (e.g., terminal ID) shall be included in the
audit record. For events that introduce an object into a user's address space and for object deletion
events the audit record shall include the name of the object. The ADP system administrator shall be
able to selectively audit the actions of any one or more users based on individual identity.
2.2.3 Assurance
The TCB shall maintain a domain for its own execution that protects it from external interference or
tampering (e.g., by modification of its code or data structures). Resources controlled by the TCB may
be a defined subset of the subjects and objects in the ADP system. The TCB shall isolate the resources
to be protected so that they are subject to the access control and auditing requirements.
Hardware and/or software features shall be provided that can be used to periodically validate the
correct operation of the on-site hardware and firmware elements of the TCB.
2.2.4 Documentation
A single summary, chapter, or manual in user documentation shall describe the protection mechanisms
provided by the TCB, guidelines on their use, and how they interact with one another.
A manual addressed to the ADP system administrator shall present cautions about functions and
privileges that should be controlled when running a secure facility. The procedures for examining and
maintaining the audit files as well as the detailed audit record structure for each type of audit event
shall be given.
The system developer shall provide to the evaluators a document that describes the test plan, test
procedures that show how the security mechanisms were tested, and results of the security
mechanisms' functional testing.
The notion of a TCB that preserves the integrity of sensitivity labels and uses them to enforce a set of
mandatory access control rules is a major requirement in this division. Systems in this division must
carry the sensitivity labels with major data structures in the system. The system developer also
provides the security policy model on which the TCB is based and furnishes a specification of the
TCB. Evidence must be provided to demonstrate that the reference monitor concept has been
implemented.
Class (B1) systems require all the features required for class (C2). In addition, an informal statement of
the security policy model, data labelling, and mandatory access control over named subjects and
objects must be present. The capability must exist for accurately labelling exported information. Any
flaws identified by testing must be removed. The following are minimal requirements for systems
The TCB shall define and control access between named users and named objects (e.g., files and
programs) in the ADP system. The enforcement mechanism (e.g., self/group/public controls, access
control lists) shall allow users to specify and control sharing of those objects by named individuals, or
defined groups of individuals, or by both, and shall provide controls to limit propagation of access
rights. The discretionary access control mechanism shall, either by explicit user action or by default,
provide that objects are protected from unauthorized access. These access controls shall be capable of
including or excluding access to the granularity of a single user. Access permission to an object by
users not already possessing access permission shall only be assigned by authorized users.
All authorizations to the information contained within a storage object shall be revoked prior to initial
assignment, allocation or reallocation to a subject from the TCB's pool of unused storage objects. No
information, including encrypted representations of information, produced by a prior subject's actions
is to be available to any subject that obtains access to an object that has been released back to the
system.
3.1.1.3 Labels
Sensitivity labels associated with each subject and storage object under its control (e.g., process, file,
segment, device) shall be maintained by the TCB. These labels shall be used as the basis for mandatory
access control decisions. In order to import non-labelled data, the TCB shall request and receive from
an authorized user the security level of the data, and all such actions shall be auditable by the TCB.
3.1.1.3.1 Label Integrity
Sensitivity labels shall accurately represent security levels of the specific subjects or objects with
which they are associated. When exported by the TCB, sensitivity labels shall accurately and
unambiguously represent the internal labels and shall be associated with the information being
exported.
The TCB shall designate each communication channel and I/O device as either single-level or
multilevel. Any change in this designation shall be done manually and shall be auditable by the TCB.
The TCB shall maintain and be able to audit any change in the security level or levels associated with a
communication channel or I/O device.
When the TCB exports an object to a multilevel I/O device, the sensitivity label associated with that
object shall also be exported and shall reside on the same physical medium as the exported information
and shall be in the same form (i.e., machine-readable or human-readable form). When the TCB exports
or imports an object over a multilevel communication channel, the protocol used on that channel shall
provide for the unambiguous pairing between the sensitivity labels and the associated information that
is sent or received.
Single-level I/O devices and single-level communication channels are not required to maintain the
sensitivity labels of the information they process. However, the TCB shall include a mechanism by
which the TCb and an authorized user reliably communicate to designate the single security level of
information imported or exported via single-level communication channels or I/O devices.
The ADP system administrator shall be able to specify the printable label names associated with
exported sensitivity labels. The TCB shall mark the beginning and end of all human-readable, paged,
hardcopy output (e.g., line printer output) with human-readable sensitivity labels that properly*
represent the sensitivity of the output. The TCB shall, be default, mark the top and bottom of each page
of human-readable, paged, hardcopy output (e.g., line printer output) with human-readable sensitivity
labels that properly* represent the overall sensitivity of the output or that properly* represent the
sensitivity of the information on the page. The TCB shall, by default and in an appropriate manner,
mark other forms of human- readable output (e.g., maps, graphics) with human- readable sensitivity
labels that properly* represent the sensitivity of the touput. Any override of these marking defaults
shall be auditable by the TCB.
* The hierarchical classification component in human-readable sensitivity labels shall be equal to the
greatest hierarchical classification or any of the information in the output that the labels refer to; the
non-hierarchical category component shall include all of the non-hierarchical categories of the
information in the output the labels refer to, but no other non-hierarchical categories
The TCB shall enforce a mandatory access control policy over all subjects and storage objects under its
control (e.g., processes, files, segments, devices). These subjects and objects shall be assigned
sensitivity labels that are a combination of hierarchical classification levels and non-hierarchical
categories, and the labels shall be used as the basis for mandatory access control decisions. The TCB
shall be able to support two or more such security levels. (See the Mandatory Access Control
Guidelines.) The following requirements shall hold for all accesses between subjects and objects
controlled by the TCB: a subject can read an object only if the hierarchical classification in the
subject's security level is greater than or equal to the hierarchical classification in the object's security
level and the non- hierarchical categories in the subject's security level include all the non-hierarchical
categories in the object's security level. A subject can write an object only if the hierarchical
classification in the subject's security level is less than or equal to the hierarchical classification in the
object's security level and all the non-hierarchical categories in the subject's security level are included
in the non-hierarchical categories in the object's security level. Identification and authentication data
shall be used by the TCB to authenti- cate the user's identity and to ensure that the security level and
authorization of subjects external to the TCB that may be created to act on behalf of the individual user
are dominated by the clearance and authorization of that user.
3.1.2 Accountability
The TCB shall require users to identify themselves to it before beginning to perform any other actions
that the TCB is expected to mediate. Furthermore, the TCB shall maintain authentication data that
includes information for verifying the identity of individual users (e.g., passwords) as well as
3.1.2.2 Audit
The TCB shall be able to create, maintain, and protect from modification or unauthorized access or
destruction an audit trail of accesses to the objects it protects. The audit data shall be protected by the
TCB so that read access to it is limited to those who are authorized for audit data. The TCB shall be
able to record the following types of events: use of identification and authentication mechanisms,
introduction of objects into a user's address space (e.g., file open, program initiation), deletion of
objects, and actions taken by computer operators and system administrators and/or system security
officers and other security relevant events. The TCB shall also be able to audit any override of human-
readable output markings. For each recorded event, the audit record shall identify: date and time of the
event, user, type of event, and success or failure of the event. For identification/authentication events
the origin of request (e.g., terminal ID) shall be included in the audit record. For events that introduce
an object into a user's address space and for object deletion events the audit record shall include the
name of the object and the object's security level. The ADP system administrator shall be able to
selectively audit the actions of any one or more users based on individual identity and/or object
security level.
3.1.3 Assurance
The TCB shall maintain a domain for its own execution that protects it from external interference or
tampering (e.g., by modification of its code or data structures). Resources controlled by the TCB may
be a defined subset of the subjects and objects in the ADP system. The TCB shall maintain process
isolation through the provision of distinct address spaces under its control. The TCB shall isolate the
resources to be protected so that they are subject to the access control and auditing requirements.
Hardware and/or software features shall be provided that can be used to periodically validate the
correct operation of the on-site hardware and firmware elements of the TCB.
The security mechanisms of the ADP system shall be tested and found to work as claimed in the
system documentation. A team of individuals who thoroughly understand the specific implementation
of the TCB shall subject its design documentation, source code, and object code to thorough analysis
and testing. Their objectives shall be: to uncover all design and implementation flaws that would
permit a subject external to the TCB to read, change, or delete data normally denied under the
An informal or formal model of the security policy supported by the TCB shall be maintained over the
life cycle of the ADP system and demonstrated to be consistent with its axioms.
3.1.4 Documentation
A single summary, chapter, or manual in user documentation shall describe the protection mechanisms
provided by the TCB, guidelines on their use, and how they interact with one another.
A manual addressed to the ADP system administrator shall present cautions about functions and
privileges that should be controlled when running a secure facility. The procedures for examining and
maintaining the audit files as well as the detailed audit record structure for each type of audit event
shall be given. The manual shall describe the operator and administrator functions related to security,
to include changing the security characteristics of a user. It shall provide guidelines on the consistent
and effective use of the protection features of the system, how they interact, how to securely generate a
new TCB, and facility procedures, warnings, and privileges that need to be controlled in order to
operate the facility in a secure manner.
The system developer shall provide to the evaluators a document that describes the test plan, test
procedures that show how the security mechanisms were tested, and results of the security
mechanisms' functional testing.
In class (B2) systems, the TCB is based on a clearly defined and documented formal security policy
model that requires the discretionary and mandatory access control enforcement found in class (B1)
systems be extended to all subjects and objects in the ADP system. In addition, covert channels are
addressed. The TCB must be carefully structured into protection-critical and non- protection-critical
The TCB shall define and control access between named users and named objects (e.g., files and
programs) in the ADP system. The enforcement mechanism (e.g., self/group/public controls, access
control lists) shall allow users to specify and control sharing of those objects by named individuals, or
defined groups of individuals, or by both, and shall provide controls to limit propagation of access
rights. The discretionary access control mechanism shall, either by explicit user action or by default,
provide that objects are protected from unauthorized access. These access controls shall be capable of
including or excluding access to the granularity of a single user. Access permission to an object by
users not already possessing access permission shall only be assigned by authorized users.
All authorizations to the information contained within a storage object shall be revoked prior to initial
assignment, allocation or reallocation to a subject from the TCB's pool of unused storage objects. No
information, including encrypted representations of information, produced by a prior subject's actions
is to be available to any subject that obtains access to an object that has been released back to the
system.
3.2.1.3 Labels
Sensitivity labels associated with each ADP system resource (e.g., subject, storage object, ROM) that
is directly or indirectly accessible by subjects external to the TCB shall be maintained by the TCB.
These labels shall be used as the basis for mandatory access control decisions. In order to import non-
labelled data, the TCB shall request and receive from an authorized user the security level of the data,
and all such actions shall be auditable by the TCB.
Sensitivity labels shall accurately represent security levels of the specific subjects or objects with
which they are associated. When exported by the TCB, sensitivity labels shall accurately and
unambiguously represent the internal labels and shall be associated with the information being
exported.
The TCB shall designate each communication channel and I/O device as either single-level or
multilevel. Any change in this designation shall be done manually and shall be auditable by the TCB.
The TCB shall maintain and be able to audit any change in the security level or levels associated with a
communication channel or I/O device. 3.2.1.3.2.1 Exportation to Multilevel Devices
When the TCB exports an object to a multilevel I/O device, the sensitivity label associated with that
object shall also be exported and shall reside on the same physical medium as the exported information
Single-level I/O devices and single-level communication channels are not required to maintain the
sensitivity labels of the information they process. However, the TCB shall include a mechanism by
which the TCB and an authorized user reliably communicate to designate the single security level of
information imported or exported via single-level communication channels or I/O devices.
The ADP system administrator shall be able to specify the printable label names associated with
exported sensitivity labels. The TCB shall mark the beginning and end of all human-readable, paged,
hardcopy output (e.g., line printer output) with human-readable sensitivity labels that properly*
represent the sensitivity of the output. The TCB shall, by default, mark the top and bottom of each
page of human-readable, paged, hardcopy output (e.g., line printer output) with human-readable
sensitivity labels that properly* represent the overall sensitivity of the output or that properly*
represent the sensitivity of the information on the page. The TCB shall, by default and in an
appropriate manner, mark other forms of human-readable output (e.g., maps, graphics) with human-
readable sensitivity labels that properly* represent the sensitivity of the output. Any override of these
marking defaults shall be auditable by the TCB.
The TCB shall immediately notify a terminal user of each change in the security level associated with
that user during an interactive session. A terminal user shall be able to query the TCB as desired for a
display of the subject's complete sensitivity label.
The TCB shall support the assignment of minimum and maximum security levels to all attached
physical devices. These security levels shall be used by the TCB to enforce constraints imposed by the
physical environments in which the devices are located.
The TCB shall enforce a mandatory access control policy over all resources (i.e., subjects, storage
objects, and I/O devices that are directly or indirectly accessible by subjects external to the TCB. These
subjects and objects shall be assigned sensitivity labels that are a combination of hierarchical
classification levels and non-hierarchical categories, and the labels shall be used as the basis for
mandatory access control decisions. The TCB shall be able to support two or more such security levels.
(See the Mandatory Access Control guidelines.) The following requirements shall hold for all accesses
between All subjects external to the TCB and all objects directly or indirectly accessible by these
subjects: A subject can read an object only if the hierarchical classification in the subject's security
level is greater than or equal to the hierarchical classification in the object's security level and the non-
hierarchical categories in the subject's security level include all the non-hierarchical categories in the
object's security level. A subject can write an object only if the hierarchical classification in the
subject's security level is less than or equal to the hierarchical classification in the object's security
level and all the non-hierarchical categories in the subject's security level are included in the non-
3.2.2 Accountability
The TCB shall require users to identify themselves to it before beginning to perform any other actions
that the TCB is expected to mediate. Furthermore, the TCB shall maintain authentication data that
includes information for verifying the identity of individual users (e.g., passwords) as well as
information for determining the clearance and authorizations of individual users. This data shall be
used by the TCB to authenticate the user's identity and to ensure that the security level and
authorizations of subjects external to the TCB that may be created to act on behalf of the individual
user are dominated by the clearance and authorization of that user. The TCB shall protect
authentication data so that it cannot be accessed by any unauthorized user. The TCB shall be able to
enforce individual accountability by providing the capability to uniquely identify each individual ADP
system user. The TCB shall also provide the capability of associating this identity with all auditable
actions taken by that individual.
The TCB shall support a trusted communication path between itself and user for initial login and
authentication. Communications via this path shall be initiated exclusively by a user.
3.2.2.2 Audit
The TCB shall be able to create, maintain, and protect from modification or unauthorized access or
destruction an audit trail of accesses to the objects it protects. The audit data shall be protected by the
TCB so that read access to it is limited to those who are authorized for audit data. The TCB shall be
able to record the following types of events: use of identification and authentication mechanisms,
introduction of objects into a user's address space (e.g., file open, program initiation), deletion of
objects, and actions taken by computer operators and system administrators and/or system security
officers, and other security relevant events. The TCB shall also be able to audit any override of human-
readable output markings. For each recorded event, the audit record shall identify: date and time of the
event, user, type of event, and success or failure of the event. For identification/ authentication events
the origin of request (e.g., terminal ID) shall be included in the audit record. For events that introduce
an object into a user's address space and for object deletion events the audit record shall include the
name of the object and the object's security level. The ADP system administrator shall be able to
selectively audit the actions of any one or more users based on individual identity and/or object
security level. The TCB shall be able to audit the identified events that may be used in the exploitation
of covert storage channels.
3.2.3 Assurance
The TCB shall maintain a domain for its own execution that protects it from external interference or
tampering (e.g., by modification of its code or data structures). The TCB shall maintain process
Hardware and/or software features shall be provided that can be used to periodically validate the
correct operation of the on-site hardware and firmware elements of the TCB.
The system developer shall conduct a thorough search for covert storage channels and make a
determination (either by actual measurement or by engineering estimation) of the maximum bandwidth
of each identified channel. (See the covert channels guideline section.)
The security mechanisms of the ADP system shall be tested and found to work as claimed in the
system documentation. A team of individuals who thoroughly understand the specific implementation
of the TCB shall subject its design documentation, source code, and object code to thorough analysis
and testing. Their objectives shall be: to uncover all design and implementation flaws that would
permit a subject external to the TCB to read, change, or delete data normally denied under the
mandatory or discretionary security policy enforced by the TCB; as well as to assure that no subject
(without authorization to do so) is able to cause the TCB to enter a state such that it is unable to
respond to communications initiated by other users. The TCB shall be found relatively resistant to
penetration. All discovered flaws shall be corrected and the TCB retested to demonstrate that they have
been eliminated and that new flaws have not been introduced. Testing shall demonstrate that the TCB
implementation is consistent with the descriptive top-level specification. (See the Security Testing
Guidelines.)
A formal model of the security policy supported by the TCB shall be maintained over the life cycle of
the ADP system that is proven consistent with its axioms. A descriptive top-level specification (DTLS)
of the TCB shall be maintained that completely and accurately describes the TCB in terms of
exceptions, error messages, and effects. It shall be shown to be an accurate description of the TCB
interface.
During development and maintenance of the TCB, a configuration management system shall be in
place that maintains control of changes to the descriptive top-level specification, other design data,
3.2.4 Documentation
A single summary, chapter, or manual in user documentation shall describe the protection mechanisms
provided by the TCB, guidelines on their use, and how they interact with one another.
A manual addressed to the ADP system administrator shall present cautions about functions and
privileges that should be controlled when running a secure facility. The procedures for examining and
maintaining the audit files as well as the detailed audit record structure for each type of audit event
shall be given. The manual shall describe the operator and administrator functions related to security,
to include changing the security characteristics of a user. It shall provide guidelines on the consistent
and effective use of the protection features of the system, how they interact, how to securely generate a
new TCB, and facility procedures, warnings, and privileges that need to be controlled in order to
operate the facility in a secure manner. The TCB modules that contain the reference validation
mechanism shall be identified. The procedures for secure generation of a new TCB from source after
modification of any modules in the TCB shall be described.
3.2.4.3 Test Documentation The system developer shall provide to the evaluators a document that
describes the test plan, test procedures that show how the security mechanisms were tested, and results
of the security mechanisms' functional testing. It shall include results of testing the effectiveness of the
methods used to reduce covert channel bandwidths.
The TCB shall define and control access between named users and named objects (e.g., files and
programs) in the ADP system. The enforcement mechanism (e.g., access control lists) shall allow users
to specify and control sharing of those objects, and shall provide controls to limit propagation of access
rights. The discretionary access control mechanism shall, either by explicit user action or by default,
provide that objects are protected from unauthorized access. These access controls shall be capable of
specifying, for each named object, a list of named individuals and a list of groups of named individuals
with their respective modes of access to that object. Furthermore, for each such named object, it shall
be possible to specify a list of named individuals and a list of groups of named individuals for which
no access to the object is to be given. Access permission to an object by users not already possessing
access permission shall only be assigned by authorized users.
All authorizations to the information contained within a storage object shall be revoked prior to initial
assignment, allocation or reallocation to a subject from the TCB's pool of unused storage objects. No
information, including encrypted representations of information, produced by a prior subjects actions is
to be available to any subject that obtains access to an object that has been released back to the
system.
3.3.1.3 Labels
Sensitivity labels associated with each ADP system resource (e.g., subject, storage object, ROM) that
is directly or indirectly accessible by subjects external to the TCB shall be maintained by the TCB.
These labels shall be used as the basis for mandatory access control decisions. In order to import non-
labelled data, the TCB shall request and receive from an authorized user the security level of the data,
and all such actions shall be auditable by the TCB.
Sensitivity labels shall accurately represent security levels of the specific subjects or objects with
which they are associated. When exported by the TCB, sensitivity labels shall accurately and
unambiguously represent the internal labels and shall be associated with the information being
exported.
The TCB shall designate each communication channel and I/O device as either single-level or
multilevel. Any change in this designation shall be done manually and shall be auditable by the TCB.
The TCB shall maintain and be able to audit any change in the security level or levels associated with a
communication channel or I/O device.
When the TCB exports an object to a multilevel I/O device, the sensitivity label associated with that
object shall also be exported and shall reside on the same physical medium as the exported information
and shall be in the same form (i.e., machine-readable or human-readable form). When the TCB exports
or imports an object over a multilevel communication channel, the protocol used on that channel shall
provide for the unambiguous pairing between the sensitivity labels and the associated information that
is sent or received.
Single-level I/O devices and single-level communication channels are not required to maintain the
sensitivity labels of the information they process. However, the TCB shall include a mechanism by
which the TCB and an authorized user reliably communicate to designate the single security level of
information imported or exported via single-level communication channels or I/O devices.
The ADP system administrator shall be able to specify the printable label names associated with
exported sensitivity labels. The TCB shall mark the beginning and end of all human-readable, paged,
hardcopy output (e.g., line printer output) with human-readable sensitivity labels that properly*
represent the sensitivity of the output. The TCB shall, by default, mark the top and bottom of each
page of human-readable, paged, hardcopy output (e.g., line printer output) with human-readable
sensitivity labels that properly* represent the overall sensitivity of the output or that properly*
represent the sensitivity of the information on the page. The TCB shall, by default and in an
appropriate manner, mark other forms of human-readable output (e.g., maps, graphics) with human-
readable sensitivity labels that properly* represent the sensitivity of the output. Any override of these
marking defaults shall be auditable by the TCB.
* The hierarchical classification component in human-readable sensitivity labels shall be equal to the
greatest hierarchical classification of any of the information in the output that the labels refer to; the
non-hierarchical category component shall include all of the non-hierarchical categories of the
information in the output the labels refer to, but no other non-hierarchical categories.
The TCB shall immediately notify a terminal user of each change in the security level associated with
that user during an interactive session. A terminal user shall be able to query the TCB as desired for a
display of the subject's complete sensitivity label.
The TCB shall support the assignment of minimum and maximum security levels to all attached
physical devices. These security levels shall be used by the TCB to enforce constraints imposed by the
physical environments in which the devices are located.
The TCB shall enforce a mandatory access control policy over all resources (i.e., subjects, storage
objects, and I/O devices) that are directly or indirectly accessible by subjects external to the TCB.
These subjects and objects shall be assigned sensitivity labels that are a combination of hierarchical
classification levels and non-hierarchical categories, and the labels shall be used as the basis for
3.3.2 Accountability
The TCB shall require users to identify themselves to it before beginning to perform any other actions
that the TCB is expected to mediate. Furthermore, the TCB shall maintain authentication data that
includes information for verifying the identity of individual users (e.g., passwords) as well as
information for determining the clearance and authorizations of individual users. This data shall be
used by the TCB to authenticate the user's identity and to ensure that the security level and
authorizations of subjects external to the TCB that may be created to act on behalf of the individual
user are dominated by the clearance and authorization of that user. The TCB shall protect
authentication data so that it cannot be accessed by any unauthorized user. The TCB shall be able to
enforce individual accountability by providing the capability to uniquely identify each individual ADP
system user. The TCB shall also provide the capability of associating this identity with all auditable
actions taken by that individual.
The TCB shall support a trusted communication path between itself and users for use when a positive
TCB-to- user connection is required (e.g., login, change subject security level). Communications via
this trusted path shall be activated exclusively by a user of the TCB and shall be logically isolated and
unmistakably distinguishable from other paths.
3.3.2.2 Audit
The TCB shall be able to create, maintain, and protect from modification or unauthorized access or
destruction an audit trail of accesses to the objects it protects. The audit data shall be protected by the
TCB so that read access to it is limited to those who are authorized for audit data. The TCB shall be
able to record the following types of events: use of identification and authentication mechanisms,
introduction of objects into a user's address space (e.g., file open, program initiation), deletion of
objects, and actions taken by computer operators and system administrators and/or system security
officers and other security relevant events. The TCB shall also be able to audit any override of human-
readable output markings. For each recorded event, the audit record shall identify: date and time of the
event, user, type of event, and success or failure of the event. For identification/authentication events
the origin of request (e.g., terminal ID) shall be included in the audit record. For events that introduce
an object into a user's address space and for object deletion events the audit record shall include the
name of the object and the object's security level. The ADP system administrator shall be able to
selectively audit the actions of any one or more users based on individual identity and/or object
3.3.3 Assurance
The TCB shall maintain a domain for its own execution that protects it from external interference or
tampering (e.g., by modification of its code or data structures). The TCB shall maintain process
isolation through the provision of distinct address spaces under its control. The TCB shall be internally
structured into well-defined largely independent modules. It shall make effective use of available
hardware to separate those elements that are protection-critical from those that are not. The TCB
modules shall be designed such that the principle of least privilege is enforced. Features in hardware,
such as segmentation, shall be used to support logically distinct storage objects with separate attributes
(namely: readable, writeable). The user interface to the TCB shall be completely defined and all
elements of the TCB identified. The TCB shall be designed and structured to use a complete,
conceptually simple protection mechanism with precisely defined semantics. This mechanism shall
play a central role in enforcing the internal structuring of the TCB and the system. The TCB shall
incorporate significant use of layering, abstraction and data hiding. Significant system engineering
shall be directed toward minimizing the complexity of the TCB and excluding from the TCB modules
that are not protection-critical.
Hardware and/or software features shall be provided that can be used to periodically validate the
correct operation of the on-site hardware and firmware elements of the TCB.
The system developer shall conduct a thorough search for covert channels and make a determination
(either by actual measurement or by engineering estimation) of the maximum bandwidth of each
identified channel. (See the Covert Channels Guideline section.)
The TCB shall support separate operator and administrator functions. The functions performed in the
role of a security administrator shall be identified. The ADP system 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 ADP system. Non-security functions that can be performed in the
security administration role shall be limited strictly to those essential to performing the security role
effectively.
Procedures and/or mechanisms shall be provided to assure that, after an ADP system failure or other
discontinuity, recovery without a protection compromise is obtained.
The security mechanisms of the ADP system shall be tested and found to work as claimed in the
system documentation. A team of individuals who thoroughly understand the specific implementation
of the TCB shall subject its design documentation, source code, and object code to thorough analysis
and testing. Their objectives shall be: to uncover all design and implementation flaws that would
permit a subject external to the TCB to read, change, or delete data normally denied under the
mandatory or discretionary security policy enforced by the TCB; as well as to assure that no subject
(without authorization to do so) is able to cause the TCB to enter a state such that it is unable to
respond to communications initiated by other users. The TCB shall be found resistant to penetration.
All discovered flaws shall be corrected and the TCB retested to demonstrate that they have been
eliminated and that new flaws have not been introduced. Testing shall demonstrate that the TCB
implementation is consistent with the descriptive top-level specification. (See the Security Testing
Guidelines.) No design flaws and no more than a few correctable implementation flaws may be found
during testing and there shall be reasonable confidence that few remain.
A formal model of the security policy supported by the TCB shall be maintained over the life cycle of
the ADP system that is proven consistent with its axioms. A descriptive top-level specification (DTLS)
of the TCB shall be maintained that completely and accurately describes the TCB in terms of
exceptions, error messages, and effects. It shall be shown to be an accurate description of the TCB
interface. A convincing argument shall be given that the DTLS is consistent with the model.
During development and maintenance of the TCB, a configuration management system shall be in
place that maintains control of changes to the descriptive top-level specification, other design data,
implementation documentation, source code, the running version of the object code, and test fixtures
and documentation. The configuration management system shall assure a consistent mapping among
all documentation and code associated with the current version of the TCB. Tools shall be provided for
generation of a new version of the TCB from source code. Also available shall be tools for comparing
a newly generated version with the previous TCB version in order to ascertain that only the intended
changes have been made in the code that will actually be used as the new version of the TCB.
3.3.4 Documentation
A single summary, chapter, or manual in user documentation shall describe the protection mechanisms
provided by the TCB, guidelines on their use, and how they interact with one another.
A manual addressed to the ADP system administrator shall present cautions about functions and
privileges that should be controlled when running a secure facility. The procedures for examining and
maintaining the audit files as well as the detailed audit record structure for each type of audit event
shall be given. The manual shall describe the operator and administrator functions related to security,
to include changing the security characteristics of a user. It shall provide guidelines on the consistent
and effective use of the protection features of the system, how they interact, how to securely generate a
The system developer shall provide to the evaluators a document that describes the test plan, test
procedures that show how the security mechanisms were tested, and results of the security
mechanisms' functional testing. It shall include results of testing the effectiveness of the methods used
to reduce covert channel bandwidths.
This division is characterized by the use of formal security verification methods to assure that the
mandatory and discretionary security controls employed in the system can effectively protect classified
or other sensitive information stored or processed by the system. Extensive documentation is required
to demonstrate that the TCB meets the security requirements in all aspects of design, development and
implementation.
Systems in class (A1) are functionally equivalent to those in class (B3) in that no additional
architectural features or policy requirements are added. The distinguishing feature of systems in this
class is the analysis derived from formal design specification and verification techniques and the
• A formal model of the security policy must be clearly identified and documented, including
a mathematical proof that the model is consistent with its axioms and is sufficient to
support the security policy.
• An FTLS must be produced that includes abstract definitions of the functions the TCB
performs and of the hardware and/or firmware mechanisms that are used to support
separate execution domains.
• The FTLS of the TCB must be shown to be consistent with the model by formal techniques
where possible (i.e., where verification tools exist) and informal ones otherwise.
• The TCB implementation (i.e., in hardware, firmware, and software) must be informally
shown to be consistent with the FTLS. The elements of the FTLS must be shown, using
informal techniques, to correspond to the elements of the TCB. The FTLS must express the
unified protection mechanism required to satisfy the security policy, and it is the elements
of this protection mechanism that are mapped to the elements of the TCB.
1. Formal analysis techniques must be used to identify and analyze covert channels. Informal
techniques may be used to identify covert timing channels. The continued existence of
identified covert channels in the system must be justified.
In keeping with the extensive design and development analysis of the TCB required of systems in class
(A1), more stringent configuration management is required and procedures are established for securely
distributing the system to sites. A system security administrator is supported.
The following are minimal requirements for systems assigned a class (A1) rating:
The TCB shall define and control access between named users and named objects (e.g., files and
programs) in the ADP system. The enforcement mechanism (e.g., access control lists) shall allow users
to specify and control sharing of those objects, and shall provide controls to limit propagation of access
rights. The discretionary access control mechanism shall, either by explicit user action or by default,
provide that objects are protected from unauthorized access. These access controls shall be capable of
specifying, for each named object, a list of named individuals and a list of groups of named individuals
with their respective modes of access to that object. Furthermore, for each such named object, it shall
be possible to specify a list of named individuals and a list of groups of named individuals for which
no access to the object is to be given. Access permission to an object by users not already possessing
access permission shall only be assigned by authorized users.
All authorizations to the information contained within a storage object shall be revoked prior to initial
assignment, allocation or reallocation to a subject from the TCB's pool of unused storage objects. No
information, including encrypted representations of information, produced by a prior subject's actions
is to be available to any subject that obtains access to an object that has been released back to the
4.1.1.3 Labels
Sensitivity labels associated with each ADP system resource (e.g., subject, storage object, ROM) that
is directly or indirectly accessible by subjects external to the TCB shall be maintained by the TCB.
These labels shall be used as the basis for mandatory access control decisions. In order to import non-
labelled data, the TCB shall request and receive from an authorized user the security level of the data,
and all such actions shall be auditable by the TCB.
Sensitivity labels shall accurately represent security levels of the specific subjects or objects with
which they are associated. When exported by the TCB, sensitivity labels shall accurately and
unambiguously represent the internal labels and shall be associated with the information being
exported.
The TCB shall designate each communication channel and I/O device as either single-level or
multilevel. Any change in this designation shall be done manually and shall be auditable by the TCB.
The TCB shall maintain and be able to audit any change in the security level or levels associated with a
communication channel or I/O device.
When the TCB exports an object to a multilevel I/O device, the sensitivity label associated with that
object shall also be exported and shall reside on the same physical medium as the exported information
and shall be in the same form (i.e., machine-readable or human-readable form). When the TCB exports
or imports an object over a multilevel communication channel, the protocol used on that channel shall
provide for the unambiguous pairing between the sensitivity labels and the associated information that
is sent or received.
Single-level I/O devices and single-level communication channels are not required to maintain the
sensitivity labels of the information they process. However, the TCB shall include a mechanism by
which the TCB and an authorized user reliably communicate to designate the single security level of
information imported or exported via single-level communication channels or I/O devices.
The ADP system administrator shall be able to specify the printable label names associated with
exported sensitivity labels. The TCB shall mark the beginning and end of all human-readable, paged,
hardcopy output (e.g., line printer output) with human-readable sensitivity labels that properly*
represent the sensitivity of the output. The TCB shall, by default, mark the top and bottom of each
page of human-readable, paged, hardcopy output (e.g., line printer output) with human-readable
sensitivity labels that properly* represent the overall sensitivity of the output or that properly*
represent the sensitivity of the information on the page. The TCB shall, by default and in an
appropriate manner, mark other forms of human-readable output (e.g., maps, graphics) with human-
readable sensitivity labels that properly* represent the sensitivity of the output. Any override of these
marking defaults shall be auditable by the TCB.
The TCB shall immediately notify a terminal user of each change in the security level associated with
that user during an interactive session. A terminal user shall be able to query the TCB as desired for a
display of the subject's complete sensitivity label.
The TCB shall support the assignment of minimum and maximum security levels to all attached
physical devices. These security levels shall be used by the TCB to enforce constraints imposed by the
physical environments in which the devices are located.
The TCB shall enforce a mandatory access control policy over all resources (i.e., subjects, storage
objects, and I/O devices) that are directly or indirectly accessible by subjects external to the TCB.
These subjects and objects shall be assigned sensitivity labels that are a combination of hierarchical
classification levels and non-hierarchical categories, and the labels shall be used as the basis for
mandatory access control decisions. The TCB shall be able to support two or more such security levels.
(See the Mandatory Access Control guidelines.) The following requirements shall hold for all accesses
between all subjects external to the TCB and all objects directly or indirectly accessible by these
subjects: A subject can read an object only if the hierarchical classification in the subject's security
level is greater than or equal to the hierarchical classification in the object's security level and the non-
hierarchical categories in the subject's security level include all the non-hierarchical categories in the
object's security level. A subject can write an object only if the hierarchical classification in the
subject's security level is less than or equal to the hierarchical classification in the object's security
level and all the non-hierarchical categories in the subject's security level are included in the non-
hierarchical categories in the object's security level. Identification and authentication data shall be used
by the TCB to authenticate the user's identity and to ensure that the security level and authoriza- tion of
subjects external to the TCB that may be created to act on behalf of the individual user are dominated
by the clearance and authorization of that user.
4.1.2 Accountability
The TCB shall require users to identify themselves to it before beginning to perform any other actions
that the TCB is expected to mediate. Furthermore, the TCB shall maintain authentication data that
includes information for verifying the identity of individual users (e.g., passwords) as well as
information for determining the clearance and authorizations of individual users. This data shall be
used by the TCB to authenticate the user's identity and to ensure that the security level and
authorizations of subjects external to the TCB that may be created to act on behalf of the individual
user are dominated by the clearance and authorization of that user. The TCB shall protect
authentication data so that it cannot be accessed by any unauthorized user. The TCB shall be able to
enforce individual accountability by providing the capability to uniquely identify each individual ADP
system user. The TCB shall also provide the capability of associating this identity with all auditable
actions taken by that individual. 4.1.2.1.1 Trusted Path
4.1.2.2 Audit
The TCB shall be able to create, maintain, and protect from modification or unauthorized access or
destruction an audit trail of accesses to the objects it protects. The audit data shall be protected by the
TCB so that read access to it is limited to those who are authorized for audit data. The TCB shall be
able to record the following types of events: use of identification and authentication mechanisms,
introduction of objects into a user's address space (e.g., file open, program initiation), deletion of
objects, and actions taken by computer operators and system administrators and/or system security
officers, and other security relevant events. The TCB shall also be able to audit any override of human-
readable output markings. For each recorded event, the audit record shall identify: date and time of the
event, user, type of event, and success or failure of the event. For identification/ authentication events
the origin of request (e.g., terminal ID) shall be included in the audit record. For events that introduce
an object into a user's address space and for object deletion events the audit record shall include the
name of the object and the object's security level. The ADP system administrator shall be able to
selectively audit the actions of any one or more users based on individual identity and/or object
security level. The TCB shall be able to audit the identified events that may be used in the exploitation
of covert storage channels. The TCB shall contain a mechanism that is able to monitor the occurrence
or accumulation of security auditable events that may indicate an imminent violation of security
policy. This mechanism shall be able to immediately notify the security administrator when thresholds
are exceeded, and, if the occurrence or accumulation of these security relevant events continues, the
system shall take the least disruptive action to terminate the event.
4.1.3 Assurance
The TCB shall maintain a domain for its own execution that protects it from external interference or
tampering (e.g., by modification of its code or data structures). The TCB shall maintain process
isolation through the provision of distinct address spaces under its control. The TCB shall be internally
structured into well-defined largely independent modules. It shall make effective use of available
hardware to separate those elements that are protection-critical from those that are not. The TCB
modules shall be designed such that the principle of least privilege is enforced. Features in hardware,
such as segmentation, shall be used to support logically distinct storage objects with separate attributes
(namely: readable, writeable). The user interface to the TCB shall be completely defined and all
elements of the TCB identified. The TCB shall be designed and structured to use a complete,
conceptually simple protection mechanism with precisely defined semantics. This mechanism shall
play a central role in enforcing the internal structuring of the TCB and the system. The TCB shall
incorporate significant use of layering, abstraction and data hiding. Significant system engineering
shall be directed toward minimizing the complexity of the TCB and excluding from the TCB modules
that are not protection-critical.
Hardware and/or software features shall be provided that can be used to periodically validate the
correct operation of the on-site hardware and firmware elements of the TCB.
The system developer shall conduct a thorough search for covert channels and make a determination
(either by actual measurement or by engineering estimation) of the maximum bandwidth of each
identified channel. (See the Covert Channels Guideline section.) Formal methods shall be used in the
analysis.
The TCB shall support separate operator and administrator functions. The functions performed in the
role of a security administrator shall be identified. The ADP system 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 ADP system. Non-security functions that can be performed in the
security administration role shall be limited strictly to those essential to performing the security role
effectively.
Procedures and/or mechanisms shall be provided to assure that, after an ADP system failure or other
discontinuity, recovery without a protection compromise is obtained.
The security mechanisms of the ADP system shall be tested and found to work as claimed in the
system documentation. A team of individuals who thoroughly understand the specific implementation
of the TCB shall subject its design documentation, source code, and object code to thorough analysis
and testing. Their objectives shall be: to uncover all design and implementation flaws that would
permit a subject external to the TCB to read, change, or delete data normally denied under the
mandatory or discretionary security policy enforced by the TCB; as well as to assure that no subject
(without authorization to do so) is able to cause the TCB to enter a state such that it is unable to
respond to communications initiated by other users. The TCB shall be found resistant to penetration.
All discovered flaws shall be corrected and the TCB retested to demonstrate that they have been
eliminated and that new flaws have not been introduced. Testing shall demonstrate that the TCB
implementation is consistent with the formal top- level specification. (See the Security Testing
Guidelines.) No design flaws and no more than a few correctable implementation flaws may be found
during testing and there shall be reasonable confidence that few remain. Manual or other mapping of
the FTLS to the source code may form a basis for penetration testing.
A formal model of the security policy supported by the TCB shall be maintained over the life-cycle of
the ADP system that is proven consistent with its axioms. A descriptive top-level specification (DTLS)
of the TCB shall be maintained that completely and accurately describes the TCB in terms of
exceptions, error messages, and effects. A formal top-level specification (FTLS) of the TCB shall be
maintained that accurately describes the TCB in terms of exceptions, error messages, and effects. The
DTLS and FTLS shall include those components of the TCB that are implemented as hardware and/or
firmware if their properties are visible at the TCB interface. The FTLS shall be shown to be an
accurate description of the TCB interface. A convincing argument shall be given that the DTLS is
consistent with the model and a combination of formal and informal techniques shall be used to show
that the FTLS is consistent with the model. This verification evidence shall be consistent with that
During the entire life-cycle, i.e., during the design, development, and maintenance of the TCB, a
configuration management system shall be in place for all security- relevant hardware, firmware, and
software that maintains control of changes to the formal model, the descriptive and formal top-level
specifications, other design data, implementation documentation, source code, the running version of
the object code, and test fixtures and documentation. The configuration management system shall
assure a consistent mapping among all documentation and code associated with the current version of
the TCB. Tools shall be provided for generation of a new version of the TCB from source code. Also
available shall be tools, maintained under strict configuration control, for comparing a newly generated
version with the previous TCB version in order to ascertain that only the intended changes have been
made in the code that will actually be used as the new version of the TCB. A combination of technical,
physical, and procedural safeguards shall be used to protect from unauthorized modification or
destruction the master copy or copies of all material used to generate the TCB.
A trusted ADP system control and distribution facility shall be provided for maintaining the integrity
of the mapping between the master data describing the current version of the TCB and the on-site
master copy of the code for the current version. Procedures (e.g., site security acceptance testing) shall
exist for assuring that the TCb software, firmware, and hardware updates distributed to a customer are
exactly as specified by the master copies.
4.1.4 Documentation
A single summary, chapter, or manual in user documentation shall describe the protection mechanisms
provided by the TCB, guidelines on their use, and how they interact with one another.
A manual addressed to the ADP system administrator shall present cautions about functions and
privileges that should be controlled when running a secure facility. The procedures for examining and
maintaining the audit files as well as the detailed audit record structure for each type of audit event
shall be given. The manual shall describe the operator and administrator functions related to security,
to include changing the security characteristics of a user. It shall provide guidelines on the consistent
and effective use of the protection features of the system, how they interact, how to securely generate a
new TCB, and facility procedures, warnings, and privileges that need to be controlled in order to
operate the facility in a secure manner. The TCB modules that contain the reference validation
mechanism shall be identified. The procedures for secure generation of a new TCB from source after
modification of any modules in the TCB shall be described. It shall include the procedures to ensure
that the system is initially started in a secure manner. Procedures shall also be included to resume
secure system operation after any lapse in system operation.
The system developer shall provide to the evaluators a document that describes the test plan, test
Most of the security enhancements envisioned for systems that will provide features and assurance in
addition to that already provided by class (Al) systems are beyond current technology. The discussion
below is intended to guide future work and is derived from research and development activities already
underway in both the public and private sectors. As more and better analysis techniques are developed,
the requirements for these systems will become more explicit. In the future, use of formal verification
will be extended to the source level and covert timing channels will be more fully addressed. At this
level the design environment will become important and testing will be aided by analysis of the formal
top-level specification. Consideration will be given to the correctness of the tools used in TCB
development (e.g., compilers, assemblers, loaders) and to the correct functioning of the
hardware/firmware on which the TCB will run. Areas to be addressed by systems beyond class (A1)
include:
System Architecture
A demonstration (formal or otherwise) must be given showing that requirements of self-protection and
completeness for reference monitors have been implemented in the TCB.
Security Testing
Although beyond the current state-of-the-art, it is envisioned that some test-case generation will be
done automatically from the formal top-level specification or formal lower-level specifications.
The TCB must be verified down to the source code level, using formal verification methods where
feasible. Formal verification of the source code of the security-relevant portions of an operating system
has proven to be a difficult task. Two important considerations are the choice of a high-level language
whose semantics can be fully and formally expressed, and a careful mapping, through successive
stages, of the abstract formal design to a formalization of the implementation in low-level
specifications. Experience has shown that only when the lowest level specifications closely correspond
to the actual code can code proofs be successfully accomplished.
The TCB must be designed in a trusted facility with only trusted (cleared) personnel.
PART II:
The criteria are divided within each class into groups of requirements. These groupings were
developed to assure that three basic control objectives for computer security are satisfied and not
overlooked. These control objectives deal with:
• Security Policy
• Accountability
• Assurance
This section provides a discussion of these general control objectives and their implication in
terms of designing trusted systems.
A major goal of the DoD Computer Security Center is to encourage the Computer Industry to develop
trusted computer systems and products, making them widely available in the commercial market place.
Achievement of this goal will require recognition and articulation by both the public and private
sectors of a need and demand for such products.
As described in the introduction to this document, efforts to define the problems and develop solutions
associated with processing nationally sensitive information, as well as other sensitive data such as
The purpose of this section is to describe in detail the fundamental control objectives. These objectives
lay the foundation for the requirements outlined in the criteria. The goal is to explain the foundations
so that those outside the National Security Establishment can assess their universality and, by
extension, the universal applicability of the criteria requirements to processing all types of sensitive
applications whether they be for National Security or the private sector.
The term "control objective" refers to a statement of intent with respect to control over some aspect of
an organization's resources, or processes, or both. In terms of a computer system, control objectives
provide a framework for developing a strategy for fulfilling a set of security requirements for any
given system. Developed in response to generic vulnerabilities, such as the need to manage and handle
sensitive data in order to prevent compromise, or the need to provide accountability in order to detect
fraud, control objectives have been identified as a useful method of expressing security goals.[3]
Examples of control objectives include the three basic design requirements for implementing the
reference monitor concept discussed in Section 6. They are:
The three basic control objectives of the criteria are concerned with security policy, accountability, and
assurance. The remainder of this section provides a discussion of these basic requirements.
In the most general sense, computer security is concerned with controlling the way in which a
computer can be used, i.e., controlling how information processed by it can be accessed and
manipulated. However, at closer examination, computer security can refer to a number of areas.
Symptomatic of this, FIPS PUB 39, Glossary For Computer Systems Security, does not have a unique
definition for computer security.[16] Instead there are eleven separate definitions for security which
include: ADP systems security, administrative security, data security, etc. A common thread running
through these definitions is the word "protection." Further declarations of protection requirements can
be found in DoD Directive 5200.28 which describes an acceptable level of protection for classified
data to be one that will "assure that systems which process, store, or use classified data and produce
classified information will, with reasonable dependability, prevent: a. Deliberate or inadvertent access
to classified material by unauthorized persons, and b. Unauthorized manipulation of the computer and
its associated peripheral devices."[8]
In summary, protection requirements must be defined in terms of the perceived threats, risks, and goals
of an organization. This is often stated in terms of a security policy. It has been pointed out in the
literature that it is external laws, rules, regulations, etc. that establish what access to information is to
A statement of intent with regard to control over access to and dissemination of information, to be
known as the security policy must be precisely defined and implemented for each system that is used
to process sensitive information. The security policy must accurately reflect the laws, regulations, and
general policies from which it is derived.
Where a security policy is developed that is to be applied to control of classified or other specifically
designated sensitive information, the policy must include detailed rules on how to handle that
information throughout its life-cycle. These rules are a function of the various sensitivity designations
that the information can assume and the various forms of access supported by the system. Mandatory
security refers to the enforcement of a set of access control rules that constrains a subject's access to
information on the basis of a comparison of that individual's clearance/authorization to the information,
the classification/sensitivity designation of the information, and the form of access being mediated.
Mandatory policies either require or can be satisfied by systems that can enforce a partial ordering of
designations, namely, the designations must form what is mathematically known as a "lattice."[5] A
clear implication of the above is that the system must assure that the designations associated with
sensitive data cannot be arbitrarily changed, since this could permit individuals who lack the
appropriate authorization to access sensitive information. Also implied is the requirement that the
system control the flow of information so that data cannot be stored with lower sensitivity designations
unless its "downgrading" has been authorized. The control objective is:
Security policies defined for systems that are used to process classified or other specifically
categorized sensitive information must include provisions for the enforcement of mandatory access
control rules. That is, they must include a set of rules for controlling access based directly on a
comparison of the individual's clearance or authorization for the information and the classification or
sensitivity designation of the information being sought, and indirectly on considerations of physical
and other environmental factors of control. The mandatory access control rules must accurately reflect
the laws, regulations, and general policies from which they are derived.
Discretionary security is the principal type of access control available in computer systems today. The
basis of this kind of security is that an individual user, or program operating on his behalf, is allowed
to specify explicitly the types of access other users may have to information under his control.
Discretionary security differs from mandatory security in that it implements an access control policy
on the basis of an individual's need-to-know as opposed to mandatory controls which are driven by the
classification or sensitivity designation of the information.
Discretionary controls are not a replacement for mandatory controls. In an environment in which
information is classified (as in the DoD) discretionary security provides for a finer granularity of
control within the overall constraints of the mandatory policy. Access to classified information requires
effective implementation of both types of controls as precondition to granting that access. In general,
no person may have access to classified information unless: (a) that person has been determined to be
Security policies defined for systems that are used to process classified or other sensitive information
must include provisions for the enforcement of discretionary access control rules. That is, they must
include a consistent set of rules for controlling and limiting access based on identified individuals who
have been determined to have a need-to-know for the information.
5.3.1.3 Marking
To implement a set of mechanisms that will put into effect a mandatory security policy, it is necessary
that the system mark information with appropriate classification or sensitivity labels and maintain
these markings as the information moves through the system. Once information is unalterably and
accurately marked, comparisons required by the mandatory access control rules can be accurately and
consistently made. An additional benefit of having the system maintain the classification or sensitivity
label internally is the ability to automatically generate properly "labelled" output. The labels, if
accurately and integrally maintained by the system, remain accurate when output from the system. The
control objective is:
Systems that are designed to enforce a mandatory security policy must store and preserve the integrity
of classification or other sensitivity labels for all information. Labels exported from the system must be
accurate representations of the corresponding internal sensitivity labels being exported.
5.3.2 Accountability
The second basic control objective addresses one of the fundamental principles of security, i.e.,
individual accountability. Individual accountability is the key to securing and controlling any system
that processes information on behalf of individuals or groups of individuals. A number of requirements
must be met in order to satisfy this objective.
The first requirement is for individual user identification. Second, there is a need for authentication of
the identification. Identification is functionally dependent on authentication. Without authentication,
user identification has no credibility. Without a credible identity, neither mandatory nor discretionary
security policies can be properly invoked because there is no assurance that proper authorizations can
be made.
The third requirement is for dependable audit capabilities. That is, a trusted computer system must
provide authorized personnel with the ability to audit any action that can potentially cause access to,
generation of, or affect the release of classified or sensitive information. The audit data will be
selectively acquired based on the auditing needs of a particular installation and/or application.
However, there must be sufficient granularity in the audit data to support tracing the auditable events
to a specific individual who has taken the actions or on whose behalf the actions were taken. The
control objective is:
5.3.3 Assurance
The third basic control objective is concerned with guaranteeing or providing confidence that the
security policy has been implemented correctly and that the protection-relevant elements of the system
do, indeed, accurately mediate and enforce the intent of that policy. By extension, assurance must
include a guarantee that the trusted portion of the system works only as intended. To accomplish these
objectives, two types of assurance are needed. They are life-cycle assurance and operational
assurance.
Life-cycle assurance refers to steps taken by an organization to ensure that the system is designed,
developed, and maintained using formalized and rigorous controls and standards.[17] Computer
systems that process and store sensitive or classified information depend on the hardware and software
to protect that information. It follows that the hardware and software themselves must be protected
against unauthorized changes that could cause protection mechanisms to malfunction or be bypassed
completely. For this reason trusted computer systems must be carefully evaluated and tested during the
design and development phases and revaluated whenever changes are made that could affect the
integrity of the protection mechanisms. Only in this way can confidence be provided that the hardware
and software interpretation of the security policy is maintained accurately and without distortion.
While life-cycle assurance is concerned with procedures for managing system design, development,
and maintenance; operational assurance focuses on features and system architecture used to ensure that
the security policy is uncircumventably enforced during system operation. That is, the security policy
must be integrated into the hardware and software protection features of the system. Examples of steps
taken to provide this kind of confidence include: methods for testing the operational hardware and
software for correct operation, isolation of protection- critical code, and the use of hardware and
software to provide distinct domains. The control objective is:
Systems that are used to process or handle 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.
In October of 1972, the Computer Security Technology Planning Study, conducted by James P.
Anderson & Co., produced a report for the Electronic Systems Division (ESD) of the United States Air
Force.[1] In that report, the concept of "a reference monitor which enforces the authorized access
relationships between subjects and objects of a system" was introduced. The reference monitor concept
The Anderson report went on to define the reference validation mechanism as "an implementation of
the reference monitor concept . . . that validates each reference to data or programs by any user
(program) against a list of authorized types of reference for that user." It then listed the three design
requirements that must be met by a reference validation mechanism:
c. The reference validation mechanism must be small enough to be subject to analysis and tests, the
completeness of which can be assured."[1]
Extensive peer review and continuing research and development activities have sustained the validity
of the Anderson Committee's findings. Early examples of the reference validation mechanism were
known as security kernels. The Anderson Report described the security kernel as "that combination of
hardware and software which implements the reference monitor concept."[1] In this vein, it will be
noted that the security kernel must support the three reference monitor requirements listed above.
Following the publication of the Anderson report, considerable research was initiated into formal
models of security policy requirements and of the mechanisms that would implement and enforce those
policy models as a security kernel. Prominent among these efforts was the ESD-sponsored
development of the Bell and LaPadula model, an abstract formal treatment of DoD security policy.[2]
Using mathematics and set theory, the model precisely defines the notion of secure state, fundamental
modes of access, and the rules for granting subjects specific modes of access to objects. Finally, a
theorem is proven to demonstrate that the rules are security-preserving operations, so that the
application of any sequence of the rules to a system that is in a secure state will result in the system
entering a new state that is also secure. This theorem is known as the Basic Security Theorem.
A subject can act on behalf of a user or another subject. The subject is created as a surrogate for the
cleared user and is assigned a formal security level based on their classification. The state transitions
and invariants of the formal policy model define the invariant relationships that must hold between the
clearance of the user, the formal security level of any process that can act on the user's behalf, and the
formal security level of the devices and other objects to which any process can obtain specific modes
of access. The Bell and LaPadula model, for example, defines a relationship between formal security
levels of subjects and objects, now referenced as the "dominance relation." From this definition,
accesses permitted between subjects and objects are explicitly defined for the fundamental modes of
access, including read-only access, read/write access, and write-only access. The model defines the
Simple Security Condition to control granting a subject read access to a specific object, and the *-
Property (read "Star Property") to control granting a subject write access to a specific object. Both the
Simple Security Condition and the *-Property include mandatory security provisions based on the
dominance relation between formal security levels of subjects and objects the clearance of the subject
and the classification of the object. The Discretionary Security Property is also defined, and requires
that a specific subject be authorized for the particular mode of access required for the state transition.
In its treatment of subjects (processes acting on behalf of a user), the model distinguishes between
trusted subjects (i.e., not constrained within the model by the *-Property) and untrusted subjects (those
that are constrained by the *-Property).
In order to encourage the widespread commercial availability of trusted computer systems, these
evaluation criteria have been designed to address those systems in which a security kernel is
specifically implemented as well as those in which a security kernel has not been implemented. The
latter case includes those systems in which objective (c) is not fully supported because of the size or
complexity of the reference validation mechanism. For convenience, these evaluation criteria use the
term Trusted Computing Base to refer to the reference validation mechanism, be it a security kernel,
front-end security filter, or the entire trusted computer system.
The heart of a trusted computer system is the Trusted Computing Base (TCB) which contains all of the
elements of the system responsible for supporting the security policy and supporting the isolation of
objects (code and data) on which the protection is based. The bounds of the TCB equate to the
"security perimeter" referenced in some computer security literature. In the interest of understandable
and maintainable protection, a TCB should be as simple as possible consistent with the functions it has
to perform. Thus, the TCB includes hardware, firmware, and software critical to protection and must
be designed and implemented such that system elements excluded from it need not be trusted to
maintain protection. Identification of the interface and elements of the TCB along with their correct
functionality therefore forms the basis for evaluation.
For general-purpose systems, the TCB will include key elements of the operating system and may
include all of the operating system. For embedded systems, the security policy may deal with objects in
a way that is meaningful at the application level rather than at the operating system level. Thus, the
protection policy may be enforced in the application software rather than in the underlying operating
system. The TCB will necessarily include all those portions of the operating system and application
software essential to the support of the policy. Note that, as the amount of code in the TCB increases, it
becomes harder to be confident that the TCB enforces the reference monitor requirements under all
circumstances.
6.4 ASSURANCE
The third reference monitor design objective is currently interpreted as meaning that the TCB "must be
of sufficiently simple organization and complexity to be subjected to analysis and tests, the
completeness of which can be assured."
Clearly, as the perceived degree of risk increases (e.g., the range of sensitivity of the system's protected
data, along with the range of clearances held by the system's user population) for a particular system's
operational application and environment, so also must the assurances be increased to substantiate the
degree of trust that will be placed in the system. The hierarchy of requirements that are presented for
the evaluation classes in the trusted computer system evaluation criteria reflect the need for these
assurances.
As discussed in Section 5.3, the evaluation criteria uniformly require a statement of the security policy
that is enforced by each trusted computer system. In addition, it is required that a convincing argument
be presented that explains why the TCB satisfies the first two design requirements for a reference
monitor. It is not expected that this argument will be entirely formal. This argument is required for
each candidate system in order to satisfy the assurance control objective.
On the other hand, those systems that are designed and engineered to support the TCB concepts are
more amenable to analysis and structured testing. Formal methods can be used to analyze the
correctness of their reference validation mechanisms in enforcing the system's security policy. Other
methods, including less-formal arguments, can be used in order to substantiate claims for the
completeness of their access mediation and their degree of tamper-resistance. More confidence can be
placed in the results of this analysis and in the thoroughness of the structured testing than can be placed
in the results for less methodically structured systems. For these reasons, it appears reasonable to
conclude that these systems could be used in higher-risk environments. Successful implementations of
such systems would be placed in the higher evaluation classes.
It is highly desirable that there be only a small number of overall evaluation classes. Three major
divisions have been identified in the evaluation criteria with a fourth division reserved for those
systems that have been evaluated and found to offer unacceptable security protection. Within each
major evaluation division, it was found that "intermediate" classes of trusted system design and
development could meaningfully be defined. These intermediate classes have been designated in the
criteria because they identify systems that:
• are viewed to offer significantly better protection and assurance than would systems that
satisfy the basic requirements for their evaluation class; and
• there is reason to believe that systems in the intermediate evaluation classes could
eventually be evolved such that they would satisfy the requirements for the next higher
evaluation class.
Except within division A it is not anticipated that additional "intermediate" evaluation classes
satisfying the two characteristics described above will be identified.
Distinctions in terms of system architecture, security policy enforcement, and evidence of credibility
between evaluation classes have been defined such that the "jump" between evaluation classes would
require a considerable investment of effort on the part of implementors. Correspondingly, there are
expected to be significant differentials of risk to which systems from the higher evaluation classes will
be exposed.
Section 1 presents fundamental computer security requirements and Section 5 presents the control
A significant number of computer security policies and associated requirements have been
promulgated by Federal government elements. The interested reader is referred to reference [32] which
analyzes the need for trusted systems in the civilian agencies of the Federal government, as well as in
state and local governments and in the private sector. This reference also details a number of relevant
Federal statutes, policies and requirements not treated further below.
Security guidance for Federal automated information systems is provided by the Office of
Management and Budget. Two specifically applicable Circulars have been issued. OMB Circular No.
A-71, Transmittal Memorandum No. 1, "Security of Federal Automated Information Systems,"[26]
directs each executive agency to establish and maintain a computer security program. It makes the
head of each executive branch, department and agency responsible "for assuring an adequate level of
security for all agency data whether processed in-house or commercially. This includes responsibility
for the establishment of physical, administrative and technical safeguards required to adequately
protect personal, proprietary or other sensitive data not subject to national security regulations, as well
as national security data."[26, para. 4 p. 2]
OMB Circular No. A-123, "Internal Control Systems,"[27] issued to help eliminate fraud, waste, and
abuse in government programs requires: (a) agency heads to issue internal control directives and assign
responsibility, (b) managers to review programs for vulnerability, and (c) managers to perform
periodic reviews to evaluate strengths and update controls. Soon after promulgation of OMB Circular
A-123, the relationship of its internal control requirements to building secure computer systems was
recognized.[4] While not stipulating computer controls specifically, the definition of Internal Controls
in A-123 makes it clear that computer systems are to be included:
"Internal Controls - The plan of organization and all of the methods and measures adopted within an
agency to safeguard its resources, assure the accuracy and reliability of its information, assure
adherence to applicable laws, regulations and policies, and promote operational economy and
efficiency."[27, sec. 4.C]
The matter of classified national security information processed by ADP systems was one of the first
areas given serious and extensive concern in computer security. The computer security policy
documents promulgated as a result contain generally more specific and structured requirements than
most, keyed in turn to an authoritative basis that itself provides a rather clearly articulated and
structured information security policy. This basis, Executive Order 12356, "National Security
Information," sets forth requirements for the classification, declassification and safeguarding of
"national security information" per se.[14]
Within the Department of Defence, these broad requirements are implemented and further specified
* i.e., NASA, Commerce Department, GSA, State Department, Small Business Administration, National
Science Foundation, Treasury Department, Transportation Department, Interior Department,
Agriculture Department, U.S. Information Agency, Labor Department, Environmental Protection
Agency, Justice Department, U.S. Arms Control and Disarmament Agency, Federal Emergency
Management Agency, Federal Reserve System, and U.S. General Accounting Office.
For ADP systems, these information security requirements are further amplified and specified in: 1)
DoD Directive 5200.28 [8] and DoD Manual 5200.28-M [9], for DoD components; and 2) Section XIII
of DoD 5220.22-M [11] for contractors. DoD Directive 5200.28, "Security Requirements for
Automatic Data Processing (ADP) Systems," stipulates: "Classified material contained in an ADP
system shall be safeguarded by the continuous employment of protective features in the system's
hardware and software design and configuration . . . ."[8, sec. IV] Furthermore, it is required that ADP
systems that "process, store, or use classified data and produce classified information will, with
reasonable dependability, prevent:
b. Unauthorized manipulation of the computer and its associated peripheral devices."[8, sec. I B.3]
Requirements equivalent to these appear within DoD 5200.28-M [9] and in DoD 5220.22-M [11].
DoD Directove 5200.28 provides the security requirements for ADP systems. For some types of
information, such as Sensitive Compartmented Information (SCI), DoD Directive 5200.28 states that
other minimum security requirements also apply. These minima are found in DCID l/l6 (new reference
number 5) which is implemented in DIAM 50-4 (new reference number 6) for DoD and DoD
contractor ADP systems.
From requirements imposed by these regulations, directives and circulars, the three components of the
Security Policy Control Objective, i.e., Mandatory and Discretionary Security and Marking, as well as
the Accountability and Assurance Control Objectives, can be functionally defined for DoD
applications. The following discussion provides further specificity in Policy for these Control
Objectives.
The control objective for marking is: "Systems that are designed to enforce a mandatory security
policy must store and preserve the integrity of classification or other sensitivity labels for all
information. Labels exported from the system must be accurate representations of the corresponding
internal sensitivity labels being exported."
DoD 5220.22-M, "Industrial Security Manual for Safeguarding Classified Information," explains in
paragraph 11 the reasons for marking information:
Executive Order 12356 (Sections 1.5.a and 1.5.a.1) requires that classification markings "shall be
shown on the face of all classified documents, or clearly associated with other forms of classified
information in a manner appropriate to the medium involved."[14]
DoD Regulation 5200.1-R (Section 1-500) requires that: ". . . information or material that requires
protection against unauthorized disclosure in the interest of national security shall be classified in one
of three designations, namely: 'Top Secret,' 'Secret' or 'Confidential.'"[7] (By extension, for use in
computer processing, the unofficial designation "Unclassified" is used to indicate information that does
not fall under one of the other three designations of classified information.)
DoD Regulation 5200.1-R (Section 4-304b) requires that: "ADP systems and word processing systems
employing such media shall provide for internal classification marking to assure that classified
information contained therein that is reproduced or generated, will bear applicable classification and
associated markings." (This regulation provides for the exemption of certain existing systems where
"internal classification and applicable associated markings cannot be implemented without extensive
system modifications."[7] However, it is clear that future DoD ADP systems must be able to provide
applicable and accurate labels for classified and other sensitive information.)
DoD Manual 5200.28-M (Section IV, 4-305d) requires the following: "Security Labels - All classified
material accessible by or within the ADP system shall be identified as to its security classification and
access or dissemination limitations, and all output of the ADP system shall be appropriately
marked."[9]
The control objective for mandatory security is: "Security policies defined for systems that are used to
process classified or other specifically categorized sensitive information must include provisions for
the enforcement of mandatory access control rules. That is, they must include a set of rules for
controlling access based directly on a comparison of the individual's clearance or authorization for the
information and the classification or sensitivity designation of the information being sought, and
indirectly on considerations of physical and other environmental factors of control. The mandatory
access control rules must accurately reflect the laws, regulations, and general policies from which they
are derived."
There are a number of policy statements that are related to mandatory security.
Executive Order 12356 (Section 4.1.a) states that "a person is eligible for access to classified
information provided that a determination of trustworthiness has been made by agency heads or
designated officials and provided that such access is essential to the accomplishment of lawful and
authorized Government purposes."[14]
DoD Regulation 5200.1-R (Chapter I, Section 3) defines a Special Access Program as "any program
imposing 'need-to-know' or access controls beyond those normally provided for access to Confidential,
Secret, or Top Secret information. Such a program includes, but is not limited to, special clearance,
adjudication, or investigative requirements, special designation of officials authorized to determine
'need-to-know', or special lists of persons determined to have a 'need-to- know.'"[7, para. 1-328] This
DoD Manual 5200.28-M (Section II 2-100) states that, "Personnel who develop, test (debug), maintain,
or use programs which are classified or which will be used to access or develop classified material
shall have a personnel security clearance and an access authorization (need-to-know), as appropriate
for the highest classified and most restrictive category of classified material which they will access
under system constraints."[9]
DoD Manual 5220.22-M (Paragraph 3.a) defines access as "the ability and opportunity to obtain
knowledge of classified information. An individual, in fact, may have access to classified information
by being in a place where such information is kept, if the security measures which are in force do not
prevent him from gaining knowledge of the classified information."[11]
The above mentioned Executive Order, Manual, Directives and Regulations clearly imply that a trusted
computer system must assure that the classification labels associated with sensitive data cannot be
arbitrarily changed, since this could permit individuals who lack the appropriate clearance to access
classified information. Also implied is the requirement that a trusted computer system must control the
flow of information so that data from a higher classification cannot be placed in a storage object of
lower classification unless its "downgrading" has been authorized.
The term discretionary security refers to a computer system's ability to control information on an
individual basis. It stems from the fact that even though an individual has all the formal clearances for
access to specific classified information, each individual's access to information must be based on a
demonstrated need-to-know. Because of this, it must be made clear that this requirement is not
discretionary in a "take it or leave it" sense. The directives and regulations are explicit in stating that
the need-to-know test must be satisfied before access can be granted to the classified information. The
control objective for discretionary security is: "Security policies defined for systems that are used to
process classified or other sensitive information must include provisions for the enforcement of
discretionary access control rules. That is, they must include a consistent set of rules for controlling
and limiting access based on identified individuals who have been determined to have a need-to-know
for the information."
DoD Regulation 5200.1-R (Paragraph 7-100) In addition to excerpts already provided that touch on
need-to- know, this section of the regulation stresses the need- to-know principle when it states "no
person may have access to classified information unless . . . access is necessary for the performance of
official duties."[7]
Also, DoD Manual 5220.22-M (Section III 20.a) states that "an individual shall be permitted to have
access to classified information only . . . when the contractor determines that access is necessary in the
performance of tasks or services essential to the fulfilment of a contract or program, i.e., the individual
has a need-to-know."[11]
DoD Directive 5200.28 (VI.A.1) states: "Each user's identity shall be positively established, and his
access to the system, and his activity in the system (including material accessed and actions taken)
controlled and open to scrutiny."[8]
DoD Manual 5200.28-M (Section V 5-100) states: "An audit log or file (manual, machine, or a
combination of both) shall be maintained as a history of the use of the ADP System to permit a regular
security review of system activity. (e.g., The log should record security related transactions, including
each access to a classified file and the nature of the access, e.g., logins, production of accountable
classified outputs, and creation of new classified files. Each classified file successfully accessed
[regardless of the number of individual references] during each 'job' or 'interactive session' should also
be recorded in the audit log. Much of the material in this log may also be required to assure that the
system preserves information entrusted to it.)"[9]
DoD Manual 5200.28-M (Section IV 4-305f) states: "Where needed to assure control of access and
individual accountability, each user or specific group of users shall be identified to the ADP System by
appropriate administrative or hardware/software measures. Such identification measures must be in
sufficient detail to enable the ADP System to provide the user only that material which he is
authorized."[9]
"Component's Designated Approving Authorities, or their designees for this purpose . . . will assure:
.................
(4) Maintenance of documentation on operating systems (O/S) and all modifications thereto, and its
retention for a sufficient period of time to enable tracing of security- related defects to their point of
origin or inclusion in the system.
.................
(6) Establishment of procedures to discover, recover, handle, and dispose of classified material
improperly disclosed through system malfunction or personnel action.
(7) Proper disposition and correction of security deficiencies in all approved ADP Systems, and the
effective use and disposition of system housekeeping or audit records, records of security violations or
security-related system malfunctions, and records of tests of the security features of an ADP
System."[9]
a. The general security requirement for any ADP system audit trail is that it provide a documented
history of the use of the system. An approved audit trail will permit review of classified system activity
b. The audit trail for an ADP system approved to process classified information must be based on the
above three areas and may be stylized to the particular system. All systems approved for classified
processing should contain most if not all of the audit trail records listed below. The contractor's SPP
documentation must identify and describe those applicable:
1. Personnel access;
2. Unauthorized and surreptitious entry into the central computer facility or remote terminal areas;
3. Start/stop time of classified processing indicating pertinent systems security initiation and
termination events (e.g., upgrading/downgrading actions pursuant to paragraph 107);
7. Unauthorized attempts to access files or programs, as well as all open, close, create, and file destroy
actions;
8. Program aborts and anomalies including identification information (i.e., user/program name, time
and location of incident, etc.);
10. Generations and modifications affecting the security features of the system software.
c. The ADP system security supervisor or designee shall review the audit trail logs at least weekly to
assure that all pertinent activity is properly recorded and that appropriate action has been taken to
correct any anomaly. The majority of ADP systems in use today can develop audit trail systems in
accord with the above; however, special systems such as weapons, communications, communications
security, and tactical data exchange and display systems, may not be able to comply with all aspects of
the above and may require individualized consideration by the cognizant security office.
d. Audit trail records shall be retained for a period of one inspection cycle."[11]
The control objective for assurance is: "Systems that are used to process or handle 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."
DoD Directive 5200.28 (IV.B.1) stipulates: "Generally, security of an ADP system is most effective
and economical if the system is designed originally to provide it. Each Department of Defence
Component undertaking design of an ADP system which is expected to process, store, use, or produce
classified material shall: From the beginning of the design process, consider the security policies,
concepts, and measures prescribed in this Directive."[8]
DoD Directive 5200.28 (IV.C.5.a) states: "Provision may be made to permit adjustment of ADP
system area controls to the level of protection required for the classification category and type(s) of
material actually being handled by the system, provided change procedures are developed and
implemented which will prevent both the unauthorized access to classified material handled by the
system and the unauthorized manipulation of the system and its components. Particular attention shall
be given to the continuous protection of automated system security measures, techniques and
procedures when the personnel security clearance level of users having access to the system
changes."[8]
DoD Directive 5200.28 (VI.A.2) states: "Environmental Control. The ADP System shall be externally
protected to minimize the likelihood of unauthorized access to system entry points, access to classified
information in the system, or damage to the system."[8]
"Component's Designated Approving Authorities, or their designees for this purpose . . . will assure:
.................
(5) Supervision, monitoring, and testing, as appropriate, of changes in an approved ADP System which
could affect the security features of the system, so that a secure system is maintained.
.................
(7) Proper disposition and correction of security deficiencies in all approved ADP Systems, and the
effective use and disposition of system housekeeping or audit records, records of security violations or
security-related system malfunctions, and records of tests of the security features of an ADP System.
(8) Conduct of competent system ST&E, timely review of system ST&E reports, and correction of
deficiencies needed to support conditional or final approval or disapproval of an ADP System for the
processing of classified information.
(9) Establishment, where appropriate, of a central ST&E coordination point for the maintenance of
records of selected techniques, procedures, standards, and tests used in the testing and evaluation of
security features of ADP Systems which may be suitable for validation and use by other Department of
Defence Components."[9]
DoD Manual 5220.22-M (Section XIII 103a) requires: "the initial approval, in writing, of the cognizant
security office prior to processing any classified information in an ADP system. This section requires
reapproval by the cognizant security office for major system modifications made subsequent to initial
approval. Reapprovals will be required because of (i) major changes in personnel access requirements,
(ii) relocation or structural modification of the central computer facility, (iii) additions, deletions or
changes to main frame, storage or input/output devices, (iv) system software changes impacting
security protection features, (v) any change in clearance, declassification, audit trail or
A covert channel is any communication channel that can be exploited by a process to transfer
information in a manner that violates the system's security policy. There are two types of covert
channels: storage channels and timing channels. Covert storage channels include all vehicles that
would allow the direct or indirect writing of a storage location by one process and the direct or indirect
reading of it by another. Covert timing channels include all vehicles that would allow one process to
signal information to another process by modulating its own use of system resources in such a way that
the change in response time observed by the second process would provide information.
From a security perspective, covert channels with low bandwidths represent a lower threat than those
with high bandwidths. However, for many types of covert channels, techniques used to reduce the
bandwidth below a certain rate (which depends on the specific channel mechanism and the system
architecture) also have the effect of degrading the performance provided to legitimate system users.
Hence, a trade-off between system performance and covert channel bandwidth must be made. Because
of the threat of compromise that would be present in any multilevel computer system containing
classified or sensitive information, such systems should not contain covert channels with high
bandwidths. This guideline is intended to provide system developers with an idea of just how high a
"high" covert channel bandwidth is.
A covert channel bandwidth that exceeds a rate of one hundred (100) bits per second is considered
"high" because 100 bits per second is the approximate rate at which many computer terminals are run.
It does not seem appropriate to call a computer system "secure" if information can be compromised at
a rate equal to the normal output rate of some commonly used device.
In any multilevel computer system there are a number of relatively low-bandwidth covert channels
whose existence is deeply ingrained in the system design. Faced with the large potential cost of
reducing the bandwidths of such covert channels, it is felt that those with maximum bandwidths of less
than one (1) bit per second are acceptable in most application environments. Though maintaining
acceptable performance in some systems may make it impractical to eliminate all covert channels with
bandwidths of 1 or more bits per second, it is possible to audit their use without adversely affecting
system performance. This audit capability provides the system administration with a means of
detecting -- and procedurally correcting -- significant compromise. Therefore, a Trusted Computing
Base should provide, wherever possible, the capability to audit the use of covert channel mechanisms
with bandwidths that may exceed a rate of one (1) bit in ten (10) seconds.
The covert channel problem has been addressed by a number of authors. The interested reader is
referred to references [5], [6], [19], [21], [22], [23], and [29].
The Mandatory Access Control requirement includes a capability to support an unspecified number of
hierarchical classifications and an unspecified number of non-hierarchical categories at each
hierarchical level. To encourage consistency and portability in the design and development of the
National Security Establishment trusted computer systems, it is desirable for all such systems to be
able to support a minimum number of levels and categories. The following suggestions are provided
for this purpose:
* The number of hierarchical classifications should be greater than or equal to sixteen (16).
* The number of non-hierarchical categories should be greater than or equal to sixty-four (64).
These guidelines are provided to give an indication of the extent and sophistication of testing
undertaken by the DoD Computer Security Center during the Formal Product Evaluation process.
Organizations wishing to use "Department of Defence Trusted Computer System Evaluation Criteria"
for performing their own evaluations may find this section useful for planning purposes.
As in Part I, highlighting is used to indicate changes in the guidelines from the next lower division.
10.1.1 Personnel
The security testing team shall consist of at least two individuals with bachelor degrees in Computer
Science or the equivalent. Team members shall be able to follow test plans prepared by the system
developer and suggest additions, shall be familiar with the "flaw hypothesis" or equivalent security
testing methodology, and shall have assembly level programming experience. Before testing begins,
the team members shall have functional knowledge of, and shall have completed the system
developer's internals course for, the system being evaluated.
10.1.2 Testing
The team shall have "hands-on" involvement in an independent run of the tests used by the system
developer. The team shall independently design and implement at least five system-specific tests in an
attempt to circumvent the security mechanisms of the system. The elapsed time devoted to testing shall
be at least one month and need not exceed three months. There shall be no fewer than twenty hands-on
hours spent carrying out system developer-defined tests and test team-defined tests.
10.2.1 Personnel
10.2.2 Testing
The team shall have "hands-on" involvement in an independent run of the test package used by the
system developer to test security-relevant hardware and software. The team shall independently design
and implement at least fifteen system- specific tests in an attempt to circumvent the security
mechanisms of the system. The elapsed time devoted to testing shall be at least two months and need
not exceed four months. There shall be no fewer than thirty hands-on hours per team member spent
carrying out system developer-defined tests and test team-defined tests.
10.3.1 Personnel
The security testing team shall consist of at least one individual with a bachelor's degree in Computer
Science or the equivalent and at least two individuals with masters' degrees in Computer Science or
equivalent. Team members shall be able to follow test plans prepared by the system developer and
suggest additions, shall be conversant with the "flaw hypothesis" or equivalent security testing
methodology, shall be fluent in the TCB implementation language(s), and shall have assembly level
programming experience. Before testing begins, the team members shall have functional knowledge
of, and shall have completed the system developer's internals course for, the system being evaluated.
At least one team member shall be familiar enough with the system hardware to understand the
maintenance diagnostic programs and supporting hardware documentation. At least two team members
shall have previously completed a security test on another system. At least one team member shall
have demonstrated system level programming competence on the system under test to a level of
complexity equivalent to adding a device driver to the system.
10.3.2 Testing
The team shall have "hands-on" involvement in an independent run of the test package used by the
system developer to test security-relevant hardware and software. The team shall independently design
and implement at least twenty-five system- specific tests in an attempt to circumvent the security
mechanisms of the system. The elapsed time devoted to testing shall be at least three months and need
not exceed six months. There shall be no fewer than fifty hands-on hours per team member spent
carrying out system developer-defined tests and test team-defined tests.
APPENDIX A [toc]
"Department of Defence Trusted Computer System Evaluation Criteria" forms the basis upon which
the Computer Security Center will carry out the commercial computer security evaluation process.
This process is focused on commercially produced and supported general-purpose operating system
The product evaluation process carried out by the Computer Security Center has three distinct
elements:
• Preliminary Product Evaluation - An informal dialogue between a vendor and the Center in
which technical information is exchanged to create a common understanding of the
vendor's product, the criteria, and the rating that may be expected to result from a formal
product evaluation.
• Evaluated Products List - A list of products that have been subjected to formal product
evaluation and their assigned ratings.
Since it is generally very difficult to add effective security measures late in a product's life cycle, the
Center is interested in working with system vendors in the early stages of product design. A
preliminary product evaluation allows the Center to consult with computer vendors on computer
security issues found in products that have not yet been formally announced.
A preliminary evaluation is typically initiated by computer system vendors who are planning new
computer products that feature security or major security-related upgrades to existing products. After
an initial meeting between the vendor and the Center, appropriate non-disclosure agreements are
executed that require the Center to maintain the confidentiality of any proprietary information
disclosed to it. Technical exchange meetings follow in which the vendor provides details about the
proposed product (particularly its internal designs and goals) and the Center provides expert feedback
to the vendor on potential computer security strengths and weaknesses of the vendor's design choices,
as well as relevant interpretation of the criteria. The preliminary evaluation is typically terminated
when the product is completed and ready for field release by the vendor. Upon termination, the Center
prepares a wrap-up report for the vendor and for internal distribution within the Center. Those reports
containing proprietary information are not available to the public.
During preliminary evaluation, the vendor is under no obligation to actually complete or market the
potential product. The Center is, likewise, not committed to conduct a formal product evaluation. A
preliminary evaluation may be terminated by either the Center or the vendor when one notifies the
other, in writing, that it is no longer advantageous to continue the evaluation.
The formal product evaluation provides a key input to certification of a computer system for use in
National Security Establishment applications and is the sole basis for a product being placed on the
A formal product evaluation begins with a request by a vendor for the Center to evaluate a product for
which the product itself and accompanying documentation needed to meet the requirements defined by
this publication are complete. Non-disclosure agreements are executed and a formal product evaluation
team is formed by the Center. An initial meeting is then held with the vendor to work out the schedule
for the formal evaluation. Since testing of the implemented product forms an important part of the
evaluation process, access by the evaluation team to a working version of the system is negotiated with
the vendor. Additional support required from the vendor includes complete design documentation,
source code, and access to vendor personnel who can answer detailed questions about specific portions
of the product. The evaluation team tests the product against each requirement, making any necessary
interpretations of the criteria with respect to the product being evaluated.
The evaluation team writes a final report on their findings about the system. The report is publicly
available (containing no proprietary or sensitive information) and contains the overall class rating
assigned to the system and the details of the evaluation team's findings when comparing the product
against the evaluation criteria. Detailed information concerning vulnerabilities found by the evaluation
team is furnished to the system developers and designers as each is found so that the vendor has a
chance to eliminate as many of them as possible prior to the completion of the Formal Product
Evaluation. Vulnerability analyses and other proprietary or sensitive information are controlled within
the Center through the Vulnerability Reporting Program and are distributed only within the U.S.
Government on a strict need-to-know and non-disclosure basis, and to the vendor.
APPENDIX B [toc]
The divisions of systems recognized under the trusted computer system evaluation criteria are as
follows. Each division represents a major improvement in the overall confidence one can place in the
system to protect classified and other sensitive information.
This division contains only one class. It is reserved for those systems that have been evaluated but that
fail to meet the requirements for a higher evaluation class.
Classes in this division provide for discretionary (need-to-know) protection and, through the inclusion
of audit capabilities, for accountability of subjects and the actions they initiate.
The notion of a TCB that preserves the integrity of sensitivity labels and uses them to enforce a set of
mandatory access control rules is a major requirement in this division. Systems in this division must
carry the sensitivity labels with major data structures in the system. The system developer also
provides the security policy model on which the TCB is based and furnishes a specification of the
This division is characterized by the use of formal security verification methods to assure that the
mandatory and discretionary security controls employed in the system can effectively protect classified
or other sensitive information stored or processed by the system. Extensive documentation is required
to demonstrate that the TCB meets the security requirements in all aspects of design, development and
implementation.
APPENDIX C [toc]
The classes of systems recognized under the trusted computer system evaluation criteria are as follows.
They are presented in the order of increasing desirability from a computer security point of view.
This class is reserved for those systems that have been evaluated but that fail to meet the requirements
for a higher evaluation class.
The Trusted Computing Base (TCB) of a class (C1) system nominally satisfies the discretionary
security requirements by providing separation of users and data. It incorporates some form of credible
controls capable of enforcing access limitations on an individual basis, i.e., ostensibly suitable for
allowing users to be able to protect project or private information and to keep other users from
accidentally reading or destroying their data. The class (C1) environment is expected to be one of
cooperating users processing data at the same level(s) of sensitivity.
Systems in this class enforce a more finely grained discretionary access control than (C1) systems,
making users individually accountable for their actions through login procedures, auditing of security-
relevant events, and resource isolation.
Class (B1) systems require all the features required for class (C2). In addition, an informal statement of
the security policy model, data labelling, and mandatory access control over named subjects and
objects must be present. The capability must exist for accurately labelling exported information. Any
flaws identified by testing must be removed.
The class (B3) TCB must satisfy the reference monitor requirements that it mediate all accesses of
subjects to objects, be tamperproof, and be small enough to be subjected to analysis and tests. To this
end, the TCB is structured to exclude code not essential to security policy enforcement, with
significant system engineering during TCB design and implementation directed toward minimizing its
complexity. A security administrator is supported, audit mechanisms are expanded to signal security-
relevant events, and system recovery procedures are required. The system is highly resistant to
penetration.
Systems in class (A1) are functionally equivalent to those in class (B3) in that no additional
architectural features or policy requirements are added. The distinguishing feature of systems in this
class is the analysis derived from formal design specification and verification techniques and the
resulting high degree of assurance that the TCB is correctly implemented. This assurance is
developmental in nature, starting with a formal model of the security policy and a formal top-level
specification (FTLS) of the design. In keeping with the extensive design and development analysis of
the TCB required of systems in class (A1), more stringent configuration management is required and
procedures are established for securely distributing the system to sites. A system security administrator
is supported.
APPENDIX D [toc]
REQUIREMENT DIRECTORY
This appendix lists requirements defined in "Department of Defence Trusted Computer System
Evaluation Criteria" alphabetically rather than by class. It is provided to assist in following the
evolution of a requirement through the classes. For each requirement, three types of criteria may be
present. Each will be preceded by the word: NEW, CHANGE, or ADD to indicate the following:
NEW: Any criteria appearing in a lower class are superseded by the criteria that follow.
CHANGE: The criteria that follow have appeared in a lower class but are changed for this class.
Highlighting is used to indicate the specific changes to previously stated criteria.
NAR: (No Additional Requirements) This requirement does not change from the previous class.
The reader is referred to Part I of this document when placing new criteria for a requirement into the
complete context for that class.
Figure 1 provides a pictorial summary of the evolution of requirements through the classes. [see chart
elsewhere]
Audit
C1: NR.
C2: NEW: The TCB shall be able to create, maintain, and protect from modification or unauthorized
access or destruction an audit trail of accesses to the objects it protects. The audit data shall be
protected by the TCB so that read access to it is limited to those who are authorized for audit data. The
TCB shall be able to record the following types of events: use of identification and authentication
mechanisms, introduction of objects into a user's address space (e.g., file open, program initiation),
deletion of objects, and actions taken by computer operators and system administrators and/or system
security officers and other security relevant events. For each recorded event, the audit record shall
identify: date and time of the event, user, type of event, and success or failure of the event. For
identification/authentication events the origin of request (e.g., terminal ID) shall be included in the
audit record. For events that introduce an object into a user's address space and for object deletion
events the audit record shall include the name of the object. The ADP system administrator shall be
able to selectively audit the actions of any one or more users based on individual identity.
B1: CHANGE: For events that introduce an object into a user's address space and for object deletion
events the audit record shall include the name of the object and the object's security level. The ADP
system administrator shall be able to selectively audit the actions of any one or more users based on
individual identity and/or object security level.
ADD: The TCB shall also be able to audit any override of human-readable output markings.
B2: ADD: The TCB shall be able to audit the identified events that may be used in the exploitation of
covert storage channels.
B3: ADD: The TCB shall contain a mechanism that is able to monitor the occurrence or accumulation
of security auditable events that may indicate an imminent violation of security policy. This
mechanism shall be able to immediately notify the security administrator when thresholds are
exceeded, and, if the occurrence or accumulation of these security relevant events continues, the
system shall take the lease disruptive action to terminate the event.
A1: NAR.
Configuration Management
C2: NR.
B1: NR.
B2: NEW: During development and maintenance of the TCB, a configuration management system
shall be in place that maintains control of changes to the descriptive top-level specification, other
design data, implementation documentation, source code, the running version of the object code, and
test fixtures and documentation. The configuration management system shall assure a consistent
mapping among all documentation and code associated with the current version of the TCB. Tools
shall be provided for generation of a new version of the TCB from source code. Also available shall be
tools for comparing a newly generated version with the previous TCB version in order to ascertain that
only the intended changes have been made in the code that will actually be used as the new version of
the TCB.
B3: NAR.
A1: CHANGE: During the entire life-cycle, i.e., during the design, development, and maintenance of
the TCB, a configuration management system shall be in place for all security-relevant hardware,
firmware, and software that maintains control of changes to the formal model, the descriptive and
formal top-level specifications, other design data, implementation documentation, source code, the
running version of the object code, and test fixtures and documentation. Also available shall be tools,
maintained under strict configuration control, for comparing a newly generated version with the
previous TCB version in order to ascertain that only the intended changes have been made in the code
that will actually be used as the new version of the TCB.
ADD: A combination of technical, physical, and procedural safeguards shall be used to protect from
unauthorized modification or destruction the master copy or copies of all material used to generate the
TCB.
C1: NR.
C2: NR.
B1: NR.
B2: NEW: The system developer shall conduct a thorough search for covert storage channels and make
a determination (either by actual measurement or by engineering estimation) of the maximum
bandwidth of each identified channel. (See the Covert Channels Guideline section.)
B3: CHANGE: The system developer shall conduct a thorough search for covert channels and make a
determination (either by actual measurement or by engineering estimation) of the maximum bandwidth
of each identified channel.
Design Documentation
C2: NAR.
B1: ADD: An informal or formal description of the security policy model enforced by the TCB shall
be available and an explanation provided to show that it is sufficient to enforce the security policy. The
specific TCB protection mechanisms shall be identified and an explanation given to show that they
satisfy the model.
B2: CHANGE: The interfaces between the TCB modules shall be described. A formal description of
the security policy model enforced by the TCB shall be available and proven that it is sufficient to
enforce the security policy.
ADD: The descriptive top-level specification (DTLS) shall be shown to be an accurate description of
the TCB interface. Documentation shall describe how the TCB implements the reference monitor
concept and give an explanation why it is tamper resistant, cannot be bypassed, and is correctly
implemented. Documentation shall describe how the TCB is structured to facilitate testing and to
enforce least privilege. This documentation shall also present the results of the covert channel analysis
and the tradeoffs involved in restricting the channels. All auditable events that may be used in the
exploitation of known covert storage channels shall be identified. The bandwidths of known covert
storage channels, the use of which is not detectable by the auditing mechanisms, shall be provided.
(See the Covert Channel Guideline section.)
B3: ADD: The TCB implementation (i.e., in hardware, firmware, and software) shall be informally
shown to be consistent with the DTLS. The elements of the DTLS shall be shown, using informal
techniques, to correspond to the elements of the TCB.
A1: CHANGE: The TCB implementation (i.e., in hardware, firmware, and software) shall be
informally shown to be consistent with the formal top-level specification (FTLS). The elements of the
FTLS shall be shown, using informal techniques, to correspond to the elements of the TCB.
ADD: Hardware, firmware, and software mechanisms not dealt with in the FTLS but strictly internal to
the TCB (e.g., mapping registers, direct memory access I/O) shall be clearly described.
C1: NR.
C2: NR.
B1: NEW: An informal or formal model of the security policy supported by the TCB shall be
maintained over the life cycle of the ADP system that is shown to be consistent with its axioms.
B2: CHANGE: A formal model of the security policy supported by the TCB shall be maintained over
the life cycle of the ADP system that is proven consistent with its axioms.
ADD: A descriptive top-level specification (DTLS) of the TCB shall be maintained that completely
and accurately describes the TCB in terms of exceptions, error messages, and effects. It shall be shown
to be an accurate description of the TCB interface.
A1: CHANGE: The FTLS shall be shown to be an accurate description of the TCB interface. A
convincing argument shall be given that the DTLS is consistent with the model and a combination of
formal and informal techniques shall be used to show that the FTLS is consistent with the model.
ADD: A formal top-level specification (FTLS) of the TCB shall be maintained that accurately
describes the TCB in terms of exceptions, error messages, and effects. The DTLS and FTLS shall
include those components of the TCB that are implemented as hardware and/or firmware if their
properties are visible at the TCB interface. This verification evidence shall be consistent with that
provided within the state-of-the-art of the particular Computer Security Center- endorsed formal
specification and verification system used. Manual or other mapping of the FTLS to the TCB source
code shall be performed to provide evidence of correct implementation.
Device Labels
C1: NR.
C2: NR.
B1: NR.
B2: NEW: The TCB shall support the assignment of minimum and maximum security levels to all
attached physical devices. These security levels shall be used by the TCB to enforce constraints
imposed by the physical environments in which the devices are located.
B3: NAR.
A1: NAR.
C1: NEW: The TCB shall define and control access between named users and named objects (e.g.,
files and programs) in the ADP system. The enforcement mechanism (e.g., self/group/public controls,
access control lists) shall allow users to specify and control sharing of those objects by named
individuals or defined groups or both.
C2: CHANGE: The enforcement mechanism (e.g., self/group/public controls, access control lists) shall
allow users to specify and control sharing of those objects by named individuals, or defined groups of
individuals, or by both, and shall provide controls to limit propagation of access rights.
ADD: The discretionary access control mechanism shall, either by explicit user action or by default,
provide that objects are protected from unauthorized access. These access controls shall be capable of
including or excluding access to the granularity of a single user. Access permission to an object by
users not already possessing access permission shall only be assigned by authorized users.
B1: NAR.
B2: NAR.
B3: CHANGE: The enforcement mechanism (e.g., access control lists) shall allow users to specify and
ADD: Furthermore, for each such named object, it shall be possible to specify a list of named
individuals and a list of groups of named individuals for which no access to the object is to be given.
A1: NAR.
C1: NR.
C2: NR.
B1: NEW: The TCB shall designate each communication channel and I/O device as either single-level
or multilevel. Any change in this designation shall be done manually and shall be auditable by the
TCB. The TCB shall maintain and be able to audit any change in the security level or levels associated
with a communication channel or I/O device.
B2: NAR.
B3: NAR.
A1: NAR.
C1: NR.
C2: NR.
B1: NEW: When the TCB exports an object to a multilevel I/O device, the sensitivity label associated
with that object shall also be exported and shall reside on the same physical medium as the exported
information and shall be in the same form (i.e., machine-readable or human-readable form). When the
TCB exports or imports an object over a multilevel communication channel, the protocol used on that
channel shall provide for the unambiguous pairing between the sensitivity labels and the associated
information that is sent or received.
B2: NAR.
B3: NAR.
A1: NAR.
C1: NR.
C2: NR.
B2: NAR.
B3: NAR.
A1: NAR.
C1: NEW: The TCB shall require users to identify themselves to it before beginning to perform any
other actions that the TCB is expected to mediate. Furthermore, the TCB shall use a protected
mechanism (e.g., passwords) to authenticate the user's identity. The TCB shall protect authentication
data so that it cannot be accessed by any unauthorized user.
C2: ADD: The TCB shall be able to enforce individual accountability by providing the capability to
uniquely identify each individual ADP system user. The TCB shall also provide the capability of
associating this identity with all auditable actions taken by that individual.
B1: CHANGE: Furthermore, the TCB shall maintain authentication data that includes information for
verifying the identity of individual users (e.g., passwords) as well as information for determining the
clearance and authorizations of individual users. This data shall be used by the TCB to authenticate the
user's identity and to ensure that the security level and authorizations of subjects external to the TCB
that may be created to act on behalf of the individual user are dominated by the clearance and
authorization of that user.
B2: NAR.
B3: NAR.
A1: NAR.
Label Integrity
C1: NR.
C2: NR.
B1: NEW: Sensitivity labels shall accurately represent security levels of the specific subjects or objects
with which they are associated. When exported by the TCB, sensitivity labels shall accurately and
unambiguously represent the internal labels and shall be associated with the information being
exported.
B2: NAR.
B3: NAR.
C1: NR.
C2: NR.
B1: NEW: The ADP system administrator shall be able to specify the printable label names associated
with exported sensitivity labels. The TCB shall mark the beginning and end of all human-readable,
paged, hardcopy output (e.g., line printer output) with human- readable sensitivity labels that properly*
represent the sensitivity of the output. The TCB shall, by default, mark the top and bottom of each
page of human-readable, paged, hardcopy output (e.g., line printer output) with human-readable
sensitivity labels that properly* represent the overall sensitivity of the output or that properly*
represent the sensitivity of the information on the page. The TCB shall, by default and in an
appropriate manner, mark other forms of human-readable output (e.g., maps, graphics) with human-
readable sensitivity labels that properly* represent the sensitivity of the output. Any override of these
marking defaults shall be auditable by the TCB.
B2: NAR.
B3: NAR.
A1: NAR.
* The hierarchical classification component in human-readable sensitivity labels shall be equal to the
greatest hierarchical classification of any of the information in the output that the labels refer to; the
non-hierarchical category component shall include all of the non-hierarchical categories of the
information in the output the labels refer to, but no other non-hierarchical categories.
Labels
C1: NR.
C2: NR.
B1: NEW: Sensitivity labels associated with each subject and storage object under its control (e.g.,
process, file, segment, device) shall be maintained by the TCB. These labels shall be used as the basis
for mandatory access control decisions. In order to import non- labelled data, the TCB shall request
and receive from an authorized user the security level of the data, and all such actions shall be
auditable by the TCB.
B2: CHANGE: Sensitivity labels associated with each ADP system resource (e.g., subject, storage
object, ROM) that is directly or indirectly accessible by subjects external to the TCB shall be
maintained by the TCB.
B3: NAR.
A1: NAR.
C2: NR.
B1: NEW: The TCB shall enforce a mandatory access control policy over all subjects and storage
objects under its control (e.g., processes, files, segments, devices). These subjects and objects shall be
assigned sensitivity labels that are a combination of hierarchical classification levels and non-
hierarchical categories, and the labels shall be used as the basis for mandatory access control decisions.
The TCB shall be able to support two or more such security levels. (See the Mandatory Access Control
guidelines.) The following requirements shall hold for all accesses between subjects and objects
controlled by the TCB: A subject can read an object only if the hierarchical classification in the
subject's security level is greater than or equal to the hierarchical classification in the object's security
level and the non-hierarchical categories in the subject's security level include all the non-hierarchical
categories in the object's security level. A subject can write an object only if the hierarchical
classification in the subject's security level is less than or equal to the hierarchical classification in the
object's security level and all the non-hierarchical categories in the subject's security level are included
in the non-hierarchical categories in the object's security level. Identification and authentication data
shall be used by the TCB to authenticate the user's identity and to ensure that the security level and
authori- zation of subjects external to the TCB that may be created to act on behalf of the individual
user are dominated by the clearance and authorization of that user.
B2: CHANGE: The TCB shall enforce a mandatory access control policy over all resources (i.e.,
subjects, storage objects, and I/O devices) that are directly or indirectly accessible by subjects external
to the TCB. The following requirements shall hold for all accesses between all subjects external to the
TCB and all objects directly or indirectly accessible by these subjects:
B3: NAR.
A1: NAR.
Object Reuse
C1: NR.
C2: NEW: All authorizations to the information contained within a storage object shall be revoked
prior to initial assignment, allocation or reallocation to a subject from the TCB's pool of unused storage
objects. No information, including encrypted representations of information, produced by a prior
subject's actions is to be available to any subject that obtains access to an object that has been released
back to the system.
B1: NAR.
B2: NAR.
B3: NAR.
A1: NAR.
C1: NEW: A single summary, chapter, or manual in user documentation shall describe the protection
C2: NAR.
B1: NAR.
B2: NAR.
B3: NAR.
A1: NAR.
Security Testing
C1: NEW: The security mechanisms of the ADP system shall be tested and found to work as claimed
in the system documentation. Testing shall be done to assure that there are no obvious ways for an
unauthorized user to bypass or otherwise defeat the security protection mechanisms of the TCB. (See
the Security Testing guidelines.)
C2: ADD: Testing shall also include a search for obvious flaws that would allow violation of resource
isolation, or that would permit unauthorized access to the audit or authentication data.
B1: NEW: The security mechanisms of the ADP system shall be tested and found to work as claimed
in the system documentation. A team of individuals who thoroughly understand the specific
implementation of the TCB shall subject its design documentation, source code, and object code to
thorough analysis and testing. Their objectives shall be: to uncover all design and implementation
flaws that would permit a subject external to the TCB to read, change, or delete data normally denied
under the mandatory or discretionary security policy enforced by the TCB; as well as to assure that no
subject (without authorization to do so) is able to cause the TCB to enter a state such that it is unable to
respond to communications initiated by other users. All discovered flaws shall be removed or
neutralized and the TCB retested to demonstrate that they have been eliminated and that new flaws
have not been introduced. (See the Security Testing Guidelines.)
B2: CHANGE: All discovered flaws shall be corrected and the TCB retested to demonstrate that they
have been eliminated and that new flaws have not been introduced.
ADD: The TCB shall be found relatively resistant to penetration. Testing shall demonstrate that the
TCB implementation is consistent with the descriptive top-level specification.
ADD: No design flaws and no more than a few correctable implementation flaws may be found during
testing and there shall be reasonable confidence that few remain.
A1: CHANGE: Testing shall demonstrate that the TCB implementation is consistent with the formal
top-level specification.
ADD: Manual or other mapping of the FTLS to the source code may form a basis for penetration
testing.
C2: NR.
B1: NR.
B2: NEW: The TCB shall immediately notify a terminal user of each change in the security level
associated with that user during an interactive session. A terminal user shall be able to query the TCB
as desired for a display of the subject's complete sensitivity label.
B3: NAR.
A1: NAR.
System Architecture
C1: NEW: The TCB shall maintain a domain for its own execution that protects it from external
interference or tampering (e.g., by modification of its code or data structures). Resources controlled by
the TCB may be a defined subset of the subjects and objects in the ADP system.
C2: ADD: The TCB shall isolate the resources to be protected so that they are subject to the access
control and auditing requirements.
B1: ADD: The TCB shall maintain process isolation through the provision of distinct address spaces
under its control.
B2: NEW: The TCB shall maintain a domain for its own execution that protects it from external
interference or tampering (e.g., by modification of its code or data structures). The TCB shall maintain
process isolation through the provision of distinct address spaces under its control. The TCB shall be
internally structured into well- defined largely independent modules. It shall make effective use of
available hardware to separate those elements that are protection- critical from those that are not. The
TCB modules shall be designed such that the principle of least privilege is enforced. Features in
hardware, such as segmentation, shall be used to support logically distinct storage objects with separate
attributes (namely: readable, writeable). The user interface to the TCB shall be completely defined and
all elements of the TCB identified.
B3: ADD: The TCB shall be designed and structured to use a complete, conceptually simple protection
mechanism with precisely defined semantics. This mechanism shall play a central role in enforcing the
internal structuring of the TCB and the system. The TCB shall incorporate significant use of layering,
abstraction and data hiding. Significant system engineering shall be directed toward minimizing the
complexity of the TCB and excluding from the TCB modules that are not protection-critical.
A1: NAR.
System Integrity
C1: NEW: Hardware and/or software features shall be provided that can be used to periodically
validate the correct operation of the on-site hardware and firmware elements of the TCB.
C2: NAR.
B2: NAR.
B3: NAR.
A1: NAR.
Test Documentation
C1: NEW: The system developer shall provide to the evaluators a document that describes the test
plan, test procedures that show how the security mechanisms were tested and results of the security
mechanisms' functional testing.
C2: NAR.
B1: NAR.
B2: ADD: It shall include results of testing the effectiveness of the methods used to reduce covert
channel bandwidths.
B3: NAR.
A1: ADD: The results of the mapping between the formal top-level specification and the TCB source
code shall be given.
Trusted Distribution
C1: NR.
C2: NR.
B1: NR.
B2: NR.
B3: NR.
A1: NEW: A trusted ADP system control and distribution facility shall be provided for maintaining the
integrity of the mapping between the master data describing the current version of the TCB and the on-
site master copy of the code for the current version. Procedures (e.g., site security acceptance testing)
shall exist for assuring that the TCB software, firmware, and hardware updates distributed to a
customer are exactly as specified by the master copies.
C1: NR.
C2: NR.
B1: NR.
B3: ADD: The functions performed in the role of a security administrator shall be identified. The ADP
system 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 ADP system. Non-
security functions that can be performed in the security administration role shall be limited strictly to
those essential to performing the security role effectively.
A1: NAR.
C1: NEW: A manual addressed to the ADP system administrator shall present cautions about functions
and privileges that should be controlled when running a secure facility.
C2: ADD: The procedures for examining and maintaining the audit files as well as the detailed audit
record structure for each type of audit event shall be given.
B1: ADD: The manual shall describe the operator and administrator functions related to security, to
include changing the characteristics of a user. It shall provide guidelines on the consistent and effective
use of the protection features of the system, how they interact, how to securely generate a new TCB,
and facility procedures, warnings, and privileges that need to be controlled in order to operate the
facility in a secure manner.
B2: ADD: The TCB modules that contain the reference validation mechanism shall be identified. The
procedures for secure generation of a new TCB from source after modification of any modules in the
TCB shall be described.
B3: ADD: It shall include the procedures to ensure that the system is initially started in a secure
manner. Procedures shall also be included to resume secure system operation after any lapse in system
operation.
A1: NAR.
Trusted Path
C1: NR.
C2: NR.
B1: NR.
B2: NEW: The TCB shall support a trusted communication path between itself and user for initial
login and authentication. Communications via this path shall be initiated exclusively by a user.
B3: CHANGE: The TCB shall support a trusted communication path between itself and users for use
when a positive TCB-to-user connection is required (e.g., login, change subject security level).
Communications via this trusted path shall be activated exclusively by a user or the TCB and shall be
logically isolated and unmistakably distinguishable from other paths.
A1: NAR.
C1: NR.
C2: NR.
B1: NR.
B2: NR.
B3: NEW: Procedures and/or mechanisms shall be provided to assure that, after an ADP system failure
or other discontinuity, recovery without a protection compromise is obtained.
A1: NAR.
GLOSSARY [toc]
Access - A specific type of interaction between a subject and an object that results in the flow of
information from one to the other.
Audit Trail - A set of records that collectively provide documentary evidence of processing used to aid
in tracing from original transactions forward to related records and reports, and/or backwards from
records and reports to their component source transactions.
Automatic Data Processing (ADP) System - An assembly of computer hardware, firmware, and
software configured for the purpose of classifying, sorting, calculating, computing, summarizing,
transmitting and receiving, storing, and retrieving data with a minimum of human intervention.
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.
Bell-LaPadula Model - A formal state transition model of computer security policy that describes a set
of access control rules. In this formal model, the entities in a computer system are divided into abstract
Certification - The technical evaluation of a system's security features, made as part of and in support
of the approval/accreditation process, that establishes the extent to which a particular computer
system's design and implementation meet a set of specified security requirements.
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 Integrity - The state that exists when computerized data is the same as that in the source
documents and has not been exposed to accidental or malicious alteration or destruction.
Discretionary Access Control - A means of restricting access to objects based on the identity of
subjects 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 (unless restrained by mandatory access control).
Domain - The set of objects that a subject has the ability to access.
Dominate - Security level S1 is said to dominate security level S2 if the hierarchical classification of
S1 is greater than or equal to that of S2 and the non-hierarchical categories of S1 include all those of
S2 as a subset.
Exploitable Channel - Any channel that is useable or detectable by subjects external to the Trusted
Computing Base.
Flaw Hypothesis Methodology - A system analysis and penetration technique where specifications and
Flaw - An error of commission, omission, or oversight in a system that allows protection mechanisms
to be bypassed.
Formal Proof - A complete and convincing mathematical argument, presenting the full logical
justification for each proof step, for the truth of a theorem or set of theorems. The formal verification
process uses formal proofs to show the truth of certain properties of formal specification and for
showing that computer programs satisfy their specifications.
Formal Verification - The process of using formal proofs to demonstrate the consistency (design
verification) between a formal specification of a system and a formal security policy model or
(implementation verification) between the formal specification and its program implementation.
Front-End Security Filter - A process that is invoked to process data according to a specified security
policy prior to releasing the data outside the processing environment or upon receiving data from an
external source.
Functional Testing - The portion of security testing in which the advertised features of a system are
tested for correct operation.
General-Purpose System - A computer system that is designed to aid in solving a wide variety of
problems.
Granularity - The relative fineness or coarseness by which a mechanism can be adjusted. The phrase
"the granularity of a single user" means the access control mechanism can be adjusted to include or
exclude any single user.
Lattice - A partially ordered set for which every pair of elements has a greatest lower bound and a least
upper bound.
Least Privilege - This principle requires that each subject in a system be granted the most restrictive set
of privileges (or lowest clearance) needed for the performance of authorized tasks. The application of
this principle limits the damage that can result from accident, error, or unauthorized use.
Multilevel Device - A device that is used in a manner that permits it to simultaneously process data 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 Reuse - The reassignment to some subject of a medium (e.g., page frame, disk sector, magnetic
tape) that contained one or more objects. To be securely reassigned, such media must contain no
residual data from the previously contained object(s).
Penetration Testing - The portion of security testing in which the penetrators attempt to circumvent the
security features of a system. The penetrators may be assumed to use all system design and
implementation documentation, which may include listings of system source code, manuals, and
circuit diagrams. The penetrators work under no constraints other than those that would be applied to
ordinary users.
Protection-Critical Portions of the TCB - Those portions of the TCB whose normal function is to deal
with the control of access between subjects and objects.
Protection Philosophy - An informal description of the overall design of a system that delineates each
of the protection mechanisms employed. A combination (appropriate to the evaluation class) of formal
and informal techniques is used to show that the mechanisms are adequate to enforce the security
policy.
Read - A fundamental operation that results only in the flow of information from an object to a
subject.
Read-Only Memory (ROM) - A storage area in which the contents can be read but not altered during
normal computer processing.
Resource - Anything used or consumed while performing a function. The categories of resources are:
time, information, objects (information containers), or processors (the ability to use information).
Specific examples are: CPU time; terminal connect time; amount of directly-addressable memory; disk
space; number of I/O requests per minute, etc.
Security Kernel - The hardware, firmware, and software elements of a Trusted Computing Base that
implement the reference monitor concept. It must mediate all accesses, be protected from modification,
and be verifiable as correct.
Security Policy - The set of laws, rules, and practices that regulate how an organization 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 and that they are adequate for a proposed application environment. This process includes
hands-on functional testing, penetration testing, and verification. See also: Functional Testing,
Penetration Testing, Verification.
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.
Simple Security Condition - A Bell-LaPadula security model rule allowing a subject read access to an
object only if the security level of the subject dominates the security level of the object.
Single-Level Device - A device that is used to process data of a single security level at any one time.
Since the device need not be trusted to separate data of different security levels, sensitivity labels do
not have to be stored with the data being processed.
*-Property (Star Property) - A Bell-LaPadula security model rule allowing a subject write access to an
object only if the security level of the subject is dominated by the security level of the object. Also
known as the Confinement Property.
Storage Object - An object that supports both read and write accesses.
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 the user the subject is associated with.
TEMPEST - The study and control of spurious electronic signals emitted from ADP equipment.
Trap Door - A hidden software or hardware mechanism that permits system protection mechanisms to
be circumvented. It is activated in some non-apparent manner (e.g., special "random" key sequence at a
terminal).
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. For example, making a "blind copy" of a sensitive file for the
creator of the Trojan Horse.
Trusted Computer System - A system that employs sufficient hardware and software integrity
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 trusted computing base to correctly enforce a 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) 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.
Verification - The process of comparing two levels of system specification for proper correspondence
(e.g., security policy model with top-level specification, TLS with source code, or source code with
object code). This process may or may not be automated.
Write - A fundamental operation that results only in the flow of information from a subject to an
object.
2. Bell, D. E. and LaPadula, L. J. Secure Computer Systems: Unified Exposition and Multics
Interpretation, MTR-2997 Rev. 1, MITRE Corp., Bedford, Mass., March 1976.
3. Brand, S. L. "An Approach to Identification and Audit of Vulnerabilities and Control in Application
Systems," in Audit and Evaluation of Computer Security II: System Vulnerabilities and Controls, Z.
Ruthberg, ed., NBS Special Publication #500-57, MD78733, April 1980.
4. Brand, S. L. "Data Processing and A-123," in Proceedings of the Computer Performance Evaluation
User's Group 18th Meeting, C. B. Wilson, ed., NBS Special Publication #500-95, October 1982.
5. DCID l/l6, Security of Foreign Intelligence in Automated Data Processing Systems and Networks
(U), 4 January l983.
7. Denning, D. E. "A Lattice Model of Secure Information Flow," in Communications of the ACM,
vol. 19, no. 5 (May 1976), pp. 236-243.
8. Denning, D. E. Secure Information Flow in Computer Systems, Ph.D. dissertation, Purdue Univ.,
West Lafayette, Ind., May 1975.
9. DoD Directive 5000.29, Management of Computer Resources in Major Defence Systems, 26 April
l976.
11. DoD Directive 5200.28, Security Requirements for Automatic Data Processing (ADP) Systems,
revised April 1978.
12. DoD 5200.28-M, ADP Security Manual -- Techniques and Procedures for Implementing,
Deactivating, Testing, and Evaluating Secure Resource-Sharing ADP Systems, revised June 1979.
13. DoD Directive 5215.1, Computer Security Evaluation Center, 25 October 1982.
14. DoD 5220.22-M, Industrial Security Manual for Safeguarding Classified Information, March
1984.
16. DoD Directive 5400.11, Department of Defence Privacy Program, 9 June 1982.
17. DoD Directive 7920.1, Life Cycle Management of Automated Information Systems (AIS), 17
October 1978
20. Federal Information Processing Standards Publication (FIPS PUB) 39, Glossary for Computer
Systems Security, 15 February 1976.
21. Federal Information Processing Standards Publication (FIPS PUB) 73, Guidelines for Security of
Computer Applications, 30 June 1980.
22. Federal Information Processing Standards Publication (FIPS PUB) 102, Guideline for Computer
Security Certification and Accreditation.
23. Lampson, B. W. "A Note on the Confinement Problem," in Communications of the ACM, vol. 16,
no. 10 (October 1973), pp. 613-615.
24. Lee, T. M. P., et al. "Processors, Operating Systems and Nearby Peripherals: A Consensus Report,"
in Audit and Evaluation of Computer Security II: System Vulnerabilities and Controls, Z. Ruthberg,
ed., NBS Special Publication #500-57, MD78733, April 1980.
25. Lipner, S. B. A Comment on the Confinement Problem, MITRE Corp., Bedford, Mass.
26. Millen, J. K. "An Example of a Formal Flow Violation," in Proceedings of the IEEE Computer
Society 2nd International Computer Software and Applications Conference, November 1978, pp. 204-
208.
27. Millen, J. K. "Security Kernel Validation in Practice," in Communications of the ACM, vol. 19, no.
5 (May 1976), pp. 243-250.
28. Nibaldi, G. H. Proposed Technical Evaluation Criteria for Trusted Computer Systems, MITRE
Corp., Bedford, Mass., M79-225, AD-A108-832, 25 October 1979.
29. Nibaldi, G. H. Specification of A Trusted Computing Base, (TCB), MITRE Corp., Bedford, Mass.,
M79-228, AD-A108- 831, 30 November 1979.
30. OMB Circular A-71, Transmittal Memorandum No. 1, Security of Federal Automated Information
Systems, 27 July 1978.
32. Ruthberg, Z. and McKenzie, R., eds. Audit and Evaluation of Computer Security, in NBS Special
Publication #500-19, October 1977.
33. Schaefer, M., Linde, R. R., et al. "Program Confinement in KVM/370," in Proceedings of the ACM
National Conference, October 1977, Seattle.
34. Schell, R. R. "Security Kernels: A Methodical Design of System Security," in Technical Papers,
USE Inc. Spring Conference, 5-9 March 1979, pp. 245-250.
35. Trotter, E. T. and Tasker, P. S. Industry Trusted Computer Systems Evaluation Process, MITRE
Corp., Bedford, Mass., MTR-3931, 1 May 1980.
37. Walker, S. T. "The Advent of Trusted Computer Operating Systems," in National Computer
Conference Proceedings, May 1980, pp. 655-665.
38. Ware, W. H., ed., Security Controls for Computer Systems: Report of Defence Science Board Task
Force on Computer Security, AD # A076617/0, Rand Corporation, Santa Monica, Calif., February
1970, reissued October 1979.
Summary:
In recent years all sectors of the economy have focused on management of risk as the key to making
organisations successful in delivering their objectives whilst protecting the interests of their
stakeholders.
Risk is uncertainty of outcome, and good risk management allows an organisation to:
• Have increased confidence in achieving its desired outcomes;
• Effectively constrain threats to acceptable levels;
• Take informed decisions about exploiting opportunities.
Good risk management also allows stakeholders to have increased confidence in the organisation’s
corporate governance and ability to deliver to the wider environment in which it functions.
Objectives:
Upon completion of this part, the student will be able to understand:
• What is risk?
• What is risk analysis?
• Why risk analysis is necessary and relationship between threat, vulnerability, and loss
• Risk Analysis Approaches
• Comparison of Risk Analysis Approaches
• Detailed Risk Analysis Approach
It is a matter of definition that organizations exist for a purpose –perhaps to deliver a service, or to
achieve particular outcomes.
In the private sector the primary purpose of an organization is generally concerned with the
enhancement of shareholder value.
In the central government sector the purpose is generally concerned with the delivery of service or with
the delivery of a beneficial outcome in the public interest.
Whatever the purpose of the organization may be, the delivery of its objectives is surrounded by
uncertainty which both poses threats to success and offers opportunity for increasing success.
Risk is defined as the uncertainty of outcome, whether positive opportunity or negative threat, of
actions and events.
The risk has to be assessed in respect of the combination of the likelihood of something happening, and
the impact which arises if it does actually happen.
Risk management includes identifying and assessing risks (the “inherent risks”) and then responding
to them.
The resources available for managing risk are finite and so the aim is to achieve an optimum response
to risk, prioritized in accordance with an evaluation of the risks.
Risk is unavoidable, and every organization needs to take action to manage risk in a way which it can
justify to a level which is tolerable.
The amount of risk which is judged to be tolerable and justifiable is the risk appetite.
Response, which is initiated within the organization, to risk is called internal control and may involve
one or more of the following:
• Tolerating the risk;
• Treating the risk in an appropriate way to constrain the risk to an acceptable level or actively taking
advantage, regarding the uncertainty as an opportunity to gain a benefit;
• Transferring the risk;
• Terminating the activity giving rise to the risk;
In any of these cases the issue of opportunity arising from the uncertainty should be considered.
The level of risk remaining after internal control has been exercised (the “residual risk”) is the
exposure in respect of that risk, and should be acceptable and justifiable – it should be within the risk
appetite.
Effective risk management needs to give full consideration to the context in which the organization
functions and to the risk priorities of partner organizations.
The management of risk at strategic and operational levels needs to be integrated so that the levels of
activity support each other. In this way the risk management strategy of the organization will be led
from the top and embedded in the normal working routines and activities of the organization.
All staff should be aware of the relevance of risk to the achievement of their objectives and training to
support staff in risk management should be available. Managers at each level therefore need to be
equipped with appropriate skills which will allow them to manage risk effectively and the organization
as a whole needs a means of being assured that risk management is being implemented in an
appropriate way at each level.
Every organization should have a risk management strategy, designed to achieve the principles set out
in this publication.
The application of that strategy should be embedded into the organization’s business systems,
including strategy and policy setting processes, to ensure that risk management is an intrinsic part of
the way business is conducted.
The management of risk is not a linear process; rather it is the balancing of a number of interwoven
elements which interact with each other and which have to be in balance with each other if risk
management is to be effective.
Furthermore, specific risks cannot be addressed in isolation from each other; the management of one
risk may have an impact on another, or management actions which are effective in controlling more
than one risk simultaneously may be achievable.
The whole model has to function in an environment in which risk appetite has been defined. The
concept of risk appetite (how much risk is tolerable and justifiable) can be regarded as an “overlay”
across the whole of this model.
The model presented here, by necessity, dissects the core risk management process into elements for
illustrative purposes but in reality they blend together.
In addition, the particular stage in the process which one may be at for any particular risk will not
necessarily be the same for all risks.
The model illustrates how the core risk management process is not isolated, but takes place in a
context; and, how certain key inputs have to be given to the overall process in order to generate the
outputs which will be desired from risk management.
Objective of risk analysis is to identify threats and vulnerabilities, to avoid any security failure
(business loss).
Threat Loss
o Direct loss:
Direct damage to assets (e.g. loss of information)
o Indirect loss:
Loss of profit (from disruption of service & loss of credibility)
Incurred liability (e.g. compensations for loss
• An asset is something that the organization values and therefore has to protect. Examples:
o Hardware: servers, PC, routers, firewalls, printers
o Software: programs, OS, utilities
o Data: database, e-mails, backups, logs, data in transit over transmission line
o People: users, administrators, clients
o Printed documents: contracts, financial documents
Identifying Risk
In order to manage risk, an organisation needs to know what risks it faces, and to evaluate them.
Identifying risks is the first step in building the organisation’s risk profile. There is no single right way
to document an organisation’s risk profile, but documentation is critical to effective management of
risk.
It is also necessary to adopt an appropriate approach or tool for the identification of risk. Two of the
most commonly used approaches are:
• Commissioning a risk review: A designated team is established (either in- house or contracted in)
to consider all the operations and activities of the organisation in relation to its objectives and to
identify the associated risks. The team should work by conducting a series of interviews with key
staff at all levels of the organisation to build a risk profile for the whole range of activities (but it is
important that the use of this approach should not undermine line management ’s understanding of
their responsibility for managing the risks which are relevant to their objectives);
• Risk self-assessment: An approach by which each level and part of the organisation is invited to
review its activities and to contribute its diagnosis of the risks it faces. This may be done through a
documentation approach (with a framework for diagnosis set out through questionnaires),but is
often more effectively conducted through a facilitated workshop approach (with facilitators with
appropriate skills helping groups of staff to work out the risks affecting their objectives).A
particular strength of this approach is that better ownership of risk tends to be established when the
owners themselves identify the risks.
Risk Appetite
The concept of a risk appetite is key concept to achieve effective risk management and it is essential
to consider it before moving on to consideration of how risks can be addressed.
The concept may be looked at in different ways depending on whether the risk (the uncertainty) being
considered is a threat or an opportunity:
• When considering threats the concept of risk appetite embraces the level of exposure which is
considered tolerable and justifiable should it be realised. In this sense it is about comparing the cost
(financial or otherwise) of constraining the risk with the cost of the exposure should the exposure
become a reality and finding an acceptable balance;
• When considering opportunities the concept embraces consideration of how much one is prepared
to actively put at risk in order to obtain the benefits of the opportunity. In this sense it is about
comparing the value (financial or otherwise) of potential benefits with the losses which might be
incurred (some losses may be incurred with or without realising the benefits).
It should be noted that some risk is unavoidable and it is not within the ability of the organisation to
completely manage it to a tolerable level – for example many organisations have to accept that there is
a risk arising from terrorist activity which they cannot control. In these cases the organisation needs to
make contingency plans.
Possibility
of
facing
the TREAT TERMINATE
risk
TOLERATE TRANSFER
Cost of Loss
The purpose of addressing risks is to turn uncertainty to the organisation’s benefit by constraining
threats and taking advantage of opportunities.
Any action that is taken by the organisation to address a risk forms part of what is known as “internal
control”. There are five key aspects of addressing risk:
TOLERATE
The exposure may be tolerable without any further action being taken. Even if it is not tolerable, ability
to do anything about some risks may be limited, or the cost of taking any action may be
disproportionate to the potential benefit gained.
In these cases the response may be to tolerate the existing level of risk.
This option, of course, may be supplemented by contingency planning for handling the impacts that
will arise if the risk is realised.
TREAT
By far the greater number of risks will be addressed in this way. The purpose of treatment is that whilst
continuing within the organisation with the activity giving rise to the risk, action (control) is taken
constrain the risk to an acceptable level.
Such controls can be further sub-divided according to their particular purpose.
TRANSFER
For some risks the best response may be to transfer them. This might be done by conventional
insurance, or it might be done by paying a third party to take the risk in another way.
This option is particularly good for mitigating financial risks or risks to assets. The transfer of risks
may be considered to either reduce the exposure of the organisation or because another organisation
(which may be another government organisation)is more capable of effectively managing the risk. It is
important to note that some risks are not (fully) transferable –in particular it is generally not possible to
transfer reputational risk even if the delivery of a service is contracted out.
The relationship with the third party to which the risk is transferred needs to be carefully managed to
ensure successful transfer of risk
TERMINATE
Some risks will only be treatable, or containable to acceptable levels, by terminating the activity.
It should be noted that the option of termination of activities may be severely limited in government
• Baseline Approach
o Apply a set of safeguards to achieve a baseline of protection of each system
o Using safeguard baseline materials: ISO17799, GMITS
• Detailed Approach
o In-depth identification and evaluation of assets
o In-depth Assessment of the levels of threats and associated vulnerabilities
• Informal Approach
o Not based on a structured analysis
o Exploit the knowledge and experience of individuals
Summary:
A typical attack is not a simple, one-step procedure. It's rare that an attacker can get online or dial up a
remote computer and use only one method to gain full access. It's more likely that the attacker will
need several techniques in combination to bypass the many layers of protection standing between the
attacker and root administrative access. Therefore, as a security consultant or network administrator,
you should be well-versed in these techniques in order to thwart them. This section introduces the main
types of attacks as well as system vulnerabilities. Later sections discuss some of the more popular
measures.
Objectives:
Upon completion of this part, the student will be able to understand:
• Threats to computer systems.
• Vulnerabilities of computer systems.
• Examples of threats and vulnerabilities.
• General procedure of illegal access.
• Internal
o Steal, alter, or delete confidential files.
o Steal hardware devices.
o Virus Infection.
o Operation mistake.
o Illegal access to the Internet.
Percentage of
companies
attacked by each
kind of attack
Originally all people with a high level of skills at computing were known as hackers. Over time, the
distinction between those perceived to use such skills with social responsibility and those who used
them maliciously or criminally became perceived as an important divide. Two terminologies
developed: the former became known as hackers or (within the computer security industry) as white
hats, and the latter as crackers or black hats.
The general public tends to use the term "hackers" for both types, a source of some conflict when the
word is perceived to be used incorrectly in written reports. In computer jargon the meaning of "hacker"
can be much broader.
Actually, Hacking and cracking become easier since thousands of hacking tools are available on the
Internet. Such tools can:
• Decode encrypted password file.
• Detect a security hole in the firewall.
• Detect a bug on server.
• Create a computer virus.
• and more...
• Vulnerability:
o A weakness in the organization, computer system, or network.
• Example:
o Security policy is not set.
o Roles and responsibilities are vague.
o Security training of employees are inadequate.
o Building entrance are not checked completely.
o There is no protection against computer viruses.
o Software bugs exist.
o No password rules are set.
o Confidential data are sent without encryption over the network.
Security Holes
• A security hole is security problem of the system or a place where the security problem may occur
Voice Over
(Same text of the slide)
Propositions
(No Proposition)
Slide
Within the office
• Threats
o Break-ins: by delivery man for example.
o Theft of keys, ID cards.
o Access of an unauthorized person.
• Vulnerabilities
o Lost of keys or ID Cards.
• Trojan Horse
• Virus
• Mobile Code
The Greek siege of Troy had lasted for ten years. The Greeks devised a new ruse: a giant hollow
wooden horse. It was built by Epeius and filled with Greek warriors led by Odysseus. The rest of the
Greek army appeared to leave, but actually hid behind Tenedos. Meanwhile, a Greek spy, Sinon,
convinced the Trojans that the horse was a gift despite the warnings of Laocoon and Cassandra; Helen
and Deiphobus even investigated the horse; in the end, the Trojans accepted the gift. In ancient times it
was customary for a defeated general to surrender his horse to the victorious general in a sign of
respect. It should be noted here that the horse was the sacred animal of Poseidon; during the contest
with Athena over the patronage of Athens, Poseidon gave men the horse, and Athena gave the olive
tree.
The Trojans hugely celebrated the end of the siege, so that, when the Greeks emerged from the horse,
the city was in a drunken stupor. The Greek warriors opened the city gates to allow the rest of the army
to enter, and the city was pillaged ruthlessly, all the men were killed, and all the women and children
were taken into slavery.
The Trojan Bell is an ancillary component to the myth; according to lore, it signaled the beginning of
the assault on Troy. The Trojan horse may or may not actually have been built and used. The only
evidence known to modern scholars are literary references written long after the alleged event.
Within the territories of the ancient city of Troy, near the Dardanelles (modern Turkey), is a small
museum, founded in 1955, that includes the remnants of the city, along with a wooden horse built in
the museum garden to depict the legendary Trojan horse. The wooden horse from the recent film Troy
is displayed on the seafront in the nearby town of Çanakkale.
From this mythological episode comes the term Trojan horse as a general term describing an apparent
advantage that is actually a trick; "Trojan horse" tactics are those considered sneaky, underhand,
deceitful. The term can also refer to a "sneak attack" in general. The term "Trojan" is also widely used
today to refer to malicious computer software that looks harmless to the user but actually contains a
computer virus or spyware.
• Trojan horse attacks pose one of the most serious threats to computer security.
• According to legend, the Greeks won the Trojan war by hiding in a huge, hollow wooden horse to
sneak into the fortified city of Troy.
• For example, we download what appears to be a movie or music file, but when we click on it, we
unleash a dangerous program that erases our disk, sends our credit card numbers and passwords to
a stranger, or lets that stranger hijack our computer to commit illegal denial of service attacks like
those that have virtually crippled the DALnet IRC network for months on end.
• The following general information applies to all operating systems, but by far most of the damage
is done to/with Windows users due to its vast popularity and many weaknesses.
• Trojans are executable programs, which means that when we open the file, it will perform some
action(s).
• In Windows, executable programs have file extensions like "exe", "vbs", "com", "bat", etc.
• Trojans can be spread in the guise of literally ANYTHING people find desirable, such as a free
game, movie, song, etc.
• Victims typically downloaded the trojan from a WWW or FTP archive, got it via peer-to-peer file
exchange using IRC/instant messaging/Kazaa etc., or just carelessly opened some email
attachment.
• Trojans usually do their damage silently. The first sign of trouble is often when others tell us that
we are attacking them or trying to infect them!
We must be certain of BOTH the source AND content of each file you download! In other words,
we need to be sure that we trust not only the person or file server that gave us the file, but also the
contents of the file itself.
1. Clean Re-installation:
• Although arduous, this will always be the only sure way to eradicate a trojan or virus.
• In this case, we must:
o Back up our entire hard disk,
o Reformat the disk,.
o Re-install the operating system and all our applications from original CDs,
o Restore our user files from the backup if we’re certain they are not infected.
2. Anti-Virus Software:
• Some of these can handle most of the well known trojans, but none are perfect, no matter what
their advertising claims.
• We absolutely MUST make sure we have the very latest update files for our programs, or else
they will miss the latest trojans.
• Compared to traditional viruses, today's trojans evolve much quicker and come in many
seemingly innocuous forms, so anti-virus software is always going to be playing catch up.
• Also, if they fail to find every trojan, anti-virus software can give us a false sense of security,
such that we go about our business not realizing that we are still dangerously compromised.
3. Anti-Trojan Programs:
• These programs are the most effective against trojan horse attacks, because they specialize in
trojans instead of general viruses.
• A popular choice is The Cleaner, $30 commercial software with a 30 day free trial.
• To use it effectively, we must follow hackfix.org's configuration suggestions.
• When we are done, we must make sure we’ve updated Windows with all security patches, then
we must change all our passwords because they may have been seen by every "hacker" in the
world.
• Created by a group called “The Cult of the Dead Cow”: www.CultDeadCow.com and presented
as a remote administration tool.
• It is composed of 3 parts:
o Server Side Program (112 KB)
o Configuration tool (Automatic Installation)
o Client Side Tool (User Friendly)
Computer viruses are software programs that are deliberately designed to interfere with computer
operation, record, corrupt, or delete data, or spread themselves to other computers and throughout the
Internet.
The term comes from the term virus in biology. A computer virus reproduces by making, possibly
modified, copies of itself in the computer's memory, storage, or over a network. This is similar to the
way a biological virus works.The copies may modified (or modify themselves, as occurs in a
metamorphic virus).
It can spread to other computers by infecting files on a network file system or a file system that is
accessed by another computer. In fact, many personal computers are now connected to the Internet and
to local-area networks, facilitating their spread.
In fact, Some viruses are programmed to damage the computer by damaging programs, deleting files,
or reformatting the hard disk. Others are not designed to do any damage, but simply replicate
themselves and perhaps make their presence known by presenting text, video, or audio messages. Even
these benign viruses can create problems for the computer user. They typically take up computer
memory used by legitimate programs. As a result, they often cause erratic behavior and can result in
system crashes.
Viruses are sometimes confused with computer worms which, can spread themselves to other
computers without needing to be transferred as part of a host. They can replicate and send themselves
automatically to other computers by controlling other software programs, such as an e-mail sharing
application.
In fact, when we listen to the news, we hear about many different forms of electronic infection. The
most common are:
• Viruses - A virus is a small piece of software that piggybacks on real programs. For example,
a virus might attach itself to a program such as a spreadsheet program. Each time the
spreadsheet program runs, the virus runs, too, and it has the chance to reproduce (by attaching
to other programs) or wreak havoc.
• E-mail viruses - e-mail virus moves around in e-mail messages, and usually replicates itself
by automatically mailing itself to dozens of people in the victim's e-mail address book.
• Trojan horses - A Trojan horse is simply a computer program. The program claims to do one
thing (it may claim to be a game) but instead does damage when you run it (it may erase your
hard disk). Trojan horses have no way to replicate automatically.
• Worms - A worm is a small piece of software that uses computer networks and security holes
to replicate itself. A copy of the worm scans the network for another machine that has a
specific security hole. It copies itself to the new machine using the security hole, and then
starts replicating from there, as well. We'll take a closer look at how a worm works in the next
section.
Today's viruses may also take advantage of network services such as the World Wide Web, e-mail, and
file sharing systems to spread, blurring the line between viruses and worms.
Computer viruses can spread very fast. For example, it is estimated that the Mydoom worm infected a
quarter-million computers in a single day in January 2004. Another example is the ILOVEYOU worm,
There are many viruses operating in the general Internet today, and new ones are discovered every day.
The most common version of Code Red is a variation, typically referred to as a mutated strain, of the
original Ida Code Red that replicated itself on July 19, 2001. According to the National Infrastructure
Protection Center:
The Ida Code Red Worm, which was first reported by eEye
Digital Security, is taking advantage of known vulnerabilities in
the Microsoft IIS Internet Server Application Program Interface
(ISAPI) service. Un-patched systems are susceptible to a "buffer
overflow" in the Idq.dll, which permits the attacker to run
embedded code on the affected system. This memory resident
worm, once active on a system, first attempts to spread itself by
creating a sequence of random IP addresses to infect
unprotected web servers. Each worm thread will then inspect the
infected computer's time clock. The NIPC has determined that
the trigger time for the DOS execution of the Ida Code Red
Worm is at 0:00 hours, GMT on July 20, 2001. This is 8:00 PM,
EST.
A worm called Code Red made huge headlines in 2001. Experts predicted that this worm could clog
the Internet so effectively that things would completely grind to a halt.
Worms normally move around and infect other machines through computer networks. Using a
network, a worm can expand from a single copy incredibly quickly. The Code Red worm replicated
itself over 250,000 times in approximately nine hours on July 19, 2001.
A worm usually exploits some sort of security hole in a piece of software or the operating system. For
example, the Slammer worm (which caused mayhem in January 2003) exploited a hole in Microsoft's
SQL server.
The Code Red worm slowed down Internet traffic when it began to replicate itself, but not nearly as
badly as predicted. Each copy of the worm scanned the Internet for Windows NT or Windows 2000
servers that do not have the Microsoft security patch installed. Each time it found an unsecured server,
the worm copied itself to that server.
The new copy then scanned for other servers to infect. Depending on the number of unsecured servers,
a worm could conceivably create hundreds of thousands of copies. The Code Red worm was designed
to do three things:
• Replicate itself for the first 20 days of each month.
• Replace Web pages on infected servers with a page that declares "Hacked by Chinese".
• Launch a concerted attack on the White House Web server in an attempt to overwhelm it
Here are a few primary indicators that our computer might be infected:
• The computer runs more slowly than normal
• The computer stops responding or locks up often
• The computer crashes and restarts every few minutes
• The computer restarts on its own and then fails to run normally
• Applications on the computer don't work correctly
• Disks or disk drives are inaccessible
• We can't print correctly
• We see unusual error messages
• We see distorted menus and dialog boxes
• Replicator
• Protector
• Trigger
• Payload
In the early days, when Web pages were just static HTML files, they did not contain executable code.
Now they often contain small programs, including Java applets, ActiveX controls, and JavaScripts.
Downloading and executing such mobile code is obviously a massive security risk, so various methods
have been devised to minimize it.
We will take a quick look at some of the issues raised by mobile code and some approaches to dealing
with it. We will focus on 3 mobile code types:
• Java Applet
• ActiveX
• JavaScript
Java applets are small Java programs compiled to a stack-oriented machine language called JVM
(Java Virtual Machine).
They can be placed on a Web page for downloading along with the page. After the page is loaded, the
applets are inserted into a JVM interpreter inside the browser, as illustrated in the slide.
The advantage of running interpreted code over compiled code is that every instruction is examined by
the interpreter before being executed. This gives the interpreter the opportunity to check whether the
instruction’s address is valid.
In addition, system calls are also caught and interpreted. How these calls are handled is a matter of the
security policy. For example, if an applet is trusted (e.g., it came from the local disk), its system calls
could be carried out without question.
When an applet tries to use a system resource, its call is passed to a security monitor for approval. The
monitor examines the call in light of the local security policy and then makes a decision to allow or
reject it. In this way, it is possible to give applets access to some resources but not all. Unfortunately,
the reality is that the security model works badly and that bugs in it crop up all the time.
It is not interpreted or sandboxed in any way, so it has as much power as any other user program and
can potentially do great harm. Thus, all the security is in the decision whether to run the ActiveX
control.
The method that Microsoft chose for making this decision is based on the idea of code signing. The
Microsoft system for verifying ActiveX controls is called Authenticode.
• Each ActiveX control is accompanied by a digital signature—a hash of the code that is signed by
its creator using public key cryptography.
• When an ActiveX control shows up, the browser first verifies the signature to make sure it has not
been tampered with in transit.
o If the signature is correct, the browser then checks its internal tables to see if the program’s
creator is trusted or there is a chain of trust back to a trusted creator.
o If the creator is trusted, the program is executed; otherwise, it is not.
JavaScript does not have any formal security model, but it does have a long history of leaky implementations.
Each vendor handles security in a different way. For example, Netscape Navigator version 2 used something
akin to the Java model, but by version 4 that had been abandoned for a code signing model.
The fundamental problem is that letting foreign code run on your machine is asking for trouble.
The tension here is that mobile code allows flashy graphics and fast interaction, and many Web site designers
think that this is much more important than security, especially when it is somebody else’s machine at risk.
The stereotypical image conjured by most people when they hear the term hacker is that of a pallid,
atrophied recluse cloistered in a dank bedroom, whose spotted complexion is revealed only by the
unearthly glare of a Linux box used for remote exploit scanning in Perl.
However, while computer skill is central to a hacker's profession, there are many additional facets that
he (or she) must master.
A real hacker must also rely on physical and interpersonal skills such as social engineering and other
"wet work" that involves human interaction. However, because most people have a false stereotype of
hackers, they fail to realize that the person they're chatting with in the office or talking to on the phone
may in fact be a hacker in disguise. In fact, this common misunderstanding is one of the hacker's
greatest assets.
Network Attacks
Collect of Information
• Foot Printing
• Scanning: Ping Sweeps, Port Sweeps
• Enumeration
Network Attacks
Collect of Information: Foot Printing
• Functional Information:
o Names of employees in order to deduce user names and passwords.
o Email addresses.
o Technical levels of the employees.
o Business type and information transmitted over the network.
o … etc.
Network Attacks
Collect of Information: Scanning
Scanning Goal:
IP Scanning
• Is performed using:
o ping tool.
o OR ICMP-echo request and ICMP-echo reply packet.
Port Scanning:
• The Procedure:
Repeat for all Ports
ClientÆ SYN
If (ServerÆ SYN-ACK) then Port
Else
if (ServerÆ RST-ACK) then No Port
ClientÆ ACK
Tools:
• UNIX
o fping, gping: ftp://tamu.edu/pub/Unix/src
• Windows
o Pinger : http://207.98.195.250/Software
o INetTools: http://www.wildpackets.com/Products/inettools
Network Attacks
Collect of Information: Enumeration
Network Attacks
Sniffing
A sniffer is a program and/or device that monitors all information passing through a computer network.
It "sniffs" the data passing through the network off the wire and determines where the data is going,
where it originated, and what it is.
In addition to these basic functions, sniffers can have extra features that allow them to filter one type of
data, capture passwords, and more.
There are even some sniffers—for example, the FBI's controversial mass-monitoring tool formerly
known as Carnivore—that can rebuild files sent across a network, such as an email or web page.
The sniffer gives the hacker a complete picture of the data sent and received by the computer or
network that the sniffer is monitoring. This data includes but is not limited to all email messages,
passwords, usernames, and documents.
With this information, a hacker can form a complete picture of the data traveling on a network, as well
as capture important tidbits of data that can help him gain complete control over the network.
This network address is properly known as the Media Access Control (MAC) address. The MAC
address is also called the physical address.
For a computer to have the ability to sniff a network, it must have a network card running in
promiscuous mode, which means that it can receive all the traffic that's sent across the network,
regardless of whether the data is destined for the machine running the sniffer.
An exception to this rule is monitor mode, which stops all interaction. This type of network card status
applies only to wireless network interface cards.
Due to the unique properties of a wireless network, any data traveling through the airwaves is open to
any device that's configured to listen. While a card in promiscuous mode will work in wireless
environments, there's no need for it to be part of the network. Instead, a wireless NIC can simply enter
a listening status in which it's restricted from sending data out to the network.
The destination address is the MAC address of the computer; there's a unique MAC address for every
network card in the world. Although you can change the address, the MAC address ensures that the
data is delivered to the right computer. If a computer's address doesn't match the address in the packet,
the data is normally ignored.
Network cards have the option to run in promiscuous mode for the sake of troubleshooting. Normally,
a computer doesn't need to send information to other computers on the network. However, in the event
that something goes wrong with the network wiring or hardware, it's important for a network
technician to look inside the data traveling on the network to see what's causing the problem. For
example, one common indication of a bad network card is when computers start to have a difficult time
transferring data. This could be the result of an information overload on the network wires.
The flood of data would jam the network and would stop any productive communication. Once a
technician plugs in a computer with the ability to examine the network, he can quickly pinpoint the
origin of the corrupt data and thus the location of the broken network card. He can then simply replace
the bad card and everything is back to normal.
Although sniffers most commonly show up within closed business networks, they can also be used
throughout the Internet. As mentioned previously, the FBI has a program that captures all the
information both coming from and going to computers online. This tool, previously known as
Carnivore, simply has to be plugged in and turned on. (The FBI backed away from the aggressive
name Carnivore because of negative public reaction.) Although it's purported to filter out any
information that's not intended for the target, this tool actually captures everything traveling through
wires to which it's connected and then filters it according to the rules set up in the program. Thus,
Carnivore can potentially capture all of the passwords, emails, and chats passing through its
connection.
Session hijacking takes the act of spoofing one step further. It involves faking someone's identity in
order to take over a connection that's already established. Because spoofing is required in order to
successfully hijack a connection.
The most common spoofing attack is called an IP spoof. This type of attack takes advantage of the
Internet Protocol (IP), which is part of the Transmission Control Protocol/Internet Protocol (TCP/IP)
suite. In this case, the return address of a packet sent to a computer is faked. This trick protects the
identity of the attacker.
Network Attacks
Denial of Service: ICMP-echo Flooding
ECHO REPLY
ICMP ECHO
C
ICMP ECHO
Internet
ECHO REPLY
P2:=B.Create-ICMP-echo-reply-packet( );
P2.SourceAddress=B.IPAddress;
P2.DestinationAddress:=P1.SourceAddress;
B.Send(P2);
Hackers can wreak havoc without ever penetrating a system. For example, a hacker can effectively
shut down a computer by flooding this computer with obnoxious signals or malicious code.
This technique is known as a denial-of-service (DoS) attack. In addition, there are numerous other
kinds of DoS attacks that can be launched and that may deserve coverage—chief among these being
the Distributed DoS (DDoS):
• The flooding method drowns the target computer or hardware device with so much traffic that
it becomes overwhelmed and cannot process it all, let alone legitimate traffic. A common type
of flooding is SYN flooding.
• The alternative method is to send a well-crafted command or piece of erroneous data that
crashes the target computer device.
ECHO REPLY
1*ICMP ECHO
C
A
1*ICMP ECHO
Internet
N*ECHO REPLY
B
Imagine a company with 50 employees available to respond to customer questions by email. Each
employee has an auto-responder that automatically sends a courtesy reply when a question is received.
What would happen if an angry customer mailed 100 email messages, copied to each of the 50
employees, using a fake return email address? The 100 incoming messages would suddenly become
5,000 outgoing messages—all going to one mailbox. Whoever owned the fake return address would be
overwhelmed with all that mail! And he would have to search through all of it to make sure that he
didn't miss an important message from his boss or a friend.
In a smurf attack, the attacker sends a request signal into a network of computers, each of which reply
to a faked return address. Special programs and other techniques can amplify this attack until a flood of
information is headed toward one unfortunate computer.
The rules of TCP/IP specify that a computer generally ignores all packets that are not expressly
addressed to it. One exception is if a computer has a network card running in promiscuous mode.
Another exception occurs when a system uses broadcast packets.
Because of the way IP addresses are set up within a network, there's always one address to which every
computer will answer. This broadcast address is used to update name lists and other necessary items
that computers need to keep the network up and running. Although the broadcast address is necessary
in some cases, it can lead to what's known as a broadcast storm.
A broadcast storm is like an echo that never dies. More specifically, it's like an echo that crescendos
until you can't hear anything over the pure noise. If a computer sends a request to a network using the
broadcast address and the return address of the broadcast address, every computer will respond to
every other computer's response; this continues in a snowball effect until the network is so full of
echoes that nothing else can get through.
These types of attacks not only quickly and effectively shut down a server, but keep the hacker
invisible. The original packets sent by the hacker are untraceable. In the smurf attack, the hacker
doesn't directly attack the target, but instead uses the side-effect of sending broadcast signals into a
network to do the job indirectly. Therefore, the attack appears to have come from another computer or
Network Attacks
SYN Flooding
A SYN (short for synchronize) flooding attack ties up the target computer's resources by making it
respond to a flood of connection requests that are never completed.
Imagine that you're a secretary whose job is to answer and redirect phone calls. What if 200 people
called you at the same time, and then simply kept the line open while you sat there saying "Hello?
Hello?" You would be so busy picking up dead lines that you would never get any work done.
Eventually, you might suffer a mental breakdown and quit your job. This is the same technique that
hackers use when they employ a denial-of-service attack.
A SYN DoS attack takes advantage of the required TCP/IP handshake that takes place when two
computers set up a communications session. The client computer sends a SYN packet to the server
computer to start the communication. When the server receives this data, it processes the return
address and sends back the SYN ACK (acknowledge) packet. The server then waits for the client to
respond with a final ACK packet, which completes the connection initiation.
A server has a limited number of resources designated for client connections. When the server receives
the initial SYN packet from a client, the server allocates some of these resources. This limitation is
meant to cap the number of simultaneous client connections. If too many clients connect at once, the
server will become overloaded and crash under the excess processing load. (Note that both server
defences and attacks have continued to evolve since the discovery of this weakness.)
The weakness in this system occurs when the hacker inserts a fake return address in the initial SYN
packet. Thus, when the server sends back the SYN ACK to the fake client, it never receives the final
ACK. This means that for every fake SYN packet, further resources are tied up until the server refuses
any more connections.
A successful attack requires myriad fake packets, but if a hacker has several slave computers sending
packets he can overload a server quickly. A well-known example of this type of attack occurred in
February 2000. Several high-profile web sites were brought to their knees by a flood of signals coming
from hundreds of different computers simultaneously. The web sites would have had no problem
handling an attack from one source; however, through the use of remote-control programs, one or more
hackers launched a concerted attack using hundreds of computers, thus quickly overloading their
targets.
To perform a DoS attack, the hacker must first determine the IP address of the target. Using this IP
address, the hacker connects to it using a client computer. To amplify the force of the attack, hackers
often set up several client computers programmed to attack the target at the same time. This is usually
accomplished by doing some preliminary hacking in order to gain ownership of several computers with
high bandwidth connections. The most popular sources of these "slave" or "zombie" computers are
university systems and broadband customers. Once the hacker has his slave computers set up, he
launches the attack from a central point (the master).
To get the information exchanged between two sides, the Hacker start Sniffing the Client
Ping of Death
A TCP/IP packet with a theoretical length greater than 65536-bytes has been sent to the machine.
This attack was popular around July of 1997, but since then most systems have been patched to prevent
this bug.
TCP/IP supports a feature called "fragmentation", where a single IP-packet can be broken down into
smaller segments. This is needed because the typical Internet connection (dial-up, Ethernet, cable-
modem, etc.) only supports packets of around a couple thousand bytes, but IP supports packets up to
64-kbytes. Thus, when sending a single packet that is too large for a link, it is broken up into smaller
packet fragments.
A quirk of IP is that while a single packet cannot exceed 65536-bytes, the fragments themselves can
add up to more than that. The "Ping of Death" technique does just that. Since this is a condition
thought impossible, operating systems crash when they receive this data.
Ping of death can actually be run from older versions of Windows. At a command line, simply type:
ping -l 65550 VICTIM A further bug in Windows is that it not only crashes when it receives the
invalid data, but it can accidentally also generate it. Newer versions of Windows prevent you from
sending these packets.
When visiting websites, such as, http://www.example.com, the system must first resolve the name into
an IP address using DNS. This is similar to how you must lookup someone name in the phone book in
order to dial their telephone number.
There exists a hacker technique whereby they can sometimes force a duplicate reply to the DNS
lookup. Using the phone book analogy, it is similar to calling 411/information for somebody's number
and getting back two replies. Imagine a hacker breaking into the phone system such that the first
number you heard was to the hacker. The hacker who broke into the telephone system might use this
technique to redirect people buying with credit cards to his own phone number, and then pretend to be
the real vendor, and then steal the credit card numbers.
In much the same way, hackers use this DNS spoof in order to redirect people to their own website.
However, we are finding that home users are seeing such behaviour from ISPs. Some ISPs attempt to
re-direct users through their own caching servers. Therefore, this "spoof" symptom doesn't actually
indicate a hostile attack.
In fact, DNS spoofing works by forcing a DNS "client" to generate a request to a "server", then by
spoofing the response from the "server".
One way this works is through the scheme that most DNS servers support "recursive" queries. You can
therefore send a request to any DNS server asking for it to resolve a name-to-address. That DNS server
will then send the proper queries to the proper servers in order to discover the appropriate information.
However, an intruder can predict what request that victim server will send out to satisfy the request,
and can spoof the response, which will arrive before the real response arrives.
This is useful because DNS servers will "cache" information for a certain amount of time. If an
intruder can successfully spoof a response for "www.microsoft.com", any legitimate users of that DNS
server will then be redirected to the intruder's site.
Social Engineering
Social engineering, or interpersonal manipulation, is not unique to hacking. In fact, many people use
this type of trickery every day, both criminally and professionally.
We are probably guilty of using social engineering techniques to get something we wanted. Whether
it's haggling for a lower price on a lawnmower at a garage sale.
One example of social engineering that information technology managers face on a weekly basis is
solicitation from vendors. This inimical form of sales takes the form of thinly disguised telemarketing.
Straying far from ethical standards of sales technique, such vendors attempt to trick us into giving
them information so they can put our company's name on a mailing list.
This request sounds innocent enough, and many people fall for this tactic. The attacker is simply trying
to trick us into providing "sensitive" information—details that he or she really has no right to know.
However, we might try to reverse the social engineering ourselves: Play along, and even tempt the
caller with statements indicating that you're dissatisfied with our current copier, and that we wish we
could purchase another brand. Once scammers sense money, they often foolishly make their true
identity known.
Like the scam artist's trick, a common hacker method is to pretend to be conducting a survey—asking
all kinds of questions about the network operating systems, intrusion-detection systems, firewalls, and
more, in the guise of a researcher. A really malicious hacker might even offer a cash reward to pay for
the network administrator's time in answering the questions. The most popular social engineering
method involves pretending to be a user who has trouble getting the VPN to work, has lost the
password to the mail server, etc. Unfortunately, most people fall for the bait and reveal sensitive
network information.
Social Spying
Social spying is the process of using observation to acquire information. While social engineering can
provide an attacker with crucial information, small businesses are more resistant to social engineering
because people in small companies all know each other. For example, if one of the IT staff received a
call from an attacker pretending to be a distressed CEO, she would probably recognize the voice as not
belonging to the real CEO. In this case, social spying becomes more important.
To illustrate one of the non-technical ways in which social spying can be used, consider how many
people handle their ATM cards.
• Do we hide your PIN when we get cash at the ATM?
• Most people don't; they whip out the card and punch the numbers without noticing who might be
watching.
• If someone else memorizes the PIN, he'll have all the information needed to access the funds in the
account—provided that he can get his hands on the ATM card.
Snooping on people as they actively type their user information isn't the only technique. Most offices
have at least a few people who post passwords on or near their computer monitors. This type of blatant
disregard for security is every network administrator's worst nightmare.
Regardless of repeated memos, personal visits, and warnings, some people seem to find an excuse to
post network passwords in plain view. Even if some people are at least security-conscious enough to
hide the Post-it note with the password in a discreet place, it still takes only a few seconds to lift a
keyboard or pull open a desk drawer.
Keywords:
IDS, Firewall antivirus, Leased Line, Router, Remote Access server.
Summary:
In this section, we will present the main security measures related to network, services and application
security.
Objectives:
Upon completion of this part, the student will be able to understand:
• Networks related security measures.
• OS and DB and services related security measures
• Techniques of prevention
• Techniques of detection
• Techniques of recovery
Example:
Voice Over
A firewall is simply a program or hardware device that filters the information coming through the
Internet connection into a private network or computer system. If an incoming packet of information is
flagged by the filters, it is not allowed through.
Let's say that we work at a company with 500 employees. The company will therefore have hundreds
of computers that all have network cards connecting them together. In addition, the company will have
one or more connections to the Internet through something like T1 or T3 lines.
Without a firewall in place, all of those hundreds of computers are directly accessible to anyone on the
• Proxy service - Information from the Internet is retrieved by the firewall and then sent to the
requesting system and vice versa.
• Stateful inspection - A newer method that doesn't examine the contents of each packet but
instead compares certain key parts of the packet to a database of trusted information.
Information travelling from inside the firewall to the outside is monitored for specific defining
characteristics, then incoming information is compared to these characteristics. If the
comparison yields a reasonable match, the information is allowed through. Otherwise it is
discarded.
Firewall Actions
There are many creative ways that unscrupulous people use to access or abuse unprotected computers:
Remote login - When someone is able to connect to your computer and control it in some form.
This can range from being able to view or access your files to actually running programs on your
computer.
Application backdoors - Some programs have special features that allow for remote access. Others
contain bugs that provide a backdoor or hidden access that provides some level of control of the
program.
SMTP session hijacking - SMTP is the most common method of sending e-mail over the Internet.
By gaining access to a list of e-mail addresses, a person can send unsolicited junk e-mail (spam) to
thousands of users. This is done quite often by redirecting the e-mail through the SMTP server of an
unsuspecting host, making the actual sender of the spam difficult to trace.
Denial of service - You have probably heard this phrase used in news reports on the attacks on
major Web sites. This type of attack is nearly impossible to counter. What happens is that the
hacker sends a request to the server to connect to it. When the server responds with an
acknowledgement and tries to establish a session, it cannot find the system that made the request.
By inundating a server with these unanswerable session requests, a hacker causes the server to slow
to a crawl or eventually crash.
E-mail bombs - An e-mail bomb is usually a personal attack. Someone sends you the same e-mail
hundreds or thousands of times until your e-mail system cannot accept any more messages.
Macros - To simplify complicated procedures, many applications allow you to create a script of
commands that the application can run. This script is known as a macro. Hackers have taken
advantage of this to create their own macros that, depending on the application, can destroy your
data or crash your computer.
Viruses - Probably the most well-known threat is computer viruses. A virus is a small program that
can copy itself to other computers. This way it can spread quickly from one system to the next.
Viruses range from harmless messages to erasing all of your data.
Spam - Typically harmless but always annoying, spam is the electronic equivalent of junk mail.
Spam can be dangerous though. Quite often it contains links to Web sites. Be careful of clicking on
these because you may accidentally accept a cookie that provides a backdoor to your computer.
Redirect bombs - Hackers can use ICMP to change (redirect) the path information takes by
sending it to a different router. This is one of the ways that a denial of service attack is set up.
Source routing - In most cases, the path a packet travels over the Internet (or any other network) is
determined by the routers along that path. But the source providing the packet can arbitrarily
specify the route that the packet should travel. Hackers sometimes take advantage of this to make
information appear to come from a trusted source or even from inside the network! Most firewall
products disable source routing by default.
Some of the items in the list above are hard, if not impossible, to filter using a firewall. While some
firewalls offer virus protection, it is worth the investment to install anti-virus software on each
computer. And, even though it is annoying, some spam is going to get through your firewall as long as
you accept e-mail.
Screened Host
Screened Subnet
Internal Router
Fire- Router Internet
Wall
Network
web, ftp, email
Firewall Products
• Raptor: www.Raptor.com
An intrusion detection system (IDS) generally detects unwanted manipulations to computer systems,
mainly through the Internet. The manipulations may take the form of attacks by skilled malicious
hackers, or script kiddies using automated tools.
An intrusion detection system is used to detect all types of malicious network traffic and computer
usage that can't be detected by a conventional firewall. This includes network attacks against
vulnerable services, data driven attacks on applications, host based attacks such as privilege escalation,
unauthorized logins and access to sensitive files, and malware (viruses, trojan horses, and worms).
There are several ways to categorize an IDS depending on the type and location of the sensors and the
methodology used by the engine to generate alerts.
In many simple IDS implementations all three components are combined in a single device or
appliance.
• Misuse Detection vs. Anomaly Detection: in misuse detection, the IDS analyzes the information
it gathers and compares it to large databases of attack signatures. Essentially, the IDS looks for a
specific attack that has already been documented. Like a virus detection system, misuse detection
software is only as good as the database of attack signatures that it uses to compare packets against.
In anomaly detection, the system administrator defines the baseline, or normal, state of the
network’s traffic load, breakdown, protocol, and typical packet size. The anomaly detector
monitors network segments to compare their state to the normal baseline and look for anomalies.
• Passive System vs. Reactive System: in a passive system, the IDS detects a potential security
breach, logs the information and signals an alert. In a reactive system, the IDS responds to the
suspicious activity by logging off a user or by reprogramming the firewall to block network traffic
from the suspected malicious source.
Though they both relate to network security, an IDS differs from a firewall in that:
• A firewall looks out for intrusions in order to stop them from happening.
• The firewall limits the access between networks in order to prevent intrusion and does not signal an
attack from inside the network.
• An IDS evaluates a suspected intrusion once it has taken place and signals an alarm.
• An IDS also watches for attacks that originate from within a system.
Passive IDS
A passive IDS simply detects and alerts. When suspicious or malicious traffic is detected an alert is
generated and sent to the administrator or user and it is up to them to take action to block the activity
or respond in some way.
Reactive IDS
Reactive IDS will not only detect suspicious or malicious traffic and alert the administrator, but will
take pre-defined proactive actions to respond to the threat. Typically this means blocking any further
network traffic from the source IP address or user.
One of the most well known and widely used intrusion detection systems is the open source, freely
available Snort. It is available for a number of platforms and operating systems including both Linux
and Windows. Snort has a large and loyal following and there are many resources available on the
Internet where you can acquire signatures to implement to detect the latest threats.
There is also technology called IPS – Intrusion Prevention System. An IPS is essentially a firewall
which combines network-level and application-level filtering with a reactive IDS to proactively protect
the network.
It seems that as time goes on firewalls, IDS and IPS take on more attributes from each other and blur
the line even more.
Essentially, the firewall is our first line of perimeter defence. Best practices recommend that the
firewall be explicitly configured to DENY all incoming traffic and then we open up holes where
We may need to open up port 80 to host web sites or port 21 to host an FTP file server. Each of these
holes may be necessary from one standpoint, but they also represent possible vectors for malicious
traffic to enter the network rather than being blocked by the firewall.
That is where the IDS would come in. Whether we implement a NIDS across the entire network or a
HIDS on a specific device, the IDS will monitor the inbound and outbound traffic and identify
suspicious or malicious traffic which may have somehow bypassed the firewall or it could possibly be
originating from inside the network as well.
An IDS can be a great tool for proactively monitoring and protecting the network from malicious
activity, however they are also prone to false alarms.
With just about any IDS solution we implement we will need to “tune it” once it is first installed. We
need the IDS to be properly configured to recognize what is normal traffic on your network vs. what
might be malicious traffic and we, or the administrators responsible for responding to IDS alerts, need
to understand what the alerts mean and how to effectively respond.
Using Antivirus
Standard Conformity
Example of Windows 2000 C2-Conformity (Orange Book Standard)
During this time when the Internet provides essential communication between tens of millions of
people and is being increasingly used as a tool for commerce, security becomes a tremendously
important issue to deal with.
There are many aspects to security and many applications, ranging from secure commerce and
payments to private communications and protecting passwords.
One essential aspect for secure communications is that of cryptography, which will be the focus of the
next section.
But it is important to note that while cryptography is necessary for secure communications, it is not by
itself sufficient.
Summary:
There are many aspects to security and many applications, ranging from secure commerce and
payments to private communications and protecting passwords. One essential aspect for secure
communications is that of cryptography. But it is important to note that while cryptography is
necessary for secure communications, it is not by itself sufficient.
Objectives:
Upon completion of this part, the student will be able to understand:
• Types of Cryptography.
• Secret Key Cryptography.
• Public Key Cryptography.
• Hash Functions
Some experts argue that cryptography appeared spontaneously sometime after writing was invented,
with applications ranging from diplomatic missives to war-time battle plans.
It is no surprise, then, that new forms of cryptography came soon after the widespread development of
computer communications. In data and telecommunications, cryptography is necessary when
communicating over any untrusted medium, which includes just about any network, particularly the
Internet.
Within the context of any application-to-application communication, there are some specific security
requirements, including:
• Authentication: The process of proving one's identity. (The primary forms of host-to-host
authentication on the Internet today are name-based or address-based, both of which are
notoriously weak.)
• Privacy/confidentiality: Ensuring that no one can read the message except the intended receiver.
• Integrity: Assuring the receiver that the received message has not been altered in any way from the
original.
• Non-repudiation: A mechanism to prove that the sender really sent this message.
Cryptography, not only protects data from theft or alteration, but can also be used for user
authentication, for confirming data integrity, and for proving sender or receiver identity.
Cryptography Schemes
There are, in general, three types of cryptographic schemes typically used to accomplish these goals:
In all cases, the initial unencrypted data is referred to as plaintext. It is encrypted into ciphertext, which
will in turn (usually) be decrypted into usable plaintext.
We will categorize them regarding to the number of keys that are employed for encryption and
decryption, and further defined by their application and use.
Because a single key is used for both functions, secret key cryptography is also called symmetric
encryption.
The biggest difficulty with this approach, of course, is the distribution of the key.
In general, the same plaintext block will always encrypt to the same ciphertext when using the same
key in a block cipher whereas the same plaintext will encrypt to different ciphertext in a stream cipher.
Triple-DES (3DES):
• A variant of DES that employs up to three 56-bit keys and makes three encryption/decryption
DES uses the Data Encryption Algorithm (DEA), a secret key block-cipher employing a 56-bit key
operating on 64-bit blocks. FIPS 81 describes four modes of DES operation: Electronic Codebook
(ECB), Cipher Block Chaining (CBC), Cipher Feedback (CFB), and Output Feedback (OFB). Despite
all of these options, ECB is the most commonly deployed mode of operation.
NIST finally declared DES obsolete in 2004, and withdrew FIPS 46-3, 74, and 81 (Federal Register,
July 26, 2004, 69(142), 44509-44510). Although other block ciphers will replace DES, it is still
interesting to see how DES encryption is performed; not only is it sort of neat, but DES was the first
crypto scheme commonly seen in non-governmental applications and was the catalyst for modern
"public" cryptography. DES remains in many products — and cryptography students and
cryptographers will continue to study DES for years to come.
Example:
DES uses a 56-bit key. The 56-bit key is divided into eight 7-bit blocks and an 8th odd parity bit is
added to each block (i.e., a "0" or "1" is added to the block so that there are an odd number of 1 bits in
each 8-bit block).
By using the 8 parity bits for rudimentary error detection, a DES key is actually 64 bits in length for
computational purposes (although it only has 56 bits worth of randomness, or entropy).
DES acts on 64-bit blocks of the plaintext, invoking 16 rounds of permutations, swaps, and substitutes.
The standard includes tables describing all of the selection, permutation, and expansion operations
mentioned below; these aspects of the algorithm are not secrets. The basic DES steps are:
1. The 64-bit block to be encrypted undergoes an initial permutation (IP), where each bit is moved to
a new bit position; e.g., the 1st, 2nd, and 3rd bits are moved to the 58th, 50th, and 42nd position,
respectively.
2. The 64-bit permuted input is divided into two 32-bit blocks, called left and right, respectively. The
initial values of the left and right blocks are denoted L0 and R0.
3. There are then 16 rounds of operation on the L and R blocks. During each iteration (where n ranges
from 1 to 16), the following formulae apply:
Ln = Rn-1
Rn = Ln-1 XOR f(Rn-1,Kn)
4. At any given step in the process, then, the new L block value is merely taken from the prior R
block value. The new R block is calculated by taking the bit-by-bit exclusive-OR (XOR) of the
prior L block with the results of applying the DES cipher function, f, to the prior R block and Kn.
(Kn is a 48-bit value derived from the 64-bit DES key. Each round uses a different 48 bits
according to the standard's Key Schedule algorithm.)
5. The cipher function, f, combines the 32-bit R block value and the 48-bit subkey in the following
way. First, the 32 bits in the R block are expanded to 48 bits by an expansion function (E); the
extra 16 bits are found by repeating the bits in 16 predefined positions. The 48-bit expanded R-
block is then ORed with the 48-bit subkey. The result is a 48-bit value that is then divided into
eight 6-bit blocks. These are fed as input into 8 selection (S) boxes, denoted S1,...,S8. Each 6-bit
input yields a 4-bit output using a table lookup based on the 64 possible inputs; this results in a 32-
bit output from the S-box. The 32 bits are then rearranged by a permutation function (P), producing
the results from the cipher function.
6. The results from the final DES round — i.e., L16 and R16 — are recombined into a 64-bit value and
fed into an inverse initial permutation (IP-1). At this step, the bits are rearranged into their original
positions, so that the 58th, 50th, and 42nd bits, for example, are moved back into the 1st, 2nd, and
3rd positions, respectively. The output from IP-1 is the 64-bit ciphertext block.
Remember Moore's Law: computer power doubles every 18 months. Given that increase in power, a
key that could withstand a brute-force guessing attack in 1975 could hardly be expected to withstand
the same attack a quarter century later.
DES is even more vulnerable to a brute-force attack because it is often used to encrypt words, meaning
that the entropy of the 64-bit block is, effectively, greatly reduced. That is, if we are encrypting
random bit streams, then a given byte might contain any one of 28 (256) possible values and the entire
64-bit block has 264, or about 18.5 quintillion, possible values. If we are encrypting words, however,
we are most likely to find a limited set of bit patterns; perhaps 70 or so if we account for upper and
lower case letters, the numbers, space, and some punctuation. This means that only about ¼ of the bit
combinations of a given byte are likely to occur.
Despite this criticism, the U.S. government insisted throughout the mid-1990s that 56-bit DES was
secure and virtually unbreakable if appropriate precautions were taken. In response, RSA Laboratories
sponsored a series of cryptographic challenges to prove that DES was no longer appropriate for use.
DES Challenge I was launched in March 1997. It was completed in 84 days by R. Verser in a
collaborative effort using thousands of computers on the Internet.
The first DES II challenge lasted 40 days in early 1998. This problem was solved by distributed.net, a
worldwide distributed computing network using the spare CPU cycles of computers around the
Internet (participants in distributed.net's activities load a client program that runs in the background,
conceptually similar to the SETI @Home "Search for Extraterrestrial Intelligence" project). The
distributed.net systems were checking 28 billion keys per second by the end of the project.
The second DES II challenge lasted less than 3 days. On July 17, 1998, the Electronic Frontier
Foundation (EFF) announced the construction of hardware that could brute-force a DES key in an
average of 4.5 days. Called Deep Crack, the device could check 90 billion keys per second and cost
only about $220,000 including design (it was erroneously and widely reported that subsequent devices
could be built for as little as $50,000). Since the design is scalable, this suggests that an organization
could build a DES cracker that could break 56-bit keys in an average of a day for as little as
$1,000,000.
The DES III challenge, launched in January 1999, was broken is less than a day by the combined
efforts of Deep Crack and distributed.net. This is widely considered to have been the final nail in
DES's coffin.
The Deep Crack algorithm is actually quite interesting. The general approach that the DES Cracker
Project took was not to break the algorithm mathematically but instead to launch a brute-force attack
by guessing every possible key. A 56-bit key yields 256, or about 72 quadrillion, possible values. So the
DES cracker team looked for any shortcuts they could find!
First, they assumed that some recognizable plaintext would appear in the decrypted string even though
they didn't have a specific known plaintext block.
They then applied all 256 possible key values to the 64-bit block (I don't mean to make this sound
simple!). The system checked to see if the decrypted value of the block was "interesting," which they
defined as bytes containing one of the alphanumeric characters, space, or some punctuation. Since the
likelihood of a single byte being "interesting" is about ¼, then the likelihood of the entire 8-byte stream
being "interesting" is about ¼8, or 1/65536 (½16). This dropped the number of possible keys that might
yield positive results to about 240, or about a trillion.
They then made the assumption that an "interesting" 8-byte block would be followed by another
"interesting" block. So, if the first block of ciphertext decrypted to something interesting, they
decrypted the next block; otherwise, they abandoned this key. Only if the second block was also
"interesting" did they examine the key closer. Looking for 16 consecutive bytes that were "interesting"
meant that only 224, or 16 million, keys needed to be examined further. This further examination was
primarily to see if the text made any sense. Note that possible "interesting" blocks might be
1hJ5&aB7 or DEPOSITS; the latter is more likely to produce a better result. And even a slow laptop
today can search through lists of only a few million items in a relatively short period of time.
It is well beyond the scope of this paper to discuss other forms of breaking DES and other codes.
Nevertheless, it is worth mentioning a couple of forms of cryptanalysis that have been shown to be
effective against DES. Differential cryptanalysis, invented in 1990 by E. Biham and A. Shamir (of
RSA fame), is a chosen-plaintext attack. By selecting pairs of plaintext with particular differences, the
cryptanalyst examines the differences in the resultant ciphertext pairs. Linear plaintext, invented by M.
Matsui, uses a linear approximation to analyze the actions of a block cipher (including DES). Both of
these attacks can be more efficient than brute force.
In the early 1990s, there was a proposal to increase the security of DES by effectively increasing the
key length by using multiple keys with multiple passes. But for this scheme to work, it had to first be
shown that the DES function is not a group, as defined in mathematics.
If DES were a group, it wouldn't matter how many keys and passes we applied to some plaintext; we
could always find a single 56-bit key that would provide the same result. As it happens, DES was
proven to not be a group so that as we apply additional keys and passes, the effective key length
increases.
But there's an interesting attack that can be launched against this "Double-DES" scheme. First, notice
that the applications of the formula above can be thought of with the following individual steps (where
C' and P' are intermediate results):
C' = EY1(P) and C = EY2(C')
P' = DY2(C) and P = DY1(P')
Unfortunately, C'=P'. That leaves us vulnerable to a simple known plaintext attack (sometimes called
"Meet-in-the-middle") where the attacker knows some plaintext (P) and its matching ciphertext (C). To
obtain C', the attacker needs to try all 256 possible values of Y1 applied to P; to obtain P', the attacker
needs to try all 256 possible values of Y2 applied to C. Since C'=P', the attacker knows when a match
has been achieved — after only 256 + 256 = 257 key searches, only twice the work of brute-forcing DES.
So "Double-DES" won't work.
3DES, which is not susceptible to a meet-in-the-middle attack, employs three DES passes and one,
two, or three keys called K1, K2, and K3. Generation of the ciphertext (C) from a block of plaintext
(P) is accomplished by:
Where EK(P) and DK(P) represent DES encryption and decryption, respectively, of some plaintext P
using DES key K. (For obvious reasons, this is sometimes referred to as an encrypt-decrypt-encrypt
mode operation.)
The use of three, independent 56-bit keys provides 3DES with an effective key length of 168 bits. The
specification also defines use of two keys where, in the operations above, K3 = K1; this provides an
effective key length of 112 bits. Finally, a third keying option is to use a single key, so that K3 = K2 =
K1 (in this case, the effective key length is 56 bits and 3DES applied to some plaintext, P, will yield
the same ciphertext, C, as normal DES would with that same key). Given the relatively low cost of key
storage and the modest increase in processing due to the use of longer keys, the best recommended
practices are that 3DES be employed with three keys.
In DESX, the plaintext input is XORed with 64 additional key bits prior to encryption and the output is
likewise XORed with the 64 key bits.
By adding just two XOR operations, DESX has an effective keylength of 120 bits against an
exhaustive key-search attack.
As it happens, DESX is no more immune to other types of more sophisticated attacks, such as
differential or linear cryptanalysis, but brute-force is the primary attack vector on DES.
Shift of 25 bit
3. From the previous shift left, we obtain a second set of 8 SubKeys (128 bits). Thus a 256 bit key is
obtained (composed from 16 subkeys):
16 16 16 16 16 16 16 16
16 16 16 16 16 16 16 16
4. We repeat the shift left operation on each last set of 8 subkeys obtained. The loop should stop after
the composition of 52 subkeys:
16 16 16 16 16 16 16 16
16 16 16 16 16 16 16 16
16 16 16 16 16 16 16 16
16 16 16 16 16 16 16 16
16 16 16 16 16 16 16 16
16 16 16 16 16 16 16 16
16 16 16 16 16 16 16 16
16 16 16 16
5. We have now: 52 sub-keys of 16 bits each, and a plaintext composed of 64 bits blocks (Composed
of 4 sub-blocks with 16 bits length each):
16 16 16 16
P1 P2 P3 P4
6. The functions used to computer the ciphertext are: XOR, + (modulo 216), and * (modulo 216+1):
Keys
16 16
S1 S52
16 16 16 16
P1 P2 P3 P4
7. For each block composed of 4 subblocks (P1,P2,P3,P4) of 16 bits length, we repeat the following
computations:
Keys
16 16
Inputs nd
S1 2 Round S52
d11 * s7 Æ d15
d13 + s8 Æ d16 d22 * s12 Æ d23
(1)
d12 + s9 Æ d17 (4) d21 + d23 Æ d24
d14 * s10 Æ d18
d11 XOR d23 Æ d25
d11 XOR d12 Æ d19 (5) d13 XOR d23 Æ d26
(2) d13 XOR d14 Æ d20 d12 XOR d24 Æ d27
d14 XOR d24 Æ d28
(3) d19 * s11 Æ d21
d20 + d21 Æ d22
Outputs
Text Block (64 bits)
16 16 16 16
P1 P2 P3 P4
Inputs
s13, s14, s15, s16, s17, s18
Keys
16 bits 16 bits
th
S1 4 Round S52
Keys
16 16
th
S1 6 Round S52
Keys
16 16
th
S1 8 Round S52
e1 * s49 Æ c1 16
e2 * s50 Æ c2 16 CipherText
Block
e3 * s51 Æ c3 16
e4 * s52 Æ c4 16
Modern PKC was first described publicly by Stanford University professor Martin Hellman and
graduate student Whitfield Diffie in 1976. Their paper described a two-key crypto system in which two
parties could engage in a secure communication over a non-secure communications channel without
having to share a secret key.
PKC depends upon the existence of so-called one-way functions, or mathematical functions that are
easy to compute whereas their inverse function is relatively difficult to compute. Two simple
examples:
• Multiplication vs. factorization: Suppose we have two numbers, 9 and 16, and that we want to
calculate the product; it should take almost no time to calculate the product, 144. Suppose instead
we have a number, 144, and we need to guess which pair of integers are multiplied together to
obtain that number. We will eventually come up with the solution but whereas calculating the
product took milliseconds, factoring will take longer because we first need to find the 8 pair of
integer factors and then determine which one is the correct pair.
• Exponentiation vs. logarithms: Suppose wer want to take the number 3 to the 6th power; again, it is
easy to calculate 36=729. But if we I have the number 729 and we want to guess the two integers
used, x and y so that logx 729 = y, it will be more difficult to have all possible solutions and select
the pair that I used.
The mathematical "trick" in PKC is to find a trap door in the one-way function so that the inverse
calculation becomes easy given knowledge of some item of information.
One key is used to encrypt the plaintext and the other key is used to decrypt the ciphertext. The
important point here is that it does not matter which key is applied first, but that both keys are
required for the process to work.
Because a pair of keys is required, this approach is also called asymmetric cryptography.
In PKC, one of the keys is designated the public key and may be advertised as widely as the owner
wants.
The other key is designated the private key and is never revealed to another party. It is straight forward
to send messages under this scheme.
Suppose Alice wants to send Bob a message. Alice encrypts some information using Bob's public key;
Bob decrypts the ciphertext using his private key.
This method could be also used to prove who sent a message; Alice, for example, could encrypt some
plaintext with her private key; when Bob decrypts using Alice's public key, he knows that Alice sent
the message and Alice cannot deny having sent the message (non-repudiation).
Diffie-Hellman:
• After the RSA algorithm was published, Diffie and Hellman came up with their own algorithm.
• D-H is used for secret-key key exchange only, and not for authentication or digital signatures.
ElGamal:
• Designed by Taher Elgamal, a PKC system similar to Diffie-Hellman and used for key exchange.
• Although we have categorized PKC as a two-key system, that has been merely for convenience.
• The real criteria for a PKC scheme is that it allows two parties to exchange a secret even though
the communication with the shared secret might be overheard.
o There seems to be no question that Diffie and Hellman were first to publish; their method is
described in the classic paper, "New Directions in Cryptography," published in the November
1976 issue of IEEE Transactions on Information Theory.
o Diffie-Hellman uses the idea that finding logarithms is relatively harder than exponentiation.
• Rivest, Shamir, and Adleman described an implementation that extended this idea in their paper "A
Method for Obtaining Digital Signatures and Public-Key Cryptosystems," published in the
February 1978 issue of the Communications of the ACM (CACM).
• Their method is based upon the relative ease of finding the product of two large prime numbers
compared to finding the prime factors of a large number.
Deffie- Hellman
Alice... Bob...
Alice... Bob...
The first published public-key crypto algorithm was Diffie-Hellman. The mathematical "trick" of this
scheme is that it is relatively easy to compute exponents compared to computing discrete logarithms.
Diffie-Hellman allows two parties — the ubiquitous Alice and Bob — to generate a secret key; they
need to exchange some information over an unsecure communications channel to perform the
calculation but an eavesdropper cannot determine the shared key based upon this information.
• There is actually another constraint on g, specifically that it must be primitive with respect to n.
• Primitive is a definition that is a little beyond the scope of our discussion but basically g is
primitive to n if we can find integers i so that gi = j mod n for all values of j from 1 to n-1.
• Anyway, either Alice or Bob selects n and g; they then tell the other party what the values are.
Alice and Bob then work independently:
• Note that x and y are kept secret while X and Y are openly shared; these are the private and public
keys, respectively. Based on their own private key and the public key learned from the other party,
Alice and Bob have computed their secret keys, KA and KB, respectively, which are equal to gxy
mod n.
• Perhaps a small example will help here. Although Alice and Bob will really choose large values for
n and g, I will use small values for example only; let's use n=7 and g=3.
• In this example, then, Alice and Bob will both find the secret key 1 which is, indeed, 36 mod 7. If
an eavesdropper (Mallory) was listening in on the information exchange between Alice and Bob,
he would learn g, n, X, and Y which is a lot of information but insufficient to compromise the key;
as long as x and y remain unknown, K is safe. As said above, calculating X as gx is a lot easier than
finding x as logg X!
RSA
Unlike Diffie-Hellman, RSA can be used for key exchange as well as digital signatures and the
encryption of small blocks of data.
Today, RSA is primary used to encrypt the session key used for secret key encryption (message
integrity) or the message's hash value (digital signature). RSA's mathematical hardness comes from the
ease in calculating large numbers and the difficulty in finding the prime factors of those large numbers.
Although employed with numbers using hundreds of digits, the math behind RSA is relatively straight-
forward.
To create an RSA public/private key pair, here are the basic steps:
1. Choose two prime numbers, p and q.
2. From these numbers you can calculate the modulus, n = pq.
3. Select a third number, e, that is relatively prime to (i.e., it does not divide evenly into) the product
(p-1)(q-1).
4. The number e is the public exponent.
5. Calculate an integer d from the quotient (ed-1)/[(p-1)(q-1)].
6. The number d is the private exponent.
7. The public key is the number pair (n,e).
8. Although these values are publicly known, it is computationally infeasible to determine d from n and
e if p and q are large enough.
Since p and q may be 100 digits (decimal) or more, d and e will be about the same size and n may be
over 200 digits.
Hash Functions
Hash functions, also called message digests and one-way encryption, are algorithms that, in some
sense, use no key. Instead, a fixed-length hash value is computed based upon the plaintext that makes it
impossible for either the contents or length of the plaintext to be recovered.
Hash algorithms are typically used to provide a digital fingerprint of a file's contents often used to
ensure that the file has not been altered by an intruder or virus.
Hash functions are also commonly employed by many operating systems to encrypt passwords. Hash
functions, then, provide a measure of the integrity of a file.
Hash functions are sometimes misunderstood and some sources claim that no two files can have the
same hash value. This is, in fact, not correct. Consider a hash function that provides a 128-bit hash
value. There are, obviously, 2128 possible hash values. But there are a lot more than 2128 possible files.
Therefore, there have to be multiple files — in fact, there have to be an infinite number of files! — that
can have the same 128-bit hash value.
The difficulty is finding two files with the same hash! What is, indeed, very hard to do is to try to
create a file that has a given hash value so as to force a hash value collision — which is the reason that
hash functions are used extensively for information security and computer forensics applications.
Alas, researchers in 2004 found that practical collision attacks could be launched on MD5, SHA-1,
and other hash algorithms. At this time, there is no obvious successor to MD5 and SHA-1 that could be
put into use quickly; there are so many products using these hash functions that it could take many
years to flush out all use of 128- and 160-bit hashes.
Variables:
SHA uses 5 variables, presented in hexadecimal as follows:
Padding:
If the size of the message is not a multiple of 512, then the algorithm must complete the message by
adding one 1 and a suite of 0 until the end of an accepted size of the message (multiple of 512).
Functions:
SHA-1 uses 4 loops. In each loop 20 operations are performed. This algorithm uses 80 functions based
on three variables of 32 bits B, C and D and these functions produce words of 32 bits.
Constants
SHA-1 uses constants. These constants are:
• Kt = 5A827999 (t between 0 and 19)
• Kt = 6ED9EBA1 (t between 20 and 39)
• Kt = 8F1BBCDC (t between 40 and 59)
• Kt = CA62C1D6 (t between 60 and 79)
The Algorithm
The algorithm uses 2 buffers of 5 words each (a word is composed of 32 bits), a sequence of 80 words,
and a temporary buffer called TEMP.
• The first buffer is denoted {A, B, C, D, E}.
• The second buffer se denoted {H0, H1, H2, H3, H4}.
• The 80 words are denoted W0 to W79.
• The message is divided into blocs of 512 bits, denoted M1 … Mn.
H0 = 67452301
H1 = EFCDAB89
H2 = 98BADCFE
H3 = 10325476
H4 = C3D2E1F0.
A) /etc/passwd file
root:Jbw6BwE4XoUHo:0:0:root:/root:/bin/bash
carol:FM5ikbQt1K052:502:100:Carol Monaghan:/home/carol:/bin/bash
alex:LqAi7Mdyg/HcQ:503:100:Alex Insley:/home/alex:/bin/bash
gary:FkJXupRyFqY4s:501:100:Gary Kessler:/home/gary:/bin/bash
todd:edGqQUAaGv7g6:506:101:Todd Pritsky:/home/todd:/bin/bash
josh:FiH0ONcjPut1g:505:101:Joshua Kessler:/home/webroot:/bin/bash
root:x:0:0:root:/root:/bin/bash
carol:x:502:100:Carol Monaghan:/home/carol:/bin/bash
alex:x:503:100:Alex Insley:/home/alex:/bin/bash
gary:x:501:100:Gary Kessler:/home/gary:/bin/bash
todd:x:506:101:Todd Pritsky:/home/todd:/bin/bash
josh:x:505:101:Joshua Kessler:/home/webroot:/bin/bash
root:AGFw$1$P4u/uhLK$l2.HP35rlu65WlfCzq:11449:0:99999:7:::
carol:kjHaN%35a8xMM8a/0kMl1?fwtLAM.K&kw.:11449:0:99999:7:::
alex:1$1KKmfTy0a7#3.LL9a8H71lkwn/.hH22a:11449:0:99999:7:::
The password password, for example, might be stored as the hash value (in hexadecimal)
60771b22d73c34bd4a290a79c8b09f18.
Nearly all modern multiuser computer and network operating systems employ passwords at the very
least to protect and authenticate users accessing computer and/or network resources.
But passwords are not typically kept on a host or server in plaintext, but are generally encrypted using
some sort of hash scheme.
Unix/Linux, for example, uses a well-known hash via its crypt() function. Passwords are stored in the
/etc/passwd file; each record in the file contains the username, hashed password, user's individual and
group numbers, user's name, home directory, and shell program; these fields are separated by colons
(:).
Note that each password is stored as a 13-byte string. The first two characters are actually a salt,
randomness added to each password so that if two users have the same password, they will still be
encrypted differently; the salt, in fact, provides a means so that a single password might have 4096
different encryptions. The remaining 11 bytes are the password hash, calculated using DES.
As it happens, the /etc/passwd file is world-readable on Unix systems. This fact, coupled with the weak
encryption of the passwords, resulted in the development of the shadow password system where
passwords are kept in a separate, non-world-readable file used in conjunction with the normal
password file.
When shadow passwords are used, the password entry in /etc/passwd is replaced with a "*" or "x" and
the MD5 hash of the passwords are stored in /etc/shadow along with some other account information
(Figure 5B.2).
Windows NT uses a similar scheme to store passwords in the Security Access Manager (SAM) file. In
the NT case, all passwords are hashed using the MD4 algorithm, resulting in a 128-bit (16-byte) hash
value.
The password password, for example, might be stored as the hash value (in hexadecimal)
60771b22d73c34bd4a290a79c8b09f18.
• Hash functions, are well-suited for ensuring data integrity because any change made to the contents
of a message will result in the receiver calculating a different hash value than the one placed in the
• Secret key cryptography, on the other hand, is ideally suited to encrypting messages. The sender
can generate a session key on a per-message basis to encrypt the message; the receiver, of course,
needs the same session key to decrypt the message.
• Key exchange, of course, is a key application of public-key cryptography (no pun intended).
• Asymmetric schemes can also be used for non-repudiation; if the receiver can obtain the session
key encrypted with the sender's private key, then only this sender could have sent the message.
• Public-key cryptography could, theoretically, also be used to encrypt messages although this is
rarely done because secret-key cryptography operates about 1000 times faster than public-key
cryptography.
A hybrid cryptographic scheme combines all of these functions to form a secure transmission
comprising digital signature and digital envelope. Thus, a digital envelope comprises an encrypted
message and an encrypted session key.
For example:
• Alice uses secret key cryptography to encrypt her message using the session key, which she
Therefore, the writer went on, we should be using 56,000-bit keys today instead of 56-bit keys to
provide adequate protection.
The conclusion was then drawn that because 56,000-bit keys are infeasible (true), we should accept the
fact that we have to live with weak cryptography (false!).
The major error here is that the writer did not take into account that the number of possible key values
double whenever a single bit is added to the key length; thus, a 57-bit key has twice as many values as
a 56-bit key (because 257 is two times 256). In fact, a 66-bit key would have 1024 times the possible
values as a 56-bit key.
But this does bring up the issue, what is the precise significance of key length as it
affects the level of protection?
In cryptography, size does matter. The larger the key, the harder it is to crack a block of encrypted
data. The reason that large keys offer more protection is almost obvious; computers have made it easier
to attack ciphertext by using brute force methods rather than by attacking the mathematics (which are
generally well-known anyway). With a brute force attack, the attacker merely generates every possible
Until the mid-1990s or so, brute force attacks were beyond the capabilities of computers that were
within the budget of the attacker community. Today, however, significant compute power is commonly
available and accessible. General purpose computers such as PCs are already being used for brute force
attacks.
The 1975 DES proposal suggested 56-bit keys; by 1995, a 70-bit key would have been required to
offer equal protection and an 85-bit key will be necessary by 2015.
While a large key is good, a huge key may not always be better. That is, many public-key
cryptosystems use 1024- or 2048-bit keys; expanding the key to 4096 bits probably doesn't add any
protection at this time but it does add significantly to processing time.
The most effective large-number factoring methods today use a mathematical Number Field Sieve to
find a certain number of relationships and then use a matrix operation to solve a linear equation to
produce the two prime factors.
The sieve step actually involves a large number of operations of operations that can be performed in
parallel; solving the linear equation, however, requires a supercomputer.
Indeed, finding the solution to the RSA-140 challenge in February 1999 — factoring a 140-digit (465-
bit) prime number — required 200 computers across the Internet about 4 weeks for the first step and a
Cray computer 100 hours and 810 MB of memory to do the second step.
In early 1999, Shamir (of RSA fame) described a new machine that could increase factorization speed
by 2-3 orders of magnitude.
There still appear to be many engineering details that have to be worked out before such a machine
could be built. Furthermore, the hardware improves the sieve step only; the matrix operation is not
optimized at all by this design and the complexity of this step grows rapidly with key length, both in
terms of processing time and memory requirements. Nevertheless, this plan conceptually puts 512-bit
keys within reach of being factored. Although most PKC schemes allow keys that are 1024 bits and
longer, Shamir claims that 512-bit RSA keys "protect 95% of today's E-commerce on the Internet."
Summary:
This section describes different trust models and many secure protocols used for one of the biggest and
fastest growing applications of cryptography today, though, is electronic commerce (e-commerce), a
term that itself begs for a formal definition.
The section describes also enhanced configuration of a corporate network using VPN which is based
on many theoretical and practical elements of cryptography.
Objectives:
Upon completion of this part, the student will be able to understand:
• Secure Protocols
• Trust Models
• VPN
Secure use of cryptography requires trust. While secret key cryptography can ensure message
confidentiality and hash codes can ensure integrity, none of this works without trust.
In SKC, Alice and Bob had to share a secret key. PKC solved the secret distribution problem, but how
does Alice really know that Bob is who he says he is? Just because Bob has a public and private key,
and purports to be "Bob," how does Alice know that a malicious person (Mallory) is not pretending to
be Bob?
There are a number of trust models employed by various cryptographic schemes. We will explore three
of them:
• The web of trust employed by Pretty Good Privacy (PGP) users, who hold their own set of trusted
public keys.
• Kerberos, a secret key distribution scheme using a trusted third party.
• Certificates, which allow a set of trusted third parties to authenticate each other and, by
implication, each other's users.
Each of these trust models differs in complexity, general applicability, scope, and scalability.
A PGP user maintains a local keyring of all their known and trusted public keys.
The user makes his determination about the trustworthiness of a key using what is called a "web of
trust."
PGP makes no statement and has no protocol about how one user determines whether they trust
another user or not. In any case, encryption and signatures based on public keys can only be used when
the appropriate public key is on the user's keyring.
Kerberos
Definition
Kerberos is a commonly used authentication scheme on the Internet. Developed by MIT's Project
Athena, Kerberos is named for the three-headed dog that, according to Greek mythology, guards the
entrance of Hades (rather than the exit, for some reason!).
Kerberos employs client/server architecture and provides user-to-server authentication rather than host-
to-host authentication. In this model, security and authentication will be based on secret key
technology where every host on the network has its own secret key.
It would clearly be unmanageable if every host had to know the keys of all other hosts so a secure,
trusted host somewhere on the network, known as a Key Distribution Center (KDC), knows the keys
for all of the hosts (or at least some of the hosts within a portion of the network, called a realm). In this
way, when a new node is brought online, only the KDC and the new node need to be configured with
the node's key; keys can be distributed physically or by some other secure means.
The current shipping version of this protocol is Kerberos V5 (described in RFC 1510), although
Kerberos V4 still exists and is seeing some use. While the details of their operation, functional
The steps in establishing an authenticated session between an application client and the application
server are:
1. The Kerberos client software establishes a connection with the Kerberos server's AS function. The
AS first authenticates that the client is who it purports to be. The AS then provides the client with a
secret key for this login session (the TGS session key) and a ticket-granting ticket (TGT), which
gives the client permission to talk to the TGS. The ticket has a finite lifetime so that the
authentication process is repeated periodically.
2. The client now communicates with the TGS to obtain the Application Server's key so that it (the
client) can establish a connection to the service it wants. The client supplies the TGS with the TGS
session key and TGT; the TGS responds with an application session key (ASK) and an encrypted
form of the Application Server's secret key; this secret key is never sent on the network in any
other form.
3. The client has now authenticated itself and can prove its identity to the Application Server by
supplying the Kerberos ticket, application session key, and encrypted Application Server secret
key. The Application Server responds with similarly encrypted information to authenticate itself to
the client. At this point, the client can initiate the intended service requests (e.g., Telnet, FTP,
HTTP, or e-commerce transaction session establishment).
Principle:
Certificates and Certificate Authorities (CA) are necessary for widespread use of cryptography for e-
commerce applications.
While a combination of secret and public key cryptography can solve the business issues discussed
above, crypto cannot alone address the trust issues that must exist between a customer and vendor in
the very fluid, very dynamic e-commerce relationship.
• How, for example, does one site obtain another party's public key?
• How does a recipient determine if a public key really belongs to the sender?
• How does the recipient know that the sender is using their public key for a legitimate purpose for
which they are authorized?
• When does a public key expire? How can a key be revoked in case of compromise or loss?
Example:
The basic concept of a certificate is one that is familiar to all of us. A driver's license, credit card, or
SCUBA certification, for example, identify us to others, indicate something that we are authorized to
do, have an expiration date, and identify the authority that granted the certificate.
When he drives outside of its US state, the other jurisdictions throughout the U.S. recognize the
authority of this particular state to issue this "certificate" and they trust the information it contains.
Now, when the driver leave the U.S., everything changes.
When he drives in Canada and many other countries, they will accept not the his state license, per se,
but any license issued in the U.S.;
For purposes of electronic transactions, certificates are digital documents. The specific functions of the
certificate include:
• Establish identity: Associate, or bind, a public key to an individual, organization, corporate
position, or other entity.
• Assign authority: Establish what actions the holder may or may not take based upon this certificate.
• Secure confidential information (e.g., encrypting the session's symmetric key for data
confidentiality).
Typically, a certificate contains a public key, a name, an expiration date, the name of the authority that
issued the certificate (and, therefore, is vouching for the identity of the user), a serial number, any
pertinent policies describing how the certificate was issued and/or how the certificate may be used, the
digital signature of the certificate issuer, and perhaps other information.
A sample abbreviated certificate is shown in the following. This is a typical certificate found in a
browser. When the browser makes a connection to a secure Web site, the Web server sends its public
key certificate to the browser. The browser then checks the certificate's signature against the public key
that it has stored; if there is a match, the certificate is taken as valid and the Web site verified by this
certificate is considered to be "trusted."
Standards
The most widely accepted certificate format is the one defined in International Telecommunication
Union Telecommunication Standardization Sector (ITU-T) Recommendation X.509.
Most certificates today comply with X.509 Version 3 and contain the information listed in Table 2.
Certificate Authority
Certificate authorities are the repositories for public-keys and can be any agency that issues
certificates.
A company, for example, may issue certificates to its employees, a college/university to its students, a
store to its customers, an Internet service provider to its users, or a government to its constituents.
When a sender needs an intended receiver's public key, the sender must get that key from the receiver's
CA. That scheme is straight-forward if the sender and receiver have certificates issued by the same
CA.
Some CAs will be trusted because they are known to be reputable, such as the CAs operated by AT&T,
BBN, Canada Post Corp., CommerceNe. CAs, in turn, form trust relationships with other CAs. Thus, if
a user queries a foreign CA for information, the user may ask to see a list of CAs that establishes a
"chain of trust" back to the user.
PGP 5.x (formerly known as "PGP 3") uses Diffie-Hellman/DSS for key management and digital
signatures; IDEA, CAST, or 3DES for message encryption; and MD5 or SHA for computing the
Composition:
PGP can be used to sign or encrypt e-mail messages with the mere click of the mouse. Depending upon
the version of PGP, the software uses SHA or MD5 for calculating the message hash; CAST, Triple-
DES, or IDEA for encryption; and RSA or DSS/Diffie-Hellman for key exchange and digital
signatures.
Signed Messages
Hi Carol.
/kess
iQA/AwUBNFUdO5WOcz5SFtuEEQJx/ACaAgR97+vvDU6XWELV/GANjAAgBtUAnjG3
Sdfw2JgmZIOLNjFe7jP0Y8/M
=jUAU
-----END PGP SIGNATURE-----
A PGP signed message. The sender uses their private key; at the destination, the
sender's e-mail address yields the public key from the receiver's keyring.
The slide shows PGP signed message. This message will not be kept secret from an eavesdropper, but
a recipient can be assured that the message has not been altered from what the sender transmitted.
In this instance, the sender signs the message using their own private key. The receiver uses the
sender's public key to verify the signature; the public key is taken from the receiver's keyring based on
the sender's e-mail address. Note that the signature process does not work unless the sender's public
key is on the receiver's keyring.
Encrypted Messages
qANQR1DBwU4D/TlT68XXuiUQCADfj2o4b4aFYBcWumA7hR1Wvz9rbv2BR6WbEUsy
ZBIEFtjyqCd96qF38sp9IQiJIKlNaZfx2GLRWikPZwchUXxB+AA5+lqsG/ELBvRa
c9XefaYpbbAZ6z6LkOQ+eE0XASe7aEEPfdxvZZT37dVyiyxuBBRYNLN8Bphdr2zv
A PGP encrypted message. The receiver's e-mail address is the pointer to the public
key in the sender's keyring. At the destination side, the receiver uses their own private
key.
Hi Gary,
Carol
The slide shows a PGP encrypted message (PGP compresses the file, where practical, prior to
encryption because encrypted files lose their randomness and, therefore, cannot be compressed).
In this case, public key methods are used to exchange the session key for the actual message
encryption using secret-key cryptography. In this case, the receiver's e-mail address is the pointer to
the public key in the sender's keyring; in fact, the same message can be sent to multiple recipients and
the message will not be significantly longer since all that needs to be added is the session key
encrypted by each receiver's private key.
When the message is received, the recipient must use their private key to extract the session secret key
to successfully decrypt the message.
Definition
SSL is developed by Netscape Communications to provide application-independent security and
privacy over the Internet. SSL is designed so that protocols such as HTTP, FTP (File Transfer
Protocol), and Telnet can operate over it transparently.
SSL allows both server authentication (mandatory) and client authentication (optional). RSA is used
during negotiation to exchange keys and identify the actual cryptographic algorithm (DES, IDEA,
1. URLs specifying the protocol https:// are directed to HTTP servers secured using SSL/TLS. The
client will automatically try to make a TCP connection to the server at port 443. The client initiates
the secure connection by sending a ClientHello message containing a Session identifier,
highest SSL version number supported by the client, and lists of supported crypto and compression
schemes (in preference order).
2. The server examines the Session ID and if it is still in the server's cache, it will attempt to re-
establish a previous session with this client. If the Session ID is not recognized, the server will
continue with the handshake to establish a secure session by responding with a ServerHello
message. The ServerHello repeats the Session ID, indicates the SSL version to use for this
connection (which will be the highest SSL version supported by the server and client), and
specifies which encryption method and compression method to be used for this connection.
3. There are a number of other optional messages that the server might send, including:
a. Certificate, which carries the server's X.509 public key certificate (and, generally, the
server's public key). This message will always be sent unless the client and server have already
agreed upon some form of anonymous key exchange. (This message is normally sent.)
b. ServerKeyExchange, which will carry a premaster secret when the server's
Certificate message does not contain enough data for this purpose; used in some key
exchange schemes.
c. CertificateRequest, used to request the client's certificate in those scenarios where
client authentication is performed.
d. ServerHelloDone, indicating that the server has completed its portion of the key exchange
handshake.
5. TLS includes the change cipher spec protocol to indicate changes in the encryption method. This
protocol contains a single message, ChangeCipherSpec, which is encrypted and compressed
using the current (rather than the new) encryption and compression schemes. The
ChangeCipherSpec message is sent by both client and server to notify the other station that all
following information will employ the newly negotiated cipher spec and keys.
6. The Finished message is sent after a ChangeCipherSpec message to confirm that the key
exchange and authentication processes were successful.
7. At this point, both client and server can exchange application data using the session encryption and
compression schemes.
a. Side Note: It would probably be helpful to make some mention of SSL as it is used today.
Most of us have used SSL to engage in a secure, private transaction with some vendor. The
steps are something like this. During the SSL exchange with the vendor's secure server, the
server sends its certificate to our client software. The certificate includes the vendor's public
key and a signature from the CA that issued the vendor's certificate. Our browser software is
shipped with the major CAs' certificates which contains their public key; in that way we
authenticate the server. Note that the server does not use a certificate to authenticate us!
Instead, we are generally authenticated when we provide our credit card number; the server
checks to see if the card purchase will be authorized by the credit card company and, if so,
considers us valid and authenticated! While bidirectional authentication is certainly supported
by SSL, this form of asymmetric authentication is more commonly employed today since most
users don't have certificates.
b. Microsoft's Server Gated Cryptography (SGC) protocol is another extension to SSL/TLS. For
several decades, it has been illegal to generally export products from the U.S. that employed
secret-key cryptography with keys longer than 40 bits. For that reason, SSL/TLS has an
exportable version with weak (40-bit) keys and a domestic (North American) version with
strong (128-bit) keys. Within the last several years, however, use of strong SKC has been
approved for the worldwide financial community. SGC is an extension to SSL that allows
financial institutions using Windows NT servers to employ strong cryptography. Both the client
and server must implement SGC and the bank must have a valid SGC certificate. During the
initial handshake, the server will indicate support of SGC and supply its SGC certificate; if the
client wishes to use SGC and validates the server's SGC certificate, the session can employ
128-bit RC2, 128-bit RC4, 56-bit DES, or 168-bit 3DES. Microsoft supports SGC in the
Windows 95/98/NT versions of Internet Explorer 4.0, Internet Information Server (IIS) 4.0, and
Money 98.
VPN
1- Principle
The world has changed a lot in the last couple of decades. Instead of simply dealing with local or
regional concerns, many businesses now have to think about global markets and logistics. Many
companies have facilities spread out across the country or around the world, and there is one thing that
all of them need: A way to maintain fast, secure and reliable communications wherever their offices
are.
Until fairly recently, this has meant the use of leased lines to maintain a wide area network (WAN).
Leased lines, ranging from ISDN (integrated services digital network, 128 Kbps) to OC3 (Optical
Carrier-3, 155 Mbps) fiber, provided a company with a way to expand its private network beyond its
immediate geographic area.
A WAN had obvious advantages over a public network like the Internet when it came to reliability,
performance and security. But maintaining a WAN, particularly when using leased lines, can become
quite expensive and often rises in cost as the distance between the offices increases.
4- Types of VPN
There are three types of VPN. In the next couple of sections, we'll describe them in detail.
Remote-Access VPN
There are two common types of VPN. Remote-access, also called a virtual private dial-up network
(VPDN), is a user-to-LAN connection used by a company that has employees who need to connect to
the private network from various remote locations. Typically, a corporation that wishes to set up a
large remote-access VPN will outsource to an enterprise service provider (ESP). The ESP sets up a
network access server (NAS) and provides the remote users with desktop client software for their
computers. The telecommuters can then dial a toll-free number to reach the NAS and use their VPN
client software to access the corporate network.
A good example of a company that needs a remote-access VPN would be a large firm with hundreds of
sales people in the field. Remote-access VPNs permit secure, encrypted connections between a
Site-to-Site VPN
Through the use of dedicated equipment and large-scale encryption, a company can connect multiple
fixed sites over a public network such as the Internet. Site-to-site VPNs can be one of two types:
• Intranet-based - If a company has one or more remote locations that they wish to join in a
single private network, they can create an intranet VPN to connect LAN to LAN.
• Extranet-based - When a company has a close relationship with another company (for
example, a partner, supplier or customer), they can build an extranet VPN that connects LAN to
LAN, and that allows all of the various companies to work in a shared environment.
5- VPN Security
A well-designed VPN uses several methods for keeping your connection and data secure:
• Firewalls
• Encryption
• IPSec
• AAA Server
6- VPN Technologies
Depending on the type of VPN (remote-access or site-to-site), you will need to put in place certain
components to build your VPN. These might include:
• Desktop software client for each remote user
• Dedicated hardware such as a VPN concentrator or secure PIX firewall
• Dedicated VPN server for dial-up services
• NAS (network access server) used by service provider for remote-user VPN access
• VPN network and policy-management center
Because there is no widely accepted standard for implementing a VPN, many companies have
developed turn-key solutions on their own. In the next few sections, we'll discuss some of the solutions
offered by Cisco, one of the most prevelant networking technology companies.
VPN Concentrator
Incorporating the most advanced encryption and authentication techniques available, Cisco VPN
concentrators are built specifically for creating a remote-access VPN. They provide high availability,
high performance and scalability and include components, called scalable encryption processing
(SEP) modules, that enable users to easily increase capacity and throughput. The concentrators are
offered in models suitable for everything from small businesses with up to 100 remote-access users to
large organizations with up to 10,000 simultaneous remote users.
VPN-Optimized Router
Cisco's VPN-optimized routers provide scalability, routing, security and QoS (quality of service).
Based on the Cisco IOS (Internet Operating System) software, there is a router suitable for every
situation, from small-office/home-office (SOHO) access through central-site VPN aggregation, to
large-scale enterprise needs.
7- Tunneling
Most VPNs rely on tunneling to create a private network that reaches across the Internet. Essentially,
tunneling is the process of placing an entire packet within another packet and sending it over a
network. The protocol of the outer packet is understood by the network and both points, called tunnel
interfaces, where the packet enters and exits the network.
Tunneling has amazing implications for VPNs. For example, you can place a packet that uses a
protocol not supported on the Internet (such as NetBeui) inside an IP packet and send it safely over the
Internet. Or you could put a packet that uses a private (non-routable) IP address inside a packet that