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

⟦bbc1124d2⟧ Wang Wps File

    Length: 70471 (0x11347)
    Types: Wang Wps File
    Notes: LKSAA PROPOSAL - VOL II   
    Names: »4231A «

Derivation

└─⟦84f7719fc⟧ Bits:30006031 8" Wang WCS floppy, CR 0385A
    └─ ⟦this⟧ »4231A « 

WangText



&…09…&…0e…&…01…&
&…05…&…07…%…0d…%…0f…%…06…$…0c…$…02…#…08…#…0d…#      "…09…"…0e…" !…0a…!…0c…!…86…1
                    
                    
                    
                    
                    
                    
                    
                    
                    …02…
                    
                    
                    …02…
                    
                    
                    …02…
                    
                    
                    …02…
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    






LKSAA - VOLUME II                                    Issue 1.5
Part 1                                               SYS/84-06-15
TECHNICAL PROPOSAL                                   Page  
 






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



2.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̲



2.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
         2.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.



2.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
         2.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. 2.7.1.3.

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


2.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 2.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. 2.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. 2.7.1.5

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



2.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. 2.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.



2.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
         2.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.


2.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.



2.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.



2.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. 2.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.




2.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 2.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 2.7.1-2…01…Address Translation


255

         Monitor                               Kernel
         Table                                 Program





                       Location


                       Level






                             Bound
                             Register
                             Max
                                               Kernel
                                               Data





















            Figure 2.7.1-3…01…Monitor Instruction


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



2.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.



2.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.



2.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.


2.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̲



2.7.2.1  S̲u̲m̲m̲a̲r̲y̲

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

         -   Terminal Security

         -   Security Audit

         -   Security Administration


2.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.



2.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 2.7.3.2.2.1.3.



2.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.



2.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 2.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.2.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.



2.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. 2.7.2.2.4. Upon a successful Sign On,
             the security profile and UGI of the session is
             established as described in 2.7.2.2.2.1 b.

         b)  A session is terminated by:

             -   SIGN OFF command from user. Cf. 2.7.2.2.5.1.

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

         c)  A transaction is initiated by the user entering
             a command. Cf. 2.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.  2.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. 2.7.3.



2.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. 2.7.2.4.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.

2.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 2.7.2.4.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. 2.7.2.4.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.



2.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.  2.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. 2.7.2.2.4.3.

2.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.



2.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.





2.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. 2.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.



2.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. 2.7.2.2.4.

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

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





2.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.



2.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. 2.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.





2.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.



2.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. 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. 2.7.2.2.3.b.



2.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. 2.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 2.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.



2.7.2.2.9    C̲o̲m̲m̲a̲n̲d̲ ̲V̲a̲l̲i̲d̲a̲t̲i̲o̲n̲

         Commands received from the Crypto Control system and
         the radio control System will be security validated
         again a defined list of allowed commands.



2.7.2.3  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.



2.7.2.3.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.



2.7.2.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.




2.7.2.3.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. 2.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.

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



2.7.2.3.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.





2.7.2.3.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.



2.7.2.3.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)



2.7.2.3.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 at the CR80 File System.

         There will be an analysis utility with a predefined
         set of analysis criteria. This utility uses the CR80
         copy of the audit file.



2.7.2.4  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.



2.7.2.4.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.



2.7.2.4.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.



2.7.2.4.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.



2.7.2.4.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 2.7.2.4.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 2.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.


2.7.2.4.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.



2.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̲



2.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.

         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 2.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 2.7.3.1-1



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



2.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.



2.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.


2.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 2.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 2.7.3.2.2-1

              DAMOS Software Overview


2.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.  2.7.3.2.2.1.2.


2.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 (optional for LKSAA).

          -   the Magnetic Tape File Management System for magnetic
              tape files (optional for LKSAA)

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

          -   The Database Monitoring and Control System for
              communication with the Database Management System
              (optional for LKSAA).



2.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 LKSAA 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. 2.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 





2.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. 2.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 2.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 2.7.3.2.2-1

                    Process Management


          The process state ACTIVE may be further refined by
          the short term scheduling (dispatching) as depicted
          in figure 2.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 2.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
          2.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 LKSAA is shown in figure
          2.7.3.2.2.2-4.

































                   Figure 2.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             Format analysis
         Processes                               and Similar
                                                 Service Processes














                   Figure 2.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 2.7.3.2.3.4
              and 2.7.3.2.5.2).


2.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.



2.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. 2.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 2.7.2.3.



2.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 2.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.



2.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 2.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



2.7.3.2.2.4  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 2.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



2.7.3.2.2.4.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.


2.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
          2.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.



2.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 2.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 2.7.3.2.2.4.2.


2.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.



2.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 2.7.3.2.2.4.2,
          and section 2.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 2.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 2.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



2.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 2.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.



2.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.



2.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 2.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 LKSAA functional requirements.

          They are:

          -   AA-Format and 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.



2.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.



2.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. 2.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.  2.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. 2.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.


2.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. 2.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.



2.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.


2.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 2.7.3.2.5-1 shows the object types and the interpretations
          of read and write for each type. Refer also to 2.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 2.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.



2.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. The AA classifications will be
             mapped into these encodings.

             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 AA notion will be mapped to this concept.



             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. 2.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.



2.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


2.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.



2.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.



2.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.



2.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.2.7.2.2.



2.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.




2.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.



2.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.



2.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 this option is exercised by the customer.