EDBT 2026 Demo / reviewers in the wild / expert
Nickolai Zeldovich
dblp:99/5780
· DBLP profile ↗
76ranked-venue papers
4as first author
12since 2021 · last 2025
0000-0003-0238-2703ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 44 · 2 first-author · 9 since 2021Systems, architecture and hardware · 14 · 1 first-authorSecurity and privacy · 12 · 3 since 2021Computer networks · 4 · 1 first-authorDatabases, data management, data science and information retrieval · 2Theory of computation · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | PoWER Never Corrupts: Tool-Agnostic Verification of Crash Consistency and Corruption Detection
Hayley LeBlanc, Jacob R. Lorch, Chris Hawblitzel, Yiheng Tao, Nickolai Zeldovich, Vijay Chidambaram |
OSDI | 6 |
| 2024 | Probability from Possibility: Probabilistic Confidentiality for Storage Systems Under NondeterminismabstractNondeterminism, such as system crashes, poses an important challenge to the security of storage systems by making leakages possible through secret-dependent result probabilities. This paper proposes a new possibilistic confidentiality specification prohibiting such probabilistic leakages. Our specification is preserved under simulation to enable modularity and is sequentially compositional. We implemented our specification in a framework that contains structures to implement storage systems and prove their confidentiality in a modular fashion. On top of our framework, we implemented the first crash-safe file system with a termination-insensitive version of our specification and machine-checkable confidentiality proofs. Our evaluation shows that proving confidentiality incurs 9.2x proof overhead per line of implementation code. Both our framework and file system are implemented in Coq and extracted to Haskell to obtain an executable artifact. Atalay Mert Ileri, Nickolai Zeldovich, Adam Chlipala, M. Frans Kaashoek |
CSF | 2 |
| 2024 | Modular Verification of Secure and Leakage-Free Systems: From Application Specification to Circuit-Level ImplementationabstractParfait is a framework for proving that an implementation of a hardware security module (HSM) leaks nothing more than what is mandated by an application specification. Parfait proofs cover the software and the hardware of an HSM, which catches bugs above the cycle-level digital circuit abstraction, including timing side channels. Parfait's contribution is a scalable approach to proving security and non-leakage by using intermediate levels of abstraction and relating them with transitive information-preserving refinement. This enables Parfait to use different techniques to verify the implementation at different levels of abstraction, reuse existing verified components such as CompCert, and automate parts of the proof, while still providing end-to-end guarantees. We use Parfait to verify four HSMs, including an ECDSA certificate-signing HSM and a password-hashing HSM, on top of the OpenTitan Ibex and PicoRV32 processors. Parfait provides strong guarantees for these HSMs: for instance, it proves that the ECDSA-on-Ibex HSM implementation---2,300 lines of code and 13,500 lines of Verilog---leaks nothing more than what is allowed by a 40-line specification of its behavior. Anish Athalye, Henry Corrigan-Gibbs, M. Frans Kaashoek, Joseph Tassarotti, Nickolai Zeldovich |
SOSP | 5 |
| 2023 | Verifying vMVCC, a high-performance transaction library using multi-version concurrency control
Yun-Sheng Chang, Ralf Jung 0002, Upamanyu Sharma, Joseph Tassarotti, M. Frans Kaashoek, Nickolai Zeldovich |
OSDI | 6 |
| 2023 | Private Web Search with TiptoeabstractTiptoe is a private web search engine that allows clients to search over hundreds of millions of documents, while revealing no information about their search query to the search engine's servers. Tiptoe's privacy guarantee is based on cryptography alone; it does not require hardware enclaves or non-colluding servers. Tiptoe uses semantic embeddings to reduce the problem of private full-text search to private nearest-neighbor search. Then, Tiptoe implements private nearest-neighbor search with a new, high-throughput protocol based on linearly homomorphic encryption. Running on a 45-server cluster, Tiptoe can privately search over 360 million web pages with 145 core-seconds of server compute, 56.9 MiB of client-server communication (74% of which occurs before the client enters its search query), and 2.7 seconds of end-to-end latency. Tiptoe's search works best on conceptual queries ("knee pain") and less well on exact string matches ("123 Main Street, New York"). On the MS MARCO search-quality benchmark, Tiptoe ranks the best-matching result in position 7.7 on average. This is worse than a state-of-the-art, non-private neural search algorithm (average rank: 2.3), but is close to the classical tf-idf algorithm (average rank: 6.7). Finally, Tiptoe is extensible: it also supports private text-to-image search and, with minor modifications, it can search over audio, code, and more. Alexandra Henzinger, Emma Dauterman, Henry Corrigan-Gibbs, Nickolai Zeldovich |
SOSP | 4 |
| 2023 | Grove: a Separation-Logic Library for Verifying Distributed SystemsabstractGrove is a concurrent separation logic library for verifying distributed systems. Grove is the first to handle time-based leases, including their interaction with reconfiguration, crash recovery, thread-level concurrency, and unreliable networks. This paper uses Grove to verify several distributed system components written in Go, including vKV, a realistic distributed multi-threaded key-value store. vKV supports reconfiguration, primary/backup replication, and crash recovery, and uses leases to execute read-only requests on any replica. vKV achieves high performance (67--73% of Redis on a single core), scales with more cores and more backup replicas (achieving about 2× the throughput when going from 1 to 3 servers), and can safely execute reads while reconfiguring. Upamanyu Sharma, Ralf Jung 0002, Joseph Tassarotti, M. Frans Kaashoek, Nickolai Zeldovich |
SOSP | 5 |
| 2022 | Verifying Hardware Security Modules with Information-Preserving Refinement
Anish Athalye, M. Frans Kaashoek, Nickolai Zeldovich |
OSDI | 3 |
| 2022 | Groove: Flexible Metadata-Private Messaging
Ludovic Barman, Moshe Kol, David Lazar, Yossi Gilad, Nickolai Zeldovich |
OSDI | 5 |
| 2022 | Verifying the DaisyNFS concurrent and crash-safe file system with sequential reasoning
Tej Chajed, Joseph Tassarotti, Mark Theng, M. Frans Kaashoek, Nickolai Zeldovich |
OSDI | 5 |
| 2022 | Aardvark: An Asynchronous Authenticated Dictionary with Applications to Account-based Cryptocurrencies
Derek Leung, Yossi Gilad, Sergey Gorbunov 0001, Leonid Reyzin, Nickolai Zeldovich |
USENIX Security Symposium | 5 |
| 2021 | GoJournal: a verified, concurrent, crash-safe journaling system
Tej Chajed, Joseph Tassarotti, Mark Theng, Ralf Jung 0002, M. Frans Kaashoek, Nickolai Zeldovich |
OSDI | 6 |
| 2021 | Compact Certificates of Collective KnowledgeabstractWe introduce compact certificate schemes, which allow any party to take a large number of signatures on a message M, by many signers of different weights, and compress them to a much shorter certificate. This certificate convinces the verifiers that signers with sufficient total weight signed M, even though the verifier will not see—let alone verify—all of the signatures. Thus, for example, a compact certificate can be used to prove that parties who jointly have a sufficient total account balance have attested to a given block in a blockchain.After defining compact certificates, we demonstrate an effi-cient compact certificate scheme. We then show how to implement such a scheme in a decentralized setting over an unreliable network and in the presence of adversarial parties who wish to disrupt certificate creation. Our evaluation shows that compact certificates are 50–280× smaller and 300–4000 cheaper to verify than a natural baseline approach. Silvio Micali, Leonid Reyzin, Georgios Vlachos, Riad S. Wahby, Nickolai Zeldovich |
SP | 5 |
| 2020 | Efficiently Mitigating Transient Execution Attacks using the Unmapped Speculation Contract
Jonathan Behrens, Anton Cao, Cel Skeggs, Adam Belay, M. Frans Kaashoek, Nickolai Zeldovich |
OSDI | 6 |
| 2019 | Vault: Fast Bootstrapping for the Algorand Cryptocurrency
Derek Leung, Adam Suhl, Yossi Gilad, Nickolai Zeldovich |
NDSS | 4 |
| 2019 | Argosy: verifying layered storage systems with recovery refinementabstractStorage systems make persistence guarantees even if the system crashes at any time, which they achieve using recovery procedures that run after a crash. We present Argosy, a framework for machine-checked proofs of storage systems that supports layered recovery implementations with modular proofs. Reasoning about layered recovery procedures is especially challenging because the system can crash in the middle of a more abstract layer’s recovery procedure and must start over with the lowest-level recovery procedure. Tej Chajed, Joseph Tassarotti, M. Frans Kaashoek, Nickolai Zeldovich |
PLDI | 4 |
| 2019 | Notary: a device for secure transaction approvalabstractNotary is a new hardware and software architecture for running isolated approval agents in the form factor of a USB stick with a small display and buttons. Approval agents allow factoring out critical security decisions, such as getting the user's approval to sign a Bitcoin transaction or to delete a backup, to a secure environment. The key challenge addressed by Notary is to securely switch between agents on the same device. Prior systems either avoid the problem by building single-function devices like a USB U2F key, or they provide weak isolation that is susceptible to kernel bugs, side channels, or Rowhammer-like attacks. Notary achieves strong isolation using reset-based switching, along with the use of physically separate systems-on-a-chip for agent code and for the kernel, and a machine-checked proof of both the hardware's register-transfer-level design and software, showing that reset-based switching leaks no state. Notary also provides a trustworthy I/O path between the agent code and the user, which prevents an adversary from tampering with the user's screen or buttons. Anish Athalye, Adam Belay, M. Frans Kaashoek, Robert Morris 0005, Nickolai Zeldovich |
SOSP | 5 |
| 2019 | Verifying concurrent, crash-safe systems with PerennialabstractThis paper introduces Perennial, a framework for verifying concurrent, crash-safe systems. Perennial extends the Iris concurrency framework with three techniques to enable crash-safety reasoning: recovery leases, recovery helping, and versioned memory. To ease development and deployment of applications, Perennial provides Goose, a subset of Go and a translator from that subset to a model in Perennial with support for reasoning about Go threads, data structures, and file-system primitives. We implemented and verified a crash-safe, concurrent mail server using Perennial and Goose that achieves speedup on multiple cores. Both Perennial and Iris use the Coq proof assistant, and the mail server and the framework's proofs are machine checked. Tej Chajed, Joseph Tassarotti, M. Frans Kaashoek, Nickolai Zeldovich |
SOSP | 4 |
| 2019 | Yodel: strong metadata security for voice callsabstractYodel is the first system for voice calls that hides metadata (e.g., who is communicating with whom) from a powerful adversary that controls the network and compromises servers. Voice calls require sub-second message latency, but low latency has been difficult to achieve in prior work where processing each message requires an expensive public key operation at each hop in the network. Yodel avoids this expense with the idea of self-healing circuits, reusable paths through a mix network that use only fast symmetric cryptography. Once created, these circuits are resilient to passive and active attacks from global adversaries. Creating and connecting to these circuits without leaking metadata is another challenge that Yodel addresses with the idea of guarded circuit exchange, where each user creates a backup circuit in case an attacker tampers with their traffic. We evaluate Yodel across the internet and it achieves acceptable voice quality with 990 ms of latency for 5 million simulated users. David Lazar, Yossi Gilad, Nickolai Zeldovich |
SOSP | 3 |
| 2018 | Veil: Private Browsing Semantics Without Browser-side Assistance
Frank Wang, James W. Mickens, Nickolai Zeldovich |
NDSS | 3 |
| 2018 | Verifying concurrent software using movers in CSPEC
Tej Chajed, M. Frans Kaashoek, Butler W. Lampson, Nickolai Zeldovich |
OSDI | 4 |
| 2018 | Proving confidentiality in a file system using DiskSec
Atalay Mert Ileri, Tej Chajed, Adam Chlipala, M. Frans Kaashoek, Nickolai Zeldovich |
OSDI | 5 |
| 2018 | Karaoke: Distributed Private Messaging Immune to Passive Traffic Analysis
David Lazar, Yossi Gilad, Nickolai Zeldovich |
OSDI | 3 |
| 2017 | Scaling a file system to many cores using an operation logabstractIt is challenging to simultaneously achieve multicore scalability and high disk throughput in a file system. For example, even for commutative operations like creating different files in the same directory, current file systems introduce cache-line conflicts when updating an in-memory copy of the on-disk directory block, which limits scalability. Srivatsa S. Bhat, Rasha Eqbal, Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich |
SOSP | 5 |
| 2017 | Verifying a high-performance crash-safe file system using a tree specificationabstractDFSCQ is the first file system that (1) provides a precise specification for fsync and fdatasync, which allow applications to achieve high performance and crash safety, and (2) provides a machine-checked proof that its implementation meets this specification. DFSCQ's specification captures the behavior of sophisticated optimizations, including log-bypass writes, and DFSCQ's proof rules out some of the common bugs in file-system implementations despite the complex optimizations. Haogang Chen 0001, Tej Chajed, Alex Konradi, Stephanie Wang, Atalay Mert Ileri, Adam Chlipala, M. Frans Kaashoek, Nickolai Zeldovich |
SOSP | 8 |
| 2017 | Algorand: Scaling Byzantine Agreements for CryptocurrenciesabstractAlgorand is a new cryptocurrency that confirms transactions with latency on the order of a minute while scaling to many users. Algorand ensures that users never have divergent views of confirmed transactions, even if some of the users are malicious and the network is temporarily partitioned. In contrast, existing cryptocurrencies allow for temporary forks and therefore require a long time, on the order of an hour, to confirm transactions with high confidence. Yossi Gilad, Rotem Hemo, Silvio Micali, Georgios Vlachos, Nickolai Zeldovich |
SOSP | 5 |
| 2017 | Stadium: A Distributed Metadata-Private Messaging SystemabstractPrivate communication over the Internet remains a challenging problem. Even if messages are encrypted, it is hard to deliver them without revealing metadata about which pairs of users are communicating. Scalable anonymity systems, such as Tor, are susceptible to traffic analysis attacks that leak metadata. In contrast, the largest-scale systems with metadata privacy require passing all messages through a small number of providers, requiring a high operational cost for each provider and limiting their deployability in practice. Nirvan Tyagi, Yossi Gilad, Derek Leung, Matei Zaharia, Nickolai Zeldovich |
SOSP | 5 |
| 2016 | Sieve: Cryptographically Enforced Access Control for User Data in Untrusted Clouds
Frank Wang, James W. Mickens, Nickolai Zeldovich, Vinod Vaikuntanathan |
NSDI | 3 |
| 2016 | Alpenhorn: Bootstrapping Secure Communication without Leaking Metadata
David Lazar, Nickolai Zeldovich |
OSDI | 2 |
| 2016 | Using Crash Hoare Logic for Certifying the FSCQ File System
Haogang Chen 0001, Daniel Ziegler 0002, Tej Chajed, Adam Chlipala, M. Frans Kaashoek, Nickolai Zeldovich |
USENIX ATC | 6 |
| 2015 | Hare: a file system for non-cache-coherent multicoresabstractHare is a new file system that provides a POSIX-like interface on multicore processors without cache coherence. Hare allows applications on different cores to share files, directories, and file descriptors. The challenge in designing Hare is to support the shared abstractions faithfully enough to run applications that run on traditional shared-memory operating systems, with few modifications, and to do so while scaling with an increasing number of cores. Charles Gruenwald III, Filippo Sironi, M. Frans Kaashoek, Nickolai Zeldovich |
EuroSys | 4 |
| 2015 | Amber: Decoupling User Data from Web Applications
Tej Chajed, Jon Gjengset, Jelle van den Hooff, M. Frans Kaashoek, James W. Mickens, Robert Morris 0005, Nickolai Zeldovich |
HotOS | 7 |
| 2015 | Specifying Crash Safety for Storage Systems
Haogang Chen 0001, Daniel Ziegler 0002, Adam Chlipala, M. Frans Kaashoek, Eddie Kohler, Nickolai Zeldovich |
HotOS | 6 |
| 2015 | Using Crash Hoare logic for certifying the FSCQ file systemabstractFSCQ is the first file system with a machine-checkable proof (using the Coq proof assistant) that its implementation meets its specification and whose specification includes crashes. FSCQ provably avoids bugs that have plagued previous file systems, such as performing disk writes without sufficient barriers or forgetting to zero out directory blocks. If a crash happens at an inopportune time, these bugs can lead to data loss. FSCQ's theorems prove that, under any sequence of crashes followed by reboots, FSCQ will recover the file system correctly without losing data. Haogang Chen 0001, Daniel Ziegler 0002, Tej Chajed, Adam Chlipala, M. Frans Kaashoek, Nickolai Zeldovich |
SOSP | 6 |
| 2015 | Vuvuzela: scalable private messaging resistant to traffic analysisabstractPrivate messaging over the Internet has proven challenging to implement, because even if message data is encrypted, it is difficult to hide metadata about who is communicating in the face of traffic analysis. Systems that offer strong privacy guarantees, such as Dissent [36], scale to only several thousand clients, because they use techniques with superlinear cost in the number of clients (e.g., each client broadcasts their message to all other clients). On the other hand, scalable systems, such as Tor, do not protect against traffic analysis, making them ineffective in an era of pervasive network monitoring. Jelle van den Hooff, David Lazar, Matei Zaharia, Nickolai Zeldovich |
SOSP | 4 |
| 2015 | The Scalable Commutativity Rule: Designing Scalable Software for Multicore ProcessorsabstractWhat opportunities for multicore scalability are latent in software interfaces, such as system call APIs? Can scalability challenges and opportunities be identified even before any implementation exists, simply by considering interface specifications? To answer these questions, we introduce the scalable commutativity rule: whenever interface operations commute, they can be implemented in a way that scales. This rule is useful throughout the development process for scalable multicore software, from the interface design through implementation, testing, and evaluation. This article formalizes the scalable commutativity rule. This requires defining a novel form of commutativity, SIM commutativity , that lets the rule apply even to complex and highly stateful software interfaces. We also introduce a suite of software development tools based on the rule. Our Commuter tool accepts high-level interface models, generates tests of interface operations that commute and hence could scale, and uses these tests to systematically evaluate the scalability of implementations. We apply Commuter to a model of 18 POSIX file and virtual memory system operations. Using the resulting 26,238 scalability tests, Commuter highlights Linux kernel problems previously observed to limit application scalability and identifies previously unknown bottlenecks that may be triggered by future workloads or hardware. Finally, we apply the scalable commutativity rule and Commuter to the design and implementation sv6, a new POSIX-like operating system. sv6’s novel file and virtual memory system designs enable it to scale for 99% of the tests generated by Commuter . These results translate to linear scalability on an 80-core x86 machine for applications built on sv6’s commutative operations. Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich, Robert T. Morris, Eddie Kohler |
ACM Trans. Comput. Syst. | 3 |
| 2015 | A Differential Approach to Undefined Behavior DetectionabstractThis article studies undefined behavior arising in systems programming languages such as C/C++. Undefined behavior bugs lead to unpredictable and subtle systems behavior, and their effects can be further amplified by compiler optimizations. Undefined behavior bugs are present in many systems, including the Linux kernel and the Postgres database. The consequences range from incorrect functionality to missing security checks. This article proposes a formal and practical approach that finds undefined behavior bugs by finding “unstable code” in terms of optimizations that leverage undefined behavior. Using this approach, we introduce a new static checker called S tack that precisely identifies undefined behavior bugs. Applying S tack to widely used systems has uncovered 161 new bugs that have been confirmed and fixed by developers. Xi Wang 0005, Nickolai Zeldovich, M. Frans Kaashoek, Armando Solar-Lezama |
ACM Trans. Comput. Syst. | 2 |
| 2014 | VerSum: Verifiable Computations over Large Public LogsabstractVerSum allows lightweight clients to outsource expensive computations over large and frequently changing data structures, such as the Bitcoin or Namecoin blockchains, or a Certificate Transparency log. VerSum clients ensure that the output is correct by comparing the outputs from multiple servers. VerSum assumes that at least one server is honest, and crucially, when servers disagree, VerSum uses an efficient conflict resolution protocol to determine which server(s) made a mistake and thus obtain the correct output. Jelle van den Hooff, M. Frans Kaashoek, Nickolai Zeldovich |
CCS | 3 |
| 2014 | Building Web Applications on Top of Encrypted Data Using Mylar
Raluca A. Popa, Emily Stark 0001, Steven Valdez, Jonas Helfer, Nickolai Zeldovich, Hari Balakrishnan |
NSDI | 5 |
| 2014 | Nail: A Practical Tool for Parsing and Generating Data Formats
Julian Bangert, Nickolai Zeldovich |
OSDI | 2 |
| 2014 | Identifying Information Disclosure in Web Applications with Retroactive Auditing
Haogang Chen 0001, Taesoo Kim, Xi Wang 0005, Nickolai Zeldovich, M. Frans Kaashoek |
OSDI | 4 |
| 2014 | Jitk: A Trustworthy In-Kernel Interpreter Infrastructure
Xi Wang 0005, David Lazar, Nickolai Zeldovich, Adam Chlipala, Zachary Tatlock |
OSDI | 3 |
| 2013 | How to Run Turing Machines on Encrypted Data
Shafi Goldwasser, Yael Tauman Kalai, Raluca A. Popa, Vinod Vaikuntanathan, Nickolai Zeldovich |
CRYPTO (2) | 5 |
| 2013 | RadixVM: scalable address spaces for multithreaded applicationsabstractRadixVM is a new virtual memory system design that enables fully concurrent operations on shared address spaces for multithreaded processes on cache-coherent multicore computers. Today, most operating systems serialize operations such as mmap and munmap, which forces application developers to split their multithreaded applications into multiprocess applications, hoard memory to avoid the overhead of returning it, and so on. RadixVM removes this burden from application developers by ensuring that address space operations on non-overlapping memory regions scale perfectly. It does so by combining three techniques: 1) it organizes metadata in a radix tree instead of a balanced tree to avoid unnecessary cache line movement; 2) it uses a novel memory-efficient distributed reference counting scheme; and 3) it uses a new scheme to target remote TLB shootdowns and to often avoid them altogether. Experiments on an 80 core machine show that RadixVM achieves perfect scalability for non-overlapping regions: if several threads mmap or munmap pages in parallel, they can run completely independently and induce no cache coherence traffic. Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich |
EuroSys | 3 |
| 2013 | Systematic Analysis of Defenses against Return-Oriented Programming
Richard Skowyra, Kelly Casteel, Hamed Okhravi, Nickolai Zeldovich, William W. Streilein |
RAID | 4 |
| 2013 | Asynchronous intrusion recovery for interconnected web servicesabstractRecovering from attacks in an interconnected system is difficult, because an adversary that gains access to one part of the system may propagate to many others, and tracking down and recovering from such an attack requires significant manual effort. Web services are an important example of an interconnected system, as they are increasingly using protocols such as OAuth and REST APIs to integrate with one another. This paper presents Aire, an intrusion recovery system for such web services. Aire addresses several challenges, such as propagating repair across services when some servers may be unavailable, and providing appropriate consistency guarantees when not all servers have been repaired yet. Experimental results show that Aire can recover from four realistic attacks, including one modeled after a recent Facebook OAuth vulnerability; that porting existing applications to Aire requires little effort; and that Aire imposes a 19--30% CPU overhead and 6--9 KB/request storage cost for Askbot, an existing web application. Ramesh Chandra, Taesoo Kim, Nickolai Zeldovich |
SOSP | 3 |
| 2013 | The scalable commutativity rule: designing scalable software for multicore processorsabstractWhat fundamental opportunities for scalability are latent in interfaces, such as system call APIs? Can scalability opportunities be identified even before any implementation exists, simply by considering interface specifications? To answer these questions this paper introduces the following rule: Whenever interface operations commute, they can be implemented in a way that scales. This rule aids developers in building more scalable software starting from interface design and carrying on through implementation, testing, and evaluation. Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich, Robert T. Morris, Eddie Kohler |
SOSP | 3 |
| 2013 | Towards optimization-safe systems: analyzing the impact of undefined behaviorabstractThis paper studies an emerging class of software bugs called optimization-unstable code: code that is unexpectedly discarded by compiler optimizations due to undefined behavior in the program. Unstable code is present in many systems, including the Linux kernel and the Postgres database. The consequences of unstable code range from incorrect functionality to missing security checks. Xi Wang 0005, Nickolai Zeldovich, M. Frans Kaashoek, Armando Solar-Lezama |
SOSP | 2 |
| 2013 | An Ideal-Security Protocol for Order-Preserving EncodingabstractOrder-preserving encryption - an encryption scheme where the sort order of ciphertexts matches the sort order of the corresponding plaintexts - allows databases and other applications to process queries involving order over encrypted data efficiently. The ideal security guarantee for order-preserving encryption put forth in the literature is for the ciphertexts to reveal no information about the plaintexts besides order. Even though more than a dozen schemes were proposed, all these schemes leak more information than order. This paper presents the first order-preserving scheme that achieves ideal security. Our main technique is mutable ciphertexts, meaning that over time, the ciphertexts for a small number of plaintext values change, and we prove that mutable ciphertexts are needed for ideal security. Our resulting protocol is interactive, with a small number of interactions. We implemented our scheme and evaluated it on microbenchmarks and in the context of an encrypted MySQL database application. We show that in addition to providing ideal security, our scheme achieves 1 - 2 orders of magnitude higher performance than the state-of-the-art order-preserving encryption scheme, which is less secure than our scheme. Raluca A. Popa, Frank Li 0001, Nickolai Zeldovich |
IEEE Symposium on Security and Privacy | 3 |
| 2013 | Reusable garbled circuits and succinct functional encryptionabstractGarbled circuits, introduced by Yao in the mid 80s, allow computing a function f on an input x without leaking anything about f or x besides f(x). Garbled circuits found numerous applications, but every known construction suffers from one limitation: it offers no security if used on multiple inputs x. In this paper, we construct for the first time reusable garbled circuits. The key building block is a new succinct single-key functional encryption scheme. Shafi Goldwasser, Yael Tauman Kalai, Raluca A. Popa, Vinod Vaikuntanathan, Nickolai Zeldovich |
STOC | 5 |
| 2013 | Practical and Effective Sandboxing for Non-root Users
Taesoo Kim, Nickolai Zeldovich |
USENIX ATC | 2 |
| 2013 | Processing Analytical Queries over Encrypted DataabstractMONOMI is a system for securely executing analytical workloads over sensitive data on an untrusted database server. MONOMI works by encrypting the entire database and running queries over the encrypted data. MONOMI introduces split client/server query execution, which can execute arbitrarily complex queries over encrypted data, as well as several techniques that improve performance for such workloads, including per-row precomputation, space-efficient encryption, grouped homomorphic addition, and pre-filtering. Since these optimizations are good for some queries but not others, MONOMI introduces a designer for choosing an efficient physical design at the server for a given workload, and a planner to choose an efficient execution plan for a given query at runtime. A prototype of MONOMI running on top of Postgres can execute most of the queries from the TPC-H benchmark with a median overhead of only 1.24× (ranging from 1.03×to 2.33×) compared to an un-encrypted Postgres database where a compromised server would reveal all data. Stephen Tu, M. Frans Kaashoek, Samuel Madden 0001, Nickolai Zeldovich |
Proc. VLDB Endow. | 4 |
| 2012 | Scalable address spaces using RCU balanced treesabstractSoftware developers commonly exploit multicore processors by building multithreaded software in which all threads of an application share a single address space. This shared address space has a cost: kernel virtual memory operations such as handling soft page faults, growing the address space, mapping files, etc. can limit the scalability of these applications. In widely-used operating systems, all of these operations are synchronized by a single per-process lock. This paper contributes a new design for increasing the concurrency of kernel operations on a shared address space by exploiting read-copy-update (RCU) so that soft page faults can both run in parallel with operations that mutate the same address space and avoid contending with other page faults on shared cache lines. To enable such parallelism, this paper also introduces an RCU-based binary balanced tree for storing memory mappings. An experimental evaluation using three multithreaded applications shows performance improvements on 80 cores ranging from 1.7x to 3.4x for an implementation of this design in the Linux 2.6.37 kernel. The RCU-based binary tree enables soft page faults to run at a constant cost with an increasing number of cores,suggesting that the design will scale well beyond 80 cores. Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich |
ASPLOS | 3 |
| 2012 | Improving network connection locality on multicore systemsabstractIncoming and outgoing processing for a given TCP connection often execute on different cores: an incoming packet is typically processed on the core that receives the interrupt, while outgoing data processing occurs on the core running the relevant user code. As a result, accesses to read/write connection state (such as TCP control blocks) often involve cache invalidations and data movement between cores' caches. These can take hundreds of processor cycles, enough to significantly reduce performance. Aleksey Pesterev, Jacob Strauss, Nickolai Zeldovich, Robert T. Morris |
EuroSys | 3 |
| 2012 | Efficient Patch-based Auditing for Web Application Vulnerabilities
Taesoo Kim, Ramesh Chandra, Nickolai Zeldovich |
OSDI | 3 |
| 2012 | Improving Integer Security for Systems with KINT
Xi Wang 0005, Haogang Chen 0001, Nickolai Zeldovich, M. Frans Kaashoek |
OSDI | 4 |
| 2012 | CPHASH: a cache-partitioned hash tableabstractCPHash is a concurrent hash table for multicore processors. CPHash partitions its table across the caches of cores and uses message passing to transfer lookups/inserts to a partition. CPHash's message passing avoids the need for locks, pipelines batches of asynchronous messages, and packs multiple messages into a single cache line transfer. Experiments on a 80-core machine with 2 hardware threads per core show that CPHash has ~1.6x higher throughput than a hash table implemented using fine-grained locks. An analysis shows that CPHash wins because it experiences fewer cache misses and its cache misses are less expensive, because of less contention for the on-chip interconnect and DRAM. CPServer, a key/value cache server using CPHash, achieves ~5% higher throughput than a key/value cache server that uses a hash table with fine-grained locks, but both achieve better throughput and scalability than memcached. The throughput of CPHash and CPServer also scale near-linearly with the number of cores. Zviad Metreveli, Nickolai Zeldovich, M. Frans Kaashoek |
PPoPP | 2 |
| 2011 | Relational Cloud: a Database Service for the cloud
Carlo Curino, Evan P. C. Jones, Raluca A. Popa, Nirmesh Malviya, Eugene Wu 0002, Samuel Madden 0001, Hari Balakrishnan, Nickolai Zeldovich |
CIDR | 8 |
| 2011 | Energy management in mobile devices with the cinder operating systemabstractWe argue that controlling energy allocation is an increasingly useful and important feature for operating systems, especially on mobile devices. We present two new low-level abstractions in the Cinder operating system, reserves and taps, which store and distribute energy for application use. We identify three key properties of control -- isolation, delegation, and subdivision -- and show how using these abstractions can achieve them. We also show how the architecture of the HiStar information-flow control kernel lends itself well to energy control. We prototype and evaluate Cinder on a popular smartphone, the Android G1. Stephen M. Rumble, Ryan Stutsman, Philip Alexander Levis, David Mazières, Nickolai Zeldovich |
EuroSys | 6 |
| 2011 | A Trigger-Based Middleware Cache for ORMs
Nickolai Zeldovich, Samuel Madden 0001 |
Middleware | 2 |
| 2011 | Intrusion recovery for database-backed web applicationsabstractWarp is a system that helps users and administrators of web applications recover from intrusions such as SQL injection, cross-site scripting, and clickjacking attacks, while preserving legitimate user changes. Warp repairs from an intrusion by rolling back parts of the database to a version before the attack, and replaying subsequent legitimate actions. Warp allows administrators to retroactively patch security vulnerabilities---i.e., apply new security patches to past executions---to recover from intrusions without requiring the administrator to track down or even detect attacks. Warp's time-travel database allows fine-grained rollback of database rows, and enables repair to proceed concurrently with normal operation of a web application. Finally, Warp captures and replays user input at the level of a browser's DOM, to recover from attacks that involve a user's browser. For a web server running MediaWiki, Warp requires no application source code changes to recover from a range of common web application vulnerabilities with minimal user input at a cost of 24--27% in throughput and 2--3.2 GB/day in storage. Ramesh Chandra, Taesoo Kim, Meelap Shah, Neha Narula, Nickolai Zeldovich |
SOSP | 5 |
| 2011 | Software fault isolation with API integrity and multi-principal modulesabstractThe security of many applications relies on the kernel being secure, but history suggests that kernel vulnerabilities are routinely discovered and exploited. In particular, exploitable vulnerabilities in kernel modules are common. This paper proposes LXFI, a system which isolates kernel modules from the core kernel so that vulnerabilities in kernel modules cannot lead to a privilege escalation attack. To safely give kernel modules access to complex kernel APIs, LXFI introduces the notion of API integrity, which captures the set of contracts assumed by an interface. To partition the privileges within a shared module, LXFI introduces module principals. Programmers specify principals and API integrity rules through capabilities and annotations. Using a compiler plugin, LXFI instruments the generated code to grant, check, and transfer capabilities between modules, according to the programmer's annotations. An evaluation with Linux shows that the annotations required on kernel functions to support a new module are moderate, and that LXFI is able to prevent three known privilege-escalation vulnerabilities. Stress tests of a network driver module also show that isolating this module using LXFI does not hurt TCP throughput but reduces UDP throughput by 35%, and increases CPU utilization by 2.2-3.7x. Yandong Mao, Haogang Chen 0001, Dong Zhou 0006, Xi Wang 0005, Nickolai Zeldovich, M. Frans Kaashoek |
SOSP | 5 |
| 2011 | CryptDB: protecting confidentiality with encrypted query processingabstractOnline applications are vulnerable to theft of sensitive information because adversaries can exploit software bugs to gain access to private data, and because curious or malicious administrators may capture and leak data. CryptDB is a system that provides practical and provable confidentiality in the face of these attacks for applications backed by SQL databases. It works by executing SQL queries over encrypted data using a collection of efficient SQL-aware encryption schemes. CryptDB can also chain encryption keys to user passwords, so that a data item can be decrypted only by using the password of one of the users with access to that data. As a result, a database administrator never gets access to decrypted data, and even if all servers are compromised, an adversary cannot decrypt the data of any user who is not logged in. An analysis of a trace of 126 million SQL queries from a production MySQL server shows that CryptDB can support operations over encrypted data for 99.5% of the 128,840 columns seen in the trace. Our evaluation shows that CryptDB has low overhead, reducing throughput by 14.5% for phpBB, a web forum application, and by 26% for queries from TPC-C, compared to unmodified MySQL. Chaining encryption keys to user passwords requires 11--13 unique schema annotations to secure more than 20 sensitive fields and 2--7 lines of source code changes for three multi-user web applications. Raluca A. Popa, Catherine M. S. Redfield, Nickolai Zeldovich, Hari Balakrishnan |
SOSP | 3 |
| 2011 | Secure In-Band Wireless Pairing
Shyamnath Gollakota, Nabeel Ahmed, Nickolai Zeldovich, Dina Katabi |
USENIX Security Symposium | 3 |
| 2010 | Locating cache performance bottlenecks using data profilingabstractEffective use of CPU data caches is critical to good performance, but poor cache use patterns are often hard to spot using existing execution profiling tools. Typical profilers attribute costs to specific code locations. The costs due to frequent cache misses on a given piece of data, however, may be spread over instructions throughout the application. The resulting individually small costs at a large number of instructions can easily appear insignificant in a code profiler's output. DProf helps programmers understand cache miss costs by attributing misses to data types instead of code. Associating cache misses with data helps programmers locate data structures that experience misses in many places in the application's code. DProf introduces a number of new views of cache miss data, including a data profile, which reports the data types with the most cache misses, and a data flow graph, which summarizes how objects of a given type are accessed throughout their lifetime, and which accesses incur expensive cross-CPU cache loads. We present two case studies of using DProf to find and fix cache performance bottlenecks in Linux. The improvements provide a 16-57% throughput improvement on a range of memcached and Apache workloads. Aleksey Pesterev, Nickolai Zeldovich, Robert T. Morris |
EuroSys | 2 |
| 2010 | An Analysis of Linux Scalability to Many Cores
Silas Boyd-Wickizer, Austin T. Clements, Yandong Mao, Aleksey Pesterev, M. Frans Kaashoek, Robert Morris 0005, Nickolai Zeldovich |
OSDI | 7 |
| 2010 | Intrusion Recovery Using Selective Re-execution
Taesoo Kim, Xi Wang 0005, Nickolai Zeldovich, M. Frans Kaashoek |
OSDI | 3 |
| 2010 | Tolerating Malicious Device Drivers in Linux
Silas Boyd-Wickizer, Nickolai Zeldovich |
USENIX ATC | 2 |
| 2010 | Making Linux Protection Mechanisms Egalitarian with UserFS
Taesoo Kim, Nickolai Zeldovich |
USENIX Security Symposium | 2 |
| 2009 | Improving application security with data flow assertionsabstractResin is a new language runtime that helps prevent security vulnerabilities, by allowing programmers to specify application-level data flow assertions. Resin provides policy objects, which programmers use to specify assertion code and metadata; data tracking, which allows programmers to associate assertions with application data, and to keep track of assertions as the data flow through the application; and filter objects, which programmers use to define data flow boundaries at which assertions are checked. Resin's runtime checks data flow assertions by propagating policy objects along with data, as that data moves through the application, and then invoking filter objects when data crosses a data flow boundary, such as when writing data to the network or a file. Alexander Yip, Xi Wang 0005, Nickolai Zeldovich, M. Frans Kaashoek |
SOSP | 3 |
| 2009 | Nemesis: Preventing Authentication & Access Control Vulnerabilities in Web Applications
Michael Dalton, Christoforos E. Kozyrakis, Nickolai Zeldovich |
USENIX Security Symposium | 3 |
| 2008 | Securing Distributed Systems with Information Flow Control
Nickolai Zeldovich, Silas Boyd-Wickizer, David Mazières |
NSDI | 1 |
| 2008 | Hardware Enforcement of Application Security Policies Using Tagged Memory
Nickolai Zeldovich, Hari Kannan, Michael Dalton, Christoforos E. Kozyrakis |
OSDI | 1 |
| 2006 | Making Information Flow Explicit in HiStar
Nickolai Zeldovich, Silas Boyd-Wickizer, Eddie Kohler, David Mazières |
OSDI | 1 |
| 2005 | The Collective: A Cache-Based System Management Architecture
Ramesh Chandra, Nickolai Zeldovich, Constantine P. Sapuntzakis, Monica S. Lam |
NSDI | 2 |
| 2003 | Virtual Appliances for Deploying and Maintaining Software
Constantine P. Sapuntzakis, David Brumley, Ramesh Chandra, Nickolai Zeldovich, Jim Chow, Monica S. Lam, Mendel Rosenblum |
LISA | 4 |
| 2003 | Multiprocessor Support for Event-Driven Programs
Nickolai Zeldovich, Alexander Yip, Frank Dabek, Robert T. Morris, David Mazières, M. Frans Kaashoek |
USENIX ATC, General Track | 1 |