![]() |
A ProofPower Application: the Front End Filter Project |
SWORD was an experimental prototype of a multi-level secure database that was the subject of research undertaken by the UK's Defence Research Agency in the early 1990s. The query language for the SWORD database was Secure SQL (SSQL) an extension of standard SQL whose semantics support a notion of security classification. Data in the database would be a assigned a classification drawn from some lattice e.g., UNCLASSIFIED < COMPANY-IN-CONFIDENCE < COMPANY-RESTRICTED < SECRET. Database users would be assigned a security clearance constraining the classification of the data they are allowed to access.
In early 1992, the Formal Methods Unit at ICL's Defence Technology Centre had completed the first production version of their system ProofPower for formal specification and verification in higher-order logic (HOL) with a surface syntax designed to be familiar to users of the Z specification language. ProofPower was subsequently enhanced to support a semantic embedding of the full Z language in addition to HOL and is now an open source system provided by Lemma 1 Ltd. .
From April 1992 to April 1994, the ICL Formal Methods Unit applied ProofPower to the formal specification and verification of the high-level security properties of SSQL and the SWORD prototype implementation. The work was done in three stages:
A managerial overview of the project and its documentation [FEF/001]
A listing of all the constants, types and aliases, with their defining theories, that are available for use in the fef project [FEF/008]
Consolidated istings of all the ProofPower theories used in the DRA front end filter project [FEF/017]
The following links to the descriptions of the documents may be helpful in connection with the index of theories and the consolidated listings. The gaps are documents that were superseded.
A record of errors found in the SSQL specification, and changes made from Annex 2 of the ITT [FEF/002]
The formalisation of the security conjecture is in this document [FEF/003]
The formal specifications of the main functionality of the SSQL semantics [FEF/004]
The formal specifications of the functions hide and updateState [FEF/005]
The formal specification of the SSQL abstract machine and the conjecture to be proven in order to prove its security [FEF/006]
A proof strategy for proving the conjecture of DS/FMU/FEF/005 [FEF/007]
A formal proof of the unwinding result, part of the proof of security of the SSQL Abstract Machine[FEF/009]
A formal proof of the security property on hide, part of the proof of security of the SSQL Abstract Machine[FEF/010]
A formal proof conjuncts three and four of the security property on the relationship between hide and updateState, part of the proof of security of the SSQL Abstract Machine[FEF/011]
A formal proof of conjunct one of the security property on the relationship between hide and updateState, part of the proof of security of the SSQL Abstract Machine[FEF/012]
A formal proof of conjunct two of the security property on the relationship between hide and updateState[FEF/013]
The formal specification of the function processQuery. This completes the specification of the main functionality of the SSQL semantics [FEF/014]
A formal proof that updateState maintains the invariant on the state. This result, together with the proofs from DS/FMU/FEF/011, DS/FMU/FEF/012 and DS/FMU/FEF/013, is used to prove the security property on the relationship between hide and updateState. This result in turn is used together with the proofs from DS/FMU/FEF/009 and DS/FMU/FEF/010 to complete the Phase 1 security proof, namely that behaviours SSQLam belongs to the set secure of secure systems. [FEF/015]
Informal justifications of those axioms which have been included in the Phase 1 formal proof of security[FEF/016]
The revised proposal for Phase 2 [FEF/018]
Standard ML functions and SSQL and TSQL datatype specifications required for the SSQL transformation specifications [FEF/019]
Specifications of the SSQL transformations in Standard ML [FEF/020]
Specifications of the TSQL abstract machine [FEF/021]
Top level specifications of a model of the SWORD Front End [FEF/022]
A specification of the output filter in Standard ML for the SWORD Front End [FEF/023]
A ProofPower-HOL specification of the SWORD output filter [FEF/024]
The formal specification of a mapping from an SSQL abstract machine state to the TSQL state which represents it [FEF/025]
A ProofPower-HOL specification of the Critical Requirements on the SWORD Query Transformations [FEF/026]
First part of the HOL specification of the SSQL transformation specifications [FEF/028]
Second part of the HOL specification of the SSQL transformation specifications [FEF/029]
Slitex document containing overheads for FEF presentation [FEF/030]
Security proofs relating to the Execution Model of \cite{DS/FMU/FEF/026} [FEF/031]
Specifications of the computations which are allowed to be performed by the Execution Model of \cite{DS/FMU/FEF/031} [FEF/032]
Security proofs relating to the value computations of \cite{DS/FMU/FEF/032} [FEF/033]
The strategy for the Phase II proofs. [FEF/034]
Security proofs relating to the table computations of \cite{DS/FMU/FEF/032} [FEF/035]
Incorporation of Table Computation Security Proofs and Execution Model Security Proofs into overall partial proof for Phase II [FEF/036]
A proposal for an extension to the scope of phase 3 of the project. [FEF/039]
A formalisation of a multi-level version of the security policy. [FEF/040]
A briefing suitable for a CLEF on the FEF work. [FEF/041]
A formulation of a somewhat simplified model of the multi-level SWORD database. [FEF/042]
A discussion and formalisation of an abstract `labelling property' for SWORD. [FEF/044]
Formal proofs establishing various results about the multi-level policy and the labelling property for SWORD. [FEF/044]
This document contains listings of the theories developed under Pphase 3 of the FEF contract, together with an index. [FEF/045]
This document gives an overview of the formal work carried out under the phase 3 of the FEF project and serves as the final report on that work. It also discusses the relationship between the phase 2 and phase 3 work and suggests some possible directions for future research. [FEF/046]
A final report on all aspects of the FEF contract. [FEF/047]
A report on the proof work carried out in phase 3. [FEF/048]
The source of the FEF documents including all the specification and proof scripts is available here and should work with recent versions of ProofPower (last tested at time of writing on version 3.1w6).
Thanks are due to:
|
|