55 research outputs found

    Type Abstraction for Relaxed Noninterference

    Get PDF
    Information-flow security typing statically prevents confidential information to leak to public channels. The fundamental information flow property, known as noninterference, states that a public observer cannot learn anything from private data. As attractive as it is from a theoretical viewpoint, noninterference is impractical: real systems need to intentionally declassify some information, selectively. Among the different information flow approaches to declassification, a particularly expressive approach was proposed by Li and Zdancewic, enforcing a notion of relaxed noninterference by allowing programmers to specify declassification policies that capture the intended manner in which public information can be computed from private data. This paper shows how we can exploit the familiar notion of type abstraction to support expressive declassification policies in a simpler, yet more expressive manner. In particular, the type-based approach to declassification---which we develop in an object-oriented setting---addresses several issues and challenges with respect to prior work, including a simple notion of label ordering based on subtyping, support for recursive declassification policies, and a local, modular reasoning principle for relaxed noninterference. This work paves the way for integrating declassification policies in practical security-typed languages

    Relaxed Operational Semantics of Concurrent Programming Languages

    Full text link
    We propose a novel, operational framework to formally describe the semantics of concurrent programs running within the context of a relaxed memory model. Our framework features a "temporary store" where the memory operations issued by the threads are recorded, in program order. A memory model then specifies the conditions under which a pending operation from this sequence is allowed to be globally performed, possibly out of order. The memory model also involves a "write grain," accounting for architectures where a thread may read a write that is not yet globally visible. Our formal model is supported by a software simulator, allowing us to run litmus tests in our semantics.Comment: In Proceedings EXPRESS/SOS 2012, arXiv:1208.244

    Unification des couleurs dans un lambda-calcul polychrome

    Get PDF
    National audienceDans cet article nous étendons le lambda-calcul bi-chrome présenté aux JFLA 2012 pour y introduire la polychromie. On définit une nouvelle transformation, par beta-expansion, qui regroupe les expressions de même couleur, chaque couleur pouvant représenter une unité de calcul. On ne se contente plus de pouvoir expliciter la localité d'un calcul dans un modèle à deux couleurs comme pour les clients-serveurs mais nous pouvons traiter les applications multi-tiers. Les propriétés de correction, de terminaison et de confluence de cette nouvelle transformation sont démontrées à l'aide de Coq

    Une s\émantique logique d'Esterel sans contrainte sur les signaux locaux

    Get PDF
    Esterel is a synchronous programming language where processes interact through signals. The logical semantics of this language express the meaning of each syntactic constructions, knowing {\em a priori} the set of emitted signals. Nevertheless, a special case have to be made for local signals, making the semantics non-deterministic. In this paper, we propose a new logical semantics where the rules are deterministic. We formalise some correspondences for usual definitions (coherence, reactivity, determinism, correctness) between the two semantics. These correspondences are formally proved in Coq

    Coq à la conquête des moulins

    Get PDF
    Nous presentons la certification formelle en Coq d'un algorithme utilise' dans les compilateurs: l'affectation parallele de registres. Nous proposons deux specifications inductives et une specification fonctionnelle de l'algorithme ainsi que les preuves de correction de ces specifications. Un code fonctionnel ML peut etre extrait de la specification fonctionnelle et integre' au code du compilateur

    Utilisation de compteurs pour la prediction de l'absence en Esterel

    Get PDF
    Esterel is a synchronous programming language historically defined for system control, well suited to react in parallel to external sensors, intensively used in avionics. Recently, with the incoming of the orchestration language HipHop, a domain-specific language of the multi-tier language Hop, Esterel is used to manage Web requests. In this context, where orchestration programs are dynamically generated, long compilation preamble to computation must be avoided and a simple and fast interpreter is preferred. This paper presents such an interpreter. Esterel's processes communicates through signals and one particularity of this language is its ability to instantaneously react to the absence of a signal. In this paper we present a static analysis which allows the interpreter to predict the absence of a signal.Esterel est un langage synchrone historiquement défini pour les systèmes de contrôle, particulièrement adapté pour réagir en parallèle à des événements externes, utilisé intensivement dans l'avionique. Recemment, avec l'arrivée du langage d'orchestration HipHop, un sous-langage dédié de Hop, l'approche Esterel est utilisée pour synchroniser des requêtes Web. Dans ce contexte, où les programmes d'orchestrationsont générés dynamiquement, les longs préambules de compilation sont à éviter et l'utilisation d'interprêtes simples et rapides devient souhaitable. Cet article présente un tel interprête. Les processus Esterel commu niquent au travers de signaux et l'une des particularités de ce langage est sa capacité de réagir instantanément à l'absence d'un signal. Dans cet article, nous présentons une analyse statique qui permet à l'interprête de prédire l'absence d'un signa

    Séparation des couleurs dans un lambda-calcul bichrome

    Get PDF
    National audienceDans cet article nous introduisons un λ-calcul bichrome pour expliciter une partie de l'évaluation d'un terme en précisant la localité du calcul1. L'intérêt est alors de pouvoir définir une transformation, par β-expansion, qui regroupe les expressions de même couleur. Les propriétés de correction, de terminaison et de confluence de cette transformation sont démontrées 'a l'aide de l'assistant de preuves Coq. Cette transformation est indépendante de la sémantique de communication et de synchronisation de l'application. On s'intéresse alors aux applications utilisant deux unités de calcul comme les couples client-serveur de la programmation Web. Nous abordons le passage à un λ-calcul à plus de deux couleurs et montrons les difficultés que cela engendre

    Qui sème la fonction, récolte le tuyau typé

    Get PDF
    Les applications de l'internet de demain vont devoir communiquer avec des objets de plus en plus complexes. Actuellement, cette communication s'effectue essentiellement à l'aide de protocoles de communication qui sont par nature des mécanismes mal typé. De plus, à chaque avancée technologique (sans fils, mobile, ...), de nouveaux types de protocoles de transport apparaissent. L'objectif de l'article est de proposer un mécanisme de création de tuyau pour une communication bien typé et pour abstraire le protocole sous-jacent à la communication. L'idée de base, afin d'établir un tuyau, est de migrer du serveur vers le client une fonction qui se charge de mettre en place la structure du tuyau. Cette fonction permet au client de s'abstraire du protocole de communication. Ce tuyau, une fois établi, pourra aussi faire véhiculer des fonctions, cette fois- ci du client vers le serveur. Ces fonctions permettent au client d'exprimer l'échange d'information en termes d'expressions du langage source et donc d'assurer le typage de la communication. D'une autre manière, ces fonctions donnent les moyens au client de communiquer directement avec le serveur en cachant les détails du protocole puisque ces fonctions seront exécutées finalement sur le serveur. Avec cette notion de tuyau, on définit un protocole comme étant un générateur de tuyau bien typé. Nous montrerons qu'il est possible d'établir des tuyaux de communication bien typé vers tous les objets atteignables sur un réseau

    Causalité dans les calculs d'événements

    Get PDF
    National audienceSi l'on considère un événement comme une valeur quelconque associée à une date de réception, un calcul d'événements est une fonction produisant un ensemble d'événements à partir d'un ensemble d'événements reçus. Un sous-ensemble particulièrement intéressant de ces fonctions correspond aux fonctions causales dont les événements produits avant une date donnée ne dépendent que des événements reçus avant cette même date. Dans cet article, nous proposons une définition très simple permettant de caractériser ces fonctions causales
    corecore