DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Wang WCS documentation floppies

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Wang WCS documentation floppies

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦26a8f4e12⟧ Wang Wps File

    Length: 139892 (0x22274)
    Types: Wang Wps File
    Notes: SW DESCRIPTION            
    Names: »4529A «

Derivation

└─⟦57fb8c09c⟧ Bits:30006028 8" Wang WCS floppy, CR 0392A
    └─ ⟦this⟧ »4529A « 

WangText



C…05…C…07…B…0f…B…00…A…09…A…0c…A…0e…A…05…@…0b…@…01…@…06…?…08…?…0a…?…0c…?
>…09…>…0e…>…00…>…07…=…0f…=…06…<…0f…<…05…;…0b…;…01…:…09…:…0f…:…07…9…0d…9
8…09…8…0e…8
7…09…7…0e…7…00…7…07…6…01…5…0b…5…02…5…07…4…0c…4…02…3…08…3…0e…3
3…06…2…08…2…0a…2…0c……86…1
      
   …02…   …02…
   …02…   …02…
      
      
      
      
      
      
      
 



S/W SPECIFICATION
      
      
      
      
      
    SYS/84-01-04

     
      
      
      
      
      
      
      
    Page
 #  













B [ R G E…01……01…dette er kun en del af det samlede v`rk,…01…men man er ikke n>et l`ngere endnu.…01……01…Anne
 Marie…01…1984-01-23


         Anne Marie, Dette dokument er en kopi af 4460A. S>
         hvis dette k]rer ok, bedes I slette 4460A.
















                 STANDARD S/W DESCRIPTION









                    T̲A̲B̲L̲E̲ ̲O̲F̲ ̲C̲O̲N̲T̲E̲N̲T̲S̲


                                                       Page


         1.  INTRODUCTION ..........................     

         2.  SYSTEM SOFTWARE .......................     

         3.  SUPPORT SOFTWARE ......................     

         4.  APPLICATION SOFTWARE ..................     




                     1̲ ̲ ̲I̲N̲T̲R̲O̲D̲U̲C̲T̲I̲O̲N̲



         The complete software implementation comprises:

             o   A Multi-level Security Policy
             o   System Software
             o   Support Software
             o   Application Software.

         The multi-level security policy ensures that data,
         labeled according to the appropriate level of classification,
         can neither be disclosed to unauthorized users nor
         be modified by them.

         The system software controls the resources of the computer
         system and provides support for using these resources.
         to implement the multi-level security policy, there
         are 16 priviledge levels of execution.

         The support software, which is not part of the operational
         system, includes the development operating system,
         maintenance and diagnostic programs, and system generation
         software.

         The application software packages implement the functional
         capabilities of the system. These packages operate
         in the environment provided by the system software,
         thus effecting the multi-level security policy as an
         integral part of the functional capabilities of the
         overall system.

         Figure 1-1 contains a functional block diagram of the
         system, identifying the principal application packages
         and their relationships to system software packages.
         From inspection of this diagram it is obvious that
         the support software environment encompasses the application
         software and ensures implementation of the multi-level
         security policy.

         In the discussion to follow a detailed description
         of each aspect of the software implementation is given.
         First, the system software is presented, and then the
         multi-level security policy, which is effected by the
         system software, is explained. After that, the support
         software facilities are listed. Finally, the project
         dependent application software is described.




















































                SYSTEM FUNCTIONAL DIAGRAM

       A multi-level security policy is ensured by
             the system software environment

                        Figure 1-1



                    2̲ ̲ ̲S̲Y̲S̲T̲E̲M̲ ̲S̲O̲F̲T̲W̲A̲R̲E̲



         The CR80 Distributed Advanced Multi-processor Operating
         System (DAMOS) is the standard operating system for
         the memory mapped CR80 series of computers, and includes
         a virtual memory operating system kernel. DAMOS is
         particularly well suited for use in real time systems,
         although it also supports environments for software
         development and batch operation.

         DAMOS supports the full range of the CR80 series of
         computers from a configuration with a single Processing
         Unit (PU) with 1 CPU and 128 K words of random access
         memory up to the maximum multi-processor configuration
         with 16 PUs - each PU containing 5 CPUs - and 16 M
         words of virtual memory. Configurations with multiple
         PUs can provide, in addition to extended processing
         power, a costeffective fault-tolerant architecture
         based on N + 1 redundancy. The flexible architecture
         of the CR80 also allows interfacing to a virtually
         unlimited amount of peripheral equipment and mass storage.

         To accomplish its design goals in an efficient manner,
         DAMOS is implemented by a hierarchy of modules, each
         dedicated to a special task. At the top of this hiearchy,
         the DAMOS kernel provides resource management of, for
         example, PUs, CPUs, and memory. Then, other levels
         of DAMOS provide process management and inter-process
         communication. Finally, to simplify system input/output
         and storage, DAMOS provides a well defined, standard
         environment for management of files, magtapes, terminals,
         and databases.

         Multi-level security is an integral part of the DAMOS
         design, and the Reference Monitor Concept - a concept
         whereby all objects can only be referenced indirectly
         with access control according to both mandatory and
         discretionary rules - is part of the standard environment
         that always encompasses the user/
         application software.

         Thus, DAMOS provides a secure and efficent system software
         environment that supports an extremely flexible computer
         architecture.



         Detailed descriptions of major DAMOS modules are given
         in the sub-sections to follow:

             o   Kernel
             o   Input/Output
             o   System Initialization
             o   System Status and Control
             o   Additional System Functions

         For reference, an overview of the principal DAMOS modules
         - both operational and support modules - is given in
         Figure 2-1.




















































                 DAMOS SOFTWARE OVERVIEW

   A secure and efficient operating system environment
is provided for the full range of the CR80 computer series

                        Figure 2-1



2.1      D̲A̲M̲O̲S̲ ̲K̲E̲R̲N̲E̲L̲

         The DAMOS Kernel, which is a set of re-entrant program
         modules that provide the lowest level of system service
         above the level of CR80 hardware and firmware, exists
         in one incarnation for each PU.

         The Kernel consists of the following components:

         -   Resource Management,
             which administers resources in a coherent way

         -   Directory Function,
             which provides a common directory service function
             for other Kernel components. Also controls access
             to all objects from the other modules.

         -   Process Manager,
             which provides tools for CPU management, process
             management and scheduling

         -   Page Manager,
             which provides memory management tools and implements
             a segmented virtual memory

         -   Process Communication Facility,
             which provides a mechanism for exchange of control
             information between processes

         -   Device Manager,
             which provides a common set of device related functions
             for device handlers and a standard interface to
             device handlers

         -   Device Handlers,
             which control and interface to peripheral devices

         -   Error Processor,
             which handles errors detected at the hardware and
             Kernel level and provides a general, central error
             reporting mechanism

         -   Real Time Clock
             for synchronization with real time

         -   PU Manager,
             which provides functions for coupling and decoupling
             PUs

         -   Basic Transport Service,
             which provides a general mechanism for exchange
             of bulk data between processes and device handlers.



         The following sub-sections describe the main Kernel
         functions:

         -   resource management
         -   process management
         -   memory management
         -   process communication
         -   CPU management
         -   PU management
         -   Transport Mechanisms.



2.1.1    R̲e̲s̲o̲u̲r̲c̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲

         The DAMOS Resource Management Function provides a set
         of tools to enable individual DAMOS modules to handle
         resources in a coherent way, and to resolve conflicts
         due to a temporary shortage of resources.

         The principles of DAMOS resource management can be
         summarized as follows:

         o   Resources are allocated and de-allocated on a process
             basis.

         o   A process draws its resources from a pool.

         o   Each process is allowed to use only a specified
             maximum number of resources from the pool.

         o   The resources associated with a pool may be used
             exclusively by one process, or they may be shared
             by several processes.

         o   A process may create a new pool for its subordinate
             processes, drawn from its own pool.

         o   When a process is created, its parent process specifies
             the pool from which it can draw its resources.
             This may be the pool of the parent process, a private
             pool created for the child process, or a pool shared
             with other child processes.



2.1.2    P̲r̲o̲c̲e̲s̲s̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲

         Process management is concerned with both long and
         short term control of processes. In the long term,
         a process can have three states: undefined, active,
         and inactive. Figure 2.1.2-1 illustrates these states
         and gives the process management functions, available
         to the user, which result in state transitions. Brief
         definitions of key process management functions are
         given below.

         CREATE PROCESS intiates a new process instance to run
         on a specific processor pool. The new process is given
         access to specified resource pools, and inherits a
         set of object descriptors at the discretion of the
         creator. The new process does not get execution time
         before its parent process calls Resume Process.

         RESUME PROCESS activiates a process which was either
         just created or was previously passivated.

         PASSIVATE PROCESS deactivates a process, i.e. the process
         is temporarily withdrawn from the dispatching

         CLEAN UP PROCESS catches a child process and terminates
         its activities. Among other things, its possible child
         processes are cleaned up and deleted, and outstanding
         process activities (I/O requests, process communication)
         are cancelled.

         DELETE PROCESS removes a previously cleaned process
         from the system. The resources occupied by the process
         are returned to the caller (its parent process)

         RETIRE passivates the caller and sends possible error
         information to its parent process.



          GET PROCESS ATTRIBUTES returns the current attributes
          of a child process

          CHANGE PROCESS ATTRIBUTES changes specified attributes
          of a child process. The attributes may relate to the
          dispatching of the process (e.g. its priority), or
          to the page manager parameters for the process (e.g.
          the size of its working set).

          In DAMOS, a process - the parent may create subordinate
          processes - child processes. This allows creation of
          a process hierarchy which enables implementation of
          "multiple" operating systems, each haveing supreme
          control over its child processes. Figure 2.1.2-2 gives
          an example of process hiearchy in DAMOS.

          Processes belonging to an operating system, i.e. parent
          process, compete for system resources such as processor
          power, physical memory, and I/O services. To administer
          the limited resources that are available, a process
          in the active state is subject to short term scheduling
          (dispatching) as illustrated in Figure 2.1.2-3.
















































              1: The process is subject to CREATE PROCESS
              2: The process is subject to DELETE PROCESS
              3: The process is subject to RESUME PROCESS
              4: The process is subject to PASSIVATE PROCESS
              or 
                   RETIRE

                      Figure 2.1.2-1
                             
               LONG TERM PROCESS MANAGEMENT













                                         parent process










                                         child processes



























                  DAMOS PROCESS HIERARCHY

   Allows implementation of multiple operating systems.

                      Figure 2.1.2-2

















































              1: The process is scheduled by the dispatcher
              2: The process is preempted by the dispatcher
              3: The process is blocked awaiting some event
              4: A previous awaited event occurs

               SHORT TERM PROCESS MANAGEMENT

           Ensures access to limited resources.

                      Figure 2.1.2-3



2.1.3     M̲e̲m̲o̲r̲y̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲

          The DAMOS Page Manager implemtns a virtual memory concept
          that allows each process to access any part of the
          CR80 physical memory - up to the configuration maximum
          of 16 M words. At any one time, however, the CR80 addressing
          mechanism limits the address space "seen" by a process
          to a maximum window of 2 x 64 K words.

          Segments of virtual memory may be created and deleted
          by a process, i.e. ownership is established. A process
          which has created a segment may allow others (subject
          to security constraint restrictions) to share the segment
          by explicitly identifying the process and stating access
          rights to the segment.



2.1.4     P̲r̲o̲c̲e̲s̲s̲ ̲C̲o̲m̲m̲u̲n̲i̲c̲a̲t̲i̲o̲n̲

          Exchange of data between processes is effected by means
          of synchronization (sync) elements, which implement
          logical data transfer. Sync elements may be known locally,
          throughout parts of the computer system, or on a system-wide
          basis. Thus DAMOS provides a flexible communication
          facility for implementing inter-process communication
          subject to security constraints.



2.1.5     C̲P̲U̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲

          The CPUs (1-5) that are physically located in a PU
          may be either treated as a resource pool for all processes
          running in the PU or divided into pools that are allocated
          to one or more processes. Thus a PU can be configured
          as a set of resources running under one operating system
          or a host for multiple operating systems. In the case
          of multiple operating systems, it is possible, of course,
          to dedicate one or more of the CPUs to one process.




2.1.6     P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲U̲n̲i̲t̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲

          The DAMOS Kernel provides facilities for managing the
          logical connections between the individual Processing
          Units attached to a Supra Bus. PUs may be connected
          logically into groups, and the number of PUs in a group
          may vary from 1 to 16. Two groups may be merged, the
          result being a new PU-group.

          Objects are identified by symbolic names having either
          local or global scope, and they are accessible from
          all PUs in the group where they reside.

          PU Management is designed to allow graceful degradation
          whether purposely closing a PU or isolating a faulty
          PU.  It is possible for a PU to force another member
          out of their common group.  All PUs in the group are
          informed to break their logical connection to the designated
          PU.  As a consequence all global objects residing in
          the isolated PU are thereafter unknown to the group.
           If not faulty, the isolated PU continues executing
          its local processes and is ready to receive new include
          requests.

          Basic Transport Service (BTS) is a module within DAMOS
          which enables processes to communicate in a uniform
          manner. The processes may be located in:

          1)   the same CR80 processor unit
          2)   computers connected via a supra bus, running 
                 under the same operating system
          3)   computers connected via a communication line,
              
                 running under independent operating systems.





2.2       D̲A̲M̲O̲S̲ ̲I̲N̲P̲U̲T̲/̲O̲U̲T̲P̲U̲T̲ ̲S̲Y̲S̲T̲E̲M̲

          DAMOS supports user program input/output by providing
          a set of standard interface procedures through which
          a user communicates with a class of DAMOS service processes
          known as General File Management Systems.  General
          File Management Systems (GFMS) include:

          -   the File Management System which implements disk
              files

          -   the Magnetic Tape File Management System for magnetic
              tape files

          -   the Terminal Management System for communication
              lines, interactive terminals and printers.

          -   The Database Controller System for communication
              with the Database Management System.

          The General File Management Systems provide functions
          which are classified as:

          -   device handling
          -   user handling
          -   file handling
          -   file access.

          The common file access functions provided by the IOS
          are readbytes for input and appendbyte and modifybytes
          for output.

          These basic functions are used for transfer of blocks
          of data. On top of these functions the IOS provides
          a stream I/O facility where the IOS handles the blocking
          and buffering of data. The relationship of the application
          program, the IOS, and the GFMS is shown in Figure 2.2-1.




















































                         DAMOS IOS

      provides a user frindly interface between the 
application program and the General File Management System

                       Figure 2.2-1



2.2.1     F̲i̲l̲e̲ ̲M̲a̲n̲g̲e̲m̲e̲n̲t̲ ̲S̲y̲s̲t̲e̲m̲ ̲(̲F̲M̲S̲)̲

          The FMS provides a clearly defined interface for storing,
          maintaining, and retrieving data on disc storage devices.
          The number and kind of devices attached to the FMS
          is dynamically reconfigurable. All accesses via FMS
          by user processes are subject to security constraints.

          The following FMS aspects are described in detail in
          the sub-sections to follow:

              a)  devices and volumes
…02…b)            directories
              c)  files
              d)  users
              e)  file security
              f)  disc integrity
              g)  access methods
              h)  message management system.


         a)  D̲e̲v̲i̲c̲e̲ ̲a̲n̲d̲ ̲V̲o̲l̲u̲m̲e̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲

             The file system may be given commands concerning:

             Management of peripheral devices: Devices can be
             assigned to and deassigned from the file system
             dynamically.  Instances of device handlers are
             at the same time created or deleted.

             Management of volumes: Volumes can be mounted on
             and dismounted from specific devices.


         b)  D̲i̲r̲e̲c̲t̲o̲r̲i̲e̲s̲

             The file system uses directories to implement symbolic
             naming of files.  If a file has been entered into
             a directory under a name specified by the user,
             it is possible to locate and use it later on, but
             temporary files do not need to be named.  A file
             may be entered into several directories, perhaps
             under different names.  Since a directory is also
             considered a file, it can itself be given a name
             and entered into another directory.  This process
             may continue to any depth, thus enabling a hierarchical
             structure of file names.



         c)  F̲i̲l̲e̲s̲

             The file system supports two different organizations
             of files on disc: configuous and random. A contiguous
             file consists of a sequence of consecutive sectors
             on the disk.  The size of a contiguous file is
             fixed at the time the file is created and cannot
             be extended later on.  A random file consists of
             a chain of indices giving the addresses of areas
             scattered throughout the volume.  Each area consists
             of a number of consecutive sectors.  The number
             of sectors per area is determined at creation time,
             whereas the number of areas may change during the
             lifetime of the file.

             File system commands may be divided into 3 groups:

             o   Creation and removal of files: 
                 A user may request that a file will be created
                 with a given set of attributes, and put on
                 a named volume.

             o   Naming of files in directories: 
                 A file may be entered into a directory under
                 a symbolic name that then can be used to locate
                 the file. The file may then be renamed or removed
                 from the directory again.

             o   Change of access rights:
                 The right to change access rights vis …1a… vis
                 a file for all users or a specific user group
                 is itself delegatable.


         d)  U̲s̲e̲r̲s̲ 
             
             The FMS may be given commands to create or remove
             users (processes).


         e)  F̲i̲l̲e̲ ̲S̲e̲c̲u̲r̲i̲t̲y̲

             FMS data security is ensured by two mechanisms:
             access control lists (ACLs) and the security classification
             policy.

              i  The ACL is a table which describes the access
                 rights of each individual user group (one being
                 the public) to the corresponding file.  Whenever
                 a user tries to access a file, the ACL is used
                 to verify that he is indeed allowed to perform
                 this access. There is one ACL associated with
                 each file.



             ii  The second mechanism for access control is
                 based on a security classificatio system. 
                 Each user and each file is assigned a classification.
                  The user classification is recorded in the
                 user control block and the file classification
                 is recorded on the volume. For read access,
                 the user security level must be greater than
                 or equal to the file security. For write access,
                 the user security level must match that of
                 the file.

                 Thus the file access security policy implements
                 distinct levels of security classification
                 as well as discretionary (need-to-know) security,
                 i.e. user groups.


         f)  D̲i̲s̲c̲ ̲I̲n̲t̲e̲g̲r̲i̲t̲y̲

             The FMS implements identical (redundant) disc pack,
             which are updated concurrently to ensure that data
             will not be lost in the case of a hard error on
             one of the two discs. When an error does occur,
             the FMS permits exclusion of the failed unit, and
             normal service continues with the remaining unit.
             After repair, it is possible to bring one volume
             upto the state of the running volume while normal
             service continues, although perhaps with degraded
             service during a short period.

             With respect to bad sectors on a disc pack, the
             FMS handles the problem by keeping a table with
             translation from each bad sector to an alternative
             sector for each volume. Only failures of sector
             0 cannot be handled. While using redundant disks
             the translation tables of the two disks must be
             kept identical to assure that all disk addresses
             can be interpreted in the same way. If bad sectors
             are detected while bringing up a disk, they are
             marked as such on both disks and both translation
             tables are updated accordingly.




         g)  A̲c̲c̲e̲s̲s̲ ̲M̲e̲t̲h̲o̲d̲s̲

             Two access methods to files are implemented by
             the FMS: unstructured and endexed sequential.

              i  For transfer purposes an unstructured file
                 is considered simply as a string of bytes,
                 and therefore a byte string is transferred
                 between a file and a user buffer. The user
                 can access directly any byte string in a file.

                 The commands which are implemented by this
                 access methods are:

                  READBYTES   -  Read a specified byte string

                  MODIFYBYTES -  Change a specified byte string

                  APPENDBYTES -  Append a byte string to the
                                 end of the file.


             ii  The Christian Rovsing Access Method (CRAM)
                 for indexed sequential file access features
                 random or sequuential (forward or reverse)
                 access to records of 0̲ to n bytes, with n depending
                 on the selected block size, based on keys of
                 0-126 bytes. The collating sequence uses the
                 binary value of the bytes so e.g. character
                 strings are sorted alphabetically. CRAM works
                 on normal contiguous FMS files which are initialized
                 for use by means of a special CRAM operation.

                 The CRAM updating philosophy is based on the
                 execution of a batch of related updatings,
                 which all together form a consistent status
                 change of the CRAM file, being physically updated
                 as a single update by means of a LOCK operation.
                 Thus, after a batch of updates, all files updated
                 may either be forgotten (by means of the FORGET
                 operation) or changed (by means of the LOCK
                 OPERATION). Both operations are performed without
                 producing critical regions, i.e. without periods
                 of CRAM data base inconsistency.

                 For convenience, CRAM supports subdivision
                 of the CRAM file in up to 255 subfiles, each
                 identified by a subfile identifier key of 0-126
                 bytes.

                 CRAM keeps track of the different versions
                 of the data base by means of a 32 bit version
                 number, which is incremented every time LOCK
                 is called. 




         h)  M̲e̲s̲s̲a̲g̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲S̲y̲s̲t̲e̲m̲ (MMS)

             The Message Management System contains facilities
             for storage of messages and similar items on disk
             and manipulation of these messages and items. Each
             item is stored in an entity called C̲CIS I̲nformation
             F̲ile (CIF). The main difference between a CIF and
             an ordinary file is that CIFs are relatively small,
             and that they are subject to very intense activity
             during a relatively short period after their creation.
             After that period they will be stored permanently,
             and will be subject to very low activity. MMS will
             optimize storage of and access to items according
             to the activity level.



2.2.2    M̲a̲g̲n̲e̲t̲i̲c̲ ̲T̲a̲p̲e̲ ̲F̲i̲l̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲S̲y̲s̲t̲e̲m̲ (MTFMS)

         The MTFMS is responsible for storing and retrieving
         information on magnetic tapes. All access via the MTFMS
         by user processes is security checked. Each MEFMS is
         able to handle one magnetic tape controller with a
         maximum of 8 tape transports in a daisy chain.

         The functions of the file system can be separated into
         four groups:

         o   Device Functions
         o   Volume Functions
         o   File Functions
         o   Record Functions.


         a)  D̲e̲v̲i̲c̲e̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲

             The MTFMS implements two principal device functions:

             o   Assign a name to a given tape transport unit

             o   De-assign a given unit.

         


         b)  V̲o̲l̲u̲m̲e̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲

             The MTFMS implements four principal volume functions:

             o   Initiate a tape by writing a volume label,
                 i.e. naming the tape.
                 Note:  symbolic volume names comply with the
                 ISO 1001 standard.

             o   Mount a given volume on a given tape transport
                 unit.

             o   Dismount a given volume.

             o   Rewind a given volume.


         c)  F̲i̲l̲e̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲

             The MTFMS implements five principal file functions:

             o   Create a file on a given volume. The file is
                 opened for output, and the given volume is
                 reserved for the caller. The following information
                 must be supplied by the caller, and will be
                 written onto the tape in a file header label
                 record:

                 -   File name (must comply with ISO 1001 standard)

                 -   Fixed/variable length record specification

                 -   Record size.

             o   Find a file with a given name on a given volume.
                 The file is opened for input and the given
                 volume is reserved.

             o   Skip a given number of files (backwards or
                 forwards) on a given volume. The file at the
                 resulting tape position is opened for input
                 and the volume is reserved.

             o   Get information about the currently open file
                 on a given volume. Information like file sequence
                 number, record size and type (fixed/variable
                 length) can be retrieved.

             o   Close currently open file on a given volume.
                 The volume reservation is released.




         d)  R̲e̲c̲o̲r̲d̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲

             o   Skip a given number of records (forwards or
                 backwards) in a given file.

             o   Read a record in a given file.

             o   Write a record in a given file. The MTFMS performs
                 recovery from writing errors by

                 -   backspacing over the record in error
                 -   erasing a fixed length of about 3.7 inches
                     (thus increasing the record gap).
                 -   attempting the writing once more.

             The recovery procedure will be attempted a maximum
             of 10 times.



2.2.3    T̲e̲r̲m̲i̲n̲a̲l̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲S̲y̲s̲t̲e̲m̲ ̲

         The TMS is a service process which manages devices
         characterized by serial blockwise access. Examples
         of such devices are:

             -   interactive terminals (screen or hardcopy)
             -   data communication equipment (modems)
             -   line printers
             -   card readers

         In the following discussion, the phrase "terminal"
         is used as a common term for any device of this category.

         Terminals may be attached to LTUs, LTUXs (via TDX)
         and parallel interfaces.

         The TMS performs the following main functions:

             -   terminal related security validation 
                 (all access via TMS by user processes is security
                 checked).
             -   access control for terminals
             -   collecting of statistical information
             -   management of terminals
             -   transfer of I/O data between terminal device
                 handlers and user processes.

         The following subsections define:

         - transfer of I/O data
         - user handling
         - security
         - hardware categories.




         a)  T̲r̲a̲n̲s̲f̲e̲r̲ ̲o̲f̲ ̲I̲/̲O̲ ̲D̲a̲t̲a̲

             The TMS enables user processes to perform flexible
             I/O communication with terminals. I/O is aimed
             at terminals which will be connected to varying
             processes with different security profiles. The
             terminals in question will normally be local or
             remote interactive hardcopy or screen terminals.

             I/O to terminals is identical to I/O to backing
             store files from the point of view of the user
             process. The same IOS basic procedures are used
             (appendbytes, modifybytes, readbytes) and direct
             as well as stream I/O can be used.


         b)  U̲s̲e̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲

             Before a user process can make use of the TMS functions,
             it must be logged on to the TMS by means of the
             Useron command. This command must be invoked by
             a process which is already known by the TMS, either
             through another Useron command or because it is
             the parent process for the TMS.

             In the Useron command the calling process grants
             some of its TMS resources to the process which
             is logged on to the TMS in the Useron command.

             When a user process ceases to use the TMS, its
             TMS resources must be released by a call of Useroff.


         c)  S̲e̲c̲u̲r̲i̲t̲y̲

             TMS data security is ensured by two mechanisms:
             access control lists (ACLs) and the security classification
             policy. 

              i  The ACL is a table which described the access
                 rights of each individual user group (one being
                 the public) to the corresponding line. Whenever
                 a user tries to access a line the ACL is used
                 to verify that he is indeed allowed to perform
                 this access. There is one ACL associated with
                 each line.

             ii  The second mechanism for access control is
                 based on a security classification system.
                 Each user and each line is assigned a clasification.
                 The user classification is recorded in the
                 user control block and the line classification
                 is recorded in the line control block. Classification
                 levels of the user and the line must match
                 each other.





         d)  H̲a̲r̲d̲w̲a̲r̲e̲ ̲C̲a̲t̲e̲g̲o̲r̲i̲e̲s̲

             The TMS recognizes the following categories of
             equipment:

                 -   T̲e̲r̲m̲i̲n̲a̲l̲ ̲C̲o̲n̲t̲r̲o̲l̲l̲e̲r̲ which is a line controller
                     interfacing one or more lines.

                 -   L̲i̲n̲e̲ which is a group of physical signals
                     capable of sustaining one simplex or duplex
                     data stream.

                 -   U̲n̲i̲t̲ which is a terminal device connected
                     to a line.

             If more than one unit is connected to a given line,
             the line is called multiplexed line.


             o   T̲e̲r̲m̲i̲n̲a̲l̲ ̲C̲o̲n̲t̲r̲o̲l̲l̲e̲r̲s̲

                 Terminal controllers may dynamically be assigned
                 and deassigned by the parent process for the
                 TMS. 
                 A controller can either be assigned as an active
                 or as a stand-by controller. A stand-by controller
                 is a device which normally is not active, but
                 which may take over in case of a failure in
                 an active controller.

                 When an active controller is assigned with
                 a stand-by, this must be defined in the assignment
                 command.

                 The process which assigned a controller is
                 its initial owner. Ownership of a controller
                 may be transfered to another user process which
                 is logged on to the TMS. When a controller
                 is assigned, the TMS creates a corresponding
                 device handler.


             o   L̲i̲n̲e̲s̲

                 The owner of a controller may assign lines
                 to the controller. When a line is assigned,
                 the TMS notifies the device handler for the
                 controller to that effect.




             o   U̲n̲i̲t̲s̲

                 The owner of a controller with lines assigned
                 to it may create units on the lines. Units
                 can be created for file mode I/O or communication
                 mode I/O. A unit created for file I/O may be
                 a multiple or single access unit. Single access
                 units can only be accessed by the owner whereas
                 multiple access units may be accessed by a
                 number of user processes.

                 When the owner creates a unit, an access path
                 to the unit is established. The owner may from
                 now on access the unit by the IOS functions
                 readbytes for input - and appendbytes, and
                 modifybytes for output. Other users may obtain
                 access to a multiple access unit in different
                 ways as described in the following.

                 The creator of a unit may offer it to another
                 user by means of the TMS OFFER function. The
                 user to which the unit is offered obtains access
                 to the unit by the ACCEPT function.

                 The creator of a unit may define a symbolic
                 name - a unit name - for the unit. A unit name
                 is syntactically identical to an FMS file name.

                 Other users may obtain access to the named
                 unit by the LOOKUP ̲UNIT command which corresponds
                 to the FMS commands getroot, lookup and descent.



2.2.4    D̲a̲t̲a̲b̲a̲s̲e̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲S̲y̲s̲t̲e̲m̲ ̲(DMCS)

         The DMCS package is the interface between the DBMS
         package and the packages using DBMS. Two key aspects
         of the DMCS are protocol handling and security.


         o   D̲B̲M̲S̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲P̲r̲o̲t̲o̲c̲o̲l̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲

             The interface protocol is used to transmit requests
             and parameters from requesting processes to DBMS
             and to receive the response data. In addition to
             the request, the necessary control information
             about the requesting process is transmitted. The
             DBMS must keep track of the number of pending requests
             from processes.




         o   S̲e̲c̲u̲r̲i̲t̲y̲

             Requests from processes are checked before they
             are transmitted to the DBMS. For each process only
             a subset of the DBMS functions are legal, and requests
             are denied if they do not belong to the legal subset.

             Together with the request, the following security
             information is sent to DBMS:

             -   Security Attributes of the process.

             -   Process Identification of the process.

             Each request to DBMS is logged on the security
             audit by DMCS. The security information is supplied
             by the SSC package whenever it creates a process.
             The SSC is described in section 2.4.



2.3      S̲Y̲S̲T̲E̲M̲ ̲I̲N̲I̲T̲I̲A̲L̲I̲Z̲A̲T̲I̲O̲N̲

         When a CR80 memory mapped PU is master cleared, a boot
         strap loader is given control. The boot strap loader
         is contained in a programmed read-only memory which
         is part of the MAP module. Having initialized the translation
         tables of the MAP module, the boot strap loader is
         able to fetch a system load module from a disk connected
         to the PU.

         An initialization module which is part of the load
         module initalizes the DAMOS kernel and the DAMOS Root
         process.
         The Root process possesses all the PU resources.  Root
         creates and intializes a File Management System, a
         Terminal Management System and a System Status and
         Control System.





2.4      S̲Y̲S̲T̲E̲M̲ ̲S̲T̲A̲T̲U̲S̲ ̲A̲N̲D̲ ̲C̲O̲N̲T̲R̲O̲L̲ (SSC)

         The SSC package starts, allocates resources to, and
         monitors and controls on-line and off-line systems
         through interaction between the two PUs, the peripherals,
         the watchdog, and the operator.

         The on-line modes of operation handled are:

         -   a dualized system consisting of one active PU and
             associated peripherals and a stand-by PU

         -   a degraded system consisting of one active PU and
             associated peripherals and an off-line PU and associated
             peripherals

         In the degraded system the SSC controls the off-line
         operations:

         -   software development and test

         -   table generation

         -   maintenance and diagnostics

         -   offline utilities

         The monitoring of the active and the standby system
         includes:

         -   reception of error reports from other packages

         -   reception of hardware status from crates

         -   display of system status

         -   execution of on-line diagnostics programs

         The control of the dualized and degraded system includes:

         -   physical connection of hardware modules

         -   allocation of resources to other packages e.g.
             external and terminal lines

         -   execution of operator commands

         The start-up of the dualized and degraded system includes:

         -   all forms of initialization

         -   ordered switchover to a stand-by processor and
             corresponding recovery and restart actions

         -   recovery/restart actions during an emergency switchover
             or after a total system error 


         The sub-sections to follow describe

           i)    On-line diagnostics

          ii)    Line monitoring and control

         iii)    Handling of technical error reports

          iv)    On-line PU operator commands

           v)    Off-line PU operation.


         i)  O̲n̲-̲L̲i̲n̲e̲ ̲D̲i̲a̲g̲n̲o̲s̲t̲i̲c̲s̲

             Generally the on-line diagnostics test programs
             aim at limiting the effect of an error by

             -   timely detection of errors

             -   reporting the error condition

             Specifically the test programs participate in meeting
             the availability and integrity of operation requirements.

             The test programs operate as low priority tasks together
             with the application software. A specific test program
             to verify system integrity through a checksumming of
             read-only system software is available. The program
             is executed on request from the system management and
             periodically.


         ii) L̲i̲n̲e̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲

             Line Monitoring and Control are divided into four
             areas:

             -   Terminal Monitoring and Control (TEMCO)

             -   Device Monitoring and Control (DEMCO)

             -   Circuit Monitoring and Control (CEMCO)

             -   Watchdog Monitoring and Control (WAMCO)




             a)  T̲e̲r̲m̲i̲n̲a̲l̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲T̲E̲M̲C̲O̲)̲

                 TEMCO monitors and controls LTU lines to Alphanumeric
                 and Graphic Terminals.

                 The TEMCO functions are divided into three areas:

                 -   Execution of logical control on behalf of other
                     packages e.g. access control.

                 -   Monitoring of connections to the terminals
                     and subsequent execution of control

                 -   Device handling control processes.

                 The control includes the user initiated events:

                 -   sign on/off
                 -   specification of functional capabilities and
                     security attributes
                 -   transaction handling
                 -   error reports


             b)  D̲e̲v̲i̲c̲e̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲D̲E̲M̲C̲O̲)̲

                 DEMCO monitors and controls LTU lines to Stand
                 Alone Devices 

             The stand alone devices handled are:

                 -   Line Printers 
                 -   X-Y Plotters 
                 -   Digitizers 
                 -   PTR, PTP

             The DEMCO functions are divided into three areas:

             -   Execution of logical control on behalf of other
                 packages e.g. access control 

             -   Monitoring of connections to the SADs and subsequent
                 execution of control.

             -   Start and Retire Device Handling Control Processes




             c)  C̲h̲a̲n̲n̲e̲l̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲C̲E̲M̲C̲O̲)̲

                 CEMCO monitors and controls LTU lines to External
                 Circuits.

                 The Circuits handled are

                 -   NICS-TARE

                 -   X ̲25 protocol circuits

                 The CEMCO functions are divided into three areas:

                 -   Execution of logical control on behalf of other
                     packages e.g. access control (accept/non accept
                     of input on a line)

                 -   Monitoring of the connection to the EXCs and
                     subsequent execution of control.

                 The monitoring includes the reception of error
                 reports.

                 -   Start and Retire Circuit Protocol Processes.


             d)  W̲a̲t̲c̲h̲d̲o̲g̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲W̲A̲M̲C̲O̲)̲

                 The WAMCO functions include 

                 -   sending of keep-alive messages from active/standby
                     PUs to the watchdog.

                 -   monitoring of the WDP, WDP-VDU and WDP-ROP
                     physical state

                 and subsequent actions, which may be

                     -  reinsertion of a device
                     -  handling of a WDP ̲VDU connected directly
                        to the PU

                 -   display the WDP ̲ROP paper out condition at
                     the WDP ̲VDU configuration display

                 -   reception of monitoring information from the
                     WDP.





         iii) H̲a̲n̲d̲l̲i̲n̲g̲ ̲o̲f̲ ̲T̲e̲c̲h̲n̲i̲c̲a̲l̲ ̲E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲s̲

             This section covers error handling in general and includes
             the following topics:

             -   error detection

             -   error types

             Technical errors are detected during:

             -   System calls or asyncronously
             -   Instruction execution
             -   Validity checks
             -   WDP monitoring


             Errors detected during system calls have one of the
             following types:

             -   SW errors:

             -   resource error
             -   security violation
             -   illegal parameter error
             -   informative completion code

             -   HW errors:

             -   TMS connection error
             -   FMS connection error
             -   CESE error (Central error reporting synchronization
                 element)


         iv) O̲p̲e̲r̲a̲t̲o̲r̲ ̲C̲o̲m̲m̲a̲n̲d̲s̲ ̲t̲o̲ ̲a̲n̲ ̲O̲n̲-̲L̲i̲n̲e̲ ̲P̲U̲

             Operator commands control the CCIS hardware and software
             configuration. The execution of the control is shared
             between the SSC in the active PU and the WDP. The SSC
             in the active PU directs in the WDP to execute hardware
             control.

             The basis for execution of operator commands is status
             information displayed on the operator VDU and detailed
             error reports printed at the operator printer.



             The following types of operator functions are foreseen:

             -   start-up of all modes of the system

             -   ordered close down of the system

             -   switch-over from Active PUs to the Standby PU

             -   device control

                 -   connection of devices to buses

                 -   enable/disable operational use of a device/line

             -   control of line attributes (e.g. speed)

             -   load of new software

             -   print of software versions

             -   define generation of trace information

             -   print system status

             -   adjust time 

             -   commands directly to the watchdog


         iv) O̲f̲f̲-̲L̲i̲n̲e̲ ̲P̲U̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲

             The SSC provides a command interface to the support
             software package (SSP) and the offline package (OLP)
             in the off-line PU and allocates resources to enable
             the off-line operations.

             The SSP commands includes low level M&D (maintenance
             and diagnostic) commands to the MAP and MIA (MAP interface
             processor).




2.5      C̲C̲I̲S̲ ̲S̲Y̲S̲T̲E̲M̲ ̲F̲U̲N̲C̲T̲I̲O̲N̲S̲

         CSF is a system software package which on top of KERNEL
         supplies a set of support tools for application packages.
         The main groups of functions are:

         a)  Shared Buffer Management

         b)  Timer Facilities

         c)  Queue Handling

         d)  Message Management System Interface Facilities

         e)  General System Call and Multi-Tasking Facilities





2.6      D̲A̲T̲A̲B̲A̲S̲E̲ ̲M̲A̲N̲A̲G̲E̲M̲E̲N̲T̲ ̲S̲Y̲S̲T̲E̲M̲ ̲S̲O̲F̲T̲W̲A̲R̲E̲

         To support the CCIS Database and meet the requirements
         of the RFP, this Contractor proposes the use of the
         Britton Lee Inc. Intelligent Database Machine (IDM-
         500). This specialized hardware database provides the
         capabilities requested in the RFP with the capability
         increasing the database size by a factor of 10 and
         increasing the processing speed of the IDM by an overall
         factor of 2.

         The IDM 500 is a relational database. Although the
         relational data model is relatively new, it has been
         acclaimed as the most flexible and elegant of the data
         models. Because it is based on a rigorous mathematical
         structure, its data can be easily described and accessed.
         Until there was hardware designed specifically to perform
         relational DBMS functions, however, it appeared that
         relational database systems would not be fast enough
         to be commercially viable. Relational DBMS Systems
         implemented as software running on a host under control
         of a general-purpose operating system are plagued with
         performance problems. The IDM satisfies the high performance
         criteria of DBMS systems while offering all the benefits
         of the relational data model. 

         The IDM relational database management system organizes
         data into one or more independent databases. Each database
         is a collection of tables referred to as "relations".
         Generally all of the relations in one database contain
         logically related information.





                    T̲A̲B̲L̲E̲ ̲O̲F̲ ̲C̲O̲N̲T̲E̲N̲T̲S̲

                                                       Page

     3.7   SECURITY .................................
               
       3.7.1 Security Assurance Via Hardware ........
                 
         3.7.1.1 Principal Hardware Architecture ....
                     
         3.7.1.2 Memory Mapping .....................
                     
         3.7.1.3 CPU States .........................
                     
           3.7.1.3.1 Instruction Execution ..........
                         

         3.7.1.4 MONitor Instruction ................
                     
         3.7.1.5 Interrupts .........................
                     
           3.7.1.5.1 External Interrupts ............
                         
           3.7.1.5.2 Internal Interrupts ............
                         
           3.7.1.5.3 Interrupt Handling  ............
                         

         3.7.1.6 Integrity Checks ...................
                     
           3.7.1.6.1 Passive Checks .................
                         
           3.7.1.6.2 Active Checks ..................
                         

         3.7.1.7 Configuration Control ..............
                     
         3.7.1.8 Packaging and Cabling ..............
                     
           3.7.1.8.1 Equipment in EMI-racks .........
                         
           3.7.1.8.2 Selfstanding peripherals and - 
                     terminals ......................
                         
       3.7.2 Security Assurance via Software ........
               
         3.7.2.1 Summary ............................
                    
         3.7.2.2 Terminal Security ..................
                    
           3.7.2.2.1 Objectives .....................
                          
           3.7.2.2.2 Man Machine Interface ..........
                          
             3.7.2.2.2.1 Security Attributes ........
                    
             3.7.2.2.2.2 Initiation and Termination..
                    
             3.7.2.2.2.3 Security Attributes of 
                         Users and Terminals ........
                                
           3.7.2.2.3 Authentication .................
                        
           3.7.2.2.4 Sign On ........................
                        
           3.7.2.2.5 Sign Off .......................
                        
             3.7.2.2.5.1 Sign Off Command ...........
                
             3.7.2.2.5.2 Automatic Sign Off .........
                
             3.7.2.2.5.3 Terminal Blocking ..........
                    

           3.7.2.2.6 Security Split .................
                        
             3.7.2.2.6.1 Security Attributes Line ...
                    
             3.7.2.2.6.2 Security Command/Response...
                    

           3.7.2.2.7 Change of Password .............
                        
           3.7.2.2.8 Relation to Security Model .....
                        



         3.7.2.3 Data Base Security .................
                    
           3.7.2.3.1 Summary ........................
                        
           3.7.2.3.2 Data Base Objects ..............
                        
           3.7.2.3.3 Security Functions of 
                     Data Base Management System ....
                        
             3.7.2.3.3.1 View .......................
                    
             3.7.2.3.3.2 Mandatory Acces Control ....
                                
             3.7.2.3.3.3 Discretionary Access Control
                    

           3.7.2.3.4 Security Functions of Data 
                     Base Monitoring and Control ....
                        
           3.7.2.3.5 Additional Integrity Checks ....
                        
           3.7.2.3.6 Assurance of Data Base 
                     Management System Software .....
                        

         3.7.2.4 Security Audit .....................
                    
           3.7.2.4.1 Objectives .....................
                        
           3.7.2.4.2 Auditing Events ................
                        
           3.7.2.4.2.1 Terminal Activities ..........
                          
             3.7.2.4.2.2 Communication Lines ........
                            
             3.7.2.4.2.3 Local Devices ..............
                                

           3.7.2.4.3 Protection of Auditing Data ....
                        
           3.7.2.4.4 Audit Trail Analysis ...........
                        
       3.7.3 Security Assurance of the 
             Integrated System ......................
                
         3.7.3.1 Summary ............................
                       
         3.7.3.2 Systems Architecture ...............
                       
           3.7.3.2.1 Summary ........................
                             
           3.7.3.2.2 DAMOS Operating System .........
                             
             3.7.3.2.2.1 DAMOS Functions ............
                                     
               3.7.3.2.2.1.1 Kernel Functions .......
                                               
               3.7.3.2.2.1.2 General File Management
           …02…                System .................  
                            
                 3.7.3.2.2.1.3 System Status and
                               Control...............
                                 

             3.7.3.2.2.2 Process Concept ............
                                       
               3.7.3.2.2.3 Object Concept ...........
                                           
               3.7.3.2.2.3.1 Access to Objects ......
                                 
                 3.7.3.2.2.3.2 Object Types .........
                                    
                 3.7.3.2.2.3.3 Logical Object Level .
                                     

             3.7.3.2.2.4  Memory Protection .........
                            
               3.7.3.2.2.4.1 Views ..................
                                             
             3.7.3.2.2.4.2 Process Layout ...........
                                         
                 3.7.3.2.2.4.3 System Mode and System
                               and Levels............
                                



           3.7.3.2.3 Trusted Computer Base Software...
                              
             3.7.3.2.3.1 Security Kernel .............
                                      
             3.7.3.2.3.2 Trusted System Processes ....
                                      
             3.7.3.2.3.3 Trusted Utilities ...........
                                      
             3.7.3.2.3.4 Trusted Application Processes
                                      

           3.7.3.2.4 Protection and Encapsulation 
                     of Trusted Computer Base ........
                              
             3.7.3.2.4.1 Protection of TCB against 
                       Nontrusted Software ...........
                                  
           3.7.3.3.2 Internal Separation of TCB Modules
                             

           3.7.3.2.5 Security Model ..................
                              
             3.7.3.2.5.1 Object ......................
                                 
             3.7.3.2.5.2 Security Attributes .........
                                 
             3.7.3.2.5.3 Access Control ..............
                                 
                 3.7.3.2.5.3.1 Mandatory Access Control
                            
               3.7.3.2.5.3.2 Discretionary Access
                             Control .................
                                 
                 3.7.3.2.5.3.3 General Access Control
                           

         3.7.3.2.6 Enforcing Security or 
                       Untrusted Software ............
                       

         3.7.3.3 Covert Channel Analysis .............
                   
           3.7.3.3.1 Covert Storage Channels .........
                           
           3.7.3.3.2 Timing Channelse ................
                           
           3.7.3.3.3 Conclusion ......................
                           

         3.7.3.4 MAPPING SECURITY ....................
                   



                       3̲ ̲ ̲S̲E̲C̲U̲R̲I̲T̲Y̲



3.7.1    S̲e̲c̲u̲r̲i̲t̲y̲ ̲A̲s̲s̲u̲r̲a̲n̲c̲e̲ ̲V̲i̲a̲ ̲H̲a̲r̲d̲w̲a̲r̲e̲



3.7.1.1  P̲r̲i̲n̲c̲i̲p̲a̲l̲ ̲H̲a̲r̲d̲w̲a̲r̲e̲ ̲A̲r̲c̲h̲i̲t̲e̲c̲t̲u̲r̲e̲

         The principal hardware architecture is shown on figure
         3.7.1-1. The principal components are:

         -   PU RAM

             The main memory of the system. It is only accessible
             by the CPU's and only via the MAP. The PU RAM consists
             of up to 2M words of 16 bits.

         -   CPU

             Up to 5 central processes units.

             CPU's may access PU RAM, CU RAM and Peripheral
             Processors via MAP.

         -   Peripheral Module

             A peripheral module controls a device or a set
             of similar devices (disks, communication lines
             etc.)
             It consists of CU RAM and a Peripheral Processor.

         -   CU RAM

             Random access memory in a peripheral module. It
             can be accessed by the MAP and by the peripheral
             processor in the same peripheral module. CU RAM
             may add up to 14 M words of 16 bits.

         -   Peripheral Processor.

             A processor controlling a device or a set of devices.

             It can access the device(s) and the CU RAM in the
             same peripheral module, and it can send interrupt
             signals directly to MAP.



         -   MAP

             The memory mapping unit controls CPU access to
             PU RAM, CU RAM and peripheral processor, and it
             interrupts CPU's on request from peripheral processors.

         From a security point of view it should be noted that
         each peripheral processor can only access its own local
         CU RAM, and that all memory accesses from CPU's are
         mediated by the MAP.



3.7.1.2  M̲e̲m̲o̲r̲y̲ ̲M̲a̲p̲p̲i̲n̲g̲

         The total physical address space is up to 16M words
         of 16 bits, while the logical address space of a CPU
         is at any time confined to 64K words of program space
         and 64K words of data space.

         The memory mapping unit is responsible for mapping
         of logical addresses onto physical ones and for check
         of access rights to memory locations.

         The principles of memory mapping is shown on figure
         3.7.1-2.

         Memory is divided into pages of 1K words of 16 bits.
         The mapping of the logical address space of a CPU requires
         two translation tables (TT) in the MAP, the program
         translation table and the data translation table. Each
         TT consists of 64 entries.

         A TT entry contains of two fields:

         -   physical page number, specifying a page of 1K words
             in PU or CU RAM.

         -   access rights



         The access rights field of a TT entry can have 4 different
         values:

         0:  Page Absent

             There is no physical memory page corresponding
             to this logical page.

         1:  Read Access

             This means read access in user state and read/write
             access in system state.  

         2:  Full Access

             This means read/write access in both user and system
             state.

         3:  No Access

             This means no access in user state and read/write
             access in system state.

         The MAP contains 32 pairs of TT's. Ten of the pairs
         are dynamic ones. They are used to describe the memory
         mapping associated with execution of processes. The
         remaining ones are static and used to describe the
         memory mapping associated with execution of kernel
         programs, including device handlers.

         In addition to the memory protection implemented by
         the map, the CPU itself implements two protection mechanisms:

         -   Protection against program modification.

             There are no instructions which allow writing into
             the logical program space.

         -   Bound Registers.

             In system state a bound register in the CPU limits
             write instructions to the part of the data address
             space with logical addresses lower than or equal
             to the current bound register. There is a separate
             bound register for each system level, cf. 3.7.1.3.

         The use of the memory protection mechanism is further
         described in 3.7.3.2.2.4.


3.7.1.3  C̲P̲U̲ ̲S̲t̲a̲t̲e̲s̲

         The CPU may execute in two states:

         USER state
         SYSTEM state

         In the system state the CPU will further be at one
         of 15 system levels which are numbered 1 through 15.
         In user state, the level is 0.

         In U̲S̲E̲R̲ ̲s̲t̲a̲t̲e̲ the CPU is not allowed to execute any
         privileged instructions and it is subject to the memory
         access protection mechanism of the MAP module.

         In S̲Y̲S̲T̲E̲M̲ ̲s̲t̲a̲t̲e̲ the CPU has full access to all locations
         within the logical address space.

         For those of the instructions which may be executed
         on levels 1 to 14, a memory write protection mechanism
         based on a BOUND register applies: The CPU only allows
         write operations to locations with effective logical
         addresses lower than or equal to the current value
         of the BOUND register. This mechanism is implemented
         in the CPU alone (not involving the MAP module).

         The use of system state and bound register is further
         described in 3.7.3.2.2.4.3.

         The CPU enters system state on three occasions:

         -   Execution of a MON instruction is user state.

             This instruction is the only way for a process
             to execute a system call. CF. 3.7.1.4. Any other
             attempt by a process to enter the kernel program
             will be trapped as a memory protection violation.

         -   The CPU is interrupted by the MAP. Cf. 3.7.1.5

         -   The CPU interrupts its own execution. Cf. 3.7.1.5.



3.7.1.3.1    I̲n̲s̲t̲r̲u̲c̲t̲i̲o̲n̲ ̲E̲x̲e̲c̲u̲t̲i̲o̲n̲

         All assigned CPU instructions are completely documented
         with all effects described. Unassigned instructions
         are trapped by an internal interrupt, cf. 3.7.1.5.2,
         causing the executing process to be stopped.

         Priviledged instructions fall into two classes:

         -   Normal priviledged instructions.
             These must only be executed in system state.

         -   Highly priviledged instructions.
             These must only be executed in system state at
             level 15. They include all the I/O instructions
             and those instructions which may change the memory
             mapping.



3.7.1.4  M̲O̲N̲i̲t̲o̲r̲ ̲I̲n̲s̲t̲r̲u̲c̲t̲i̲o̲n̲

         The MONitor instruction is used to execute a system
         call. It can be executed in User state or System state.

         The instruction has as the only operand the system
         call identification.

         Each system call has an associated system level ranging
         from 1 to 15 and a location of the kernel program to
         execute the call. This information is located in the
         Monitor Table within the Kernel Program.

         The function of the MON instruction is (cf. figure
         3.7.1-3):

         -   Set CPU state to System state.

         -   Use the system call identification as an index
             in the monitor table. Fetch location and system
             level from the entry.

         -   Use system level as an index into the Bound Register
             MAP and load the bound register associated with
             the system level.

         -   Enter the location fetched from monitor table.


3.7.1.5  I̲n̲t̲e̲r̲r̲u̲p̲t̲s̲

         An Interrupt is defined as:

             -   an event which is unrelated to the current
                 program being executed and beyond the control
                 of that program (external interrupts),

             -   an event which is related to a fault condition
                 caused by the program.

         In both cases, the current process is preempted, and
         control is transferred to the operating system kernel.



3.7.1.5.1    E̲x̲t̲e̲r̲n̲a̲l̲ ̲I̲n̲t̲e̲r̲r̲u̲p̲t̲s̲

         These interrupts are initiated by MAP for one of the
         following reasons:

         -   Interrupt signals from peripheral modules, including
             real time clock.

         -   Time Out from a memory module or a peripheral module.



3.7.1.5.2    I̲n̲t̲e̲r̲n̲a̲l̲ ̲I̲n̲t̲e̲r̲r̲u̲p̲t̲s̲

         These interrupts can be initiated by the MAP or by
         the CPU itself. They are:

         -   Memory Access Rights violation (cf. 3.7.1.2)

         -   Bound Register violation.

         -   Execution of a priviledged instruction or a TRAP
             instruction is user state.


         -   Execution in system state, level 1-14 of an instruction
             which is priviledged at level 15.

         -   Stack overflow.




3.7.1.5.3    I̲n̲t̲e̲r̲r̲u̲p̲t̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲ ̲

         An interrupt will cause the CPU to:

         -   Stack the current CPU context
         -   Enter system state at level 15
         -   Enter an interrupt handling location in the kernel
             program depending upon the interrupt.

         Internal interrupts will cause the current process
         to be stopped and a notification to be sent to the
         operating system, which may then decide to abort the
         process causing the interrupt.

         External interrupts will cause the CPU to enter the
         device handler, which is responsible for the peripheral
         module requesting the interrupt.



         PU RAM                                CPU
                                               (1-5)






                             MAP




         Data Channel






                       Peripheral Module





                       CU RAM          Peripheral        DEVICE
                                       Processor
















      Figure 3.7.1-1…01…Principal Hardware Architecture


         CPU

         Logical             M̲A̲P̲               Physical Address
         Address
         Space               Address
                             Transla-
                             tion
                                                       1K
Logical  64K     Program
Program  words   (read)
Space            1K
                 1K                                    1K


Logial   64K     data
Data     words   (write)                               1K
Space            1K
                 1K
                 1K











                                                       1K















            Figure 3.7.1-2…01…Address Translation


255

         Monitor                               Kernel
         Table                                 Program





                       Location


                       Level






                             Bound
                             Register
                             Max
                                               Kernel
                                               Data





















            Figure 3.7.1-3…01…Monitor Instruction


3.7.1.6  I̲n̲t̲e̲g̲r̲i̲t̲y̲ ̲C̲h̲e̲c̲k̲s̲



3.7.1.6.1    P̲a̲s̲s̲i̲v̲e̲ ̲C̲h̲e̲c̲k̲s̲

         Redundancy checks (e.g. parity) are applied throughout
         the system in order to detect any modifications of
         information stored in or transmitted within the system.
         This includes:

         -   PU RAM
         -   CU RAM
         -   Busses
         -   Internal registers in CPU and MAP modules.



3.7.1.6.2    A̲c̲t̲i̲v̲e̲ ̲C̲h̲e̲c̲k̲s̲

         All internal information transfers are supervised by
         a timeout mechanism in the MAP module, detecting any
         disconnection of a module from the system.

         All active modules, e.g. MAP, CPU, Peripheral Modules
         include a self test program, which is entered during
         start up. The module will only be accepted as operational,
         if the start up test succeeds. The internal test facilities
         of peripheral modules may be exercised during the online
         operation.



3.7.1.7  C̲o̲n̲f̲i̲g̲u̲r̲a̲t̲i̲o̲n̲ ̲C̲o̲n̲t̲r̲o̲l̲

         All peripheral modules are constructed so as to supervise
         the connection status of the attached devices. Any
         temporary or permanent disconnection of a device (e.g.
         removal of a disk pack) will be reported. This is done
         by an immediate interrupt or by returning an error
         condition as a response to the next command.

         A device (e.g. a communication line) can thus not be
         replaced without notification of the operating system.


3.7.1.8  P̲a̲c̲k̲a̲g̲i̲n̲g̲ ̲a̲n̲d̲ ̲C̲a̲b̲l̲i̲n̲g̲

         The installation of equipment and cables will be made
         in accordance with the applicable criteria as defined
         in AMSG 719B.

         Installation details are described in a separate section
         in this proposal.

         The proposed equipment can be grouped in the following
         2 categories.

         -   equipment mounted in EMI-racks

         -   selfstanding peripherals and terminals.



3.7.1.8.1    E̲q̲u̲i̲p̲m̲e̲n̲t̲ ̲i̲n̲ ̲E̲M̲I̲-̲r̲a̲c̲k̲s̲

         The EMI-rack design, including filtering of power lines
         and signal lines has been certified to comply with
         AMSG 720A-requirements.

         The certification is issued for racks equipped with
         Processors, peripherals etc.
         The same as the proposed configuration.

         During the production of the racks, the manufacturing
         is controlled in accordance with specially established
         quality inspection criteria to ensure, that the potential
         risk areas for excessive emanation are carefully handled
         in manufacturing.

         Specially, the tolerances around the doors are minimized,
         and once the doors are adjusted at the factory, no
         field adjustment is required.


3.7.1.8.2    S̲e̲l̲f̲s̲t̲a̲n̲d̲i̲n̲g̲ ̲p̲e̲r̲i̲p̲h̲e̲r̲a̲l̲s̲ ̲a̲n̲d̲ ̲t̲e̲r̲m̲i̲n̲a̲l̲s̲

         The following peripherals and terminals, which are
         processing NATO classified information, complies with
         AMSG 720A:

         a)  Alphanumeric terminal
         b)  Colorgraphic terminal
         c)  Hardcopier
         d)  Large Group Display unit
         e)  Line Printer
         f)  Color Plotter
         g)  Paper Tape Unit
         h)  Medium Speed Printer
             (for Operator position)

         The Colorgraphic Monitors will be equipped with degaussing
         facilities, which meet NATO regulations.

         In order to minimize enamation of compromizing signals,
         the serial communication lines between main racks and
         peripherals/terminals use low level keying (6-0-6 volts)
         and waveshaping on the electrical lines.

         For the communication lines from the main racks to
         the alphanumeric and graphic workstations, optical
         fibre lines are employed.


3.7.2    S̲e̲c̲u̲r̲i̲t̲y̲ ̲A̲s̲s̲u̲r̲a̲n̲c̲e̲ ̲v̲i̲a̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲



3.7.2.1  S̲u̲m̲m̲a̲r̲y̲

         This section describes implementation details about
         the following major security areas:

         -   Terminal Security

         -   Data Base Security

         -   Security Audit

         -   Security Administration


3.7.2.2  T̲e̲r̲m̲i̲n̲a̲l̲ ̲S̲e̲c̲u̲r̲i̲t̲y̲

         This section described the security mechanisms controlling
         user access to the system via interactive terminals.
         These mechanisms constitute the basic vehicle for the
         Man Machine Interface, enforcing the required security
         upon all user transactions.



3.7.2.2.1 O̲b̲j̲e̲c̲t̲i̲v̲e̲s̲

         The major objectives in designing terminal security
         are:

         -   Encapsulation of security mechanisms:
             The Trusted Computer Base will enforce the security
             policy upon the software modules performing data
             manipulation, e.g. user transactions. Those software
             modules are not part of TCB, and errors in the
             modules can thus not affect security.

         -   Operational Security:

             --  The Trusted Computer Base will enforce proper
                 authentication of the termial and the user
                 at the terminal, and require reauthentication
                 after security relevant events as specified
                 by the Security Administrator.

             --  The Trusted Computer Base will continuously
                 inform the user of the security classification
                 of the data currently shown on the terminal.

         The security functions for terminals are handled by
         Terminal Monitoring and Control (TEMCO), which is part
         of the System Status and Control Module of DAMOS Operating
         System, see section 3.7.3.2.2.1.3.



3.7.2.2.2    M̲a̲n̲ ̲M̲a̲c̲h̲i̲n̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The basic concepts in the Man Mahince Interface are
         used to separate activities and are defined as sessions
         and transactions.

         A transaction is a logical unit of work, such as:

         -   Preparing a single message.



         -   Forming a data base query and displaying the results.

         -   Displaying a received message.

         A transaction will normally consist of a series of
         interactions (input from user followed by response
         from system).

         A session is an unbroken sequence of transactions performed
         by one user at one terminal. It is bracketed by Sign
         On and Sign Off by the user.



3.7.2.2.2.1  S̲e̲c̲u̲r̲i̲t̲y̲ ̲A̲t̲t̲r̲i̲b̲u̲t̲e̲s̲

         The Security Attributes used to enforce terminal security
         are:

         -   Security Profile:

             A security profile is an aggregate of a Security
             Level ranging from NATO UNCLASSIFIED to COSMIC
             TOP SECRET and a set of 45 Security Categories.
             Each security category represents some additional
             caveat, such as ATOMAL.

         -   Use Group Id (UGI)

             An identification of a user or a group of users.

         The security profile is used to enforce Mandatory Security
         while the UGI is used to enforce Discretionary Security.

         For a more detailed description refer to 3.7.3.2.5.

         a)  Transactions and sessions have the following security
             attributes associated with them:

             -   Security Profile

             -   User Group Id (UGI)

             The UGI remains unchanged during the session. So
             does the security profile of the session, while
             the security profiles of the transactions may vary.
             The security profile of a transaction within a
             session must however, always be dominated by the
             security profile of the session.


         b)  Assignment of Security Attributes:

             The security attributes of a session are assigned
             during Sign On:

             -   The security profile is the minimum of the
                 profile of the user, the profile of the terminal
                 and an optional profile entered by the user
                 during Sign On. Cf.3.7.2.2.4.

             -   The UGI is that of the user.

             The security attributes of transactions are assigned
             at transaction start:

             -   The security profile is established automatically
                 by the system if the transaction consists of
                 displaying data queued for the terminal.

             -   The security profile is established by a command
                 from the user, if the transaction can result
                 in any updates of data within the system.

             -   The UGI is that of the session.



3.7.2.2.2.2  I̲n̲i̲t̲i̲a̲t̲i̲o̲n̲ ̲a̲n̲d̲ ̲T̲e̲r̲m̲i̲n̲a̲t̲i̲o̲n̲

         a)  A session is initiated by a SIGN ON command from
             a user, cf. 3.7.2.2.4. Upon a successful Sign On,
             the security profile and UGI of the session is
             established as described in 3.7.2.2.2.1 b).

         b)  A session is terminated by:

             -   SIGN OFF command from user. Cf. 3.7.2.2.5.1.

             -   Automatic Sign Off by system. Cf.  3.7.2.2.5.2.
                 VDU memory is automatically erased upon Sign
                 Off, cf. 3.7.2.2.8.

         c)  A transaction is initiated by the user entering
             a command. Cf. 3.7.2.2.6.2.

             The security profile is established automatically
             by the system or by user entered parameters with
             the command.



             If when creating the new security profile, it is
             dominated by the previous one, the VDU memory is
             automatically erased, cf.  3.7.2.2.8. On the same
             conditions the memory of the software task handling
             the previous transaction is erased.

         d)  A transaction is terminated by:

             -   Normal Completion.
             -   Abnormal Completion:
                 -- The user entering a command such as SIGN
                 
                    OFF, CANCEL, SUSPEND

                 --  Automatic Sign Off.
                 --  Security Violation.
                     Any attempt by a transaction to violate
                     the current mandatory or discretionary
                     access rights is considered a security
                     violation.

         Initiation and termination of sessions and transactions,
         including establishment of security attributes, are
         managed by TEMCO. Each of these events are logged on
         the Security Log, cf. 3.7.3.



3.7.2.2.2.3  S̲e̲c̲u̲r̲i̲t̲y̲ ̲A̲t̲t̲r̲i̲b̲u̲t̲e̲s̲ ̲o̲f̲ ̲U̲s̲e̲r̲s̲ ̲a̲n̲d̲ ̲T̲e̲r̲m̲i̲n̲a̲l̲s̲

         Each User and each terminal have a set of associated
         security attributes. They are used to establish the
         security attributes of a session during Sign On.

         The security attributes are assigned and maintained
         by the security administrator, cf. 3.7.2.5.1.1.

         a)  S̲e̲c̲u̲r̲i̲t̲y̲ ̲a̲t̲t̲r̲i̲b̲u̲t̲e̲s̲ ̲o̲f̲ ̲U̲s̲e̲r̲s̲

             Each user has the following security attributes:

             -   Security Profile:

                 The highest security profile of data that the
                 user is allowed to access. This profile will
                 limit the security profile of any session that
                 the user may initiate at any terminal.



             -   UGI:

                 The user group id of the user.
                 This UGI is associated with any transaction
                 initiated by the user.

         b)  S̲e̲c̲u̲r̲i̲t̲y̲ ̲A̲t̲t̲r̲i̲b̲u̲t̲e̲s̲ ̲o̲f̲ ̲T̲e̲r̲m̲i̲n̲a̲l̲s̲

             Each terminal has the following security attributes:

             -   Security Profile:
                 The highest security profile of data which
                 can be accessed from this terminal. This profile
                 will limit the security profile of any session
                 initiated at the terminal by any user.

             -   Access Control List:
                 A list of UGI's for users which are allowed
                 to sign on at the terminal.

3.7.2.2.3    A̲u̲t̲h̲e̲n̲t̲i̲c̲a̲t̲i̲o̲n̲

         The identities of the terminal and the user are continuously
         monitored as follows:

         a)  Terminal Authentication.

             The Terminal and channel number is established
             by the security manager and controlled by security
             tables (Refer to 3.7.2.5.1.1).

             Any disconnection of the terminal will cause an
             automatic sign off.

         b)  User Authentication.

             Users identify themselves by means of:

             1)  A security key

             2)  User Name

             3)  Password


          During sign on, TEMCO will check the consistency of
         the user and the password. The password will not be
         shown on the terminal. Note also that passwords are
         kept internally in encrypted from, cf. 3.7.2.5.1.1.(a).
         During a session the user will be interrogated for
         his password at the following occasions:

         -   Before execution of selected transactions, as specified
             by Security Administrator.

         -   Before execution of any transaction, the security
             profile of which is above an interrogation profile
             specified by Security Administrator.

         An automatic sign off will take place upon a specified
         number of failed attempts to enter a correct password.



3.7.2.2.4    S̲i̲g̲n̲ ̲O̲n̲

         A user initiates a session by issuing the SIGN ON command
         to TEMCO in the security split, cf.  3.7.2.2.6. The
         user is required to enter user name and password. The
         password will not be shown on terminal. An optional
         security profile may be entered too. The security key
         must be in the ON position.

         TEMCO checks the consistency of the entered parameters.
         The user is allowed a predefined number of unsuccessful
         attempts to sign on. If the threshold is reached, the
         terminal will be blocked.

         Sign On can not be done, if the terminal is blocked,
         cf. 3.7.2.2.5.3.

3.7.2.2.5    S̲i̲g̲n̲ ̲O̲f̲f̲

         A Sign off terminates the current session. The terminal
         memory will be cleared upon a sign off.



3.7.2.2.5.1  S̲i̲g̲n̲ ̲O̲f̲f̲ ̲C̲o̲m̲m̲a̲n̲d̲

         The user terminates a session by issuing a SIGN OFF
         command to TEMCO.





3.7.2.2.5.2  A̲u̲t̲o̲m̲a̲t̲i̲c̲ ̲S̲i̲g̲n̲ ̲O̲f̲f̲

         An automatic sign off of the user will be done when:

         -   The terminal becomes physically disconnected.

         -   The user fails to enter the correct password during
             security interrogation, cf. 3.7.2.2.3(b).

         -   The terminal becomes blocked by command from Security
             Administrator as described in the secutirites procedures
             manual.

         -   Any threshold monitoring violation of the users
             access rights is reached.

         -   The terminal is inactive for a period longer than
             the one specified for the current security level.



3.7.2.2.5.3  T̲e̲r̲m̲i̲n̲a̲l̲ ̲B̲l̲o̲c̲k̲i̲n̲g̲

         A terminal can be logically blocked, meaning that sign
         on at the terminal is not permitted.

         The terminal becomes blocked, if:

         -   Security violation attempts of types, identified
             in security procedure manual, which shall cause
             terminal blocking, such as unsuccessfull entering
             of password, cf. 3.7.2.2.4.

         -   The security administrator issues a 'block terminal'
             command for the terminal, cf. 3.7.2.5.4.

         A blocked terminal can only become unblocked by a command
         from security administrator.





3.7.2.2.6    S̲e̲c̲u̲r̲i̲t̲y̲ ̲S̲p̲l̲i̲t̲

         The screen of a terminal is divided into two parts,
         one being the s̲e̲c̲u̲r̲i̲t̲y̲ ̲s̲p̲l̲i̲t̲, the other the f̲o̲r̲m̲a̲t̲
         ̲s̲p̲l̲i̲t̲.

         The security split is the part of the VDU used for
         communication between the user and TEMCO.

         No software module outside TEMCO will be allowed to
         access the security split.

         The security split is an implementation of the Trusted
         Path facility required in B3 requirements.

         The security split contains a Security Attribute line.
         On Alpha Terminals it contains in addition a Security
         Command/Response Line.



3.7.2.2.6.1  S̲e̲c̲u̲r̲i̲t̲y̲ ̲A̲t̲t̲r̲i̲b̲u̲t̲e̲s̲ ̲L̲i̲n̲e̲

         A Line of the security split where TEMCO displays the
         security profile of the current transaction.

         The security consists of (cf. 3.7.2.2.2.1.):

         -   security level
         -   security categories

         Alpha as well as graphics displays shall have a security
         attributes line.

         This line shall also contain an identification of the
         current transaction.





3.7.2.2.6.2  S̲e̲c̲u̲r̲i̲t̲y̲ ̲C̲o̲m̲m̲a̲n̲d̲/̲R̲e̲s̲p̲o̲n̲s̲e̲ ̲L̲i̲n̲e̲

         This line of the security split shall only exist on
         alpha terminals. It shall only be used for communication
         between TEMCO and the user. All commands for initiation
         and termination of session and transactions are entered
         in the security command/response line.

         Commands to application software within a transaction
         are entered in the format split.

         One or more function keys can be assigned to the security
         commands. Depressing any of these will cause control
         of the terminal to be taken over by TEMCO.



3.7.2.2.7    C̲h̲a̲n̲g̲e̲ ̲o̲f̲ ̲P̲a̲s̲s̲w̲o̲r̲d̲

         The password of a user can always be changed by the
         securitiy adminstrator. As an option, the  password
         may also be changed by the user during a session based
         upon the security procedure manual direction.

         This is done by a Change Password command to TEMCO.

         Security Interrogatin will always be required for this
         transaction. Cf. 3.7.2.2.3.b.



3.7.2.2.8    R̲e̲l̲a̲t̲i̲o̲n̲ ̲t̲o̲ ̲S̲e̲c̲u̲r̲i̲t̲y̲ ̲M̲o̲d̲e̲l̲

         As explained in previous sections, terminal security
         is managed by TEMCO, which is part of Trusted Computer
         Base.

         At the beginning of each transaction TEMCO initiaties
         an untrusted user process, operating with the security
         attributes of the transaction and allows it to communicated
         with the user via the format split of the terminals,
         cf. 3.7.2.2.6. Within the system this user process
         now acts on behalf of the user during execution of
         the transaction.



         The mandatory and discretionary access control rules
         described in section 3.7.3.2.5 are automatically enforced
         upon any data access performed by an untrusted process.
         In this way TEMCO ensures that the user process and
         thus the user can never access data beyond this current
         access rights.

         At the end of each transaction TEMCO terminates the
         user process and erases its data area in main memory.
         In this way it ensures that data from this transaction
         can not be mixed into data for the next transaction,
         which may possibly carry a lower security profile.

         The terminal memory is erased upon a sign off, and
         whenever the security profile of a transaction is dominated
         by that of the previous transaction.



3.7.2.3  D̲a̲t̲a̲ ̲B̲a̲s̲e̲ ̲S̲e̲c̲u̲r̲i̲t̲y̲



3.7.2.3.1    S̲u̲m̲m̲a̲r̲y̲

         This section described the mechanisms used to ensure
         security of the data stored by the Data Base Management
         System (IDM 500 Data Base Machine).

         The security of data is controlled by Data Base Management
         System, DBMS and Data Base Monitoring and Control,
         DMCS in cooperation. DMCS is a module in the DAMOS
         Operating System, cf, 3.7.3.2.3.2.

         The topics covered in this section are:

         -   Description of Data Base Objects
         -   Security Functions of Data Base Management System
         -   Security Functions of Data Base Monitoring and
             Control.
         -   Additional Integrity Checks of Data Base Management
             System.
         -   Assurance of Data Base Management System Software.


3.7.2.3.2    D̲a̲t̲a̲ ̲B̲a̲s̲e̲ ̲O̲b̲j̲e̲c̲t̲s̲

         For the sake of clarity, a few basic concepts of DBMS
         are explained.

         Data are stored in r̲e̲l̲a̲t̲i̲o̲n̲s̲, which are similar to
         files in other systems.

         A relation consists of a variable number of t̲u̲p̲l̲e̲s̲,
         which are similar to records. A tuple is a collection
         of information about an entity.

         A tuple consists of a fixed number of a̲t̲t̲r̲i̲b̲u̲t̲e̲s̲, which
         are similar to fields. An attribute is an information
         atom which can not be broken further down.

         The o̲b̲j̲e̲c̲t̲s̲ (Cf. 3.7.3.2.5) are the tuples. Each tuple
         has its own security profile attribute for mandatory
         access control. Discretionary access control is done
         on relations. So all tuples in a relation have the
         same discretionary security attributes (Access Control
         List).

         A relation can easily be broken into two relations,
         where some of the attributes of the original tuples
         go to one relation while the remaining attributes go
         to the other relation. The only penalty is a slight
         overhead in access to the data. The association of
         security profile to tuples (records along with attributes
         fields) is an additional level of security. At times
         data fields (elements) might have a classification
         level but collectively have a higher classification
         level.



3.7.2.3.3    S̲e̲c̲u̲r̲i̲t̲y̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲ ̲o̲f̲ ̲D̲a̲t̲a̲ ̲B̲a̲s̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲S̲y̲s̲t̲e̲m̲

         This section descibes the mechanism implemented in
         DBMS for security control. The functions of Data Base
         Monitoring and Control for support of these mechanisms
         are described in 3.7.2.3.4.



3.7.2.3.3.1  V̲i̲e̲w̲

         In Codasyl terminology, a relation is similar to an
         internal schema. The concept of a view in DBMS is similar
         to an external schema.



         Only the Data Base Administrator (a particular User),
         will be allowed to access relations directly. All other
         users and processes must access relations indirectly
         via views, defined by Data Base Administrator and security
         administrator if the functions are separated.

         A view is a "virtual relation". It is defined by means
         of real relations. A tuple of a view consists of a
         defined subset of the attributes of one or more real
         relations. A number of additional conditions may be
         superimposed by the view, such as a specific attribute
         being within a certain range.

         A user process accessing a view will never be aware
         of the existence of the relations constituting the
         view or the existence of tuples excluded by the additional
         conditions of the view.

         Views are subject to discretionary access control in
         the same way as relations, e.g. views will have a security
         classification if associated with a view.



3.7.2.3.3.2  M̲a̲n̲d̲a̲t̲o̲r̲y̲ ̲A̲c̲c̲e̲s̲ ̲C̲o̲n̲t̲r̲o̲l̲

         Each tuple of the real relations has a security profile
         attribute, consisting of security level and security
         categories as defined in 3.7.3.2.5.2.

         This security profile attribute or the basis for mandatory
         access control. The rules are:

         -   Retrieve Access.

             A necessary condition that a process is allowed
             to retrieve any attribute from a tuple is, that
             the security profile of the process dominates that
             of the tuple.

         -   Append Access.

             If an untrusted process appends a tuple to a relation,
             the security profile attribute of the tuple will
             be set to that of the process.



         -   Replace Access.

             A necessary condition that an untrusted process
             is allowed to replace an attribute of a tuple is
             that the security profile of the process equals
             that of 
             the tuple.

         -   A necessary condition that a trusted process is
             allowed to replace an attribute of a tuple is that
             the security profile of the process dominates that
             of the tuple.

         The access control rules stated above are implemented
         by means of view definitions. The real relations are
         always accessed via views superimposing this access
         check.



3.7.2.3.3.3  D̲i̲s̲c̲r̲e̲t̲i̲o̲n̲a̲r̲y̲ ̲A̲c̲c̲e̲s̲s̲ ̲C̲o̲n̲t̲r̲o̲l̲

         Discretionary Access Control applies to views, relations
         and attributes within relations. For each of these
         entities and each UGI (Cf. 3.7.3.2.5.2 (b)) it can
         be specified, which of the functions retrieve, append
         or replace that are allowed for processes with that
         UGI.



3.7.2.3.4    S̲e̲c̲u̲r̲i̲t̲y̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲ ̲o̲f̲ ̲D̲a̲t̲a̲ ̲B̲a̲s̲e̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲ ̲a̲n̲d̲
             ̲C̲o̲n̲t̲r̲o̲l̲

         Data Base Monitoring and Control DMCS is the interface
         in CR80 to the DBMS. It has the following security
         functions:

         -   Supply Control Information with each request.
             The control information to be used by DBMS for
             access control is (cf. 3.7.3.2.5.2) Security Profile,
             UGI and Trusted Flag of the requesting process.

         -   Perform Access Control on DBMS requests issued
             by processes. For each UGI, a subset of the complete
             set of DBMS commands is allowed.

         -   Create a separate audit of all requests from application
             processes.





3.7.2.3.5    A̲d̲d̲i̲t̲i̲o̲n̲a̲l̲ ̲I̲n̲t̲e̲g̲r̲i̲t̲y̲ ̲C̲h̲e̲c̲k̲s̲

         In order to increase the assurance that security attributes
         of tuples are maintained correctly, a number of additional
         integrity check can be done. They could be:

         -   A checksum of the complete tuple, including the
             security attribute

         -   Minimum and maximum security profile of each relation.

         Utilities can be run on request by security administrator
         or at predefined intervals checking the consistence
         of specified relations according to the check mechanism
         described above.



3.7.2.3.6    A̲s̲s̲u̲r̲a̲n̲c̲e̲ ̲o̲f̲ ̲D̲a̲t̲a̲ ̲B̲a̲s̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲S̲y̲s̲t̲e̲m̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

         This section lists a number of properties of the DBMS
         Software which are important for assessment of the
         degree of confidence to the security controls performed
         by DBMS.

         -   The IDM 500 including DBMS software is a standard
             product supplied by a subcontractor.

         -   DBMS Software is supplied by subcontractor in object
             code form.

         -   There are no changes or new functions in the DBMS
             Software for the CCIS System.

         -   The only parametrization of the DBMS Software for
             the CCIS System is that of the IDM 500 hardware
             configuration. No parameters for resource utilization
             etc., are specified in the object program.

         -   The DBMS software implements a set of general tools
             for setup of data bases, relations, views etc.,
             and for manipulation of those entities. The developers
             of that software can have had no anticipation of
             the contents, structure inter relationships etc.,
             of the CCIS data base components. Thus no mechanisms
             can have been put into the software for intentional
             compromise of security.


         -   The IDM 500 is already used in numerous systems,
             and it has shown a remarkable reliability and resistance
             against tampering, so that the likelihood of unintentional
             security compromise caused by flaws in DBMS software
             or hardware is extremely low.



3.7.2.4  S̲e̲c̲u̲r̲i̲t̲y̲ ̲A̲u̲d̲i̲t̲

         This section describes the auditing facilities in the
         Trusted Computer Base. These facilities makes it possible
         for a Security Administrator to audit on a terminal
         security relevant events in the system, selected at
         his discretion, and to analyze the security audit trail.



3.7.2.4.1    O̲b̲j̲e̲c̲t̲i̲v̲e̲s̲

         The major objectives of security audit are:

         -   Produce in the security audit file an audit trail
             of all security relevant events in the system.

         -   Output in real time at a security audit terminal
             a subset of the complete security audit trail selected
             by parameters specified by the Security Administrator.

         -   Offer facilities for later analysis of the security
             audit trail with analysis criteria as specified
             by Security Administrator.



3.7.3.2  A̲u̲d̲i̲t̲i̲n̲g̲ ̲E̲v̲e̲n̲t̲s̲

         This section describes the events which shall produce
         an audit record.





3.7.2.4.2.1  T̲e̲r̲m̲i̲n̲a̲l̲ ̲A̲c̲t̲i̲v̲i̲t̲i̲e̲s̲

         -   Sign on.
             This includes successful as well as unsuccessful
             attempts.

         -   Sign off.
             Includes user initiated as well as automatic sign
             off.

         -   Transaction start.

         -   Transaction Completion.
             This includes normal as well as abnormal completion.
             Cf. 3.7.2.2.2.2.d).
             As any security violation by a user process will
             automatically cause an abnormal completion of the
             current trnsaction, all user attempts to violate
             security will be logged this way.

         -   Database Access.
             The opening and closing of a database file by a
             user process will be logged.

         -   Message Access.
             The opening and closing of a message by a user
             process will be logged.



3.7.2.4.2.2  C̲o̲m̲m̲u̲n̲i̲c̲a̲t̲i̲o̲n̲ ̲L̲i̲n̲e̲s̲

         -   Connection and disconnection of line.

         -   Start and end of transmission of a message.

         -   Start and end of reception of a message.



3.7.2.4.2.3  Lo̲c̲a̲l̲ ̲D̲e̲v̲i̲c̲e̲s̲

         -   Mount and dismount of random access media.

         -   Start and end of output of message on a hardcopy
             device.

         -   Start and end of input of message from a local
             device.



3.7.2.4.3    P̲r̲o̲t̲e̲c̲t̲i̲o̲n̲ ̲o̲f̲ ̲A̲u̲d̲i̲t̲i̲n̲g̲ ̲D̲a̲t̲a̲

         Auditing data will be protected by two mechanisms:

         -   Mandatory Protection:
             A specific security category (caveat) will be reserved
             for auditing data.

             In particular this will prevent auditing data from
             being transmitted to any device or terminal not
             having acccess to this category.

         -   Discretionary Protection:
             Only the Security Administrators user id will be
             allowed access to the security log files.

             The advantage of the protection mechanism is that
             the privileges assigned to the Security Administrator
             for performing the role of Audit Data Manager do
             not require access to any other data in the system,
             Cf. (B3) 3.3.3.7.4.



3.7.2.4.4    A̲u̲d̲i̲t̲ ̲T̲r̲a̲i̲l̲ ̲A̲n̲a̲l̲y̲s̲i̲s̲

         The audit files will be kept in two copies, one at
         the CR80 File System, the other at the IDM 500 Data
         Base Machine.

         There will be two kinds of tools for audit trail analysis

         -   An analysis utility with a predefined set of analysis
             criteria. This utility uses the CR80 copy of the
             audit file.

         -   Ad hoc analysis using the DBMS Query or Report
             Writer facilities. This facility will allow for
             any possible anlysis criteria. It uses the IDM
             500 copy of the audit file.




3.7.2.5  S̲e̲c̲u̲r̲i̲t̲y̲ ̲A̲d̲m̲i̲n̲i̲s̲t̲r̲a̲t̲i̲o̲n̲

         This section describes the data used for controlling
         security, and the management of those data by the Security
         Administrators.



3.7.2.5.1 S̲e̲c̲u̲r̲i̲t̲y̲ ̲D̲a̲t̲a̲

         Security Data falls into three main categoties:

         -   Security Tables:
             Tables of users, terminals, communication lines
             etc., with associated security attributes and authentication
             data.

         -   Security Parameters:
             Global parameters specifying thresholds etc., such
             as the automatic sign off time period for each
             security level.

         -   Programs and Data:
             The executable software modules constituting the
             system.



3.7.2.5.1.1  S̲e̲c̲u̲r̲i̲t̲y̲ ̲T̲a̲b̲l̲e̲s̲

         a)  User Table.
             Contains User Name, UGI, security profile and password
             for each user known to the system. The password
             is stored in one way encrypted form. The terminal
             where the user is currently signed on.

         b)  Terminal Table.
             Contains physical terminal id (answer back), security
             attributes and the user names for the users which
             are allowed to sign on at the terminal. The current
             state of the terminal and the id of the current
             user.

         c)  Device Table.
             Contains security attributes of each local device
             at the system.

         d)  Line Table.
             Contains security attributes of each communication
             line in the system.


3.7.2.5.2    P̲r̲o̲t̲e̲c̲t̲i̲o̲n̲ ̲o̲f̲ ̲S̲e̲c̲u̲r̲i̲t̲y̲ ̲D̲a̲t̲a̲

         Security Data will be protected by 3 different means:

         -   Mandatory Protection.
             A special security category (caveat) will be reserved
             for security data. In particular this prevents
             security data from being transmitted to any device
             or terminal not having access to this category.

         -   Discretionary Protection.
             Only the security administrator user id's will
             allow access to security data.

         -   Two Man Rule.
             For each security table and each security parameter
             it is specified at system generation time whether
             the two man rule shall be enforced.This is a administration
             decision to be inforced by the security administrator.



3.7.2.5.3     M̲a̲n̲i̲p̲u̲l̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲S̲e̲c̲u̲r̲i̲t̲y̲ ̲D̲a̲t̲a̲ ̲

         Inspection and update of security data can be done
         by certain users at certain terminals. As seen from
         section 3.7.2.5.2 the conditions are:

         a)  The terminal must have the security data category
             included into its security attributes.

         b)  The user must have access to the security data
             category and have a UGI belonging to the set of
             System Administrators.

         Access to security data is performed from a terminal
         by specific commands to TEMCO resulting in transactions
         as described in 3.7.2.2.2.2 c). The security profile
         of the transactions are automatically restricted to
         the security data category.

         The software modules loaded by TEMCO must be trusted
         software as they access the security data. On the other
         hand they do not have extended privileges such as access
         to highly classified data during execution.

         The two man rule is enforced by the transaction modules
         whenever appropriate.


3.7.2.5.4    S̲e̲c̲u̲r̲i̲t̲y̲ ̲T̲r̲a̲n̲s̲a̲c̲t̲i̲o̲n̲s̲

         Commands exist allowing the System Administrators to
         do the following:

         a)  Maintain Security Tables:
             -   Inspect or update existing entries.
             -   Add or delete entries.

         b)  Inspect or update security parameters.

         c)  Block or unblock user terminals.

         d)  Initiate Audit Trail Analysis.

         e)  Specify parameters controlling the part of the
             audit trail to be output at the audit terminal
             in real time.

         f)  Install new versions of software modules.

         The security transactions as well as the protection
         philosophy for security data are described in detail
         in the Security Procedures Manual.


3.7.3    S̲e̲c̲u̲r̲i̲t̲y̲ ̲A̲s̲s̲u̲r̲a̲n̲c̲e̲ ̲o̲f̲ ̲t̲h̲e̲ ̲I̲n̲t̲e̲g̲r̲a̲t̲e̲d̲ ̲S̲y̲s̲t̲e̲m̲



3.7.3.1  S̲u̲m̲m̲a̲r̲y̲

         The purpose of this section is to give an overview
         of the totality of security software modules in the
         system and describe how these modules together with
         the hardware protection facilities form a Trusted Computer
         Base, which is compliant with the requirements for
         a B3 system, and with the specific requirements of
         the RFP security sections.

         The TCB is shown to have the following main properties:

         -   TCB implements the Reference Monitor Concept, mediating
             all access requests from application software to
             system objects.

         -   TCB protects itself completely from any form of
             tampering by users and applications software.

         -   TCB is highly structured. Advanced hardware and
             software techniques are used for internal separation
             and protection within TCB, thus enforcing the concept
             of Least Privilege on the TCB modules.

         -   TCB is small enough to be subjected to detailed
             analyses and test and supportable by security manager
             (Figure 3.7.3.1-1 depicts the TCB S/W).

         -   Audit mechanisms are built into the system which
             identify all security related event.

         -   TCB is extremely resistent to being penetrated
             and and recovery procedures excist.


         The following main topics are covered:

         -   Systems Architecture

             Describes the structure of the TCB, its major functions
             and concepts, and the mechanisms used for protection
             and access control.


         -   Security Model

         -   Covert Channel Analysis

         -   Mapping Security


















































                       Security TCB
                     Figure 3.7.3.1-1



3.7.3.2  S̲y̲s̲t̲e̲m̲s̲ ̲A̲r̲c̲h̲i̲t̲e̲c̲t̲u̲r̲e̲



3.7.3.2.1    S̲u̲m̲m̲a̲r̲y̲

         The purpose of this section is to describe the concepts
         and structure of the software part of the Trusted Computer
         Base, and the mechanisms used by TCB in controlling
         the untrusted parts of the system.

         The TCB consists of the following groups of modules,
         listed in the order of decreasing privileges.

         -   DAMOS Operating System:

             a)  Security Kernel
             b)  Trusted System Processes
             c)  Trusted Utilities
             d)  Untrusted Utilities (not part of TCB)

         -   Trusted Applications.

         These components are described in detail in the following
         with particular emphasis on the privleges assigned
         to each module, and the mechanisms used to protect
         the modules against each other and against untrusted
         software.



3.7.3.2.2    D̲A̲M̲O̲S̲ ̲O̲p̲e̲r̲a̲t̲i̲n̲g̲ ̲S̲y̲s̲t̲e̲m̲

         This section describes the DAMOS Operating System with
         particular emphasis on the following topics:

         -   Overview of modules and their functional responsibilities.

         -   Process Concept

         -   Object Concept.
             Referencing of objects by processes, and access
             control to objects.

         -   Memory Addressing.
             The memory mapping hardware forms the basis of
             the protection mechanisms, and is therefore described
             in more detail.


3.7.3.2.2.1  D̲A̲M̲O̲S̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲

         The CR80 Advanced Multi Processor Operating System
         DAMOS is the standard operating system for memory mapped
         CR80 systems.

         DAMOS is divided into operational and support software
         as shown on figure 3.7.3.2.2-1

         The operational software is divided into:

         -   Kernel
             The basic process handling and security functions

         -   System Processes
             File and Communication Handling as well as High
             Level Operating System.




                       ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲

                          DAMOS

                       ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲



          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲                            ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
         ̲ ̲

            OPERATIONAL                              SUPPORT
          SOFTWARE                                 SOFTWARE
          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲                            ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
         ̲ ̲

   -  Kernel
      -  resource management   -  development operating
                                  system
      -  directory functions   -  system generation software
      -  process management    -  maintenance and diagnostic
      -  memory management        programs
      -  process communica-
         tion
      -  device management
      -  Inter Process Data Transfer
      -  Application I/O Support

   -  Input/output system
      -  File Management
      -  Magtape Management
      -  Terminal Management
         Database Monitoring System















                 Figure 3.7.3.2.2-1

              DAMOS Software Overview


3.7.3.2.2.1.1 K̲e̲r̲n̲e̲l̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲

          a)  R̲e̲s̲o̲u̲r̲c̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲

              The goal of DAMOS Resource Management is to implement
              a set of tools which enables the individual DAMOS
              modules to handle resources in a coherent way.
               This again, will make it possible for separate
              operating systems to implement their own resource
              policies without interference.  Further built-in
              deadlock situations will be avoided.

              The resource management module governs anonymous
              resources, such as control blocks.  Examples of
              resource types are:

              -   process control blocks
              -   segment control blocks
              -   synchronization elements
              -   PU directory entries

          b)  D̲i̲r̲e̲c̲t̲o̲r̲y̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲

              Performs the basic object management, including
              creation, removal and security checking.

          c)  P̲r̲o̲c̲e̲s̲s̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲

              In the CR80 system, a clear distinction is made
              between programs and their executions, called proceses.
              This distinction is made logically as well as physically
              by applying two different base registers: one for
              program code and one for process data. This distinction
              makes reentrant, unmodifiable code inevitable.

              The process is the fundamental concept in CR80
              terminology. The process is an execution of a program
              module in a given memory area.

          d)  M̲e̲m̲o̲r̲y̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲

              The addressing mechanism of the CR80 limits the
              address space seen by a process at any time to
              a window of 2 x 64K words. Due to the virtual memory
              concept of DAMOS a process may, however, change
              "position" of the window, thus leading to a practically
              unlimited addressing capability.



              The finest granularity of the virtual memory known
              to a process is a segment. Segments can be created
              and deleted and may have different sizes. A process
              which has created a segment may allow others to
              share the segment (restricted by security constraints)
              by explicitly identifying them and stating their
              access rights to the segment.

          e)  P̲r̲o̲c̲e̲s̲s̲ ̲C̲o̲m̲m̲u̲n̲i̲c̲a̲t̲i̲o̲n̲

              Synchronization of processes and communication
              between them is supported in DAMOS by objects called
              Synchronization Elements (synch elements).

              The synchronization elements are used to exchange
              short messages between processes. Larger amounts
              of data are transferred by Inter Process Data Transfer,
              yet synchronized by means of synchronization elements.

          f)  D̲e̲v̲i̲c̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲

              The Device Manager (DVM) module is the layer of
              software which provides the lowest level interface
              to physical input/output devices.

              The DVM consists of a number of device handlers
              - one for each kind of device attached or attachable
              to the CR - system and a device control block for
              each physical device actually attached.

          g)  I̲n̲t̲e̲r̲ ̲P̲r̲o̲c̲e̲s̲s̲ ̲D̲a̲t̲a̲ ̲T̲r̲a̲n̲s̲f̲e̲r̲

              This module transfers large amounts of data from
              one process to another or from a process to a device.
              The synchronization of the transfer is done by
              means of process communication.

          h)  B̲a̲s̲i̲c̲ ̲A̲p̲p̲l̲i̲c̲a̲t̲i̲o̲n̲ ̲I̲/̲O̲ ̲S̲u̲p̲p̲o̲r̲t̲

              A set of standard interface procedures through
              which a user process accesses the so-called General
              File Management Systems, cf.  3.7.3.2.2.1.2.


3.7.3.2.2.1.2     G̲e̲n̲e̲r̲a̲l̲ ̲F̲i̲l̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲S̲y̲s̲t̲e̲m̲s̲

          The Basic Application I/O Support (IOS) provides a
          uniform, device independent interface for user processes
          to

          -   disk files
          -   magnetic tape files
          -   interactive terminals
          -   communication lines
          -   line printers

          The IOS is a set of standard interface procedures through
          which a user communicates with a class of DAMOS service
          processes known as General File Management Systems.
           General File Management Systems include:

          -   the File Management System which implements disk
              files

          -   the Magnetic Tape File Management System for magnetic
              tape files

          -   the Terminal Management System for communication
              lines, interactive terminals and printers.

          -   The Database Monitoring and Control System for
              communication with the Database Management System.



3.7.3.2.2.1.3     S̲y̲s̲t̲e̲m̲ ̲S̲t̲a̲t̲u̲s̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲

          The SSC package starts, allocates resources to, monitors
          and controls the CCIS on-line and off-line system through
          interaction between the two PUs, the peripherals, the
          watchdog, and the operator.

          The Terminal Monitoring and Control module (TEMCO)
          controls transactions initiated by users from interactive
          terminals, cf. 3.7.2.2.

          The on-line modes of operation handled are:

          -   a dualized system consisting of one active PU and
              associated peripherals and a stand-by PU

          -   a degraded system consisting of one active PU and
              associated peripherals and an off-line PU and associated
              peripherals



          In the degraded system the SSC controls the off-line
          operations:

          -   software development and test

          -   table generation

          -   maintenance and diagnostics

          -   offline utilities

          The monitoring of the active and the standby system
          includes:

          -   reception of error reports from other packages

          -   reception of hardware status from crates

          -   display of system status

          -   execution of on-line diagnostics programs

          The control of the dualized and degraded system includes:

          -   physical connection of hardware modules

          -   allocation of resources to other packages e.g.
              external and terminal lines

          -   execution of operator commands

          -   control of user transactions

          The start-up of the dualized and degraded system includes:

          -   all forms of initialization

          -   ordered switchover to a stand-by processor and
              corresponding recovery and restart actions

          -   recovery/restart actions during an emergency switchover
              or after a total system error 





3.7.3.2.2.2   P̲r̲o̲c̲e̲s̲s̲ ̲C̲o̲n̲c̲e̲p̲t̲

          The active components of a CR80 system are the processes.
          They are the only objects which can act as subjects,
          that is act upon other objects.
          Process Management is concerned with long term control
          of processes (e.g. their creation and deletion from
          the system).

          A process may be defined as an incarnation of the data
          transformations obtained by execution of a program
          in a given context. A context is taken to mean a set
          of CPU registers (CPU resident or saved) and the two
          memory translation tables describing the logical data
          space seen when the process is executing, cf. 3.7.3.2.2.4.

          A process is represented by a Process Control Block
          (PCB) which is identified by an object descriptor.

          Each process competes with other processes for the
          system resources such as CPU time, physical memory,
          I/O service, etc.

          During the lifetime of a process it undergoes different
          process states. Figure 3.7.3.2.2.2-1 shown the process
          states in conjunction with long and medium term scheduling,
          and the process management functions which cause transitions
          between them.





































          1:  The process is subject to CREATE PROCESS
          2:  The process is subject to DELETE PROCESS
          3:  The process is subject to RESUME PROCESS
          4:  The process is subject to PASSIVATE PROCESS







                    Figure 3.7.3.2.2-1

                    Process Management


          The process state ACTIVE may be further refined by
          the short term scheduling (dispatching) as depicted
          in fugure 3.7.3.2.2.2-2.
































          The events which cause transitions between the different
          active states are:

              1:  The process is scheduled by the dispatcher
              2:  The process is preempted by the dispatcher
              3:  The process is blocked awaiting some event
              4:  An awaited event occurs.





                   Figure 3.7.3.2.2.2-2

                   Active Process States


          P̲r̲o̲c̲e̲s̲s̲ ̲H̲i̲e̲r̲a̲r̲c̲h̲y̲

          A process may create subordinate processes. These are
          called child processes in relation to the creator process,
          which in turn is called their parent process. See figure
          3.7.3.2.2.2-3.

          The purpose of having a process hierarchy is to enable
          implementation of multiple operating systems each having
          supreme control over the processes of its process subtree.

          The hierarchy of processes in CCIS is shown in figure
          3.7.3.2.2.2-4.

































                   Figure 3.7.3.2.2.2-3

                     Process Hierarchy


                           ROOT



                                        File Management System




                                        Terminal Management System




                                        Data Base Monitoring
                                        Control



                 System Status and Control



          TEMCO            DEMCO




         Terminal          Device & Line
         Transaction       Processes             ACP 127 analysis
         Processes                               and Similar
                                                 Service Processes














                   Figure 3.7.3.2.2.2-4

                     Process Hierarchy


          P̲r̲o̲c̲e̲s̲s̲ ̲A̲t̲t̲r̲i̲b̲u̲t̲e̲s̲

          The Security Attributes of a process are:

          -   Security Profile

          -   User Group Id

          -   Trusted Attribute
              If trusted attribute is true for a process, it
              is allowed to downgrade information, by violating
              the strict write access rule of the security model.
              (This is discussed in detail in sections 3.7.3.2.3.4
              and 3.7.3.2.5.2).


3.7.3.2.2.3   O̲b̲j̲e̲c̲t̲ ̲C̲o̲n̲c̲e̲p̲t̲

          DAMOS is completely object oriented, and all references
          to objects from processes takes place via indirect
          references. This also applies to system processes.



3.7.3.2.2.3.1     A̲c̲c̲e̲s̲s̲ ̲t̲o̲ ̲O̲b̲j̲e̲c̲t̲s̲

          Access to an object must take place in two steps:

          a)  The process obtains a capability to the object
              by calling the appropriate object manager module
              e.g. creating a memory segment by calling the Page
              Manager or obtaining access to a shared synchronization
              element by calling for a search in the PU Directory.

              This step will create a local object descriptor,
              equipped with a list of the operations on the object
              which are permitted according to mandatory and
              discretionary access control.

              The object descriptor resides in the protected
              part of the process address space at system level
              15. It is built by the Directory Functions Module.

              The object descriptor must be referenced indirectly
              by the process using an index in the Object Descriptor
              Table for the process. This is called the object
              index.

          b)  Future accesses to the object are obtained by system
              calls or system messages to the appropriate object
              manager, having the object index as one of the
              parameters. The object manager will invoke the
              Directory Functions Module, which will do the following
              checks:

              -   Legality of object index

              -   Check, if object descriptor is still valid.
                  One reason for invalidity could be that the
                  object has been removed.

              -   Check if the requested operation is part of
                  the ones permitted for the process on that
                  object.

              -   Check object level, cf. 3.7.3.2.2.3.3.


          As seen from this explanation, the Reference Monitor
          Concept applies to all object accesses in DAMOS, and
          the mediation of references is centralized in the Directory
          Functions Module.

          For Data Base objects the reference mechanism is slightly
          different as explained in 3.7.2.3.



3.7.3.2.2.3.2     O̲b̲j̲e̲c̲t̲ ̲T̲y̲p̲e̲s̲

          DAMOS Objects are subdivided into 3 different groups,
          Kernel Objects, File Objects and Data Base Objects
          as explained in the following.

          Within each group there is a number of different types.

          Each object type is managed by a separate module, called
          the Object Manager for that object type.

          Kernel Objects:

              Object Type                 Object Manager

              Resource Pool               Resource Management
              Process                     Process Management
              PU                          Process Management
              CPU                         Process Management
              CPU Pool                    Process Management
              Memory Segment              Page Manager
              Synchronization Element     Process Communication
              Device                      Device Manager

          File Objects:

              Object Type                 Object Manager

              Disk File                   File Management System
              Disk Unit                   File Management System

              Connections (terminal,
              communication lines, printers)
                                          Terminal Management
                                          System

          Data Base Objects:

              Object Type                 Object Manager

              Relation                    Data Base Management
                                          System
              Tuple                       Data Base Management
                                          System


          The description of access mediation in 3.7.3.2.2.3.1
          applies directly to kernel objects. For file objects
          the only difference is that the object manager is a
          separate process. The object descriptor then does not
          reside within the calling process but in the object
          manager process.



3.7.3.2.2.3.3     L̲o̲g̲i̲c̲a̲l̲ ̲O̲b̲j̲e̲c̲t̲ ̲L̲e̲v̲e̲l̲

          In addition to the protection described in previous
          sections, objects are also protected by a logical level.
          This enforces a logical ring protection structure upon
          objects.

          The reason for this additional protection is that a
          process needs access to objects which are used for
          various system purposes, but that those objects should
          be protected from access in user mode.

          Each object (incl. processes) has a logical level defined
          by the object creator. In addition to the checks in
          section 3.7.3.2.2.3.1(b), the following check is done
          when a process issues a system call referencing an
          object:

          The access is only granted, if either:

          -   the process executes currently in system mode at
              or system level equal to or above the logical level
              of the object

          -   the process has a logical level at or above that
              of the object



3.7.3.2.3     M̲e̲m̲o̲r̲y̲ ̲P̲r̲o̲t̲e̲c̲t̲i̲o̲n̲

          The Memory Protection mechanisms form the basis for
          protection of the Trusted Computer Base TCB from nontrusted
          software. In addition to that however they are also
          used to separate the modules of TCB, as described further
          in section 3.7.3.2.4.2.



          Main Memory is partitioned into pages. The page size
          is 1024 16 bit words. The partitioning is implemented
          via a memory mapping module (MAP), which performs a
          translation from logical page addresses to physical
          main memory page addresses. The translation is performed
          by means of a set of Translation Tables (TT). A TT
          defines a mapping from a set of logical page frames
          into a set of main memory page frames and a set of
          access rights. The MAP module contains several TTs.
          Two TTs are used for each CPU, one for translation
          of program addresses and one for translation of data
          addresses. The TTs currently used by a CPU are identified
          by means of two CPU specific Translation Table Registers
          (TTR).

          The domain of access rights has the elements:

              .   no access (full access in system state)
              .   read only access (full access in system state)
              .   full access (read and write) in all states

          A translation table consists of 64 entries for mapping
          of the program address space and 64 entries for mapping
          of the data address space



3.7.3.2.3.1   V̲i̲e̲w̲s̲

          The mapping defined by a translation table is called
          a v̲i̲e̲w̲.

          Whenever a CPU executes instructions, it has an associated
          view. Change of view is only possible by means of a
          special instructions, which can only be executed at
          the highest system level in system mode.

          There are two kinds of view:

          -   Process View, which defines the memory mapping
              associated with a process

          -   Kernel View, which defines the memory mapping associated
              with a Kernel Module. The Kernel View associated
              with a manager of Kernel Objects contains all the
              control and security information for the objects
              managed.


3.7.3.2.2.4.2 P̲r̲o̲c̲e̲s̲s̲ ̲L̲a̲y̲o̲u̲t̲

          The Layout of data in a process view is shown on figure
          3.7.3.2.4.1.

          The Process Parameter Segment mapped in at the highest
          addresses is not accessible in user mode. It contains
          all those Kernel Data for management of the process,
          which are accessible in process view by the various
          kernel modules.



3.7.3.2.2.4.3 S̲y̲s̲t̲e̲m̲ ̲M̲o̲d̲e̲ ̲a̲n̲d̲ ̲S̲y̲s̲t̲e̲m̲ ̲L̲e̲v̲e̲l̲s̲

          A process requests a DAMOS function by executing the
          MON instruction with a parameter specifying the requested
          function.

          The MON instruction will do the following:

          -   Change to System Mode.
          -   Set System Level according to the requested function.
          -   Set CPU bound register according to selected level.
          -   Enter the location of requested function.

          There are 15 system levels. The associated bound registers
          enforce a ring protection mechanism upon the Process
          Parameter Segment as shown in figure 3.7.3.2.2.4.1

          In System Mode it is possible to read all location
          in the process address space while it is only permitted
          to write at addresses below the CPU Bound Register
          corresponding to current system level.

          Privileged instructions are also divided into two classes:

          -   Normal privilege instructions which can be executed
              in system mode independent of system level.

          -   Highly priveleged instructions which can only be
              executed at level 15. They include instructions
              for view change and for I/O.

          The assignment of system level to kernel modules is
          shown in figure 3.7.3.2.2.4.2.


3.7.3.2.3 T̲r̲u̲s̲t̲e̲d̲ ̲C̲o̲m̲p̲u̲t̲e̲r̲ ̲B̲a̲s̲e̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

          This section identifies the software components of
          the TCB and indicates for each component its domain
          of privileges.



3.7.3.2.3.1 S̲e̲c̲u̲r̲i̲t̲y̲ ̲K̲e̲r̲n̲e̲l̲

          The Security Kernel consists of the module executing
          in system mode. They are listed below together with
          their system level. See also figure 3.7.3.2.2.4.2,
          and section 3.7.3.2.2.1 for a further description of
          each module:

          a)  Level 15 Modules:

              -   Directory Functions
              -   Resource Manager
              -   Process Manager
              -   Page Manager
              -   Process Communication
              -   Device Manager

          b)  Level 12 Modules:

              -   Inter Process Data Transfer 


          o


                  User Data
                  Segment(s)











                                      Bound 0

                  Process             Bound 1
                  Parameter              o
                  Segments               o
                                         o
                                       Bound 14

          64K




















                   Figure 3.7.3.2.2.4.1

                    Process Data Layout


    ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
 ̲ ̲ ̲ ̲ ̲ ̲
    Directory  Resource   Process   CPU   Memory  Process   Device
15  ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲ ̲ ̲M̲g̲m̲t̲.̲ ̲ ̲ ̲ ̲ ̲ ̲M̲g̲m̲t̲.̲ ̲ ̲ ̲ ̲ ̲M̲g̲m̲t̲.̲ ̲M̲g̲m̲t̲.̲ ̲ ̲ ̲C̲o̲m̲m̲u̲n̲i̲c̲ ̲ ̲M̲g̲m̲t̲.̲
 ̲




    ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
 ̲ ̲ ̲ ̲ ̲ ̲

12              Inter Process Data Transfer
    ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
 ̲ ̲ ̲ ̲ ̲ ̲





    ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
 ̲ ̲ ̲ ̲ ̲ ̲
    Basic                    *                *             
    * 
 8  Application I/O  File          Terminal      System Status
    ̲S̲u̲p̲p̲o̲r̲t̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲ ̲ ̲ ̲ ̲M̲a̲n̲a̲g̲m̲e̲n̲t̲ ̲ ̲ ̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲
 ̲ ̲ ̲ ̲ ̲ ̲

 7  Structured Application I/O Support
    ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
 ̲ ̲ ̲ ̲ ̲ ̲




    ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
 ̲ ̲ ̲ ̲ ̲ ̲
                                                            
    *
 0           Application Processes
    ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
 ̲ ̲ ̲ ̲ ̲ ̲











          * indicates processes running in user mode



                   Figure 3.7.3.2.2.4.2

             System Levels and Logical Levels


          c)  Level 8 modules:

              -   Basic Application I/O Support

          d)  Level 7 modules:

              -   Structured Application I/O Support



3.7.3.2.3.2 T̲r̲u̲s̲t̲e̲d̲ ̲S̲y̲s̲t̲e̲m̲ ̲P̲r̲o̲c̲e̲s̲s̲e̲s̲

          These are the processes executing basic system functions.
          They all execute in user mode with l̲o̲g̲i̲c̲a̲l̲ level 8.
          This means that they can r̲e̲f̲e̲r̲e̲n̲c̲e̲ objects at logical
          level 8 or below. Refer section 3.7.3.2.2.3.3.

          The processes are:

          -   File Management System

          -   Terminal Management System

          -   Data Base Monitoring and Control

          -   System Status and Control

          Except for the latter, the services are called upon
          via the Basic Application I/O Support in the Security
          Kernel. The processes are activated via synchronization
          elements protected at level 8. Thus an untrusted application
          process having logical level 0 is not even aware of
          the existence of the processes and their synchronization
          elements.



3.7.3.2.3.3 T̲r̲u̲s̲t̲e̲d̲ ̲U̲t̲i̲l̲i̲t̲i̲e̲s̲

          This section describes the utility programs which are
          used for various manipulation of security sensitive
          data. They are:

          -   Disk Initialization.
              Formats a disk unit and creates an initial file
              structure on it for subsequent use by FMS. The
              process does its job via FMS, and the only privilege
              needed is that of writing physical sectors on disk.



          -   Disk Salvation
              Recovers file information from garbled disk units.
              Needs the privilege of accessing physical sectors,
              and it must run with the highest security profile
              of the data on the disk.

          -   Audit Analysis
              Analyses the security audit trail. The privilege
              needed is the security category (caveat) for audit
              data, and read access to the audit trail files.



3.7.3.2.3.4 T̲r̲u̲s̲t̲e̲d̲ ̲A̲p̲p̲l̲i̲c̲a̲t̲i̲o̲n̲ ̲P̲r̲o̲c̲e̲s̲s̲e̲s̲

          The modules of TCB described in section 3.7.3.2.3.1-3
          is part of the standard DAMOS operating system.

          The following modules are additional security sensitive
          modules needed to fulfill the CCIS functional requirements.

          They are:

          -   ACP 127 Message Analysis.
              Has the function of analyzing an incoming meassage
              header and derive the proper security profile.

              The process must be trusted with the highest profile
              which can occur for incoming messages.

          -   Message Body Analysis
              Has the function of analyzing the text part of
              a message and derive data base updates with data
              of various security profile.

              The process must be trusted with the highest security
              profile occurring in the Data Base.



3.7.3.2.4 P̲r̲o̲t̲e̲c̲t̲i̲o̲n̲ ̲a̲n̲d̲ ̲E̲n̲c̲a̲p̲s̲u̲l̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲T̲r̲u̲s̲t̲e̲d̲ ̲C̲o̲m̲p̲u̲t̲e̲r̲ ̲      B̲a̲s̲e̲

          This section summarizes the protection of TCB as follows:

          -   How TCB is protected from tampering by untrusted
              processes.



          -   How TCB is internally separated into modules protected
              from each other.



3.7.3.2.4.1   P̲r̲o̲t̲e̲c̲t̲i̲o̲n̲ ̲o̲f̲ ̲T̲C̲B̲ ̲a̲g̲a̲i̲n̲s̲t̲ ̲N̲o̲n̲t̲r̲u̲s̲t̲e̲d̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

          a)  Protection of Control Data.

              The control data used by TCB for management of
              the system are of various  kinds and protected
              in various ways as described in the following list:

              -   Data in process view.
                  These data are located in the process parameter
                  segment, cf. 3.7.3.2.2.4.2 It is not accessible
                  in user mode.

              -   Data in Kernel View.
                  These data are located in memory areas which
                  are only accessible by changing view. It can
                  only be done in system mode.

              -   Data in Trusted System Processes. Cf.  3.7.3.2.3.2.
                  These data are only accessible in process view
                  of the controlling process, e.g. FMS. The 
                  view is only present in a CPU actually executing
                  the trusted process.

              -   Data on Disk.
                  These data are used by FMS for description
                  of structure, location and security attributes
                  of disk files. The data are located in a file
                  which is only accessable by FMS itself. The
                  ony exception is if a special privilege is
                  given to a Trusted Uitility like the Disk Salvation,
                  cf. 3.7.3.2.3.3.

          b)  Protection of System Objects

              Certain objects are used for the purpose of cooperation
              between system modules, such as communication between
              Basic Application I/O Support in an application
              process and the FMS.

              These objects are protected by logical object level,
              and are thus not accessible in user mode from untrusted
              processes running at logical level 0.


3.7.3.2.4.2   I̲n̲t̲e̲r̲n̲a̲l̲ ̲S̲e̲p̲a̲r̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲T̲C̲B̲ ̲M̲o̲d̲u̲l̲e̲s̲ 

          The data belonging to the various TCB modules are separated
          and protected by various means as follows:

          a)  Data in Process View.
              Data used by modules working in process view is
              protected by system level and associated bound
              registers. CF. 3.7.3.2.2.4.2

          b)  Data in Kernel View.
              The Kernel views are separated from each other
              and from process view. Change of view is done by
              instructions which can only be executed at system
              level 15.

          c)  Data in Trusted Processes
              These processes execute in user mode and can thus
              not access kernel data directly. They are protected
              from each other by executing in disjoint process
              views.



3.7.3.2.5 S̲e̲c̲u̲r̲i̲t̲y̲ ̲M̲o̲d̲e̲l̲

          P̲u̲r̲p̲o̲s̲e̲

          This section gives a abstract description of the basic
          security concepts and access control rules which are
          built into the design of the DAMOS Security Kernel.

          The Security Model is a set of concepts and rules 
          covering the following topics:

          -   Subjects
          -   Objects
          -   Security Attributes of Objects.
          -   Access Control Rules


          The security requirements and security concepts of
          any particular application system built upon DAMOS
          must be mapped into this model in order to enforce
          automatic security control to be performed by DAMOS.

          Security features which can not be mapped into this
          model must be implemented by additional "security software"
          outside DAMOS.


3.7.3.2.5.1 O̲b̲j̲e̲c̲t̲

          The basic concept is that of an o̲b̲j̲e̲c̲t̲.

          Objects are the entities which carry information.

          The operations on objects which are relevent from a
          security point of view are:

          -   Read
              Means obtaining information from the object.

          -   Write
              Means changing the information in the object.

          The read and write operations have different interpretations
          for different object types. There are also object types
          for which either or both operations have no interpretation.

          Figure 3.7.3.2.5-1 shows the object types and the interpretations
          of read and write for each type. Refer also to 3.7.3.2.2.3.2.



Object Type           Read                Write
 ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲

Resource Pool         N/A                 N/A
Process               N/A                 N/A
PU                    N/A                 N/A
CPU                   N/A                 N/A
CPU Pool              N/A                 N/A
Memory Segment        read                write
Synchronizaton
Element               await               send

Device                input               output
                      (device dependent)  (device dependent)

Disk File             readbytes           Appendbytes, modifybytes

Disk Unit             readsectors         writesectors

Connection            readbytes,          appendbytes,
                      readcontrol         appendcontrol

Tuple
(Data Base
Object)               retrieve            append, replace




                      N/A: Not Applicable














                          Figure 3.7.3.2.5-1

                Objects and their Read/Write Operations


         P̲r̲o̲c̲e̲s̲s̲

         A process is an object in the normal sense. It has
         however, the additional property of being an a̲c̲t̲i̲v̲e̲
         component of the system, that is acting as a s̲u̲b̲j̲e̲c̲t̲.

         Processes are the only subjects in the CR80 system.



3.7.3.2.5.2  S̲e̲c̲u̲r̲i̲t̲y̲ ̲A̲t̲t̲r̲i̲b̲u̲t̲e̲s̲

         Each object has a set of security attributes which
         are the basis for access control.

         The attributes are:

         a)  S̲e̲c̲u̲r̲i̲t̲y̲ ̲P̲r̲o̲f̲i̲l̲e̲.

             The security profile of an object is the basis
             for mandatory access control. It is an aggregate
             of two constructs, s̲e̲c̲u̲r̲i̲t̲y̲ ̲l̲e̲v̲e̲l̲ and s̲e̲c̲u̲r̲i̲t̲y̲
             ̲c̲a̲t̲e̲g̲o̲r̲i̲e̲s̲:

             Security Level is an integer ranging from 0 to
             7.
             It is used to encode the normal security classification.

             The normal encoding is:

                 1:  Unclassified.
                 2:  Restricted.
                 3:  Confidential.
                 4:  Secret.
                 5:  Cosmic Top Secret.

             Another encoding may however, by defined for each
             specific system, and the values 0, 6 and 7 may
             be defined too.

             Security categories is a set membership descriptor.
             It indicates membership of up to 45 non hierarchical
             information classes (compartments), e.g. ATOMAL.
             An object can belong to any subset of these 45
             classes. The CCIS notion of caveat can be mapped
             to this concept, such that each caveat corresponds
             to one security category.



             A relation d̲o̲m̲i̲n̲a̲t̲e̲ is defined in the domain of
             security profiles:

                 The security profile S1 dominates the security
                 profile S2, if the following conditions are
                 satisfied:

                 -   The security level of S1 is larger than
                     or equal to that of S2.

                 -   Each security category of S2 is also present
                     in S1.

         b)  U̲s̲e̲r̲ ̲G̲r̲o̲u̲p̲ ̲I̲d̲

             A User Group Id, UGI, specifies a user or a group
             of users.

             The UGI is used for discretionary access control.

             A process always represents a user, and has therefore
             the UGI of that user.

             Other objects have an A̲c̲c̲e̲s̲s̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲i̲s̲t̲,  ACL.

             The ACL is a list of ACL elements. Each ACL element
             consists of an UGI and a set of operations. It
             expresses the access rights versus the objects
             of a process with that UGI.

         c)  T̲r̲u̲s̲t̲e̲d̲ ̲A̲t̲t̲r̲i̲b̲u̲t̲e̲

             Each process has a trusted attribute. It is a boolean
             specifying, if the process is allowed to downgrade
             information by violating the strict write assess
             rule. Cf. 3.7.3.2.5.3.1c).

             A process is called t̲r̲u̲s̲t̲e̲d̲, if its trusted attributes
             is true. Otherwise it is called untrusted.



3.7.3.2.5.3  A̲c̲c̲e̲s̲s̲ ̲C̲o̲n̲t̲r̲o̲l̲

         This section specifies the restrictions of the security
         model on the operations which can be performed by processes.
         The restrictions are divided into two classes:

         -   Mandatory Access Control
         -   Discretionary Access Control


3.7.3.2.5.3.1    M̲a̲n̲d̲a̲t̲o̲r̲y̲ ̲A̲c̲c̲e̲s̲s̲ ̲C̲o̲n̲t̲r̲o̲l̲

         The Mandatory Access rules restrict operations based
         upon comparison of security profiles. There are 2 distinct
         rules:

         a)  Read Access:

             A necessary condition that a processes is allowed
             to read an object is that the security profile
             of the process dominates that of the object.

         b)  Write Access:

             A necessary condition that an untrusted process
             is allowed to write to an object is that the security
             profile of the object dominates that of the process.



3.7.3.2.5.3.2    D̲i̲s̲c̲r̲e̲t̲i̲o̲n̲a̲r̲y̲ ̲A̲c̲c̲e̲s̲s̲ ̲C̲o̲n̲t̲r̲o̲l̲

         The Discretionary Access rule restricts operations
         based upon Access Control List.

         A necessary condition that a process may perform an
         operation upon an object is that the ACL of the object
         contains an ACL element for which:

         1)  The process has the same UGI as the ACL element

         2)  The operation belongs to the set of operations
             of the ACL element.



3.7.3.2.5.3.3    G̲e̲n̲e̲r̲a̲l̲ ̲A̲c̲c̲e̲s̲s̲ ̲C̲o̲n̲t̲r̲o̲l̲

         A necessary condition that a process is allowed to
         perform an operation upon an object is that the mandatory
         access control conditions as well as the discretionary
         access control conditions are fulfilled.



3.7.3.2.6    E̲n̲f̲o̲r̲c̲i̲n̲g̲ ̲S̲e̲c̲u̲r̲i̲t̲y̲ ̲o̲n̲ ̲U̲n̲t̲r̲u̲s̲t̲e̲d̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

         The responsibility of TCB is to enforce security requirements
         upon the untrusted software components. This shall
         be done is such a way that the security model is satisfied.


         The security model states that access control is performed
         upon processes when they access object. Thus the control
         of untrusted software is done as follows:

         -   Untrusted software must always execute in untrusted
             processes.

         -   Some of the untrusted processes are static and
             created at system start time with static security
             attributes. Examples are applications statistics
             collection and manipulation.

         -   Other processes are tied to external users and
             must change security attributes whenever the users
             access rights are changed. These processes are
             dynamically removed and created each time the access
             rights are changed. Cf. 3 7.2.2.



3.7.3.3  C̲o̲v̲e̲r̲t̲ ̲C̲h̲a̲n̲n̲e̲l̲ ̲A̲n̲a̲l̲y̲s̲i̲s̲

         This section has the following two purposes:

         -   Show that most of the commonly known covert channels
             have been closed by the System Architecture.

         -   Show that the remaining covert channels have a
             sufficiently low bandwidth.

         The analysis addresses storage channels and timing
         channels separately.




3.7.3.3.1    C̲o̲v̲e̲r̲t̲ ̲S̲t̲o̲r̲a̲g̲e̲ ̲C̲h̲a̲n̲n̲e̲l̲s̲

         Most direct channels have been closed as all direct
         references to data objects are subject to mandatory
         access control, thus preventing any communication between
         untrusted processes with different security profiles.

         F̲i̲l̲e̲ ̲N̲a̲m̲e̲s̲

         This also applies to directories of file names. File
         directories are normal file objects, and thus subject
         to normal mandatory access control.



         K̲e̲r̲n̲e̲l̲ ̲O̲b̲j̲e̲c̲t̲ ̲N̲a̲m̲e̲s̲

         The PU Directory managed by DAMOS Directory Function
         is a potential storage channel. A process may create
         an object and catalogue it in PU Directory with write
         access. Processes with lower security profile may then
         lookup the object and obtain the write access without
         violating the mandatory access control rules. By creating
         and removing the object, the higher classified process
         may thus signal the lower classified process.

         This channel may be closed in the following way:

         -   Observe that only the creator of an object is allowed
             to enter the object into the PU directory or remove
             it again.

         -   Creation of objects requires resources to be allocated
             to the creating process by the operating system.
             Uncontrolled object creation can thus be prevented.

         -   Entry of an object into the PU Directory requires
             directory resources to be allocated to the calling
             process by the operating system. Uncontrolled object
             catalogueing can thus be prevented.

         -   Objects which have to appear in the PU Directory
             must be created and catalogued by System Status
             and Control. Untrusted processes shall have no
             directory resources allocated to them.

         S̲h̲a̲r̲e̲d̲ ̲R̲e̲s̲o̲u̲r̲c̲e̲s̲

         Finite resources such as memory segments or disk sectors
         shared between several processes can usually be used
         for signalling purposes by modulating over time the
         use of the resources.

         The DAMOS Resource Management module enables the removal
         of this type of channel by the operating system, as
         resources may be separated into pools, and a pool can
         be made available to only one process. The penalty
         for this mechanism can be a less efficient utilization
         of available resources.



3.7.3.3.2    T̲i̲m̲i̲n̲g̲ ̲C̲h̲a̲n̲n̲e̲l̲s̲

         Timing channels involve a modulation of use of system
         services, such that changes in response time for the
         services can be observed by other processes. The most
         basic service of this kind is the CPU, but the file
         system and data base system are other examples.

         A necessary condition for a process to be able to observe
         modulation in real time is access to the real time
         in sufficiently small units. Therefore, the following
         rule is enforced:

             An untrusted process can only read the real time
             clock in units of seconds.

         As real time clock can only be read via a special system
         call READTIME, this rule is easily enforced.

         The bandwith of any channel using real time clock as
         a yard stick will then be reduced to a level below
         on bit per second.

         A possible timing channel not using the real time clock
         would be to compare response times for file system
         requests with the CPU time used by the observing process.
         This could conceivably be done by polling a "request
         done flag" in a loop of known execution time. It is,
         however, not possible in the CR80 to observe request
         completion in this way. A process can only issue a
         system call awaiting completion of a specified subset
         of the pending requests, and this system call will
         block the process until at least one request has been
         completed. A process can thus not compare its own execution
         time with response time for system requests.



3.7.3.4  M̲A̲P̲P̲I̲N̲G̲ ̲S̲E̲C̲U̲R̲I̲T̲Y̲

         To achieve the level of design associated with this
         security write-up a security mapping procedure was
         developed to map B3 requirements to capabilities required.
         The task is a very comprehensive effort and will be
         formalized if awarded the CCIS contract. The bidders
         approach was to ensure all capabilities meet at least
         the B3 requirement.




3.2.1.2.1.1 I̲n̲t̲e̲r̲a̲c̲t̲i̲v̲e̲ ̲D̲a̲t̲a̲b̲a̲s̲e̲ ̲L̲a̲n̲g̲u̲a̲g̲e̲ ̲(̲I̲D̲L̲)̲

         The IDM 500 uses Interactive Database Language (IDL)
         as both the language to create the structure of the
         databases as well as general ad-hoc queries into the
         database.

         To develop a database, the Database Administrator uses
         IDL to create the database and to define the relations,
         the data-elements, the relational "views" of the data-elements,
         the predefined accesses to the data-elements and the
         other Characteristics of the database. All of these
         characteristics, the Data Dictionary, is maintained
         in System Relations within a database. These relations
         are as follows:

          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
         ̲ ̲ ̲ ̲ ̲ ̲
         …0f……0f…RELATION NAME          DESCRIPTION…0e……0e…
          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
         ̲ ̲ ̲ ̲ ̲ ̲

         Relation               The relation is a catalog of
                                all objects in the database:
                                relations, view, files and stored
                                commands
         Attribute              Lists the attributes of each
                                relation and their data definitions
         Indices                Catalog of indices that exist
                                in a database, the relation
                                being indexed, and the attributes
                                included in the index
         Protect                Contains protection information
                                including type of access, for
                                which attributes of what object
                                (relation, view, stored command,
                                or file) for which user or group
         Query                  Contains the text of stored
                                commands and views
         Crossref               Catalog of dependencies among
                                relations, views and stored
                                commands
         Batch                  Temporary transaction's logging
                                relation for transaction management



          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
         ̲ ̲ ̲ ̲ ̲ ̲
         …0f……0f…RELATION NAME          DESCRIPTION…0e……0e…
          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
         ̲ ̲ ̲ ̲ ̲ ̲

         Users                  Mapping of user and group names
                                to IDM user ID
         Blockalloc             Catalog of disk blocks showing
                                relations assigned and free
                                space
         Disk Usage             Shows relation and database
                                allocation
         Databases              Catalog of database on the system
         Disks                  Lists of disks known to the
                                system
         Lock                   Used by IDM for 'read' and 'write'
                                lock protection
         Configure              Contains information about I/O
                                interfaces and checkpoint intervals
         Dbinstat               Contains information about user
                                currently "signed on"




         A relation is a table which has rows (referred to as
         tuples) and columns (referred to as attributes). Relations
         can also be thought of as files, tuples as records,
         and attributes as fields.

         The IDM can support up to 50 unique databases. A database
         can have up to 32,000 separate relations. Each relation
         can hold up to 2 billion tuples (records). Each tuple
         can be up to 2036 bytes long and can have up to 255
         attributes. An attribute can have up to 255 bytes in
         length.





         Access to the "system" relations is performed by a
         series of stored queries that are used to provide information
         on the Static database structure as well as to dynamic
         information concerning the physical size of relations
         and the performance of the database.



3.2.1.2.1.2 D̲a̲t̲a̲ ̲V̲a̲l̲i̲d̲a̲t̲i̲o̲n̲

         The DBMS System has the capability of performing data
         validity checks of the data prior to allowing the data
         to be added to the database. An important feature of
         the system is its transaction processing capability.

         IDM transaction management maintains database consistency
         over a set of commands. Consistency means that if two
         or more transactions affect the same data, the results
         will appear as if only one transaction at a time had
         been operating on the data. Each command to the IDM
         is a transaction unless it is one of a group of commands
         between a "begin transaction" and an "end transaction"
         statement. Then the entire group of commands is treated
         as a single transaction. Transactions always appear
         either to have run to completion or never to have started.
         This level 3 consistency is automatically guaranteed
         by the IDM 500.

         Additionally, when making changes to information, it
         is often advisable to evaluate the results of the transaction
         before committing the transaction changes to the database.
         The IDM 500 permits the user to do just that. Once
         a "begin transaction" initiates transaction processing,
         the user stores, accesses, or modifies database information
         as desired. When he is satisfied with the results of
         his changes, he can commit the transaction with an
         "end transaction" command. Otherwise, he issues the
         "abort transaction" statement which will cause the
         IDM 500 to automatically back out all changes and restore
         that data to its previous state just prior to the beginning
         of the transaction.





                   4̲ ̲ ̲S̲U̲P̲P̲O̲R̲T̲ ̲S̲O̲F̲T̲W̲A̲R̲E̲


         Support Software comprises:

         o   High-level Operating System
         o   System Generation Software
         o   Diagnostic Software



4.1      H̲I̲G̲H̲L̲E̲V̲E̲L̲ ̲O̲P̲E̲R̲A̲T̲I̲N̲G̲ ̲S̲Y̲S̲T̲E̲M̲ ̲(̲H̲I̲O̲S̲)̲

         HIOS is an operating system, which provides the online
         user interface for interactive and batch processing
         on the CR80 computer.

         The functions performed by HIOS are the following:

         -   define system volume and directory
         -   define system device(s)
         -   assign/deassign terminal device(s)
         -   create/delete terminal subdevices
         -   assign/deassign of disk
         -   reserve/release of disk
         -   mount/dismount of volume
         -   update bitmap and basic file directory
         -   display name of user directory
         -   change user directory
         -   listing of current status of system
         -   redefine current input/output
         -   reopen original outputfile
         -   maintain a user catalog
         -   redefine filesystem dependant I/O resources
         -   control online log facility
         -   broadcast messages between terminals
         -   maintain a hotnews facility
         -   maintain a number of batch queues
         -   define spool files for later output
         -   login/logout of terminals
         -   load of program
         -   execute task
         -   stop and start task
         -   remove task
         -   display current date and time
         -   submit batch task

         HIOS is activated by the ROOT process when the system
         is bootloaded. After a short initialization phase the
         production phase can be entered.



         In the production phase, two kinds of users can log
         in on the system:

         -   privileged users
         -   non privileged users

         The privilege of the user is checked at login-time
         by means of the user catalog, and the privilege determines
         which functions the user can execute.

         All functions contained in HIOS are executed under
         the constraints of the security access control mechanisms
         implemented in the DAMOS kernel. This means that unauthorized
         acces to any DAMOS, FMS or TMS object is impossible.

         HIOS contains facilities for logging and timetagging
         of all user commands and related system responses.
         These facilities are used for:

         -   system recovery
         -   system performance
             and load monitoring
         -   user assistance



4.2      S̲Y̲S̲T̲E̲M̲ ̲G̲E̲N̲E̲R̲A̲T̲I̲O̲N̲ ̲S̲O̲F̲T̲W̲A̲R̲E̲

         The utility SYSGEN-EDIT generates object files - based
         upon a set of directives, a system source, and command
         files - for subsequent compiling and linking. A BINDER
         then binds the system object together with the application
         object based upon a command file from SYSGEN-EDIT.
         All the external references of the object modules are
         resolved in the Binder output, which is a load module
         ready for execution Lood modules compiled different
         languages can be executed. The BINDER produces a listing
         giving memory layout, module size, etc.

         The following languages are presently available:

         -   Cobol
         -   Fortran 77
         -   Pascal
         -   SWELL, the CR80 System Programming Language
         -   Assembler
         -   Ada




4.3      D̲I̲A̲G̲N̲O̲S̲T̲I̲C̲ ̲P̲R̲O̲G̲R̲A̲M̲S̲

         The Maintenance and Diagnostic (M&D) package is a 
         collection of standard test programs which is used
         to verify proper operation of the CR80 system and to
         detect and isolate faults to replaceable modules.



         a)  O̲f̲f̲-̲l̲i̲n̲e̲ ̲D̲i̲a̲g̲n̲o̲s̲t̲i̲c̲ ̲P̲r̲o̲g̲r̲a̲m̲s̲

             The off-line M&D software package contains the following
             programs:

             -   CPU Test Program
             -   CPU CACHE Test Program
             -   Memory Map Test Program
             -   RAM Test Program
             -   PROM Test Program
             -   Supra Bus I/F Test Program
             -   CIA Test Program
             -   LTU Test Program
             -   Disk System Test Program
             -   Magtape System Test Program
             -   Floppy Disk Test Program
             -   TDX-HOST I/F Test Program
             -   Card Reader and Line Printer Test Program


         b)  O̲n̲-̲L̲i̲n̲e̲ ̲D̲i̲a̲g̲n̲o̲s̲t̲i̲c̲ ̲P̲r̲o̲g̲r̲a̲m̲s̲

             On-line Diagnostic programs will execute periodically
             as part of the exchange survailance system.  On-line
             diagnostics consists of a mixture of hardware module
             built-in test and reporting, and diagnostic software
             routines.  The following on-line diagnostic capability
             exists:

             -   CPU-CACHE diagnostic
             -   TRACE diagnostic
             -   RAM test
             -   PROM test
             -   MAP/MIA test
             -   STI test
             -   Disk Controller/DCA test
             -   Tape Controller/TCA test
             -   LTU/LIA test

             On-line diagnostics will report errors to higher level
             processing to take recovery/switchover decision in
             the case of failures.



                   5̲ ̲ ̲A̲P̲P̲L̲I̲C̲A̲T̲I̲O̲N̲ ̲S̲O̲F̲T̲W̲A̲R̲E̲