摘要:针对专用SoC芯片的安全问题,在描述芯片威胁模型与部署模型的基础上,规划了芯片资源的安全等级,设计了芯片的工作状态及状态转移之间的约束条件和实现机制,给出了芯片运行时的安全工作流程。对芯片的安全性分析表明,所设计的芯片系统能够满足机密性、完整性和可信性的应用要求。
引言
为了满足智能卡和可信计算应用需求,设计实现了一款专用SoC芯片。该芯片由微处理器、程序和数据存储器及管理模块、安全逻辑模块、密码服务模块、辅助功能模块、I/0接口组成,能为各种安全应用提供机密性、完整性和身份认证等多种密码服务,以及数据存储、访问控制、安全计算等应用。
专用SoC芯片的安全控制架构设计,首先应对芯片的应用环境进行分析,得到芯片的威胁模型与部署模型,即芯片的潜在攻击者和可能的攻击方式,以及芯片的生产、运输、研发和使用等环节存在的风险问题;其次是根据芯片安全要求与功能规范,通过软硬件协同设计方式,设置相关硬件逻辑、状态寄存器和参数存储区,并实现相关安全策略的软件控制流程;最后对所设计的系统进行安全性分析、仿真验证与FPGA测试。
1 芯片系统安全体系结构设计
基于芯片系统的生产与应用实际,根据受保护资产对芯片安全性影响重要程度和信息技术安全性*估准则,芯片的受保护资产可设计为如下3种安全级别。
0级资产:O层代码的完整性与可信性,0层数据(LEVEL0)的机密性、完整性和可信性,以及芯片各模块功能正确性。0级资产是芯片系统的安全基础,对任一项的保护失败均将导致整个芯片系统拒绝提供任何服务。
1级资产:1层代码的完整性与可信性,1层数据(LEVEL1)的机密性、完整性和可信性。1级资产是系统运行的核心控制态和2级资产的安全基础,对1级资产的保护失败将禁止本层代码及2层代码的执行。
2级资产:2层代码完整性与可信性,2层数据(LEVEL2)的机密性、完整性和可信性。2级资产是芯片系统最上层的受保护资产,对本级资产的保护失败会导致本层代码被禁止运行。2级资产在芯片系统中可以同时存在多个,但每一时刻只有1个投入运行。
1.1 芯片系统安全状态设计
芯片加电运行后,通过执行一系列的命令,获得不同的安全权限,从而也处于某一特定的安全状态。
ST1:出厂初始状态。在信任制造商前提下,芯片在出厂初始状态是可以信赖的。初始状态是芯片的可信基。
ST2:芯片使能状态。首次加电时,上电自检及传输安全认证通过后,芯片所处的状态。芯片在验证各功能模块正确,且。层代码、数据完整性校验通过后,接收传输过程安全认证命令,并利用开发商与制造商的共享秘密,在允许的认证次数范围内对芯片进行真实性认证。
ST3:芯片激活状态。处于使能状态下的芯片,允许开发商通过用户创建命令完成用户创建。在这一过程中,芯片对开发商身份的合法性认证依赖于传输安全认证时的共享秘密。用户创建完成后,置位芯片激活状态标识与所有权获得标识。再次启动时,对开发商的身份合法性认证依赖于输入的共享秘密,以及开发商创建的用户密钥。
ST4:1层代码下载允许状态。为满足芯片使用灵活性的要求,芯片的1层代码可由开发商进行配置。代码下载需对下载命令的发起者进行身份认证,在允许认证次数范围内,若身份认证正确,则置位1层代码下载允许标识,芯片进入1层代码(芯片操作系统)下载允许状态。
ST5:1层代码下载完成状态。在下载控制程序的控制下,完成1层代码下载。下载完成后,下载控制程序调用SHA1模块,对1层代码进行完整性度量与存储,并与输入的下载代码完整性信息进