Publication | Closed Access
Nickel: a framework for design and verification of information flow control systems
24
Citations
0
References
2018
Year
EngineeringInformation SecurityVerificationSoftware AnalysisFormal VerificationControl SystemsHardware SecuritySystems EngineeringFormal TechniqueSecure ComputingSecure ProtocolTrusted Operating SystemInformation Flow ControlFormal SpecificationData FlowRuntime VerificationFormal ModelingInformation Flow PoliciesData PrivacyComputer ScienceLanguage-based SecuritySoftware DesignData SecurityCryptographySmall Os KernelFormal MethodsIndustrial InformaticsSystem SoftwareSystem Specification
Nickel is a framework that helps developers design and verify information flow control systems by systematically eliminating covert channels inherent in the interface, which can be exploited to circumvent the enforcement of information flow policies. Nickel provides a formulation of noninterference amenable to automated verification, allowing developers to specify an intended policy of permitted information flows. It invokes the Z3 SMT solver to verify that both an interface specification and an implementation satisfy noninterference with respect to the policy; if verification fails, it generates counterexamples to illustrate covert channels that cause the violation.Using Nickel, we have designed, implemented, and verified NiStar, the first OS kernel for decentralized information flow control that provides (1) a precise specification for its interface, (2) a formal proof that the interface specification is free of covert channels, and (3) a formal proof that the implementation preserves noninterference. We have also applied Nickel to verify isolation in a small OS kernel, NiKOS, and reproduce known covert channels in the ARINC 653 avionics standard. Our experience shows that Nickel is effective in identifying and ruling out covert channels, and that it can verify noninterference for systems with a low proof burden.