A computational logic handbook
A computational logic handbook
Logical frameworks
An algorithm for testing conversion in type theory
Logical frameworks
A framework for defining logics
Journal of the ACM (JACM)
A mechanized Hoare logic of state transitions
A classical mind
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From system F to typed assembly language
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Java security: Web browsers and beyond
Internet besieged
CCS '99 Proceedings of the 6th ACM conference on Computer and communications security
A semantic model of types and machine instructions for proof-carrying code
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From LCF to HOL: a short history
Proof, language, and interaction
A certifying compiler for Java
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Communications of the ACM
Oracle-based checking of untrusted software
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An indexed model of recursive types for foundational proof-carrying code
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Stratified Semantics of General References Embeddable in Higher-Order Logic
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Recording and Checking HOL Proofs
Proceedings of the 8th International Workshop on Higher Order Logic Theorem Proving and Its Applications
Automated Correctness Proofs of Machine Code Programs for a Commercial Microprocessor
CADE-11 Proceedings of the 11th International Conference on Automated Deduction: Automated Deduction
A General and Flexible Access-Control System for the Web
Proceedings of the 11th USENIX Security Symposium
Machine Instruction Syntax and Semantics in Higher Order Logic
CADE-17 Proceedings of the 17th International Conference on Automated Deduction
Handbook of automated reasoning
Handbook of automated reasoning
Binder, a Logic-Based Security Language
SP '02 Proceedings of the 2002 IEEE Symposium on Security and Privacy
Foundational Proof-Carrying Code
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
Foundational proof checkers with small witnesses
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Verification and Abstraction of Flow-Graph Programs with Pointers and Computed Jumps
Verification and Abstraction of Flow-Graph Programs with Pointers and Computed Jumps
Convincing Proofs for Program Certification
Electronic Notes in Theoretical Computer Science (ENTCS)
Validated Proof-Producing Decision Procedures
Electronic Notes in Theoretical Computer Science (ENTCS)
Electronic Notes in Theoretical Computer Science (ENTCS)
Semantic foundations for typed assembly languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Mechanizing the metatheory of LF
ACM Transactions on Computational Logic (TOCL)
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Device-enabled authorization in the grey system
ISC'05 Proceedings of the 8th international conference on Information Security
Generating Invariant-Based Certificates for Embedded Systems
ACM Transactions on Embedded Computing Systems (TECS)
Hi-index | 0.00 |
Proof-carrying code (PCC) and other applications in computer security require machine-checkable proofs of properties of machine-language programs. The main advantage of the PCC approach is that the amount of code that must be explicitly trusted is very small: it consists of the logic in which predicates and proofs are expressed, the safety predicate, and the proof checker. We have built a minimal proof checker, and we explain its design principles and the representation issues of the logic, safety predicate, and safety proofs. We show that the trusted computing base (TCB) in such a system can indeed be very small. In our current system the TCB is less than 2,700 lines of code (an order of magnitude smaller even than other PCC systems), which adds to our confidence of its correctness.