Mobile Agents and Security

Volume 1419 of the series Lecture Notes in Computer Science pp 61-91


Safe, Untrusted Agents Using Proof-Carrying Code

  • George C. NeculaAffiliated withSchool of Computer Science, Carnegie Mellon University
  • , Peter LeeAffiliated withSchool of Computer Science, Carnegie Mellon University

* Final gross prices may vary according to local VAT.

Get Access


Proof-Carrying Code (PCC) enables a computer system to determine, automatically and with certainty, that program code provided by another system is safe to install and execute without requiring interpretation or run-time checking. PCC has applications in any computing system in which the safe, efficient, and dynamic installation of code is needed. The key idea is to attach to the code an easily-checkable proof that its execution does not violate the safety policy of the receiving system. This paper describes the design and a typical implementation of Proof-Carrying Code, where the language used for specifying the safety properties is first-order predicate logic. Examples of safety properties described in this paper are memory safety and compliance with data access policies, resource usage bounds, and data abstraction boundaries.