Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/360204.360216acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article

Oracle-based checking of untrusted software

Published: 01 January 2001 Publication History
  • Get Citation Alerts
  • Abstract

    We present a variant of Proof-Carrying Code (PCC) in which the trusted inference rules are represented as a higherorder logic program, the proof checker is replaced by a nondeterministic higher-order logic interpreter and the proof by an oracle implemented as a stream of bits that resolve the nondeterministic interpretation choices. In this setting, Proof-Carrying Code allows the receiver of the code the luxury of using nondeterminism in constructing a simple yet powerful checking procedure.This oracle-based variant of PCC is able to adapt quite naturally to situations when the property being checked is simple or there is a fairly directed search procedure for it. As an example, we demonstrate that if PCC is used to verify type safety of assembly language programs compiled from Java source programs, the oracles that are needed are on the average just 12% of the size of the code, which represents an improvement of a factor of 30 over previous syntactic representations of PCC proofs.

    References

    [1]
    A. W. Appel and E. W. Felten. Proof-carrying authentication. In 5th ACM Conference on Computer and Communications Security: pages 52-62: Singapore: Nov. 1999. ACM Press.
    [2]
    A. Avron: F. A. Honsell: I. A. Mason: and R. Pollack. Using typed lambda calculus to implement formal systems on a machine. Journal of Automated Reasoning: 9(3):309-354: 1992. A preliminary version appeared as University of Edinburgh Report ECS-LFCS-87-31.
    [3]
    N. DeBruijn. Lambda-calculus notation with nameless dummies: a tool for automatic formula manipulation. Indag. Mat.: 34:381-392: 1972.
    [4]
    G. Dowek: A. Felty: H. Herbelin: G. P. Huet: C. Murthy: C. Parent: C. Paulin-Mohring: and B. Werner. The Coq proof assistant user's guide. Version 5.8. Technical report: INRIA - Rocquencourt: May 1993.
    [5]
    C. Elliott. Higher-order unification with dependent types. In N. Dershowitz: editor: Rewritin9 Techniques and Applications: pages 121-136: Chapel Hill: North Carolina: Apr. 1989. Springer-Verlag LNCS 355.
    [6]
    J.-Y. Girard. Une extension de Pinterpretation de GSdel h l'analyse: et son application h l'elimination des coupures dans l'analyse et la theorie des types. In J. E. Fenstad: editor: Proceedings 2nd Scandinavian Logic Symp., Oslo, Norway, 18-20 June 1970: volume 63 of Studies in Logic and the Foundations of Mathematics: pages 63-92. North-Holland: Amsterdam: 1971.
    [7]
    Girard: J.-Y. Interprdtation Fonctionnelle et Elimination des Coupures de l'Arithmgtique d'Ordre Supdrieur. These de doctorat d'etat: Universite Paris VII: June 1972.
    [8]
    R. Harper: F. Honsell: and G. Plotkin. A framework for defining logics. Journal of the Association for Computing Machinery: 40(1):143-184: Jan. 1993.
    [9]
    R. Harrop. Concerning formulas of the types A -+ B V C: A --4 (Ex)B(x) in intuitionistic formal systems. Journal of Symbolic Logic: pages 27-32: 1960.
    [10]
    G. Huet. A unification algorithm for typed lambda calculus. Theoretical Computer Science: 1(1):27-57: 1973.
    [11]
    T. Lindholm and F. Yellin. The Java Virtual Machine Specification. The Java Series. Addison-Wesley, Reading: MA: USA: Jan. 1997.
    [12]
    Z. Luo and R. Pollack. The LEGO proof development system: A user's manual. Technical Report ECS-LFCS- 92-211: University of Edinburgh: May 1992.
    [13]
    S. Michaylov and F. Pfenning. An empirical study of the runtime behavior of higher-order logic programs. In D. Miller: editor: Proceedings of the Workshop on the \Prolog Programming Language: pages 257-271: July 1992. Available as Technical Report MS-CIS-92-86.
    [14]
    Microsoft Corporation. Proposal for authenticating code via the Internet. http://www.microsoft.com- /security/tech/authcode/authcode-f.htm: Apr. 1996.
    [15]
    D. Miller. A logic programming language with lambdaabstraction: function variables: and simple unification. Journal of Logic and Computation: 1(4):497-536: Sept. 1991.
    [16]
    G. Morrisett: D. Walker: K. Crary: and N. Glew. From system F to typed assembly language. ACM Transactions on Programming Languages and Systems: 21(3):527-568: May 1999.
    [17]
    G. Nadathur. A proof procedure for the logic of hereditary Harrop formulas. Journal of Automated Reasoning: 11(1):115-145: Aug. 1993.
    [18]
    G. Nadathur and D. Miller. Higher-order logic programming. In D. M. Gabbay, C. J. Hogger, and J. A. Robinson, editors, Handbook of Logic in Artificial Intelli9ence and Logic Programmin9, volume 5, chapter 8. Oxford University Press, 1998.
    [19]
    G. C. Necula. Proof-carrying code. In The 24th Annual ACM Symposium on Principles of Programming Languages, pages 106-119. ACM, Jan. 1997.
    [20]
    G. C. Necula. Compiling with Proofs. PhD thesis, Carnegie Mellon University, Sept. 1998. Also available as CMU-CS-98-154.
    [21]
    G. C. Necula and P. Lee. The design and implementation of a certifying compiler. In ACM SIGPLAN'98 Conference on Programming Language Design and Implementation, pages 333-344, June 1998.
    [22]
    G. C. Necula and P. Lee. Efficient representation and validation of proofs. In Thirteenth Annual Symposium on Logic in Computer Science, pages 93-104, Indianapolis, June 1998. IEEE Computer Society Press.
    [23]
    F. Pfenning. Logic programming in the LF logical framework. In G. Huet and G. Plotkin, editors, Logical Frameworks, pages 149-181. Cambridge University Press, 1991.
    [24]
    F. Pfenning. Elf: A meta-language for deductive systems (system description). In A. Bundy, editor, lZth International Conference on Automated Deduction, LNAI 814, pages 811-815, Nancy, France, June 26-July 1, 1994. Springer-Verlag.
    [25]
    R. Ramesh, I. V. Ramakrishnan, and D. S. Warren. Automata-driven indexing of Prolog clauses. Journal of Logic Programming, 23(2):151-202, May 1995.
    [26]
    J. C. Reynolds. Towards a theory of type structures. In Pro9rammin9 Symposium (Colloque sur la Programmation, Paris), volume 19 of Lecture Notes in Computer Science, pages 408-425. Springer-Verlag, Berlin, Heidelberg, and New York, 1974.
    [27]
    J. B. Wells. Typability and type-checking in the secondorder \-calculus are equivalent and undecidable. In Proceedings, Ninth Annual IEEE Symposium on Logic in Computer Science, pages 176-185, Paris, France, 4-7 July 1994. IEEE Computer Society Press.

    Cited By

    View all

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    POPL '01: Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
    January 2001
    304 pages
    ISBN:1581133367
    DOI:10.1145/360204
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 January 2001

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Conference

    POPL01

    Acceptance Rates

    POPL '01 Paper Acceptance Rate 24 of 126 submissions, 19%;
    Overall Acceptance Rate 824 of 4,130 submissions, 20%

    Upcoming Conference

    POPL '25

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)3
    • Downloads (Last 6 weeks)1

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media