一、安全目标概述:从业务需求到安全起点

各位同学,咱们今天聊的是整个课程的第一块基石——安全目标。我做了十几年芯片安全,见过太多项目上来就画架构、写代码,结果流片回来发现安全漏洞,那叫一个痛苦。所以,先把安全目标搞清楚,比什么都重要。

1.1 什么是安全目标?

安全目标,说白了就是——你希望你的系统在安全方面达到什么效果。它不是一句空话,而是一个可衡量、可验证的声明。

举个例子:

  • “我的芯片要防攻击”——这不是安全目标,太模糊了。
  • “我的芯片在侧信道攻击下,密钥泄露概率低于 10⁻⁶”——这才是安全目标。

我个人习惯把安全目标拆成两个层面:

  • 业务层面:系统要保护什么资产?谁可以访问?
  • 技术层面:用什么机制来保护?抵抗什么强度的攻击?

核心观点:安全目标是连接“业务需求”和“技术实现”的桥梁。没有它,你的安全设计就是无头苍蝇。

1.2 安全目标与业务需求的关系

你想想看,业务部门说“我们要做一款支付芯片”,那安全目标就得跟着业务走:

业务需求 对应的安全目标 我见过的坑
用户支付数据不能泄露 机密性:传输和存储加密 有人只加密了传输,存储是明文
交易记录不能篡改 完整性:HMAC 或数字签名 忘了保护日志,攻击者改了审计记录
系统不能随便宕机 可用性:冗余设计、抗 DoS 安全模块成了单点故障
确认是合法用户在操作 真实性:身份认证、生物识别 只验密码,没防重放攻击
用户不能抵赖自己发起的交易 不可否认性:数字签名、审计日志 日志没防篡改,法庭上不认

我曾经在一个项目中,业务方说“我们要防黑客”,结果安全团队直接上了全套军用级加密。芯片面积翻倍、功耗超标,最后产品根本没法量产。嗯,这就是安全目标和业务需求脱节的典型下场。

我的建议:每次定义安全目标前,先问三个问题:1)业务最怕什么?2)攻击者有什么资源?3)我们愿意花多少成本?

1.3 常见的安全目标分类

安全目标分类,业内基本沿用 CIA 三元组,再加两个扩展。我按自己的理解给你捋一遍:

1. 机密性(Confidentiality)

说白了就是——不该看的人看不到。在硬件层面,这涉及到:

  • 存储加密(比如 eMMC 加密、NAND 加密)
  • 总线加密(防止嗅探)
  • 侧信道防护(防止通过功耗、电磁泄露偷密钥)

我记得有一次做智能卡芯片,攻击者通过分析功耗曲线,直接把 AES 密钥还原出来了。从那以后,我对侧信道防护再也不敢马虎。

2. 完整性(Integrity)

就是——数据没被改过。硬件上常用:

  • HMAC(哈希消息认证码)
  • 数字签名
  • 安全启动(Secure Boot)——验证固件没被篡改

你想想看,如果攻击者改了你的固件,你的芯片就成了人家的傀儡。完整性是底线。

3. 可用性(Availability)

系统该干活的时候得能干活。硬件层面:

  • 冗余设计(双核、热备份)
  • 抗 DoS 攻击(比如限制错误尝试次数)
  • 安全模块不能成为瓶颈

我曾经见过一个设计,安全模块每次操作要 100ms,结果整个系统响应时间超标,产品直接被客户退货。

4. 真实性(Authenticity)

确认你是谁。硬件上常见:

  • 物理不可克隆函数(PUF)——芯片唯一的“指纹”
  • 安全元件(SE)——存储密钥和证书
  • 硬件信任根(RoT)——从启动开始就验证身份

5. 不可否认性(Non-repudiation)

做了就是做了,赖不掉。硬件层面:

  • 安全时钟(确保时间戳可信)
  • 防篡改日志(写进去就改不了)
  • 数字签名(私钥在硬件里,别人伪造不了)

注意:不可否认性在硬件里最容易出问题。我见过一个项目,日志存在外部 Flash 里,攻击者直接拔掉 Flash 换了块空的,所有审计记录全没了。所以,硬件级别的防篡改存储是必须的。

1.4 安全目标之间的关系

这五个目标不是孤立的,它们经常互相影响。我画了一张图,帮你理清关系:

安全目标关系图 业务需求 机密性 完整性 可用性 真实性 不可否认性 说明: • 实线箭头:业务需求驱动安全目标定义 • 虚线箭头:安全目标之间相互影响(例如:完整性是实现不可否认性的基础)

从图上你能看到:

  • 业务需求是源头,驱动所有安全目标
  • 机密性和完整性是基础,几乎所有安全系统都离不开
  • 真实性和不可否认性往往依赖完整性(比如签名防篡改)
  • 可用性经常和其他目标冲突——加密太强了,性能就下来了

实战经验:我在做车规芯片时,业务要求“紧急制动指令必须在 10ms 内响应”。这时候可用性优先级最高,机密性可以适当让步(比如用轻量级加密)。安全目标之间要有取舍,没有银弹。

1.5 小结:安全目标不是写文档,是指挥棒

好了,这一章的核心就这些。记住:

  • 安全目标要可衡量、可验证
  • 它必须从业务需求来,不能拍脑袋
  • 五个目标(CIA + 真实性 + 不可否认性)要综合考虑
  • 目标之间有冲突,需要权衡