平头哥杯
随着物联网(IOT)的高速发展,信息安全问题突显,可信执行环境(Trusted Execution Environment,TEE)是保障信息安全的有效手段,因此在RISC-V处理器上构建TEE的安全能力是眼下比较热门的话题。
本赛题旨在利用平头哥开源的RISC-V处理器(E902)设计一个支持TEE的最小系统,为RISC-V处理器构建TEE的安全原型。双核TEE安全架构中,其中一个E902核心用作安全核,运行安全世界程序,另一个E902核心用作非安全核,运行非安全世界程序。通过双核方案实现CPU在物理上的隔离,并且需要设计一个IOPMP(物理地址访问防火墙),来确保非安全世界的master设备(包括非安全CPU和非安全外设)无法访问安全世界的资源,包括内存和MMIO。E902安全核和非安全核之间的通信需要用到mailbox设备,安全世界的mailbox属于安全设备,非安全世界的mailbox属于非安全设备。系统需要实现安全启动方案,安全CPU核心需要对软件镜像进行合法性校验,在完成软件镜像的合法性校验以及安全配置之后再启动非安全CPU核心的运行。
参考建议:
在E902非安全核后面接一个地址访问防火墙,比如IOPMP,用于约束非安全E902核对内存、MMIO的访问。CPU以外的master设备同样需要通过IOPMP来限制其访问。
参考平台:
SoC平台可以参考平头哥无剑100开源SoC平台:
1. 平头哥无剑100 SoC 平台简介:https://occ.t-head.cn/wujian100?id=4082555169550700544
2. 平头哥无剑100 开源SoC平台软硬件源码:https://github.com/T-head-Semi/wujian100_open
3. 对FPGA的型号并无要求,开发者可以自由选择FPGA开发平台,如Xilinx FPGA等。
评分级别 | 功能实现 | 得分 |
基础任务 | SoC至少包括基础双核E902+存储(SRAM)+IO(2个串口) | 30 |
每个E902核分别运行独立的软件程序,并从串口输出打印信息 | 20 | |
SoC实现BootROM,并实现安全启动机制,比如: BootROM->TEE Code ->REE Code | 20 | |
中级任务 | BootROM实现从Flash加载程序并启动 | 20 |
SoC实现Mailbox,双核E902通过Mailbox建立核间通信 | 20 | |
高级任务 | SoC实现IOPMP访问防火墙,通过IOPMP来控制E902非安全核的对内存(SRAM)、MMIO(如串口)的访问权限 | 20 |
设计报告 | 设计报告应详细阐述技术方案,尤其需要突出如何实现中、高级任务的技术要点,报告应结构清晰、逻辑流畅、详略得当。 | 10 |
技术路线 | 在实现中、高级任务时,应与现有的常规技术路线进行对比。如果在技术路线上有成功的改进或突破,可以根据技术路线的先进性判别得分。 | 10 |
总分 | 150 |