31 research outputs found

    Software Engineering with Incomplete Information

    Get PDF
    Information may be the common currency of the universe, the stuff of creation. As the physicist John Wheeler claimed, we get ``it from bit''. Measuring information, however, is a hard problem. Knowing the meaning of information is a hard problem. Directing the movement of information is a hard problem. This hardness comes when our information about information is incomplete. Yet we need to offer decision making guidance, to the computer or developer, when facing this incompleteness. This work addresses this insufficiency within the universe of software engineering. This thesis addresses the first problem by demonstrating that obtaining the relative magnitude of information flow is computationally less expensive than an exact measurement. We propose ranked information flow, or RIF, where different flows are ordered according to their FlowForward, a new measure designed for ease of ordering. To demonstrate the utility of FlowForward, we introduce information contour maps: heatmapped callgraphs of information flow within software. These maps serve multiple engineering uses, such as security and refactoring. By mixing a type system with RIF, we address the problem of meaning. Information security is a common concern in software engineering. We present OaST, the world's first gradual security type system that replaces dynamic monitoring with information theoretic risk assessment. OaST now contextualises FlowForward within a formally verified framework: secure program components communicate over insecure channels ranked by how much information flows through them. This context helps the developer interpret the flows and enables security policy discovery, adaptation and refactoring. Finally, we introduce safestrings, a type-based system for controlling how the information embedded within a string moves through a program. This takes a structural approach, whereby a string subtype is a more precise, information limited, subset of string, ie a string that contains an email address, rather than anything else

    A Cut Principle for Information Flow

    Full text link
    We view a distributed system as a graph of active locations with unidirectional channels between them, through which they pass messages. In this context, the graph structure of a system constrains the propagation of information through it. Suppose a set of channels is a cut set between an information source and a potential sink. We prove that, if there is no disclosure from the source to the cut set, then there can be no disclosure to the sink. We introduce a new formalization of partial disclosure, called *blur operators*, and show that the same cut property is preserved for disclosure to within a blur operator. This cut-blur property also implies a compositional principle, which ensures limited disclosure for a class of systems that differ only beyond the cut.Comment: 31 page

    Principles of Security and Trust

    Get PDF
    This open access book constitutes the proceedings of the 8th International Conference on Principles of Security and Trust, POST 2019, which took place in Prague, Czech Republic, in April 2019, held as part of the European Joint Conference on Theory and Practice of Software, ETAPS 2019. The 10 papers presented in this volume were carefully reviewed and selected from 27 submissions. They deal with theoretical and foundational aspects of security and trust, including on new theoretical results, practical applications of existing foundational ideas, and innovative approaches stimulated by pressing practical problems

    Principles of Security and Trust

    Get PDF
    This open access book constitutes the proceedings of the 8th International Conference on Principles of Security and Trust, POST 2019, which took place in Prague, Czech Republic, in April 2019, held as part of the European Joint Conference on Theory and Practice of Software, ETAPS 2019. The 10 papers presented in this volume were carefully reviewed and selected from 27 submissions. They deal with theoretical and foundational aspects of security and trust, including on new theoretical results, practical applications of existing foundational ideas, and innovative approaches stimulated by pressing practical problems

    Language-based Techniques for Practical and Trustworthy Secure Multi-party Computations

    Get PDF
    Secure Multi-party Computation (MPC) enables a set of parties to collaboratively compute, using cryptographic protocols, a function over their private data in a way that the participants do not see each other's data, they only see the final output. Typical MPC examples include statistical computations over joint private data, private set intersection, and auctions. While these applications are examples of monolithic MPC, richer MPC applications move between "normal" (i.e., per-party local) and "secure" (i.e., joint, multi-party secure) modes repeatedly, resulting overall in mixed-mode computations. For example, we might use MPC to implement the role of the dealer in a game of mental poker -- the game will be divided into rounds of local decision-making (e.g. bidding) and joint interaction (e.g. dealing). Mixed-mode computations are also used to improve performance over monolithic secure computations. Starting with the Fairplay project, several MPC frameworks have been proposed in the last decade to help programmers write MPC applications in a high-level language, while the toolchain manages the low-level details. However, these frameworks are either not expressive enough to allow writing mixed-mode applications or lack formal specification, and reasoning capabilities, thereby diminishing the parties' trust in such tools, and the programs written using them. Furthermore, none of the frameworks provides a verified toolchain to run the MPC programs, leaving the potential of security holes that can compromise the privacy of parties' data. This dissertation presents language-based techniques to make MPC more practical and trustworthy. First, it presents the design and implementation of a new MPC Domain Specific Language, called Wysteria, for writing rich mixed-mode MPC applications. Wysteria provides several benefits over previous languages, including a conceptual single thread of control, generic support for more than two parties, high-level abstractions for secret shares, and a fully formalized type system and operational semantics. Using Wysteria, we have implemented several MPC applications, including, for the first time, a card dealing application. The dissertation next presents Wys*, an embedding of Wysteria in F*, a full-featured verification oriented programming language. Wys* improves on Wysteria along three lines: (a) It enables programmers to formally verify the correctness and security properties of their programs. As far as we know, Wys* is the first language to provide verification capabilities for MPC programs. (b) It provides a partially verified toolchain to run MPC programs, and finally (c) It enables the MPC programs to use, with no extra effort, standard language constructs from the host language F*, thereby making it more usable and scalable. Finally, the dissertation develops static analyses that help optimize monolithic MPC programs into mixed-mode MPC programs, while providing similar privacy guarantees as the monolithic versions

    Do children have rights : five theoretical reflections on children's rights

    Get PDF
    The existence of children's rights in law does not resolve the question as to whether children have rights in reality. In 1973 Hillary Rodham Clinton claimed that children's rights were a 'slogan in search of a definition'. Since then many advances have been made in children's rights: the United Nations Convention on the Rights of the Child was adopted in 1989 and many countries have introduced national legislation protecting the rights of children. Despite these advances the rights of children remain under theorised and poorly implemented. The fundamental question 'do children have rights?' remains contested. This thesis defends and applies a theoretical argument for children's rights over five papers. It does so in two parts. The first part builds a theory for children's rights across three papers: paper one 'Capacity, claims and children's rights', paper two, ''Capacity' and 'Competence' in the Language of Children's Rights' and paper three 'Children's Rights and the Future Interest Problem'. Children have rights because they have interests that are of sufficient importance to be protected and these interests ground claims that produce duties in others to act or refrain from acting. Rights are therefore understood as Hohfeldian claims with correlative duties. This thesis sets out the relationship between a child's capacity and their rights. It is not conceptually necessary for a child to hold the power to enforce or waive their claim in order to hold a right. However a child must be competent in realising the interest to which a particular claim pertains. Furthermore the duty correlated with a child's claim must be reasonable and achievable and the duty-holder must hold the capacity to fulfil the correlative duty. Children are in a special category of right holders as their capacities are rapidly evolving. As a consequence they hold claims to the development of core capacities that produce duties in others to assist in their development. The second part of the thesis applies this theory of children's rights to two cases in two papers: paper four, 'What's Love Got to do with it? Why children do not have a right to be loved' and paper five, 'No harm, no foul: donor conceived children and the right to know their genetic parents'. The case of a child's right to be loved demonstrates what children's rights are not. Children do not have a right to be loved because love as a duty cannot be reasonably fulfilled or enforced. The case of a right to know one's genetic parents illustrates what children's right are. Children have a right to identifying information as they have an interest in being free from psycho-social harm. They have a corresponding right to be told that they are donor conceived. These two cases demonstrate the importance in locating the interest grounding the claim in order to determine the shape of the corresponding duty. This is essential for addressing real policy problems. Understanding why children have rights presents effective pathways for moving children's rights from 'a slogan' into reality. - provided by Candidate
    corecore