在STS(Standard Transfer Specification)系统中,Token是预付费表与售电系统交互的核心安全凭证。以下是其类型、区分方式、生成机制及使用流程的详细说明:
一、Token 的类型
STS Token的类型主要通过功能用途和数据编码规则进行区分,常见类型包括:
类型 | 用途 | 区分标识 |
---|---|---|
充值 Token | 用户购买能源(电、水、气)后用于充值的凭证。 | 操作码(Command Code)为 1 或 01 |
紧急 Token | 欠费断电后恢复基础服务的临时凭证(如紧急供电 5 度)。 | 操作码为 2 或 02 ,含有限额和有效期 |
配置 Token | 更新表计参数(如阶梯电价、费率、设备密钥)。 | 操作码为 3 或 03 ,含配置指令数据 |
清零 Token | 重置表计数据(如测试用表计初始化)。 | 操作码为 4 或 04 ,需管理员权限 |
测试 Token | 开发或维护阶段验证表计功能的临时凭证。 | 操作码为 5 或 05 ,不参与实际交易 |
区分方式:
- 操作码(Command Code):Token头部包含 1~2 位数字,明确标识其类型(如 01 代表充值)。
- 数据结构:不同类型Token的加密字段不同(如紧急Token需包含有效期和限额)。
- 权限控制:如配置Token需使用管理员密钥生成,普通用户无法获取。
二、Token 的生成机制
STS Token的生成遵循严格的加密流程,确保唯一性和防篡改:
输入参数:
- 表号(Meter ID):唯一标识目标表计的 10 位数字。
- 购电金额/操作指令:如充值金额、配置参数等。
- 时间戳(Timestamp):交易生成的 UTC 时间(防止重放攻击)。
- 随机数(Nonce):增强Token随机性的数值。
加密流程:
- 密钥体系:使用预置在表计和售电系统的 AES-128 密钥 或 TDEA 密钥。
- 数据组装:将输入参数按STS协议格式拼接为原始数据块。
- 加密运算:通过加密算法生成 20 位数字Token,结构通常为:
[操作码(2位)] + [加密数据块(16位)] + [校验码(2位)]
校验码生成:
使用 CRC-16 或 Luhn算法 对前 18 位数字计算校验码,确保Token完整性。
示例:
表号:1234567890
金额:50 元
操作码:01
生成Token:01 6583 2947 1836 5724 89
三、Token 的使用流程
用户获取Token后,需通过预付费表完成验证和操作:
输入 Token:
- 手动输入:通过表计键盘输入 20 位数字Token。
- 自动传输:通过智能卡、蓝牙或红外设备传输(部分高端表计支持)。
表计验证流程:
- 校验码验证:检查后 2 位校验码是否合法。
- 解密数据:用预置密钥解密Token,提取操作码、金额、时间戳等信息。
- 防重放攻击:核对时间戳是否在有效期内,并检查Token序列号是否已使用。
- 权限验证:如配置Token需验证管理员权限。
执行操作:
- 充值:增加表计余额,更新显示剩余电量/水量。
- 紧急恢复:临时恢复基础供应,但需在限定时间内完成正式充值。
- 参数更新:如修改阶梯电价规则或更换加密密钥。
异常处理:
- 若Token无效(如校验失败、已过期),表计显示错误代码(如 Err 05)并拒绝执行。
- 连续输入错误可能触发表计锁定,需联系管理员解锁。
四、不同类型Token的应用场景
充值 Token:
- 典型场景:用户通过POS机、APP购电后获得,输入表计即时到账。
- 安全要求:需绑定表号,禁止跨表使用。
紧急 Token:
- 生成限制:售电系统每日最多生成 1 次,且限额固定(如 5 度电)。
- 有效期:通常为 24~72 小时,超时自动失效。
配置 Token:
- 密钥轮换:定期生成新密钥的Token,提升系统安全性。
- 远程管理:支持通过短信发送配置Token,无需现场操作。
五、技术规范与标准
- 加密标准:IEC 62055-41 规定使用 AES-128 或 TDEA 算法。
- Token长度:固定 20 位数字,兼容所有STS设备。
- 互操作性:不同厂商的表计和售电系统可通过标准Token实现无缝对接。
总结
STS Token通过严格的类型区分、加密生成和验证机制,实现了预付费能源系统的安全与高效管理。其核心价值在于:
- 功能隔离:不同类型Token分工明确,避免操作混淆。
- 端到端安全:从生成到验证全程加密,抵御伪造和篡改。
- 离线可靠性:无需实时联网,适合基础设施薄弱的地区。