Mads Dam

dblp:d/MadsDam · also Mads F. Dam · DBLP profile ↗
← Back
56ranked-venue papers
21as first author
8since 2021 · last 2026
0000-0001-5432-6442ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Theory of computation · 21 · 12 first-author · 3 since 2021Software engineering, systems software and programming languages · 19 · 4 first-author · 6 since 2021Security and privacy · 13 · 4 first-author · 2 since 2021Computer networks · 5Artificial intelligence and machine learning · 2Systems, architecture and hardware · 1Databases, data management, data science and information retrieval · 1 · 1 first-authorGraphics, computer vision, multimedia, augmented reality and games · 1Applied, interdisciplinary, general and emerging computing · 1
YearPublicationVenuePosition
2026 Forward Symbolic Execution for Trustworthy Automation of Binary Code Verification
Andreas Lindner, Karl Palmskog, Scott Constable, Mads Dam, Roberto Guanciale, Hamed Nemati
VMCAI4
2026 Hoare-style logic for unstructured programs
abstract
Enabling Hoare-style reasoning for low-level code is attractive since it opens the way to regain structure and modularity in a domain where structure is essentially absent. The field, however, has not yet arrived at a fully satisfactory solution, in the sense of avoiding restrictions on control flow (important for compiler optimization), controlling access to intermediate program points (important for modularity), and supporting total correctness. Proposals in the literature support some of these properties, but a solution that meets them all is yet to be found. We introduce the novel Hoare-style program logic L A , which interprets postconditions relative to program points when these are first encountered. The logic supports both partial and total correctness, derives contracts for arbitrary control flow, and allows one to freely choose decomposition strategy during verification while avoiding step-indexed approximations and global invariants. The logic can be instantiated for a variety of concrete instruction set architectures and intermediate languages. The rules of L A have been verified in the interactive theorem prover HOL4 and integrated with the toolbox HolBA for semi-automated program verification, which supports the ARMv6, ARMv8 and RISC-V instruction sets.
Didrik Lundberg, Roberto Guanciale, Andreas Lindner, Mads Dam
J. Log. Algebraic Methods Program.4
2025 Securing P4 Programs by Information Flow Control
abstract
Software-Defined Networking (SDN) has transformed network architectures by decoupling the control and data-planes, enabling fine-grained control over packet processing and forwarding. P4, a language designed for programming data-plane devices, allows developers to define custom packet processing behaviors directly on programmable network devices. This provides greater control over packet forwarding, inspection, and modification. However, the increased flexibility provided by P4 also brings significant security challenges, particularly in managing sensitive data and preventing information leakage within the data-plane. This paper presents a novel security type system for analyzing information flow in P4 programs that combines security types with interval analysis. The proposed type system allows the specification of security policies in terms of input and output packet bit fields rather than program variables. We formalize this type system and prove it sound, guaranteeing that well-typed programs satisfy noninterference. Our prototype implementation, TAP4S, is evaluated on several use cases, demonstrating its effectiveness in detecting security violations and information leakages.
Anoud Alshnakat, Amir M. Ahmadian, Musard Balliu, Roberto Guanciale, Mads Dam
CSF5
2024 HOL4P4: Mechanized Small-Step Semantics for P4
abstract
We present the first semantics of the network data plane programming language P4 able to adequately capture all key features of P4 16 , the most recent version of P4, including external functions (externs) and concurrency. These features are intimately related since, in P4, extern invocations are the only points at which one execution thread can affect another. Reflecting P4’s lack of a general-purpose memory and the presence of multithreading the semantics is given in small-step style and eschews the use of a heap. In addition to the P4 language itself, we provide an architectural level semantics, which allows the composition of P4-programmed blocks, models end-to-end packet processing, and can take into account features such as arbitration and packet recirculation. A corresponding type system is provided with attendant progress, preservation, and type-soundness theorems. Semantics, type system, and meta-theory are formalized in the HOL4 theorem prover. From this formalization, we derive a HOL4 executable semantics that supports verified execution of programs with partially symbolic packets able to validate simple end-to-end program properties.
Anoud Alshnakat, Didrik Lundberg, Roberto Guanciale, Mads Dam
Proc. ACM Program. Lang.4
2023 Formal Verification of Correctness and Information Flow Security for an In-Order Pipelined Processor
Roberto Guanciale, Mads Dam, Andreas Lööw
FMCAD3
2022 Foundations and Tools in HOL4 for Analysis of Microarchitectural Out-of-Order Execution
Karl Palmskog, Xiaomo Yao, Roberto Guanciale, Mads Dam
FMCAD5
2021 On Compositional Information Flow Aware Refinement
abstract
The concepts of information flow security and refinement are known to have had a troubled relationship ever since the seminal work of McLean. In this work we study refinements that support changes in data representation and semantics, including the addition of state variables that may induce new observational power or side channels. We propose a new epistemic approach to ignorance-preserving refinement where an abstract model is used as a specification of a system's permitted information flows, that may include the declassification of secret information. The core idea is to require that refinement steps must not induce observer knowledge that is not already available in the abstract model. Our study is set in the context of a class of shared variable multiagent models similar to interpreted systems in epistemic logic. We demonstrate the expressiveness of our framework through a series of small examples and compare our approach to existing, stricter notions of information-flow secure refinement based on bisimulations and noninterference preservation. Interestingly, noninterference preservation is not supported “out of the box” in our setting, because refinement steps may introduce new secrets that are independent of secrets already present at abstract level. To support verification, we first introduce a “cube-shaped” unwinding condition related to conditions recently studied in the context of value-dependent noninterference, kernel verification, and secure compilation. A fundamental problem with ignorance-preserving refinement, caused by the support for general data and observation refinement, is that sequential composability is lost. We propose a solution based on relational pre-and postconditions and illustrate its use together with unwinding on the oblivious RAM construction of Chung and Pass.
Christoph Baumann, Mads Dam, Roberto Guanciale, Hamed Nemati
CSF2
2021 Refinement-Based Verification of Device-to-Device Information Flow
Roberto Guanciale, Mads Dam
FMCAD3
2020 InSpectre: Breaking and Fixing Microarchitectural Vulnerabilities by Formal Analysis
abstract
The recent Spectre attacks have demonstrated the fundamental insecurity of current computer microarchitecture. The attacks use features like pipelining, out-of-order and speculation to extract arbitrary information about the memory contents of a process. A comprehensive formal microarchitectural model capable of representing the forms of out-of-order and speculative behavior that can meaningfully be implemented in a high performance pipelined architecture has not yet emerged. Such a model would be very useful, as it would allow the existence and non-existence of vulnerabilities, and soundness of countermeasures to be formally established. This paper presents such a model targeting single core processors. The model is intentionally very general and provides an infrastructure to define models of real CPUs. It incorporates microarchitectural features that underpin all known Spectre vulnerabilities. We use the model to elucidate the security of existing and new vulnerabilities, as well as to formally analyze the effectiveness of proposed countermeasures. Specifically, we discover three new (potential) vulnerabilities, including a new variant of Spectre v4, a vulnerability on speculative fetching, and a vulnerability on out-of-order execution, and analyze the effectiveness of existing countermeasures including constant time and serializing instructions.
Roberto Guanciale, Musard Balliu, Mads Dam
CCS3
2020 Hoare-Style Logic for Unstructured Programs
Didrik Lundberg, Roberto Guanciale, Andreas Lindner, Mads Dam
SEFM4
2016 Automatic Derivation of Platform Noninterference Properties
Oliver Schwarz, Mads Dam
SEFM2
2016 Cache Storage Channels: Alias-Driven Attacks and Verified Countermeasures
abstract
Caches pose a significant challenge to formal proofs of security for code executing on application processors, as the cache access pattern of security-critical services may leak secret information. This paper reveals a novel attack vector, exposing a low-noise cache storage channel that can be exploited by adapting well-known timing channel analysis techniques. The vector can also be used to attack various types of security-critical software such as hypervisors and application security monitors. The attack vector uses virtual aliases with mismatched memory attributes and self-modifying code to misconfigure the memory system, allowing an attacker to place incoherent copies of the same physical address into the caches and observe which addresses are stored in different levels of cache. We design and implement three different attacks using the new vector on trusted services and report on the discovery of an 128-bit key from an AES encryption service running in TrustZone on Raspberry Pi 2. Moreover, we subvert the integrity properties of an ARMv7 hypervisor that was formally verified against a cache-less model. We evaluate well-known countermeasures against the new attack vector and propose a verification methodology that allows to formally prove the effectiveness of defence mechanisms on the binary code of the trusted software.
Roberto Guanciale, Hamed Nemati, Christoph Baumann, Mads Dam
IEEE Symposium on Security and Privacy4
2016 Provably secure memory isolation for Linux on ARM
abstract
The isolation of security critical components from an untrusted OS allows to both protect applications and to harden the OS itself. Virtualization of the memory subsystem is a key component to provide such isolation. We present the design, implementation and verification of a memory virtualization platform for ARMv7-A processors. The design is based on direct paging, an MMU virtualization mechanism previously introduced by Xen. It is shown that this mechanism can be implemented using a compact design, suitable for formal verification down to a low level of abstraction, without penalizing system performance. The verification is performed using the HOL4 theorem prover and uses a detailed model of the processor. We prove memory isolation along with information flow security for an abstract top-level model of the virtualization mechanism. The abstract model is refined down to a transition system closely resembling a C implementation. Additionally, it is demonstrated how the gap between the low-level abstraction and the binary level-can be filled, using tools that check Hoare contracts. The virtualization mechanism is demonstrated on real hardware via a hypervisor hosting Linux and supporting a tamper-proof run-time monitor that provably prevents code injection in the Linux guest.
Roberto Guanciale, Hamed Nemati, Mads Dam, Christoph Baumann
J. Comput. Secur.3
2015 Trustworthy Prevention of Code Injection in Linux on Embedded Devices
abstract
We present MProsper, a trustworthy system to prevent code injection in Linux on embedded devices. MProsper is a formally verified run-time monitor, which forces an untrusted Linux to obey the executable space protection policy; a memory area can be either executable or writable, but cannot be both. The executable space protection allows the MProsper’s monitor to intercept every change to the executable code performed by a user application or by the Linux kernel. On top of this infrastructure, we use standard code signing to prevent code injection. MProsper is deployed on top of the Prosper hypervisor and is implemented as an isolated guest. Thus MProsper inherits the security property verified for the hypervisor: (i) Its code and data cannot be tampered by the untrusted Linux guest and (ii) all changes to the memory layout is intercepted, thus enabling MProsper to completely mediate every operation that can violate the desired security property. The verification of the monitor has been performed using the HOL4 theorem prover and by extending the existing formal model of the hypervisor with the formal specification of the high level model of the monitor. These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Hind Chfouka, Hamed Nemati, Roberto Guanciale, Mads Dam, Patrik Ekdahl
ESORICS (1)4
2015 Trustworthy Virtualization of the ARMv7 Memory Subsystem
Hamed Nemati, Roberto Guanciale, Mads Dam
SOFSEM3
2015 Security monitor inlining and certification for multithreaded Java
abstract
Security monitor inlining is a technique for security policy enforcement whereby monitor functionality is injected into application code in the style of aspect-oriented programming. The intention is that the injected code enforces compliance with the policy (security), and otherwise interferes with the application as little as possible (conservativity and transparency). Such inliners are said to be correct. For sequential Java-like languages, inlining is well understood, and several provably correct inliners have been proposed. For multithreaded Java one difficulty is the need to maintain a shared monitor state. We show that this problem introduces fundamental limitations in the type of security policies that can be correctly enforced by inlining. A class of race-free policies is identified that precisely characterizes the inlineable policies by showing that inlining of a policy outside this class is either not secure or not transparent, and by exhibiting a concrete inliner for policies inside the class which is secure, conservative and transparent. The inliner is implemented for Java and applied to a number of practical application security policies. Finally, we discuss how certification in the style of proof-carrying code could be supported for inlined programs by using annotations to reduce a potentially complex verification problem for multithreaded Java bytecode to sequential verification of just the inlined code snippets.
Mads Dam, Bart Jacobs 0002, Andreas Lundblad, Frank Piessens
Math. Struct. Comput. Sci.1
2015 Location-independent routing in process network overlays
Mads Dam, Karl Palmskog
Serv. Oriented Comput. Appl.1
2014 Automating Information Flow Analysis of Low Level Code
abstract
Low level code is challenging: It lacks structure, it uses jumps and symbolic addresses, the control flow is often highly optimized, and registers and memory locations may be reused in ways that make typing extremely challenging. Information flow properties create additional complications: They are hyperproperties relating multiple executions, and the possibility of interrupts and concurrency, and use of devices and features like memory-mapped I/O requires a departure from the usual initial-state final-state account of noninterference. In this work we propose a novel approach to relational verification for machine code. Verification goals are expressed as equivalence of traces decorated with observation points. Relational verification conditions are propagated between observation points using symbolic execution, and discharged using first-order reasoning. We have implemented an automated tool that integrates with SMT solvers to automate the verification task. The tool transforms ARMv7 binaries into an intermediate, architecture-independent format using the BAP toolset by means of a verified translator. We demonstrate the capabilities of the tool on a separation kernel system call handler, which mixes hand-written assembly with gcc-optimized output, a UART device driver and a crypto service modular exponentiation routine.
Musard Balliu, Mads Dam, Roberto Guanciale
CCS2
2014 Location Independent Routing in Process Network Overlays
abstract
In distributed computing, location transparency -- the decoupling of objects, tasks, and virtual machines from their physical location -- is desirable in that it can simplify application development and management, and enable load balancing and efficient resource allocation. Many existing systems for location transparency are built on top of TCP/IP. We argue that addressing mobile objects in terms of the host where they temporarily reside may not be the best design decision. When objects can migrate, it becomes necessary to use a dedicated routing infrastructure to deliver inter-object messages, such as location servers or forwarding chains. This incurs high costs in terms of complexity, overhead, and latency. In this paper, we defer object overlay routing to an underlying networking layer, by assuming a location independent routing scheme in place of TCP/IP. In this scheme, messages are directed to destinations determined by flat identifiers instead of IP addresses. Consequently, messages are delivered directly to a recipient object, instead of a possibly out-of-date location. We explore the scheme in the context of a small object-based language with asynchronous message passing, in the style of core Erlang. We provide a standard, network-oblivious operational semantics of this language, and a network-aware semantics which takes many aspects of distribution and message routing into account. The main result is that execution of a program on top of an abstract network of processing nodes connected by asynchronous point-to-point communication channels preserves the network-oblivious behavior in a sound and fully abstract way, in the sense of contextual equivalence. This is a novel and strong result for such a low-level model. Previous work has addressed distributed implementations only in terms of fully connected TCP underlays. But in this setting, contextual equivalence is typically too strong, due to the need for locking to resolve preemption arising from object mobility.
Mads Dam, Karl Palmskog
PDP1
2013 Formal verification of information flow security for a simple arm-based separation kernel
abstract
A separation kernel simulates a distributed environment using a single physical machine by executing partitions in isolation and appropriately controlling communication among them. We present a formal verification of information flow security for a simple separation kernel for ARMv7. Previous work on information flow kernel security leaves communication to be handled by model-external means, and cannot be used to draw conclusions when there is explicit interaction between partitions. We propose a different approach where communication between partitions is made explicit and the information flow is analyzed in the presence of such a channel. Limiting the kernel functionality as much as meaningfully possible, we accomplish a detailed analysis and verification of the system, proving its correctness at the level of the ARMv7 assembly. As a sanity check we show how the security condition is reduced to noninterference in the special case where no communication takes place. The verification is done in HOL4 taking the Cambridge model of ARM as basis, transferring verification tasks on the actual assembly code to an adaptation of the BAP binary analysis tool developed at CMU.
Mads Dam, Roberto Guanciale, Narges Khakpour, Hamed Nemati, Oliver Schwarz
CCS1
2013 Machine Assisted Proof of ARMv7 Instruction Level Isolation Properties
Narges Khakpour, Oliver Schwarz, Mads Dam
CPP3
2012 TreeDroid: a tree automaton based approach to enforcing data processing policies
abstract
Current approaches to security policy monitoring are based on linear control flow constraints such as 'runQuery' may be evaluated only after 'sanitize'. However, realistic security policies must be able to conveniently capture data flow constraints as well. An example is a policy stating that arguments to the function 'runQuery' must be either constants, outputs of a function 'sanitize', or concatenations of any such values.
Mads Dam, Gurvan Le Guernic, Andreas Lundblad
CCS1
2012 ENCoVer: Symbolic Exploration for Information Flow Security
abstract
We address the problem of program verification for information flow policies by means of symbolic execution and model checking. Noninterference-like security policies are formalized using epistemic logic. We show how the policies can be accurately verified using a combination of concolic testing and SMT solving. As we demonstrate, many scenarios considered tricky in the literature can be solved precisely using the proposed approach. This is confirmed by experiments performed with ENCOVER, a tool based on Java Path Finder and Z3, which we have developed for epistemic noninterference concolic verification.
Musard Balliu, Mads Dam, Gurvan Le Guernic
CSF2
2010 Brief announcement: the accuracy of tree-based counting in dynamic networks
abstract
We study a simple Bellman-Ford-like protocol which performs network size estimation over a tree-shaped overlay. A continuous time Markov model is constructed which allows key protocol characteristics to be estimated under churn, including the expected number of nodes at a given (perceived) distance to the root and, for each such node, the expected (perceived) size of the subnetwork rooted at that node. We validate the model by simulations, using a range of network sizes, node degrees, and churn-to-protocol rates, with convincing results.
Supriya Krishnamurthy, John Ardelius, Erik Aurell, Mads Dam, Rolf Stadler, Fetahi Zebenigus Wuhib
PODC4
2010 Provably correct inline monitoring for multithreaded Java-like programs
abstract
Inline reference monitoring is a powerful technique to enforce security policies on untrusted programs. The security-by-contract paradigm proposed by the EU FP6 S3MS project uses policies, monitoring, and monitor inlining to secure third-party applications running on mobile devices. The focus of th is paper is on multi-threaded Java bytecode. An important consideration is that inlining should interfere with the client program only when mandated by the security policy. In a multi-threaded setting, however, this requirement turns out to be problematic. Generally, inliners use locks to control access to shared resources such as an embedded monitor state. This will interfere with application program non-determinism due to Java's relaxed memory consistency model, and rule out the transparency property, that all policy-adherent behaviour of an application program is preserved under inlining. In its place we propose a notion of strong conservativity, to formalise the property that the inliner can terminate the client program only when the policy is about to be violated. An example inlining algorithm is given and proved to be strongly conservative. Finally, benchmarks are given for four example applications studied in the S3MS project.
Mads Dam, Bart Jacobs 0002, Andreas Lundblad, Frank Piessens
J. Comput. Secur.1
2010 A gossiping protocol for detecting global threshold crossings
abstract
We investigate the use of gossip protocols for the detection of network-wide threshold crossings. Our design goals are low protocol overhead, small detection delay, low probability of false positives and negatives, scalability, robustness to node failures and controllability of the trade-off between overhead and detection delay. Based on push-synopses, a gossip protocol introduced by Kempe et al., we present a protocol that indicates whether a global aggregate of static local values is above or below a given threshold. For this protocol, we prove correctness and show that it converges to a state with no overhead when the aggregate is sufficiently far from the threshold. Then, we introduce an extension we call TG-GAP, a protocol that (1) executes in a dynamic network environment where local values change and (2) implements hysteresis behavior with upper and lower thresholds. Key elements of its design are the construction of snapshots of the global aggregate for threshold detection and a mechanism for synchronizing local states, both of which are realized through the underlying gossip protocol. Simulation studies suggest that TG-GAP is efficient in that the protocol overhead is minimal when the aggregate is sufficiently far from the threshold, that its overhead and the detection delay are largely independent on the system size, and that the tradeoff between overhead and detection quality can be effectively controlled. Lastly, we perform a comparative evaluation of TG-GAP against a tree-based protocol. We conclude that, for detecting global threshold crossings in the type of scenarios investigated, the tree-based protocol incurs a significantly lower overhead and a smaller detection delay than a gossip protocol such as TG-GAP.
Fetahi Zebenigus Wuhib, Mads Dam, Rolf Stadler
IEEE Trans. Netw. Serv. Manag.2
2009 A Data Symmetry Reduction Technique for Temporal-epistemic Logic
Mika Cohen, Mads Dam, Alessio Lomuscio, Hongyang Qu 0001
ATVA2
2009 Security Monitor Inlining for Multithreaded Java
Mads Dam, Bart Jacobs 0002, Andreas Lundblad, Frank Piessens
ECOOP1
2009 A Symmetry Reduction Technique for Model Checking Temporal-Epistemic Logic
Mika Cohen, Mads Dam, Alessio Lomuscio, Hongyang Qu 0001
IJCAI2
2009 Gossiping for threshold detection
abstract
We investigate the use of gossip protocols to detect threshold crossings of network-wide aggregates. Aggregates are computed from local device variables using functions such as SUM, AVERAGE, COUNT, MAX and MIN. The process of aggregation and detection is performed using a standard gossiping scheme. A key design element is to let nodes dynamically adjust their neighbor interaction rates according to the distance between the nodes' local estimate of the global aggregate and the threshold itself. We show that this allows considerable savings in communication overhead. In particular, the overhead becomes negligible when the aggregate is sufficiently far above or far below the threshold. We present evaluation results from simulation studies regarding protocol efficiency, quality of threshold detection, scalability, and controllability.
Fetahi Zebenigus Wuhib, Rolf Stadler, Mads Dam
Integrated Network Management3
2009 Robust monitoring of network-wide aggregates through gossiping
abstract
We investigate the use of gossip protocols for continuous monitoring of network-wide aggregates under crash failures. Aggregates are computed from local management variables using functions such as SUM, MAX, or AVERAGE. For this type of aggregation, crash failures offer a particular challenge due to the problem of mass loss, namely, how to correctly account for contributions from nodes that have failed. In this paper we give a partial solution. We present G-GAP, a gossip protocol for continuous monitoring of aggregates, which is robust against failures that are discontiguous in the sense that neighboring nodes do not fail within a short period of each other. We give formal proofs of correctness and convergence, and we evaluate the protocol through simulation using real traces. The simulation results suggest that the design goals for this protocol have been met. For instance, the tradeoff between estimation accuracy and protocol overhead can be controlled, and a high estimation accuracy (below some 5% error in our measurements) is achieved by the protocol, even for large networks and frequent node failures. Further, we perform a comparative assessment of GGAP against a tree-based aggregation protocol using simulation. Surprisingly, we find that the tree-based aggregation protocol consistently outperforms the gossip protocol for comparative overhead, both in terms of accuracy and robustness.
Fetahi Zebenigus Wuhib, Mads Dam, Rolf Stadler, Alexander Clemm
IEEE Trans. Netw. Serv. Manag.2
2008 Provably Correct Runtime Monitoring
Irem Aktug, Mads Dam, Dilian Gurov
FM2
2008 Decentralized detection of global threshold crossings using aggregation trees
Fetahi Zebenigus Wuhib, Mads Dam, Rolf Stadler
Comput. Networks2
2007 Robust Monitoring of Network-wide Aggregates through Gossiping
abstract
We examine the use of gossip protocols for continuous monitoring of network-wide aggregates. Aggregates are computed from local management variables using functions such as AVERAGE, MIN, MAX, or SUM. A particular challenge is to develop a gossip-based aggregation protocol that is robust against node failures. In this paper, we present G-GAP, a gossip protocol for continuous monitoring of aggregates, which is robust against discontiguous failures (i.e., under the constraint that neighboring nodes do not fail within a short period of each other). We formally prove this property, and we evaluate the protocol through simulation using real traces. The simulation results suggest that the design goals for this protocol have been met. For instance, the tradeoff between estimation accuracy and protocol overhead can be controlled, and a high estimation accuracy (below some 5% error in our measurements) is achieved by the protocol, even for large networks and frequent node failures. Further, we perform a comparative assessment of G-GAP against a tree-based aggregation protocol using simulation. Surprisingly, we find that the tree-based aggregation protocol consistently outperforms the gossip protocol for comparative overhead, both in terms of accuracy and robustness.
Fetahi Zebenigus Wuhib, Mads Dam, Rolf Stadler, Alexander Clemm
Integrated Network Management2
2007 A Complete Axiomatization of Knowledge and Cryptography
abstract
The combination of first-order epistemic logic with formal cryptography offers a potentially powerful framework for security protocol verification. In this paper, cryptography is modelled using private constants and one-way computable operations, as in the applied Pi-calculus. To give the concept of knowledge a computational justification, we propose a generalized Kripke semantics that uses permutations on the underlying domain of cryptographic messages to reflect agents' limited resources. This interpretation links the logic tightly to static equivalence, another important concept of knowledge that has recently been examined in the security protocol literature, and for which there are strong computational soundness results. We exhibit an axiomatization which is sound and complete relative to the underlying theory of terms, and to an omega-rule for quantifiers. Besides standard axioms and rules, the axiomatization includes novel axioms for the interaction between knowledge and cryptography. As protocol examples we use mixes, a Crowds-style protocol, and electronic payments. Furthermore, we provide embedding results for BAN and SVO.
Mika Cohen, Mads Dam
LICS2
2006 Decidability and proof systems for language-based noninterference relations
abstract
Noninterference is the basic semantical condition used to account for confidentiality and integrity-related properties in programming languages. There appears to be an at least implicit belief in the programming languages community that partial approaches based on type systems or other static analysis techniques are necessary for noninterference analyses to be tractable. In this paper we show that this belief is not necessarily true. We focus on the notion of strong low bisimulation proposed by Sabelfeld and Sands. We show that, relative to a decidable expression theory, strong low bisimulation is decidable for a simple parallel while-language, and we give a sound and relatively complete proof system for deriving noninterference assertions. The completeness proof provides an effective proof search strategy. Moreover, we show that common alternative noninterference relations based on traces or input-output relations are undecidable. The first part of the paper is cast in terms of multi-level security. In the second part of the paper we generalize the setting to accommodate a form of intransitive interference. We discuss the model and show how the decidability and proof system results generalize to this richer setting.
Mads Dam
POPL1
2004 On the secure implementation of security protocols
Pablo Giambiagi, Mads Dam
Sci. Comput. Program.2
2003 On the Secure Implementation of Security Protocols
Pablo Giambiagi, Mads Dam
ESOP2
2003 On the Structure of Inductive Reasoning: Circular and Tree-Shaped Proofs in the µ-Calculus
Christoph Sprenger 0001, Mads Dam
FoSSaCS2
2003 A verification tool for ERLANG
Lars-Åke Fredlund, Dilian Gurov, Thomas Noll 0001, Mads Dam, Thomas Arts, Gennady Chugunov
Int. J. Softw. Tools Technol. Transf.4
2002 Constrained Delegation
abstract
Sometimes it is useful to be able to separate management of a set of resources, and access to the resources themselves. However, current accounts of delegation do not allow such distinctions to be easily made. We introduce a new model for delegation to address this issue. The approach is based on the idea of controlling the possible shapes of delegation chains. We use constraints to restrict the capabilities at each step of delegation. Constraints may reflect e.g. group memberships, timing constraints, or dependencies on external data. Regular expressions are used to describe chained constraints. We present a number of example delegation structures, based on a scenario of collaborating organisations.
Olav L. Bandmann, Babak Sadighi Firozabadi, Mads Dam
S&P3
2002 µ-Calculus with Explicit Points and Approximations
abstract
We present a Gentzen‐style sequent calculus for program verification which accommodates both model checking‐like verification based on global state space exploration, and compositional reasoning. To handle the complexities arising from the presence of fixed‐point formulas, programs with dynamically evolving architecture, and cut rules we use transition assertions, and introduce fixed‐point approximants explicitly into the assertion language. We address, in a game‐based manner, the semantical basis of this approach, as it applies to the entailment subproblem. Soundness and completeness results are obtained, and examples are shown illustrating some of the concepts.
Mads Dam, Dilian Gurov
J. Log. Comput.1
2000 Confidentiality for Mobile Code: The Case of a Simple Payment Protocol
abstract
We propose an approach to support confidentiality for mobile implementations of security-sensitive protocols using Java/JVM. An applet which receives and passes on confidential information onto a public network has a rich set of direct and indirect channels available to it. The problem is to constrain applet behaviour to prevent those leakages that are unintended while preserving those that are specified in the protocol. We use an approach based on the idea of correlating changes in observable behaviour with changes in input. In the special case where no changes in (low) behaviour are possible we retrieve a version of noninterference. Mapping our approach to JVM a number of particular concerns need to be addressed, including the use of object libraries for IO, the use of labelling to track input/output of secrets, and the choice of proof strategy. We use the bisimulation proof technique. To provide user feedback we employ a variant of proof-carrying code to instrument a security assistant which will let users of an applet inquire about its security properties such as the destination of data input into different fields.
Mads Dam, Pablo Giambiagi
CSFW1
1998 System Description: Verification of Distributed Erlang Programs
Thomas Arts, Mads Dam, Lars-Åke Fredlund, Dilian Gurov
CADE2
1998 From Higher-Order pi-Calculus to pi-Calculus in the Presence of Static Operators
José-Luis Vivas, Mads Dam
CONCUR2
1998 Proving Properties of Dynamic Process Networks
Mads Dam
Inf. Comput.1
1997 On the Decidability of Process Equivalences for the pi-Calculus
Mads Dam
Theor. Comput. Sci.1
1996 Model Checking Mobile Processes
Mads Dam
Inf. Comput.1
1995 Compositional Proof Systems for Model Checking Infinite State Processes
Mads Dam
CONCUR1
1994 Process-Algebraic Interpretations of Positive Linear and Relevant Logics
Mads Dam
J. Log. Comput.1
1994 CTL* and ECTL* as Fragments of the Modal mu-Calculus
Mads Dam
Theor. Comput. Sci.1
1993 Model Checking Mobile Processes
Mads Dam
CONCUR1
1992 Fixed Points of Büchi Automata
Mads Dam
FSTTCS1
1992 R-Generability, and Definability in Branching Time Logics
Mads Dam
Inf. Process. Lett.1
1988 Relevance Logic and Concurrent Composition
abstract
The operation of relativizing properties with respect to parallel environments often used in obtaining compositionality in theories for concurrency corresponds to a notion of (contraction-free) relevant deduction. The author considers program logics in which this notion of deduction is internalized by the corresponding implication. The idea is carried through for safety properties of a simple system of SCCS-type synchronous processes with an internal choice operator. They present two completeness results: first for a modal extension of positive propositional linear logic with respect to the equational class of algebras containing the safety testing quotient of the author's process system as its free member, and second for the free algebra itself.>
Mads Dam
LICS1
1986 Compiler Generation from Relational Semantics
Mads Dam, Frank Jensen
ESOP1