• Open Daily: 10am - 10pm
    Alley-side Pickup: 10am - 7pm

    3038 Hennepin Ave Minneapolis, MN
    612-822-4611

Open Daily: 10am - 10pm | Alley-side Pickup: 10am - 7pm
3038 Hennepin Ave Minneapolis, MN
612-822-4611
Software Model Checking for Confidentiality.

Software Model Checking for Confidentiality.

Paperback

General Science

Currently unavailable to order

ISBN10: 1243656999
ISBN13: 9781243656995
Publisher: Proquest Umi Dissertation Pub
Pages: 142
Weight: 0.59
Height: 0.30 Width: 7.44 Depth: 9.69
Language: English
Protecting confidentiality of data manipulated by programs is a growing concern in various application domains. In particular, for extensible software platforms that allow users to install third party plugins, there is a need for an automated method that can verify that programs preserve confidentiality of data. Our central thesis is that software model checking, an algorithmic, specification-driven program analysis, is an effective way of checking whether programs leak confidential information. Software model checking has emerged as a successful technique for analyzing programs with respect to correctness requirements. However, existing methods and tools are not applicable for specifying and verifying confidentiality properties. In this thesis, we develop a specification framework for confidentiality, novel decision procedures for finite state systems as well as for classes of programs, and an abstraction-based program analysis technique. A property f over the program variables is said to be confidential if the adversary cannot infer the truth of f based on the observed behavior of the program at runtime and the knowledge of the source code of the program. Confidentiality therefore depends not only on individual program executions, as is the case for classical temporal logics, but on sets of observationally equivalent executions. Our specification framework thus consists of a new, richer computation tree model and correspondingly enriched temporal logics. For finite state systems, we develop an algorithm for the model checking problem for these temporal logics, and we show that the problem is PSPACE-complete for a fragment that is expressive enough to allow specifications of information flow properties such as agent A does not reveal x (a secret) until agent B reveals y (a password). For infinite-state software systems, we develop two approaches. First, we study decidability of confidentiality for programs that access an array. The confidentiality requirement specifies that secret information contained in the array should not be leaked. We develop novel decision procedures for classes of programs that access an array whose length is potentially unbounded, and whose elements range over a potentially infinite, ordered data domain. We show that the reachability problem for these programs is decidable, and that the result extends to confidentiality. Second, we develop an automated abstraction-based analysis technique for confidentiality. We show that both over- and under-approximation is needed for sound analysis. Given a program and a confidentiality requirement, our technique produces a formula that is satisfiable if the requirement holds. We evaluate the abstraction-based technique by analyzing Java bytecode of a set of methods of J2ME midlets for mobile devices. Midlets are third-party programs designed to enhance the capabilities of the device and often have a legitimate reason to access data on the mobile device (such as the list of contacts or a phone book), as well as a legitimate reason to send outgoing messages or requests. We demonstrate that our approach can be effectively used for certification of these programs.

Also in

General Science