编译器是重要的系统软件之一,软件程序一般都需要经过编译器编译后方能执行。如果我们能在编译过程中对代码中各种安全问题进行防范,则将大大提升软件的可信性程度。另一方面,如果编译器本身不可信,则无法保证所生成代码的可信性,因为非可信编译器在对程序源代码进行编译的过程中,很可能篡改其原本的语义,生成不安全的目标代码。本项目对可信编译相关理论及其实现方法进行研究,实现对编译器自身的可信性验证,并在编译过程中对所编译的程序代码的安全性进行加强、可信性进行验证,保证系统平台上最终所运行软件的安全和可靠,从而提高整个计算系统的可信性。在编译器自身可信性方面,研究了可证明微型编译器的构造和验证方法。在可证明微型编译器的基础上,提出了基于"3+2"对比认证技术的复杂可信编译器验证方法。在编译对象可信性方面,主要研究如何使编译器在完成编译的同时保证所生成目标代码的可信性。通过在传统编译操作的基础上加入三种机制来实现这一目标,即代码安全性加强机制、代码可信性验证机制和可执行代码保护机制。
英文主题词trusted compiler; semantic preserve; trusted code; run time safety