1448 lines
56 KiB
Plaintext
1448 lines
56 KiB
Plaintext
|
||
NCSC-TG-014-89
|
||
Library No. S-231,308
|
||
|
||
|
||
|
||
FOREWORD
|
||
|
||
|
||
|
||
|
||
|
||
This publication, Guidelines for Formal Verification Systems, is issued by
|
||
the National Computer Security Center (NCSC) under the authority and in
|
||
accordance with Department of Defense (DoD) Directive 5215.1, "Computer
|
||
Security Evaluation Center." The guidelines defined in this document are
|
||
intended for vendors building formal specification and verification
|
||
systems that trusted system developers may use in satisfying the
|
||
requirements of the Department of Defense Trusted Computer System
|
||
Evaluation Criteria (TCSEC), DoD 5200.28-STD, and the Trusted Network
|
||
Interpretation of the TCSEC.
|
||
|
||
As the Director, National Computer Security Center, I invite your
|
||
recommendations for revision to this technical guideline. Address all
|
||
proposals for revision through appropriate channels to the National Computer
|
||
Security Center, 9800 Savage Road, Fort George G. Meade, MD, 20755-6000,
|
||
Attention: Chief, Technical Guidelines Division.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Patrick R. Gallagher, Jr.
|
||
|
||
1 April 1989
|
||
Director
|
||
National Computer Security Center
|
||
|
||
|
||
|
||
|
||
ACKNOWLEDGMENTS
|
||
|
||
|
||
|
||
|
||
The National Computer Security Center expresses appreciation to Barbara
|
||
Mayer and Monica McGill Lu as principal authors and project managers of
|
||
this document. We recognize their contribution to the technical content
|
||
and presentation of this publication.
|
||
|
||
We thank the many individuals who contributed to the concept, development,
|
||
and review of this document. In particular, we acknowledge: Karen
|
||
Ambrosi, Tom Ambrosi, Terry Benzel, David Gibson, Sandra Goldston, Dale
|
||
Johnson, Richard Kemmerer, Carl Landwehr, Carol Lane, John McLean,
|
||
Jonathan Millen, Andrew Moore, Michele Pittelli, Marvin Schaefer, Michael
|
||
Sebring, Jeffrey Thomas, Tom Vander-Vlis, Alan Whitehurst, James Williams,
|
||
Kimberly Wilson, and Mark Woodcock. Additionally, we thank the
|
||
verification system developers and the rest of the verification community
|
||
who helped develop this document.
|
||
|
||
|
||
|
||
TABLE OF CONTENTS
|
||
|
||
|
||
FOREWORD i
|
||
ACKNOWLEDGMENTS ii
|
||
PREFACE iv
|
||
1. INTRODUCTION 1
|
||
1.1 PURPOSE 1
|
||
1.2 BACKGROUND 1
|
||
1.3 SCOPE 2
|
||
2. EVALUATION APPROACH 3
|
||
2.1 EVALUATION OF NEW SYSTEMS 3
|
||
2.2 REEVALUATION FOR ENDORSEMENT 5
|
||
2.3 REEVALUATION FOR REMOVAL 6
|
||
2.4 BETA VERSIONS 7
|
||
3. METHODOLOGY AND SYSTEM SPECIFICATION 8
|
||
3.1 METHODOLOGY 8
|
||
3.2 FEATURES 9
|
||
3.2.1 Specification Language 9
|
||
3.2.2 Specification Processing 10
|
||
3.2.3 Reasoning Mechanism 11
|
||
3.3 ASSURANCE, SOUNDNESS, AND ROBUSTNESS 12
|
||
3.4 DOCUMENTATION 14
|
||
4. IMPLEMENTATION AND OTHER SUPPORT FACTORS 15
|
||
4.1 FEATURES 15
|
||
4.1.1 User Interface 15
|
||
4.1.2 Hardware Support 16
|
||
4.2 ASSURANCE 17
|
||
4.2.1 Configuration Management 17
|
||
4.2.2 Support and Maintenance 19
|
||
4.2.3 Testing 19
|
||
4.3 DOCUMENTATION 19
|
||
5. FUTURE DIRECTIONS 23
|
||
APPENDIX A: CONFIGURATION MANAGEMENT 25
|
||
GLOSSARY 28
|
||
BIBLIOGRAPHY 35
|
||
|
||
|
||
PREFACE
|
||
|
||
|
||
|
||
|
||
One of the goals of the NCSC is to encourage the development of
|
||
production-quality verification systems. This guideline was developed as
|
||
part of the Technical Guideline Program specifically to support this goal.
|
||
|
||
Although there are manual methodologies for performing formal
|
||
specification and verification, this guideline addresses verification
|
||
systems that provide automated support.
|
||
|
||
Throughout the document, the term developer is used to describe the
|
||
developer of the verification system. The term vendor is used to describe
|
||
the individual(s) who are providing support for the tool. These
|
||
individuals may or may not be the same for a particular tool.
|
||
|
||
|
||
|
||
|
||
1. INTRODUCTION
|
||
|
||
|
||
The principal goal of the National Computer Security Center (NCSC) is to
|
||
encourage the widespread availability of trusted computer systems. In
|
||
support of this goal the DoD Trusted Computer System Evaluation Criteria
|
||
(TCSEC) was created, against which computer systems could be evaluated.
|
||
The TCSEC was originally published on 15 August 1983 as CSC-STD-001-83.
|
||
In December 1985 the DoD modified and adopted the TCSEC as a DoD Standard,
|
||
DoD 5200.28-STD. [1]
|
||
|
||
|
||
1.1 PURPOSE
|
||
|
||
This document explains the requirements for formal verification systems
|
||
that are candidates for the NCSC's Endorsed Tools List (ETL). [5] This
|
||
document is primarily intended for developers of verification systems to
|
||
use in the development of production-quality formal verification systems.
|
||
It explains the requirements and the process used to evaluate formal
|
||
verification systems submitted to the NCSC for endorsement.
|
||
|
||
|
||
1.2 BACKGROUND
|
||
|
||
The requirement for NCSC endorsement of verification systems is stated in
|
||
the TCSEC and the Trusted Network Interpretation of the TCSEC (TNI). [4]
|
||
The TCSEC and TNI are the standards used for evaluating security controls
|
||
built into automated information and network systems, respectively. The
|
||
TCSEC and TNI classify levels of trust for computer and network systems by
|
||
defining divisions and classes within divisions. Currently, the most
|
||
trusted class defined is A1, Verified Design, which requires formal design
|
||
specification and formal verification. As stated in the TCSEC and TNI, ".
|
||
. . 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." [1]
|
||
|
||
Guidelines were not available when the NCSC first considered endorsing
|
||
verification systems. The NCSC based its initial endorsement of
|
||
verification systems on support and maintenance of the system, acceptance
|
||
within the verification community, and stability of the system.
|
||
|
||
1.3 SCOPE
|
||
|
||
Any verification system that has the capability for formally specifying
|
||
and verifying the design of a trusted system to meet the TCSEC and TNI A1
|
||
Design Specification and Verification requirement can be considered for
|
||
placement on the ETL. Although verification systems that have
|
||
capabilities beyond design verification are highly encouraged by the NCSC,
|
||
this guideline focuses mainly on those aspects of verification systems
|
||
that are sufficient for the design of candidate A1 systems.
|
||
|
||
The requirements described in this document are the primary consideration
|
||
in the endorsement process. They are categorized as either methodology
|
||
and system specification or implementation and other support factors.
|
||
Within each category are requirements for features, assurances, and
|
||
documentation.
|
||
|
||
The requirements cover those characteristics that can and should exist in
|
||
current verification technology for production-quality systems. A
|
||
production-quality verification system is one that is sound,
|
||
user-friendly, efficient, robust, well documented, maintainable, developed
|
||
with good software engineering techniques, and available on a variety of
|
||
hardware. [2] The NCSC's goal is to elevate the current state of
|
||
verification technology to production quality, while still encouraging the
|
||
advancement of research in the verification field.
|
||
|
||
Since the NCSC is limited in resources for both evaluation and support of
|
||
verification systems, the ETL may reflect this limitation. Verification
|
||
systems placed on the ETL will either be significant improvements to
|
||
systems already on the list or will provide a useful approach or
|
||
capability that the currently endorsed systems lack.
|
||
|
||
This guideline was written to help in identifying the current needs in
|
||
verification systems and to encourage future growth of verification
|
||
technology. The evaluation process is described in the following section.
|
||
Verification systems will be evaluated against the requirements listed in
|
||
sections 3 and 4. Section 5 contains a short list of possibilities for
|
||
next-generation verification systems. It is not an all-encompassing list
|
||
of features as this would be counterproductive to the goals of research.
|
||
|
||
2. EVALUATION APPROACH
|
||
|
||
|
||
A formal request for evaluation of a verification system for placement on
|
||
the ETL shall be submitted in writing directly to:
|
||
National Computer Security Center
|
||
ATTN: Deputy
|
||
C (Verification Committee Chairperson)
|
||
9800 Savage Road
|
||
Fort George G. Meade, MD 20755-6000
|
||
Submitting a verification system does not guarantee NCSC evaluation or
|
||
placement on the ETL.
|
||
|
||
The developers shall submit a copy of the verification system to the NCSC
|
||
along with supporting documentation and tools, test suites, configuration
|
||
management evidence, and source code. In addition, the system developers
|
||
shall support the NCSC evaluators. For example, the developers shall be
|
||
available to answer questions, provide training, and meet with the
|
||
evaluation team.
|
||
|
||
There are three cases in which an evaluation can occur: 1) the evaluation
|
||
of a new verification system being considered for placement on the ETL, 2)
|
||
the reevaluation of a new version of a system already on the ETL for
|
||
placement on the ETL (reevaluation for endorsement), and 3) the
|
||
reevaluation of a system on the ETL being considered for removal from the
|
||
ETL (reevaluation for removal).
|
||
|
||
|
||
2.1 EVALUATION OF NEW SYSTEMS
|
||
|
||
To be considered for initial placement on the ETL, the candidate endorsed
|
||
tool must provide some significant feature or improvement that is not
|
||
available in any of the currently endorsed tools. If the verification
|
||
system meets this requirement, the evaluators shall analyze the entire
|
||
verification system, concentrating on the requirements described in
|
||
Chapters 3 and 4 of this document. If a requirement is not completely
|
||
satisfied, but the developer is working toward completion, the relative
|
||
significance of the requirement shall be measured by the evaluation team.
|
||
The team shall determine if the deficiency is substantial or detrimental.
|
||
For example, a poor user interface would not be as significant as the lack
|
||
of a justification of the methodology. Requirements not completely
|
||
satisfied shall be identified and documented in the final evaluation
|
||
report.
|
||
|
||
Studies or prior evaluations (e.g., the Verification Assessment Study
|
||
Final Report) [2] performed on the verification system shall be reviewed.
|
||
Strengths and weaknesses identified in other reports shall be considered
|
||
when evaluating the verification system.
|
||
|
||
The following are the major steps leading to an endorsement and ETL
|
||
listing for a new verification system.
|
||
|
||
1) The developer submits a request for evaluation to
|
||
the NCSC Verification Committee Chairperson.
|
||
|
||
2) The Committee meets to determine whether the
|
||
verification system provides a significant improvement to systems already
|
||
on the ETL or provides a useful approach or capability that the existing
|
||
systems lack.
|
||
|
||
3) If the result is favorable, an evaluation team is
|
||
formed and the verification system evaluation begins.
|
||
|
||
4) Upon completion of the evaluation, a Technical
|
||
Assessment Report (TAR) is written by the evaluation team.
|
||
|
||
5) The Committee reviews the TAR and makes
|
||
recommendations on endorsement.
|
||
|
||
6) The Committee Chairperson approves or disapproves
|
||
endorsement.
|
||
|
||
7) If approved, an ETL entry is issued for the
|
||
verification system.
|
||
|
||
8) A TAR is issued for the verification system.
|
||
|
||
|
||
2.2 REEVALUATION FOR ENDORSEMENT
|
||
|
||
The term reevaluation for endorsement denotes the evaluation of a new
|
||
version of an endorsed system for placement on the ETL. A significant
|
||
number of changes or enhancements, as determined by the developer, may
|
||
warrant a reevaluation for endorsement. The intent of this type of
|
||
reevaluation is to permit improvements to endorsed versions and advocate
|
||
state-of-the-art technology on the ETL while maintaining the assurance of
|
||
the original endorsed version.
|
||
|
||
A verification system that is already on the ETL maintains assurance of
|
||
soundness and integrity through configuration management (see Appendix).
|
||
The documentation of this process is evidence for the reevaluation of the
|
||
verification system. Reevaluations are based upon an assessment of all
|
||
evidence and a presentation of this material by the vendor to the NCSC.
|
||
The NCSC reserves the right to request additional evidence as necessary.
|
||
|
||
The vendor shall prepare the summary of evidence in the form of a Vendor
|
||
Report (VR). The vendor may submit the VR to the NCSC at any time after
|
||
all changes have ended for the version in question. The VR shall relate
|
||
the reevaluation evidence at a level of detail equivalent to the TAR. The
|
||
VR shall assert that assurance has been upheld and shall include
|
||
sufficient commentary to allow an understanding of every change made to
|
||
the verification system since the endorsed version.
|
||
|
||
The Committee shall expect the vendor to present a thorough technical
|
||
overview of changes to the verification system and an analysis of the
|
||
changes, demonstrating continuity and retention of assurance. The
|
||
Committee subsequently issues a rec*ommendation to the Committee
|
||
Chairperson stating that assurance has or has not been maintained by the
|
||
current verification system since it was endorsed. If the verification
|
||
system does not sustain its endorsement, the vendor may be given the
|
||
option for another review by the Committee. The reevaluation cycle ends
|
||
with an endorsement determination by the Committee Chairperson, and if the
|
||
determination is favorable, a listing of the new release is added to the
|
||
ETL, replacing the previously endorsed version; the old version is then
|
||
archived.
|
||
|
||
The following are the major steps leading to an endorsement and ETL
|
||
listing for a revised verification system.
|
||
|
||
1) The vendor submits the VR and other materials to
|
||
the NCSC Verification Committee Chairperson.
|
||
|
||
2) An evaluation team is formed to review the VR.
|
||
|
||
3) The team adds any additional comments and submits
|
||
them to the Verification Committee.
|
||
|
||
4) The vendor defends the VR before the Committee.
|
||
|
||
5) The Committee makes recommendations on endorsement.
|
||
|
||
6) The Committee Chairperson approves or disapproves
|
||
endorsement.
|
||
|
||
7) If approved, a new ETL entry is issued for the
|
||
revised verification system.
|
||
|
||
8) The VR is issued for the revised verification
|
||
system.
|
||
|
||
|
||
2.3 REEVALUATION FOR REMOVAL
|
||
|
||
Once a verification system is endorsed, it shall normally remain on the
|
||
ETL as long as it is supported and is not replaced by another system. The
|
||
Committee makes the final decision on removal of a verification system
|
||
from the ETL. For example, too many bugs, lack of users, elimination of
|
||
support and maintenance, and unsoundness are all reasons which may warrant
|
||
removal of a verification system from the ETL. Upon removal, the
|
||
Committee makes a formal announcement and provides a written justification
|
||
of their decision.
|
||
|
||
Systems on the ETL that are removed or replaced shall be archived.
|
||
Systems developers that have a Memorandum of Agreement (MOA) with the NCSC
|
||
to use a verification system that is later archived may continue using the
|
||
system agreed upon in the MOA. Verification evidence from a removed or
|
||
replaced verification system shall not be accepted in new system
|
||
evaluations for use in satisfying the A1 Design Specification and
|
||
Verification requirement.
|
||
|
||
The following are the major steps leading to the removal of a verification
|
||
system from the ETL.
|
||
|
||
1) The Verification Committee questions the
|
||
endorsement of a verification system on the ETL.
|
||
|
||
2) An evaluation team is formed and the verification
|
||
system evaluation begins, focusing on the area in question.
|
||
|
||
3) Upon completion of the evaluation, a TAR is
|
||
written by the evaluation team.
|
||
|
||
4) The Committee reviews the TAR and makes
|
||
recommendations on removal.
|
||
|
||
5) The Committee Chairperson approves or disapproves
|
||
removal.
|
||
|
||
6) If removed, a new ETL is issued eliminating the
|
||
verification system in question.
|
||
|
||
7) A TAR is issued for the verification system under
|
||
evaluation.
|
||
|
||
|
||
2.4 BETA VERSIONS
|
||
|
||
Currently, verification systems are not production quality tools and are
|
||
frequently being enhanced and corrected. The version of a verification
|
||
system that has been endorsed may not be the newest and most capable
|
||
version. Modified versions are known as beta tool versions. Beta
|
||
versions are useful in helping system developers uncover bugs before
|
||
submitting the verification system for evaluation.
|
||
|
||
The goal of beta versions is to stabilize the verification system. Users
|
||
should not assume that any particular beta version will be evaluated or
|
||
endorsed by the NCSC. If the developer of a trusted system is using a
|
||
beta version of a formal verification system, specifications and proof
|
||
evidence shall be submitted to the NCSC which can be completely checked
|
||
without significant modification using an endorsed tool as stated in the
|
||
A1 requirement. This can be accomplished by using either the currently
|
||
endorsed version of a verification system or a previously endorsed version
|
||
that was agreed upon by the trusted system developer and the developer's
|
||
evaluation team. Submitted specifications and proof evidence that are not
|
||
compatible with the endorsed or agreed-upon version of the tool may
|
||
require substantial modification by the trusted system developer.
|
||
|
||
3. METHODOLOGY AND SYSTEM SPECIFICATION
|
||
|
||
|
||
The technical factors listed in this Chapter are useful measures of the
|
||
quality and completeness of a verification system. The factors are
|
||
divided into four categories: 1) methodology, 2) features, 3) assurance,
|
||
and 4) documentation. Methodology is the underlying principles and rules
|
||
of organization of the verification system. Features include the
|
||
functionality of the verification system. Assurance is the confidence and
|
||
level of trust that can be placed in the verification system.
|
||
Documentation consists of a set of manuals and technical papers that fully
|
||
describe the verification system, its components, application, operation,
|
||
and maintenance.
|
||
|
||
These categories extend across each of the components of the verification
|
||
system. These components minimally consist of the following:
|
||
|
||
a) a mathematical specification language that allows the user
|
||
to express correctness conditions,
|
||
|
||
b) a specification processor that interprets the
|
||
specification and generates conjectures interpretable by the reasoning
|
||
mechanism, and
|
||
|
||
c) a reasoning mechanism that interprets the conjectures
|
||
generated by the processor and checks the proof or proves that the
|
||
correctness conditions are satisfied.
|
||
|
||
|
||
3.1 METHODOLOGY
|
||
|
||
The methodology of the verification system shall consist of a set of
|
||
propositions used as rules for performing formal verification in that
|
||
system. This methodology shall have a sound, logical basis. This
|
||
requirement is a necessary but not sufficient condition for the
|
||
endorsement of the system.
|
||
|
||
|
||
3.2 FEATURES
|
||
|
||
|
||
3.2.1 Specification Language
|
||
|
||
a. Language expressiveness.
|
||
|
||
The specification language shall be sufficiently
|
||
expressive to support the methodology of the verification system. This
|
||
ensures that the specification language is powerful and rich enough to
|
||
support the underlying methodology. For example, if the methodology
|
||
requires that a specification language be used to model systems as state
|
||
machines, then the specification language must semantically and
|
||
syntactically support all of the necessary elements for modeling systems
|
||
as state machines.
|
||
|
||
b. Defined constructs.
|
||
|
||
The specification language shall consist of a set of
|
||
constructs that are rigorously defined (e.g., in Backus-Naur Form with
|
||
appropriate semantic definitions). This implies that the language is
|
||
formally described by a set of rules for correct use.
|
||
|
||
c. Mnemonics.
|
||
|
||
The syntax of the specification language shall be clear
|
||
and concise without obscuring the interpretation of the language
|
||
constructs. Traditional symbols from mathematics should be employed
|
||
wherever possible; reasonably mnemonic symbols should be used in other
|
||
cases. This aids the users in interpreting constructs more readily.
|
||
|
||
d. Internal uniformity.
|
||
|
||
The syntax of the specification language shall be
|
||
internally uniform. This ensures that the rules of the specification
|
||
language are not contradictory.
|
||
|
||
e. Overloading.
|
||
|
||
Each terminal symbol of the specification language's
|
||
grammar should support one and only one semantic definition insofar as it
|
||
increases comprehensibility. When it is beneficial to incorporate more
|
||
than one definition for a symbol or construct, the semantics of the
|
||
construct shall be clearly defined from the context used. This is
|
||
necessary to avoid confusion by having one construct with more than one
|
||
interpretation or more than one construct with the same interpretation.
|
||
For example, the symbol "+" may be used for both integer and real
|
||
addition, but it should not be used to denote both integer addition and
|
||
conjunction.
|
||
|
||
f. Correctness conditions.
|
||
|
||
The specification language shall provide the capability to
|
||
express correctness conditions.
|
||
|
||
g. Incremental verification.
|
||
|
||
The methodology shall allow incremental verification.
|
||
This would allow, for example, a verification of portions of a system
|
||
specification at a single time. Incremental verification may also include
|
||
the capability for performing verification of different levels of
|
||
abstraction. This allows essential elements to be presented in the most
|
||
abstract level and important details to be presented at successive levels
|
||
of refinement.
|
||
|
||
|
||
3.2.2 Specification Processing
|
||
|
||
a. Input.
|
||
|
||
All of the constructs of the specification language shall
|
||
be processible by the specification processor(s). This is necessary to
|
||
convert the specifications to a language or form that is interpretable by
|
||
the reasoning mechanism.
|
||
|
||
b. Output.
|
||
|
||
The output from the processor(s) shall be interpretable by
|
||
the reasoning mechanism. Conjectures derived from the correctness
|
||
conditions shall be generated. The output shall also report errors in
|
||
specification processing to the user in an easily interpretable manner.
|
||
|
||
|
||
3.2.3 Reasoning Mechanism
|
||
|
||
a. Compatibility of components.
|
||
|
||
The reasoning mechanism shall be compatible with the other
|
||
components of the verification system to ensure that the mechanism is
|
||
capable of determining the validity of conjectures produced by other
|
||
components of the verification system. For example, if conjectures are
|
||
generated by the specification processor that must be proven, then the
|
||
reasoning mechanism must be able to interpret these conjectures correctly.
|
||
|
||
b. Compatibility of constructs.
|
||
|
||
The well-formed formulas in the specification language
|
||
that may also be input either directly or indirectly into the reasoning
|
||
mechanism using the language(s) of the reasoning mechanism shall be
|
||
mappable to ensure compatibility of components. For example, if a lemma
|
||
can be defined in the specification language as "LEMMA <well-formed
|
||
formula>" and can also be defined in the reasoning mechanism, then the
|
||
construct for the lemma in the reasoning mechanism shall be in the same
|
||
form.
|
||
|
||
c. Documentation.
|
||
|
||
The reasoning mechanism shall document the steps it takes
|
||
to develop the proof. Documentation provides users with a stable,
|
||
standard reasoning mechanism that facilitates debugging and demonstrates
|
||
completed proofs. If the reasoning mechanism is defined to use more than
|
||
one method of reasoning, then it should clearly state which method is used
|
||
and remain consistent within each method of reasoning.
|
||
|
||
d. Reprocessing.
|
||
|
||
The reasoning mechanism shall provide a means for
|
||
reprocessing completed proof sessions. This is to ensure that users have
|
||
a means of reprocessing theorems without reconstructing the proof process.
|
||
This mechanism shall also save the users from reentering voluminous input
|
||
to the reasoning mechanism. For example, reprocessing may be accomplished
|
||
by the generation of command files that can be invoked to recreate the
|
||
proof session.
|
||
|
||
e. Validation.
|
||
|
||
The methodology shall provide a means for validating proof
|
||
sessions independently of the reasoning mechanism. Proof strategies
|
||
checked by an independent, trustworthy proof checker shall ensure that
|
||
only sound proof steps were employed in the proof process. Trustworthy
|
||
implies that there is assurance that the proof checker accepts only valid
|
||
proofs. The validation process shall not be circumventable and shall
|
||
always be invoked for each completed proof session.
|
||
|
||
f. Reusability.
|
||
|
||
The reasoning mechanism shall facilitate the use of
|
||
system- and user-supplied databases of reusable definitions and theorems.
|
||
This provides a foundation for proof sessions that will save the user time
|
||
and resources in reproving similar theorems and lemmas.
|
||
|
||
g. Proof dependencies.
|
||
|
||
The reasoning mechanism shall track the status of the use
|
||
and reuse of theorems throughout all phases of development. Proof
|
||
dependencies shall be identified and maintained so that if modifications
|
||
are made to a specification (and indirectly to any related
|
||
conjectures/theorems), the minimal set of theorems and lemmas that are
|
||
dependent on the modified proofs will need to be reproved.
|
||
|
||
|
||
3.3 ASSURANCE, SOUNDNESS, AND ROBUSTNESS
|
||
|
||
a. Sound basis.
|
||
|
||
Each of the verification system's tools and services shall support
|
||
the method*ology. This ensures that users can understand the
|
||
functionality of the verification system with respect to the methodology
|
||
and that the methodology is supported by the components of the
|
||
verification system.
|
||
|
||
b. Correctness.
|
||
|
||
The verification system shall be rigorously tested to provide
|
||
assurance that the majority of the system is free of error.
|
||
|
||
c. Predictability.
|
||
|
||
The verification system shall behave predictably. Consistent
|
||
results are needed for the users to interpret the results homogeneously.
|
||
This will ensure faster and easier interpretation and fewer errors in
|
||
interpretation.
|
||
|
||
d. Previous use.
|
||
|
||
The verification system shall have a history of use to establish
|
||
stability, usefulness, and credibility. This history shall contain
|
||
documentation of applications (for example, applications from academia or
|
||
the developers). These applications shall test the verification system,
|
||
so that strengths and weaknesses may be uncovered.
|
||
|
||
e. Error recovery.
|
||
|
||
The verification system shall gracefully recover from internal
|
||
software errors. This error handling is necessary to ensure that errors
|
||
in the verification system do not cause damage to a user session.
|
||
|
||
f. Software engineering.
|
||
|
||
The verification system shall be implemented using documented
|
||
software engineering practices. The software shall be internally
|
||
structured into well-defined, independent modules for ease of
|
||
maintainability and configuration management.
|
||
|
||
g. Logical theory.
|
||
|
||
All logical theories used in the verification system shall be
|
||
sound. If more than one logical theory is used in the verification
|
||
system, then there shall be evidence that the theories work together via a
|
||
metalogic. This provides the users with a sound method of interaction
|
||
among the theories.
|
||
|
||
h. Machine independence.
|
||
|
||
The functioning of the methodology and the language of the
|
||
verification system shall be machine independent. This is to ensure that
|
||
the functioning of the theory, specification language, reasoning mechanism
|
||
and other essential features does not change from one machine to another.
|
||
Additionally, the responses that the user receives from each of the
|
||
components of the verification system should be consistent across the
|
||
different hardware environments that support the verification system.
|
||
|
||
|
||
3.4 DOCUMENTATION
|
||
|
||
a. Informal justification.
|
||
|
||
An informal justification of the methodology behind the
|
||
verification system shall be provided. All parts of the methodology must
|
||
be fully documented to serve as a medium for validating the accuracy of
|
||
the stated implementation of the verification system. The logical theory
|
||
used in the verification system shall be documented. If more than one
|
||
logical theory exists in the system, the metalogic employed in the system
|
||
shall be explained and fully documented. This documentation is essential
|
||
for the evaluators and will aid the users in understanding the methodology.
|
||
|
||
b. Formal definition.
|
||
|
||
A formal definition (e.g., denotational semantics) of the
|
||
specification language(s) shall be provided. A formal definition shall
|
||
include a clear semantic definition of the expressions supported by the
|
||
specification language and a concise description of the syntax of all
|
||
specification language constructs. This is essential for the evaluators
|
||
and will aid the users in understanding the specification language.
|
||
|
||
c. Explanation of methodology.
|
||
|
||
A description of how to use the methodology, its tools, its
|
||
limitations, and the kinds of properties that it can verify shall be
|
||
provided. This is essential for users to be able to understand the
|
||
methodology and to use the verification system effectively.
|
||
|
||
4. IMPLEMENTATION AND OTHER SUPPORT FACTORS
|
||
|
||
|
||
The NCSC considers the support factors listed in this section to be
|
||
measures of the usefulness, understandability, and maintainability of the
|
||
verification system. The support factors are divided into the following
|
||
three categories: 1) features, 2) assurances, and 3) documentation.
|
||
|
||
Two features that provide support for the user are the interface and the
|
||
base hardware of the verification system. Configuration management,
|
||
testing, and mainte*nance are three means of providing assurance. (The
|
||
Appendix contains additional information on configuration management.)
|
||
Documentation consists of a set of manuals and technical papers that fully
|
||
describe the verification system, its components, application, operation,
|
||
and maintenance.
|
||
|
||
|
||
4.1 FEATURES
|
||
|
||
|
||
4.1.1 User Interface
|
||
|
||
a. Ease of use.
|
||
|
||
The interface for the verification system shall be
|
||
user-friendly. Input must be understandable, output must be informative,
|
||
and the entire interface must support the users' goals.
|
||
|
||
b. Understandable input.
|
||
|
||
Input shall be distinct and concise for each language
|
||
construct and ade*quately represent what the system requires for the
|
||
construct.
|
||
|
||
c. Understandable output.
|
||
|
||
Output from the components of the verification system
|
||
shall be easily interpretable, precise, and consistent. This is to ensure
|
||
that users are provided with understandable and helpful information.
|
||
|
||
d. Compatibility.
|
||
|
||
Output from the screen, the processor, and the reasoning
|
||
mechanism shall be compatible with their respective input, where
|
||
appropriate. It is reasonable for a specification processor (reasoning
|
||
mechanism) to put assertions into a canonical form, but canonical forms
|
||
should be compatible in the specification language (reasoning mechanism).
|
||
|
||
e. Functionality.
|
||
|
||
The interface shall support the tasks required by the user
|
||
to exercise the verification system effectively. This is to ensure that
|
||
all commands necessary to utilize the components of the methodology are
|
||
available and functioning according to accompanying documentation.
|
||
|
||
f. Error reporting.
|
||
|
||
The verification system shall detect, report, and recover
|
||
from errors in a specification. Error reporting shall remain consistent
|
||
by having the same error message generated each time the error identified
|
||
in the message is encountered. The output must be informative and
|
||
interpretable by the users.
|
||
|
||
|
||
4.1.2 Hardware Support
|
||
|
||
a. Availability.
|
||
|
||
The verification system shall be available on commonly
|
||
used computer systems. This will help ensure that users need not purchase
|
||
expensive or outdated machines, or software packages to run the
|
||
verification system.
|
||
|
||
b. Efficiency.
|
||
|
||
Processing efficiency and memory usage shall be reasonable
|
||
for specifications of substantial size. This ensures that users are able
|
||
to process simple (no complex constructs), short (no more than two or
|
||
three pages) specifications in a reasonable amount of time (a few
|
||
minutes). The processing time of larger, more complex specifications
|
||
shall be proportional to the processing time of smaller, less complex
|
||
specifications. Users should not need to wait an unacceptable amount of
|
||
time for feedback.
|
||
|
||
|
||
4.2 ASSURANCE
|
||
|
||
|
||
4.2.1 Configuration Management
|
||
|
||
a. Life-cycle maintenance.
|
||
|
||
Configuration management tools and procedures shall be
|
||
used to track changes (both bug fixes and new features) to the
|
||
verification system from initial concept to final implementation. This
|
||
provides both the system maintainers and the evaluators with a method of
|
||
tracking the numerous changes made to the verification system to ensure
|
||
that only sound changes are implemented.
|
||
|
||
b. Configuration items.
|
||
|
||
Identification of Configuration Items (CIs) shall begin
|
||
early in the design stage. CIs are readily established on a logical basis
|
||
at this time. The configuration management process shall allow for the
|
||
possibility that system changes will convert non-CI components into CIs.
|
||
|
||
c. Configuration management tools.
|
||
|
||
Tools shall exist for comparing a newly generated version
|
||
with the pre*vious version. These tools shall confirm that a) only the
|
||
intended changes have been made in the code that will actually be used as
|
||
the new version of the verification system, and b) no additional changes
|
||
have been inserted into the verification system that were not intended by
|
||
the system developer. The tools used to perform these functions shall
|
||
also be under strict configuration control.
|
||
|
||
d. Configuration control.
|
||
|
||
Configuration control shall cover a broad range of items
|
||
including software, documentation, design data, source code, the running
|
||
version of the object code, and tests. Configuration control shall begin
|
||
in the earliest stages of design and development and extend over the full
|
||
life of the CIs. It involves not only the approval of changes and their
|
||
implementation but also the updat*ing of all related material to reflect
|
||
each change. For example, often a change to one area of a verification
|
||
system may necessitate a change to an*other area. It is not acceptable to
|
||
write or update documentation only for new code or newly modified code,
|
||
rather than for all parts of the verification sys*tem affected by the
|
||
addition or change. Changes to all CIs shall be subject to review and
|
||
approval.
|
||
|
||
The configuration control process begins with the
|
||
documentation of a change request. This change request should include
|
||
justification for the proposed change, all of the affected items and
|
||
documents, and the proposed solution. The change request shall be
|
||
recorded in order to provide a way of tracking all proposed system changes
|
||
and to ensure against duplicate change requests being processed.
|
||
|
||
e. Configuration accounting.
|
||
|
||
Configuration accounting shall yield information that can
|
||
be used to answer the following questions: What source code changes were
|
||
made on a given date? Was a given change absolutely necessary? Why or
|
||
why not? What were all the changes in a given CI between releases N and
|
||
N+1? By whom were they made, and why? What other modifications were
|
||
required by the changes to this CI? Were modifications required in the
|
||
test set or documentation to accommodate any of these changes? What were
|
||
all the changes made to support a given change request?
|
||
|
||
f. Configuration auditing.
|
||
|
||
A configuration auditor shall be able to trace a system
|
||
change from start to finish. The auditor shall check that only approved
|
||
changes have been implemented, and that all tests and documentation have
|
||
been updated concurrently with each implementation to reflect the current
|
||
status of the system.
|
||
|
||
g. Configuration control board.
|
||
|
||
The vendor's Configuration Control Board (CCB) shall be
|
||
responsible for approving and disapproving change requests, prioritizing
|
||
approved modifications, and verifying that changes are properly
|
||
incorporated. The members of the CCB shall interact periodically to
|
||
discuss configuration man*agement topics such as proposed changes,
|
||
configuration status accounting reports, and other topics that may be of
|
||
interest to the different areas of the system development.
|
||
|
||
|
||
4.2.2 Support and Maintenance
|
||
|
||
The verification system shall have ongoing support and maintenance from
|
||
the developers or another qualified vendor. Skilled maintainers are
|
||
necessary to make changes to the verification system.
|
||
|
||
|
||
4.2.3 Testing
|
||
|
||
a. Functional tests.
|
||
|
||
Functional tests shall be conducted to demonstrate that
|
||
the verification system operates as advertised. These tests shall be
|
||
maintained over the life cycle of the verification system. This ensures
|
||
that a test suite is available for use on all versions of the verification
|
||
system. The test suite shall be enhanced as software errors are
|
||
identified to demonstrate the elimination of the errors in subsequent
|
||
versions. Tests shall be done at the module level to demonstrate
|
||
compliance with design documentation and at the system level to
|
||
demonstrate that software accurately generates assertions, correctly
|
||
implements the logic, and correctly responds to user commands.
|
||
|
||
b. Stress testing.
|
||
|
||
The system shall undergo stress testing by the evaluation
|
||
team to test the limits of and to attempt to generate contradictions in
|
||
the specification language, the reasoning mechanism, and large
|
||
specifications.
|
||
|
||
|
||
4.3 DOCUMENTATION
|
||
|
||
a. Configuration management plan.
|
||
|
||
A configuration management plan and supporting evidence assuring a
|
||
consistent mapping of documentation and tools shall be provided for the
|
||
evaluation. This provides the evaluators with evidence that compatibility
|
||
exists between the components of the verification system and its
|
||
documentation. The plan shall include the following:
|
||
|
||
1. The configuration management plan shall describe
|
||
what is to be done to implement configuration management in the
|
||
verification system. It shall define the roles and responsibilities of
|
||
designers, developers, management, the Configuration Control Board, and
|
||
all of the personnel involved with any part of the life cycle of the
|
||
verification system.
|
||
|
||
2. Tools used for configuration management shall be
|
||
documented in the configuration management plan. The forms used for
|
||
change control, conventions for labeling configuration items, etc., shall
|
||
be contained in the configuration management plan along with a description
|
||
of each.
|
||
|
||
3. The plan shall describe procedures for how the
|
||
design and implementation of changes are proposed, evaluated, coordinated,
|
||
and approved or disapproved. The configuration management plan shall also
|
||
include the steps to ensure that only those approved changes are actually
|
||
included and that the changes are included in all of the necessary areas.
|
||
|
||
4. The configuration management plan shall describe
|
||
how changes are made to the plan itself and how emergency procedures are
|
||
handled. It should describe the procedures for performing time-sensitive
|
||
changes without going through a full review process. These procedures
|
||
shall define the steps for retroactively implementing configuration
|
||
management after the emergency change has been completed.
|
||
|
||
b. Configuration management evidence.
|
||
|
||
Documentation of the configuration management activities shall be
|
||
provided to the evaluators. This ensures that the policies of the
|
||
configuration management plan have been followed.
|
||
|
||
c. Source code.
|
||
|
||
Well-documented source code for the verification system, as well
|
||
as documentation to aid in analysis of the code during the evaluation,
|
||
shall be provided. This provides the evaluators with evidence that good
|
||
software engineering practices and configuration management procedures
|
||
were used in the implementation of the verification system.
|
||
|
||
d. Test documentation.
|
||
|
||
Documentation of test suites and test procedures used to check
|
||
functionality of the system shall be provided. This provides an
|
||
explanation to the evaluators of each test case, the testing methodology,
|
||
test results, and procedures for using the tests.
|
||
|
||
e. User's guide.
|
||
|
||
An accurate and complete user's guide containing all available
|
||
commands and their usage shall be provided in a tutorial format. The
|
||
user's guide shall contain worked examples. This is necessary to guide
|
||
the users in the use of the verification system.
|
||
|
||
f. Reference manuals.
|
||
|
||
A reference manual that contains instructions, error messages, and
|
||
examples of how to use the system shall be provided. This provides the
|
||
users with a guide for problem-solving techniques as well as answers to
|
||
questions that may arise while using the verification system.
|
||
|
||
g. Facilities manual.
|
||
|
||
A description of the major components of the software and their
|
||
interfacing shall be provided. This will provide users with a limited
|
||
knowledge of the hardware base required to configure and use the
|
||
verification system.
|
||
|
||
h. Vendor report.
|
||
|
||
A report written by the vendor during a reevaluation that provides
|
||
a complete description of the verification system and changes made since
|
||
the initial evaluation shall be provided. This report, along with
|
||
configuration management documentation, provides the evaluators with
|
||
evidence that soundness of the system has not been jeopardized.
|
||
|
||
i. Significant worked examples.
|
||
|
||
Significant worked examples shall be provided which demonstrate
|
||
the strengths, weaknesses, and limitations of the verification system.
|
||
These examples shall reflect portions of computing systems. They may
|
||
reside in the user's guide, the reference manual, or a separate document.
|
||
|
||
5. FUTURE DIRECTIONS
|
||
|
||
|
||
The purpose of this section is to list possible features for future or
|
||
beyond-A1 verification systems. Additionally, it contains possibilities
|
||
for future research -- areas that researchers may choose to investigate.
|
||
Research and development of new verification systems or investigating
|
||
areas not included in this list is also encouraged. Note that the order
|
||
in which these items appear has no bearing on their relative importance.
|
||
|
||
a. The specification language should permit flexibility in
|
||
approaches to specification.
|
||
|
||
b. The specification language should allow the expression of
|
||
properties involving liveness, concurrency, and eventuality.
|
||
|
||
c. The reasoning mechanism should include a method for
|
||
reasoning about information flows.
|
||
|
||
d. The design and code of the verification system should be
|
||
formally verified.
|
||
|
||
e. The theory should support rapid prototyping. Rapid
|
||
prototyping supports a way of developing a first, quick version of a
|
||
specification. The prototype provides immediate feedback to the user.
|
||
|
||
f. The verification system should make use of standard (or
|
||
reusable) components where possible (for example, use of a standard
|
||
windowing system, use of a standard language-independent parser, editor,
|
||
or printer, use of a standard database support system, etc.).
|
||
|
||
g. The verification system should provide a language-specific
|
||
verifier for a commonly used systems programming language.
|
||
|
||
h. The verification system should provide a method for
|
||
mapping a top-level specification to verified source code.
|
||
|
||
i. The verification system should provide a tool for
|
||
automatic test data generation of the design specification.
|
||
|
||
j. The verification system should provide a means of
|
||
identifying which paths in the source code of the verification system are
|
||
tested by a test suite.
|
||
|
||
k. The verification system should provide a facility for
|
||
high-level debugging/tracing of unsuccessful proofs.
|
||
|
||
l. A formal justification of the methodology behind the
|
||
verification system should be provided.
|
||
|
||
APPENDIX
|
||
|
||
CONFIGURATION MANAGEMENT
|
||
|
||
|
||
The purpose of configuration management is to ensure that changes made to
|
||
verification systems take place in an identifiable and controlled
|
||
environment. Configuration managers take responsibility that additions,
|
||
deletions, or changes made to the verification system do not jeopardize
|
||
its ability to satisfy the requirements in Chapters 3 and 4. Therefore,
|
||
configuration management is vital to maintaining the endorsement of a
|
||
verification system.
|
||
|
||
Additional information on configuration management can be found in A Guide
|
||
to Understanding Configuration Management in Trusted Systems. [3]
|
||
|
||
|
||
|
||
OVERVIEW OF CONFIGURATION MANAGEMENT
|
||
|
||
Configuration management is a discipline applying technical and
|
||
administrative direction to: 1) identify and document the functional and
|
||
physical characteristics of each configuration item for the system; 2)
|
||
manage all changes to these characteristics; and 3) record and report the
|
||
status of change processing and implementation. Configuration management
|
||
involves process monitoring, version control, information capture, quality
|
||
control, bookkeeping, and an organizational framework to support these
|
||
activities. The configuration being managed is the verification system
|
||
plus all tools and documentation related to the configuration process.
|
||
|
||
Four major aspects of configuration management are configuration
|
||
identification, configuration control, configuration status accounting,
|
||
and configuration auditing.
|
||
|
||
|
||
|
||
CONFIGURATION IDENTIFICATION
|
||
|
||
Configuration management entails decomposing the verification system into
|
||
identifi*able, understandable, manageable, trackable units known as
|
||
Configuration Items (CIs). A CI is a uniquely identifiable subset of the
|
||
system that represents the small*est portion to be subject to independent
|
||
configuration control procedures. The decomposition process of a
|
||
verification system into CIs is called configuration identification.
|
||
|
||
CIs can vary widely in size, type, and complexity. Although there are no
|
||
hard-and-fast rules for decomposition, the granularity of CIs can have
|
||
great practical importance. A favorable strategy is to designate
|
||
relatively large CIs for elements that are not expected to change over the
|
||
life of the system, and small CIs for elements likely to change more
|
||
frequently.
|
||
|
||
|
||
|
||
CONFIGURATION CONTROL
|
||
|
||
Configuration control is a means of assuring that system changes are
|
||
approved before being implemented, only the proposed and approved changes
|
||
are implemented, and the implementation is complete and accurate. This
|
||
involves strict procedures for proposing, monitoring, and approving system
|
||
changes and their implementation. Configuration control entails central
|
||
direction of the change process by personnel who coordinate analytical
|
||
tasks, approve system changes, review the implementation of changes, and
|
||
supervise other tasks such as documentation.
|
||
|
||
|
||
|
||
CONFIGURATION ACCOUNTING
|
||
|
||
Configuration accounting documents the status of configuration control
|
||
activities and in general provides the information needed to manage a
|
||
configuration effectively. It allows managers to trace system changes and
|
||
establish the history of any developmental problems and associated fixes.
|
||
Configuration accounting also tracks the status of current changes as they
|
||
move through the configuration control process. Configuration accounting
|
||
establishes the granularity of recorded information and thus shapes the
|
||
accuracy and usefulness of the audit function.
|
||
|
||
The accounting function must be able to locate all possible versions of a
|
||
CI and all of the incremental changes involved, thereby deriving the
|
||
status of that CI at any specific time. The associated records must
|
||
include commentary about the reason for each change and its major
|
||
implications for the verification system.
|
||
|
||
|
||
|
||
CONFIGURATION AUDIT
|
||
|
||
Configuration audit is the quality assurance component of configuration
|
||
management. It involves periodic checks to determine the consistency and
|
||
completeness of accounting information and to verify that all
|
||
configuration management policies are being followed. A vendor's
|
||
configuration management program must be able to sustain a complete
|
||
configuration audit by an NCSC review team.
|
||
|
||
|
||
|
||
CONFIGURATION MANAGEMENT PLAN
|
||
|
||
Strict adherence to a comprehensive configuration management plan is one
|
||
of the most important requirements for successful configuration
|
||
management. The configuration management plan is the vendor's document
|
||
tailored to the company's practices and personnel. The plan accurately
|
||
describes what the vendor is doing to the system at each moment and what
|
||
evidence is being recorded.
|
||
|
||
|
||
|
||
CONFIGURATION CONTROL BOARD
|
||
|
||
All analytical and design tasks are conducted under the direction of the
|
||
vendor's corporate entity called the Configuration Control Board (CCB).
|
||
The CCB is headed by a chairperson who is responsible for assuring that
|
||
changes made do not jeopardize the soundness of the verification system.
|
||
The Chairperson assures that the changes made are approved, tested,
|
||
documented, and implemented correctly.
|
||
|
||
The members of the CCB should interact periodically, either through formal
|
||
meetings or other available means, to discuss configuration management
|
||
topics such as proposed changes, configuration status accounting reports,
|
||
and other topics that may be of interest to the different areas of the
|
||
system development. These interactions should be held to keep the entire
|
||
system team updated on all advancements or alterations in the verification
|
||
system.
|
||
|
||
GLOSSARY
|
||
|
||
|
||
|
||
Beta Version
|
||
|
||
Beta versions are intermediate releases of a product to be
|
||
tested at one or more customer sites by the software end-user. The
|
||
customer describes in detail any problems encountered during testing to
|
||
the developer, who makes the appropriate modifications. Beta versions are
|
||
not endorsed by the NCSC, but are primarily used for debugging and testing
|
||
prior to submission for endorsement.
|
||
|
||
Complete
|
||
|
||
A theory is complete if and only if every sentence of its
|
||
language is either provable or refutable.
|
||
|
||
Concurrency
|
||
|
||
Simultaneous or parallel processing of events.
|
||
|
||
Configuration Accounting
|
||
|
||
The recording and reporting of configuration item
|
||
descriptions and all departures from the baseline during design and
|
||
production.
|
||
|
||
Configuration Audit
|
||
|
||
An independent review of computer software for the purpose
|
||
of assessing compliance with established requirements, standards, and
|
||
baselines. [3]
|
||
|
||
Configuration Control
|
||
|
||
The process of controlling modifications to the system's
|
||
design, hardware, firmware, software, and documentation which provides
|
||
sufficient assurance that the system is protected against the introduction
|
||
of improper modification prior to, during, and after system
|
||
implementation. [3]
|
||
|
||
Configuration Control Board (CCB)
|
||
|
||
An established vendor committee that is the final
|
||
authority on all proposed changes to the verification system.
|
||
|
||
Configuration Identification
|
||
|
||
The identifying of the system configuration throughout the
|
||
design, development, test, and production tasks. [3]
|
||
|
||
Configuration Item (CI)
|
||
|
||
The smallest component tracked by the configuration
|
||
management system. [3]
|
||
|
||
Configuration Management
|
||
|
||
The process of controlling modifications to a verification
|
||
system, including documentation, that provides sufficient assurance that
|
||
the system is protected against the introduction of improper modification
|
||
before, during, and after system implementation.
|
||
|
||
Conjecture
|
||
|
||
A general conclusion proposed to be proved upon the basis
|
||
of certain given premises or assumptions.
|
||
|
||
Consistency (Mathematical)
|
||
|
||
A logical theory is consistent if it contains no formula
|
||
such that the formula and its negation are provable theorems.
|
||
|
||
Consistency (Methodological)
|
||
|
||
Steadfast adherence to the same principles, course, form,
|
||
etc.
|
||
|
||
Correctness
|
||
|
||
Free from errors; conforming to fact or truth.
|
||
|
||
Correctness Conditions
|
||
|
||
Conjectures that formalize the rules, security policies,
|
||
models, or other critical requirements on a system.
|
||
|
||
Design Verification
|
||
|
||
A demonstration that a formal specification of a software
|
||
system satisfies the correctness conditions (critical requirements
|
||
specification).
|
||
|
||
Documentation
|
||
|
||
A set of manuals and technical papers that fully describe
|
||
the verification system, its components, application, and operation.
|
||
|
||
Endorsed Tools List (ETL)
|
||
|
||
A list composed of those verification systems currently
|
||
recommended by the NCSC for use in developing highly trusted systems.
|
||
|
||
Eventuality
|
||
|
||
The ability to prove that at some time in the future, a
|
||
particular event will occur.
|
||
|
||
Formal Justification
|
||
|
||
Mathematically precise evidence that the methodology of
|
||
the verification system is sound.
|
||
|
||
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. [1]
|
||
|
||
Implementation Verification
|
||
|
||
A demonstration that a program implementation satisfies a
|
||
formal specification of a system.
|
||
|
||
Informal Justification
|
||
|
||
An English description of the tools of a verification
|
||
system and how they interact. This includes a justification of the
|
||
soundness of the theory.
|
||
|
||
Language
|
||
|
||
A set of symbols and rules of syntax regulating the
|
||
relationship between the symbols, used to convey information.
|
||
|
||
Liveness
|
||
|
||
Formalizations that ensure that a system does something
|
||
that it should do.
|
||
|
||
Metalogic
|
||
|
||
A type of logic used to describe another type of logic or
|
||
a combination of different types of logic.
|
||
|
||
Methodology
|
||
|
||
The underlying principles and rules of organization of a
|
||
verification system.
|
||
|
||
Production Quality Verification System
|
||
|
||
A verification system that is sound, user-friendly,
|
||
efficient, robust, well-documented, maintainable, well-engineered
|
||
(developed with software engineering techniques), available on a variety
|
||
of hardware, and promoted (has education available for users). [2]
|
||
|
||
Proof
|
||
|
||
A syntactic analysis performed to validate the truth of an
|
||
assertion relative to an (assumed) base of assertions.
|
||
|
||
Proof Checker
|
||
|
||
A tool that 1) accepts as input an assertion (called a
|
||
conjecture), a set of assertions (called assumptions), and a proof; 2)
|
||
terminates and outputs either success or failure; and 3) if it succeeds,
|
||
then the conjecture is a valid consequence of the assumptions.
|
||
|
||
Reasoning Mechanism
|
||
|
||
A tool (interactive or fully automated) capable of
|
||
checking or constructing proofs.
|
||
|
||
Safety Properties
|
||
|
||
Formalizations that ensure that a system does not do
|
||
something that it should not do.
|
||
|
||
Semantics
|
||
|
||
A set of rules for interpreting the symbols and
|
||
well-formed formulae of a language.
|
||
|
||
Sound
|
||
|
||
An argument is sound if all of its propositions are true
|
||
and its argument form is valid. A proof system is sound relative to a
|
||
given semantics if every conjecture that can be proved is a valid
|
||
consequence of the assumptions used in the proof.
|
||
|
||
Specification Language
|
||
|
||
A logically precise language used to describe the
|
||
structure or behavior of a system to be verified.
|
||
|
||
Specification Processor
|
||
|
||
A software tool capable of receiving input, parsing it,
|
||
generating conjectures (candidate theorems), and supplying results for
|
||
further analysis (e.g., reasoning mechanism).
|
||
|
||
Syntax
|
||
|
||
A set of rules for constructing sequences of symbols from
|
||
the primitive symbols of a language.
|
||
|
||
Technical Assessment Report (TAR)
|
||
|
||
A report that is written by an evaluation team during an
|
||
evaluation of a verification system and available upon completion.
|
||
|
||
Theorem
|
||
|
||
In a given logical system, a well-formed formula that is
|
||
proven in that system.
|
||
|
||
Theory
|
||
|
||
A formal theory is a coherent group of general
|
||
propositions used as principles of explanation for a particular class of
|
||
phenomena.
|
||
|
||
User-Friendly
|
||
|
||
A system is user-friendly if it facilitates learning and
|
||
usage in an efficient manner.
|
||
|
||
Valid
|
||
|
||
An argument is valid when the conclusion is a valid
|
||
consequence of the assumptions used in the argument.
|
||
|
||
Vendor Report (VR)
|
||
|
||
A report that is written by a vendor during and available
|
||
upon completion of a reevaluation of a verification system.
|
||
|
||
Verification
|
||
|
||
The process of comparing two levels of system
|
||
specification for proper correspondence (e.g., security policy model with
|
||
top-level specification, top-level specification with source code, or
|
||
source code with object code). This process may or may not be automated.
|
||
[1]
|
||
|
||
Verification Committee
|
||
|
||
A standing committee responsible for the management of the
|
||
verification efforts at the NCSC. The committee is chaired by the NCSC
|
||
Deputy Director and includes the NCSC Chief Scientist, as well as
|
||
representatives from both the NCSC's Office of Research and Development
|
||
and Office of Computer Security Evaluations, Publications, and Support.
|
||
|
||
Verification System
|
||
|
||
An integrated set of tools and techniques for performing
|
||
verification.
|
||
|
||
Well-Formed Formula
|
||
|
||
A sequence of symbols from a language that is constructed
|
||
in accordance with the syntax for that language.
|
||
|
||
|
||
|
||
BIBLIOGRAPHY
|
||
|
||
|
||
[1] Department of Defense, Department of Defense Trusted
|
||
Computer System Evaluation Criteria, DOD 5200.28-STD, December 1985.
|
||
|
||
[2] Kemmerer, Richard A., Verification Assessment Study Final
|
||
Report, University of California, March 1986.
|
||
|
||
[3] National Computer Security Center, A Guide to
|
||
Understanding Configuration Management in Trusted Systems, NCSC-TG-006,
|
||
March 1988.
|
||
|
||
[4] National Computer Security Center, Trusted Network
|
||
Interpretation of the Trusted Computer System Evaluation Criteria,
|
||
NCSC-TG-005, July 1987.
|
||
|
||
[5] National Security Agency, Information Systems Security
|
||
Products and Services Catalogue, Issued Quarterly, January 1989 and
|
||
successors.
|
||
|