top - download
⟦eb21a0f2e⟧ Wang Wps File
Length: 98812 (0x181fc)
Types: Wang Wps File
Notes: SFS/FS/001
Names: »3668A «
Derivation
└─⟦2c1d27607⟧ Bits:30006216 8" Wang WCS floppy, CR 0284A
└─ ⟦this⟧ »3668A «
WangText
1…07…0…0a…0…02…0…06…/…0b…/…0c…/
.…0a….…00…-…08…-…00…-
-…05…,…0c…, +…0b…+
*…0b…*…02…*…06…*…07…)…08…)…09…)…0a…)…0b…)…0c…)
(…0c……86…1
…02…
…02…
…02…
…02…
NATO
UNCLASSIFIED
NATO UNCLASSIFIED
SFS/FS/001 1983-05-30
FILTER SPECIFICATION Page #
T̲A̲B̲L̲E̲ ̲O̲F̲ ̲C̲O̲N̲T̲E̲N̲T̲S̲
1 GENERAL ........................................
3
1.1 INTRODUCTION ...............................
3
1.2 STUDY REFERENCES............................
3
1.3 TERMS AND ABBREVIATIONS ....................
4
2 SUMMARY OF REQUIREMENTS.........................
6
2.1 SYSTEM DESCRIPTION .........................
6
2.2 SYSTEM FUNCTIONS ...........................
8
2.2.1 Filter Functions .......................
8
2.2.2 Auxiliary Functions ....................
9
2.3 ACCURACY AND VALIDITY ......................
12
2.4 TIMING .....................................
13
3 ENVIRONMENT ....................................
14
4 DESIGN DETAILS .................................
15
4.1 GENERAL OPERATING PROCEDURE ................
15
4.1.1 System Elements ........................
15
4.1.2 Operational Elements ...................
15
4.1.3 Software requirements ..................
16
4.2 PRINCIPLES OF VALIDATION ...................
18
4.2.1 Validation Procedure ...................
19
4.2.2 Analysis of an MSGID ...................
28
4.2.3 Main Text Analysis .....................
29
4.3 PRINCIPLES OF MESSAGE SPECIFICATION ........
40
4.3.1 Message Definition .....................
40
4.3.2 Message Description Conversion .........
49
4.3.3 Test and Verification ..................
57
5 IDENTIFIED MODULES .............................
62
5.1 SOFTWARE MODULES ...........................
62
5.1.1 On-Line Software .......................
62
5.1.2 Off-Line Software ......................
64
5.1.3 On-Line Software Modules ...............
67
5.2 HARDWARE MODULES ...........................
72
5.3 PERFORMANCE ................................
72
5.4 COMMERCIALLY AVAILABLE HARDWARE
AND SOFTWARE ...............................
72
5.5 MEASURES TO PREVENT INTENTIONAL
DISRUPTION .................................
73
5.5.1 Tempest Acceptance .....................
74
1 G̲E̲N̲E̲R̲A̲L̲
1.1 I̲N̲T̲R̲O̲D̲U̲C̲T̲I̲O̲N̲
This Filter Specification represents the output of
work package No. 350, Filter Specification, within
the framework of the Security Filter Study, performed
under contract No. FK 8219 between the Air Materiel
Command of the RDAF and Christian Rovsing A/S.
1.2 S̲T̲U̲D̲Y̲ ̲R̲E̲F̲E̲R̲E̲N̲C̲E̲S̲
Master Project Plan
Functional Description, SFS/FD/001
Preliminary Filter Specification, SFS/PFS/001
Functional Analysis, SFS/TN/001
Security Filter Architecture, SFS/TN/002
Configuration Study, SFS/TN/004
1.3 T̲E̲R̲M̲S̲ ̲A̲N̲D̲ ̲A̲B̲B̲R̲E̲V̲I̲A̲T̲I̲O̲N̲S̲
Firmware Software stored in a type of memory
which is readable but not alterable
by the system in question. Such a type
of memory is often referred to as "read-only-memory"
or ROM. For the sake of convenience
the term "software" is used throughout
this document for both software and
firmware except where clear distinction
is necessary.
Message The act of defining the message types,
definition syntax, and contents towards the security
filter support system.
Message A formalized and structured set of
description human-readable data describing the message
types, syntax, and contents, used as
input to the message description converter
of the security filter support system.
Validation The message description when
information converted into machine-readable tables
which can be processed by the validation
program of the security filter. Output
from the message description converter
of the security filter support system.
Validation A set of commensurable data arranged
in
table a string or otherwise serially accessible.
The sum of validation tables constitutes
the validation information.
Support A computer system consisting of hardware
System and software and peripherals, dedicated
to performance of off-line tasks in
support of the operation, maintenance,
and test of security filters. The support
system must be able to simulate an operative
security filter.
OTA
Off-line A feature in connection with
Test Ac- the suppport system enabling the support
celerator system simulating a security filter
to operate at a higher rate than normal
transmission speed.
TDG Test Data Generator
Validation The act of checking a message for
validity.
Message, Legal A message which is allowed to pass
the security filter.
Message, Illegal A message which is not allowed to
pass the security filter.
Message, Validated A message which has been subject
to
validation.
Message, Accepted A message which by the validation
has been found to be legal.
Message, Rejected A message which by the validation
has been found to be illegal.
Message, Logged A rejected message which has been
written onto the logging medium.
Message, Suspended A message which by its type or contents
or otherwise demands operator assisted
validation and hence has been stored
for this purpose.
2 S̲U̲M̲M̲A̲R̲Y̲ ̲O̲F̲ ̲R̲E̲Q̲U̲I̲R̲E̲M̲E̲N̲T̲S̲
2.1 S̲Y̲S̲T̲E̲M̲ ̲D̲E̲S̲C̲R̲I̲P̲T̲I̲O̲N̲
The Security Filter is an electronic device (computer)
placed on a point-to-point communication line connecting
two ADP-systems of unequal security classification,
with
the purpose of filtering the message traffic, i.e.
to withhold messages which for security reasons are
not allowed to pass the subject communication line.
The security filter operates on traffic both ways but
with different filter characteristics.
The messages which shall be withheld are not only those
which are classified higher than the receiving ADP-
system but also messages containing information outside
the receiving system's scope of "need to know".
To achieve this goal it is necessary to provide full
and positive description of this "need to know", so
that the security filter will only allow messages to
pass if they are positively identified as containing
only such information.
Alert
ADP Security ADP
System Filter System
Log
Fundamentally, the security filter is aimed at automated
operation without any human intervention. This requires,
however, that the traffic consists solely of well structured
messages with a predictable set of contents. If the
traffic on a line is expected to also contain unstructured
messages or free text, which cannot be automatically
analyzed, human support may be introduced as an option.
Even though the concept of a security filter originally
is aiming at a separate filter for each point-to-point
line it may be considered to develop a multiline security
filter, or to share hardware, software, or peripherals
among a number of security filters, to achieve cost
effective operation. The design of such a multiline
system would need to provide for the additional security
required to keep messages separate and to ensure their
proper delivery.
2.2 S̲Y̲S̲T̲E̲M̲ ̲F̲U̲N̲C̲T̲I̲O̲N̲S̲
2.2.1 F̲i̲l̲t̲e̲r̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲
The filter characteristics are implemented by means
of a definition of all legal messages and their contents.
The security filter software (computer programs) shall
be so constructed that any foreseeable change in message
structure and contents can be handled without modification
of the software.
As a consequence of the definition of all legal traffic,
any message traffic deviating from the definition shall
be considered illegal and handled in accordance with
that condition.
Illegal messages shall be logged by the security filter
and may not be transmitted from the filter. In case
of frequent traffic of illegal messages (frequency
exceeding a prespecified maximum) an audible alert
shall be sounded in order to inform the security officer
of this fact.
To expand the useful scope of the security filter to
encompass lines where the traffic will contain messages
too complex for automatic validation operator communication
facilities can be added. This will allow for human
validation of for instance free text messages. However,
message types or message contents demanding human validation
shall be defined to the filter. The display of a message
for an operator must never be triggered by the fact
that the message is considered illegal by the automatic
validation.
2.2.2 A̲u̲x̲i̲l̲i̲a̲r̲y̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲
The security filter shall be operative without any
human intervention, and it shall be possible to modify
neither software nor messages on site while the filter
operates.
Hence, any authorized modification must be performed
off-line and installed afterwards on the filter site
following a prespecified procedure.
The following auxiliary functions to be performed off-line
have been identified:
2.2.2.1 S̲o̲f̲t̲w̲a̲r̲e̲ ̲P̲r̲o̲d̲u̲c̲t̲i̲o̲n̲ ̲a̲n̲d̲ ̲M̲a̲i̲n̲t̲e̲n̲a̲n̲c̲e̲
The computer programs necessary to perform the security
filter functions must be analyzed, planned, documented,
coded, compiled, tested and verified.
Since the security filter by itself is not applied
with the peripheral equipment necessary for those purposes,
the program development tasks must be performed utilizing
other hardware.
Although the aim is to produce flexible programs able
to handle all present and future legal message traffic,
the possibility exists that a future expansion or modification
not anticipated during the development period will
appear. Accordingly the software production system
ought to be retained for possible future maintenance.
2.2.2.2 D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲ ̲o̲f̲ ̲L̲e̲g̲a̲l̲ ̲M̲e̲s̲s̲a̲g̲e̲s̲
The filter function is based on computer programs of
stable character, which use a set of legal message
descriptions to judge the legality of any message transmitted
through the filter. The definition of legal messages
may vary from time to time and among the various security
filter sites.
In connection with the installation and start of a
security filter, and in connection with authorized
subsequent modifications, a system must be present
which can convert the man-made message descriptions
into computer-legible validation information (in the
form of tables built to fulfil the structure requirements
of the security filter software).
This conversion task must be performed on a computer
distinct from the subject security filter, preferably
on the computer system referred to as the Security
Filter Support System.
2.2.2.3 T̲e̲s̲t̲ ̲a̲n̲d̲ ̲V̲e̲r̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
Whenever modifications have been made in the set of
legal messages for a security filter site the modified
part of the validation information shall be thoroughly
tested to ensure that it is cooperating correctly with
the security filter software.
The testing shall be sufficient to render probable
beyond any reasonable doubt that the security filter
will allow only legal messages to pass.
The validation of the modified message description
will be tested through a combination of analysis and
machine testing.
2.2.2.4 T̲e̲s̲t̲ ̲M̲a̲t̲e̲r̲i̲a̲l̲ ̲P̲r̲o̲d̲u̲c̲t̲i̲o̲n̲
To ensure thorough testing a considerable amount of
test material (test messages) must be produced. The
quality of the test material is measured not only by
its quantity but also by the variety, by which various
constraints are tested.
A computerized test data generator will greatly enhance
the test material production.
2.2.2.5 L̲o̲g̲ ̲A̲n̲a̲l̲y̲s̲i̲s̲
The logged illegal messages will be subject to analysis
by security or ADP personnel. This analysis must take
place away from the filter site, and thus the logging
medium must be exchanged and carried to an off-line
display or print station, where the scrutiny of the
illegal messages can be performed.
The exchange of logging medium must be subject to control
by authorized personnel. The logging medium must not
be removed by unauthorized personnel. The removal shall
be governed by restrictions very much like those imposed
on the exchange of validation information.
The software necessary to read and display the logged
messages is expected to be already existing. Hence,
it is not part of the security filter system development.
2.2.2.6 E̲x̲c̲h̲a̲n̲g̲e̲ ̲o̲f̲ ̲V̲a̲l̲i̲d̲a̲t̲i̲o̲n̲ ̲I̲n̲f̲o̲r̲m̲a̲t̲i̲o̲n̲
When new or modified legal messages have been defined
and converted into validation information, an exchange
of validation information must take place in the operative
security filter. The procedure to be followed by the
exchange depends on the medium of storage and the ease
of transport from the production and test facility
to the security filter site.
The exchange must be carried out by or under surveillance
of authorized personnel. The procedure may be varying
in accordance with local circumstances but it must
always be approved by the security authorities.
Precautions shall be taken to ensure that any unauthorized
attempt to change or alter the validation information
will result in an immediate break of the security filter
operation. This break shall be repairable only after
an action by an authorized person.
2.2.2.7 S̲t̲a̲t̲i̲s̲t̲i̲c̲s̲
Collection of statistics information is an option.
If this option is chosen it must be ensured that the
collection of statistics information does in no way
degrade the capacity or speed of the security filter,
and the message traffic may in no way be influenced
by the task.
Furthermore, it must be ensured that the collected
statistics information is securely stored and kept
safe from unauthorized eyes, very much like the procedures
for the validation information.
Interpretation of eventual statistics must be performed
off-line.
2.3 A̲C̲C̲U̲R̲A̲C̲Y̲ ̲A̲N̲D̲ ̲V̲A̲L̲I̲D̲I̲T̲Y̲
The security filter system is based in principle on
absolute accuracy and validity. This means that no
tolerance whatsoever will be accepted.
The validation information shall describe unambiguously
to the filter software which items are to be checked
and how. Also, if certain items are not subject to
checking, it shall be clearly and unambiguously stated,
how such items are recognised and delimited.
If a message does not match exactly and in every item
to be checked with the validation information for the
subject message it shall be declared illegal, logged,
and not transmitted.
For a security filter fitted with operator communica-
tion facilities the same rules apply. Human validation
of a message may only be performed if it is prescribed
in the validation information, and the human validation
does only encompass those parts of the message which
are prespecified for it.
All other parts of the message will be subject to normal
automatic validation. Thus, a message may be declared
illegal even if the operator (security admini-
strator) has declared it legal.
2.4 T̲I̲M̲I̲N̲G̲
The security filter shall operate continuously and
be transparent to the communicating ADP systems. The
only delay accepted in the transmission time plus a
maximum of 5 seconds. For messages suspended for human
valida-
tion on an operator assisted security filter a longer
delay cannot be avoided.
3 E̲N̲V̲I̲R̲O̲N̲M̲EN̲T̲
The security filter is supposed to receive and transmit
messages in accordance with the X-25 Protocol (CCITT
Recommendation) at a rate of 2400 band.
The security filter shall be installed in a controlled
area equivalent to the area of system high.
Otherwise the security filter shall be environment
independent.
4̲ ̲ ̲D̲E̲S̲I̲G̲N̲ ̲D̲E̲T̲A̲I̲L̲S̲
4.1 G̲E̲N̲E̲R̲A̲L̲ ̲O̲P̲E̲R̲A̲T̲I̲N̲G̲ ̲P̲R̲O̲C̲E̲D̲U̲R̲E̲
4.1.1 S̲y̲s̲t̲e̲m̲ ̲E̲l̲e̲m̲e̲n̲t̲s̲
The security filter system elements are separated into
operational elements and auxiliary elements.
The operational elements of the system are those adhering
to the operational security filter site perfor-
ming the filtering tasks etc.
The auxiliary elements of the system are those performed
off-line with the purpose of preparing software and
validation information for the operational security
filter sites, and processing the logged output from
the filter sites.
This chapter contains a design concept for a complete
security filter software system emphasizing mainly
on
- Principles of Validation,
- Message Definition, and
- Message Description Conversion
which are considered the three most important parts
of the security filter system from a design point of
view.
Other functions which must be included in the filter
software, such as logging facility, alert mechanism,
etc., are only briefly mentioned since they are rather
easily implemented using commonly known methods, that
may vary slightly depending on the hardware and system
software chosen.
4.1.2 O̲p̲e̲r̲a̲t̲i̲o̲n̲a̲l̲ ̲E̲l̲e̲m̲e̲n̲t̲s̲
The operational elements of the security filter system
encompasses the tasks performed at the operational
security filter system site. Those functions are in
principle running in an unattended mode and should
be transparent to the communication ADP systems.
The software used on a computer is generally separated
into an operating system (system software) and some
dedicated computer programs (application software).
This separation is used partly to facilitate ease of
application programming, partly to ensure that errors
in application programs do not jeopardize system files
and simultaneous data processing on the same computer.
In the security filter system, however, file handling
and system control and other tasks normally performed
by the system software, is minimized, and the requirements
for error free application software are extremely high.
Hence, the separation between system software and application
software is not essential. It must be very much depending
on the hardware solution eventually chosen.
Only is it essential to ensure a high degree of modularity
of the software and a perfect interaction between software
modules. For all that is to it, all software could
be either system software or application software.
4.1.3 S̲o̲f̲t̲w̲a̲r̲e̲ ̲R̲e̲q̲u̲i̲r̲e̲m̲e̲n̲t̲s̲
4.1.3.1 O̲p̲e̲r̲a̲t̲i̲n̲g̲ ̲S̲y̲s̲t̲e̲m̲
Most computer systems have a distinction between the
Operating System (or System Software) and the Application
Software.
The operating system will often operate in privileged
mode, and the application software will operate in
a somewhat restricted mode, sometimes called program
mode.
Some critical operations, such as system control and
input/output control can only be involved by the operating
system, because the instructions for such operations
are so-called "privileged" instruction.
The reason for this distinction is that the operating
system is a hardware dependent piece of software, developed
to aid application programmers and to a certain extent
make applications hardware independent.
Also, the operating is considered failsafe and in most
cases it really is close to bug-less.
In the security filter, however, the requirements for
fail-safety and buglessness are equally high for the
application software as they are for the operating
system.
The necessary features of the operating system are
very few in comparison with an ordinary computer system.
The security filter shall not contain any un-used and
superfluous features, since any feature within the
security filter shall be verified to fulfil a requirement.
Accordingly, the distinction between system software
and application software is superfluous, and all the
necessary software for the security filter system may
as well be coded as one unit for each processor in
the privileged mode.
The Operating System modules identified as necessary
are:
- initial program loader
- system control interface
- log tape handler
- terminal handler
Those few Operating System modules may be coded separately
for the security filter system, or they may be derived
from an existing operating system, if possible.
4.1.3.2 F̲i̲l̲e̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲ ̲S̲y̲s̲t̲e̲m̲s̲
The security filter does only have one external file
to handle: the log file. This file is suggested to
be a magnetic tape file of the casette deck type. Accordingly
it must be a sequential, write-only file with variable
length record.
The only security feature required is the tape station
being installed within the security filter casing.
Then it will automatically be locked away from unauthorized
use, and at the same time be TEMPEST shielded.
4.1.3.3 C̲o̲m̲m̲u̲n̲i̲c̲a̲t̲i̲o̲n̲ ̲L̲i̲n̲e̲ ̲P̲r̲o̲t̲o̲c̲o̲l̲
The communication lines are supposed to use the X.25
protocol, and the protocol handling, including handshaking,
unwrapping, serial-to-parallel conversion and vice
versa, etc., is supposed to be handled by a standard
communication line interface module.
4.1.3.4 D̲i̲s̲p̲l̲a̲y̲ ̲T̲e̲r̲m̲i̲n̲a̲l̲ ̲a̲n̲d̲ ̲K̲e̲y̲b̲o̲a̲r̲d̲
In order to facilitate operator assisted validation
of suspended messages a visual display unit (VDU) must
be present.
Ideally such a terminal is controlled wholly by the
security filter, which means that a screen picture
is built by the security filter and sent to the screen,
and a possible input from the keyboard is sent to the
security filter and interpreted by the security filter
software before any action is taken, also regarding
the screen picture.
If, however, it can be assured that changes of the
message in the VDU memory and on the VDU screen can
be avoided, the simple tasks of screen picture editing,
scrolling, etc., can be left to a built in processor.
Anyhow, the security filter shall accept only simple
codes from the keyboard, annotating the acceptance
or rejection of the message.
4.2 P̲R̲I̲N̲C̲I̲P̲L̲E̲S̲ ̲O̲F̲ ̲V̲A̲L̲I̲D̲A̲T̲I̲O̲N̲
The principles of validation is based on a hierarchical
structure. The major attributes of a message is checked
first, and subsequently checks are performed to examine
the message in even more detail.
The security filter must contain one or more sets of
validation information. One set of validation information
covers solely the message traffic from one sender to
one receiver. Considering that traffic normally is
passing both ways between two ADP systems, even a single-line
security filter must accommodate two sets of validation
information.
Based on the addresses of the sender and the receiver
the security filter must first choose the correct set
of validation information, and this set and no other
set of validation information must be accessed through
the entire task of validation.
The primary attribute to check is the message type.
This is absolutely necessary since the message type
is determining which checks to perform on the message.
Since the receiving transmission processor seems to
have ample time, and since it already handles the protocol
and other formal matters around the trans-
mission, it stands to reason to let it also locate
and mark the message type. Furthermore, it can make
a break-
down of the message where a such break-down is useful.
For instance, it can make a list of the relative addresses
of the slashes and double slashes (field markers and
end-of-set markers) of an A Dat P3 type message.
4.2.1 V̲a̲l̲i̲d̲a̲t̲i̲o̲n̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲
4.2.1.1 C̲h̲e̲c̲k̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲T̲y̲p̲e̲
The validation of a message starts with a check of
the message type. The code for message type should
be bound in the message header (this is a prerequisite,
it has not been confirmed yet).
The message type code is used as a key for a look-up
in a message type table. (See figure 4-1). If the end-of-table-marker
is reached without finding a match between the message
type code of the message and one of the entries in
the message type table, it is revealed that the incoming
message is of a type unknown to the security filter
site. Hence, action shall be taken as described in
"Revelation of and Illegal Message".
If, however, a match is found in the table, the corresponding
message type address shall be used for further processing.
4.2.1.2 C̲h̲e̲c̲k̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲T̲y̲p̲e̲ ̲F̲o̲r̲m̲a̲t̲
The message type address read in the Message Type Table
will point at a Message Type "X" Table, and the Validation
Program code will determine which path of the Validation
program shall be followed.
Throughout thus description the A Dat P-3 type message
is referred, since that type is the only presently
known to the study team. All other message types will
be handled in a similar or simpler way.
Consider, this, that it has been determined that the
actual message is of the A Dat P-3 type, and the Message
Type "X" Table actually pointed at by the address from
the Message Type Table, is the Message Type "A Dat
P-3" Table, and the corresponding validation program
code leads to the process validating the A Dat P-3
type messages.
(Other message types may be much simpler than the A
Dat P-3 type. Hence both the program and the table
structure may be much simpler).
The A Dat P-3 type message is a humanly legible message
consisting of numeric, alphabetic, and special characters
grouped to words, numbers, codes, etc., and separated
into fields and sets, resembling words and sentences
in a predefined pattern.
A set ("sentence") has a syntax where the relative
position (sequence) of a field determines the relative
meaning of the content of the field.
A field ("word") may hence contain a numeric value,
an alphabetic value, a (set of) special character(s),
or any combination thereof, depending on what the field
is supposed to express.
All sets and fields are in principle of variable length.
They are delimited by "end-of-set markers" and "field
markers".
4.2.1.3 C̲h̲e̲c̲k̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲I̲d̲e̲n̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
Within the text part of the message the set identifier
"MSGID" is located. It shall be immediately followed
by a field marker (a slash, "/") which is followed
by the message identification (here referred to as
"msgid" written in lower case letters). The "msgid"
is a word of 3 through 8 letters and it is followed
by another field marker.
The "msgid" of the message is isolated and used as
a key for a look-up in the message type "A Dat P-3"
table. If the end-of-table marker i reached without
finding a match between the "msgid" and one of the
entries in the message type "A Dat P-3" table it is
revealed that the message has an identification unknown
to the security filter site. Hence, action shall be
taken as described in "Revelation of an Illegal Message".
If a match is found in the table, the corresponding
Msgid Address shall be used for further processing.
4.2.1.4 B̲r̲e̲a̲k̲d̲o̲w̲n̲ ̲o̲f̲ ̲a̲n̲ ̲A̲ ̲D̲a̲t̲ ̲P̲-̲3̲ ̲T̲y̲p̲e̲ ̲M̲e̲s̲s̲a̲g̲e̲
In order to facilitate the validation of an A Dat P-3
type message a breakdown can be performed. A breakdown
shall not physically touch the message but is rather
the building of a couple of address tables to follow
the message.
The breakdown can be performed by any processor operating
on the message, and it is not necessary to wait until
the validation starts.
The breakdown tables consist of two tables:
one containing the addresses of the end-of-set markers,
one containing the addresses of the field markers.
(See figure 4-3).
The addresses stored in the breakdown tables must be
relative addresses (relative to the start of the message).
The breakdown tables are used to easily locate the
distinct sets and fields of the messages, and - by
simple calculation - to determine the lengths of the
same items.
4.2.2 A̲n̲a̲l̲y̲s̲i̲s̲ ̲o̲f̲ ̲a̲n̲ ̲M̲S̲G̲I̲D̲
4.2.2.1 I̲n̲t̲r̲o̲d̲u̲c̲t̲o̲r̲y̲ ̲T̲e̲x̲t̲ ̲A̲n̲a̲l̲y̲s̲i̲s̲
The Msgid Address of the Message Type "A Dat P-3" Table
points at an MSGID "X" table (see figure 4-4), where
the "X" stands for the "msgid" of the message in question.
Since the security classification and the subject indicator
code(s) (SIC) of a message do not adhere to the normal
set-and-field syntax of an A Dat P-3 type message these
two "lines" of the message must be given special attention.
(The security classification and the subject indicator
code is also called the "introductory text" to distinguish
it from the "main text").
The security classification consists of a classification
statement (e.g. NATO CONFIDENTIAL) which may be followed
by a space and a special handling designator (e.g.
ATOMAL).
It seems to be most feasible to define centrally the
possible security classifications. (Store in a table
common to the entire security filter site all security
classifications that may be used within the filter
site in the direction in question).
Having those security classifications identified by
their relative positions will minimize the necessity
for entries in the MSGID "X" Table to a string as many
bits long as the number of allowed security classifi-
cations in the filter. For the single message id the
bits corresponding to allowed security classifications
could be set to ones, and bits corresponding to not
allowed security classifications set to zeroes.
The subject indicator codes must be listed one by one.
In the message they can be located by searching for
the word "SIC". This word is followed by a space character
and a three letter abbreviated subject indicator code.
This subject indicator code must be found in the list
in the table. If a message contains more than one subject
indicator code each but the last one of them is followed
by a field marker (slash, "/"). All subject indicator
codes must be checked and found in the SIC list in
the MSGID "X" Table.
If the security classification or the subject indicator
codes do not match the information found by means of
the table, the message shall be considered illegal
and action shall be taken as described in "Revelation
of an Illegal Message".
The entries in the MSGID "X" Table for the Introductory
Text will be in a firm fixed format.
4.2.3 M̲a̲i̲n̲ ̲T̲e̲x̲t̲ ̲A̲n̲a̲l̲y̲s̲i̲s̲
4.2.3.1 T̲e̲x̲t̲ ̲S̲e̲t̲ ̲A̲n̲a̲l̲y̲s̲i̲s̲
Following the entries for the introductory text the
MSGID "X" Table will contain a number of SET entries
corresponding to the number of allowed, differently
named sets within the message (see figure 4-4).
Each set entry is identified by a set identifier, in
the figure represented by "SET 1", "SET 2", etc. The
set identifier (SETID) corresponds to the identifier
placed in front of a set within the message.
The first set of the main text is placed immediately
after the SICs (Subject Indicator Codes).
The following sets will be located immediately after
each end-of-set marker except the last one, which marks
the end of message. Hence, all but the first set can
be located using the A Dat P-3 Breakdown Table, see
figure 4-3.
4.2.3.2 M̲O̲C̲ ̲C̲o̲d̲e̲
The next entry in the table entity is the MOC code
(Mandatory/Optional/Conditional).
This code can be
O set is optional, may or may not
be present in one or multiple
appearances
M set is mandatory and shall appear
one or multiple times
C conditional. See conditions.
Other codes may be defined
4.2.3.3 C̲o̲n̲d̲i̲t̲i̲o̲n̲ ̲C̲o̲d̲e̲
The condition code is only applicable for sets which
are conditional ("C" in MOC code).
The condition may be either "mandatory while X" or
"not allowed while X", where X is the presence of another
set.
The condition can be described in the following way:
If SET2 shall be present while SET1 is present the
entry for SET1 can contain in the condition code field:
+ SET2
If SET1 and SET2 are mutually inclusive (when one of
them in present, the other must also be present) also
the entry for SET2 must contain in its condition code
field:
+ SET1.
If SET2 may be present whether or not SET1 is present
but it shall be present if SET1 is present, only the
entry for SET1 must contain the condition code.
If the presence of SET1 forbids the presence of SET2,
the SET1 condition code field must contain -SET2.
Rules for mutual exclusiveness follow the rules described
above.
4.2.3.4 S̲e̲g̲m̲e̲n̲t̲a̲t̲i̲o̲n̲
Part of a message may be segmented. This means that
a number of sets form a segment which may be repeated.
If a set is part of a segment this must be marked by
a code in the SEGM field of the table entry for the
set. The same code must appear in each set belonging
to one segment, e.g. S1.
If a set forms part of a segment the condition codes
apply within each segment.
4.2.3.5 F̲i̲e̲l̲d̲ ̲T̲a̲b̲l̲e̲ ̲A̲d̲d̲r̲e̲s̲s̲
Finally the MSGID "X" Table shall contain the address
of a Field Table.
4.2.3.6 S̲e̲t̲ ̲L̲e̲v̲e̲l̲ ̲V̲a̲l̲i̲d̲a̲t̲i̲o̲n̲
The set level validation must be performed using the
MSGID "X" Table.
Using each set entry in the table the sets of the message
are scanned. During this scanning it must be checked
that the message does not contain sets not specified
in the table. In case an unspecified set is identified
the message shall be considered illegal and action
shall be taken as described in "Revelation of an Illegal
Message".
Each set specified in the table is searched in the
message. If the table specifies the set to be mandatory
it shall be found. If the condition code for an existing
set demands the presence of another set, the presence
of that other set shall be checked immediately. If
the condition code demanding the presence of another
set appears within a segment, i.e. prior to a new appearance
of the first set.
The check for fulfilment of conditions shall be performed
in one level only at the time. (Multilevel conditions
will be checked eventually when the subsequent sets
are checked).
When the set level validation has been performed it
has been verified that:
- all required sets are present
- all present sets are specified
and allowed
If any of the checks fails the message shall be considered
illegal and action shall be taken as described in "Revelation
of an Illegal Message".
When the set level validation has come to an end the
field level validation is invoked.
4.2.3.7 F̲i̲e̲l̲d̲ ̲L̲e̲v̲e̲l̲ ̲V̲a̲l̲i̲d̲a̲t̲i̲o̲n̲
When the set level validation is brought to an end
the field level validation can commence.
The message is validated starting with the first set
and validating the fields of each set until the messages
are exhausted.
The set identifier is used to find the set description
in the MSGID "X" Table (see figure 4-4). The field
table address of this table is used to locate the field
table for each set. The field table (see figure 4-5)
describes the fields of a set in their order of appearance.
A field or a group of fields of a set may be repeated
provided that it/they form the end of the set.
For each field of the set the field table contains
a number of entries. One of them is the Validation
Type. The validation type is a code that determines
which part of the validation program shall be used
for the field in question. Various types can be used,
and a number of them will be described here. This description
does not attempt to be exhaustive since not all types
of validation are thoroughly described to the study
team. For the eventual implementation of a security
filter it is, however, crucial that all types are unambiguously
described and that no superfluous routines exist.
4.2.3.8 F̲i̲e̲l̲d̲ ̲V̲a̲l̲i̲d̲a̲t̲i̲o̲n̲ ̲T̲y̲p̲e̲s̲
A number of various types of field constraints has
been identified. In order to ensure that all constraints
are adequately fulfilled an equally varied number of
checks must be performed.
The checking types identified are:
List of specific data (Data List)
Within certain limits (Range)
Special check (Complex Structure)
Suspend for human validation
The data list checking is performed by comparing the
content of a field with each entry of a list of all
legal data for this field.
The range checking is performed by comparing the content
of a field with one or more pairs of lower and upper
limits for legal values. This type seems most useful
for numeric values.
The complex structure checking refers to fields the
contents of which are a combination of fixed and varying
parts.
Certain very complex or undefined structures can be
suspended for human validation if the security filter
is equipped with operator communication equipment (see
"Suspension").
In the definitions of fields (when originally defining
messages) certain attention is paid to the length of
fields and to the composition of their contents. Such
definitions are of less importance when checking a
message for legality. If, for instance, the legal contents
of a field is "A17", "B8" or "CK15" it is quite obviously
of no concern that the length is 2-4 characters, and
that the syntax is one or two alphabetic characters
followed by one or two numeric characters.
A field is considered the characters starting immediately
after a field marker and ending immediately before
the next field marker or end-of-set marker. The length
of the field with the three forementioned examples
will then be 3, 2 and 4. If the field is expanded to
its maximum length of four in the two first cases it
will be illegal since it will then contain one or two
space characters, which are not described in the legal
contents.
In few - if any - occasions will the syntax be of great
interest, since it is the semantics which set the legality
or illegality of the content of the field.
4.2.3.9 L̲i̲s̲t̲ ̲o̲f̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲ ̲D̲a̲t̲a̲
If - as mentioned above - the legal contents can be
listed as a number of specific values the validation
can be performed by comparing the actual content of
a field with each item in a list of all legal possibilities.
This can be done by using a Data Address field in the
Field Table (figure 4-5) which points at a Data Address
Table (see figure 4-6, left part) in which each entry
is an address pointing at an item in a data list (see
figure 4-6, right part). The length of each item in
the data list is determined by subtracting the address
from the next address.
4.2.3.10 W̲i̲t̲h̲i̲n̲ ̲C̲e̲r̲t̲a̲i̲n̲ ̲L̲i̲m̲i̲t̲s̲
If the legal content of a field can be described as
being within a certain range it is possible to perform
the validation by comparison of the actual content
of the field with an upper limit and a lower limit.
A such range check is most conveniently used on numeric
values.
When a range check is performed on numeric values a
length check must also be performed since a superfluous
amount of zeroes (leading zeroes or tailing zeroes
after a decimal point) could be an information carrier.
If the range check is performed on integer values all
characters must be numeric (0-9), and the range can
be given as an upper and a lower limit. If the integer
may be positive or negative it must be specified which
signs are legal, and whether the signs are used as
prefixes or suffixes to the figure.
If broken numbers are allowed it must be clearly stated
how they must be represented. If a decimal number is
presented with a fixed decimal point not shown, the
field can be handled as if it was an integer.
The limits are stored in the Data Address Table (see
figure 4-6) in the same way as for lists of specific
data. The limits are stored as pairs. If more than
one range is legal, additional pairs of limits can
be stored quite easily.
Thus, the only difference seen in the Field Table (figure
4-5)
between data list type fields and range type fields
is the validation type.
4.2.3.11 S̲p̲e̲c̲i̲a̲l̲ ̲C̲h̲e̲c̲k̲s̲
The constraint imposed upon the legal contents of fields
can be various. On the preceding pages are discussed
the use of a limited number of exactly specified values
(words etc.) and a range within certain limits.
Certain combinations of those ways of constraining
the legal contents are also anticipated. Such combinations
are handled by what is here referred as special checks.
Special checks encompass such complex structures as
date-
time groups, geographical positions, etc.
4.2.3.12 D̲a̲t̲e̲ ̲T̲i̲m̲e̲ ̲G̲r̲o̲u̲p̲ ̲(̲D̲T̲G̲)̲
A Date Time Group (DTG) normally consists of 6 numeric
characters and one alphabetic character. The first
two numeric characters specify the day of month (01-31),
the next two numeric characters specify the hour (00-24),
and the last two numeric characters specify the minute
(00-59). The alphabetic character specifies the time
zone (A-Z).
To check the validity of such a complex structure it
is necessary to perform a number of comparisons.
a) The six numeric characters seen as a whole must
be within the limits 010000 and 312400.
b) The four rightmost numeric characters seen as a
whole must be within the limits 0000 and 2400.
c) The two rightmost numeric characters seen as a
whole must be within the limits 00-59.
d) The alphabetic character must be one of the valid
time zone designators.
In addition to the normal DTG may in some cases be
added a space character and a three letter abbreviation
for the month.
In such cases it must also be checked that the three
letter abbreviation is one of the legal month name
abbreviations, and in addition it can be checked that
the day of month does not exceed the number of days
in months with less than 31 days.
Furthermore, there is a possibility of adding the year
of century (00-99). In such cases also the exact number
of days of February may be checked.
All these checks may seem very simple repetitions of
ordinary data list checks and range checks but in order
to keep the routines "clean" it is advisable to implement
a special routine for the DTG block. By keeping the
routines clean is meant that the standard routines
operate on entire fields (from a field marker to the
next field marker or end-of-set marker).
4.2.3.13 G̲e̲o̲g̲r̲a̲p̲h̲i̲c̲a̲l̲ ̲P̲o̲s̲i̲t̲i̲o̲n̲
Another type of special check is a geographical position.
A such position can be given as a latitudinal value
followed by a longitudinal value. In the most precise
form it includes degrees, minutes and seconds, e.g.
421530N - 0152610E
When defining a larger area the seconds may be omitted,
e.g.
4215N - 01526E
(The possibility of even more variations is not investigated,
but it is not excluded).
Analoguous to what is described above for the date-time-group
this complex structure must be validated in a special
routine which is able to handle all viariations allowed.
4.2.3.14 O̲t̲h̲e̲r̲ ̲S̲p̲e̲c̲i̲a̲l̲ ̲C̲h̲e̲c̲k̲s̲
By a thorough analysis of the fields defined for transmission
on filtered lines it must be anticipated that other
types of special checks will be found possible.
4.2.3.15 R̲e̲v̲e̲l̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲a̲n̲ ̲I̲l̲l̲e̲g̲a̲l̲ ̲M̲e̲s̲s̲a̲g̲e̲
Whenever, during the validation, the program fails
to find a match between an item of the message to be
validated and the proper set of validation information,
or the message is returned from suspension without
the proper acceptance flag(s), the message shall be
considered illegal and it shall be rejected.
The mismatch may be found in any of the various checks:
a missing mandatory set; the presence of a set excluded
by the presence of another set; improper length or
content of a field; or whatever syntactical or semantie
error that might be found.
When a message is rejected the following steps shall
be taken:
- The message shall be logged
- The frequency of illegal messages shall be calculated
- If this frequency exceeds the specified maximum,
the alert shall be sounded
- All buffer and memory areas containing (parts of)
the message shall be erased.
All these steps are rather primitive of nature. Their
implementation will be dependent of the hardware ultimately
delivered, and it is left to the bidders to describe
ways and means to ensure their secure functions.
4.2.3.16 S̲u̲s̲p̲e̲n̲s̲i̲o̲n̲ ̲o̲f̲ ̲a̲ ̲M̲e̲s̲s̲a̲g̲e̲
One of the validation types described in paragraph
4.2.3.8 is "suspend for human validation".
This validation type can be used for a field, the legal
contents of which is of a character which makes it
impossible or impractical to prespecify it when defining
the legal message. An example is a free text field.
The suspension for human validation may be used only
on the provision that the security filter site in question
is equipped with operator communication equipment,
e.g. a visual display unit.
Even though only one single field or a small number
of fields shall be subject to human validation, the
whole message shall be available for the operator,
if applicable by forward and backward scrolling. The
reason for this is that the legality of the contents
of the fields to be humanly validated may be depending
on the context.
Prior to the suspension the entire message shall be
searched for fields for human validation in order to
have all fields validated within one suspension.
When displaying the message to the operator, fields
to be validated shall be clearly marked, e.g. by highlighting
(high intensity light). The operator shall have no
means to alter neither the message as stored in memory,
nor as displayed on the screen, except that he may
switch off the highlighting by pressing one of the
two keys to either accept or reject the message.
The operator's accept of a field shall raise a flag
for subsequent checking by the computer.
The operator's rejection of one single field shall
trigger the immediate transfer of control to the computer
to reject the message as being illegal.
4.3 P̲R̲I̲N̲C̲I̲P̲L̲E̲S̲ ̲O̲F̲ ̲M̲E̲S̲S̲A̲G̲E̲ ̲S̲P̲E̲C̲I̲F̲I̲C̲A̲T̲I̲O̲N̲
The auxiliary elements of the security filter encompass
the tasks performed off-line in order to support the
operational security filter.
Though these tasks are performed off-line, aperiodically,
and possibly far away from the security filter sites
they are very essential to the filter operation, and
the same demand for care and precision applies to the
auxiliary functions as to the operational security
filter functions.
In this chapter is emphasized mainly on the definition
of legal messages and the conversion of the definitions
into validation information tables.
4.3.1 M̲e̲s̲s̲a̲g̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
The filter function in the security filter is based
on complete "knowledge" about the legal contents of
a message stored in the filter.
Hence, the legal messages must be specified very carefully
and in a structured way so that it is possible for
the security filter software to compare an actual message
with the set of information stored in the filter itself.
To achieve this goal the following chain of actions
must be performed:
- Describe a legal message and all possible legal
contents plus interrelationship of contents.
- Define these descriptions in a formal, structured
way, useful as computer input.
- Let an off-line computer convert this input into
well-structured table information.
- Store the converted validation information in adequate
memory.
- Mount the storage medium in the security filter.
4.3.1.2 D̲e̲s̲c̲r̲i̲b̲e̲ ̲a̲ ̲M̲e̲s̲s̲a̲g̲e̲
Existing regulations already give rules and advice
for the description of a new message. These rules must
of course be obeyed, and they help to get very close
to the goal.
Though the existing procedures are fully sufficient
to ensure consistency and obeyance of security regulations
in a human environment, it must be a little refined
in certain points when it comes to automated handling
in a computer environment.
For instance, for a certain field it may be defined
(today) that it may contain "an item from the x list...".
When defining this it is implied that
a. the operator preparing the message knows the x-list
or has access to it,
b. only such items from the list which are applicable,
will be used.
In a definition to the security filter it must be explicitly
stated which items are legal at the filter in question.
Accordingly, either the total list must be defined
in extenso, or a subset including those items which
are legal at the security filter in question.
4.3.1.3 F̲o̲r̲m̲a̲l̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
In order to ensure correct conversion of the Legal
Message Description the definition must be performed
in a rather formalized way. Various approaches are
feasible, but taking into consideration the complexity
of ADat P-3 messages and the anticipated frequency
of modifications the following approach is suggested
(although details may be altered in accordance with
the ultimate solution).
A number of preprinted forms are used to specify the
details of a message, a set, and a field. Sketches
for the following forms are shown:
Message Definition Form, figure 4.2.4-1
Set Definition Form, figure 4.2.4-2
Field Definition Form, figure 4.2.4-3
On the sketches the forms are made up with a common
header and footer.
The header is used for identification and sorting sequence.
The footer is meant as an illustration of the approval
procedure. It may be quite different from the boxes
shown but the main idea is that every single sheet
of the definition must be approved in some way before
it is input into the message description converter.
4.3.1.4 M̲e̲s̲s̲a̲g̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲ ̲F̲o̲r̲m̲
The message definition form as sketched in figure 4.3.1-1
must be filled in in accordance with the following
rules:
- S̲e̲c̲u̲r̲i̲t̲y̲ ̲F̲i̲l̲t̲e̲r̲ ̲S̲i̲t̲e̲ must contain an identification
of the site and the direction in which the message
shall be legal. The "name" or "title" of the security
filter site could be a combination of the "names"
of the sending and receiving ADP systems.
- M̲e̲s̲s̲a̲g̲e̲ ̲I̲d̲ field must contain the MSGID of the
message, left adjusted in the field. If the MSGID
is shorter than 8 characters the remaining characters
of the box shall be left blank.
- S̲e̲t̲ ̲I̲d̲, S̲e̲t̲ ̲N̲o̲, and F̲i̲e̲l̲d̲ ̲N̲o̲ contain pre-printed
zeroes since they are not applicable on this form.
- P̲a̲g̲e̲ shall only be used if a definition is too
voluminous to be accommodated on one page. When
more than one page is used the pages must be paginated
in ascending sequence.
- S̲e̲c̲u̲r̲i̲t̲y̲ ̲C̲l̲a̲s̲s̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ must contain the highest
allowed security classification spelled out exactly
as used in the message. Must be left adjusted.
- S̲p̲e̲c̲i̲a̲l̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲ must contain (if applicable) the
special handling designator used in the message
and spelled likewise. Must be left adjusted.
- S̲u̲b̲j̲e̲c̲t̲ ̲I̲n̲d̲i̲c̲a̲t̲o̲r̲ ̲C̲o̲d̲e̲ must contain the allowed
subject indicator codes in accordance with the
NASIS instruction.
4.3.1.5 S̲e̲t̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲ ̲F̲o̲r̲m̲
The set definition form as sketched in figure 4.3.1-2
must be filled in in accordance with the following
rules:
- S̲e̲c̲u̲r̲i̲t̲y̲ ̲F̲i̲l̲t̲e̲r̲ ̲S̲i̲t̲e̲ as described above under Message
Definition Form and with the same contents.
- M̲e̲s̲s̲a̲g̲e̲ ̲I̲d̲ as described above under Message Definition
Form and with the same content as the message which
the set forms part of.
- S̲e̲t̲ ̲I̲d̲ must contain the set identifier. If the
set identifier is less than eight characters it
must be left adjusted and the remaining characters
must be left blank.
- S̲e̲t̲ ̲N̲o̲ must contain a number (with leading zeroes)
indicating the sequence in which the sets are supposed
to appear in the message. The box - rather than
the set id - will be used for sorting purposes.
- F̲i̲e̲l̲d̲ ̲N̲o̲ must contain zeroes (Pre-printed).
- P̲a̲g̲e̲ is only used if more than one page is necessary
to describe the set. (See above under Message Description
Form).
- M̲a̲n̲d̲/̲O̲p̲t̲/̲C̲o̲n̲d̲ must contain an "M", an "O", or a
"C", respectively, to indicate whether the set
is mandatory, optional, or conditional.
- C̲o̲n̲d̲i̲t̲i̲o̲n̲ is applicable only if the set is conditional
(a "C" in Mand/Opt/Cond). The condition must be
indicated by a "-", a "+", or a "-+" followed by
the set id of the other set of the condition, as
stated in paragraph 4.3.2.9 Condition Description.
If a condition is not mutual only the set containing
the condition shall be considered conditional.
The other set must be considered optional.
- S̲e̲g̲m̲e̲n̲t̲ is applicable only if the set forms part
of a segment. This box must then contain an arbitrary
code which is repeated in all sets belonging to
the same segment.
- R̲e̲p̲e̲a̲t̲ is applicable only for sets which are repeatable
by themselves, i.e. a set is repeated without other
sets interspersed as the case normally is when
a segment is repeated. If a set is repeatable this
box must contain an "R", otherwise it shall be
left blank.
4.3.1.6 F̲i̲e̲l̲d̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲ ̲F̲o̲r̲m̲
The field definition form as sketched in figure 4.3.1-3
must be filled in for each field of a set in accordance
with the following rules:
- S̲e̲c̲u̲r̲i̲t̲y̲ ̲F̲i̲l̲t̲e̲r̲ ̲S̲i̲t̲e̲ as described above under Message
Definition Form and with the same contents.
- M̲e̲s̲s̲a̲g̲e̲ ̲I̲d̲ as described above under Message Definition
Form and with the same content as the message which
the field forms part of.
- S̲e̲t̲ ̲I̲d̲ as described above under Set Definition
Form. The content must be the set identifier for
the set which the field forms part of.
- S̲e̲t̲ ̲N̲o̲ as described above under Set Definition
Form. The content must be the set number of the
set which the field forms part of.
- F̲i̲e̲l̲d̲ ̲N̲o̲ must contain a number (with leading zeroes)
indicating the sequence in which the fields shall
appear in the set. The field numbers must be in
ascending order within each set.
- P̲a̲g̲e̲ is used if the field description cannot be
accommodated within one single sheet. This will
typically be the case when the list of legal values
is very long.
- M̲a̲n̲d̲/̲O̲p̲t̲ must contain an "M" or an "O", respectively,
to indicate whether a field is mandatory or optional.
- R̲e̲p̲e̲a̲t̲a̲b̲l̲e̲ must contain an "R" if the field is
repeatable (alone or as a member of a group of
fields), and must otherwise be left blank..
- H̲y̲p̲h̲e̲n̲ ̲A̲l̲l̲o̲w̲e̲d̲ must contain an "-" if a hyphen
is legal value for a mandatory field.
- M̲i̲n̲/̲M̲a̲x̲ ̲L̲e̲n̲g̲t̲h̲ is a set of two boxes containing
the minimum length and the maximum length, respectively,
of the field.
- V̲a̲l̲i̲d̲a̲t̲i̲o̲n̲ ̲T̲y̲p̲e̲ must contain a code indicating
the type of validation to be performed on this
particular field.
- L̲e̲g̲a̲l̲ ̲V̲a̲l̲u̲e̲s̲ is a set of boxes meant to contain
the list of legal values, if applicable. The first
character of each box is separated from the rest
of the box by a vertical line. This first character
is used to indicate that the rest of the box is
a continuation of the preceding box, which makes
it possible to define legal data string values
longer than one box. One box must not contain more
than one legal value. The first separate character
in the first line will only be used on continuation
sheets where the first line of legal values forms
a continuation of the last line of the preceding
sheet. Any character in the separate character
box will be considered a continuation mark, and
when it is not used as such it shall be left blank,
except when used to avoid repetition of a data
list.
In case several fields within one message have
the same legal contents, i.e. they shall use the
same data list of legal values, repetition of the
data list can be avoided. The first time the common
data list appears in the message definition it
must be written in total. In following field definitions
only a reference to the field definition containing
the data list is necessary. It can be done by putting
an equal sign ("=") into the separate character
box of the first line of legal values, and in the
"legal value" stating the set number and field
number of the field definition containing the data
list. The conversion program shall then use the
Data Address Table Address from that field definition,
thus establishing multiple references to that particular
data list.
SECURITY FILTER SITE
MESSAGE DEFINITION FORM
MESSAGE ID SET ID SET NO FIELD NO PAGE
SECURITY CLASSIFICATION
SPECIAL HANDLING
SUBJECT INDICATOR CODE
DATE TITLE RANK AND NAME SIGNATURE
DEFINED
PROOF READ
APPROVED
AUTHORIZED
FIGURE 4.3.1-1
SECURITY FILTER SITE
SET DEFINITION FORM
MESSAGE ID SET ID SET NO FIELD NO PAGE
MAND/OPT/COND
CONDITION
SEGMENT
REPEAT
DATE TITLE RANK AND NAME SIGNATURE
DEFINED
PROOF READ
APPROVED
AUTHORIZED
FIGURE 4.3.1-2
SECURITY FILTER SITE
FIELD DEFINITION FORM
MESSAGE ID SET ID SET NO FIELD NO PAGE
MAND/OPT
REPEATABLE
HYPHEM ALLOWED
MIN/MAX LENGTH
VALIDATION TYPE
LEGAL VALUES
DATE TITLE RANK AND NAME SIGNATURE
DEFINED
PROOF READ
APPROVED
AUTHORIZED
FIGURE 4.3.1-3
4.3.2 M̲e̲s̲s̲a̲g̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ ̲C̲o̲n̲v̲e̲r̲s̲i̲o̲n̲
When the legal messages have been defined, the definitions
shall be converted into validation tables, which form
the set of validation information for one security
filter site.
The conversion must be performed by an off-line computer
utilizing a computer program developed for this purpose,
called the Message Description Converter.
The input to the Message Description Converter program
are the Message Descriptions as a result of the Legal
Message Definition (See chapter.....).
The input form must be decided based on local circumstances.
It might be paper tape or floppy disk, or it might
be input direct on a terminal, or using other input
media.
After input the message description (source) must be
stored intermediately, e.g. on a disk storage, and
there ought to be a sort of editing facility in order
to enable corrections of typing errors etc.
If a word processor or another computer with editing
facilities are used for input preparation the necessity
for editing facilities in the message description converter
computer can be avoided.
The first part of the message description converter
must be a "debugger" which checks the syntax of the
message descriptions. The debugger shall read the intermediately
stored message descriptions, print a list of them,
check the syntax, and - in case syntax errors are found
- print error information on the message description
list.
4.3.2.1 L̲e̲g̲a̲l̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
Any message to be allowed to pass a security filter
site shall be defined to that particular security filter
as being legal.
Certain procedures must be laid down to ensure that
a message is legal and authorized as a such. This will
imply the cooperation of authorized personnel from
both of the communicating ADP systems. The exact rules
must be defined by military security authorities and
are out of scope for this specification.
The following must be considered a suggestion of how
the legal message definition can be performed. As is
the rule throughout the specification emphasis has
been laid on the A Dat P-3 type of message, and all
other message types are virtually ignored.
4.3.2.2 O̲v̲e̲r̲a̲l̲l̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲ ̲L̲a̲y̲-̲o̲u̲t̲
The message definition must follow rather strict rules
to ensure adherence to security regulations and enable
a not too complex message description converter program
to perform the conversion into tables.
The philosophy behind this is that the simpler a task,
the more secure a task.
A more complex or sophisticated message description
converter might seem more user friendly, but since
the task of message definition is anticipated to be
rather infrequent it may be expected that few - if
any - persons will ever become really familiar with
such a task.
Furthermore, if preprinted message definition forms
are introduced they may soon show up to be exactly
as user friendly as a very sophisticated interactive
message definition system implemented on a display
unit.
4.3.2.3 D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲ ̲o̲f̲ ̲a̲ ̲M̲e̲s̲s̲a̲g̲e̲
A message must be defined in detail starting with defining
it as belonging to a specific
MESSAGE TYPE
(During the rest of this chapter we are only discussing
messages belonging to the messsage type "A Dat P-3")
When a message is identified as an A Dat P-3 message
the next identification object is the
MESSAGE IDENTIFICATION
which is the name found in the MSGID set of the message.
Subsequently, the message is divided by means of
SET IDENTIFIERS
describing each of the sets of which the message is
composed.
Simultaneously with the division into sets, each set
is divided into
FIELDS.
4.3.2.4 M̲e̲s̲s̲a̲g̲e̲ ̲T̲y̲p̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
When the message description converter recognizes the
message type (code) it looks up in the Message Type
Table to see if this message type already exists.
If the message type exists in the message type table
the corresponding address of "Message Type "X" Table"
is used to locate the table into which the new message
identifier shall be stored.
If the message type does not already exist, a new entry
is made in the Message Type Table, the end-of-table
marker is moved to the next entry address, adequate
space is located in memory for building a new Message
Type "X" Table, and the validation program type is
found in a table within the Message Description Converter
program. If a validation program cannot be found using
the message type code as a key, an error message is
issued and the preceding actions are backed out.
4.3.2.5 M̲e̲s̲s̲a̲g̲e̲ ̲I̲d̲e̲n̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
Since we are discussing only A Dat P-3 type messages
we are now operating with a located or newly established
Message Type "X" Table unique for the A Dat P-3 type
messages. (See figure 2).
The message identification (MSGID) for the message,
the description of which is being converted, shall
be found in this table. If the message identification
already exists this conversion run must be considered
a modification to an existing message description.
The only difference between a modification and a new
specification is that the old entry in the Message
Type "X" Table can be used with a new address to a
MSGID "X" Table. (See below).
If the message identification does not exist in the
Message Type "X" Table it shall be added, followed
by the address of an adequate storage area, where the
next lower level table in the hierarchy can be located.
The next lower level table is the MSGID "X" Table (see
figure 4), which is unique to this message type and
identification.
The MSGID "X" Table is composed of two distinctive
parts: A fixed part containing information on security
classification and an array part containing set information.
The security classification part consists of a number
of fields (yet undecided) all of which shall contain
either spaces or codes denoting one of the legal security
classifications including special handling designator,
if applicable.
The Subject Indicator Code (SIC) part consists of a
number of fields (yet undefined) all of which shall
contain either space characters or a valid subject
indicator code.
4.3.2.6 A̲r̲r̲a̲y̲ ̲P̲a̲r̲t̲
The array part of the MSGID "X" Table contains set
information, i.e. description of the sets of which
the message shall be composed.
For each set the table shall contain the following
information:
SET IDENTIFIER
MOC CODE
CONDITION DESCRIPTION (if applicable)
SEGMENT RELATIONSHIP (if applicable)
FIELD TABLE ADDRESS
4.3.2.7 S̲e̲t̲ ̲I̲d̲e̲n̲t̲i̲f̲i̲e̲r̲
The set identifier is the first part of a set. It is
a combination of alphabetic and numeric characters
of maximum 8 characters, often combined into a mnemonic
for a description of the set's content.
The set identifier uniquely identifies the set, and
without regard to the message in which it appears it
must be constructed in accordance with overall rules
for that set. In spite of this fact a set must be explicitly
defined toward the security filter for each message
in which it will appear since the legal content of
a set or some of its fields may vary depending on the
message.
4.3.2.8 M̲O̲C̲ ̲C̲o̲d̲e̲
The Mandatory/Optional/Conditional Code (MOC-Code)
must always be specified. If a set is mandatory, then
the message will be illegal if the set is missing.
If a set is conditional also the condition description
must be present, and the condition description must
be checked to see if the set must be present or the
opposite.
4.3.2.9 C̲o̲n̲d̲i̲t̲i̲o̲n̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The condition description is only applicable if the
set is conditional.
The possible conditions adhere to relationship between
sets within a message.
a. The presence of one set demands the presence of
another set
(SETID1 + SETID2)
b. The presence of one set demands the absence of
another set
(SETID1 - SETID2)
c. Condition a may be mutual
(SETID1 + SETID2
SETID2 + SETID1)
(Condition b is automatically mutual)
d. The absence of one set demands the presence of
another set
(SETID1 -+ SETID2)
4.3.2.10 S̲e̲g̲m̲e̲n̲t̲ ̲R̲e̲l̲a̲t̲i̲o̲n̲s̲h̲i̲p̲
The segment relationship must be present if the set
forms part of a segment. The segment relationship is
an arbitrary code chosen for each segment within the
message. It must be the same code used for all sets
of one segment.
If a set forms part of a segment the condition description
will be valid within each set.
If a set contains a segment relationship code which
is not found in another set in the message description,
this means that the set is repeatable in itself.
4.3.2.11 F̲i̲e̲l̲d̲ ̲T̲a̲b̲l̲e̲ ̲A̲d̲d̲r̲e̲s̲s̲
The Field Table Address must be generated as an address
of a memory area where the field address table will
be located.
4.3.2.12 F̲i̲e̲l̲d̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The conversion of the field description must take place
in connection with conversion of the set description
for the set, to which the fields belong.
The fields are identified only by their set identifier
and their relative position within the set (first,
second,.... etc. field within the set).
The field description is placed in a three-level hierarchy
of tables, which are:
FIELD ADDRESS TABLE
DATA ADDRESS TABLE
DATA LIST
4.3.2.13 F̲i̲e̲l̲d̲ ̲A̲d̲d̲r̲e̲s̲s̲ ̲T̲a̲b̲l̲e̲
The upper level table within the field description
is the Field Address Table.
Since the fields are identified only by their relative
position the field address table must refer the fields
in exact the order in which they shall appear within
the set.
The field address table shall contain for each field:
VALIDATION TYPE
DATA ADDRESS TABLE ADDRESS
REPEAT CODE
HYPHEN CODE
MO CODE (I/A)
MINIMUM LENGHT (I/A)
MAXIMUM LENGHT (I/A)
4.3.2.14 V̲a̲l̲i̲d̲a̲t̲i̲o̲n̲ ̲T̲y̲p̲e̲
The Validation Type Code refers to the path in the
validation program in which the field shall be checked.
(Data List check, Range check, etc.)
4.3.2.15 D̲a̲t̲a̲ ̲A̲d̲d̲r̲e̲s̲s̲ ̲T̲a̲b̲l̲e̲ ̲A̲d̲d̲r̲e̲s̲s̲
The Data Address Table Address is a relative address
pointing at an area in memory where the Data Address
Table will subsequently be built.
For certain special checks the data address table may
be omitted, e.g. a Date Time Group check.
4.3.2.16 R̲e̲p̲e̲a̲t̲ ̲C̲o̲d̲e̲
The Repeat Code is a code indicating whether this field
may be repeated within the set or not.
(Only the last field(s) of a set may be repeated).
4.3.2.17 H̲y̲p̲h̲e̲n̲ ̲C̲o̲d̲e̲
The Hyphen Code is a code indicating whether the value
af this field may be replaced by a hyphen. This will
only refer to a field the MO Code of which is "mandatory".
4.3.2.18 M̲O̲ ̲C̲o̲d̲e̲
The Mandatory/Optional Code (MO Code) states whether
this field is mandatory or optional.
If a field is mandatory it may be filled with a hyphen
if the hyphen code allows this.
Optional fields may be omitted only if all subsequent
fields of the set are also omitted (since a field can
only be identified by its relative position).
If a group of fields is repeated none of the fields
within this group may be omitted.
4.3.2.19 M̲i̲n̲i̲m̲u̲m̲ ̲L̲e̲n̲g̲t̲h̲/̲M̲a̲x̲i̲m̲u̲m̲ ̲L̲e̲n̲g̲t̲h̲
The Minimum Length/Maximum Length refer to the number
of characters within a field. If a field (legally)
contains only a hyphen, the minimum length requirement
may be overruled.
For certain fields the min/max lenght are of minor
interest, for instance free text fields and fields
to be checked against a data list. Fields requiring
operator validation may also be defined without explicit
min/max lengths.
4.3.2.20 D̲a̲t̲a̲ ̲A̲d̲d̲r̲e̲s̲s̲ ̲T̲a̲b̲l̲e̲
The Data Address Table is a table contaning only addresses
pointing to the data list. For each field there must
be one separate data address table, unless the validation
type allows the check to be performed without the use
of a data list.
The addresses point to an entry each within the data
list. The length of the entry in the data list is determined
by subtracting the address from the following address
in the data adress table. After the last address must
thus be placed the address of the first character following
the data list for the field in question. (And subsequently
an end-of-table marker).
For range check type fields the data list shall contain
pair(s) of entries. Such pairs are addressed individually
so that the first address points to a lower limit,
the second to an upper limit, etc.
4.3.2.21 D̲a̲t̲a̲ ̲L̲i̲s̲t̲
The Data List is a simple character string which may
be common to all fields of a message. All entries are
placed in the string in the sequence in which they
are defined, and with each entry immediately following
the preceding entry. The division between entries is
determined by the addresses in the Data Address Table.
4.3.3 T̲e̲s̲t̲ ̲a̲n̲d̲ ̲V̲e̲r̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
Prior to the release of a new set of validation information
it must be verified that it will allow legal messages
to pass the security filter, and that it will reject
and log illegal messages.
There are two obviously possible ways to achieves this
goal: either to trust the conversion program to produce
correct validation information, or to perform test
runs to verify the validation information.
The first way - using trusted software for the message
description converter - has certin valuable advantages:
it will probably work faster, it minimises the burden
on auxiliary hardware, and it concentrates the time
and labour consumming human efforts mainly on the definition
of legal messages, removing the task of test material
productions and test performances.
The second way - producing validation information by
use of untrusted software and subsequent testing -
also has some advantages. Its most obvious advantage
is that it gives possibility to share the legal message
definition between two separate bodies, which implies
a mutual, built-in check.
4.3.3.1 T̲r̲u̲s̲t̲e̲d̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲C̲o̲n̲v̲e̲r̲t̲e̲r̲
In case the solution with trusted software is chosen
it implies additional software development effort and
subsequent verification and certification of the software.
This effort will add considerably to the total development
costs for the security filter software. The added cost
in the development phase may be justified by operational
savings during the system life cycle.
On the other hand it must be considered that even if
the greatest possible flexibility is built into the
security filter software, it is impossible to predict
all development in communication and message structure,
even for a relatively short glance into the future.
This means that any innovation or introduction of new
types of messages may imply an expensive and cumbersome
task of reprogramming/modifying the converter software
a̲n̲d̲ a repeated verification and certification round.
Nevertheless, modification of legal message description,
and introduction of new legal messages will be greatly
facilitated by the use of trusted software. Provided
the composition of message types can be expected to
remain stable for a long period of time, the trusted
software solution is therefore recommended.
4.3.3.2 U̲n̲t̲r̲u̲s̲t̲e̲d̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲C̲o̲n̲v̲e̲r̲t̲e̲r̲
An untrusted message description conversion program
shall in principle perform equally stable as a trusted
one. Only is it not trusted to do so, which means that
the output, the validation information, must be tested
very thoroughly to verify that it acts correct.
An untrusted program can be modified rather easily.
Hence, use of an untrusted converter will give the
possibility of fast and easy introduction of validation
information for new message types.
The importance of such an advantage must be seen in
the light of the close cooperation between the converter
and the security filter validation program. There is
not much use for validation information, which cannot
be handled by the validation program, and it will even
be harmful if it causes the filter to act erroneously.
The use of untrusted software for the message description
conversion program will thus be most advantageous if
relatively frequent changes of message t̲y̲p̲e̲s̲ are expected.
Even though both the conversion program and the validation
program must be modified, only the validation program
needs be certified.
Also, untrusted software for message description conversion,
can be combined with a trusted "certifier".
A certifier is a computer program which reads the validation
information and communicates with an operator terminal.
The certifier can display the validation information
for one message a small part at the time,and it can
compare two different issues of validation information
for one message and display the differences.
The first function helps the security officer check
a complete message description, which is necessary
when a new message is introduced.
The second function helps the security officer check
the changes, when a message description has been modified.
4.3.3.3 T̲e̲s̲t̲ ̲S̲e̲t̲-̲U̲p̲
A testing facility will be necessary whether a trusted
or an untrusted message description conversion program
is chosen. In the latter case the test facility will
have a very central position within the off-line software
production office.
Ideally the test is performed on site, letting the
two ADP-Systems communicate a great number of test
messages. This requires, however, that both ADP Systems
be kept under strict surveillance by authorised personnel
during the test, that ordinary classified communication
is suspended, and it is assured that all "false" messages
used for test purposes can be securely removed from
the receiving system before any action is taken by
either the system or the staff.
Such a test set-up seems to be rather vulnerable and
time and labour consuming, whereas a special test filter
will offer great advantages.
A test system must be constructed as a model of an
operative security filter. The optimal solution is
a real security filter system configures exactly as
the filter it is replacing, and loaded with exactly
the same software as used on the site. This approach
will give an exact picture of the abilities and possible
errors or mistakes of the filter and its software.
The communication of test messages to the test filter
and the reception of accepted test messages retransmitted
from the test filter can be done by any computer supplied
with a line interface equal to that of the real operative
ADP systems. It will even be possible to let one computer
act as both the ADP systems involved in the communication.
The use of such special test set-up not only releaves
the staff of the ADP systems of the problems arising
from the special attention and surveillance necessary
when testing on live system. In case the security filter
and its line interface can work faster than normal
transmission speed, it also opens the possibility of
performing the testing within a narrower time frame
than possible on the "live" system.
The number and variation of test messages to be sent
within a test run depend partly on the character of
the message description conversion program (trusted
or untrusted), partly on the scope and complexity of
the validation information to be tested.
4.3.3.4 T̲e̲s̲t̲ ̲M̲a̲t̲e̲r̲i̲a̲l̲ ̲P̲r̲o̲d̲u̲c̲t̲i̲o̲n̲ ̲
The testing of the security filter software and validation
information requires an amount of varying test messages,
including both legal and illegal messages.
For a small test run of a set of validation information
produced by trusted software only a small amount of
test messages is necessary. It can be produced quite
easily by an experienced staff member who takes into
consideration which points of the validation information
are critical. The tools needed for this purpose can
be limited to a pad of paper and an input terminal.
If, however, the test concerns a set of validation
information produced by untrusted software (or, for
some other reason, a thorough test in desired) a much
larger amount of test data is necessary. And not only
must the amount be much larger: also the variation
and complexity of the test messages must be of a high
degree.
To achieve this within a reasounable time frame, the
assistance of a computer is necessary.
There are produced a number of test data generators
already, but unfortunately we have not succeded in
finding one commercially available test data generator,
which is useful as it is or can be modified to fulfil
the requirements of the security filter. Hence, it
will be necessary to develop a test data generator
especially for the security filter.
A generalized test data generator (TDS) is a very complex
piece of software. Dedicating a TDG to a specific project
reduces the complexity considerably (and also reduces
the TDG's useability). For the TDG specificly produced
for the security filter project the complexity will
still be rather high (compared to a TDG for an ordinary
commercial project), but the necessary effort can be
reduced by good planing and developing the TDG as a
by-product of the message description conversion program.
The test data generator shall produce a number of legal
messages and a number of illegal messages. The illegal
messages shall be so constructed that (normally) only
one constraint is violated within one message. This
is necessary in order to verify that exactly that violation
causes the rejection in the security filter.
5 I̲D̲E̲N̲T̲I̲F̲I̲E̲D̲ ̲M̲O̲D̲U̲L̲E̲S̲
This chapter discusses the modules identified as necessary
in order to implement a security filter system in accordance
with the preceding system description.
5.1. S̲O̲F̲T̲W̲A̲R̲E̲ ̲M̲O̲D̲U̲L̲E̲S̲
5.1.1 O̲n̲-̲l̲i̲n̲e̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲
The security filter on-line software can be functionally
separated into a number of packages. These functional
packages - as shown in figure 5.1-1 - may be divided
between a number of processors, which need not have
the same characteristics or capabilities.
The functional packages are:
L̲i̲n̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲ - a sensitive but not critical package.
May be a standard software package or hard coded
hardware. Works in principle independent of the
rest of the on-line software.
I̲n̲i̲t̲i̲a̲t̲o̲r̲ - is invoked by a press on the "start" button
or
other
physical
intervention.
Sets
up
initial
values
of
registers,
instruction
counters,
etc.
When
finished
it
leaves
control
to
Control
and
Monitor
package,
and
is
since
idle
until
next
start
or
restart.
C̲o̲n̲t̲r̲o̲l̲ ̲a̲n̲d̲ ̲M̲o̲n̲i̲t̲o̲r̲ - governs the common status memory.
All communication between the separate parts of
the on-line software is made as status signals
to and from the control and monitor package. A
process is started when the control and monitor
has set a specific bit pattern in the common status
memory. When a process is finished, the result
is stored as a status, which gives the necessary
input to the control and monitor to determine which
process to start next. When a processor will otherwise
be idle, the control and monitor may start the
built-in test.
If an error status is reported from any part of
the security filter software or hardware, all processors
shall be stopped, possibly after the display of
an error message.
Figure 5.1-1…01…ON-LINE SOFTWARE PACKAGES
B̲u̲i̲l̲t̲-̲I̲n̲-̲T̲e̲s̲t̲ - a program which checks the contents
of
(a part of) program memory. In connection with
the compilation of a program is calculated a checksum
for a certain program storage area following a
specific algebraic formula. The checksum is stored
in connection with the program or with address
information locating the program memory area in
question. When invoked, the built-in test program
calculates the checksum following the same rules.
If it gets the same result an OK status is reported.
Otherwise an error status is reported.
If the possibility exists, that a temporary error
can occur, the built-in test program may be invoked
several consecutive times in case of an error,
before the ultimate decision of disabling the security
filter is taken. The program must though not be
run until an OK status has been reported.
V̲a̲l̲i̲d̲a̲t̲i̲o̲n̲ - the soul and heart of the security filter.
It must probably be separated in a number of modules
executing in different processors. Each module
operates on status signals from control and monitor,
and each module sends status reports to control
and monitor.
L̲o̲g̲g̲i̲n̲g̲ - a program module that writes rejected messages
on
the
logging
medium
upon
a
reject
status
from
control
and
monitor.
Each
rejected
message
shall
be
physically
written
on
the
logging
medium,
whereupon
a
"written"
status
is
reported.
A̲l̲e̲r̲t̲ - calculates the frequency of illegal messages
each time a message is rejected. In case of a too
high frequency, an alert signal is given.
S̲u̲s̲p̲e̲n̲s̲i̲o̲n̲ - withholds a message and displays it to
the
operator. The operator reply is reported as an
accept or a reject status.
5.1.2 O̲f̲f̲-̲l̲i̲n̲e̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲
Also the off-line software can be divided in a number
of main packages as shown on figure 5.1-2.
The Message Description Conversion can be implemented
on any available computer, and need not use equipment
equal or similar to the security filter system.
Also the Log Display (and - if chosen - the Statistics
Generator) can be run on any available computer.
The Off-Line Test Accelerator must be run on equipment
communicating with a security filter system exactly
like the field site operational security filter.
For Test Data Generator/Test Set-Up may be chosen security
filter-like equipment or other equipment, depending
on which degree of testing is supposed to be laid on
this package.
Figure 5.1-2…01…OFF-LINE SOFTWARE PACKAGES
5.1.3 O̲n̲-̲L̲i̲n̲e̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲M̲o̲d̲u̲l̲e̲s̲
The on-line software packages can be divided into a
number of smaller modules. A package may be implemented
on one processor or shared between several. A module
is a unit run in one processor, but some modules (e.g.
the built-in test) may be duplicated and run separately
in several or all processors.
The following on-line software modules have been identified:
a) L̲i̲n̲e̲ ̲T̲e̲r̲m̲i̲n̲a̲t̲i̲o̲n̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲
This encompasses protocol handling, serial-to-parallel
conversion, etc. It is anticipated that standard
line termination hardware modules can be used,
and that the necessary software/firmware is supplied
with the hardware.
b) C̲o̲n̲t̲r̲o̲l̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲
- E̲n̲a̲b̲l̲i̲n̲g̲ ̲a̲n̲d̲ ̲d̲i̲s̲a̲b̲l̲i̲n̲g̲ ̲o̲f̲ ̲o̲t̲h̲e̲r̲ ̲f̲u̲n̲c̲t̲i̲o̲n̲s̲. A module
which shall set and set off enabling bits in a
status memory based on status bits set by other
modules and by hardware. One detected hardware
or software error shall result in the disabling
of all functions of the security filter, possibly
with the exception of an error message displayed
on the visual display unit.
- B̲u̲s̲ ̲C̲o̲n̲t̲r̲o̲l̲. A module which shall check and ensure
that data transmission on the buses is executed
correctly. This module will probably be hardware
resident.
- C̲h̲e̲c̲k̲ ̲o̲f̲ ̲m̲e̲s̲s̲a̲g̲e̲ ̲t̲y̲p̲e̲. This is the first module
looking into the contents of the message. Until
now the traffic has only been considered a string
of bits. The type of message shall be determined
on basis of defined identification characteristics
within the message header. No accept or rejection
is determined as far, but a breakdown can be performed
on the ADatP-3 type messages as soon as it is recognized
as a such.
- B̲r̲e̲a̲k̲-̲D̲o̲w̲n̲ ̲o̲f̲ ̲M̲e̲s̲s̲a̲g̲e̲ is performed if the previous
check reveals the message as an ADatP-3 type message.
The "break-down" is performed establishing a table
of relative addresses pointing at the delimiters
of the message. The message itself is not touched
at all. The address tables form part of the internal
message header.
- B̲u̲i̲l̲d̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲H̲e̲a̲d̲e̲r̲. In order to ensure that the
message eventually transmitted from the security
filter is identical to the message received an
internal message header is used. This header which
may be placed ahead of the message or both ahead
of and behind the message shall contain significant
information about the physical construction of
the message, such as length, the tables of relative
addresses, and a cyclic redundancy check (CRC)
sum, which will be checked again prior to the eventual
transmission.
c) V̲a̲l̲i̲d̲a̲t̲i̲o̲n̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲
The validation software is extensively described
in paragraphs 4.2 and 4.3.
d) L̲o̲g̲g̲i̲n̲g̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲
- W̲r̲i̲t̲e̲ ̲t̲o̲ ̲L̲o̲g̲. Upon the decision of rejecting a
message, the message shall be logged. This is done
by enabling the logging module, which addresses
the message in memory, if necessary divides the
message into a number of records, and issues a
(number of) write command(s) to the magnetic tape
control unit.
- C̲l̲e̲a̲r̲ ̲B̲u̲f̲f̲e̲r̲ ̲A̲r̲e̲a̲. When the rejected message has
been written upon the log tape the buffer area,
in which the message resided, must be cleared.
This can be done by zeroing or blanking the memory
area.
e) S̲u̲s̲p̲e̲n̲s̲i̲o̲n̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲
- M̲o̲v̲e̲ ̲t̲o̲ ̲S̲u̲s̲p̲e̲n̲s̲i̲o̲n̲ ̲B̲u̲f̲f̲e̲r̲. When the decision has
been made that a message shall be suspended, it
shall be moved to the suspended buffer area. The
suspension buffer area must contain a map or dictionary
area, where the suspended messages are listed with
their appropriate addresses within the suspension
buffer area. If the suspension buffer area cannot
accommodate a new suspended message, when it is
suspended, the ordinary security filter operation
must be halted until sufficient space is available.
The operator must be notified on this calamity.
When the suspended message has been stored in suspension
buffer area, ordinary filter operation is resumed.
- N̲o̲t̲i̲f̲y̲ ̲O̲p̲e̲r̲a̲t̲o̲r̲. If the operator terminal is idle
when a message is suspended, a notification shall
be sent to the operator. This can be done by a
simple message on the screen, possibly accompanied
by an audible signal.
If the operator terminal is busy when a new suspended
message comes in, this notification shall wait
until the ongoing operation is terminated.
- C̲h̲e̲c̲k̲ ̲O̲p̲e̲r̲a̲t̲o̲r̲ ̲I̲d̲e̲n̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲. If the operator
terminal is idle when a message is suspended, the
operator's identification shall be checked prior
to the display of the message on the screen. This
checking can be done by password checking or any
other feasible and trustworthy procedure..
- D̲i̲s̲p̲l̲a̲y̲ ̲M̲e̲s̲s̲a̲g̲e̲. The suspended message is accompanied
by a header or control field containing information
on the reasons for suspension, such as relative
address and field length of the field(s) to be
checked. Using this information the screen display
is edited to draw the eyes to the field(s) of interest
(by using double intensity, blinking, reverse video,
underscoring, different colour, or other means).
To aid the operator it will be an advantage to
divide the screen picture into a data area and
a control area (the latter being of only one or
a few lines).
The message shall be displayed in the data area,
which shall be controlled by the computer. There
must be no means for the operator to change the
contents of the data area.
Using the control area of the screen for communication
between the computer and the operator, the operator
is requested to check the fields one at the time.
When a decision is given, it is conveyed into the
computer at once. If the decision is an "Accept"
the highlight (or other mean of attraction) is
removed from the display for the corresponding
field, and an accept bit is placed in the control
field. If the decision is a "Reject" the message
is cleared from the screen, a reject bit is placed
in the control field, and a flag is set to indicate
to the logging module that logging of the message
shall take place as soon as the logging module
can gain control.
-S̲c̲r̲o̲l̲l̲. Since a suspended message may be larger than
the space available in the data area of a display screen,
a scrolling feature shall be available, allowing the
operator to scroll the message forwards and backwards.
f) A̲l̲e̲r̲t̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲
- C̲a̲l̲c̲u̲l̲a̲t̲e̲ ̲f̲r̲e̲q̲u̲e̲n̲c̲y̲. Whenever a message is rejected
the frequency of illegal messages must be calculated.
This can be done by the formula shown on figure
5.1-1
The calculated frequency shall be compared with
a predefined maximum. If this maximum is exceeded
alert shall be given.
- S̲e̲n̲d̲ ̲A̲l̲e̲r̲t̲ ̲C̲o̲m̲m̲a̲n̲d̲. When an alert shall be given
(se above) this is done by sending an electric
signal to an audible alert device. The character
of this device must be decided locally, and also
the location is depending on local circumstances.
The security filter casing shall, however, be prepared
to accommodate at least one type of audible alert
device, which cannot be unauthorized dismounted
or switched off without violating the security
precautions around the security filter.
Figure 5.1-1…01…CALCULATION OF FREQUENCY
g) B̲u̲i̲l̲t̲-̲I̲n̲ ̲T̲e̲s̲t̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲
To achieve the highest possible security the security
filter must be able to check itself to a high degree.
One feasible way to check the software and the
memory area is to let a built-in test program run
while the processor for some reason is otherwise
idle.
A way to perform a built-in test is to calculate
a checksum, in principle a cyclic redundancy check,
for a certain area of the memory. The calculated
checksum shall then be compared with a predefined
correct result. In case of discrepancy an error
or a security violation has possibly occurred,
and the filter shall be disabled.
A such check can be performed on ROM memory at
any time. On RAM memory the check is only feasible
before modification of software loaded from a known
source, or after restoring the software to the
original status.
5.2 H̲A̲R̲D̲W̲A̲R̲E̲ ̲M̲O̲D̲U̲L̲E̲S̲
For a detailed description of the identified hardware
modules, please refer to technical note No. 4, Configuration
Study, chapter 2.2: "Multichannel Security Filter".
5.3 P̲E̲R̲F̲O̲R̲M̲A̲N̲C̲E̲
For detailed performance calculations for the security
filter equipment, please refer to technical note No.
4, Configuration Study, chapter 2.3: "Performance".
5.4 C̲O̲M̲M̲E̲R̲C̲I̲A̲L̲L̲Y̲ ̲A̲V̲A̲I̲L̲A̲B̲L̲E̲ ̲H̲A̲R̲D̲W̲A̲R̲E̲ ̲A̲N̲D̲ ̲S̲O̲F̲T̲W̲A̲R̲E̲
5.4.1 H̲a̲r̲d̲w̲a̲r̲e̲
Due to the highly specific security requirements only
the tape recorder can be procured as an off-the-shelf
item. The terminal is functionally very close to a
normal dumb terminal, but e.g. the Tempest requirement
precludes an off-the shelf procurement.
5.4.2 S̲o̲f̲t̲w̲a̲r̲e̲
The contraints mentioned above for hardware are equally
valid for the operational software of the security
filter.
The line interface software (protocol handling etc.),
which probably will be stored in hardware or firmware,
may though be an off-the-shelf type, if the line termination
hardware unit can be found on a shelf.
All software used in the critical or most critical
part of the security filter must be coded specifically
for the filter, or derived from general software for
the hardware in question.
5.5 M̲E̲A̲S̲U̲R̲E̲S̲ ̲T̲O̲ ̲P̲R̲E̲V̲E̲N̲T̲ ̲I̲N̲T̲E̲N̲T̲I̲O̲N̲A̲L̲ ̲D̲I̲S̲R̲U̲P̲T̲I̲O̲N̲
It is necessary to take some measures to prevent the
security filter system from intentional disruption.
The measures taken to prevent from disruption during
development and maintenance are covered by "Verification
Methods".
To prevent disruption in service are taken measures,
which can be separated in three groups: procedural,
hardware and software.
The procedural measures must be specified by the security
authorities and may vary slightly from site to site.
The procedural measures must encompass physical access
control, surveillance, etc.
The hardware and software measures are described in
more detail in corresponding documents. They are, in
summary:
- Electrical Protection Circuit - protects against
intelligent electrical modification through a communication
line.
- use of PROM (Programmable Read-Only Memory) instead
of RAM (Random Access Memory) - protects against
modification of programs.
- Locked enclosure around the entire security filter
system.
- Limited operator communication facilities - the
operator can (in principle) do nothing but accept
or reject a message.
S̲o̲f̲t̲w̲a̲r̲e̲
- Built-in check - memory areas are checked periodically
or aperiodically for modifications.
- Checksum on messages - a checksum created by the
input line terminator and checked by output line
terminator ensures that the message transmitted
is exactly the same as was received.
5.5.1 T̲e̲m̲p̲e̲s̲t̲ ̲A̲c̲c̲e̲p̲t̲a̲n̲c̲e̲
Our baseline is that the components of the security
filter equipment, except operator communication equipment,
shall be assembled in a TEMPEST proof EMI rack.
The rack shall be supplied with a mechanical switch
disabling the filter when doors are opened.
During short periods of corrective or preventive maintenance
the emanation requirements are degraded. It must be
within the operational procedures, that the security
officer is currently informed on activities concerning
corrective and preventive maintenance and thus is able
to decide whether it is acceptable to continue operation
or not.
To meet the NATO Security Requirements, the equipment
must be installed in accordance with criteria laid
down in AMSG 719B. The production equipment shall be
subject to inspection and testing by ACE COMSEC Radiation
Team at the factory premises prior to dispatch/distribution
to locations. After installation, a final COMSEC Radiation
Survey must be carried out at each location prior to
operational approval being given. Rectification of
the equipment characteristics shortcomings shall be
the responsibility of the contractor.
Special earthing arrangements with respect to
- AC power neutral
- safety ground
- signalling and control ground
are necessary within the system in order to comply
with criteria laid down in AMSG 719B.
To assist in the assessment of physical security and
guarding of classified information, a list of all items
of equipment which will store, display, or record classified
information shall be supplied to ACE COMSEC by the
contractor. From the list an assessment is made for
physical security in accordance with AMSG 293D.