芯片设计安全手册
芯片设计安全手册 文件编号: 版本:V1.2
密级:核心机密(仅限授权人员) 1. 安全设计原则 1.1 最小特权原则 · RTL设计必须实现: o 分级安全域(如ARM TrustZone的Secure/Non-secure World划分) o 寄存器访问权限三重控制(PWEN/PRIV/NS比特组合) 1.2 防御性设计 · 强制实施: o 所有数据总线必须带ECC或奇偶校验 o 时钟树包含Glitch检测电路(如双沿采样比较器) 1.3 可验证性 · 所有安全模块需提供: o 形式化验证断言(SVA) o 故障注入测试点(ISO 26262 FSML等级≥2) 2. 硬件安全架构 2.1 安全子系统设计
模块 安全要求 实现示例
安全启动 • 支持RSA-3072/P-256签名验证
• 密钥熔断后不可读取 eFuse + OTP混合存储
加密加速器 • 抗DPA/SPA侧信道攻击
• 支持AES-256-GSM 带掩码的S盒实现
调试接口 • 支持IEEE 1149.7安全调试协议
• 三次错误锁定 动态口令+物理自毁触发
2.2 物理防护
· 布局要求:
o 安全模块与其他区域保持≥50μm间距(防止FIB攻击)
o 顶层金属添加dummy金属网格(防探测)
· 工艺选择:
o 优先选用具有PUF(物理不可克隆函数)的工艺节点
3. RTL编码安全规范
3.1 禁止代码模式
verilog
// 禁止直接使用门控时钟(必须通过CLKGEN模块) // 非安全写法: assign clk_gated = clk & enable;// 禁止!// 安全写法:
clk_gate u_gate (.clk_in(clk), .en(enable), .clk_out(clk_gated));
3.2 安全注释规范
· 所有安全相关信号必须标注威胁等级:
· verilog
· 复制
· 下载
· // SECURITY-CRITICAL: This signal controls key clearing // THREAT-LEVEL: T3 (High) wire secure_wipe;
3.3 验证要求
· 安全模块必须达到:
o 代码覆盖率:100%(Line/Branch/FSM)
o 功能覆盖率:安全场景100%(如密钥错误注入测试)
4. 后端设计安全
4.1 物理实现检查项
1. 时钟树:
o 安全域时钟必须独立布线,与非安全域时钟无共享缓冲器
2. 电源网络:
o 安全模块使用独立电源岛,配备电压毛刺检测电路
3. 测试结构:
o 扫描链必须分段加密(每段单独密钥)
4.2 GDSII交付审查
· 必须包含:
o 安全金属层(TOP Metal)的Antenna报告
o 所有填充单元的DRC验证结果
5. 生产测试安全
5.1 测试模式防护
风险
控制措施
测试接口滥用
启用Test Mode密码(SHA-3哈希校验)
密钥泄露
测试用密钥仅允许一次写入(OTP模式)
5.2 芯片标识管理
· 每颗芯片必须包含:
o 基于PUF的不可克隆ID
o 安全版本号(Secure Version, SVN)计数器
6. 响应与追溯
6.1 安全事件分级
等级
定义
响应时限
SEV-1
可远程利用的硬件漏洞
24小时内响应
SEV-2
需物理接触的旁路攻击
72小时内响应
6.2 漏洞修复流程
页:
[1]