设备指纹 · 不可篡改
全球唯一 & 安全绑定
设备⇄平台 双向验真
抵抗中间人攻击
X.509 · 证书链验证
吊销 & 轮换策略
生成 · 分发 · 使用 · 销毁
全流程安全托管
| 基线要求 | 安全规范 | 测试验证方法 |
|---|---|---|
| 设备唯一标识 | 基于安全元件(SE)或eFuse注入全球唯一ID,不可通过软件修改 | 读取标识并校验唯一性;尝试篡改/重放标识 |
| 双向认证机制 | TLS 1.3 双向证书认证 / 预共享密钥(PSK) + 挑战响应 | 模拟中间人抓包;无效证书拒绝连接 |
| 证书管理 | 证书签发遵循CA层级,支持OCSP/CRL吊销,设备侧证书安全存储 | 证书链验证、过期/吊销测试、私钥泄露场景 |
| 密钥生命周期 | 密钥生成于硬件安全模块(HSM/TPM),定期轮换,安全销毁 | 检查密钥存储位置;尝试导出私钥;轮换后旧密钥失效 |
# 设备双向认证 & 证书校验 (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