2025年,某省一家水表制造企业在产线审计中发现:三个月前出厂的一批5万只NB-IoT智能水表,有37只的密钥烧录记录缺失。追溯原因发现是产线烧录工位的一台工控机硬盘故障导致密钥记录丢失——但更严重的问题是,没有人能确认这37只水表是否真的完成过密钥烧录。如果这37只水表中有任何一只的密钥未被烧录,用户可以绕过远传水表的加密认证,伪造用水量数据。
智能水表的产线密钥注入,是"最后一厘米"的安全问题——密钥生成和管理的环节由密钥管理平台保障,但在产线烧录工位上如果操作员认证不严、注入流程无审计,所有前置安全投入都白费。
一、CJ/T 188-2018标准的安全要求与产品映射
1.1 标准概述
CJ/T 188-2018《城镇供水系统智能化工程技术规程》是国内智能水表领域的重要标准,其对数据安全的规定如下:
| CJ/T 188要求 | 具体内容 | 技术实现 | 安当产品能力 |
|---|---|---|---|
| 水表身份认证 | 每只水表应有唯一身份标识 | 签发X.509设备证书 | CAS-KMS CA证书管理模块,支持SM2/RSA/ECC多算法证书签发 |
| 通信数据加密 | 与调度中心的通信数据应加密传输 | SM4-CBC/SM4-GCM加密 | KSP三级密钥体系派生每表唯一会话密钥 |
| 远程控制鉴权 | 远程阀门控制等操作需鉴权 | SM2数字签名+证书链验证 | CAS-KMS签名服务(签名性能≥10/s,验签≥2,000/s) |
| 密钥全生命周期 | 密钥生成、存储、使用、销毁全周期受控 | 产线注入+运营管理 | KDPS密钥分发系统+ KSP密钥管理平台+ HSM硬件保护 |
1.2 智能水表的数据安全分类
智能水表采集和传输的数据按安全等级分为三级:
| 数据分类 | 示例 | 保护要求 | 加密强度 | 安当支撑产品 |
|---|---|---|---|---|
| 计量数据 | 用水量、累计流量 | 传输加密+完整性校验 | SM4-GCM | KSP密钥派生+SM4硬件加速 |
| 控制数据 | 阀门开关、停水指令 | 传输加密+身份签名 | SM4-GCM+SM2签名 | CAS-KMS证书签名 |
| 身份数据 | 水表编号、用户户号 | 身份认证 | X.509证书链 | CAS-KMS CA证书签发 |
二、产线密钥烧录:KDPS的方案
2.1 KDPS密钥分发流程
智能水表的产线密钥注入依托KDPS(Key Deployment & Provisioning System)密钥分发系统完成。安当KDPS数据保护平台覆盖了从HSM密钥生成到产线终端注入的全链路自动化管理,每只水表的注入流程如下:
CAS-KMS HSM ──→ 生成批次主密钥(SM4-128)
│
▼
KDPS密钥分发系统 ──→ 基于每表UID分批派生差异化密钥
(支持单批次50万只水表的密钥派生)
│
▼
产线烧录工控机 ──→ 通过串口/无线注入密钥 ──→ 写入水表安全芯片密钥槽
(工控机操作员需UKEY+密码双因素认证) (每表注入约1.2秒)
│ │
▼ ▼
产线WMS系统 ←── KDPS确认密钥写入成功 ←── 返回SM2签名确认
(记录水表ID+密钥指纹+时间戳+操作员)
│
▼
密钥档案入库 ──→ KSP密钥管理平台 ──→ 水务运营平台
(三级密钥体系:根密钥HSM保护→KEK→水表工作密钥)
KDPS在产线环境的具体流程参数参考如下:
- 单条产线通过速率:每小时3,000只水表
- 每只水表完成注入全流程:约1.2秒
- 整批5万只水表的注密钥完成时间:约17小时
- 首轮通过率:99.99%
- 失败处理:自动分拣到复检工位,由质检人员人工确认
2.2 产线工控机的安全认证
产线工控机的操作员必须经过ASP统一身份认证平台的认证后才能执行密钥烧录操作:
# 伪代码:产线工控机的认证与授权
class ProductionLineAuth:
"""產线操作员认证"""
def __init__(self):
# 连接ASP认证平台(基于OAuth 2.0/OIDC)
self.asp_endpoint = "https://asp.internal/auth"
def authenticate_operator(self, ukey_cert: bytes, pin: str):
"""操作员使用UKEY+密码双因素认证"""
auth_request = {
"auth_method": "UKEY_PIN",
"ukey_cert": base64.b64encode(ukey_cert).decode(),
"pin_hash": sm3_hash(pin),
"workstation_id": get_workstation_mac(),
"shift_code": get_current_shift(),
"timestamp": int(time.time() * 1000)
}
auth_response = requests.post(
f"{self.asp_endpoint}/v1/auth/verify",
json=auth_request
)
return auth_response.json().get("authenticated", False)
def authorize_key_injection(self, operator_id: str):
"""确认操作员有密钥注入权限(RBAC)"""
perm_response = requests.get(
f"{self.asp_endpoint}/v1/permissions/{operator_id}",
params={"operation": "key_injection"}
)
return perm_response.json().get("permitted", False)
ASP平台负责验证UKEY证书链、校验PIN码、检查操作员的RBAC权限——只有经过认证和授权的操作员才能执行密钥烧录。ASP的QPS值可达1,500次/秒,认证延迟在50ms以内。
2.3 产线安全策略配置
产线的完整安全策略覆盖工控机安全、密钥注入和审计三个环节:
# 产线安全策略(基于安当产品体系实现)
production_line_security:
terminal_hardening:
- 工控机登录:操作员UKEY+密码双因素认证(ASP+UKEY)
- USB接口白名单:仅允许KDPS烧录探头接入
- 网络隔离:产线网络与办公网络物理分离
key_injection:
- 密钥派生:KDPS基于UID+批次主密钥派生每表唯一密钥
- 写入验证:写入→回读校验→SM2签名确认
- 失败重试:自动复检,连续3次失败分拣隔离区
- 密钥处理:密钥在安全芯片内部写入,工控机不做持久化
audit:
- 每只水表烧录记录的完整日志(时间/操作员ID/水表ID/KeyID)
- 日志使用SM3签名链防篡改(KSP审计模块)
- 烧录记录每日自动上传到KSP平台归档
三、运营中的密钥管理:KSP全生命周期管控
3.1 KSP密钥状态流转
从产线到报废,一只智能水表的密钥在KSP密钥管理平台中经历以下状态流转,每个状态的转换记录完整的操作日志和审批信息:
产线注入 → 激活 → 运营中 → 故障更换 → 报废
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
密钥未激活 已就绪 使用中 密钥已撤销 已销毁
(出厂) (入库) (入户) (旧表) (回炉)
KSP平台对每个状态转换都配置了细粒度的密钥策略——包括操作权限、时间/次数限制、三权分立、IP白名单。密钥的操作日志通过Syslog对外发送到集中审计平台,满足密评第6项(安全审计,10分)的要求。
3.2 远程密钥更新协议
已安装入户的智能水表也可以通过CAS-KMS远程下发指令更新密钥:
{
"operation": "remote_key_update",
"target_meters": ["WM-2026-A001", "WM-2026-A002"],
"新密钥(经KSP封装的加密格式)": "0xA3B2C1...",
"signature": "0x7D8E9F...",
"timestamp": "2026-07-14T02:00:00Z",
"update_window": {
"start": "02:00",
"end": "04:00"
}
}
水表收到远程密钥更新指令后,首先验证指令中的SM2签名——确认是合法的水务运营平台下发的指令后,使用安全芯片解密密钥,将新密钥写入密钥槽。
Q: 智能水表产线密钥烧录失败最可能的原因是什么?
A: 根据产线运行数据统计,烧录失败的主要原因依次为:焊接接触不良(约60%)、安全芯片初始化失败(约25%)、通信干扰(约10%)。每只水表失败后会被自动送至复检工位。KDPS支持对失败设备的重新注入——维修后重新接入产线流水线,KDPS自动识别设备UID并补充密钥。
Q: CJ/T 188要求的数据加密是加密传输还是加密存储?
A: CJ/T 188重点要求的是传输加密——水表与数据采集器之间的通信数据应采用加密传输。水表本地数据在安全芯片内部存储,TDE级别的加密保护由安全芯片自身防护机制保证。远程阀控指令等需要经过SM2签名的身份认证才能执行,CAS-KMS的CA证书体系为每只水表签发了独立的身份证书。
Q: 水厂有上万只旧机械水表升级为智能水表,分批替换会影响密钥管理吗?
A: 不会。KDPS密钥分发系统和KSP密钥管理平台共同支持"分批投产、逐批激活"的模式——第一批1万只水表产线注入后处于"已就绪"状态,入户时激活;第二批2万只隔月投产。每批次的密钥由同一套KSP体系管理,但密钥状态独立追踪。KSP平台的密钥分组(按业务维度拆分,资源隔离)功能支持按批次、按片区、按水表型号的多维度管理。


被折叠的 条评论
为什么被折叠?



