CPL - Chalmers Publication Library
| Utbildning | Forskning | Styrkeområden | Om Chalmers | In English In English Ej inloggad.

Flexible and Practical Information-Flow Control

Daniel Schoepe (Institutionen för data- och informationsteknik, Datavetenskap, Algoritmer (Chalmers))
Göteborg : Chalmers University of Technology, 2016. - 178 s.

As more and more sensitive data is handled by software, its trustworthiness becomes an increasingly important concern. This thesis presents work on ensuring that information that is processed by computing systems is not disclosed to third parties without the user's permission; i.e. to prevent unwanted flows of information. Since most approaches to information-flow control have not seen widespread use in practice, this work explores flexible policies and enforcement techniques to guarantee that information is not leaked by a program. The thesis consists of three parts: The first chapter explores opacity, a security policy for protecting sensitive system properties, motivated by location privacy and privacy-preserving aggregation scenarios. We present a general, parametric framework for opacity and relate it to noninterference. Moreover, we present two approaches to enforcement: a dynamic monitor making use of SMT solving, and a blackbox sampling-based approach based on the random testing tool QuickCheck. The second chapter discusses taint tracking, a popular security mechanism for tracking data-flow dependencies, which is widely used for both high-level languages and machine code. However, the question of what, exactly, tainting means - what security policy it embodies - remains largely unexplored. We propose explicit secrecy, a generic framework capturing the essence of explicit flows, i.e., the data flows tracked by tainting. We illustrate our approach by instantiating explicit secrecy to both, a high-level imperative language and machine code. Additionally, we prove soundness with respect to explicit secrecy for the cores of dynamic and static taint trackers. Lastly, we present JSLINQ, a framework providing end-to-end information-flow control for multi-tiered web applications; i.e. web applications consisting of a database, server-side code, and client-side JavaScript code. To prevent information flows at component boundaries, we leverage homogeneous meta-programming features in F# to provide a unified language for programming all components. We present a security type system for a core of F# and prove that all well-typed programs are noninterfering. We evaluate our approach using various case studies indicating that JSLINQ is suitable for implementing practical web applications.

Nyckelord: information flow, software security

Denna post skapades 2016-02-26.
CPL Pubid: 232486


Läs direkt!

Länk till annan sajt (kan kräva inloggning)

Institutioner (Chalmers)

Institutionen för data- och informationsteknik, Datavetenskap, Algoritmer (Chalmers)


Teoretisk datalogi

Chalmers infrastruktur

Relaterade publikationer

Inkluderade delarbeten:

Understanding and Enforcing Opacity


Datum: 2016-03-18
Tid: 10:00
Lokal: Room EE, EDIT building, Rännvägen 6B, Chalmers University of Technology
Opponent: Matteo Maffei