VLDB 2026 Research / reviewers in the wild / expert
John C. Mitchell
dblp:m/JohnCMitchell
· DBLP profile ↗
159ranked-venue papers
34as first author
14since 2021 · last 2026
0000-0002-0024-860XORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Security and privacy · 62 · 4 first-author · 1 since 2021Theory of computation · 40 · 17 first-authorSoftware engineering, systems software and programming languages · 37 · 14 first-authorArtificial intelligence and machine learning · 10 · 5 since 2021Applied, interdisciplinary, general and emerging computing · 10 · 5 since 2021Human-computer interaction and ubiquitous computing · 9 · 7 since 2021Systems, architecture and hardware · 7 · 5 since 2021Databases, data management, data science and information retrieval · 4 · 1 first-author
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | ReVisor: A Reflective Design Tool for Instructional Designers to Improve Teacher Training Materials via AI DiscussionsabstractAssessing the real-world impact of instructional design requires nuanced, in-situ data, yet such data like classroom discourse defies systematic analysis due to its qualitative intricacies. We present ReVisor, a reflective tool that helps instructional designers iteratively refine training materials by (1) analyzing classroom transcripts, (2) identifying ambiguous or misaligned applications of pedagogical strategies via multi-agent LLM discussions, (3) generating concrete revision suggestions, and (4) providing simulated real-time feedback on edited materials. We evaluate ReVisor using a benchmark that treats agent disagreement as a proxy for ambiguity and a user study with instructional designers (n=10). We measure training material improvement by reduced ambiguity in AI classification, with unresolved agent disagreement indicating unclear pedagogical guidance. Results show that ReVisor supports data-grounded, logically structured revisions that better bridge theory and practice, and contributes a computational framework for integrating AI-driven reflection into the instructional design lifecycle. Jeongyeon Kim, Miroslav Suzara, John C. Mitchell |
CHI | 3 |
| 2026 | Protean: A Programmable Spectre DefenseabstractWe present the PROTEAN Spectre defense—the first to be altogether comprehensive, covering all side-channels and speculation; programmer-transparent, requiring no source modifications; and programmable, tailoring its hardware protections to software's security needs. Several Spectre defenses offer the first two features, but protect a hardware-defined subset of architectural state from transiently leaking. Meanwhile, many Spectrevulnerable programs process secrets in ways that such rigid protections cannot both performantly and fully secure. Protean overcomes this limitation through: (1) ProtISA, an ISA extension that allows software to tell hardware which architectural registers and memory bytes require protection from transiently leaking at each program point; (2) ProtCC, a compiler that automatically infers and programs ProtISA protections for vulnerable code with minimal user input; and (3) ProtDelay and ProtTrack, two alternative hardware mechanisms that performantly enforce software-defined ProtISA protections. By flexibly tailoring a hardware Spectre defense to a program's data protection needs, Protean significantly reduces the overhead of fully securing vulnerable programs. With ProtDelay/ProtTrack, it averages$0.27 \mathrm{x} / 0.18 \mathrm{x}$and$0.42 \mathrm{x} / 0.34 \mathrm{x}$of the runtime overhead of the best secure baseline for programs with and without mixed security needs, respectively, at lower/comparable hardware complexity. Nicholas Mosier, Hamed Nemati, John C. Mitchell, Caroline Trippel |
HPCA | 3 |
| 2025 | AI Web Agents Can Effectively Guide Lesson Design and Predict Student Outcomes
Sierra Wang, John C. Mitchell, Chris Piech |
AIED (2) | 2 |
| 2025 | The Effects of Chatbot Placement, Personification, and Functionality on Student Outcomes in a Global CS1 Course
Sierra Wang, Thomas Jefferson, Chris Piech, John C. Mitchell |
L@S | 4 |
| 2025 | Coding Pathfinder: A Platform for Creative, Self-Guided Mastery in ProgrammingabstractWe present Coding Pathfinder, a platform to help non-programmers learn to code for a specific purpose. This paper explores how we can scaffold generative AI to provide structure and ensure mastery in informal learning settings, introducing a new approach to coding education. In the current iteration of Pathfinder, a user describes the coding task that they are working on. After collecting some details and scoping the project, Pathfinder identifies the skills that the user will master upon successful completion of the project. It then assesses which of the skills our users already has, and designs a personalised learning journey. The guided journey consists of instructions, explanations, tasks and videos. We also incorporate a chat feature so users can ask questions and engage as if they are working with a tutor. Ishita Gupta, Maya Bridgman, Sierra Wang, John C. Mitchell |
SIGCSE (2) | 4 |
| 2024 | Position: TrustLLM: Trustworthiness in Large Language ModelsabstractLarge language models (LLMs) have gained considerable attention for their excellent natural language processing capabilities. Nonetheless, these LLMs present many challenges, particularly in the realm of trustworthiness. This paper introduces TrustLLM, a comprehensive study of trustworthiness in LLMs, including principles for different dimensions of trustworthiness, established benchmark, evaluation, and analysis of trustworthiness for mainstream LLMs, and discussion of open challenges and future directions. Specifically, we first propose a set of principles for trustworthy LLMs that span eight different dimensions. Based on these principles, we further establish a benchmark across six dimensions including truthfulness, safety, fairness, robustness, privacy, and machine ethics. We then present a study evaluating 16 mainstream LLMs in TrustLLM, consisting of over 30 datasets. Our findings firstly show that in general trustworthiness and capability (i.e., functional effectiveness) are positively related. Secondly, our observations reveal that proprietary LLMs generally outperform most open-source counterparts in terms of trustworthiness, raising concerns about the potential risks of widely accessible open-source LLMs. However, a few open-source LLMs come very close to proprietary ones, suggesting that open-source models can achieve high levels of trustworthiness without additional mechanisms like moderator, offering valuable insights for developers in this field. Thirdly, it is important to note that some LLMs may be overly calibrated towards exhibiting trustworthiness, to the extent that they compromise their utility by mistakenly treating benign prompts as harmful and consequently not responding. Besides these observations, we’ve uncovered key insights into the multifaceted trustworthiness in LLMs. We emphasize the importance of ensuring transparency not only in the models themselves but also in the technologies that underpin trustworthiness. We advocate that the establishment of an AI alliance between industry, academia, the open-source community to foster collaboration is imperative to advance the trustworthiness of LLMs. Yue Huang 0001, Lichao Sun 0001, Haoran Wang 0005, Siyuan Wu 0001, Qihui Zhang, Chujie Gao, Wenhan Lyu, Yixuan Zhang 0001, Xiner Li, Hanchi Sun, Zhengliang Liu, Yixin Liu 0002, Yijue Wang, Bertie Vidgen, Bhavya Kailkhura, Caiming Xiong, Chaowei Xiao, Chunyuan Li, Eric P. Xing, Furong Huang, Heng Ji 0001, Hongyi Wang 0001, Huan Zhang 0001, Huaxiu Yao, Manolis Kellis, Marinka Zitnik, Meng Jiang 0001, Mohit Bansal, James Zou 0001, Jian Pei 0001, Jianfeng Gao 0001, Jiawei Han 0001, Jieyu Zhao 0001, Jiliang Tang, Jindong Wang 0001, Joaquin Vanschoren, John C. Mitchell, Kai Shu, Kaidi Xu, Kai-Wei Chang 0001, Lifang He 0001, Lifu Huang, Michael Backes 0001, Neil Zhenqiang Gong, Philip S. Yu, Quanquan Gu, Ran Xu 0001, Rex Ying, Shuiwang Ji, Suman Jana, Tianlong Chen 0001, Tianming Liu 0001, Tianyi Zhou 0001, William Yang Wang, Xiang Li 0001, Xiangliang Zhang 0001, Xiao Wang 0012, Xing Xie 0001, Xuyu Wang, Yan Liu 0002, Yanfang Ye 0001, Yinzhi Cao, Yong Chen 0016, Yue Zhao 0016 |
ICML | 42 |
| 2024 | Math IDE: A Platform for Creating with MathabstractTo inspire student engagement in middle school math, we explore the possibility of using generative AI to enhance the creativity of math learning. We present the Math IDE, a math education environment in which students learn about math concepts by building artifacts. We aimed to create a platform in which students can engage with mathematical concepts, create an artifact that embodies the math that they are learning about, and practice their high-level specification skills. In the current iteration of the Math IDE, students can create custom web pages by describing and demonstrating understanding of the math that is involved in the web page. In this short overview, we describe our process and discuss several open questions regarding the design and application of this novel method of math education. Sierra Wang, John C. Mitchell, Nick Haber, Chris Piech |
SIGCSE (2) | 2 |
| 2024 | A Large Scale RCT on Effective Error Messages in CS1abstractIn this paper, we evaluate the most effective error message types through a large-scale randomized controlled trial conducted in an open-access, online introductory computer science course with 8,762 students from 146 countries. We assess existing error message enhancement strategies, as well as two novel approaches of our own: (1) generating error messages using OpenAI's GPT in real time and (2) constructing error messages that incorporate the course discussion forum. By examining students' direct responses to error messages, and their behavior throughout the course, we quantitatively evaluate the immediate and longer term efficacy of different error message types. We find that students using GPT generated error messages repeat an error 23.1% less often in the subsequent attempt, and resolve an error in 34.8% fewer additional attempts, compared to students using standard error messages. We also perform an analysis across various demographics to understand any disparities in the impact of different error message types. Our results find no significant difference in the effectiveness of GPT generated error messages for students from varying socioeconomic and demographic backgrounds. Our findings underscore GPT generated error messages as the most helpful error message type, especially as a universally effective intervention across demographics. Sierra Wang, John C. Mitchell, Chris Piech |
SIGCSE (1) | 2 |
| 2024 | Serberus: Protecting Cryptographic Code from Spectres at Compile-TimeabstractWe present Serberus, the first comprehensive mitigation for hardening constant-time (CT) code against Spectre attacks (involving the PHT, BTB, RSB, STL, and/or PSF speculation primitives) on existing hardware. Serberus is based on three insights. First, some hardware control-flow integrity (CFI) protections restrict transient control-flow to the extent that it may be comprehensively considered by software analyses. Second, conformance to the accepted CT code discipline permits two code patterns that are unsafe in the post-Spectre era. Third, once these code patterns are addressed, all Spectre leakage of secrets in CT programs can be attributed to one of four classes of taint primitives—instructions that can transiently assign a secret value to a publicly-typed register. We evaluate Serberus on cryptographic primitives in the OpenSSL, Libsodium, and Hacl* libraries. Serberus introduces 21.3% runtime overhead on average, compared to 24.9% for the next closest state-of-the-art software mitigation, which is less secure. Nicholas Mosier, Hamed Nemati, John C. Mitchell, Caroline Trippel |
SP | 3 |
| 2023 | Detecting the Reasons for Program Decomposition in CS1 and Evaluating Their ImpactabstractDecomposition is considered one of the four cornerstones of computational thinking, which is essential to software development [36]. It requires the ability to assess a problem at a high level, develop a strategy to combat it, and then design a solution. Our study focuses on the metacognitive aspect of decomposition. We try to understand the learner's thought process and, specifically, what makes the novice programmer decide to break down a function. Charis Charitsis, Chris Piech, John C. Mitchell |
SIGCSE (1) | 3 |
| 2022 | Function Names: Quantifying the Relationship Between Identifiers and Their Functionality to Improve ThemabstractWhen students first learn to program, they often focus on functionality: does a program work? In an era where software volume and complexity increase exponentially, it is equally important that they learn to write programs with style so that they are readable and extendable. Writing quality code starts with the building blocks for any program, its functions. A carefully chosen name is vital for program maintainability and manageability. The identifier is the most portable and concise way to summarize what the function does. What makes for the right choice? And can we automatically assess the quality of function names? Using natural language processing, we were able to create a probabilistic model to evaluate their clarity. Using functionality encodings, we attempt to learn the relationship between functions in different programs to improve their names. We analyzed a total of 5,400 programs tackling five novice programming tasks submitted by over 1,000 students in CS1. We developed a software system to automate labor-intensive tasks, detect poor function names and recommend replacements. Our findings suggest that less than 2.5% of name substitutions have an adverse outcome, and in most cases, more than 50% result in an improvement. Charis Charitsis, Chris Piech, John C. Mitchell |
L@S | 3 |
| 2022 | Using NLP to Quantify Program Decomposition in CS1abstractDecomposition is a problem-solving technique that is essential to software development. Nonetheless, it is perceived as the most challenging programming skill for learners to master. Researchers have studied decomposition in introductory programming courses through guided experiments, case studies, and surveys. We believe that the rapid advancements in scientific fields such as machine learning and natural language processing (NLP) opened up opportunities for more scalable approaches. Charis Charitsis, Chris Piech, John C. Mitchell |
L@S | 3 |
| 2022 | Feedback on Program Development Process for CS1 StudentsabstractIn introductory CS programming courses, student learning is often assessed on the basis of the submitted code. However, the final artifact fails to capture the problem-solving journey. Active learning occurs when a student stumbles upon conceptual unclarities, design dilemmas, algorithmic challenges. How can we shine light on hidden programming aspects to help teachers provide insightful feedback to learners? We developed a tool to analyze programs snapshots from the entire development process, visualize their evolution over time, filter syntax errors, and detect complex code. The tool is equipped with an editor to explore different ideas and execute the program on the fly, especially in one-on-one feedback sessions with the learner. We are eager to share our work with researchers and educators in other institutions and look forward to their feedback and ideas for improvement. Charis Charitsis, Chris Piech, John C. Mitchell |
SIGCSE (2) | 3 |
| 2021 | Assessing Function Names and Quantifying the Relationship Between Identifiers and Their Functionality to Improve ThemabstractWhen students first learn to program, they often focus on functionality: does a program work? In an era where software volume and complexity increase exponentially, it is equally important that they learn to write code with style. Quality code starts with the building blocks for any program, its functions. A carefully chosen name is vital for program maintainability and manageability. The identifier is the most portable and concise way to summarize what the function does. What makes for the right choice? And can we automatically assess the quality of function names? Using natural language processing, we were able to create a probabilistic model to evaluate their clarity. Using functionality encodings, we attempt to learn the relationship between functions in different programs to improve their names. We analyzed a total of 3,900 programs tackling three novice programming tasks submitted by 1,300 students in CS1. Charis Charitsis, Chris Piech, John C. Mitchell |
L@S | 3 |
| 2020 | Reinforcement Learning for the Adaptive Scheduling of Educational ActivitiesabstractAdaptive instruction for online education can increase learning gains and decrease the work required of learners, instructors, and course designers. Reinforcement Learning (RL) is a promising tool for developing instructional policies, as RL models can learn complex relationships between course activities, learner actions, and educational outcomes. This paper demonstrates the first RL model to schedule educational activities in real time for a large online course through active learning. Our model learns to assign a sequence of course activities while maximizing learning gains and minimizing the number of items assigned. Using a controlled experiment with over 1,000 learners, we investigate how this scheduling policy affects learning gains, dropout rates, and qualitative learner feedback. We show that our model produces better learning gains using fewer educational activities than a linear assignment condition, and produces similar learning gains to a self-directed condition using fewer educational activities and with lower dropout rates. Jonathan Bassen, Bharathan Balaji, Michael Schaarschmidt, Candace Thille, Jay Painter, Dawn Zimmaro, Alex Games, Ethan Fast, John C. Mitchell |
CHI | 9 |
| 2019 | Automated Analysis of Cryptographic Assumptions in Generic Group Models
Gilles Barthe, Edvard Fagerholm, Dario Fiore 0001, John C. Mitchell, Andre Scedrov |
J. Cryptol. | 4 |
| 2018 | OARS: exploring instructor analytics for online learningabstractLearning analytics systems have the potential to bring enormous value to online education. Unfortunately, many instructors and platforms do not adequately leverage learning analytics in their courses today. In this paper, we report on the value of these systems from the perspective of course instructors. We study these ideas through OARS, a modular and real-time learning analytics system that we deployed across more than ten online courses with tens of thousands of learners. We leverage this system as a starting point for semi-structured interviews with a diverse set of instructors. Our study suggests new design goals for learning analytics systems, the importance of real-time analytics to many instructors, and the value of flexibility in data selection and aggregation for an instructor when working with an analytics system. Jonathan Bassen, Iris Howley, Ethan Fast, John C. Mitchell, Candace Thille |
L@S | 4 |
| 2017 | Hails: Protecting data privacy in untrusted web applicationsabstractMany modern web-platforms are no longer written by a single entity, such as a company or individual, but consist of a trusted core that can be extended by untrusted third-party authors. Examples of this approach include Facebook, Yammer, and Salesforce. Unfortunately, users running third-party “app s” have little control over what the apps can do with their private data. Today’s platforms offer only ad hoc constraints on app behavior, leaving users an unfortunate trade-off between convenience and privacy. A principled approach to code confinement could allow the integration of untrusted code while enforcing flexible, end-to-end policies on data access. This paper presents a new framework, Hails, for building web platforms, that adds mandatory access control and a declarative policy language to the familiar MVC architecture. We demonstrate the flexibility of Hails by building several platforms, including GitStar, a code-hosting website that enforces robust privacy policies on user data even while allowing untrusted apps to deliver extended features to users. Daniel B. Giffin, Amit Levy 0001, Deian Stefan, David Terei, David Mazières, John C. Mitchell, Alejandro Russo |
J. Comput. Secur. | 6 |
| 2017 | Flexible dynamic information flow control in the presence of exceptionsabstractAbstract We describe a language-based, dynamic information flow control (IFC) system called LIO. Our system presents a new design point for IFC, influenced by the challenge of implementing IFC as a Haskell library, as opposed to the more typical approach of modifying the language runtime system. In particular, we take a coarse-grained, floating-label approach, previously used by IFC Operating Systems, and associate a single, mutable label—the current label —with all the data in a computation's context. This label is always raised to reflect the reading of sensitive information and it is used to restrict the underlying computation's effects. To preserve the flexibility of fine-grained systems, LIO also provides programmers with a means for associating an explicit label with a piece of data. Interestingly, these labeled values can be used to encapsulate the results of sensitive computations which would otherwise lead to the creeping of the current label. Unlike other language-based systems, LIO also bounds the current label with a current clearance , providing a form of discretionary access control that LIO programs can use to deal with covert channels. Moreover, LIO provides programmers with mutable references and exceptions. The latter, exceptions, are used in LIO to encode and recover from monitor failures, all while preserving data confidentiality and integrity—this addresses a longstanding concern that dynamic IFC is inherently prone to information leakage due to monitor failure. Deian Stefan, David Mazières, John C. Mitchell, Alejandro Russo |
J. Funct. Program. | 3 |
| 2016 | Privacy-Preserving Shortest Path Computation
David J. Wu 0001, Joe Zimmerman, Jérémy Planul, John C. Mitchell |
NDSS | 4 |
| 2015 | Fast Algorithms for Learning with Long N-grams via Suffix Tree Based Matrix Multiplication
Hristo S. Paskov, John C. Mitchell, Trevor J. Hastie |
UAI | 2 |
| 2014 | An Efficient Algorithm for Large Scale Compressive Feature LearningabstractThis paper focuses on large-scale unsupervised feature selection from text. We expand upon the recently proposed Compressive Feature Learning (CFL) framework, a method that uses dictionary-based compression to select a K-gram representation for a document corpus. We show that CFL is NP-Complete and provide a novel and efficient approximation algorithm based on a homotopy that transforms a convex relaxation of CFL into the original problem. Our algorithm allows CFL to scale to corpuses comprised of millions of documents because each step is linear in the corpus length and highly parallelizable. We use it to extract features from the BeerAdvocate dataset, a corpus of over 1.5 million beer reviews spanning 10 years. CFL uses two orders of magnitude fewer features than the full trigram space. It beats a standard unigram model in a number of prediction tasks and achieves nearly twice the accuracy on an author identification task. Hristo S. Paskov, John C. Mitchell, Trevor J. Hastie |
AISTATS | 2 |
| 2014 | Easy does it: more usable CAPTCHAsabstractWebsites present users with puzzles called CAPTCHAs to curb abuse caused by computer algorithms masquerading as people. While CAPTCHAs are generally effective at stopping abuse, they might impair website usability if they are not properly designed. In this paper we describe how we designed two new CAPTCHA schemes for Google that focus on maximizing usability. We began by running an evaluation on Amazon Mechanical Turk with over 27,000 respondents to test the usability of different feature combinations. Then we studied user preferences using Google's consumer survey infrastructure. Finally, drawing on the insights gleaned during those studies, we tested our new captcha schemes first on Mechanical Turk and then on a fraction of production traffic. The resulting scheme is now an integral part of our production system and is served to millions of users. Our scheme achieved a 95.3% human accuracy, a 6.7. Elie Bursztein, Angelique Moscicki, Celine Fabry, Steven Bethard, John C. Mitchell, Daniel Jurafsky |
CHI | 5 |
| 2014 | Automated Analysis of Cryptographic Assumptions in Generic Group Models
Gilles Barthe, Edvard Fagerholm, Dario Fiore 0001, John C. Mitchell, Andre Scedrov |
CRYPTO (1) | 4 |
| 2014 | Data-Oblivious Data StructuresabstractAn algorithm is called data-oblivious if its control flow and memory access pattern do not depend on its input data. Data-oblivious algorithms play a significant role in secure cloud computing, since programs that are run on secret data—as in fully homomorphic encryption or secure multi-party computation—must be data-oblivious. In this paper, we formalize three definitions of data-obliviousness that have appeared implicitly in the literature, explore their implications, and show separations. We observe that data-oblivious algorithms often compose well when viewed as data structures. Using this approach, we construct data-oblivious stacks, queues, and priority queues that are considerably simpler than existing constructions, as well as improving constan factors. We also establish a new upper bound for oblivious data compaction, and use this result to show that an "offline" variant of the Oblivious RAM problem can be solved with O(log(n).log(log(n))) expected amortized time per operation - as compared with O(log^2(n)/log(log(n))), the best known upper bound for the standard online formulation. John C. Mitchell, Joe Zimmerman |
STACS | 1 |
| 2013 | Oblivious Program Execution and Path-Sensitive Non-interferenceabstractVarious cryptographic constructions allow an untrusted cloud server to compute over encrypted data, without decrypting the data. However, this prevents the cloud server from branching according to encrypted values. We study the constraints imposed by this important scenario by formulating and solving an equivalent information-flow problem, based on assuming an adversary could observe the control path. We develop a type system that prevents control-path information leaks, prove soundness, and compare with traditional implicit information-flow. Because simply preventing programs that leak information severely restricts the language, we define alternate (and easily implemented) semantics that execute multiple paths and combine the results using data operations. This produces a termination problem which we address with a more refined type system that characterizes a useful class of obliviously executable programs. We prove fundamental results about this language, semantics, and type system and conclude by comparing with traditional timing-based information-flow. Jérémy Planul, John C. Mitchell |
CSF | 2 |
| 2013 | Toward Principled Browser Security
Edward Z. Yang, Deian Stefan, John C. Mitchell, David Mazières, Petr Marchenko, Brad Karp |
HotOS | 3 |
| 2013 | Compressive Feature LearningabstractThis paper addresses the problem of unsupervised feature learning for text data. Our method is grounded in the principle of minimum description length and uses a dictionary-based compression scheme to extract a succinct feature set. Specifically, our method finds a set of word $k$-grams that minimizes the cost of reconstructing the text losslessly. We formulate document compression as a binary optimization task and show how to solve it approximately via a sequence of reweighted linear programs that are efficient to solve and parallelizable. As our method is unsupervised, features may be extracted once and subsequently used in a variety of tasks. We demonstrate the performance of these features over a range of scenarios including unsupervised exploratory analysis and supervised text categorization. Our compressed feature space is two orders of magnitude smaller than the full $k$-gram space and matches the text categorization accuracy achieved in the full feature space. This dimensionality reduction not only results in faster training times, but it can also help elucidate structure in unsupervised learning tasks and reduce the amount of training data necessary for supervised learning. Hristo S. Paskov, Robert West 0001, John C. Mitchell, Trevor J. Hastie |
NIPS | 3 |
| 2012 | Information-Flow Control for Programming on Encrypted DataabstractUsing homomorphic encryption and secure multiparty computation, cloud servers may perform regularly structured computation on encrypted data, without access to decryption keys. However, prior approaches for programming on encrypted data involve restrictive models such as boolean circuits, or standard languages that do not guarantee secure execution of all expressible programs. We present an expressive core language for secure cloud computing, with primitive types, conditionals, standard functional features, mutable state, and a secrecy preserving form of general recursion. This language, which uses an augmented information-flow type system to prevent control-flow leakage, allows programs to be developed and tested using conventional means, then exported to a variety of secure cloud execution platforms, dramatically reducing the amount of specialized knowledge needed to write secure code. We present a Haskell-based implementation and prove that cloud implementations based on secret sharing, homomorphic encryption, or other alternatives satisfying our general definition meet precise security requirements. John C. Mitchell, Rahul Sharma 0001, Deian Stefan, Joe Zimmerman |
CSF | 1 |
| 2012 | Addressing covert termination and timing channels in concurrent information flow systemsabstractWhen termination of a program is observable by an adversary, confidential information may be leaked by terminating accordingly. While this termination covert channel has limited bandwidth for sequential programs, it is a more dangerous source of information leakage in concurrent settings. We address concurrent termination and timing channels by presenting a dynamic information-flow control system that mitigates and eliminates these channels while allowing termination and timing to depend on secret values. Intuitively, we leverage concurrency by placing such potentially sensitive actions in separate threads. While termination and timing of these threads may expose secret values, our system requires any thread observing these properties to raise its information-flow label accordingly, preventing leaks to lower-labeled contexts. We implement this approach in a Haskell library and demonstrate its applicability by building a web server that uses information-flow control to restrict untrusted web applications. Deian Stefan, Alejandro Russo, Pablo Buiras, Amit Levy 0001, John C. Mitchell, David Mazières |
ICFP | 5 |
| 2012 | Hails: Protecting Data Privacy in Untrusted Web Applications
Daniel B. Giffin, Amit Levy 0001, Deian Stefan, David Terei, David Mazières, John C. Mitchell, Alejandro Russo |
OSDI | 6 |
| 2012 | Third-Party Web Tracking: Policy and TechnologyabstractIn the early days of the web, content was designed and hosted by a single person, group, or organization. No longer. Webpages are increasingly composed of content from myriad unrelated "third-party" websites in the business of advertising, analytics, social networking, and more. Third-party services have tremendous value: they support free content and facilitate web innovation. But third-party services come at a privacy cost: researchers, civil society organizations, and policymakers have increasingly called attention to how third parties can track a user's browsing activities across websites. This paper surveys the current policy debate surrounding third-party web tracking and explains the relevant technology. It also presents the FourthParty web measurement platform and studies we have conducted with it. Our aim is to inform researchers with essential background and tools for contributing to public understanding and policy debates about web tracking. Jonathan R. Mayer, John C. Mitchell |
IEEE Symposium on Security and Privacy | 2 |
| 2012 | SessionJuggler: secure web login from an untrusted terminal using session hijackingabstractWe use modern features of web browsers to develop a secure login system from an untrusted terminal. The system, called Session Juggler, requires no server-side changes and no special software on the terminal beyond a modern web browser. This important property makes adoption much easier than with previous proposals. With Session Juggler users never enter their long term credential on the untrusted terminal. Instead, users log in to a web site using a smartphone app and then transfer the entire session, including cookies and all other session state, to the untrusted terminal. We show that Session Juggler works on all the Alexa top 100 sites except eight. Of those eight, five failures were due to the site enforcing IP session binding. We also show that Session Juggler works flawlessly with Facebook connect. Beyond login, Session Juggler also provides a secure logout mechanism where the trusted phone is used to kill the session. To validate the session juggling concept we conducted a number of web site surveys that are of independent interest. First, we survey how web sites bind a session token to a specific device and show that most use fairly basic techniques that are easily defeated. Second, we survey how web sites handle logout and show that many popular sites surprisingly do not properly handle logout requests. Elie Bursztein, Chinmay Soman, Dan Boneh, John C. Mitchell |
WWW | 4 |
| 2012 | Privacy and Cybersecurity: The Next 100 YearsabstractThe past and the future of privacy and cybersecurity are addressed from four perspectives, by different authors: theory and algorithms, technology, policy, and economics. Each author considers the role of the threat from the corresponding perspective, and each adopts an individual tone, ranging from a relatively serious look at the prospects for improvement in underlying theory and algorithms to more lighthearted considerations of the unpredictable futures of policy and economics. Carl E. Landwehr, Dan Boneh, John C. Mitchell, Steven M. Bellovin, Susan Landau 0001, Michael E. Lesk |
Proc. IEEE | 3 |
| 2012 | A Learning-Based Approach to Reactive SecurityabstractDespite the conventional wisdom that proactive security is superior to reactive security, we show that reactive security can be competitive with proactive security as long as the reactive defender learns from past attacks instead of myopically overreacting to the last attack. Our game-theoretic model follows common practice in the security literature by making worst case assumptions about the attacker: we grant the attacker complete knowledge of the defender's strategy and do not require the attacker to act rationally. In this model, we bound the competitive ratio between a reactive defense algorithm (which is inspired by online learning theory) and the best fixed proactive defense. Additionally, we show that, unlike proactive defenses, this reactive strategy is robust to a lack of information about the attacker's incentives and knowledge. Adam Barth, Benjamin I. P. Rubinstein, Mukund Sundararajan, John C. Mitchell, Dawn Song, Peter L. Bartlett |
IEEE Trans. Dependable Secur. Comput. | 4 |
| 2011 | Text-based CAPTCHA strengths and weaknessesabstractWe carry out a systematic study of existing visual CAPTCHAs based on distorted characters that are augmented with anti-segmentation techniques. Applying a systematic evaluation methodology to 15 current CAPTCHA schemes from popular web sites, we find that 13 are vulnerable to automated attacks. Based on this evaluation, we identify a series of recommendations for CAPTCHA designers and attackers, and possible future directions for producing more reliable human/computer distinguishers. Elie Bursztein, Matthieu Martin, John C. Mitchell |
CCS | 3 |
| 2011 | Reclaiming the Blogosphere, TalkBack: A Secure LinkBack Protocol for Weblogs
Elie Bursztein, Baptiste Gourdin, John C. Mitchell |
ESORICS | 3 |
| 2011 | A Domain-Specific Language for Computing on Encrypted Data (Invited Talk)abstractIn cloud computing, a client may request computation on confidential data that is sent to untrusted servers. While homomorphic encryption and secure multiparty computation provide building blocks for secure computation, software must be properly structured to preserve confidentiality. Using a general definition of secure execution platform, we propose a single Haskell-based domain-specific language for cryptographic cloud computing and prove correctness and confidentiality for two representative and distinctly different implementations of the same programming language. The secret sharing execution platform provides information-theoretic security against colluding servers. The homomorphic encryption execution platform requires only one server, but has limited efficiency, and provides secrecy against a computationally-bounded adversary. Experiments with our implementation suggest promising computational feasibility, as cryptography improves, and show how code can be developed uniformly for a variety of secure cloud platforms, without explicitly programming separate clients and servers. Alex Bain, John C. Mitchell, Rahul Sharma 0001, Deian Stefan, Joe Zimmerman |
FSTTCS | 2 |
| 2011 | Flexible dynamic information flow control in HaskellabstractWe describe a new, dynamic, floating-label approach to language-based information flow control, and present an implementation in Haskell. A labeled IO monad, LIO, keeps track of a current label and permits restricted access to IO functionality, while ensuring that the current label exceeds the labels of all data observed and restricts what can be modified. Unlike other language-based work, LIO also bounds the current label with a current clearance that provides a form of discretionary access control. In addition, programs may encapsulate and pass around the results of computations with different labels. We give precise semantics and prove confidentiality and integrity properties of the system. Deian Stefan, Alejandro Russo, John C. Mitchell, David Mazières |
Haskell | 3 |
| 2011 | Program Analysis for Web Security
John C. Mitchell |
SAS | 1 |
| 2011 | The Failure of Noise-Based Non-continuous Audio CaptchasabstractCAPTCHAs, which are automated tests intended to distinguish humans from programs, are used on many web sites to prevent bot-based account creation and spam. To avoid imposing undue user friction, CAPTCHAs must be easy for humans and difficult for machines. However, the scientific basis for successful CAPTCHA design is still emerging. This paper examines the widely used class of audio CAPTCHAs based on distorting non-continuous speech with certain classes of noise and demonstrates that virtually all current schemes, including ones from Microsoft, Yahoo, and eBay, are easily broken. More generally, we describe a set of fundamental techniques, packaged together in our Decaptcha system, that effectively defeat a wide class of audio CAPTCHAs based on non-continuous speech. Decaptcha's performance on actual observed and synthetic CAPTCHAs indicates that such speech CAPTCHAs are inherently weak and, because of the importance of audio for various classes of users, alternative audio CAPTCHAs must be developed. Elie Bursztein, Romain Beauxis, Hristo S. Paskov, Daniele Perito, Celine Fabry, John C. Mitchell |
IEEE Symposium on Security and Privacy | 6 |
| 2011 | Automated Analysis of Security-Critical JavaScript APIsabstractJavaScript is widely used to provide client-side functionality in Web applications. To provide services ranging from maps to advertisements, Web applications may incorporate untrusted JavaScript code from third parties. The trusted portion of each application may then expose an API to untrusted code, interposing a reference monitor that mediates access to security-critical resources. However, a JavaScript reference monitor can only be effective if it cannot be circumvented through programming tricks or programming language idiosyncrasies. In order to verify complete mediation of critical resources for applications of interest, we define the semantics of a restricted version of JavaScript devised by the ECMA Standards committee for isolation purposes, and develop and test an automated tool that can soundly establish that a given API cannot be circumvented or subverted. Our tool reveals a previously-undiscovered vulnerability in the widely-examined Yahoo! AD Safe filter and verifies confinement of the repaired filter and other examples from the Object-Capability literature. Ankur Taly, Úlfar Erlingsson, John C. Mitchell, Mark S. Miller, Jasvir Nagra |
IEEE Symposium on Security and Privacy | 3 |
| 2011 | A Symbolic Logic with Exact Bounds for Cryptographic Protocols
John C. Mitchell |
WoLLIC | 1 |
| 2010 | Towards a Formal Foundation of Web SecurityabstractWe propose a formal model of web security based on an abstraction of the web platform and use this model to analyze the security of several sample web mechanisms and applications. We identify three distinct threat models that can be used to analyze web applications, ranging from a web attacker who controls malicious web sites and clients, to stronger attackers who can control the network and/or leverage sites designed to display user-supplied content. We propose two broadly applicable security goals and study five security mechanisms. In our case studies, which include HTML5 forms, Referer validation, and a single sign-on solution, we use a SAT-based model-checking tool to find two previously known vulnerabilities and three new vulnerabilities. Our case study of a Kerberos-based single sign-on system illustrates the differences between a secure network protocol using custom client software and a similar but vulnerable web protocol that uses cookies, redirects, and embedded links instead. Devdatta Akhawe, Adam Barth, Peifung E. Lam, John C. Mitchell, Dawn Song |
CSF | 4 |
| 2010 | A Security Evaluation of DNSSEC with NSEC3
Jason Bau, John C. Mitchell |
NDSS | 2 |
| 2010 | State of the Art: Automated Black-Box Web Application Vulnerability TestingabstractBlack-box web application vulnerability scanners are automated tools that probe web applications for security vulnerabilities. In order to assess the current state of the art, we obtained access to eight leading tools and carried out a study of: (i) the class of vulnerabilities tested by these scanners, (ii) their effectiveness against target vulnerabilities, and (iii) the relevance of the target vulnerabilities to vulnerabilities found in the wild. To conduct our study we used a custom web application vulnerable to known and projected vulnerabilities, and previous versions of widely used web applications containing known vulnerabilities. Our results show the promise and effectiveness of automated tools, as a group, and also some limitations. In particular, "stored" forms of Cross Site Scripting (XSS) and SQL Injection (SQLI) vulnerabilities are not currently found by many tools. Because our goal is to assess the potential of future research, not to evaluate specific vendors, we do not report comparative data or make any recommendations about purchase of specific tools. Jason Bau, Elie Bursztein, Divij Gupta, John C. Mitchell |
IEEE Symposium on Security and Privacy | 4 |
| 2010 | How Good Are Humans at Solving CAPTCHAs? A Large Scale EvaluationabstractCaptchas are designed to be easy for humans but hard for machines. However, most recent research has focused only on making them hard for machines. In this paper, we present what is to the best of our knowledge the first large scale evaluation of captchas from the human perspective, with the goal of assessing how much friction captchas present to the average user. For the purpose of this study we have asked workers from Amazon's Mechanical Turk and an underground captchabreaking service to solve more than 318 000 captchas issued from the 21 most popular captcha schemes (13 images schemes and 8 audio scheme). Analysis of the resulting data reveals that captchas are often difficult for humans, with audio captchas being particularly problematic. We also find some demographic trends indicating, for example, that non-native speakers of English are slower in general and less accurate on English-centric captcha schemes. Evidence from a week's worth of eBay captchas (14,000,000 samples) suggests that the solving accuracies found in our study are close to real-world values, and that improving audio captchas should become a priority, as nearly 1% of all captchas are delivered as audio rather than images. Finally our study also reveals that it is more effective for an attacker to use Mechanical Turk to solve captchas than an underground service. Elie Bursztein, Steven Bethard, Celine Fabry, John C. Mitchell, Daniel Jurafsky |
IEEE Symposium on Security and Privacy | 4 |
| 2010 | Object Capabilities and Isolation of Untrusted Web ApplicationsabstractA growing number of current web sites combine active content (applications) from untrusted sources, as in so-called mashups. The object-capability model provides an appealing approach for isolating untrusted content: if separate applications are provided disjoint capabilities, a sound object capability framework should prevent untrusted applications from interfering with each other, without preventing interaction with the user or the hosting page. In developing language-based foundations for isolation proofs based on object-capability concepts, we identify a more general notion of authority safety that also implies resource isolation. After proving that capability safety implies authority safety, we show the applicability of our framework for a specific class of mashups. In addition to proving that a JavaScript subset based on Google Caja is capability safe, we prove that a more expressive subset of JavaScript is authority safe, even though it is not based on the object-capability model. Sergio Maffeis, John C. Mitchell, Ankur Taly |
IEEE Symposium on Security and Privacy | 2 |
| 2010 | Inductive trace properties for computational securityabstractProtocol authentication properties are generally trace-based, meaning that authentication holds for the protocol if authentication holds for individual traces (runs of the protocol and adversary). Computational secrecy conditions, on the other hand, often are not trace based: the ability to computa tionally distinguish a system that transmits a secret from one that does not is measured by overall success on the set of all traces of each system. Non-trace-based properties present a challenge for inductive or compositional methods: induction is a natural way of reasoning about traces of a system, but it does not appear directly applicable to non-trace properties. We therefore investigate the semantic connection between trace properties that could be established by induction and non-trace-based security requirements. Specifically, we prove that a certain trace property implies computational secrecy and authentication properties, assuming the encryption scheme provides chosen ciphertext security and ciphertext integrity. We also prove a similar theorem for computational secrecy assuming Decisional Diffie–Hellman and a chosen plaintext secure encryption scheme. Arnab Roy 0001, Anupam Datta, Ante Derek, John C. Mitchell |
J. Comput. Secur. | 4 |
| 2009 | Using Strategy Objectives for Network Security Analysis
Elie Bursztein, John C. Mitchell |
Inscrypt | 2 |
| 2009 | Isolating JavaScript with Filters, Rewriting, and Wrappers
Sergio Maffeis, John C. Mitchell, Ankur Taly |
ESORICS | 2 |
| 2009 | A Formalization of HIPAA for a Medical Messaging System
Peifung E. Lam, John C. Mitchell, Sharada Sundaram |
TrustBus | 2 |
| 2008 | Analysis of EAP-GPSK Authentication Protocol
John C. Mitchell, Arnab Roy 0001, Paul D. Rowe, Andre Scedrov |
ACNS | 1 |
| 2008 | An Operational Semantics for JavaScript
Sergio Maffeis, John C. Mitchell, Ankur Taly |
APLAS | 2 |
| 2008 | Robust defenses for cross-site request forgeryabstractCross-Site Request Forgery (CSRF) is a widely exploited web site vulnerability. In this paper, we present a new variation on CSRF attacks, login CSRF, in which the attacker forges a cross-site request to the login form, logging the victim into the honest web site as the attacker. The severity of a login CSRF vulnerability varies by site, but it can be as severe as a cross-site scripting vulnerability. We detail three major CSRF defense techniques and find shortcomings with each technique. Although the HTTP Referer header could provide an effective defense, our experimental observation of 283,945 advertisement impressions indicates that the header is widely blocked at the network layer due to privacy concerns. Our observations do suggest, however, that the header can be used today as a reliable CSRF defense over HTTPS, making it particularly well-suited for defending against login CSRF. For the long term, we propose that browsers implement the Origin header, which provides the security benefits of the Referer header while responding to privacy concerns. Adam Barth, Collin Jackson, John C. Mitchell |
CCS | 3 |
| 2008 | A Layered Architecture for Detecting Malicious Behaviors
Lorenzo Martignoni, Elizabeth Stinson, Matt Fredrikson, Somesh Jha, John C. Mitchell |
RAID | 5 |
| 2008 | Securing Frame Communication in Browsers
Adam Barth, Collin Jackson, John C. Mitchell |
USENIX Security Symposium | 3 |
| 2008 | On the Relationships between Notions of Simulation-Based Security
Ralf Küsters, Anupam Datta, John C. Mitchell, Ajith Ramanathan |
J. Cryptol. | 3 |
| 2007 | Privacy and Utility in Business ProcessesabstractWe propose an abstract model of business processes for the purpose of (i) evaluating privacy policy in light of the goals of the process and (ii) developing automated support for privacy policy compliance and audit. In our model, agents that send and receive tagged personal information are assigned organizational roles and responsibilities. We present approaches and algorithms for determining whether a business process design simultaneously achieves privacy and the goals of the organization (utility). The model also allows us to develop a notion of minimal exposure of personal information, for a given process. We investigate the problem of auditing with inexact information and develop methods to identify a set of potentially culpable individuals when privacy is breached. The audit methods draw on traditional causality concepts to reduce the effort needed to search audit logs for irresponsible actions. Adam Barth, John C. Mitchell, Anupam Datta, Sharada Sundaram |
CSF | 2 |
| 2007 | Characterizing Bots' Remote Control Behavior
Elizabeth Stinson, John C. Mitchell |
DIMVA | 2 |
| 2007 | Inductive Proofs of Computational Secrecy
Arnab Roy 0001, Anupam Datta, Ante Derek, John C. Mitchell |
ESORICS | 4 |
| 2007 | Transaction Generators: Root Kits for Web
Collin Jackson, Dan Boneh, John C. Mitchell |
HotSec | 3 |
| 2006 | Computationally Sound Compositional Logic for Key Exchange ProtocolsabstractWe develop a compositional method for proving cryptographically sound security properties of key exchange protocols, based on a symbolic logic that is interpreted over conventional runs of a protocol against a probabilistic polynomial-time attacker. Since reasoning about an unbounded number of runs of a protocol involves induction-like arguments about properties preserved by each run, we formulate a specification of secure key exchange that is closed under general composition with steps that use the key We present formal proof rules based on this game-based condition, and prove that the proof rules are sound over a computational semantics. The proof system is used to establish security of a standard protocol in the computational model Anupam Datta, Ante Derek, John C. Mitchell, Bogdan Warinschi |
CSFW | 3 |
| 2006 | Managing Digital Rights using Linear LogicabstractDigital music players protect songs by enforcing licenses that convey specific rights for individual songs or groups of songs. For licenses specified in industry, we show that deciding whether a license authorizes a sequence of actions is NP-complete, with a restricted version of the problem solvable efficiently using a reduction to maximum network flow. The authorization algorithm used in industry is online, deciding which rights to exercise as actions occur, but we show that all online algorithms are necessarily non-monotonic: each allows actions under one license that it does not allow under a more flexible license. In one approach to achieving monotonicity, we exhibit the unique maximal set of licenses on which there exists a monotonic online algorithm. This set of well-behaved licenses induces an approximation algorithm by replacing each license with a well-behaved license. In a second approach, we consider allowing the player to revise its past decisions about which rights to exercise while still ensuring compliance with the license. We propose an efficient algorithm based on linear logic, with linear negation used to revise past decisions. We prove our algorithm monotonic, live, and sound with respect to the semantics of licenses Adam Barth, John C. Mitchell |
LICS | 2 |
| 2006 | Privacy and Contextual Integrity: Framework and ApplicationsabstractContextual integrity is a conceptual framework for understanding privacy expectations and their implications developed in the literature on law, public policy, and political philosophy. We formalize some aspects of contextual integrity in a logical framework for expressing and reasoning about norms of transmission of personal information. In comparison with access control and privacy policy frameworks such as RBAC, EPAL, and P3P, these norms focus on who personal information is about, how it is transmitted, and past and future actions by both the subject and the users of the information. Norms can be positive or negative depending on whether they refer to actions that are allowed or disallowed. Our model is expressive enough to capture naturally many notions of privacy found in legislation, including those found in HIPAA, COPPA, and GLBA. A number of important problems regarding compliance with privacy norms, future requirements associated with specific actions, and relations between policies and legal standards reduce to standard decision procedures for temporal logic. Adam Barth, Anupam Datta, John C. Mitchell, Helen Nissenbaum |
S&P | 3 |
| 2006 | Games and the Impossibility of Realizable Ideal Functionality
Anupam Datta, Ante Derek, John C. Mitchell, Ajith Ramanathan, Andre Scedrov |
TCC | 3 |
| 2006 | Protecting browser state from web privacy attacksabstractThrough a variety of means, including a range of browser cache methods and inspecting the color of a visited hyperlink, client-side browser state can be exploited to track users against their wishes. This tracking is possible because persistent, client-side browser state is not properly partitioned on per-site basis in current browsers. We address this problem by refining the general notion of a "same-origin" policy and implementing two browser extensions that enforce this policy on the browser cache and visited links.We also analyze various degrees of cooperation between sites to track users, and show that even if long-term browser state is properly partitioned, it is still possible for sites to use modern web features to bounce users between sites and invisibly engage in cross-domain tracking of their visitors. Cooperative privacy attacks are an unavoidable consequence of all persistent browser state that affects the behavior of the browser, and disabling or frequently expiring this state is the only way to achieve true privacy against colluding parties. Collin Jackson, Andrew Bortz, Dan Boneh, John C. Mitchell |
WWW | 4 |
| 2006 | Compositional analysis of contract-signing protocols
Michael Backes 0001, Anupam Datta, Ante Derek, John C. Mitchell, Mathieu Turuani |
Theor. Comput. Sci. | 4 |
| 2006 | A probabilistic polynomial-time process calculus for the analysis of cryptographic protocols
John C. Mitchell, Ajith Ramanathan, Andre Scedrov, Vanessa Teague |
Theor. Comput. Sci. | 1 |
| 2005 | A modular correctness proof of IEEE 802.11i and TLSabstractThe IEEE 802.11i wireless networking protocol provides mutual authentication between a network access point and user devices prior to user connectivity. The protocol consists of several parts, including an 802.1X authentication phase using TLS over EAP, the 4-Way Handshake to establish a fresh session key, and an optional Group Key Handshake for group communications. Motivated by previous vulnerabilities in related wireless protocols and changes in 802.11i to provide better security, we carry out a formal proof of correctness using a Protocol Composition Logic previously used for other protocols. The proof is modular, comprising a separate proof for each protocol section and providing insight into the networking environment in which each section can be reliably used. Further, the proof holds for a variety of failure recovery strategies and other implementation and configuration options. Since SSL/TLS is widely used apart from 802.11i, the security proof for SSL/TLS has independent interest. Mukund Sundararajan, Anupam Datta, Ante Derek, John C. Mitchell |
CCS | 5 |
| 2005 | Compositional Analysis of Contract Signing ProtocolsabstractWe develop a general method for reasoning about contract-signing protocols using a specialized protocol logic. The method is applied to prove properties of the Asokan-Shoup-Waidner and the Garay-Jacobson-MacKenzie protocols. Our method offers certain advantages over previous analysis techniques. First, it is compositional: the security guarantees are proved by combining the independent proofs for the three sub-protocols of which each protocol is comprised. Second, the formal proofs are carried out in a "template" form, which gives us a reusable proof that may be instantiated for the ASW and GJM protocols, as well as for other protocols with the same arrangement of messages. Third, the proofs follow the design intuition. In particular, in proving game-theoretic properties like fairness, we demonstrate that the specific strategy that the protocol designer had in mind works, instead of showing that one exists. Finally, our results hold even when an unbounded number of sessions are executed in parallel. Michael Backes 0001, Anupam Datta, Ante Derek, John C. Mitchell, Mathieu Turuani |
CSFW | 4 |
| 2005 | Probabilistic Polynomial-Time Semantics for a Protocol Security Logic
Anupam Datta, Ante Derek, John C. Mitchell, Vitaly Shmatikov, Mathieu Turuani |
ICALP | 3 |
| 2005 | Security Analysis and Improvements for IEEE 802.11i
John C. Mitchell |
NDSS | 2 |
| 2005 | Security analysis of network protocols: logical and computational methodsabstractSecurity analysis of network protocols is a rich scientific area with two different foundations, one based on logic and symbolic computation, and one based on computational complexity theory. The symbolic approach has led to formal logics and automated tools that have been used successfully in a number of case studies. The computational approach yields more insight into the strength and vulnerabilities of protocols, but it involves explicit reasoning about probability and computational complexity. Ideally, we would like to combine the advantages of both and develop a simple, automatable method that captures intuitive high-level reasoning principles, yet accurately reflects the subtleties of probabilistic polynomial-time computation. This talk will summarize some of the main lines of prior work and discuss ways to bridge the gap between symbolic and computational analysis. A significant portion of the talk will focus on a high-level protocol logic whose provable statements are correct when regarded as assertions about probabilistic polynomial-time protocol execution in the face of probabilistic polynomial-time attack. John C. Mitchell |
PPDP | 1 |
| 2005 | On the Relationships Between Notions of Simulation-Based Security
Anupam Datta, Ralf Küsters, John C. Mitchell, Ajith Ramanathan |
TCC | 3 |
| 2005 | Stronger Password Authentication Using Browser Extensions
Blake Ross, Collin Jackson, Nick Miyake, Dan Boneh, John C. Mitchell |
USENIX Security Symposium | 5 |
| 2005 | Beyond proof-of-compliance: security analysis in trust managementabstractTrust management is a form of distributed access control that allows one principal to delegate some access decisions to other principals. While the use of delegation greatly enhances flexibility and scalability, it may also reduce the control that a principal has over the resources it owns. Security analysis asks whether safety, availability, and other properties can be maintained while delegating to partially trusted principals. We show that in contrast to the undecidability of classical Harrison--Ruzzo--Ullman safety properties, our primary security properties are decidable. In particular, most security properties we study are decidable in polynomial time. The computational complexity of containment analysis, the most complicated security property we study, varies according to the expressive power of the trust management language. Ninghui Li 0001, John C. Mitchell, William H. Winsborough |
J. ACM | 2 |
| 2005 | A derivation system and compositional logic for security protocolsabstractMany authentication and key exchange protocols are built using an accepted set of standard concepts such as Diffie–Hellman key exchange, nonces to avoid replay, certificates from an accepted authority, and encrypted or signed messages. We propose a general framework for deriving security protocols from simple components, using composition, refinements, and transformations. As a case study, we examine the structure of a family of key exchange protocols that includes Station-To-Station (STS), ISO-9798-3, Just Fast Keying (JFK), IKE and related protocols, deriving all members of the family from two basic protocols. In order to associate formal proofs with protocol derivations, we extend our previous security protocol logic with preconditions, temporal assertions, composition rules, and several other improvements. Using the logic, which we prove is sound with respect to the standard symbolic model of protocol execution and attack (the “Dolev–Yao model”), the security properties of the standard signature based Challenge-Response protocol and the Diffie–Hellman key exchange protocol are established. The ISO-9798-3 protocol is then proved correct by composing the correctness proofs of these two simple protocols. Although our current formal logic is not sufficient to modularly prove security for all of our current protocol derivations, the derivation system provides a framework for further improvements. Anupam Datta, Ante Derek, John C. Mitchell, Dusko Pavlovic |
J. Comput. Secur. | 3 |
| 2004 | Securing Java RMI-Based Distributed ApplicationsabstractBoth Java RMI and Jini use a proxy-based architecture. In this architecture, a client interacts with a service through a proxy, which is code downloaded from a directory and installed on the client's machine. An attacker who controls the communication channels or the directory may compromise the confidentiality and integrity of the client and of the service. We present a security architecture that protects both clients and services in distributed proxy-based computing. In this architecture, the service registers a signed authentication proxy with the directory. The client, after downloading a signed authentication proxy from the directory, verifies the signature on the proxy, authenticates itself to the service through the proxy, and receives a dedicated session proxy for the service over a secure channel. We also describe a Java-based toolkit that implements the security architecture. This toolkit enables developers to add security to Java RMI-based applications with minimal implementation effort. Ninghui Li 0001, John C. Mitchell, Derrick Tong |
ACSAC | 2 |
| 2004 | Abstraction and Refinement in Protocol Derivation
Anupam Datta, Ante Derek, John C. Mitchell, Dusko Pavlovic |
CSFW | 3 |
| 2004 | Probabilistic Bisimulation and Equivalence for Security Analysis of Network Protocols
Ajith Ramanathan, John C. Mitchell, Andre Scedrov, Vanessa Teague |
FoSSaCS | 2 |
| 2004 | A Distributed High Assurance Reference Monitor
Ajay Chander, Drew Dean, John C. Mitchell |
ISC | 3 |
| 2004 | Client-Side Defense Against Web-Based Identity Theft
Neil Chou, Robert Ledesma, Yuka Teraguchi, John C. Mitchell |
NDSS | 4 |
| 2004 | Reconstructing Trust ManagementabstractWe present a trust management kernel that clearly separates authorization and structured distributed naming. Given an access request and supporting credentials, the kernel determines whether the request is authorized. We prove soundness and completeness of the authorization system without names and prove that naming is orthogonal to authorization in a precise sense. The orthogonality theorem gives us simple soundness and completeness proofs for the entire kernel. The kernel is formally verified in PVS, allowing for the automatic generation of a verified implementation of a reference monitor. By separating naming and authorization primitives, we arrive at a compositional model and avoid concepts such as “speaks-for” that have led to anomalies in logical characterizations of other trust management systems. Ajay Chander, Drew Dean, John C. Mitchell |
J. Comput. Secur. | 3 |
| 2004 | Multiset rewriting and the complexity of bounded security protocolsabstractWe formalize the Dolev–Yao model of security protocols, using a notation based on multiset rewriting with existentials. The goals are to provide a simple formal notation for describing security protocols, to formalize the assumptions of the Dolev–Yao model using this notation, and to analyze the complexity of the secrecy problem under various restrictions. We prove that, even for the case where we restrict the size of messages and the depth of message encryption, the secrecy problem is undecidable for the case of an unrestricted number of protocol roles and an unbounded number of new nonces. We also identify several decidable classes, including a DEXP-complete class when the number of nonces is restricted, and an NP-complete class when both the number of nonces and the number of roles is restricted. We point out a remaining open complexity problem, and discuss the implications these results have on the general topic of protocol analysis. Nancy A. Durgin, Patrick Lincoln, John C. Mitchell |
J. Comput. Secur. | 3 |
| 2003 | Contract Signing, Optimism, and Advantage
Rohit Chadha, John C. Mitchell, Andre Scedrov, Vitaly Shmatikov |
CONCUR | 2 |
| 2003 | Composition of Cryptographic Protocols in a Probabilistic Polynomial-Time Process Calculus
Paulo Mateus, John C. Mitchell, Andre Scedrov |
CONCUR | 2 |
| 2003 | A Derivation System for Security Protocols and its Logical FormalizationabstractMany authentication and key exchange protocols are built using an accepted set of standard concepts such as Diffie-Hellman key exchange, nonces to avoid replay, certificates from an accepted authority, and encrypted or signed messages. We introduce a basic framework for deriving security protocols from such simple components. As a case study, we examine the structure of a family of key exchange protocols that includes station-to-station (STS), ISO-9798-3, just fast keying (JFK), IKE and related protocols, deriving all members of the family from two basic protocols using a small set of refinements and protocol transformations. As initial steps toward associating logical derivations with protocol derivations, we extend a previous security protocol logic with preconditions and temporal assertions. Using this logic, we prove the security properties of the standard signature based challenge-response protocol and the Diffie-Hellman key exchange protocol. The ISO-9798-3 protocol is then proved correct by composing the correctness proofs of these two simple protocols. Anupam Datta, Ante Derek, John C. Mitchell, Dusko Pavlovic |
CSFW | 3 |
| 2003 | Understanding SPKI/SDSI Using First-Order LogicabstractSPKI/SDSI is a language for expressing distributed access control policy, derived from SPKI and SDSI. We provide a first-order logic (FOL) semantics for SDSI, and show that it has several advantages over previous semantics. For example, the FOL semantics is easily extended to additional policy concepts and gives meaning to a larger class of access control and other policy analysis queries. We prove that the FOL semantics is equivalent to the string rewriting semantics used by SDSI designers, for all queries associated with the rewriting semantics. We also provide a FOL semantics for SPKI/SDSI. This reveals some problems. For example, the standard proof procedure in RFC 2693 is semantically incomplete. In addition, as noted before by other authors, authorization tags in SPKI/SDSI are algorithmically problematic, making a complete proof procedure unlikely. We compare SPKI/SDSI with RT/sub 1//sup C/, which is a language in the RT role-based trust-management framework that can be viewed as an extension of SDSI. The constraint feature of /sub 1//sup C/, based on constraint datalog, provides an alternative mechanism that is expressively similar to SPKI/SDSI tags, semantically natural, and algorithmically tractable. Ninghui Li 0001, John C. Mitchell |
CSFW | 2 |
| 2003 | Secure Protocol CompositionabstractThis paper continues the program initiated in [5], towards a derivation system for security protocols. The general idea is that complex protocols can be formally derived, starting from basic security components, using a sequence of refinements and transformations, just like logical proofs are derived starting from axioms, using proof rules and transformations. The claim is that in practice, many protocols are already derived in such a way, but informally. Capturing this practice in a suitable formalism turns out to be a considerable task. The present paper proposes rules for composing security protocols from given security components. In general, security protocols are, of course, not compositional: information revealed by one may interfere with the security of the other. However, annotating protocol steps by pre- and post-conditions, allows secure sequential composition. Establishing that protocol components satisfy each other’s invariants allows more general forms of composition, ensuring that the individually secure sub-protocols will not interact insecurely in the composite protocol. The applicability of the method is demonstrated on modular derivations of two standard protocols, together with their simple security properties. Anupam Datta, Ante Derek, John C. Mitchell, Dusko Pavlovic |
MFPS | 3 |
| 2003 | DATALOG with Constraints: A Foundation for Trust Management Languages
Ninghui Li 0001, John C. Mitchell |
PADL | 2 |
| 2003 | Beyond Proof-of-Compliance: Safety and Availability Analysis in Trust ManagementabstractTrust management is a form of distributed access control using distributed policy. statements. Since one party may delegate partial control to another party, it is natural to ask what permissions may be granted as the result of policy changes by other parties. We study security properties such as safety, and availability for a family of trust management languages, devising algorithms for deciding the possible consequences of certain changes in policy. While trust management is more powerful in certain ways than mechanisms in the access matrix model, and the security properties considered are more than simple safety, we find that in contrast to the classical HRU undecidability of safety properties, our primary security properties are decidable. In particular, most properties we studied are decidable in polynomial time. Containment, the most complicated security property we studied, is decidable in polynomial time for the simplest TM language in the family. The problem becomes co-NP-hard when intersection or linked roles are added to the language. Ninghui Li 0001, William H. Winsborough, John C. Mitchell |
S&P | 3 |
| 2003 | Specifying and Verifying Hardware for Tamper-Resistant SoftwareabstractWe specify a hardware architecture that supports tamper-resistant software by identifying an "idealized" model, which gives the abstracted actions available to a single user program. This idealized model is compared to a concrete "actual" model that includes actions of an adversarial operating system. The architecture is verified by using a finite-state enumeration tool (a model checker) to compare executions of the idealized and actual models. In this approach, software tampering occurs if the system can enter a state where one model is inconsistent with the other in performing the verification, we detected a replay attack scenario and were able to verify the security of our solution to the problem. Our methods were also able to verify that all actions in the architecture are required, as well as come up with a set of constraints on the operating system to guarantee liveness for users. David Lie, John C. Mitchell, Chandramohan A. Thekkath, Mark Horowitz |
S&P | 2 |
| 2003 | A Type System for the Java Bytecode Language and Verifier
Stephen N. Freund, John C. Mitchell |
J. Autom. Reason. | 2 |
| 2003 | A Compositional Logic for Proving Security Properties of ProtocolsabstractWe present a logic for proving security properties of protocols that use nonces (randomly generated numbers that uniquely identify a protocol session) and public-key cryptography. The logic, designed around a process calculus with actions for each possible protocol step, consists of axioms about pr otocol actions and inference rules that yield assertions about protocols composed of multiple steps. Although assertions are written using only steps of the protocol, the logic is sound in a stronger sense: each provable assertion about an action or sequence of actions holds in any run of the protocol that contains the given actions and arbitrary additional actions by a malicious attacker. This approach lets us prove security properties of protocols under attack while reasoning only about the sequence of actions taken by honest parties to the protocol. The main security-specific parts of the proof system are rules for reasoning about the set of messages that could reveal secret data and an invariant rule called the “honesty rule”. Nancy A. Durgin, John C. Mitchell, Dusko Pavlovic |
J. Comput. Secur. | 2 |
| 2003 | Distributed Credential Chain Discovery in Trust ManagementabstractWe introduce a simple Role-based Trust-management language [Formula: see text] and a set-theoretic semantics for it. We also introduce credential graphs as a searchable representation of credentials in [Formula: see text] and prove that reachability in credential graphs is sound and complete with respect to the semantics of [Formula: see text]. Based on credential graphs, we give goal-directed algorithms to do credential chain discovery in [Formula: see text], both when credential storage is centralized and when credential storage is distributed. A goal-directed algorithm begins with an access-control query and searches for credentials relevant to the query, while avoiding considering the potentially very large number of credentials that are unrelated to the access-control decision at hand. This approach provides better expected-case performance than bottom-up algorithms. We show how our algorithms can be applied to SDSI 2.0 (the ‘SDSI’ part of SPKI/SDSI 2.0). Our goal-directed, distributed chain discovery algorithm finds and retrieves credentials as needed. We prove that the algorithm is correct by proving that the algorithm is sound and complete with respect to the credential graph composed of the credentials it retrieves, and that the algorithm retrieves all credentials that constitute a traversable chain. We further introduce a storage type system for [Formula: see text], which guarantees traversability of chains when credentials are well typed. This type system can also help improve search efficiency by guiding search in the right direction, making distributed chain discovery with large number of credentials feasible. Ninghui Li 0001, William H. Winsborough, John C. Mitchell |
J. Comput. Secur. | 3 |
| 2003 | Security by typing
Mourad Debbabi, Nancy A. Durgin, John C. Mitchell |
Int. J. Softw. Tools Technol. Transf. | 4 |
| 2002 | Multiset Rewriting and Security Protocol Analysis
John C. Mitchell |
RTA | 1 |
| 2002 | Design of a Role-Based Trust-Management FrameworkabstractWe introduce the RT framework, a family of role-based trust management languages for representing policies and credentials in distributed authorization. RT combines the strengths of role-based access control and trust-management systems and is especially suitable for attribute-based access control. Using a few simple credential forms, RT provides localized authority over roles, delegation in role definition, linked roles, and parameterized roles. RT also introduces manifold roles, which can be used to express threshold and separation-of-duty policies, and delegation of role activations. We formally define the semantics of credentials in the RT framework by presenting a translation from credentials to Datalog rules. This translation also shows that this semantics is algorithmically tractable. Ninghui Li 0001, John C. Mitchell, William H. Winsborough |
S&P | 2 |
| 2002 | Finite-state analysis of two contract signing protocols
Vitaly Shmatikov, John C. Mitchell |
Theor. Comput. Sci. | 2 |
| 2001 | Distributed credential chain discovery in trust management: extended abstractabstractWe give goal-oriented algorithms for discovering credential chains in RTo, a role-based trust-management language introduced in this paper. The algorithms search credential graphs, a representation of RTo credentials. We prove that evaluation based on reachability in credential graphs is sound and complete with respect to the set-theoretic semantics of RTo . RTo is more expressive than SDSI 2.0, so our algorithms can perform chain discovery in SDSI 2.0, for which existing algorithms in the literature either are not goal-oriented or require using specialized logic-programming inferencing engines. Being goal-oriented enables our algorithms to be used when credential storage is distributed. We introduce a type system for credential storage that guarantees well-typed, distributed credential chains can be discovered. Ninghui Li 0001, William H. Winsborough, John C. Mitchell |
CCS | 3 |
| 2001 | A State-Transition Model of Trust Management and Access ControlabstractWe use a state-transition approach to analyze and compare the core access control mechanisms that are characteristic of a variety of trust management, access control list, and capability-based systems. The framework, which characterizes the set of rights a subject has over an object after any sequence of actions, is based on abstract system states, state transitions, and logical deduction of access control judgments. We present abstract models representing the access control portion of trust management, access control lists, and two versions of capabilities, proving various correspondence and simulation relations between these models. The main results include an equivalence between access control lists (ACLs) and capabilities viewed as rows of the Lampson access matrix and the (proper) subsumption of a form of ACLs by an "unforgeable reference" form of capabilities. The access control mechanism at the heart of distributed trust management systems is formally shown to provide a tractable compromise between unrestricted capability passing from the capability models and easy revocation provided by access control lists. The underlying simulations show how trust management compares with more established access control mechanisms, independent of features such as local name spaces and certificate authorization hierarchies. Ajay Chander, John C. Mitchell, Drew Dean |
CSFW | 2 |
| 2001 | A Compositional Logic for Protocol CorrectnessabstractWe present a specialized protocol logic that is built around a process language for describing the actions of a protocol. In general terms, the relation between logic and protocol is like the relation between assertions in Floyd-Hoare logic and standard imperative programs. Like Floyd-Hoare logic, our logic contains axioms and inference rules for each of the main protocol actions and proofs are protocol-directed, meaning that the outline of a proof of correctness follows the sequence of actions in the protocol. We prove that the protocol logic is sound, in a specific sense: each provable assertion about an action or sequence of actions holds in any run of the protocol, under attack, in which the given actions occur. This approach lets us prove properties of protocols that hold in all runs, while explicitly reasoning only about the sequence of actions needed to achieve this property. In particular, no explicit reasoning about the potential actions of an attacker is required. Nancy A. Durgin, John C. Mitchell, Dusko Pavlovic |
CSFW | 2 |
| 2001 | Probabilistic Polynomial-Time Process Calculus and Security Protocol Analysis
John C. Mitchell |
ESOP | 1 |
| 2001 | Probabilistic Polynominal-Time Process Calculus and Security Protocol AnalysisabstractAbstract. We prove properties of a process calculus that is designed for analysing security protocols. Our long-term goal is to develop a form of protocol analysis, consistent with standard cryptographic assumptions, that provides a language for expressing probabilistic polynomial-time protocol steps, a specification method based on a compositional form of equivalence, and a logical basis for reasoning about equivalence. The process calculus is a variant of CCS, with bounded replication and probabilistic polynomial-time expressions allowed in messages and boolean tests. To avoid inconsistency between security and nondeterminism, messages are scheduled probabilistically instead of nondeterministically. We prove that evaluation of any process expression halts in probabilistic polynomial time and define a form of asymptotic protocol equivalence that allows security properties to be expressed using observational equivalence, a standard relation from programming language theory that involves quantifying over all possible environments that might interact with the protocol. We develop a form of probabilistic bisimulation and use it to establish the soundness of an equational proof system based on observational equivalences. The proof system is illustrated by a formation derivation of the assertion, well-known in cryptography, that El Gamal encryption’s semantic security is equivalent to the (computational) Decision Diffie-Hellman assumption. This example demonstrates the power of probabilistic bisimulation and equational reasoning for protocol security. John C. Mitchell, Ajith Ramanathan, Andre Scedrov, Vanessa Teague |
LICS | 1 |
| 2001 | Programming language methods in computer securityabstractThis invited talk will give a personal view of the field of computer security and summarize some ways that methods from the study of programming language principles can be applied to problems in computer security. Some background information is provided here in this short document. John C. Mitchell |
POPL | 1 |
| 2000 | Architectural Support for Copy and Tamper Resistant SoftwareabstractAlthough there have been attempts to develop code transformations that yield tamper-resistant software, no reliable software-only methods are know. This paper studies the hardware implementation of a form of execute-only memory (XOM) that allows instructions stored in memory to be executed but not otherwise manipulated. To support XOM code we use a machine that supports internal compartments---a process in one compartment cannot read data from another compartment. All data that leaves the machine is encrypted, since we assume external memory is not secure. The design of this machine poses some interesting trade-offs between security, efficiency, and flexibility. We explore some of the potential security issues as one pushes the machine to become more efficient and flexible. Although security carries a performance penalty, our analysis indicates that it is possible to create a normal multi-tasking machine where nearly all applications can be run in XOM mode. While a virtual XOM machine is possible, the underlying hardware needs to support a unique private key, private memory, and traps on cache misses. For efficient operation, hardware assist to provide fast symmetric ciphers is also required. David Lie, Chandramohan A. Thekkath, Mark Mitchell, Patrick Lincoln, Dan Boneh, John C. Mitchell, Mark Horowitz |
ASPLOS | 6 |
| 2000 | Relating Strands and Multiset Rewriting for Security Protocol AnalysisabstractFormal analysis of security protocols is largely based on an set of assumptions commonly referred to as the Dolev-Yao model. Two formalisms that state the basic assumptions of this model are related here: strand spaces and multiuser rewriting with existential quantification. Although it is fairly intuitive that these two languages should be equivalent in some way, a number of modifications to each system are required to obtain a meaningful equivalence. We extend the strand formalism with a way of incrementally growing bundles in order to emulate an execution of a protocol with parametric strands. We omit the initialization part of the multiset rewriting setting, which formalizes the choice of initial data, such as shared public or private keys, and which has no counterpart in the stand space setting. The correspondence between the modified formalisms directly relates the intruder theory from the multiset rewriting formalism to the penetrator strands. Iliano Cervesato, Nancy A. Durgin, John C. Mitchell, Patrick Lincoln, Andre Scedrov |
CSFW | 3 |
| 2000 | Analysis of a Fair Exchange Protocol
Vitaly Shmatikov, John C. Mitchell |
NDSS | 2 |
| 1999 | A Meta-Notation for Protocol AnalysisabstractMost formal approaches to security protocol analysis are based on a set of assumptions commonly referred to as the "Dolev-Yao model". In this paper, we use a multiset rewriting formalism, based on linear logic, to state the basic assumptions of this model. A characteristic of our formalism is the way that existential quantification provides a succinct way of choosing new values, such as new keys or nonces. We define a class of theories in this formalism that correspond to finite-length protocols, with a bounded initialization phase but allowing unboundedly many instances of each protocol role (e.g., client, sewer; initiator or responder). Undecidability is proved for a restricted class of these protocols, and PSPACE-completeness is claimed for a class further restricted to have no new data (nonces). Since it is a fragment of linear logic, we can use our notation directly as input to linear logic tools, allowing us to do proof search for attacks with relatively little programming effort, and to formally verify protocol transformations and optimizations. Iliano Cervesato, Nancy A. Durgin, Patrick Lincoln, John C. Mitchell, Andre Scedrov |
CSFW | 4 |
| 1999 | A Formal Framework for the Java Bytecode Language and VerifierabstractThis paper presents a sound type system for a large subset of the Java bytecode language including classes, interfaces, constructors, methods, exceptions, and bytecode subroutines. This work serves as the foundation for developing a formal specification of the bytecode language and the Java Virtual Machine's bytecode verifier. We also describe a prototype implementation of a type checker for our system and discuss some of the other applications of this work. For example, we show how to extend our work to examine other program properties, such as the correct use of object locks. Stephen N. Freund, John C. Mitchell |
OOPSLA | 2 |
| 1999 | Parametricity and Variants of Girard's J Operator
Robert Harper 0001, John C. Mitchell |
Inf. Process. Lett. | 2 |
| 1999 | Optimization Complexity of Linear Logic Proof GamesabstractA class of linear logic proof games is developed, each with a numeric score that depends on the number of preferred axioms used in a complete or partial proof tree. The complexity of these games is analyzed for the NP-complete multiplicative fragment (MLL) extended with additive constants and the PSPACE-complete multiplicative, additive fragment (MALL) of propositional linear logic. In each case, it is shown that it is as hard to compute an approximation of the best possible score as it is to determine the optimal strategy. Furthermore, it is shown that no efficient heuristics exist unless there is an unexpected collapse in the complexity hierarchy. Patrick Lincoln, John C. Mitchell, Andre Scedrov |
Theor. Comput. Sci. | 2 |
| 1999 | The type system for object initializatiion in the Jave bytecode languageabstractIn the standard Java implementation, a Java language program is compiled to Java bytecode. This bytecode may be sent across the network to another site, where it is then executed by the Java Virtual Machine. Since bytecode may be written by hand, or corrupted during network transmission, the Java Virtual Machine contains a bytecode verifier that performs a number of consistency checks before code is run. These checks include type correctness and, as illus-trated by previous attacks on the Java Virtual Machine, are critical for system security. In order to analyze existing bytecode verifiers and to understand the properties that should be verified, we develop a precise specification of statically correct Java bytecode, in the form of a type system. Our focus in this article is a subset of the bytecode language dealing with object creation and initialization. For this subset, we prove, that, for every Java bytecode program that satisfies our typing constraints, every object is initialized before it is used. The type system is easily combined with a previous system developed by Stata and Abadi for bytecode subroutines. Our analysis of subroutines and object initialization reveals a previously unpub-lished bug in the Sun JDK bytecode verifier. Stephen N. Freund, John C. Mitchell |
ACM Trans. Program. Lang. Syst. | 2 |
| 1998 | Finite-State Analysis of Security Protocols
John C. Mitchell |
CAV | 1 |
| 1998 | A Probabilistic Poly-Time Framework for Protocol AnalysisabstractWe develop a framework for analyzing security protocols in which protocol adversaries may be arbitrary probabilistic polynomial-time processes. In this framework, protocols are written in a form of process calculus where security may be expressed in terms of observational equivalence, a standard relation from programming language theory that involves quantifying over possible environments that might interact with the protocol. Using an asymptotic notion of probabilistic equivalence, we relate observational equivalence to polynomial-time statistical tests and discuss some example protocols to illustrate the potential of this approach. 1 Introduction Protocols based on cryptographic primitives are commonly used to protect access to computer systems and to protect transactions over the internet. Two well-known examples are the Kerberos authentication scheme [15, 14], used to manage encrypted passwords, and the Secure Sockets Layer [12], used by internet browsers and servers to carry out... Patrick Lincoln, John C. Mitchell, Mark Mitchell, Andre Scedrov |
CCS | 2 |
| 1998 | A Linguistic Characterization of Bounded Oracle Computation and Probabilistic Polynomial TimeabstractWe present a higher-order functional notation for polynomial-time computation with an arbitrary 0, 1-valued oracle. This formulation provides a linguistic characterization for classes such as NP and BPP, as well as a notation for probabilistic polynomial-time functions. The language is derived from Hofmann's adaptation of Bellantoni-Cook safe recursion, extended to oracle computation via work derived from that of Kapron and Cook. Like Hofmann's language, ours is an applied typed lambda calculus with complexity bounds enforced by a type system. The type system uses a modal operator to distinguish between two sorts of numerical expressions. Recursion can take place on only one of these sorts. The proof that the language captures precisely oracle polynomial time is model-theoretic, using adaptations of various techniques from category theory. John C. Mitchell, Mark Mitchell, Andre Scedrov |
FOCS | 1 |
| 1998 | A Type System for Object Initialization in the Java Bytecode LanguageabstractIn the standard Java implementation, a Java language program is compiled to Java bytecode. This bytecode may be sent across the network to another site, where it is then interpreted by the Java Virtual Machine. Since bytecode may be written by hand, or corrupted during network transmission, the Java Virtual Machine contains a bytecode verifier that performs a number of consistency checks before code is interpreted. As illustrated by previous attacks on the Java Virtual Machine, these tests, which include type correctness, are critical for system security. In order to analyze existing bytecode verifiers and to understand the properties that should be verified, we develop a precise specification of statically-correct Java bytecode, in the form of a type system. Our focus in this paper is a subset of the bytecode language dealing with object creation and initialization. For this subset, we prove that for every Java bytecode program that satisfies our typing constraints, every object is initialized before it is used. The type system is easily combined with a previous system developed by Stata and Abadi for bytecode subroutines. Our analysis of subroutines and object initialization reveals a previously unpublished bug in the Sun JDK bytecode verifier. Stephen N. Freund, John C. Mitchell |
OOPSLA | 2 |
| 1998 | Finite-State Analysis of SSL 3.0
John C. Mitchell, Vitaly Shmatikov, Ulrich Stern |
USENIX Security Symposium | 1 |
| 1997 | Adding Type Parameterization to the Java LanguageabstractAlthough the Java programming language has achieved widespread acceptance, one feature that seems sorely missed is the ability to use type parameters (as in Ada generics, C++ templates, and ML polymorphic functions or data types) to allow a general concept to be instantiated to one or more specific types. In this paper, we propose parameterized classes and interfaces in which the type parameter may be constrained to either implement a given interface or extend a given class. This design allows the body of a parameterized class to refer to methods on objects of the parameter type, without introducing any new type relations into the language. We show that these Java extensions may be implemented by expanding parameterized classes at class load time, without any extension or modification to existing Java bytecode, verifier or bytecode interpreter. Ole Agesen, Stephen N. Freund, John C. Mitchell |
OOPSLA | 3 |
| 1997 | Automated analysis of cryptographic protocols using Mur-phiabstractA methodology is presented for using a general-purpose state enumeration tool, Mur/spl phi/, to analyze cryptographic and security-related protocols. We illustrate the feasibility of the approach by analyzing the Needham-Schroeder (1978) protocol, finding a known bug in a few seconds of computation time, and analyzing variants of Kerberos and the faulty TMN protocol used in another comparative study. The efficiency of Mur/spl phi/ also allows us to examine multiple terms of relatively short protocols, giving us the ability to detect replay attacks, or errors resulting from confusion between independent execution of a protocol by independent parties. John C. Mitchell, Mark Mitchell, Ulrich Stern |
S&P | 1 |
| 1996 | Effective Models of Polymorphism, Subtyping and Recursion (Extended Abstract)
John C. Mitchell, Ramesh Viswanathan |
ICALP | 1 |
| 1996 | Standard ML-NJ Weak Polymorphism and Imperative ConstructsabstractStandard ML of New Jersey (SML–NJ) uses “weak type variables” to restrict the polymorphic use of functions that may allocate reference cells, manipulate continuations, or use exceptions. However, the type system used in the SML–NJ compiler has not previously been presented in a form other than source code nor proved correct. We present a set of typing rules, based on analysis of the concepts underlying “weak polymorphism”, that appears to subsume the implemented algorithm and uses type variables of only a slightly more general nature than the compiler. One insight in the analysis is that allowing a variable to occur both “ordinarily” and “weakly” in a type permits a simpler and more flexible formulation of the typing rules. In particular, we are able to treat applications of polymorphic functions to imperative arguments with greater flexibility than SML–NJ. The soundness of the type system is proved for imperative code using operational semantics, by showing that evaluation preserves typability. By incorporating assumptions about memory addresses in the type system, we avoid proofs by co-induction. John C. Mitchell, Ramesh Viswanathan |
Inf. Comput. | 1 |
| 1995 | A Delegation-based Object Calculus with Subtying
Kathleen Fisher, John C. Mitchell |
FCT | 2 |
| 1995 | Lower Bounds on Type Inference with SubtypesabstractWe investigate type inference for programming languages with subtypes. As described in previous work, there are several type inference problems for any given expression language, depending on the form of the subtype partial order and the ability to define new subtypes in programs. Our first main result is that for any specific subtype partial order, the problem of determining whether a lambda term is typable is algorithmically (polynomial-time) equivalent to a form of satisfiability problem over the same partial order. This gives the first exact characterization of the problem that is independent of the syntax of expressions. In addition, since this form of satisfiability problem is PSPACE-hard over certain partial orders, this equivalence strengthens the previous lower bound of NP-hard to PSPACE-hard. Our second main result is a lower bound on the length of most general types when the subtype hierarchy may change as a result of additional type declarations within the program. More specifically, given any input expression, a type inference algorithm tries to find a most general (or principal) typing. The property of a most general typing is that it has all other possible typings as instances. However, there are several sound notions of instance in the presence of subtyping. Our lower bound is that no sound definition of instance would allow the set of additional subtyping hypotheses about a term to grow less than linearly in the size of the term. My Hoang, John C. Mitchell |
POPL | 2 |
| 1994 | A Type System for Prototyping LanguagesabstractRAPIDE is a programming language framework designed for the development of large, concurrent, real-time systems by prototyping. The framework consists of a type language and default executable, specification and architecture languages, along with associated programming tools. We describe the main features of the type language, its intended use in a prototyping environment, and rationale for selected design decisions. Dinesh Katiyar, David C. Luckham, John C. Mitchell |
POPL | 3 |
| 1994 | An Extension of System F with SubtypingabstractSystem F is a well-known typed λ-calculus with polymorphic types, which provides a basis for polymorphic programming languages. We study an extension of F, called F<: (pronounced ef-sub), that combines parametric polymorphism with subtyping. The main focus of the paper is the equational theory of F<:, which is related to PER models and the notion of parametricity. We study some categorical properties of the theory when restricted to closed terms, including interesting categorical isomorphisms. We also investigate proof-theoretical properties, such as the conservativity of typing judgments with respect to F. We demonstrate by a set of examples how a range of constructs may be encoded in F<:. These include record operations and subtyping hierarchies that are related to features of object-oriented languages. Luca Cardelli, Simone Martini 0001, John C. Mitchell, Andre Scedrov |
Inf. Comput. | 3 |
| 1993 | Standard ML-NJ weak polymorphism and imperative constructsabstractStandard ML of New Jersey (SML-NJ) uses weak-type variables to restrict the polymorphic use of functions that may allocate reference cells, manipulate continuations, or use exceptions. However, the type system used in the SML-NJ compiler has not been presented in a form other than source code and has not been proved correct. A type system, in the form of typing rules and an equivalent algorithm, that appears to subsume the implemented algorithm is presented. Both use type variables of only a slightly more general nature than the compiler. One insight in the analysis is that the indexed type of a free variable is used in two ways, once in describing the applicative behavior of the variable itself and once in describing the larger term containing the variable. Taking this into account, an application rule that is more general than SML-NJ is formulated for applications of polymorphic functions to imperative arguments. The soundness of the type system is proved for imperative code using operational semantics.> My Hoang, John C. Mitchell, Ramesh Viswanathan |
LICS | 2 |
| 1993 | A lambda calculus of objects and method specializationabstractAn untyped lambda calculus, extended with object primitives that reflect the capabilities of so-called delegation-based object-oriented languages, is presented. A type inference system allows static detection of errors, such as message not understood, while at the same time allowing the type of an inherited method to be specialized to the type of the inheriting object. Type soundness, in the form of a subject-reduction theorem, is proved, and examples illustrating the expressiveness of the pure calculus are presented.> John C. Mitchell, Furio Honsell, Kathleen Fisher |
LICS | 1 |
| 1993 | Type Inference with Extended Pattern Matching and Subtypes
Lalita Jategaonkar Jagadeesan, John C. Mitchell |
Fundam. Informaticae | 2 |
| 1993 | On Abstraction and the Expressive Power of Programming Languages
John C. Mitchell |
Sci. Comput. Program. | 1 |
| 1993 | On the Type Structure of Standard MLabstractStandard ML is a useful programming language with a polymorphic type system and a flexible module facility.One notable feature of the core expression language of ML is that it is implicdy typed: no explicit type information need be supplied by the programmer.In contrast, the module language of ML is explicitly typed; in particular, the types of parameters in parametric modules must be supplied by the programmer.We study the type structure of Standard ML by giving an explicitly-typed, polymorphic function calculus that captures many of the essential aspects of both the core and module language.In this setting, implicitly-typed core language expressions are regarded as a convenient short-hand for an explicitly-typed counterpart in our function calculus.In contrast to the Girard-Reynolds polymorphic calculus, our function calculus is Robert Harper 0001, John C. Mitchell |
ACM Trans. Program. Lang. Syst. | 2 |
| 1992 | Operational aspects of linear lambda calculusabstractIt is proved that the standard sequent calculus proof system of linear logic is equivalent to a natural deduction style proof system. The natural deduction system is used to investigate the pragmatic problems of type inference and type safety for a linear lambda calculus. Although terms do not have a single most-general type (for either the standard sequent presentation or the natural deduction formulation), there is a set of most-general types that may be computed using unification. The natural deduction system also facilitates the proof that the type of an expression is preserved by any evaluation step. An execution model and implementation is described, using a variant of the three-instruction machine. A novel feature of the implementation is that garbage-collected nonlinear memory is distinguished from linear memory, which does not require garbage collection and for which it is possible to do secure update in place.> Patrick Lincoln, John C. Mitchell |
LICS | 2 |
| 1992 | PER Models of Subtyping, Recursive Types and Higher-Order Polymorphism
Kim B. Bruce, John C. Mitchell |
POPL | 2 |
| 1992 | Algorithmic Aspects of Type Inference with SubtypesabstractWe study the complexity of type inference for programming languages with subtypes. There are three language variations that effect the problem: (i) basic functions may have polymorphic or more limited types, (ii) the subtype hierarchy may be fixed or vary as a result of subtype declarations within a program, and (iii) the subtype hierarchy may be an arbitrary partial order or may have a more restricted form, such as a tree or lattice. The naive algorithm for infering a most general polymorphic type, undervariable subtype hypotheses, requires deterministic exponential time. If we fix the subtype ordering, this upper bound grows to nondeterministic exponential time. We show that it is NP-hard to decide whether a lambda term has a type with respect to a fixed subtype hierarchy (involving only atomic type names). This lower bound applies to monomorphic or polymorphic languages. We give PSPACE upper bounds for deciding polymorphic typability if the subtype hierarchy has a lattice structure or the subtype hierarchy varies arbitrarily. We also give a polynomial time algorithm for the limited case where there are of no function constants and the type hierarchy is either variable or any fixed lattice. Patrick Lincoln, John C. Mitchell |
POPL | 2 |
| 1992 | Decision Problems for Propositional Linear Logic
Patrick Lincoln, John C. Mitchell, Andre Scedrov, Natarajan Shankar |
Ann. Pure Appl. Log. | 2 |
| 1991 | An Extension of Standard ML Modules with Subtyping and InheritanceabstractWe describe a general module language integrating abstract data types, specifications and object-oriented concepts. The framework is based on the Standard ML module system, with three main extensions: subtyping, a form of object derived from ML structures, and inheritance primitives. The language aims at supporting a range of programming styles, including mixtures of object-oriented programming and programs built around specified algebraic or higher-order abstract data types. We separate specification from implementation, and provide independent inheritance mechanisms for each. In order to support binary operations on objects within this framework, we introduce "internal interfaces" which govern the way that function components of one structure may access components of another. The language design has been tested by writing a number of program examples; an implementation is under development in the context of a larger project. 1 Introduction This paper describes a general module sys... John C. Mitchell, Sigurd Meldal, Neel Madhav |
POPL | 1 |
| 1991 | Kripke-Style Models for Typed lambda Calculus
John C. Mitchell, Eugenio Moggi |
Ann. Pure Appl. Log. | 1 |
| 1991 | Type Inference With Simple SubtypesabstractAbstract Subtyping appears in a variety of programming languages, in the form of the ‘automatic coercion’ of integers to reals, Pascal subranges, and subtypes arising from class hierarchies in languages with inheritance. A general framework based on untyped lambda calculus provides a simple semantic model of subtyping and is used to demonstrate that an extension of Curry's type inference rules are semantically complete. An algorithm G for computing the most general typing associated with any given expression, and a restricted, optimized algorithm GA using only atomic subtyping hypotheses are developed. Both algorithms may be extended to insert type conversion functions at compile time or allow polymorphic function declarations as in ML. John C. Mitchell |
J. Funct. Program. | 1 |
| 1991 | Operations on Records
Luca Cardelli, John C. Mitchell |
Math. Struct. Comput. Sci. | 2 |
| 1990 | Decision Problems for Propositional Linear LogicabstractIt is shown that, unlike most other propositional (quantifier-free) logics, full propositional linear logic is undecidable. Further, it is provided that without the model storage operator, which indicates unboundedness of resources, the decision problem becomes PSPACE-complete. Also established are membership in NP for the multiplicative fragment, NP-completeness for the multiplicative fragment extended with unrestricted weakening, and undecidability for certain fragments of noncommutative propositional linear logic.> Patrick Lincoln, John C. Mitchell, Andre Scedrov, Natarajan Shankar |
FOCS | 2 |
| 1990 | Higher-Order Modules and the Phase DistinctionabstractIn earlier work, we used a typed function calculus, XML, with dependent types to analyze several aspects of the Standard ML type system. In this paper, we introduce a refinement of XML with a clear compile-time/run-time phase distinction, and a direct compile-time type checking algorithm. The calculus uses a finer separation of types into universes than XML and enforces the phase distinction using a nonstandard equational theory for module and signature expressions. While unusual from a type-theoretic point of view, the nonstandard equational theory arises naturally from the well-known Grothendieck construction on an indexed category. Robert Harper 0001, John C. Mitchell, Eugenio Moggi |
POPL | 2 |
| 1990 | Toward a Typed Foundation for Method Specialization and InheritanceabstractThis paper discusses the phenomenon of method specialization in object-oriented programming languages. A typed function calculus of objects and classes is presented, featuring method specialization when methods are added or redefined. The soundness of the typing rules (without subtyping) is suggested by a translation into a more traditional calculus with recursively-defined record types. However, semantic questions regarding the subtype relation on classes remain open. John C. Mitchell |
POPL | 1 |
| 1990 | The Semantics of Second-Order Lambda Calculus
Kim B. Bruce, Albert R. Meyer, John C. Mitchell |
Inf. Comput. | 3 |
| 1989 | Polymorphic Unification and ML TypingabstractWe study the complexity of type inference for a core fragment of ML with lambda abstraction, function application, and the polymorphic let declaration. Our primary technical tool is the unification problem for a class of “polymorphic” type expressions. This form of unification, which we call polymorphic unification, allows us to separate a combinatorial aspect of type inference from the syntax of ML programs. After observing that ML typing is in DEXPTIME, we show that polymorphic unification is PSPACE hard. From this, we prove that recognizing the typable core ML programs is also PSPACE hard. Our lower bound stands in contrast to the common belief that typing ML programs is “efficient,” and to practical experience which suggests that the algorithms commonly used for this task do not slow compilation substantially. Paris C. Kanellakis, John C. Mitchell |
POPL | 2 |
| 1988 | The Essence of MLabstractStandard ML is a useful programming language with polymorphic expressions and a flexible module facility. One notable feature of the expression language is an algorithm which allows type information to be omitted. We study the implicitly-typed expression language by giving a “syntactically isomorphic” explicitly-typed, polymorphic function calculus. Unlike the Girard-Reynolds polymorphic calculus, for example, the types of our ML calculus may be built-up by induction on type levels (universes). For this reason, the pure ML calculus has straightforward set-theoretic, recursion-theoretic and domain-theoretic semantics, and operational properties such as the termination of all recursion-free programs may be proved relatively simply. The signatures, structures, and functors of the module language are easily incorporated into the typed ML calculus, providing a unified framework for studying the major features of the language (including the novel “sharing constraints” on functor parameters). We show that, in a precise sense, the language becomes inconsistent if restrictions imposed by type levels are relaxed. More specifically, we prove that the important programming features of ML cannot be added to any impredicative language, such as the Girard-Reynolds calculus, without implicitly assuming a type of all types. John C. Mitchell, Robert Harper 0001 |
POPL | 1 |
| 1988 | Polymorphic Type Inference and Containment
John C. Mitchell |
Inf. Comput. | 1 |
| 1988 | Abstract Types Have Existential TypeabstractAbstract data type declarations appear in typed programming languages like Ada, Alphard, CLU and ML. This form of declaration binds a list of identifiers to a type with associated operations, a composite “value” we call a data algebra . We use a second-order typed lambda calculus SOL to show how data algebras may be given types, passed as parameters, and returned as results of function calls. In the process, we discuss the semantics of abstract data type declarations and review a connection between typed programming languages and constructive logic. John C. Mitchell, Gordon D. Plotkin |
ACM Trans. Program. Lang. Syst. | 1 |
| 1987 | Kripke-Style models for typed lambda calculus
John C. Mitchell, Eugenio Moggi |
LICS | 1 |
| 1987 | Empty Types in Polymorphic Lambda CalculusabstractThe model theory of simply typed and polymorphic (second-order) lambda calculus changes when types are allowed to be empty. For example, the “polymorphic Boolean” type really has exactly two elements in a polymorphic model only if the “absurd” type ∀t.t is empty. The standard β-ε axioms and equational inference rules which are complete when all types are nonempty are not complete for models with empty types. Without a little care about variable elimination, the standard rules are not even sound for empty types. We extend the standard system to obtain a complete proof system for models with empty types. The completeness proof is complicated by the fact that equational “term models” are not so easily obtained: in contrast to the nonempty case, not every theory with empty types is the theory of a single model. Albert R. Meyer, John C. Mitchell, Eugenio Moggi, Richard Statman |
POPL | 2 |
| 1986 | Representation Independence and Data AbstractionabstractOne purpose of type checking in programming languages is to guarantee a degree of "representation independence:" programs should not depend on the way stacks are represented, only on the behavior of stacks with respect to push and pop operations. In languages with abstract data type declarations, representation independence should hold for user-defined types as well as built-in types. We study the representation independence properties of a typed functional language (second-order lambda calculus) with polymorphic functions and abstract data type declarations in which data type implementations (packages) may be passed as function parameters and returned as results. The type checking rules of the language guarantee that two data type implementations P and Q are equivalence whenever there is a correspondence between the behavior of the operations of P and the behavior of the operations of Q. John C. Mitchell |
POPL | 1 |
| 1986 | Realisability Semantics for Error-Tolerant Logics
John C. Mitchell, Michael J. O'Donnell |
TARK | 1 |
| 1985 | Abstract Types Have Existential TypeabstractArticle Free Access Share on Abstract types have existential types Authors: John C. Mitchell AT&T Bell Laboratories, Murray Hill, New Jersey AT&T Bell Laboratories, Murray Hill, New JerseyView Profile , Gordon D. Plotkin Department of Computer Science, University of Edinburgh, Edinburgh EH9 3J2 Department of Computer Science, University of Edinburgh, Edinburgh EH9 3J2View Profile Authors Info & Claims POPL '85: Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languagesJanuary 1985 Pages 37–51https://doi.org/10.1145/318593.318606Published:01 January 1985Publication History 75citation402DownloadsMetricsTotal Citations75Total Downloads402Last 12 Months31Last 6 weeks3 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF John C. Mitchell, Gordon D. Plotkin |
POPL | 1 |
| 1984 | Semantic Models for Second-Order Lambda CalculusabstractThe second-order lambda calculus is a typed expression language with polymorphic functions and abstract data typcs. Several definitions of models for this language have been proposed, each relying on the syntax of terms to characterize closure under explicite definition. This work aims to releive the model theorist of syntactic considerations. John C. Mitchell |
FOCS | 1 |
| 1984 | Coercion and Type InferenceabstractA simple semantic model of automatic coercion is proposed. This model is used to explain four rules for inferring polymorphic types and providing automatic coercions between types. With the addition of a fifth rule, the rules become semantically complete but the set of types associated with an expression may be undecidable. An efficient type checking algorithm based on the first four rules is presented. The algorithm is guaranteed to find a type whenever a type can be deduced using the four inference rules. The type checking algorithm may be modified so that calls to type conversion functions are inserted at compile time. John C. Mitchell |
POPL | 1 |
| 1983 | Inference Rules for Functional and Inclusion DependenciesabstractA set Σ of functional dependencies and inclusion dependencies implies a single dependency σ if all databases (finite and infinite) which satisfy Σ also satisfy σ. This paper presents complete inference rules for deducing implications of inclusion and functional dependencies. The results of [5] suggest that the implication problem for functional and inclusion dependencies together has no simple axiomatization satisfying a natural set of conditions. Out of necessity, the inference rules presented here do not satisfy the conditions assumed in [5]. John C. Mitchell |
PODS | 1 |
| 1983 | Termination Assertions for Recursive Programs: Completeness and Axiomatic Definability
Albert R. Meyer, John C. Mitchell |
Inf. Control. | 2 |
| 1983 | The Implication Problem for Functional and Inclusion Dependencies
John C. Mitchell |
Inf. Control. | 1 |
| 1982 | Axiomatic Definability and Completeness for Recursive ProgramsabstractThe termination assertion pq means that whenever the formula p is true, there is an execution of the possibly nondeterministic program S which terminates in a state in which q is true. Termination assertions are more tractable technically than the partial correctness assertions usually treated in the literature. Termination assertions are studied for a programming language which includes local variable declarations, calls to undeclared global procedures, and nondeterministic recursive procedures with call-by-address and call-by-value parameters. By allowing formulas p and q to place conditions on global procedures, we provide a method for reasoning about programs with calls to global procedures based on hypotheses about procedure input-output behavior. The set of first-order termination assertions valid over all interpretations is completely axiomatizable without reference to the theory of any interpretation. Although uninterpreted assertions have limited expressive power, the set of valid termination assertions defines the semantics of recursive programs in the sense of Meyer and Halpern [10]. Thus the axiomatization constitutes an axiomatic definition of the semantics of recursive programs. Albert R. Meyer, John C. Mitchell |
POPL | 2 |