阅读以下有关嵌入式软件可信计算方面的叙述,在答题纸上回答问题1至问题2。
某公司长期从事嵌入式商用软件的开发工作。随着业务范围的扩展,公司最近签署了一项大型客机信息综合处理的软件研制合同,作为机载软件,其可靠性和安全性直接影响着大型客机的安全特性。合同要求承制方在开展工作之前必须完成安全性、可靠性分析报告,在软件开发过程中应严格遵循相关工程化标准。
公司总经理将此项任务交给了张工程师,要求他尽快掌握航空软件研制的各项要求,并拿出项目的策划书。张工在深入研究了可信计算等相关知识的基础上,结合航空软件的特点,提出了一项项目实施策划方案。此方案在安全性设计方面借鉴了可信计算的相关技术,得到了甲方的认可,但是,针对此方案,公司领导层存在极大争议,问题主要焦点在于按此方案实施,公司的人员、成本和资源投入将远远超过本公司的承受能力,张工指出,传统商用软件的开发模式不能满足航空用户的需要,软件可信度太低,对后续发展不利。经过认真讨论,公司领导层形成了统一认识,按可信计算的技术要求,提升公司的整体软件开发水平。
【问题 1】(13 分)
ISO/IEC 15408 标准定义可信为:参与计算的组件,其操作或过程在任意的条件下是可预测的,并能够抵御病毒和物理干扰。而航空设备的基本特点就是要求设备工作的实体行为应该总是以预期的方式达到预期的目的(即行为、资源的确定性要求)。基于这种思想,张工依据可信计算组织定义的可信链模型(即可信测量根(RTM)—BIOS—OSLoader—OS 构成链式信任链模型)理论,给出了一种适应本项目的带数据恢复的星型信任模型(图 3-1)。该模型的中心思想是将可信测量根植入机载设备平台模块内部NVRAM(非易失存储器)中,在信任链中增加数据恢复功能,并将信任链延伸到应用。请根据张工设计思想,完善图3-1所示的带数据恢复星型信任模型的空白部分。并用100字以内的文字,解释该模型与链式信任链模型相比的特点。
图3-1 带数据恢复星型信任模型
【问题 2】(12 分)
交叉编译器是嵌入式软件开发必备的基础工具软件之一。目前比较流行的交叉编译器是 GNU 系列产品,它是一种开源软件。编译器生成代码正确与否严重影响机载设备的安全,因此,张工在方案中提出对本项目采用的交叉编译器开展可信技术研究。可信编译器包括两方面含义,其一是编译器自身的可信性,即必须保证整个编译操作的可信性,保证编译器在编译过程中不会给编译处理对象带来任何安全问题;其二是必须保证编译器编译所得程序可执行代码的可信,即编译器必须保证,通过其编译生成的程序代码是安全和可靠的。因此,张工提出在传统编译操作的基础上加入代码安全性加强机制、代码可信性验证机制和可执行代码保护机制。图3-2给出了可信编译系统的框架。
请说明三种可信机制在传统编译操作步骤中的位置,并给出图3-2的(a)~(c)对应的可信机制名称。
根据表3-1所示的信息流名称,给出图3-2中(d)~(h)对应的功能模块间的信息流编号。
图3-2 可信编译系统框架