🔐 设备身份与认证基线

唯一标识 · 双向认证 · 证书 · 密钥
🆔

唯一标识

设备指纹 · 不可篡改
全球唯一 & 安全绑定

🤝

双向认证

设备⇄平台 双向验真
抵抗中间人攻击

📜

证书管理

X.509 · 证书链验证
吊销 & 轮换策略

🔑

密钥生命周期

生成 · 分发 · 使用 · 销毁
全流程安全托管

基线要求安全规范测试验证方法
设备唯一标识基于安全元件(SE)或eFuse注入全球唯一ID,不可通过软件修改读取标识并校验唯一性;尝试篡改/重放标识
双向认证机制TLS 1.3 双向证书认证 / 预共享密钥(PSK) + 挑战响应模拟中间人抓包;无效证书拒绝连接
证书管理证书签发遵循CA层级,支持OCSP/CRL吊销,设备侧证书安全存储证书链验证、过期/吊销测试、私钥泄露场景
密钥生命周期密钥生成于硬件安全模块(HSM/TPM),定期轮换,安全销毁检查密钥存储位置;尝试导出私钥;轮换后旧密钥失效
📱 物联网设备 唯一标识 (UID) ☁️ 安全平台 证书验证 · 密钥管理 📜 证书 & 密钥 X.509 证书链 密钥生命周期管理 HSM / TPM 安全存储 双向TLS 设备证书签发/安装
  • 密钥生成 – 在设备安全环境内生成(TPM/SE),不导出明文
  • 安全分发 – 使用预置证书或带外安全通道 (KMP/Enrollment over Secure Transport)
  • 使用阶段 – 每次签名/解密需授权,防侧信道攻击
  • 轮换与吊销 – 密钥到期自动轮换,泄露后立即吊销证书并更新
  • 安全销毁 – 擦除密钥材料,物理销毁安全元件(若防拆)
# 设备双向认证 & 证书校验 (Python / MicroPython 示例)
import ssl, socket

def device_authenticate(host, port, device_cert, device_key, ca_cert):
    ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
    ctx.load_cert_chain(certfile=device_cert, keyfile=device_key)
    ctx.load_verify_locations(cafile=ca_cert)
    ctx.verify_mode = ssl.CERT_REQUIRED   # 要求服务端证书
    ctx.check_hostname = True

    sock = socket.socket()
    secure_sock = ctx.wrap_socket(sock, server_hostname=host)
    secure_sock.connect((host, port))
    # 双向认证完成,后续通信加密
    print("双向认证成功,对端证书:", secure_sock.getpeercert())
    return secure_sock