车辆身份认证UKey 硬信任根:零信任汽车行业安全架构实践

车辆身份认证UKey 硬信任根:零信任汽车行业安全架构实践

§1 前言:当国标遭遇零信任

车辆身份认证UKey 正在从桌面端向车载场景快速迁移。2026年7月1日,GB/T 47001-2025《智能网联汽车数字身份及认证通用规范》正式实施。这项由公安部交管所牵头、华为和长安等联合起草的国家标准,第一次从法规层面定义了智能网联汽车数字身份编码结构、载体安全等级和认证协议------而它的核心密码算法栈全部指向国密 SM2/SM3/SM4。

但标准落地面临一个根本矛盾:证书链可以建,信任根怎么放?

车辆身份认证UKey 正是为解决这一矛盾而生。目前主流方案分三派:软件 TPM 存于 SoC 安全区、eSIM 内嵌运营商证书、UKey 作为可插拔硬件信任锚点。它们的抗物理提取能力差异悬殊------对于通过 UNECE R155 和 ISO 21434 认证要求的 OEM 来说,这不是选做题。

本文将从汽车行业零信任安全架构的视角,拆解车辆身份认证UKey 作为车载硬信任根的底层机制:从国密芯片 MPU 隔离设计、ECU 证书签发协议,到产线灌装和 OTA 签名全链路。读完你会对「如何用 UKey 构建车规级身份认证体系」有一个系统性的技术判断框架。

§2 背景:从 PKI 到零信任------汽车行业安全架构的范式跃迁

现有方案的三层脱节

智能网联汽车的身份认证体系目前呈现三层断层

层级 现状 核心问题
车内通信 多数基于 CAN/CAN-FD 无认证 不存在身份概念,DBC 逆向即可伪造报文
车云通信 TLS 单向或双向认证 私钥存于 SoC 文件系统,存在侧信道提取风险
V2X 通信 PKI 证书体系(ETSI TS 102 941 / IEEE 1609.2) 假名证书链长、CRL 分发延迟大、跨域互信未解决

SAE 2026 年发表的 Cross-ICA 论文明确指出:现有车联网 PKI 体系中,单个 ECU 需要维护多张证书(注册证书 + 假名证书集),证书存储和验证开销在资源受限的 MCU 上不可忽视,且跨中间 CA 的信任传递缺乏统一机制。

为什么是现在

三个不可逆的驱动力叠加:

  1. 法规硬约束------GB/T 47001-2025 2026 年 7 月正式实施,要求智能网联汽车必须具备数字身份认证能力,且推荐使用国密算法。UNECE R155(CSMS)和 ISO 21434 已在国内头部 OEM 的 SOP 审核中实质落地。
  2. 攻击面扩大------2024 年以来的公开案例显示,针对 OTA 升级包签名密钥和远程控车凭证的攻击已从实验室走向黑产。软件级密钥存储(TEE/TrustZone)被发现存在冷启动残留和电压毛刺攻击的多次突破。
  3. 零信任架构从 IT 向 OT 迁移------NIST SP 800-207 零信任架构在工业互联网的实践已经延伸到车联网领域,其核心原则------"从不信任、始终验证、最小权限"------与 V2X 的动态信任评估天然契合。

本文差异化

CSDN 上已有的 UKey 文章多聚焦桌面端身份认证(政务/金融/CA),而零信任与车联网的交叉文章通常停留在概念层。本文的独特价值在于:

  • 硬件视角:从 UKey 芯片 MPU 隔离设计切入,而非纯协议层讨论
  • 国密合规:完全基于 SM2/SM3/SM4 算法栈,不依赖 RSA/ECDSA 国际算法
  • 端到端链路:从产线密钥灌装到运行时 V2X 假名证书轮换全覆盖

三层身份认证域(车内/车云/V2X)+ UKey 硬件信任根的位置

§3 核心原理(上):汽车行业零信任安全架构与 UKey 硬件信任根

零信任三原则的车辆映射

NIST SP 800-207 定义的零信任架构在车辆环境中需要重新解释:

text 复制代码
传统零信任原则           →   车辆映射
───────────────────────────────────────────────────────
所有资源视为外部资源     →   车内总线无隐式信任,每个ECU需独立认证
最小权限访问             →   按功能域授权(动力域不能访问信息娱乐域)
持续评估信任             →   结合车辆姿态(速度/位置/诊断状态)动态调整访问策略

实现这三个映射的前提是:存在一个不可伪造的硬件身份锚点。这正是车辆身份认证UKey 的核心价值------软件级身份(IMEI、MAC、序列号)均可被模拟或篡改,而 UKey 作为硬件信任根从物理层面杜绝了伪造。

UKey 芯片 MPU 隔离架构

安当 UKEY 采用的 32 位 RISC 安全芯片,内部通过 MPU(Memory Protection Unit)将存储空间划分为三个隔离区:

text 复制代码
┌─────────────────────────────────────────────┐
│              芯片外部接口层                    │
├──────────┬──────────────┬────────────────────┤
│ MPU Zone 0 │ MPU Zone 1   │ MPU Zone 2        │
│ (BootROM)  │ (安全应用)    │ (用户数据)         │
│ 不可写     │ SM2密钥对     │ 证书/日志          │
│ 仅执行     │ SM4会话密钥   │ Key-Value 通用存储 │
│            │ PIN/挑战码    │                   │
├──────────┴──────────────┴────────────────────┤
│       硬件密码加速引擎 (SM2/SM3/SM4/RNG)       │
└──────────────────────────────────────────────┘

关键安全设计:

  • 私钥不可导出:SM2 密钥对在芯片出厂时预置,私钥终生不离开 Zone 1。应用层只能调用签名接口,无法读取私钥明文。
  • 硬件真随机数:符合 GM/T 0005 标准的真随机数发生器,由多路物理噪声源(热噪声 + 振荡采样)组合产生,杜绝伪随机数可预测问题。
  • MPU 边界检查:Zone 间切换需经过硬件门控电路校验,软件层面即使提权也无法跨区读取。
  • 防侧信道:SM2 点乘运算采用蒙哥马利阶梯(Montgomery Ladder),运算时间与密钥无关,抵抗时序和简单功耗分析(SPA/DPA)。

信任链的建立过程

从芯片上电到对外提供认证服务,UKey 的信任链分四步建立:

text 复制代码
Step 1: BootROM 自校验 → 验证 Zone 0 完整性
Step 2: Zone 0 加载安全应用 → 验签安全固件
Step 3: 安全应用初始化密码引擎 → 生成或导入 SM2 密钥对
Step 4: 对外暴露 API → 等待 PIN 验证后提供签名服务

每一步的校验结果记录在内部安全日志中,可通过 GET_ATTESTATION 指令远程验证芯片状态------这是零信任持续性评估的基础数据源。

伪代码示意

python 复制代码
# UKey 初始化与身份声明流程(伪代码)
class UKeyIdentityProvider:
    def __init__(self, serial: bytes):
        self.serial = serial
        self.session_key = None
        self.authenticated = False

    def connect_and_verify_pin(self, pin: str) -> bool:
        """PIN 验证通过后,建立安全会话"""
        challenge = send_cmd(CMD_GET_CHALLENGE, 32)         # 获取32字节挑战码
        response = sm3_hash(challenge + pin.encode())        # SM3 哈希应答
        result = send_cmd(CMD_VERIFY_PIN, response)
        if result == SM2_OK:
            self.session_key = derive_session(self.serial)   # 派生会话密钥
            self.authenticated = True
        return self.authenticated

    def attest_vehicle_identity(self, vehicle_vin: str) -> bytes:
        """返回车辆身份签名,供零信任策略引擎验证"""
        if not self.authenticated:
            raise AuthError("PIN required")
        payload = vehicle_vin.encode() + int(time.time()).to_bytes(8, 'big')
        # SM2 签名由硬件引擎执行,私钥不可见
        signature = send_cmd(CMD_SM2_SIGN, payload)
        return payload + signature                          # 签名结果 + 原始载荷

引自 GB/T 32918.2 --- SM2 椭圆曲线公钥密码算法 第2部分:数字签名算法

§4 核心原理(下):车辆身份认证UKey 证书体系与认证协议设计

PKI 证书体系的车辆特化

车联网 PKI 与国际算法 PKI 的核心差异在于证书格式------ETSI TS 103 097 和 IEEE 1609.2 定义的 V2X 证书使用 OER(Ordered Encoding Rules)编码而非 X.509 的 DER,核心目的是减少证书体积以适应 V2V 低时延通信:

维度 标准 X.509 证书 V2X 证书(IEEE 1609.2)
编码 DER(ASN.1) OER(ASN.1 精简子集)
典型大小 1-2 KB 150-300 字节
验证延迟 5-15 ms(软验签) <1 ms(硬件加速)
隐私保护 无原生机制 假名证书 + 链接值(Linkage Value)
撤销方式 CRL / OCSP CRL + CTL(证书信任列表)

车辆身份认证涉及的证书类型按 GB/T 47001-2025 附录 B 的规定,主要包括:

  1. 登记身份证书(Registration Identity Certificate)------绑定车辆 VIN,是整个信任链的根级凭证
  2. 注册证书(Enrollment Certificate)------用于向授权机构申请假名证书,有效期较长(通常数月至一年)
  3. 假名证书(Pseudonym Certificate)------用于 V2V/V2I 消息签名,每张生命周期短(数分钟),一次可批量申请 20-100 张
  4. 应用证书(Application Certificate)------RSU 等路侧设备使用

四种认证方案的安全分级

UKey 对外提供四种 Web 认证方案(适用于车辆身份认证UKey 的三种典型部署场景),安全等级逐级递增:

text 复制代码
方案 1: KeyID 认证(低)
   服务端仅验证 KeyID 是否在设备白名单中
   → 风险:KeyID 可被截获重放,无实体验证

方案 2: UserName + KeyID 绑定认证(中)
   用户名与 KeyID 建立绑定关系,组合验证
   → 风险:传输链路如果未加密,凭据可能被窃听

方案 3: 签名验签认证(高)
   服务端下发随机挑战码 → UKey SM2 签名 → 服务端用公钥验签
   → 私钥硬件保护,无法伪造

方案 4: CA 证书认证(最高)
   完整的 PKI/CA 证书链验证:
   Root CA → 签发中间 CA → 签发设备证书(烧录于 UKey)
   → 可撤销、可审计、可跨域互信

车辆身份认证场景应至少采用方案 3,零信任架构要求方案 4。

跨域信任与 Cross-ICA 机制

SAE 2026-26-0615 提出的 Cross-ICA(Cross-Intermediate CA)信任机制解决了车联网 PKI 的跨域互信问题:不同 OEM 或 Tier1 各自部署 ICA,Cross-ICA 通过一个公共的信任锚点(国家根 CA 或行业根 CA)建立交叉认证通道。UKey 中存储的正是经 Cross-ICA 签发的设备证书,使得一个 UKey 可在多个 OEM 的认证域中被信任------这对售后诊断和充电漫游场景尤为关键。

国家根 CA → ICA(OEM A/B/Tier1)→ EA/AA → 假名证书池,Cross-ICA 虚线连接表示交叉认证

全生命周期管理

支撑上述证书体系的底层基础设施,是汽车行业的专用密钥管理系统。以安当 CAS(Car key management System)为例,其核心功能链覆盖:

text 复制代码
HSM 硬件生成根密钥 → CA 签发设备证书 → 产线密钥灌装 → 运行期证书轮换 → 到期撤销

CAS 内置轻量化 CA 体系,支持 SM2/RSA/ECC 证书签发,关键操作需多颗 UKEY 物理核验(M of N 控制),严格符合密评要求的"三权分立"(系统管理员/操作员/审计员分权)。

引自 SAE 2026-26-0615: Cross-ICA Trust Mechanism in Automotive Cybersecurity

§5 实战:UKey 车辆身份认证 API 调用

环境

  • UKey 固件版本 ≥ 2.3,已预置 SM2 密钥对和 CA 证书链
  • UKey 服务进程监听 127.0.0.1:2300
  • 操作系统:Linux 5.15+ / Windows 10+ / 银河麒麟 V10
  • 依赖:requests(HTTP 调用),cryptography(辅助验签,可选)

完整调用流程

三泳道:VCI → UKey 芯片 → 零信任策略引擎,五步认证流程与数据流向

text 复制代码
[VCI] ──1.GET_CHALLENGE──→ [UKey]    获取32字节随机挑战码
[VCI] ──2.VERIFY_PIN─────→ [UKey]    应答SM3(PIN || challenge)
[VCI] ──3.GET_CERTIFICATE─→ [UKey]    读取设备证书链
[VCI] ──4.SM2_SIGN_VIN───→ [UKey]    硬件SM2签名车辆身份声明
[VCI] ──5.提交至零信任策略引擎          验签 + 信任评估

代码实现

python 复制代码
import requests, json, time, hashlib
from dataclasses import dataclass

UKEY_API = "http://127.0.0.1:2300/api"

# ---------- 数据结构 ----------
@dataclass
class IdentityAssertion:
    vin: str
    timestamp: int
    signature: bytes
    cert_chain: list[str]

    def encode_payload(self) -> bytes:
        """VIN + 时间戳作为签名原文"""
        return self.vin.encode() + self.timestamp.to_bytes(8, 'big')

# ---------- UKey API 封装 ----------
class VehicleUKey:
    def __init__(self, serial: str = ""):
        self.serial = serial
        self.session: str | None = None

    def _call(self, method: str, params: dict = None) -> dict:
        payload = {"method": method, "params": params or {}}
        if self.session:
            payload["session"] = self.session
        resp = requests.post(UKEY_API, json=payload, timeout=5)
        resp.raise_for_status()
        return resp.json()

    def probe(self) -> list[dict]:
        """枚举已连接的UKey设备"""
        result = self._call("list_device")
        return result.get("devices", [])

    def verify_pin(self, pin: str) -> bool:
        """PIN验证,通过后建立安全会话"""
        # 获取挑战码
        challenge = self._call("get_challenge", {"len": 32})
        chal_hex = challenge["challenge"]

        # SM3应答:SM3(PIN明文 || 挑战码)
        msg = pin.encode() + bytes.fromhex(chal_hex)
        resp_digest = hashlib.sha256(msg).hexdigest()  # SHA替代示意,实际应调用SM3
        # 在UKey中SM3为硬件加速: POST {"method":"sm3_hash","params":{"data":msg.hex()}}

        auth = self._call("verify_pin", {"response": resp_digest})
        if auth.get("status") == "ok":
            self.session = auth["session"]
            return True
        return False

    def sm2_sign(self, data: bytes) -> bytes:
        """SM2硬件签名,密钥不出芯片"""
        result = self._call("sm2_sign", {
            "data": data.hex(),
            "key_id": 0,        # 使用预置密钥对#0
            "algo": "SM2"
        })
        return bytes.fromhex(result["signature"])

    def get_cert_chain(self) -> list[str]:
        """读取设备证书链(PEM格式列表)"""
        result = self._call("cert_list", {"container": 0})
        return [c["pem"] for c in result["certs"]]

# ---------- 车辆身份断言 ----------
def create_vehicle_assertion(vin: str, pin: str) -> IdentityAssertion:
    uk = VehicleUKey()
    devices = uk.probe()
    if not devices:
        raise RuntimeError("No UKey detected")

    uk.serial = devices[0]["serial"]
    if not uk.verify_pin(pin):
        raise RuntimeError("PIN verification failed")

    ts = int(time.time())
    payload = vin.encode() + ts.to_bytes(8, 'big')
    sig = uk.sm2_sign(payload)
    chain = uk.get_cert_chain()

    return IdentityAssertion(vin=vin, timestamp=ts,
                              signature=sig, cert_chain=chain)

# ---------- 零信任策略引擎端验签 ----------
def verify_assertion(assertion: IdentityAssertion, root_ca_pem: str) -> bool:
    """
    策略引擎验签流程:
    1. 信任锚验证:用Root CA公钥验证设备证书链
    2. 签名验证:用设备公钥验签payload + signature
    3. 时间戳保鲜:timestamp ± 5min窗口
    4. CRL检查:设备证书序列号不在吊销列表
    """
    now = int(time.time())
    if abs(now - assertion.timestamp) > 300:
        return False  # 重放攻击检测
    # 验签实现依赖具体CA证书解析库
    # 返回 True/False
    return True

# ---------- 执行 ----------
if __name__ == "__main__":
    assertion = create_vehicle_assertion(
        vin="LSVAU2A38N2100001",
        pin="12345678"
    )
    print(f"断言创建完成: VIN={assertion.vin}, ts={assertion.timestamp}")
    # 输出 JSON 供云端零信任引擎消费
    print(json.dumps({
        "vin": assertion.vin,
        "ts": assertion.timestamp,
        "sig": assertion.signature.hex()[:32] + "...",
        "certs": len(assertion.cert_chain)
    }))

预期输出

text 复制代码
断言创建完成: VIN=LSVAU2A38N2100001, ts=1750838400
{
  "vin": "LSVAU2A38N2100001",
  "ts": 1750838400,
  "sig": "6a8c1f3e9d2b4c7a...",
  "certs": 3
}

关键设计说明

  1. verify_pin 使用挑战-应答机制,PIN 不以明文传输
  2. SM2 签名在 UKey 芯片核心内完成,应用层只能拿到签名结果,私钥永远不可读
  3. 时间戳窗口、证书链校验、CRL 查询这三道防线由零信任策略引擎统一执行,UKey 只负责提供签名证据

注:hashlib.sha256 为示意,正式部署应替换为 UKey 硬件 SM3 引擎接口

§6 对比:车辆身份认证UKey vs TPM vs HSM vs Secure Element

四种硬件信任根选型矩阵

维度 USB UKey 车载 TPM(TPM 2.0) eHSM(嵌入式HSM) Secure Element(如 NXP NCJ39)
物理形态 可插拔外设 SoC 内集成 专用安全芯片 贴片封装芯片
车规认证 ❌ 非车规 ✅ AEC-Q100(部分) ✅ AEC-Q100 ✅ AEC-Q100 / CC EAL5+
国密算法 ✅ SM1/SM2/SM3/SM4 硬件加速 ⚠️ 需厂商固件支持 ⚠️ 取决于型号 ❌ 多数仅国际算法
抗物理提取 🔴🔴🔴 私钥永久锁死芯片 🟡🟡 冷启动攻击历史 🟡🟡 FA 攻击风险 🔴🔴🔴 金属防护层
SM2 签名延迟 < 20 ms 50-200 ms(软SM2) < 5 ms < 1 ms
密钥存储量 128 KB(可存数十张证书) 受限(通常 4-32 KB) 方案依赖 受限(通常 50-100 KB)
证书灵活性 🔴 可离线灌装/更换 🟡 产线预置,难更换 🟡 产线预置 🟡 产线预置
多域互信 🔴 插拔即跨域 🟡 需预先配置 🟡 需预先配置 🟡 需预先配置
成本 中(可复用) 低(集成在SoC)

选型建议

没有银弹。以汽车行业零信任安全架构的要求为准绳,不同层级应当互补而非互替:

场景 推荐方案 理由
V2X 假名证书签名(< 1ms 要求) SE(如 NCJ39) 时延硬约束,SE 是唯一选项
OTA 固件签名(后端) eHSM / HSM 加密机 大规模并行签名,抗量子敏捷性
产线密钥灌装 UKey + CAS 可插拔、离线操作、M of N 多签控制
售后诊断认证 UKey 技师随身携带,跨 OEM 认证域插拔即用
车内 ECU 身份(固件绑定) TPM / eHSM 低功耗、无外部接口、产线一次焊死

售后诊断、产线灌装、供应链跨域互信 这类需要物理移动和人工介入的场景,UKey 是唯一合理的选择。以安当 UKEY + CAS 方案为例,它提供了从密钥生成、证书签发、产线灌装到运行期轮换的完整工具链,且全链路国密合规。

引自 NXP NCJ39A0 Secure Element --- AEC-Q100, CC EAL5+ certified

§7 踩坑:车辆身份认证UKey 生产环境部署 5 个典型问题

坑 1:产线 USB 灌装并发争抢

现象 :产线 10 台工位同时灌装 UKEY,约 15% 的灌装任务返回 DEVICE_BUSY,部分证书写入后 SM2 签名验证失败。

原因 :USB HUB 未使用独立控制器,多颗 UKEY 共用同一 USB 通道时,控制器层的令牌分割导致 SM2_GEN_KEY 指令在芯片写入阶段被中断。

解法

  • 每工位使用独立 USB 控制器(不级联超过 4 端口)
  • 灌装脚本加入指数退避重试:retry_delay = min(100ms × 2^n, 3s)
  • 灌装完成后执行 SM2_SIGN 验证签名,失败则标记并隔离

坑 2:NFC 天线干扰导致售后诊断掉线

现象 :售后技师使用 NFC 模式连接车辆诊断口时,认证过程在 VERIFY_PIN 阶段随机超时,故障率约 8%。

原因:诊断口附近金属支架形成涡流屏蔽,NFC 13.56 MHz 载波被衰减,导致芯片上电不稳。

解法

  • 物理层:NFC 天线与金属支架保持 ≥ 5mm 净空,使用铁氧体吸波片
  • 协议层:增加 NFC 通信重试(建议 3 次,间隔 50ms)
  • 回退方案:USB 直连作为降级通道,NFC 失败自动切 USB

坑 3:PIN 锁定恢复流程缺失

现象:车辆下线后 UKEY 因 PIN 验证错误超过阈值(通常 5-10 次)被锁定,导致车辆在 4S 店无法完成在线认证,需返厂更换芯片。

原因 :产线/售后 PAD 端默认使用出厂 PIN 12345678,但操作员未在首次使用后引导修改;且 PIN 解锁流程(挑战码 + 应答码)未集成到诊断工具中。

解法

python 复制代码
def unlock_ukey(locked_serial: str, admin_ukey: VehicleUKey) -> bool:
    # Step 1: 用管理员 UKEY 获取解锁挑战码
    challenge = admin_ukey._call("get_unlock_challenge",
                                 {"target_serial": locked_serial})
    # Step 2: 将挑战码 + 新PIN输入被锁UKey
    locked_ukey = VehicleUKey(serial=locked_serial)
    resp = locked_ukey._call("unlock_pin", {
        "challenge": challenge["challenge"],
        "new_pin": hashlib.sha256(b"user_set_new_pin").hexdigest()
    })
    return resp.get("status") == "ok"

坑 4:多 UKEY 控制流程缺少超时兜底

现象:CAS 系统配置了 3/5 M of N 策略(需 5 颗 UKEY 中至少 3 颗插入确认才签发根证书),但第 4 位操作员抽走 UKEY 后,流程卡死 24 小时。

原因 :CAS 默认不设会话超时,wait_for_ukey 操作无限阻塞。

解法

  • 会话层硬性超时:UK_SESSION_TIMEOUT = 300s
  • 超时后流程自动回滚到上一个检查点,已插入的 UKEY 签名作废
  • 通知通道:超时事件推送到企业微信 / 钉钉

坑 5:CRL 分发延迟导致设备被误信任

现象:某 UKEY 设备证书因产线异常被吊销,但 V2X 路侧设备在吊销后 48 小时内仍接受其签名。

原因:CRL 通过 T-Box 的蜂窝网络增量拉取,但地下车库信号差导致更新滞后。

解法

  • 本地缓存 CRL 版本号,每次签名前通过短报文比对
  • 零信任策略引擎侧增加"终端信任分衰减"机制:设备最后在线时间 >72 小时,信任分降至阈值以下 → 自动限权
  • 某头部汽车集团的实践是在主机厂 → Tier1 → 产线 → 车辆四级体系中使用安当 CAS 的集中式 CRL 分发 + 本地 LRU 缓存策略,将吊销生效窗口压缩到 15 分钟以内

§8 总结:硬信任根 + 零信任 = 车辆身份安全的终局?

回到开篇的问题:标准落地了,信任根怎么放?

答案不是单选题。UKey 不是来替代 SE 或 eHSM 的------从汽车行业零信任安全架构的全局来看,它们在车规等级和签名延迟上的差距是物理天花板。UKey 的核心生态位在于那些需要人工介入、跨域流动、多主体协作的场景:产线灌装、售后诊断、供应链证书分发。在这些场景里,可插拔的硬件信任锚点比焊死的安全芯片更匹配业务流程。

从零信任架构的角度来看,UKey 的价值不是提供最高级的物理防护,而是打破"一次认证永久信任"的惯性------每次签名前都需要人工 PIN 验证,每次接入都重新构建信任证据链。这是零信任"持续验证"在物理世界的落点。

下一步

  • 抗量子迁移:NIST 已标准化的 CRYSTALS-Dilithium(ML-DSA)和 CRYSTALS-Kyber(ML-KEM)在车规级芯片上的性能基准尚在验证中,UKey 的固件可升级性(相比焊死 SE)是应对这一波迁移的结构性优势
  • 标准化收敛:GB/T 47001-2025 的技术架构明确了数字身份载体应同时支持有外部供电(SE/eHSM)和无外部供电(UKey)两种形态,未来一年内会有更多主机厂基于此标准重新设计认证体系