Basic Security Theorem |
Require
Export
ModelProperties.
Require
Export
aclstatIsSecure.
Require
Export
chmodIsSecure.
Require
Export
createIsSecure.
Require
Export
mkdirIsSecure.
Require
Export
openIsSecure.
Require
Export
addUsrGrpToAclIsSecure.
Require
Export
chobjscIsSecure.
Require
Export
chownIsSecure.
Require
Export
chsubscIsSecure.
Require
Export
closeIsSecure.
Require
Export
delUsrGrpFromAclIsSecure.
Require
Export
oscstatIsSecure.
Require
Export
owner_closeIsSecure.
Require
Export
readIsSecure.
Require
Export
readdirIsSecure.
Require
Export
rmdirIsSecure.
Require
Export
sscstatIsSecure.
Require
Export
statIsSecure.
Require
Export
unlinkIsSecure.
Require
Export
writeIsSecure.
Require
InitialState.
Require
Export
Le.
|
|
Definition
GeneralSecureState [s:SFSstate] : Prop :=
(SecureState s)
/\(StarProperty s)
/\(FuncPre1 s)
/\(FuncPre2 s)
/\(FuncPre3 s)
/\(FuncPre4 s)
/\(FuncPre5 s)
/\(FuncPre6 s)
/\(FuncPre7 s).
|
Lemma
InitialStateIsSecure:
(GeneralSecureState InitState).
Unfold GeneralSecureState SecureState InitState DACSecureState
SimpleSecurity StarProperty FuncPre1 FuncPre2 FuncPre3 FuncPre4
FuncPre5 FuncPre6 FuncPre7; Simpl.
Repeat (Split; Auto).
Tauto.
Tauto.
Qed
.
|
Parameter
defaultState: SFSstate.
|
Lemma
BasicSecurityTheorem:
(tr:(list SFSstate))
(GeneralSecureState (nth O tr defaultState))
->((n:nat)
(lt n (length tr))
->(EX op:Operation | (EX u:SUBJECT |
(TransFunc u
(nth n tr defaultState)
op
(nth (S n) tr defaultState)))))
->(n:nat)
(le n (length tr))
->((GeneralSecureState (nth n tr defaultState))).
Intros.
Induction n.
Auto.
Generalize Hrecn.
Cut (EX op:Operation |
(EX u:SUBJECT |
(TransFunc u (nth n tr defaultState) op
(nth (S n) tr defaultState)))).
Elim (nth n tr defaultState).
Intros.
Elim H2; Intros.
Elim H3; Intros.
Cut (u:SUBJECT)
(GeneralSecureState
(mkSFS groups primaryGrp subjectSC AllGrp RootGrp SecAdmGrp
objectSC acl secmat files directories))
->(TransFunc u
(mkSFS groups primaryGrp subjectSC AllGrp RootGrp SecAdmGrp
objectSC acl secmat files directories) x
(nth (S n) tr defaultState))
->(GeneralSecureState (nth (S n) tr defaultState)).
Intro GTR; Apply (GTR x0).
Apply Hrecn0; Auto with *.
Auto.
Unfold GeneralSecureState; Intros u GSSi TF; Decompose [and] GSSi;
Clear GSSi.
Split.
Induction x;
Prolog
[AclstatPSS AddUsrGrpToAclPSS ChmodPSS ChobjscPSS ChownPSS
ChsubscPSS ClosePSS CreatePSS DelUsrGrpFromAclPSS MkdirPSS OpenPSS
OscstatPSS Owner_ClosePSS ReadPSS ReaddirPSS RmdirPSS SscstatPSS
StatPSS UnlinkPSS WritePSS] 2.
Split.
Induction x;
Prolog
[AclstatPSP AddUsrGrpToAclPSP ChmodPSP ChobjscPSP ChownPSP
ChsubscPSP ClosePSP CreatePSP DelUsrGrpFromAclPSP MkdirPSP OpenPSP
OscstatPSP Owner_ClosePSP ReadPSP ReaddirPSP RmdirPSP SscstatPSP
StatPSP UnlinkPSP WritePSP] 2.
Split.
Unfold FuncPre1; Unfold FuncPre1 in H6; Decompose [and] H6;
Repeat (Split; EAuto).
Unfold FuncPre2 FuncPre3 FuncPre4 FuncPre5 FuncPre6 FuncPre7;
Unfold FuncPre2 FuncPre3 FuncPre4 FuncPre5 FuncPre6 FuncPre7
in H8 H9 H10 H11 H12 H14; Repeat (Split; EAuto).
Auto.
Qed
.