SoftPUF
提供SDK软件或FPGA配置文件集成PUF,无需修改硬件设计
芯片的安全启动过程会将首段代码固化在只读存储器(ROM)中,此举是为了保证代码的可信性。制造商会使用私钥对代码镜像文件进行数字签名,并将对应的公钥嵌入芯片内部,以确保代码的完整性和身份认证。
当芯片加电后,会启动一段硬件逻辑,使用制造商的公钥来验证首段程序的签名有效性。只有验证成功,系统才会继续启动。这段硬件程序可以被视为信任根,它是密码系统中始终值得信任的来源,也是建立安全启动和信任链的前提。
安全启动和信任链的传递
然而,如果这段硬件逻辑被破解,黑客就能复制验证过程并篡改公钥,以伪造签名,从而欺骗安全启动过程。这些恶意操作会给系统的安全性带来严重威胁,使得黑客得以运行恶意代码、篡改系统设置,获取未经授权的访问权限,导致数据泄露、系统瘫痪、用户隐私泄露等系列严重问题。
PUF可用于建立硬件信任根,难以被窃取、克隆或篡改。PUF生成的密钥可用于启动代码的加密保护,通过数字签名和摘要等技术确保启动代码的完整性和合法来源。PUF私钥不存储,需要时生成,用后即删,可有效保障密钥安全,从而防止签名伪造。
固件签名流程
芯片启动固件验证流程
另外,芯片PUF的独特性导致信任根的独特性,每块芯片具有不同信任根。即使破解硬件,由于一芯一密的强绑定,仍无法破解其他芯片的密钥。这种特性提供了更高的安全保障。