Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Zhaozhong Ni

dblp:62/1456 · DBLP profile ↗
← Back
5ranked-venue papers
1as first author
1since 2021 · last 2024
0009-0000-6138-8780ORCID · corroborated

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

Software engineering, systems software and programming languages · 3 · 1 first-author · 1 since 2021Artificial intelligence and machine learning · 1Systems, architecture and hardware · 1 · 1 since 2021Theory of computation · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
4 papers
Program verification · 67% Programming languages and type systems · 33%
Network and information security
2 papers
Hardware security and side channels · 92% Systems and software security · 8%

Topics — the 11 heaviest of 11, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Hardware security and side channels
trusted execution environments
0.812024
Verifying Rust Implementation of Page Tables in a Software Enclave Hypervisor · ASPLOS (2) 2024
Program verification › system verification › systems code verification
hypervisor verification
0.812024
Verifying Rust Implementation of Page Tables in a Software Enclave Hypervisor · ASPLOS (2) 2024
Programming languages and type systems › language-based security
memory safety
0.212024
Verifying Rust Implementation of Page Tables in a Software Enclave Hypervisor · ASPLOS (2) 2024
Programming languages and type systems
rust
0.212024
Verifying Rust Implementation of Page Tables in a Software Enclave Hypervisor · ASPLOS (2) 2024
Systems and software security › security verification
proof-carrying code
0.112006
Certified assembly programming with embedded code pointers · POPL 2006
Program verification › program logic
hoare logic
0.112006
Certified assembly programming with embedded code pointers · POPL 2006
Program verification › code-level verification
machine code verification
0.112006
Modular verification of assembly code with stack-based control abstractions · PLDI 2006
Program verification
proof-carrying code
0.122006
A Syntactic Approach to Foundational Proof-Carrying Code · LICS 2002
Modular verification of assembly code with stack-based control abstractions · PLDI 2006
Program verification › proof-carrying code
foundational proof-carrying code
0.012002
A Syntactic Approach to Foundational Proof-Carrying Code · LICS 2002
Programming languages and type systems › type systems › static typing
typed assembly language
0.012002
A Syntactic Approach to Foundational Proof-Carrying Code · LICS 2002
Program verification › program logic
separation logic
0.012006
Certified assembly programming with embedded code pointers · POPL 2006

Methods — techniques the papers use, named apart from their topics

rust · 1.5formal verification · 1.5coq · 0.2separation logic · 0.1hoare logic · 0.1hoare-style framework · 0.1typing derivation · 0.0coq proof assistant · 0.0
YearPublicationVenuePosition
2024 Verifying Rust Implementation of Page Tables in a Software Enclave Hypervisor
abstract
As trusted execution environments (TEE) have become the corner stone for secure cloud computing, it is critical that they are reliable and enforce proper isolation, of which a key ingredient is spatial isolation. Many TEEs are implemented in software such as hypervisors for flexibility, and in a memory-safe language, namely Rust to alleviate potential memory bugs. Still, even if memory bugs are absent from the TEE, it may contain semantic errors such as mis-configurations in its memory subsystem which breaks spatial isolation.
Zhenyang Dai, Vilhelm Sjöberg, Xupeng Li, Yu Chen 0004, Wenhao Wang 0001, Yuekai Jia, Sean Noble Anderson, Laila Elbeheiry, Shubham Sondhi, Yu Zhang 0313, Zhaozhong Ni, Shoumeng Yan, Ronghui Gu, Zhengyu He
ASPLOS (2)12
2006 Modular verification of assembly code with stack-based control abstractions
abstract
Runtime stacks are critical components of any modern software--they are used to implement powerful control structures such as function call/return, stack cutting and unwinding, coroutines, and thread context switch. Stack operations, however, are very hard to reason about: there are no known formal specifications for certifying C-style setjmp/longjmp, stack cutting and unwinding, or weak continuations (in C--). In many proof-carrying code (PCC) systems, return code pointers and exception handlers are treated as general first-class functions (as in continuation-passing style) even though both should have more limited scopes.In this paper we show that stack-based control abstractions follow a much simpler pattern than general first-class code pointers. We present a simple but flexible Hoare-style framework for modular verification of assembly code with all kinds of stackbased control abstractions, including function call/return, tail call, setjmp/longjmp, weak continuation, stack cutting, stack unwinding, multi-return function call, coroutines, and thread context switch. Instead of presenting a specific logic for each control structure, we develop all reasoning systems as instances of a generic framework. This allows program modules and their proofs developed in different PCC systems to be linked together. Our system is fully mechanized. We give the complete soundness proof and a full verification of several examples in the Coq proof assistant.
Xinyu Feng 0001, Zhong Shao 0001, Alexander Vaynberg, Sen Xiang, Zhaozhong Ni
PLDI5
2006 Certified assembly programming with embedded code pointers
abstract
Embedded code pointers (ECPs) are stored handles of functions and continuations commonly seen in low-level binaries as well as functional or higher-order programs. ECPs are known to be very hard to support well in Hoare-logic style verification systems. As a result, existing proof-carrying code (PCC) systems have to either sacrifice the expressiveness or the modularity of program specifications, or resort to construction of complex semantic models. In Reynolds's LICS'02 paper, supporting ECPs is listed as one of the main open problems for separation logic.In this paper we present a simple and general technique for solving the ECP problem for Hoare-logic-based PCC systems. By adding a small amount of syntax to the assertion language, we show how to combine semantic consequence relation with syntactic proof techniques. The result is a new powerful framework that can perform modular reasoning on ECPs while still retaining the expressiveness of Hoare logic. We show how to use our techniques to support polymorphism, closures, and other language extensions and how to solve the ECP problem for separation logic. Our system is fully mechanized. We give its complete soundness proof and a full verification of Reynolds's CPS-style "list-append" example in the Coq proof assistant.
Zhaozhong Ni, Zhong Shao 0001
POPL1
2003 A Syntactic Approach to Foundational Proof-Carrying Code
Nadeem Abdul Hamid, Zhong Shao 0001, Valery Trifonov, Stefan Monnier, Zhaozhong Ni
J. Autom. Reason.5
2002 A Syntactic Approach to Foundational Proof-Carrying Code
abstract
Proof-carrying code (PCC) is a general framework for verifying the safety properties of machine-language programs. PCC proofs are usually written in a logic extended with language-specific typing rules. In foundational proof-carrying code (FPCC), on the other hand, proofs are constructed and verified using strictly the foundations of mathematical logic, with no type-specific axioms. FPCC is more flexible and secure because it is not tied to any particular type system and it has a smaller trusted base. Foundational proofs, however are much harder to construct. Previous efforts on FPCC all required building sophisticated semantic models for types. In this paper, we present a syntactic approach to FPCC that avoids the difficulties of previous work. Under our new scheme, the foundational proof for a typed machine program simply consists of the typing derivation plus the formalized syntactic soundness proof for the underlying type system. We give a translation from a typed assembly language into FPCC and demonstrate the advantages of our new system via an implementation in the Coq proof assistant.
Nadeem Abdul Hamid, Zhong Shao 0001, Valery Trifonov, Stefan Monnier, Zhaozhong Ni
LICS5