Martín Abadi

dblp:a/MartinAbadi · DBLP profile ↗
← Back
187ranked-venue papers
138as first author
3since 2021 · last 2023
—ORCID · none

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

Software engineering, systems software and programming languages · 71 · 55 first-authorTheory of computation · 60 · 53 first-author · 2 since 2021Security and privacy · 40 · 25 first-authorSystems, architecture and hardware · 10 · 4 first-author · 1 since 2021Computer networks · 7 · 4 first-authorApplied, interdisciplinary, general and emerging computing · 6 · 5 first-authorDatabases, data management, data science and information retrieval · 5 · 3 first-authorArtificial intelligence and machine learning · 4 · 1 first-author
YearPublicationVenuePosition
2023 Smart Choices and the Selection Monad
abstract
Describing systems in terms of choices and their resulting costs and rewards offers the promise of freeing algorithm designers and programmers from specifying how those choices should be made; in implementations, the choices can be realized by optimization techniques and, increasingly, by machine-learning methods. We study this approach from a programming-language perspective. We define two small languages that support decision-making abstractions: one with choices and rewards, and the other additionally with probabilities. We give both operational and denotational semantics. In the case of the second language we consider three denotational semantics, with varying degrees of correlation between possible program values and expected rewards. The operational semantics combine the usual semantics of standard constructs with optimization over spaces of possible execution strategies. The denotational semantics, which are compositional, rely on the selection monad, to handle choice, augmented with an auxiliary monad to handle other effects, such as rewards or probability. We establish adequacy theorems that the two semantics coincide in all cases. We also prove full abstraction at base types, with varying notions of observation in the probabilistic case corresponding to the various degrees of correlation. We present axioms for choice combined with rewards and probability, establishing completeness at base types for the case of rewards without probability.
Martín Abadi, Gordon D. Plotkin
Log. Methods Comput. Sci.1
2021 Falkirk Wheel: Rollback Recovery for Dataflow Systems
abstract
Data processing applications often combine computations with disparate fault-tolerance requirements. For example, batch computations prioritize throughput over recovery latency, and can tolerate recovery delays of up to several minutes, while streaming computations expect recovery latencies of at most a few seconds. However, state-of-the-art data systems each offer a single fault-tolerance regime, so complex applications either: (i) suffer performance degradation in steady state and during recovery due to the poor fit of the fault-tolerance regime for parts of the applications, or (ii) are difficult to maintain because they are developed using fragile combinations of batch and streaming systems that provide different APIs and schedulers, and evolve independently.
Ionel Gog, Michael Isard, Martín Abadi
SoCC3
2021 Smart Choices and the Selection Monad
abstract
Describing systems in terms of choices and their resulting costs and rewards promises to free algorithm designers and programmers from specifying how to make those choices. In implementations, the choices can be realized by optimization or machine-learning methods.We study this approach from a programming-language perspective. We define a small language that supports decision-making abstraction, rewards, and probabilities. We give a globally optimizing operational semantics, and, using the selection monad for decision-making, three denotational semantics with auxiliary monads for reward and probability; the three model various correlations between returned values and expected rewards. We show the two kinds of semantics coincide by proving adequacy theorems; we show that observational equivalence is characterized by semantic equality (at basic types) by proving full abstraction theorems; and we discuss program equations.
Martín Abadi, Gordon D. Plotkin
LICS1
2020 A simple differentiable programming language
abstract
Automatic differentiation plays a prominent role in scientific computing and in modern machine learning, often in the context of powerful programming systems. The relation of the various embodiments of automatic differentiation to the mathematical notion of derivative is not always entirely clear---discrepancies can arise, sometimes inadvertently. In order to study automatic differentiation in such programming contexts, we define a small but expressive programming language that includes a construct for reverse-mode differentiation. We give operational and denotational semantics for this language. The operational semantics employs popular implementation techniques, while the denotational semantics employs notions of differentiation familiar from real analysis. We establish that these semantics coincide.
Martín Abadi, Gordon D. Plotkin
Proc. ACM Program. Lang.1
2018 Dynamic control flow in large-scale machine learning
abstract
Many recent machine learning models rely on fine-grained dynamic control flow for training and inference. In particular, models based on recurrent neural networks and on reinforcement learning depend on recurrence relations, data-dependent conditional execution, and other features that call for dynamic control flow. These applications benefit from the ability to make rapid control-flow decisions across a set of computing devices in a distributed system. For performance, scalability, and expressiveness, a machine learning system must support dynamic control flow in distributed and heterogeneous environments.
Martín Abadi, Paul Barham 0001, Eugene Brevdo, Michael Burrows, Andy Davis, Jeffrey Dean, Sanjay Ghemawat, Tim Harley, Peter Hawkins, Michael Isard, Manjunath Kudlur, Rajat Monga, Derek Gordon Murray, Xiaoqiang Zheng
EuroSys2
2018 The Applied Pi Calculus: Mobile Values, New Names, and Secure Communication
abstract
We study the interaction of the programming construct “new,” which generates statically scoped names, with communication via messages on channels. This interaction is crucial in security protocols, which are the main motivating examples for our work; it also appears in other programming-language contexts. We define the applied pi calculus, a simple, general extension of the pi calculus in which values can be formed from names via the application of built-in functions, subject to equations, and be sent as messages. (In contrast, the pure pi calculus lacks built-in functions; its only messages are atomic names.) We develop semantics and proof techniques for this extended language and apply them in reasoning about security protocols. This article essentially subsumes the conference paper that introduced the applied pi calculus in 2001. It fills gaps, incorporates improvements, and further explains and studies the applied pi calculus. Since 2001, the applied pi calculus has been the basis for much further work, described in many research publications and sometimes embodied in useful software, such as the tool ProVerif, which relies on the applied pi calculus to support the specification and automatic analysis of security protocols. Although this article does not aim to be a complete review of the subject, it benefits from that further work and provides better foundations for some of it. In particular, the applied pi calculus has evolved through its implementation in ProVerif, and the present definition reflects that evolution.
Martín Abadi, Bruno Blanchet, Cédric Fournet
J. ACM1
2017 On the Protection of Private Information in Machine Learning Systems: Two Recent Approches
abstract
The recent, remarkable growth of machine learning has led to intense interest in the privacy of the data on which machine learning relies, and to new techniques for preserving privacy. However, older ideas about privacy may well remain valid and useful. This note reviews two recent works on privacy in the light of the wisdom of some of the early literature, in particular the principles distilled by Saltzer and Schroeder in the 1970s.
Martín Abadi, Úlfar Erlingsson, Ian J. Goodfellow, H. Brendan McMahan, Ilya Mironov, Nicolas Papernot, Kunal Talwar, Li Zhang 0001
CSF1
2017 Learning a Natural Language Interface with Neural Programmer
Arvind Neelakantan, Quoc V. Le, Martín Abadi, Andrew McCallum, Dario Amodei
ICLR (Poster)3
2017 Semi-supervised Knowledge Transfer for Deep Learning from Private Training Data
Nicolas Papernot, Martín Abadi, Úlfar Erlingsson, Ian J. Goodfellow, Kunal Talwar
ICLR2
2016 Deep Learning with Differential Privacy
abstract
Machine learning techniques based on neural networks are achieving remarkable results in a wide variety of domains. Often, the training of models requires large, representative datasets, which may be crowdsourced and contain sensitive information. The models should not expose private information in these datasets. Addressing this goal, we develop new algorithmic techniques for learning and a refined analysis of privacy costs within the framework of differential privacy. Our implementation and experiments demonstrate that we can train deep neural networks with non-convex objectives, under a modest privacy budget, and at a manageable cost in software complexity, training efficiency, and model quality.
Martín Abadi, Andy Chu, Ian J. Goodfellow, H. Brendan McMahan, Ilya Mironov, Kunal Talwar, Li Zhang 0001
CCS1
2016 TensorFlow: learning functions at scale
abstract
TensorFlow is a machine learning system that operates at large scale and in heterogeneous environments. Its computational model is based on dataflow graphs with mutable state. Graph nodes may be mapped to different machines in a cluster, and within each machine to CPUs, GPUs, and other devices. TensorFlow supports a variety of applications, but it particularly targets training and inference with deep neural networks. It serves as a platform for research and for deploying machine learning systems across many areas, such as speech recognition, computer vision, robotics, information retrieval, and natural language processing. In this talk, we describe TensorFlow and outline some of its applications. We also discuss the question of what TensorFlow and deep learning may have to do with functional programming. Although TensorFlow is not purely functional, many of its uses are concerned with optimizing functions (during training), then with applying those functions (during inference). These functions are defined as compositions of simple primitives (as is common in functional programming), with internal data representations that are learned rather than manually designed. TensorFlow is joint work with many other people in the Google Brain team and elsewhere. More information is available at tensorflow.org.
Martín Abadi
ICFP1
2016 TensorFlow: A System for Large-Scale Machine Learning
Martín Abadi, Paul Barham 0001, Jianmin Chen, Andy Davis, Jeffrey Dean, Matthieu Devin, Sanjay Ghemawat, Geoffrey Irving, Michael Isard, Manjunath Kudlur, Josh Levenberg, Rajat Monga, Sherry Moore, Derek Gordon Murray, Benoit Steiner, Paul A. Tucker, Vijay Vasudevan, Pete Warden, Martin Wicke, Xiaoqiang Zheng
OSDI1
2015 The Prophecy of Timely Rollback (Invited Talk)
abstract
Techniques for rollback recovery play a central role in ensuring fault-tolerance in many distributed systems. This talk addresses the formal specification and analysis of those techniques. In particular, we will discuss the relevance of prophecy variables (auxiliary program variables whose values are defined in terms of current program state and future behavior) to reasoning about systems with undo operations. We will then focus on a model for data-parallel computation with a notion of virtual time. In this model, rollbacks allow the selective undo of work at particular virtual times. A refinement theorem ensures the consistency of rollbacks. This talk is largely based on joint work with Michael Isard.
Martín Abadi
CSL1
2015 The Prophecy of Undo
Martín Abadi
FASE1
2015 Timely Dataflow: A Model
Martín Abadi, Michael Isard
FORTE1
2015 Foundations of Differential Dataflow
Martín Abadi, Frank McSherry, Gordon D. Plotkin
FoSSaCS1
2014 Understanding TypeScript
Gavin M. Bierman, Martín Abadi, Mads Torgersen
ECOOP2
2014 Web PKI: Closing the Gap between Guidelines and Practices
Antoine Delignat-Lavaud, Martín Abadi, Andrew Birrell, Ilya Mironov, Ted Wobber, Yinglian Xie
NDSS2
2013 SocialWatch: detection of online service abuse via large-scale social graphs
abstract
In this paper, we present a framework, SocialWatch, to detect attacker-created accounts and hijacked accounts for online services at a large scale. SocialWatch explores a set of social graph properties that effectively model the overall social activity and connectivity patterns of online users, including degree, PageRank, and social affinity features. These features are hard to mimic and robust to attacker counter strategies. We evaluate SocialWatch using a large, real dataset with more than 682 million users and over 5.75 billion directional relationships. SocialWatch successfully detects 56.85 million attacker-created accounts with a low false detection rate of 0.75% and a low false negative rate of 0.61%. In addition, SocialWatch detects 1.95 million hijacked accounts---among which 1.23 million were not detected previously---with a low false detection rate of 2%. Our work demonstrates the practicality and effectiveness of using large social graphs with billions of edges to detect real attacks.
Junxian Huang 0001, Yinglian Xie, Fang Yu 0002, Qifa Ke, Martín Abadi, Eliot Gillum, Z. Morley Mao
AsiaCCS5
2013 Message-Locked Encryption for Lock-Dependent Messages
Martín Abadi, Dan Boneh, Ilya Mironov, Ananth Raghunathan, Gil Segev 0001
CRYPTO (1)1
2013 Global Authentication in an Untrustworthy World
Martín Abadi, Andrew Birrell, Ilya Mironov, Ted Wobber, Yinglian Xie
HotOS1
2013 Naiad: a timely dataflow system
abstract
Naiad is a distributed system for executing data parallel, cyclic dataflow programs. It offers the high throughput of batch processors, the low latency of stream processors, and the ability to perform iterative and incremental computations. Although existing systems offer some of these features, applications that require all three have relied on multiple platforms, at the expense of efficiency, maintainability, and simplicity. Naiad resolves the complexities of combining these features in one framework.
Derek Gordon Murray, Frank McSherry, Rebecca Isaacs, Michael Isard, Paul Barham 0001, Martín Abadi
SOSP6
2012 A Functional View of Imperative Information Flow
Thomas H. Austin, Cormac Flanagan, Martín Abadi
APLAS3
2012 Innocent by association: early recognition of legitimate users
abstract
This paper presents the design and implementation of Souche, a system that recognizes legitimate users early in online services. This early recognition contributes to both usability and security. Souche leverages social connections established over time. Legitimate users help identify other legitimate users through an implicit vouching process, strategically controlled within vouching trees. Souche is lightweight and fully transparent to users. In our evaluation on a real dataset of several hundred million users, Souche can efficiently identify 85% of legitimate users early, while reducing the percentage of falsely admitted malicious users from 44% to 2.4%. Our evaluation further indicates that Souche is robust in the presence of compromised accounts. It is generally applicable to enhance usability and security for a wide class of online services.
Yinglian Xie, Fang Yu 0002, Qifa Ke, Martín Abadi, Eliot Gillum, Krish Vitaldevaria, Jason Walter, Junxian Huang 0001, Z. Morley Mao
CCS4
2012 Software Security: A Formal Perspective - (Notes for a Talk)
Martín Abadi
FM1
2012 Host Fingerprinting and Tracking on the Web: Privacy and Security Implications
Ting-Fang Yen, Yinglian Xie, Fang Yu 0002, Roger Peng Yu, Martín Abadi
NDSS5
2012 On Protection by Layout Randomization
abstract
Layout randomization is a powerful, popular technique for software protection. We present it and study it in programming-language terms. More specifically, we consider layout randomization as part of an implementation for a high-level programming language; the implementation translates this language to a lower-level language in which memory addresses are numbers. We analyze this implementation, by relating low-level attacks against the implementation to contexts in the high-level programming language, and by establishing full abstraction results.
Martín Abadi, Gordon D. Plotkin
ACM Trans. Inf. Syst. Secur.1
2011 AC: composable asynchronous IO for native languages
abstract
This paper introduces AC, a set of language constructs for composable asynchronous IO in native languages such as C/C++. Unlike traditional synchronous IO interfaces, AC lets a thread issue multiple IO requests so that they can be serviced concurrently, and so that long-latency operations can be overlapped with computation. Unlike traditional asynchronous IO interfaces, AC retains a sequential style of programming without requiring code to use multiple threads, and without requiring code to be "stack-ripped" into chains of callbacks. AC provides an "async" statement to identify opportunities for IO operations to be issued concurrently, a "do..finish" block that waits until any enclosed "async" work is complete, and a "cancel" statement that requests cancellation of unfinished IO within an enclosing "do..finish". We give an operational semantics for a core language. We describe and evaluate implementations that are integrated with message passing on the Barrelfish research OS, and integrated with asynchronous file and network IO on Microsoft Windows. We show that AC offers comparable performance to existing C/C++ interfaces for asynchronous IO, while providing a simpler programming model.
Tim Harris 0001, Martín Abadi, Rebecca Isaacs, Ross McIlroy
OOPSLA2
2011 deSEO: Combating Search-Result Poisoning
John P. John, Fang Yu 0002, Yinglian Xie, Arvind Krishnamurthy, Martín Abadi
USENIX Security Symposium5
2011 Heat-seeking honeypots: design and experience
abstract
Many malicious activities on the Web today make use of compromised Web servers, because these servers often have high pageranks and provide free resources. Attackers are therefore constantly searching for vulnerable servers. In this work, we aim to understand how attackers find, compromise, and misuse vulnerable servers. Specifically, we present heat-seeking honeypots that actively attract attackers, dynamically generate and deploy honeypot pages, then analyze logs to identify attack patterns.
John P. John, Fang Yu 0002, Yinglian Xie, Arvind Krishnamurthy, Martín Abadi
WWW5
2011 Semantics of transactional memory and automatic mutual exclusion
abstract
Software Transactional Memory (STM) is an attractive basis for the development of language features for concurrent programming. However, the semantics of these features can be delicate and problematic. In this article we explore the trade-offs semantic simplicity, the viability of efficient implementation strategies, and the flexibility of language constructs. Specifically, we develop semantics and type systems for the constructs of the Automatic Mutual Exclusion (AME) programming model; our results apply also to other constructs, such as atomic blocks. With this semantics as a point of reference, we study several implementation strategies. We model STM systems that use in-place update, optimistic concurrency, lazy conflict detection, and rollback. These strategies are correct only under nontrivial assumptions that we identify and analyze. One important source of errors is that some efficient implementations create dangerous “zombie” computations where a transaction keeps running after experiencing a conflict; the assumptions confine the effects of these computations.
Martín Abadi, Andrew Birrell, Tim Harris 0001, Michael Isard
ACM Trans. Program. Lang. Syst.1
2010 On Protection by Layout Randomization
abstract
Layout randomization is a powerful, popular technique for software protection. We present it and study it in programming-language terms. More specifically, we consider layout randomization as part of an implementation for a highlevel programming language; the implementation translates this language to a lower-level language in which memory addresses are numbers. We analyze this implementation, by relating low-level attacks against the implementation to contexts in the high-level programming language, and by establishing full abstraction results.
Martín Abadi, Gordon D. Plotkin
CSF1
2010 How to tell an airport from a home: techniques and applications
abstract
Today's Internet services increasingly use IP-based geolocation to specialize the content and service provisioning for each user. However, these systems focus almost exclusively on the current position of users and do not attempt to infer or exploit any qualitative context about the location's relationship with the user (e.g., is the user at home? on a business trip?). This paper develops such a context by profiling the usage patterns of IP address ranges, relying on known user and machine identifiers to track accesses over time. Our preliminary results suggest that rough location categories such as residences, workplaces, and travel venues can be accurately inferred, enabling a range of potential applications from demographic analyses to ad specialization and security improvements.
Andreas Pitsillidis, Yinglian Xie, Fang Yu 0002, Martín Abadi, Geoffrey M. Voelker, Stefan Savage
HotNets4
2010 The Fine Print of Security
abstract
Summary form only given. Simple views of systems are often convenient in their design and analysis. However, attackers may attempt to exploit any oversimplification. For security, it is therefore useful to understand the value and the limitations of simplistic models. Computational-soundness theorems, which are the main subject of this lecture, can sometimes shed light on this question. We discuss them first in the context of security protocols. There, two distinct, rigorous views of cryptography have developed over the years. One of the views relies on a simple but powerful symbolic approach; the other, on a detailed computational model that considers issues of probability and complexity. In the last decade, however, we have made substantial progress in bridging the gap between these views. This progress, of which a paper with Phil Rogaway was one of the early steps, is due to many researchers. By now, this line of work provides computational justifications for formal treatments of cryptographic operations and security protocols, and also explores hybrid approaches. Similar ideas can apply in the domain of software protection, although they are less mature in this domain. Specifically, we can relate high-level security guarantees, of the kind offered by programming-language semantics, with lower-level properties of implementations. Layout randomization, one popular and effective implementation technique, again brings up issues of probability and complexity. The lecture introduces some recent work with Gordon Plotkin on this topic.
Martín Abadi
LICS1
2010 Searching the Searchers with SearchAudit
John P. John, Fang Yu 0002, Yinglian Xie, Martín Abadi, Arvind Krishnamurthy
USENIX Security Symposium4
2010 A model of dynamic separation for transactional memory
Martín Abadi, Tim Harris 0001, Katherine F. Moore
Inf. Comput.1
2010 Guessing attacks and the computational soundness of static equivalence
abstract
The indistinguishability of two pieces of data (or two lists of pieces of data) can be represented formally in terms of a relation called static equivalence. Static equivalence depends on an underlying equational theory. The choice of an inappropriate equational theory can lead to overly pessimistic or overly optimistic notions of indistinguishability, and in turn to security criteria that require protection against impossible attacks or – worse yet – that ignore feasible ones. In this paper, we define and justify an equational theory for standard, fundamental cryptographic operations. This equational theory yields a notion of static equivalence that implies computational indistinguishability. Static equivalence remains liberal enough for use in applications. In particular, we develop and analyze a principled formal account of guessing attacks in terms of static equivalence.
Mathieu Baudet, Bogdan Warinschi, Martín Abadi
J. Comput. Secur.3
2009 Models and Proofs of Protocol Security: A Progress Report
Martín Abadi, Bruno Blanchet, Hubert Comon-Lundh
CAV1
2009 Implementation and Use of Transactional Memory with Dynamic Separation
Martín Abadi, Andrew Birrell, Tim Harris 0001, Johnson Hsieh, Michael Isard
CC1
2009 Perspectives on Transactional Memory
Martín Abadi, Tim Harris 0001
CONCUR1
2009 Unified Declarative Platform for Secure Netwoked Information Systems
abstract
We present a unified declarative platform for specifying, implementing, and analyzing secure networked information systems. Our work builds upon techniques from logic-based trust management systems, declarative networking, and data analysis via provenance. We make the following contributions. First, we propose the secure network datalog (SeNDlog) language that unifies Binder, a logic-based language for access control in distributed systems, and Network Datalog, a distributed recursive query language for declarative networks. SeNDlog enables network routing, information systems, and their security policies to be specified and implemented within a common declarative framework. Second, we extend existing distributed recursive query processing techniques to execute SeNDlog programs that incorporate authenticated communication among untrusted nodes. Third, we demonstrate that distributed network provenance can be supported naturally within our declarative framework for network security analysis and diagnostics. Finally, using a local cluster and the PlanetLab testbed, we perform a detailed performance study of a variety of secure networked systems implemented using our platform.
Wenchao Zhou, Yun Mao, Boon Thau Loo, Martín Abadi
ICDE4
2009 A model of cooperative threads
abstract
We develop a model of concurrent imperative programming with threads. We focus on a small imperative language with cooperative threads which execute without interruption until they terminate or explicitly yield control. We define and study a trace-based denotational semantics for this language; this semantics is fully abstract but mathematically elementary. We also give an equational theory for the computational effects that underlie the language, including thread spawning. We then analyze threads in terms of the free algebra monad for this theory.
Martín Abadi, Gordon D. Plotkin
POPL1
2009 Transactional memory with strong atomicity using off-the-shelf memory protection hardware
abstract
This paper introduces a new way to provide strong atomicity in an implementation of transactional memory. Strong atomicity lets us offer clear semantics to programs, even if they access the same locations inside and outside transactions. It also avoids differences between hardware-implemented transactions and software-implemented ones. Our approach is to use off-the-shelf page-level memory protection hardware to detect conflicts between normal memory accesses and transactional ones. This page-level mechanism ensures correctness but gives poor performance because of the costs of manipulating memory protection settings and receiving notifications of access violations. However, in practice, we show how a combination of careful object placement and dynamic code update allows us to eliminate almost all of the protection changes. Existing implementations of strong atomicity in software rely on detecting conflicts by conservatively treating some non-transactional accesses as short transactions. In contrast, our page-level mechanism lets us be less conservative about how non-transactional accesses are treated; we avoid changes to non-transactional code until a possible conflict is detected dynamically, and we can respond to phase changes where a given instruction sometimes generates conflicts and sometimes does not. We evaluate our implementation with C# versions of many of the STAMP benchmarks, and show how it performs within 25% of an implementation with weak atomicity on all the benchmarks we have studied. It avoids pathological cases in which other implementations of strong atomicity perform poorly.
Martín Abadi, Tim Harris 0001, Mojtaba Mehrara
PPoPP1
2009 De-anonymizing the internet using unreliable IDs
abstract
Today's Internet is open and anonymous. While it permits free traffic from any host, attackers that generate malicious traffic cannot typically be held accountable. In this paper, we present a system called HostTracker that tracks dynamic bindings between hosts and IP addresses by leveraging application-level data with unreliable IDs. Using a month-long user login trace from a large email provider, we show that HostTracker can attribute most of the activities reliably to the responsible hosts, despite the existence of dynamic IP addresses, proxies, and NATs. With this information, we are able to analyze the host population, to conduct forensic analysis, and also to blacklist malicious hosts dynamically.
Yinglian Xie, Fang Yu 0002, Martín Abadi
SIGCOMM3
2009 Control-flow integrity principles, implementations, and applications
abstract
Current software attacks often build on exploits that subvert machine-code execution. The enforcement of a basic safety property, control-flow integrity (CFI), can prevent such attacks from arbitrarily controlling program behavior. CFI enforcement is simple and its guarantees can be established formally, even with respect to powerful adversaries. Moreover, CFI enforcement is practical: It is compatible with existing software and can be done efficiently using software rewriting in commodity systems. Finally, CFI provides a useful foundation for enforcing further security policies, as we demonstrate with efficient software implementations of a protected shadow call stack and of access control for memory regions.
Martín Abadi, Mihai Budiu, Úlfar Erlingsson, Jay Ligatti
ACM Trans. Inf. Syst. Secur.1
2008 The good, the bad, and the provable
abstract
No abstract available.
Martín Abadi
CCS1
2008 A Model of Dynamic Separation for Transactional Memory
Martín Abadi, Tim Harris 0001, Katherine F. Moore
CONCUR1
2008 Code-Carrying Authorization
Sergio Maffeis, Martín Abadi, Cédric Fournet, Andrew D. Gordon 0001
ESORICS2
2008 A Modal Deconstruction of Access Control Logics
Deepak Garg 0001, Martín Abadi
FoSSaCS2
2008 Semantics of transactional memory and automatic mutual exclusion
abstract
Software Transactional Memory (STM) is an attractive basis for the development of language features for concurrent programming. However, the semantics of these features can be delicate and problematic. In this paper we explore the tradeoffs between semantic simplicity, the viability of efficient implementation strategies, and the flexibilityof language constructs. Specifically, we develop semantics and type systems for the constructs of the Automatic Mutual Exclusion (AME) programming model; our results apply also to other constructs, such as atomic blocks. With this semantics as a point of reference, we study several implementation strategies. We model STM systems that use in-place update, optimistic concurrency, lazy conflict detection, and roll-back. These strategies are correct only under non-trivial assumptions that we identify and analyze. One important source of errors is that some efficient implementations create dangerous 'zombie' computations where a transaction keeps running after experiencing a conflict; the assumptions confine the effects of these computations.
Martín Abadi, Andrew Birrell, Tim Harris 0001, Michael Isard
POPL1
2008 Security analysis of cryptographically controlled access to XML documents
abstract
Some promising recent schemes for XML access control employ encryption for implementing security policies on published data, avoiding data duplication. In this article, we study one such scheme, due to Miklau and Suciu [2003]. That scheme was introduced with some intuitive explanations and goals, but without precise definitions and guarantees for the use of cryptography (specifically, symmetric encryption and secret sharing). We bridge this gap in the present work. We analyze the scheme in the context of the rigorous models of modern cryptography. We obtain formal results in simple, symbolic terms close to the vocabulary of Miklau and Suciu. We also obtain more detailed computational results that establish security against probabilistic polynomial-time adversaries. Our approach, which relates these two layers of the analysis, continues a recent thrust in security research and may be applicable to a broad class of systems that rely on cryptographic data protection.
Martín Abadi, Bogdan Warinschi
J. ACM1
2007 Policies and Proofs for Code Auditing
Nathan Whitehead, Jordan Johnson, Martín Abadi
ATVA3
2007 Authorizing applications in singularity
abstract
We describe a new design for authorization in operating systems in which applications are first-class entities. In this design, principals reflect application identities. Access control lists are patterns that recognize principals. We present a security model that embodies this design in an experimental operating system, and we describe the implementation of our design and its performance in the context of this operating system.
Ted Wobber, Aydan R. Yumerefendi, Martín Abadi, Andrew Birrell, Daniel R. Simon
EuroSys3
2007 Reconciling Two Views of Cryptography (The Computational Soundness of Formal Encryption)
Martín Abadi, Phillip Rogaway
J. Cryptol.1
2007 Just fast keying in the pi calculus
abstract
JFK is a recent, attractive protocol for fast key establishment as part of securing IP communication. In this paper, we formally analyze this protocol in the applied pi calculus (partly in terms of observational equivalences and partly with the assistance of an automatic protocol verifier). We treat JFK's core security properties and also other properties that are rarely articulated and rigorously studied, such as plausible deniability and resistance to denial-of-service attacks. In the course of this analysis, we found some ambiguities and minor problems, such as limitations in identity protection, but we mostly obtain positive results about JFK. For this purpose, we develop ideas and techniques that should be more generally useful in the specification and verification of security protocols.
Martín Abadi, Bruno Blanchet, Cédric Fournet
ACM Trans. Inf. Syst. Secur.1
2007 Editorial
abstract
No abstract available.
Martín Abadi, Jens Palsberg
ACM Trans. Program. Lang. Syst.1
2006 Computational Secrecy by Typing for the Pi Calculus
Martín Abadi, Ricardo Corin, Cédric Fournet
APLAS1
2006 Secrecy by Typing and File-Access Control
abstract
Secrecy properties can he guaranteed through a combination of static and dynamic checks. The static checks may include the application of special type systems with notions of secrecy. The dynamic checks can be of many different kinds; in practice, the most important are access-control checks, often ones based on ACLs (access-control lists). In this paper, we explore the interplay of static and dynamic checks in the setting of a file system. For this purpose, we study a pi calculus with file-system constructs. The calculus supports both access-control checks and a form of static scoping that limits the knowledge of terms - including file names and contents - to groups of clients. We design a system with secrecy types for the calculus: using this system, we can prove secrecy properties by static typing of programs in the presence of file-system access-control checks.
Avik Chaudhuri, Martín Abadi
CSFW2
2006 Formal Analysis of Dynamic, Distributed File-System Access Controls
Avik Chaudhuri, Martín Abadi
FORTE2
2006 Guessing Attacks and the Computational Soundness of Static Equivalence
Martín Abadi, Mathieu Baudet, Bogdan Warinschi
FoSSaCS1
2006 Access control in a core calculus of dependency
abstract
The Dependency Core Calculus (DCC) is an extension of the computational lambda calculus that was designed in order to capture the notion of dependency that arises in information-flow control, partial evaluation, and other programming-language settings. We show that, unexpectedly, DCC can also be used as a calculus for access control in distributed systems. Initiating the study of DCC from this perspective, we explore some of its appealing properties.
Martín Abadi
ICFP1
2006 XFI: Software Guards for System Address Spaces
Úlfar Erlingsson, Martín Abadi, Michael Vrable, Mihai Budiu, George C. Necula
OSDI2
2006 Deciding knowledge in security protocols under equational theories
Martín Abadi, Véronique Cortier
Theor. Comput. Sci.1
2006 Types for safe locking: Static race detection for Java
abstract
This article presents a static race-detection analysis for multithreaded shared-memory programs, focusing on the Java programming language. The analysis is based on a type system that captures many common synchronization patterns. It supports classes with internal synchronization, classes that require client-side synchronization, and thread-local classes. In order to demonstrate the effectiveness of the type system, we have implemented it in a checker and applied it to over 40,000 lines of hand-annotated Java code. We found a number of race conditions in the standard Java libraries and other test programs. The checker required fewer than 20 additional type annotations per 1,000 lines of code. This article also describes two improvements that facilitate checking much larger programs: an algorithm for annotation inference and a user interface that clarifies warnings generated by the checker. These extensions have enabled us to use the checker for identifying race conditions in large-scale software systems with up to 500,000 lines of code.
Martín Abadi, Cormac Flanagan, Stephen N. Freund
ACM Trans. Program. Lang. Syst.1
2005 Control-flow integrity
abstract
Current software attacks often build on exploits that subvert machine-code execution. The enforcement of a basic safety property, Control-Flow Integrity (CFI), can prevent such attacks from arbitrarily controlling program behavior. CFI enforcement is simple, and its guarantees can be established formally even with respect to powerful adversaries. Moreover, CFI enforcement is practical: it is compatible with existing software and can be done efficiently using software rewriting in commodity systems. Finally, CFI provides a useful foundation for enforcing further security policies, as we demonstrate with efficient software implementations of a protected shadow call stack and of access control for memory regions.
Martín Abadi, Mihai Budiu, Úlfar Erlingsson, Jay Ligatti
CCS1
2005 Deciding Knowledge in Security Protocols under (Many More) Equational Theories
abstract
In the analysis of security protocols, the knowledge of attackers is often described in terms of message deducibility and indistinguishability relations. In this paper, we pursue the study of these two relations. We establish general decidability theorems for both. These theorems require only loose, abstract conditions on the equational theory for messages. They subsume previous results for a syntactically defined class of theories that allows basic equations for functions such as encryption, decryption, and digital signatures. They also apply to many other useful theories, for example with blind digital signatures, homomorphic encryption, XOR, and other associative-commutative functions.
Martín Abadi, Véronique Cortier
CSFW1
2005 Access Control in a World of Software Diversity
Martín Abadi, Andrew Birrell, Ted Wobber
HotOS1
2005 Password-Based Encryption Analyzed
Martín Abadi, Bogdan Warinschi
ICALP1
2005 A Theory of Secure Control Flow
Martín Abadi, Mihai Budiu, Úlfar Erlingsson, Jay Ligatti
ICFEM1
2005 Automated Verification of Selected Equivalences for Security Protocols
Bruno Blanchet, Martín Abadi, Cédric Fournet
LICS2
2005 Security analysis of cryptographically controlled access to XML documents
abstract
Some promising recent schemes for XML access control employ encryption for implementing security policies on published data, avoiding data duplication. In this paper we study one such scheme, due to Miklau and Suciu. That scheme was introduced with some intuitive explanations and goals, but without precise definitions and guarantees for the use of cryptography (specifically, symmetric encryption and secret sharing). We bridge this gap in the present work. We analyze the scheme in the context of the rigorous models of modern cryptography. We obtain formal results in simple, symbolic terms close to the vocabulary of Miklau and Suciu. We also obtain more detailed computational results that establish security against probabilistic polynomial-time adversaries. Our approach, which relates these two layers of the analysis, continues a recent thrust in security research and may be applicable to a broad class of systems that rely on cryptographic data protection.
Martín Abadi, Bogdan Warinschi
PODS1
2005 Analyzing security protocols with secrecy types and logic programs
abstract
We study and further develop two language-based techniques for analyzing security protocols. One is based on a typed process calculus; the other, on untyped logic programs. Both focus on secrecy properties. We contribute to these two techniques, in particular by extending the former with a flexible, generic treatment of many cryptographic operations. We also establish an equivalence between the two techniques.
Martín Abadi, Bruno Blanchet
J. ACM1
2005 "Language-Based Security"
abstract
Concepts and techniques from modern programming languages have much to offer to the security of computer systems. This special issue is devoted to research on those concepts and techniques. Over 60 active researchers working in this area were invited to contribute. In particular, a number of the participants of the Dagstuhl Seminar on Language-Based Security were encouraged to submit. Submitted articles were reviewed by 3–4 referees. As a result of the reviewing process, five articles were selected for inclusion in the special issue.
Martín Abadi, J. Gregory Morrisett, Andrei Sabelfeld
J. Funct. Program.1
2005 Computer-assisted verification of a protocol for certified email
Martín Abadi, Bruno Blanchet
Sci. Comput. Program.1
2005 Moderately hard, memory-bound functions
abstract
A resource may be abused if its users incur little or no cost. For example, e-mail abuse is rampant because sending an e-mail has negligible cost for the sender. It has been suggested that such abuse may be discouraged by introducing an artificial cost in the form of a moderately expensive computation. Thus, the sender of an e-mail might be required to pay by computing for a few seconds before the e-mail is accepted. Unfortunately, because of sharp disparities across computer systems, this approach may be ineffective against malicious users with high-end systems, prohibitively slow for legitimate users with low-end systems, or both. Starting from this observation, we research moderately hard functions that most recent systems will evaluate at about the same speed. For this purpose, we rely on memory-bound computations. We describe and analyze a family of moderately hard, memory-bound functions, and we explain how to use them for protecting against abuses.
Martín Abadi, Michael Burrows, Mark S. Manasse, Ted Wobber
ACM Trans. Internet Techn.1
2004 By Reason and Authority: A System for Authorization of Proof-Carrying Code
Nathan Whitehead, Martín Abadi, George C. Necula
CSFW2
2004 Just Fast Keying in the Pi Calculus
Martín Abadi, Bruno Blanchet, Cédric Fournet
ESOP1
2004 A Logical Account of NGSCB
Martín Abadi, Ted Wobber
FORTE1
2004 Choice in Dynamic Linking
Martín Abadi, Georges Gonthier, Benjamin Werner
FoSSaCS1
2004 Deciding Knowledge in Security Protocols Under Equational Theories
Martín Abadi, Véronique Cortier
ICALP1
2004 BCiC: A System for Code Authentication and Verification
Nathan Whitehead, Martín Abadi
LPAR2
2004 Trusted Computing, Trusted Third Parties, and Verified Communications
Martín Abadi
SEC1
2004 Private authentication
Martín Abadi, Cédric Fournet
Theor. Comput. Sci.1
2003 Built-in Object Security
Martín Abadi
ECOOP1
2003 Logic in Access Control
abstract
Access control is central to security in computer systems. Over the years, there have been many efforts to explain and improve access control, sometimes with logical ideas and tools. This paper is a partial survey and discussion of the role of logic in access control. It considers logical foundations for access control and their applications, in particular in languages for programming security policies.
Martín Abadi
LICS1
2003 Moderately Hard, Memory-Bound Functions
Martín Abadi, Michael Burrows, Ted Wobber
NDSS1
2003 Access Control Based on Execution History
Martín Abadi, Cédric Fournet
NDSS1
2003 Computer-Assisted Verification of a Protocol for Certified Email
Martín Abadi, Bruno Blanchet
SAS1
2003 Reasoning About Secrecy for Active Networks
abstract
In this paper we develop a language of mobile agents called uPLAN for describing the capabilities of active (programmable) networks. We use a formal semantics for uPLAN to demonstrate how capabilities provided for programming the network can affect t
Pankaj Kakkar, Carl A. Gunter, Martín Abadi
J. Comput. Secur.3
2003 Secrecy types for asymmetric communication
Martín Abadi, Bruno Blanchet
Theor. Comput. Sci.1
2002 Analyzing security protocols with secrecy types and logic programs
abstract
We study and further develop two language-based techniques for analyzing security protocols. One is based on a typed process calculus; the other, on untyped logic programs. Both focus on secrecy properties. We contribute to these two techniques, in particular by extending the former with a flexible, generic treatment of many cryptographic operations. We also establish an equivalence between the two techniques.
Martín Abadi, Bruno Blanchet
POPL1
2002 Certified email with a light on-line trusted third party: design and implementation
abstract
This paper presents a new protocol for certified email. The protocol aims to combine security, scalability, easy implementation, and viable deployment. The protocol relies on a light on-line trusted third party; it can be implemented without any special software for the receiver beyond a standard email reader and web browser, and does not require any public-key infrastructure.
Martín Abadi, Neal Glew
WWW1
2002 Secure Implementation of Channel Abstractions
Martín Abadi, Cédric Fournet, Georges Gonthier
Inf. Comput.1
2002 Reconciling Two Views of Cryptography (The Computational Soundness of Formal Encryption)
Martín Abadi, Phillip Rogaway
J. Cryptol.1
2002 Editorial
abstract
This special issue of ACM Transactions on Computational Logic is devoted to papers first presented at LICS 2000, the 15th Annual IEEE Symposium on Logic in Computer Science, held June 26--29, 2000, in Santa Barbara, California.In consultation with the LICS 2000 program committee, the guest editors selected five papers presented at the conference and invited their authors to submit full versions of the papers to this special issue. All submissions were refereed according to the usual standards of ACM Transactions on Computational Logic . They cover a range of lively areas within Logic in Computer Science, reflecting well the quality of the conference. We are grateful to the authors of the papers for their excellent contributions, and to all members of the program committee and reviewers for their efforts.
Martín Abadi, Leonid Libkin, Frank Pfenning
ACM Trans. Comput. Log.1
2001 Computing Symbolic Models for Verifying Cryptographic Protocols
abstract
We consider the problem of automatically verifing infinite-state cryptographic protocols. Specifically, we present an algorithm that given a finite process describing a protocol in a hostile environment (trying to force the system into a "bad" state) computes a model of traces on which security properties can be checked. Because of unbounded inputs from the environment, even finite processes have an infinite set of traces: the main focus of our approach is the reduction of this infinite set to a finite set by a symbolic analysis of the knowledge of the environment. Our algorithm is sound (and we conjecture complete) for protocols with shared-key encryption-decryption that use arbitrary messages as keys; further it is complete in the common and important case in which the cryptographic keys are messages of bounded size.
Marcelo P. Fiore, Martín Abadi
CSFW2
2001 Secrecy Types for Asymmetric Communication
Martín Abadi, Bruno Blanchet
FoSSaCS1
2001 Leslie Lamport's properties and actions
abstract
Since the 1970s, Leslie Lamport has done substantial work on specification and verification methods. This work might be regarded as complementary to his other celebrated research on concurrency and distributed computing, perhaps sometimes even as secondary. However, this work is excellent in its own right. It introduces (or distills) many original and useful ideas. These include the important definitions of safety and liveness properties, and later the insightful conception of a temporal logic of actions.
Martín Abadi
PODC1
2001 Mobile values, new names, and secure communication
abstract
We study the interaction of the "new" construct with a rich but common form of (first-order) communication. This interaction is crucial in security protocols, which are the main motivating examples for our work; it also appears in other programming-language contexts. Specifically, we introduce a simple, general extension of the pi calculus with value passing, primitive functions, and equations among terms. We develop semantics and proof techniques for this extended language and apply them in reasoning about some security protocols.
Martín Abadi, Cédric Fournet
POPL1
2000 Taming the Adversary
Martín Abadi
CRYPTO1
2000 Reasoning about Secrecy for Active Networks
abstract
We develop a language of mobile agents called uPLAN for describing the capabilities of active (programmable) networks. We use a formal semantics for uPLAN to demonstrate how capabilities provided for programming the network can affect the potential flows of information between users. In particular, we formalize a concept of security against attacks on secrecy by an 'outsider' and show how basic protections are preserved in the presence of programmable network functions such as user-customized labeled routing.
Pankaj Kakkar, Carl A. Gunter, Martín Abadi
CSFW3
2000 Authentication Primitives and Their Compilation
abstract
Adopting a programming-language perspective, we study the problem of implementing authentication in a distributed system. We define a process calculus with constructs for authentication and show how this calculus can be translated to a lower-level language using marshaling, multiplexing, and cryptographic protocols. Authentication serves for identitybased security in the source language and enables simplifications in the translation. We reason about correctness relying on the concepts of observational equivalence and full abstraction.
Martín Abadi, Cédric Fournet, Georges Gonthier
POPL1
2000 top-top-closed relations and admissibility
Martín Abadi
Math. Struct. Comput. Sci.1
1999 Object Types against Races
Cormac Flanagan, Martín Abadi
CONCUR2
1999 Types for Safe Locking
Cormac Flanagan, Martín Abadi
ESOP2
1999 Security Protocols and Specifications
Martín Abadi
FoSSaCS1
1999 A Top-Down Look at a Secure Message
Martín Abadi, Cédric Fournet, Georges Gonthier
FSTTCS1
1999 A Core Calculus of Dependency
abstract
Notions of program dependency arise in many settings: security, partial evaluation, program slicing, and call-tracking. We argue that there is a central notion of dependency common to these settings that can be captured within a single calculus, the Dependency Core Calculus (DCC), a small extension of Moggi's computational lambda calculus. To establish this thesis, we translate typed calculi for secure information flow, binding-time analysis, slicing, and call-tracking into DCC. The translations help clarify aspects of the source calculi. We also define a semantic model for DCC and use it to give simple proofs of noninterference results for each case.
Martín Abadi, Anindya Banerjee 0001, Nevin Heintze, Jon G. Riecke
POPL1
1999 Secure Communications Processing for Distributed Languages
abstract
Communications processing is an important part of distributed language systems with facilities such as RPC (remote procedure call) and RMI (remote method invocation). For security, messages may require cryptographic operations in addition to ordinary marshaling. We investigate a method for wrapping communications processing around an entity with secure local communication, such as a single machine or a protected network. The wrapping extends security properties of local communication to distributed communication. We formulate and analyze the method within a process calculus.
Martín Abadi, Cédric Fournet, Georges Gonthier
S&P1
1999 A Calculus for Cryptographic Protocols: The spi Calculus
Martín Abadi, Andrew D. Gordon 0001
Inf. Comput.1
1999 A Type System for Java Bytecode Subroutines
abstract
Java is typically compiled into an intermediate language, JVML, that is interpreted by the Java Virtual Machine. Because mobile JVML code is not always trusted, a bytecode verifier enforces static constraints that prevent various dynamic errors. Given the importance of the bytecode verifier for security, its current descriptions are inadequate. This article proposes using typing rules to describe the bytecode verifier because they are more precise than prose, clearer than code, and easier to reason about than either. JVML has a subroutine construct which is used for the compilation of Java's try-finally statement. Subroutines are a major source of complexity for the bytecode verifier because they are not obviously last-in/first-out and because they require a kind of polymorphism. Focusing on subroutines, we isolate an interesting, small subset of JVML. We give typing rules for this subset and prove their correctness. Our type system constitutes a sound basis for bytecode verification and a rational reconstruction of a delicate part of Sun's bytecode verifier.
Raymie Stata, Martín Abadi
ACM Trans. Program. Lang. Syst.2
1998 Two Facets of Authentication
abstract
Authentication can serve both for assigning responsibility and for giving credit. Some authentication protocols are adequate for one purpose but not the other. The paper explains the distinction between responsibility and credit, through several examples, and discusses the role of this distinction in the design and analysis of protocols.
Martín Abadi
CSFW1
1998 Panel Introduction: Varieties of Authentication
Roberto Gorrieri, Paul F. Syverson, Martín Abadi, Riccardo Focardi, Dieter Gollmann, Gavin Lowe, Catherine Meadows 0001
CSFW3
1998 A Bisimulation Method for Cryptographic Protocols
Martín Abadi, Andrew D. Gordon 0001
ESOP1
1998 Protection in Programming-Language Translations
Martín Abadi
ICALP1
1998 Secure Implementation of Channel Abstractions
abstract
Communication in distributed systems often relies on useful abstractions such as channels, remote procedure calls, and remote method invocations. The implementations of these abstractions sometimes provide security properties, in particular through encryption. In this paper we study those security properties, focusing on channel abstractions. We introduce a simple high-level language that includes constructs for creating and using secure channels. The language is a variant of the join-calculus and belongs to the same family as the pi-calculus. We show how to translate the high-level language into a lower-level language that includes cryptographic primitives. In this translation, we map communication on secure channels to encrypted communication on public channels. We obtain a correctness theorem for our translation; this theorem implies that one can reason about programs in the high-level language without mentioning the subtle cryptographic protocols used in their lower-level implementation.
Martín Abadi, Cédric Fournet, Georges Gonthier
LICS1
1998 A Type System for Java Bytecode Subroutines
abstract
Java is typically compiled into an intermediate language, JVML, that is interpreted by the Java Virtual Machine. Because mobile JVML code is not always trusted, a bytecode verifier enforces static constraints that prevent various dynamic errors. Given the importance of the bytecode verifier for security, its current descriptions are inadequate. This paper proposes using typing rules to describe the bytecode verifier because they are more precise than prose, clearer than code, and easier to reason about than either.JVML has a subroutine construct used for the compilation of Java's try-finally statement. Subroutines are a major source of complexity for the bytecode verifier because they are not obviously last-in/first-out and because they require a kind of polymorphism. Focusing on subroutines, we isolate an interesting, small subset of JVML. We give typing rules for this subset and prove their correctness. Our type system constitutes a sound basis for bytecode verification and a rational reconstruction of a delicate part of Sun's bytecode verifier.
Raymie Stata, Martín Abadi
POPL2
1998 Secure Web Tunneling
Martín Abadi, Andrew Birrell, Raymie Stata, Edward Wobber
Comput. Networks1
1998 On SDSI's Linked Local Name Spaces
abstract
Rivest and Lampson have recently introduced SDSI, a Simple Distributed Security Infrastructure. One of the important innovations of SDSI is the use of linked local name spaces. This paper suggests a logical explanation of SDSI’s local name spaces, as
Martín Abadi
J. Comput. Secur.1
1997 A Calculus for Cryptographic Protocols: The Spi Calculus
abstract
We introduce the spi calculus, an extension of the pi calculus designed for the description and analysis of cryptographic protocols.We show how to use the spi calculus, particularly for studying authentication protocols.The pi calculus (without extension) suffices for some abstract protocols; the spi calculus enables us to consider cryptographic issues in more detail.We represent protocols as processes in the spi calculus and state their security properties in terms of coarse-grained notions of protocol equivalence.
Martín Abadi, Andrew D. Gordon 0001
CCS1
1997 Reasoning about Cryptographic Protocols in the Spi Calculus
Martín Abadi, Andrew D. Gordon 0001
CONCUR1
1997 On SDSI's Linked Local Name Spaces
abstract
R.L. Rivest and B. Lampson (1996) have recently introduced SDSI, a Simple Distributed Security Infrastructure. One of the important innovations of SDSI is the use of linked local name spaces. The paper suggests a logical explanation of SDSI's local name spaces, as a complement to the operational explanation given in the SDSI definition.
Martín Abadi
CSFW1
1997 Explicit Communication Revisited: Two New Attacks on Authentication Protocols
abstract
SSH and AKA are recent, practical protocols for secure connections over an otherwise unprotected network. The paper shows that, despite the use of public-key cryptography, SSH and AKA do not provide authentication as intended. The flaws of SSH and AKA can be viewed as the result of their disregarding a basic principle for the design of sound authentication protocols: the principle that messages should be explicit.
Martín Abadi
IEEE Trans. Software Eng.1
1996 Analysis and Caching of Dependencies
abstract
We address the problem of dependency analysis and caching in the context of the λ-calculus. The dependencies of a λ-term are (roughly) the parts of the λ-term that contribute to the result of evaluating it. We introduce a mechanism for keeping track of dependencies, and discuss how to use these dependencies in caching.
Martín Abadi, Butler W. Lampson, Jean-Jacques Lévy
ICFP1
1996 Syntactic Considerations on Recursive Types
abstract
We study recursive types from a syntactic perspective. In particular, we compare the formulations of recursive types that are used in programming languages and formal systems. Our main tool is a new syntactic explanation of type expressions as functors. We also introduce a simple logic for programs with recursive types in which we carry out our proofs.
Martín Abadi, Marcelo P. Fiore
LICS1
1996 An Interpretation of Objects and Object Types
abstract
We present an interpretation of typed object-oriented concepts in terms of well-understood, purely procedural concepts. More precisely, we give a compositional subtype-preserving translation of a basic object calculus supporting method invocation, functional method update, and subtyping, into the polymorphic λ-calculus with recursive types and subtyping. The translation techniques apply also to an imperative version of the object calculus which includes in-place method update and object cloning. Finally, the translation easily extends to "Self types" and other interesting object-oriented constructs.
Martín Abadi, Luca Cardelli, Ramesh Viswanathan
POPL1
1996 Secure Network Objects
Leendert van Doorn, Martín Abadi, Michael Burrows, Edward Wobber
S&P2
1996 A Theory of Primitive Objects: Untyped and First-Order Systems
Martín Abadi, Luca Cardelli
Inf. Comput.1
1996 On Subtyping and Matching
abstract
A relation between recursive object types, called matching , has been proposed as a generalization of subtyping. Unlike subtyping, matching does not support subsumption, but it does support inheritance of binary methods. We argue that matching is a good idea, but that it should not be regarded as a form of F-bounded subtyping (as was originally intended). We show that a new interpretation of matching as higher-order subtyping has better properties. Matching turns out to be a third-order construction, possibly the only one to have been proposed for general use in programming.
Martín Abadi, Luca Cardelli
ACM Trans. Program. Lang. Syst.1
1996 Prudent Engineering Practice for Cryptographic Protocols
abstract
We present principles for designing cryptographic protocols. The principles are neither necessary nor sufficient for correctness. They are however helpful, in that adherence to them would have prevented a number of published errors. Our principles are informal guidelines; they complement formal methods, but do not assume them. In order to demonstrate the actual applicability of these guidelines, we discuss some instructive examples from the literature.
Martín Abadi, Roger M. Needham
IEEE Trans. Software Eng.1
1995 On Subtyping and Matching
Martín Abadi, Luca Cardelli
ECOOP1
1995 An Abstract Account of Composition
Martín Abadi, Stephan Merz
MFCS1
1995 Dynamic Typing in Polymorphic Languages
abstract
Abstract There are situations in programming where some dynamic typing is needed, even in the presence of advanced static type systems. We investigate the interplay of dynamic types with other advanced type constructions, discussing their integration into languages with explicit polymorphism (in the style of system F ), implicit polymorphism (in the style of ML), abstract data types, and subtyping.
Martín Abadi, Luca Cardelli, Benjamin C. Pierce, Didier Rémy
J. Funct. Program.1
1995 A Theory of Primitive Objects: Second-Order Systems
Martín Abadi, Luca Cardelli
Sci. Comput. Program.1
1995 Conjoining Specifications
abstract
We show how to specify components of concurrent systems. The specification of a system is the conjunction of its components' specifications. Properties of the system are proved by reasoning about its components. We consider both the decomposition of a given system into parts, and the composition of given parts to form a system.
Martín Abadi, Leslie Lamport
ACM Trans. Program. Lang. Syst.1
1994 Methods as Assertions
John Lamping, Martín Abadi
ECOOP2
1994 A Theory of Primitive Objects - Scond-Order Systems
Martín Abadi, Luca Cardelli
ESOP1
1994 A Semantics of Object Types
abstract
We give a semantics for a typed object calculus, an extension of System F with object subsumption and method override. We interpret the calculus in a per model, proving the soundness of both typing and equational rules. This semantics suggests a syntactic translation from our calculus into a simpler calculus with neither subtyping nor objects.>
Martín Abadi, Luca Cardelli
LICS1
1994 Subtyping and Parametricity
abstract
We study the interaction of subtyping and parametricity. We describe a logic for a programming language with parametric polymorphism and subtyping. The logic supports the formal definition and use of relational parametricity. We give two models for it, and compare it with other formal systems for the same language. In particular we examine the "Penn interpretation" of subtyping as implicit coercion. without subtyping, parametricity yields, for example, an encoding of abstract types and of initial algebras, with the corresponding proof principles of simulation and induction. With subtyping, we obtain partially abstract types and certain initial order-sorted algebras, and may derive proof principles for them.>
Gordon D. Plotkin, Martín Abadi, Luca Cardelli
LICS2
1994 Open Systems in TLA
abstract
We describe a method for writing assumption/guarantee specifications of concurrent systems. We also provide a proof rule for reasoning about the composition of these systems. Specifications are written in TLA (the Temporal Logic of Actions), and all reasoning is performed within the logic. Our proof rule handles internal variables and both safety and liveness properties. 1 Introduction An open system is one that interacts with an environment that neither it nor its implementor controls. To deduce useful properties of a system, we must specify its environment. No system will exhibit its intended behavior in the presence of a su#ciently hostile environment. For example, a combinational circuit will not produce an output in the intended range if some input line, instead of having a 0 or a 1, has an improper voltage level of 1/2. The specification of the circuit's environment must rule out such improper inputs. An open system calls for an assumption/guarantee specification, asserting that...
Martín Abadi, Leslie Lamport
PODC1
1994 Prudent engineering practice for cryptographic protocols
abstract
We present principles for the design of cryptographic protocols. The principles are neither necessary nor sufficient for correctness. They are however helpful, in that adherence to them would have avoided a considerable number of published errors. Our principles are informal guidelines. They complement formal methods, but do not assume them. In order to demonstrate the actual applicability of these guidelines, we discuss some instructive examples from the literature.
Martín Abadi, Roger M. Needham
S&P1
1994 A Semantics for Static Type Inference in a Nondeterministic Language
Martín Abadi
Inf. Comput.1
1994 Decidability and Expressiveness for First-Order Logics of Probability
Martín Abadi, Joseph Y. Halpern
Inf. Comput.1
1994 Baby Modula-3 and a Theory of Objects
abstract
Abstract Baby Modula-3 is a small, functional, object-oriented programming language. It is intended as a vehicle for explaining the core of Modula-3 from a biased perspective: Baby Modula-3 includes the main features of Modula-3 related to objects, but not much else. To the theoretician, Baby Modula-3 provides a tractable, concrete example of an object-oriented language, and we use it to study the formal semantics of objects. Baby Modula-3 is defined with a structured operational semantics and with a set of static type rules. A denotational semantics guarantees the soundness of this definition.
Martín Abadi
J. Funct. Program.1
1994 Authentication in the Taos Operating System
abstract
We describe a design for security in a distributed system and its implementation. In our design, applications gain access to security services through a narrow interface. This interface provides a notion of identity that includes simple principals, groups, roles, and delegations. A new operating system component manages principals, credentials, and secure channels. It checks credentials according to the formal rules of a logic of authentication. Our implementation is efficient enough to support a substantial user community.
Edward Wobber, Martín Abadi, Michael Burrows
ACM Trans. Comput. Syst.2
1994 An Old-Fashined Recipe for Real-Time
abstract
Traditional methods for specifying and reasoning about concurrent systems work for real-time systems. Using TLA (the temporal logic of actions), we illustrate how they work with the examples of a queue and of a mutual-exclusion protocol. In general, two problems must be addressed: avoiding the real-time programming version of Zeno's paradox, and coping with circularities when composing real-time assumption/guarantee specifications. Their solutions rest on properties of machine closure and realizability.
Martín Abadi, Leslie Lamport
ACM Trans. Program. Lang. Syst.1
1993 Formal Parametric Polymorphism
abstract
A polymorphic function is parametric if its behavior does not depend on the type at which it is instantiated. Starting with Reynolds' work, the study of parametricity is typically semantic. In this paper, we develop a syntactic approach to parametricity, and a formal system that embodies this approach: system ℜ. Girard's system F deals with terms and types; ℜ is an extension of F that deals also with relations between types.
Martín Abadi, Luca Cardelli, Pierre-Louis Curien
POPL1
1993 Authentication in the Taos Operating System
abstract
We describe a design and implementation of security for a distributed system. In our system, applications access security services through a narrow interface. This interface provides a notion of identity that includes simple principals, groups, roles, and delegations. A new operating system component manages principals, credentials, and secure channels. It checks credentials according to the formal rules of a logic of authentication. Our implementation is efficient enough to support a substantial user community.
Edward Wobber, Martín Abadi, Michael Burrows, Butler W. Lampson
SOSP2
1993 Authentification and Delegation with Smart-Cards
Martín Abadi, Michael Burrows, C. Kaufman, Butler W. Lampson
Sci. Comput. Program.1
1993 Formal Parametric Polymorphism
Martín Abadi, Luca Cardelli, Pierre-Louis Curien
Theor. Comput. Sci.1
1993 A Logical View of Composition
Martín Abadi, Gordon D. Plotkin
Theor. Comput. Sci.1
1993 A Calculus for Access Control in Distributed Systems
abstract
We study some of the concepts, protocols, and algorithms for access control in distributed systems, from a logical perspective. We account for how a principal may come to believe that another principal is making a request, either on his own or on someone else's behalf. We also provide a logical language for accesss control lists and theories for deciding whether requests should be granted.
Martín Abadi, Michael Burrows, Butler W. Lampson, Gordon D. Plotkin
ACM Trans. Program. Lang. Syst.1
1993 Composing Specifications
abstract
A rigorous modular specification method requires a proof rule asserting that if each component behaves correctly in isolation, then it behaves correctly in concert with other components. Such a rule is subtle because a component need behave correctly only when its environment does, and each component is part of the others' environments. We examine the precise distinction between a system and its environment, and provide the requisite proof rule when modules are specified with safety and liveness properties.
Martín Abadi, Leslie Lamport
ACM Trans. Program. Lang. Syst.1
1992 Linear Logic Without Boxes
abstract
J.-Y. Girard's original definition of proof nets for linear logic involves boxes. The box is the unit for erasing and duplicating fragments of proof nets. It imposes synchronization, limits sharing, and impedes a completely local view of computation. The authors describe an implementation of proof nets without boxes. Proof nets are translated into graphs of the sort used in optimal lambda -calculus implementations; computation is performed by simple graph rewriting. This graph implementation helps in understanding optimal reductions in the lambda -calculus and in the various programming languages inspired by linear logic.>
Georges Gonthier, Martín Abadi, Jean-Jacques Lévy
LICS2
1992 The Geometry of Optimal Lambda Reduction
abstract
Lamping discovered an optimal graph-reduction implementation of the λ-calculus. Simultaneously, Girard invented the geometry of interaction, a mathematical foundation for operational semantics. In this paper, we connect and explain the geometry of interaction and Lamping's graphs. The geometry of interaction provides a suitable semantic basis for explaining and improving Lamping's system. On the other hand, graphs similar to Lamping's provide a concrete representation of the geometry of interaction. Together, they offer a new understanding of computation, as well as ideas for efficient and correct implementations.
Georges Gonthier, Martín Abadi, Jean-Jacques Lévy
POPL2
1992 Authentication in Distributed Systems: Theory and Practice
abstract
We describe a theory of authentication and a system that implements it. Our theory is based on the notion of principal and a “speaks for” relation between principals. A simple principal either has a name or is a communication channel; a compound principal can express an adopted role or delegated authority. The theory shows how to reason about a principal's authority by deducing the other principals that it can speak for; authenticating a channel is one important application. We use the theory to explain many existing and proposed security mechanisms. In particular, we describe the system we have built. It passes principals efficiently as arguments or results of remote procedure calls, and it handles public and shared key encryption, name lookup in a large name space, groups of principals, program loading, delegation, access control, and revocation.
Butler W. Lampson, Martín Abadi, Michael Burrows, Edward Wobber
ACM Trans. Comput. Syst.2
1991 A Calculus for Access Control in Distributed Systems
Martín Abadi, Michael Burrows, Butler W. Lampson, Gordon D. Plotkin
CRYPTO1
1991 A Semantics for a Logic of Authentication (Extended Abstract)
abstract
Abstract: Burrows, Abadi, and Needham have proposed a logic for the analysis of authentication protocols. It is a logic of belief, with special constructs for expressing some of the central concepts used in authentication. The logic has revealed many subtleties and serious errors in published protocols. Unfortunately, it has also created some confusion. In this paper, we provide a new semantics for the logic, our attempt to clarify its meaning. In the search for a sound semantics, we have identi ed many sources of the past confusion. Identifying these sources has helped us improve the logic's syntax and inference rules, and extend its applicability. One of the greatest di erences between our semantics and the original semantics is our treatment of belief as a form of resource-bounded, defeasible knowledge. 1
Martín Abadi, Mark R. Tuttle
PODC1
1991 A Logical View of Composition and Refinement
abstract
We define two logics of safety specifications for reactive systems. The logics provide a setting for the study of composition and refinement rules, and a framework for the use of the modular specification methods that these rules underpin. The two logics arise naturally from extant specification approaches; one of the logics is intuitionistic, while the other one is linear.
Martín Abadi, Gordon D. Plotkin
POPL1
1991 Authentication in Distributed Systems: Theory and Practice
abstract
We describe a theory of authentication and a system that implements it. Our theory is based on the notion of principal and a "speaks for" relation between principals. A simple principal either has a name or is a communication channel; a compound principal can express an adopted role or delegation of authority. The theory explains how to reason about a principal's authority by deducing the other principals that it can speak for; authenticating a channel is one important application. We use the theory to explain many existing and proposed mechanisms for security. In particular, we describe the system we have built. It passes principals efficiently as arguments or results of remote procedure calls, and it handles public and shared key encryption, name lookup in a large name space, groups of principals, loading programs, delegation, access control, and revocation.
Butler W. Lampson, Martín Abadi, Michael Burrows, Edward Wobber
SOSP2
1991 Preserving Liveness: Comments on "Safety and Liveness from a Methodological Point of View"
Martín Abadi, Bowen Alpern, Krzysztof R. Apt, Nissim Francez, Shmuel Katz, Leslie Lamport, Fred B. Schneider
Inf. Process. Lett.1
1991 Explicit Substitutions
abstract
Abstract The λσ-calculus is a refinement of the λ-calculus where substitutions are manipulated explicitly. The λσ-calculus provides a setting for studying the theory of substitutions, with pleasant mathematical properties. It is also a useful bridge between the classical λ-calculus and concrete implementations.
Martín Abadi, Luca Cardelli, Pierre-Louis Curien, Jean-Jacques Lévy
J. Funct. Program.1
1991 The Existence of Refinement Mappings
Martín Abadi, Leslie Lamport
Theor. Comput. Sci.1
1991 Dynamic Typing in a Statically Typed Language
abstract
Statically typed programming languages allow earlier error checking, better enforcement of diciplined programming styles, and the generation of more efficient object code than languages where all type consistency checks are performed at run time. However, even in statically typed languages, there is often the need to deal with datawhose type cannot be determined at compile time. To handle such situations safely, we propose to add a type Dynamic whose values are pairs of a value v and a type tag T where v has the type denoted by T . Instances of Dynamic are built with an explicit tagging construct and inspected with a type safe typecase construct. This paper explores the syntax, operational semantics, and denotational semantics of a simple language that includes the type Dynamic . We give examples of how dynamically typed values can be used in programming. Then we discuss an operational semantics for our language and obtain a soundness theorem. We present two formulations of the denotational semantics of this language and relate them to the operational semantics. Finally, we consider the implications of polymorphism and some implementation issues.
Martín Abadi, Luca Cardelli, Benjamin C. Pierce, Gordon D. Plotkin
ACM Trans. Program. Lang. Syst.1
1990 An Axiomatization of Lamport's Temporal Logic of Actions
Martín Abadi
CONCUR1
1990 A Per Model of Polymorphism and Recursive Types
abstract
A model of Reynold's polymorphic lambda calculus is provided, which also allows the recursive definition of elements and types. The techniques uses a good class of partial equivalence relations (PERs) over a certain CPO. This allows the combination of inverse-limits for recursion and intersection for polymorphism.>
Martín Abadi, Gordon D. Plotkin
LICS1
1990 Explicit Substitutions
abstract
The λσ-calculus is a refinement of the λ-calculus where substitutions are manipulated explicitly. The λσ-calculus provides a setting for studying the theory of substitutions, with pleasant mathematical properties. It is also a useful bridge between the classical λ-calculus and concrete implementations.
Martín Abadi, Luca Cardelli, Pierre-Louis Curien, Jean-Jacques Lévy
POPL1
1990 Nonclausal Deduction in First-Order Temporal Logic
abstract
This paper presents a proof system for first-order temporal logic. The system extends the nonclausal resolution method for ordinary first-order logic with equality, to handle quantifiers and temporal operators. Soundness and completeness issues are considered. The use of the system for verifying concurrent programs is discussed and variants of the system for other modal logics are also described.
Martín Abadi, Zohar Manna
J. ACM1
1990 Secure Circuit Evaluation
Martín Abadi, Joan Feigenbaum
J. Cryptol.1
1990 Corrigendum: The Power of Temporal Proofs
Martín Abadi
Theor. Comput. Sci.1
1990 A Logic of Authentication
abstract
Authentication protocols are the basis of security in many distributed systems, and it is therefore essential to ensure that these protocols function correctly. Unfortunately, their design has been extremely error prone. Most of the protocols found in the literature contain redundancies or security flaws. A simple logic has allowed us to describe the beliefs of trustworthy parties involved in authentication protocols and the evolution of these beliefs as a consequence of communication. We have been able to explain a variety of authentication protocols formally, to discover subtleties and errors in them, and to suggest improvements. In this paper we present the logic and then give the results of our analysis of four published protocols, chosen either because of their practical importance or because they serve to illustrate our method.
Michael Burrows, Martín Abadi, Roger M. Needham
ACM Trans. Comput. Syst.2
1989 Decidability and Expressiveness for First-Order Logics of Probability (Extended Abstract)
abstract
Decidability and expressiveness issues for two first-order logics of probability are considered. In one the probability is on possible worlds, whereas in the other it is on the domain. It turns out that in both cases it takes very little to make reasoning about probability highly undecidable. It is shown that, when the probability is on the domain, if the language contains only unary predicates, then the validity problem is decidable. However, if the language contains even one binary predicate, the validity problem is Pi /sub 1//sup 2/ as hard as elementary analysis with free predicate and function symbols. With equality in the language, even with no other symbol, the validity problem is at least as hard as that for elementary analysis, Pi /sub infinity //sup 1/. Thus, the logic cannot be axiomatized in either case. When the probability is on the set of possible worlds, the validity problem is Pi /sub 1//sup 2/ complete with as little as one unary predicate in the language, even without equality. With equality, Pi /sub infinity //sup 1/ hardness with only a constant symbol is obtained. In many applications it suffices to restrict attention to domains of a bounded size; it is shown that the logics are decidable in this case.>
Martín Abadi, Joseph Y. Halpern
FOCS1
1989 Realizable and Unrealizable Specifications of Reactive Systems
Martín Abadi, Leslie Lamport, Pierre Wolper
ICALP1
1989 Faithful Ideal Models for Recursive Polymorphic Types
abstract
Ideal models are explored for a programming language with recursive polymorphic types, variants of the model studied by D. MacQueen et al. (Inf. Control, vol.71, pp.95-130, 1986). The use of suitable ideals yields a close fit between models and programming language. Two of the authors' semantics of type expressions are faithfully, in the sense that programs that behave identically in all contexts have exactly the same types.>
Martín Abadi, Benjamin C. Pierce, Gordon D. Plotkin
LICS1
1989 Dynamic Typing in a Statically-Typed Language
abstract
Statically-typed programming languages allow earlier error checking, better enforcement of disciplined programming styles, and generation of more efficient object code than languages where all type-consistency checks are performed at runtime. However, even in statically-type languages, there is often the need to deal with data whose type cannot be known at compile time. To handle such situations safely, we propose to add a type Dynamic whose values are pairs of a value v and a type tag T where v has the type denoted by T. Instances of Dynamic are built with an explicit tagging construct and inspected with a type-safe typecase construct.
Martín Abadi, Luca Cardelli, Benjamin C. Pierce, Gordon D. Plotkin
POPL1
1989 A Logic of Authentication
abstract
Authentication protocols are the basis of security in many distributed systems, and it is therefore essential to ensure that these protocols function correctly. Unfortunately, their design has been extremely error prone. Most of the protocols found in the literature contain redundancies or security flaws.
Michael Burrows, Martín Abadi, Roger M. Needham
SOSP2
1989 On Hiding Information from an Oracle
Martín Abadi, Joan Feigenbaum, Joe Kilian
J. Comput. Syst. Sci.1
1989 Temporal Logic Programming
abstract
Temporal logic, often used as a specification language for programs, can serve directly as a programming language. We propose a specific programming language TEMPLOG, which extends the classical PROLOG-like languages to include temporal operators. PROLOG progams are collections of classical Horn clauses and they are efficiently interpreted by SLD-resolution. Similarly, TEMPLOG programs are collections of temporal Horn clauses and we interpret them with temporal SLD-resolution, a restricted form of a general temporal resolution method.
Martín Abadi, Zohar Manna
J. Symb. Comput.1
1989 The Power of Temporal Proofs
abstract
Some methods for reasoning about concurrent programs and hardware devices have been based on proof systems for temporal logic. Unfortunately, all effective proof systems for temporal logic are incomplete for the standard semantics, in the sense that some formulas hold in every intended model but cannot be proved. We evaluate and compare the power of several proof systems for temporal logic. Specifically, we relate temporal systems to classical systems with explicit time parameters. A typical temporal system turns out to be incomplete in a strong sense; we exhibit a short, valid formula it fails to prove. We suggest the addition of new rules to define auxiliary predicates. With these rules, we obtain nonstandard soundness and completeness results. In particular, one of the simple temporal systems we describe is as powerful as Peano Arithmetic.
Martín Abadi
Theor. Comput. Sci.1
1988 On Generating Solved Instances of Computational Problems
Martín Abadi, Eric Allender, Andrei Z. Broder, Joan Feigenbaum, Lane A. Hemaspaandra
CRYPTO1
1988 The Existence of Refinement Mappings
abstract
Refinement mappings are used to prove that a lower-level specification correctly implements a higher-level one. The authors consider specifications consisting of a state machine (which may be infinite-state) that specifies safety requirements and an arbitrary supplementary property that specifies liveness requirements. A refinement mapping from a lower-level specification S/sub 1/ to higher-level one S/sub 2/ is a mapping from S/sub 1/'s state space to S/sub 2/'s state space that maps steps of S/sub 1/'s state machine steps to steps of S/sub 2/'s state machine and maps behaviors allowed by S/sub 1/ to behaviors allowed by S/sub 2/. It is shown that under reasonable assumptions about the specifications, if S/sub 1/ implements S/sub 2/, then by adding auxiliary variables to S/sub 1/ one can guarantee the existence of a refinement mapping. This provides a completeness result for a practical hierarchical specification method.>
Martín Abadi, Leslie Lamport
LICS1
1988 A Simple Protocol for Secure Circuit Evaluation
Martín Abadi, Joan Feigenbaum
STACS1
1988 Authentication: A Practical Study in Belief and Action
Michael Burrows, Martín Abadi, Roger M. Needham
TARK2
1987 The Power of Temporal Proofs
Martín Abadi
LICS1
1987 On Hiding Information from an Oracle (Extended Abstract)
abstract
We consider the problem of computing with encrypted data. Player A wishes to know the value ƒ(x) for some x but lacks the power to compute it. Player B has the power to compute ƒ and is willing to send ƒ(y) to A if she sends him y, for any y. Informally, an encryption scheme for the problem ƒ is a method by which A, using her inferior resources, can transform the cleartext instance x into an encrypted instance y, obtain ƒ(y) from B, and infer ƒ(x) from ƒ(y) in such a way that B cannot infer x from y. When such an encryption scheme exists, we say that ƒ is encryptable.
Martín Abadi, Joan Feigenbaum, Joe Kilian
STOC1
1986 Modal Theorem Proving
Martín Abadi, Zohar Manna
CADE1
1986 A Timely Resolution
Martín Abadi, Zohar Manna
LICS1