2、设备身份认证基础:身份认证的定义、常见认证方式(对称、非对称、证书)及密钥在其中的作用
设备身份认证是物联网、车联网、工业控制及企业终端安全体系的第一道防线。其本质是回答三个问题:设备是谁?如何证明它是它声称的那个实体?以及这种证明在传输和存储过程中如何防止被伪造或重放?本章将围绕身份认证的定义、三类主流认证方式(对称认证、非对称认证、证书认证)以及密钥在其中的核心作用展开,帮助学员建立从密码学原语到工程落地的完整认知框架。
上图展示了三类认证方式与密钥作用之间的整体关系。对称认证依赖共享密钥,非对称认证依赖公私钥对,证书认证则是在非对称基础上增加了CA签名的身份绑定。无论哪种方式,密钥的生成、注入、存储和使用都直接决定了认证体系的安全性。下面逐一展开。
2.1 身份认证的定义与核心要素
身份认证(Authentication)是指验证一个实体(设备、用户或进程)所声称身份是否真实有效的过程。在设备场景中,认证通常发生在设备与服务器、设备与设备、或设备与网关之间。与授权(Authorization)不同,认证只解决“你是谁”的问题,不解决“你能做什么”的问题。
一个完整的设备身份认证体系包含四个核心要素:
- 身份标识(Identity):设备的唯一标识,如设备ID、序列号、MAC地址或UUID。标识本身不保密,但必须唯一且不可篡改。
- 认证因子(Credential):用于证明身份的秘密信息,即密钥或证书。这是认证的核心,必须保证机密性和完整性。
- 认证协议(Protocol):设备与验证方之间交换消息的规则,如挑战-应答(Challenge-Response)、双向TLS等。协议设计不当会导致重放、中间人攻击。
- 信任根(Root of Trust):验证方用来判断认证因子是否可信的基准,如预置的CA根证书、共享密钥数据库或硬件安全模块(HSM)。
关键理解:身份认证的安全性不取决于身份标识本身,而取决于认证因子的保密强度以及认证协议的抗攻击能力。设备ID可以被扫描到,但私钥或共享密钥必须无法被提取。
2.2 对称认证方式:共享密钥的挑战与应答
对称认证使用相同的密钥进行加密和验证。设备与服务器预先共享一个密钥K,认证时通过某种密码学运算证明“我拥有K”。最常见的实现是挑战-应答协议:
- 服务器生成一个随机数Nonce,发送给设备(挑战)。
- 设备使用共享密钥K对Nonce计算MAC(如HMAC-SHA256),返回MAC值(应答)。
- 服务器用同样的K对Nonce计算MAC,比对两者是否一致。若一致,则设备身份验证通过。
对称认证的优点是计算开销小、速度快,非常适合资源受限的MCU和传感器节点。但其核心难点在于密钥分发与更新:在设备出厂时如何安全地将K注入?设备量产后如何更新密钥?如果所有设备使用同一个K,一旦某台设备被破解,整个系统将面临风险。
| 对比维度 | 对称认证 | 非对称认证 | 证书认证 |
|---|---|---|---|
| 密钥类型 | 共享密钥(1个) | 公私钥对(2个) | 公私钥对 + CA签名 |
| 计算开销 | 低(HMAC/CMAC) | 高(签名/验签) | 高(证书链验证) |
| 密钥分发 | 困难,需安全通道 | 公钥可公开,私钥自持 | 公钥通过证书分发 |
| 抗量子计算 | 较强(对称算法) | 弱(RSA/ECC) | 弱(依赖非对称) |
| 适用场景 | 低功耗、一对一 | 一对多、开放网络 | 大规模、多CA体系 |
2.3 非对称认证方式:私钥签名与公钥验签
非对称认证使用一对密钥:私钥(仅设备持有)和公钥(可公开分发)。设备用私钥对挑战值进行签名,验证方用公钥验证签名。由于私钥永远不出设备,即使服务器被攻破,攻击者也无法伪造设备身份。
典型的非对称认证流程(以ECDSA为例):
设备端(持有私钥 d) 服务器端(持有公钥 Q)
| |
|<------- Nonce N ----------------|
| |
计算签名 S = Sign(d, N) |
|------- S ---------------------->|
| 验证 Verify(Q, N, S)
| |
|<------- 认证成功 --------------|
非对称认证的显著优势是无需共享秘密,公钥可以明文传输。但代价是计算开销较大,尤其是RSA-2048在低端MCU上可能需要数百毫秒。因此,实际工程中常采用混合方案:先用非对称认证协商出会话密钥,后续通信改用对称加密(如TLS 1.3的PSK模式)。
工程建议:对于电池供电的LoRa或NB-IoT设备,建议使用ECDSA P-256而非RSA-2048,因为椭圆曲线签名更短(64字节 vs 256字节),计算速度更快,且功耗更低。
2.4 证书认证:将公钥绑定到设备身份
非对称认证解决了“私钥不出设备”的问题,但引入了一个新问题:验证方如何确信收到的公钥确实属于声称的设备?攻击者可以替换公钥进行中间人攻击。证书(Certificate)正是为了解决这一问题而设计的。
X.509证书将设备的公钥、身份信息(如设备ID、厂商、序列号)以及有效期打包,并由证书颁发机构(CA)使用其私钥签名。验证方只需信任CA的公钥(根证书),即可验证设备证书的合法性。证书链的验证过程如下:
- 设备发送其证书(含公钥和身份信息)给服务器。
- 服务器用CA公钥验证证书签名是否有效。
- 检查证书有效期、吊销状态(OCSP/CRL)。
- 提取证书中的公钥,用于后续的签名验证或密钥交换。
证书认证特别适合大规模设备管理场景。例如,一家智能门锁厂商每年出货百万台设备,可以为每台设备签发唯一证书,并在云端维护证书吊销列表。当某台设备被破解时,只需吊销其证书,不影响其他设备。
风险提示:证书认证的安全性高度依赖CA私钥的保护。如果CA私钥泄露,攻击者可以为任意设备伪造证书。因此,CA私钥必须存储在硬件安全模块(HSM)中,并遵循严格的访问控制策略。
2.5 密钥在认证中的核心作用与安全存储
无论采用哪种认证方式,密钥都是整个体系的信任锚点。密钥的作用可以归纳为以下四个方面:
- 身份证明:通过持有密钥(共享密钥或私钥)来证明设备身份,这是认证的本质。
- 数据完整性:使用密钥生成MAC或签名,确保认证消息在传输过程中未被篡改。
- 防重放攻击:结合Nonce或时间戳,密钥参与生成一次性认证码,防止攻击者截获并重放认证消息。
- 会话密钥派生:认证成功后,双方可通过密钥协商(如ECDH)或密钥派生函数(HKDF)生成会话密钥,用于后续通信加密。
密钥的安全存储是认证体系能否落地的关键。如果密钥以明文形式存储在Flash中,攻击者通过物理探针或固件提取即可获得密钥,所有密码学防护将形同虚设。常见的密钥安全存储方案包括:
| 存储方案 | 安全等级 | 实现方式 | 适用场景 |
|---|---|---|---|
| Flash明文存储 | 极低 | 密钥直接写入Flash | 仅用于原型验证 |
| 软件加密存储 | 中低 | 用设备唯一密钥加密后存储 | 低成本消费电子 |
| 安全芯片(SE) | 高 | 密钥生成和运算均在芯片内 | 支付、车联网、工业 |
| TEE可信执行环境 | 中高 | 基于ARM TrustZone等硬件隔离 | 手机、网关、边缘计算 |
2.6 案例拆解:智能电表双向认证中的密钥体系设计
下面通过一个智能电表远程抄表系统的案例,展示三类认证方式如何组合使用。
背景与约束:某电力公司部署了50万只智能电表,每只电表通过GPRS网络与采集终端通信。电表采用低功耗MCU(Cortex-M4,无硬件加速器),要求认证时延不超过500ms,且密钥必须防物理提取。
初始方案与问题:最初采用对称认证,所有电表共享一个主密钥K。但运维中发现,某地区电表被拆解后,攻击者通过JTAG接口读取了Flash中的K,导致该地区所有电表可被伪造。这说明共享密钥+明文存储的方案在物理攻击面前完全失效。
改进方案:
- 引入安全芯片(SE):每只电表焊接一颗SE芯片(如ATECC608B),密钥在芯片内部生成且不可读取。SE支持ECDSA签名和ECDH密钥交换。
- 采用证书认证:每只电表在出厂时由厂商CA签发X.509证书,证书中包含电表ID和公钥。采集终端预置CA根证书。
- 双向认证流程:电表与采集终端互相验证证书,然后通过ECDH协商会话密钥,后续抄表数据使用AES-128-GCM加密。
关键参数与结果:ECDSA P-256签名在ATECC608B中耗时约100ms,证书链验证在采集终端(Cortex-A7)上耗时约50ms,总认证时延约200ms,满足500ms要求。SE芯片的物理防护等级为CC EAL4+,有效抵御侧信道和探针攻击。
风险与代价:每颗SE芯片成本增加约1.5元人民币,50万只电表总成本增加75万元。但相比因密钥泄露导致的窃电损失(每年约300万元),该投入在半年内即可收回。
复盘经验:对称认证适合低风险、小规模场景;一旦设备暴露在物理攻击风险下,必须升级到非对称+证书认证,并将密钥存储在硬件安全边界内。此外,证书吊销机制(CRL/OCSP)必须配套部署,否则被破解设备的证书无法及时失效。
总结:设备身份认证不是单一技术的选择,而是根据设备成本、计算能力、网络环境和攻击模型进行的系统工程设计。对称认证提供效率,非对称认证提供安全性,证书认证提供可管理性,而密钥的安全存储则是这一切的物理基础。在实际项目中,建议先进行威胁建模,再选择合适的认证组合。