Download complete thesis as PDF
Transcript
The next theorem, SecureSystem, states three properties for a System to be secure. Firstly, if the current state is secure, a transition will result in the next state also being secure. Also, an actualization of a flow in the system due to a read or write operation for a particular system state implies that the flow is enabled for that system state. From the two theorems, we would also be able to deduce that starting from an empty secure state, all subsequent states should be secure based on the properties defined in SecureSystem. op secure_write_transition(S1: State, at: Flow): Boolean = if (Write in? at.fset) then let S' = (write_op (at.subj, at.obj) S1).2 in ((get_resource_memory (at.obj) S1).1 ~= (get_resource_memory (at.obj) S').1) => (currently_accessible? at S1).1 else false op secure_read_transition(S1: State, at: Flow): Boolean = if (Read in? at.fset) then let S' = (read_op (at.subj, at.obj) S1).2 in ((get_resource_memory (at.subj) S1).1 ~= (get_resource_memory (at.subj) S').1) => (currently_accessible? at S1).1 else false op securestate?(S: State, policy: Policy): Boolean = fa(at: Flow) at in? S.atset => access_secure?(policy.srm, policy.bbm, at) theorem EmptySecure is fa(sys: System) sys.sysstate.atset = empty && securestate?(sys.sysstate, sys.pol) theorem SecureSystem is fa(S: State, input:Input, sys: System) securestate?(S, sys.pol) => securestate?((transition (input, sys) S).2, sys.pol) && secure_write_transition(S, input.at) && secure_read_transition(S, input.at) Figure 90 Security Theorems for secure state 77