Abstract
A certificate is a mathematical object that can be used to establish that a piece of mobile code satisfies some security policy. In general, certificates cannot be generated automatically. There is thus an interest in developing methods to reuse certificates generated for source code to provide strong guarantees of the compiled code correctness. Certificate translation is a method to transform certificates of program correctness along semantically justified program transformations. These methods have been developed in previous work, but they were strongly dependent on particular programming and verification settings. This article provides a more general development in the setting of abstract interpretation, showing the scalability of certificate translation.
- Albert, E., Puebla, G., and Hermenegildo, M. V. 2005. Abstraction-carrying code. In Proceedings of the 11th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning. F. and A. Voronkov Eds., Lecture Notes in Computer Science, vol. 3452, Springer-Verlag, 380--397.Google Scholar
- Appel, A. W. 2001. Foundational proof-carrying code. In Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science (LICS’01). J. Halpern Ed., IEEE Press, 247. Google Scholar
Digital Library
- Appel, A. W. and Felten, E. W. 2001. Models for security policies in proof-carrying code. Tech. rep. TR-636-01, Princeton University.Google Scholar
- Bannwart, F. Y. and Müller, P. 2005. A program logic for bytecode. Electron. Notes Theor. Comput. Sci. 141, 255--273. Google Scholar
Digital Library
- Barnett, M., Leino, K. R. M., and Schulte, W. 2005. The Spec# programming system: An overview. In Proceedings of the International Workshop on Construction and Analysis of Safe, Secure and Interoperable Smart Devices (CASSIS’04). G. Barthe, L. Burdy, M. Huisman, J.-L. Lanet, and T. Muntean Eds., Lecture Notes in Computer Science Series, vol. 3362, Springer-Verlag, 151--171. Google Scholar
Digital Library
- Barrett, C. W., Fang, Y., Goldberg, B., Hu, Y., Pnueli, A., and Zuck, L. D. 2005. Tvoc: A translation validator for optimizing compilers. In Proceedings of the 17th International Conference on Computer-Aided Verification (CAV’05). K. Etessami and S. K. Rajamani Eds., Lecture Notes in Computer Science Series, vol. 3576, Springer-Verlag, 291--295. Google Scholar
Digital Library
- Barthe, G. and Kunz, C. 2008. Certificate translation in abstract interpretation. In Proceedings of the European Symposium on Programming. S. Drossopoulou Ed., Lecture Notes in Computer Science Series, vol. 4960, SpringerVerlag, 368--382. Google Scholar
Digital Library
- Barthe, G., Rezk, T., and Saabas, A. 2005. Proof obligations preserving compilation. In Proceedings of the Workshop on Formal Aspects in Security and Trust. T. Dimitrakos, F. Martinelli, P. Ryan, and S. Schneider Eds., Lecture Notes in Computer Science, vol. 3866, Springer-Verlag, 112--126. Google Scholar
Digital Library
- Barthe, G., Pichardie, D., and Rezk, T. 2007. A certified lightweight non-interference Java bytecode verifier. In Proceedings of the 16th European Symposium on Programming (ESOP’07). Lecture Notes in Computer Science, vol. 4421, Springer-Verlag, 125--140. Google Scholar
Digital Library
- Barthe, G., Crégut, P., Grégoire, B., Jensen, T., and Pichardie, D. 2008. The MOBIUS proof carrying code infrastructure. In Proceedings of the 6th International Symposium on Formal Methods for Components and Objects (FMCO’07). Springer-Verlag, 1--24. Google Scholar
Digital Library
- Barthe, G., Grégoire, B., and Pavlova, M. 2008. Preservation of proof obligations from Java to the Java virtual machine. In Proceedings of the International Joint Conference on Automated Reasoning. A. Armando, P. Baumgartner, and G. Dowek Eds., Lecture Notes in Computer Science Series, vol. 5195, Springer, 83--99. Google Scholar
Digital Library
- Barthe, G., Grégoire, B., Kunz, C., and Rezk, T. 2009. Certificate translation for optimizing compilers. ACM Trans. Program. Lang. Syst. 31, 5, 18:1--18:45. Google Scholar
Digital Library
- Benton, N. 2004. Simple relational correctness proofs for static analyses and program transformations. In Proceedings of the ACM Symposium on Principles of Programming Languages. N. D. Jones and X. Leroy Eds., ACM Press, 14--25. Google Scholar
Digital Library
- Beringer, L. and Hofmann, M. 2007. Secure information flow and program logics. In Proceedings of the IEEE Computer Security Foundations Symposium. IEEE Press, 233--248. Google Scholar
Digital Library
- Besson, F., Jensen, T., Pichardie, D., and Turpin, T. 2007. Result certification for relational program analysis. Resear. rep. 6333, IRISA.Google Scholar
- Cachera, D., Jensen, T., Pichardie, D., and Rusu, V. 2004. Extracting a data flow analyser in constructive logic. In Proceedings of the European Symposium on Programming. Lecture Notes in Computer Science Series, vol. 2986, 385--400.Google Scholar
Cross Ref
- Chaieb, A. 2006. Proof-producing program analysis. In Proceedings of the International Colloquium on Theoretical Aspects of Computing. K. Barkaoui, A. Cavalcanti, and A. Cerone Eds., Lecture Notes in Computer Science Series, vol. 4281, Springer-Verlag, 287--301. Google Scholar
Digital Library
- Chalin, P. and James, P. R. 2007. Non-null references by default in Java: Alleviating the nullity annotation burden. In Proceedings of the European Conference on Object-Oriented Programming. 227--247. Google Scholar
Digital Library
- Chen, J., Chugh, R., and Swamy, N. 2010. Type-preserving compilation of end-to-end verification of security enforcement. In Proceedings of the ACM Conference on Programming Languages Design and Implementation. B. G. Zorn and A. Aiken Eds., ACM, 412--423. Google Scholar
Digital Library
- Cousot, P. and Cousot, R. 1977. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proceedings of the ACM Symposium on Principles of Programming Languages. 238--252. Google Scholar
Digital Library
- Cousot, P. and Cousot, R. 1979. Systematic design of program analysis frameworks. In Proceedings of the ACM Symposium on Principles of Programming Languages. 269--282. Google Scholar
Digital Library
- Cousot, P. and Cousot, R. 1992. Abstract interpretation frameworks. J. Log. Comput. 2, 4, 511--547.Google Scholar
Cross Ref
- Grégoire, B. and Sacchini, J. 2008. Combining a verification condition generator for a bytecode language with static analyses. In Proceedings of the 3rd Symposium on Trustworthy Global Computing: Revised Selected Papers. Lecture Notes in Computer Science, vol. 4912, Springer-Verlag, 23--40. Google Scholar
Digital Library
- Grossman, D. and Morrisett, J. G. 2000. Scalable certification for typed assembly language. In Proceedings of the 3rd International Workshop on Types in Compilation. R. Harper Ed., Lecture Notes in Computer Science Series, vol. 2071, Springer, 117--146. Google Scholar
Digital Library
- Hankin, C., Nielson, F., and Nielson, H. R. 2005. Principles of Program Analysis 2nd Ed. Springer-Verlag.Google Scholar
- Kunz, C. 2010. Certificate translation for the verification of concurrent programs. In Proceedings of the Symposium on Trustworthy Global Computing. M. Hofmann and M. Wirsing Eds., Lecture Notes in Computer Science Series, vol. 6084, Springer-Verlag. Google Scholar
Digital Library
- Lerner, S., Millstein, T., Rice, E., and Chambers, C. 2005. Automated soundness proofs for dataflow analyses and transformations via local rules. In Proceedings of the ACM Symposium on Principles of Programming Languages. ACM, New York, NY, 364--377. Google Scholar
Digital Library
- Leroy, X. 2006. Formal certification of a compiler back-end or: Programming a compiler with a proof assistant. In Proceedings of the ACM Symposium on Principles of Programming Languages. J. G. Morrisett and S. L. P. Jones Eds., ACM Press, 42--54. Google Scholar
Digital Library
- Logozzo, F. and Fähndrich, M. 2008. On the relative tompleteness of bytecode analysis versus source code analysis. In Proceedings of the International Conference on Compiler Construction. L. Hendren Ed., Lecture Notes in Computer Science Series, vol. 4959, Springer, 197--212. Google Scholar
Digital Library
- Morrisett, G., Crary, K., Glew, N., Grossman, D., Samuels, R., Smith, F., Walker, D., Weirich, S., and Zdancewic, S. 1999a. Talx86: A realistic typed assembly language. In Proceedings of the Workshop on Compiler Support for System Software. 25--35.Google Scholar
- Morrisett, G., Walker, D., Crary, K., and Glew, N. 1999b. From system F to typed assembly language. ACM Trans. Program. Lang. Syst. 21, 3, 527--568. Google Scholar
Digital Library
- Müller, P. and Nordio, M. 2007. Proof-transforming compilation of programs with abrupt termination. Tech. rep. 565, ETH Zurich.Google Scholar
- Myers, A. C. 1999. JFlow: Practical mostly-static information flow control. In Proceedings of the ACM Symposium on Principles of Programming Languages. ACM Press, 228--241. (Ongoing development at http://www.cs.cornell.edu/jif/.) Google Scholar
Digital Library
- Necula, G. C. 1998. Compiling with proofs. Tech. rep. CMU-CS-98-154, Carnegie Mellon University.Google Scholar
- Necula, G. C. and Lee, P. 1996. Safe kernel extensions without run-time checking. In Proceedings of the USENIX Symposium on Operating Systems Design and Implementation. USENIX Assoc., Berkeley, CA, 229--243. Google Scholar
Digital Library
- Necula, G. C. and Lee, P. 1998. The design and implementation ofa certifying compiler. In Proceedings of the Conference on Programming Languages Design and Implementation. ACM Press, New York, NY, 333--344. Google Scholar
Digital Library
- Pnueli, A., Singerman, E., and Siegel, M. 1998. Translation validation. In Proceedings of the 4th International Conference on Tools and Algorithms for the Construction and Analysis of Systems. B. Steffen Ed., Lecture Notes in Computer Science Series, vol. 1384, Springer-Verlag, 151--166. Google Scholar
Digital Library
- Rival, X. 2003. Abstract interpretation-based certification of assembly code. In Proceedings of the 4th International Conference on Verification, Model Checking and Abstract Interpretation. L. D. Zuck, P. C. Attie, A. Cortesi, and S. Mukhopadhyay Eds., Lecture Notes in Computer Science Series, vol. 2575, Springer-Verlag, 41--55. Google Scholar
Digital Library
- Rival, X. 2004. Symbolic Transfer Functions-based Approaches to Certified Compilation. In Proceedings of the ACM Symposium on Principles of Programming Languages. ACM, 1--13. Google Scholar
Digital Library
- Rose, E. 2003. Lightweight byte code verification. J. Automat. Reason. 31, 3--4,303--334. Google Scholar
Digital Library
- Saabas, A. and Uustalu, T. 2007. Type systems for optimizing stack-based code. Electronic Notes Theor. Comput. Sci. 190, 1, Elsevier, 103--119. Google Scholar
Digital Library
- Saabas, A. and Uustalu, T. 2008. Proof optimization for partial redundancy elimination. In Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation. ACM Press, 91--101. Google Scholar
Digital Library
- Seo, S., Yang, H., and Yi, K. 2003. Automatic construction of Hoare proofs from abstract interpretation results. In Proceedings of the Asian Programming Languages and Systems Symposium. A. Ohori Ed., Lecture Notes in Computer Science, vol. 2895, Springer-Verlag, 230--245.Google Scholar
- Seo, S., Yang, H., Yi, K., and Han, T. 2007. Goal-directed weakening of abstract interpretation results. ACM Trans. Program. Lang. Syst. 29, 6, 39:1--39:39. Google Scholar
Digital Library
- Sørensen, M. H. and Urzyczyn, P. 2006. Lectures on the Curry-Howard Isomorphism. Elsevier.Google Scholar
- Tarditi, D., Morrisett, J. G., Cheng, P., Stone, C., Harper, R., and Lee, P. 1996. TIL: A type-directed optimizing compiler for ML. In Proceedings of the Conference on Programming Languages Design and Implementation. ACM, 181--192. Google Scholar
Digital Library
- Wildmoser, M. and Nipkow, T. 2004. Certifying machine code safety: Shallow versus deep embedding. In Proceedings of the 17th International Conference on Theorem Proving in Higher-Order Logics. K. Slind, A. Bunker, and G. Gopalakrishnan Eds., Lecture Notes in Computer Science, vol. 3223, Springer-Verlag, 305--320.Google Scholar
- Wildmoser, M. and Nipkow, T. 2005. Asserting bytecode safety. In Proceedings of the European Symposium on Programming. M. Sagiv Ed., Lecture Notes in Computer Science, vol. 3444, Springer-Verlag, 326--341. Google Scholar
Digital Library
- Wildmoser, M., Chaieb, A., and Nipkow, T. 2005. Bytecode analysis for proof carrying code. Electron. Notes Theor. Comput. Sci. 141, Elsevier. Google Scholar
Digital Library
- Wu, D., Appel, A. W., and Stump, A. 2003. Foundational proof checkers with small witnesses. In Proceedings of the ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming. ACM Press, New York, NY, 264--274. Google Scholar
Digital Library
- Zuck, L. D., Pnueli, A., Fang, Y., and Goldberg, B. 2002. Voc: A translation validator for optimizing compilers. Electron. Notes. Theor. Comput. Sci. 65, 2.Google Scholar
Cross Ref
Index Terms
An Abstract Model of Certificate Translation
Recommendations
Certificate translation for optimizing compilers
Proof Carrying Code provides trust in mobile code by requiring certificates that ensure the code adherence to specific conditions. The prominent approach to generate certificates for compiled code is Certifying Compilation, that automatically generates ...
Certificate size reduction in abstraction-carrying code*
Abstraction-Carrying Code (ACC) has recently been proposed as a framework for mobile code safety in which the code supplier provides a program together with an abstraction (or abstract model of the program) whose validity entails compliance with a ...
Certificate translation for specification-preserving advices
FOAL '08: Proceedings of the 7th workshop on Foundations of aspect-oriented languagesAspect Oriented Programming (AOP) has significant potential to separate functionality and cross-cutting concerns. In particular, AOP supports an incremental development process, in which the expected functionality is provided by a baseline program, that ...






Comments