1、 ICS 35.240.15 CCS L 64 DB11 北京市地方标准 DB11/T 159.52023 代替 DB11/T 159.42015市政交通一卡通系统技术规范 第 5 部分:安全 Technical specification for municipal administration&communications card systemPart 5:Security 2023-12-25 发布2024-04-01 实施北京市市场监督管理局发 布DB11/T 159.52023 I 目 次 前言.II 引言.III 1 范围.1 2 规范性引用文件.1 3 术语和定义.1 4 缩略
2、语.2 5 系统安全要求.2 6 终端安全要求.2 6.1 一般要求.2 6.2 终端数据安全要求.3 6.3 终端环境安全要求.3 6.4 终端密码算法要求.3 7 卡片安全要求.4 7.1 一般要求.4 7.2 共存应用.4 7.3 密钥的独立性.4 7.4 卡片内部安全体系.4 7.5 卡片通信安全.4 7.6 卡片交易安全.4 7.7 卡片防攻击.4 7.8 卡片密码算法要求.4 8 移动支付系统安全要求.5 8.1 SE 安全要求.5 8.2 客户端软件安全要求.5 8.3 可信服务管理系统安全要求.5 9 交易安全要求.5 9.1 消费交易安全.5 9.2 充值交易安全.5 9.3
3、 退卡交易安全.6 10 密钥管理及算法要求.6 10.1 一般要求.6 10.2 生成与发行.6 10.3 安全机制.7 10.4 密码算法.7 附录 A(规范性)SM4 算法 MAC 的计算流程.8 附录 B(规范性)SM4 算法数据加密计算流程.9 附录 C(规范性)SM4 算法数据解密计算流程.10 附录 D(规范性)SM4 算法过程密钥产生流程.11 附录 E(规范性)SM4 算法子密钥推导流程.12 DB11/T 159.52023 II 前 言 本文件按照GB/T 1.12020标准化工作导则 第1部分:标准化文件的结构和起草规则的规定起草。DB11/T 159市政交通一卡通系统
4、技术规范分为以下部分:第1部分:总体要求;第2部分:卡片;第3部分:终端;第4部分:移动支付系统;第5部分:安全;第6部分:检测;本文件是DB11/T 159的第5部分。本文件代替DB11/T 159.42015市政交通一卡通技术规范 第4部分:安全,与DB11/T 159.42015相比,除结构调整和编辑性改动外,主要技术变化如下:a)更改了“系统安全”为“系统安全要求”(见第 5 章,2015 年版的第 3 章);删除了“基本要求”、“鉴别和访问控制”、“操作审计”、“数据安全”、“网络与计算环境安全”、“系统备份要求”(见第 5 章);b)增加了“终端密码算法要求”(见 6.4);c)增
5、加了卡片安全要求的“一般要求”、“共存应用”、“密钥的独立性”、“卡片内部安全体系”和“卡片密码算法要求”(见第 7 章);d)增加了移动支付系统安全要求(见第 8 章);e)更改了“密钥算法”为“密码算法”(见第 10.4,2015 年版的 7.4);f)删除了“MAC 计算DEA 算法”(见 2015 年版的附录 A);g)删除了“MAC 计算国密算法”(见 2015 年版的附录 B);h)增加了“SM4 算法 MAC 计算流程”(见附录 A);i)增加了“SM4 算法数据加密计算流程”(见附录 B);j)增加了“SM4 算法数据解密计算流程”(见附录 C);k)增加了“SM4 算法过程密
6、钥产生流程”(见附录 D);l)增加了“SM4 算法子密钥推导流程”(见附录 E)。本文件由北京市交通委员会提出并归口。本文件由北京市交通委员会组织实施。本文件起草单位:北京市智慧交通发展中心、北京市政交通一卡通有限公司、北京市标准化研究院。本文件主要起草人员:邢钊、李志宇、陈文革、刘敬光、田旷、隋莉颖、许占富、赵立华、李佳霖、蒋金煜、罗琳、曾正喜、周湘鹏、张腾、郁国栋、刘世俊、金方伟、魏振阳、李昂、王海、李真丞、樊子风、周巧霖、李强、常新、葛启彬、马凌飞。本文件及其所代替文件的历次版本发布情况为:2015年首次发布DB11/T159.42015市政交通一卡通技术规范 第4部分:安全;本次为第
7、一次修订。DB11/T 159.52023 III 引 言 随着智慧城市建设的加速和公共交通的快速发展,市政交通一卡通系统在城市交通运营和民生服务中发挥着越来越重要的作用。为了提高城市公共交通运营效率和民生服务质量,满足市政交通一卡通系统的业务发展要求和民生服务需求,需要进行规范化的技术管理,北京市交通委员会组织编制了统一的技术标准。DB11/T 159市政交通一卡通系统技术规范由6个部分组成:第1部分:总体要求。目的在于明确市政交通一卡通系统的整体构成和要求。第2部分:卡片。目的在于明确市政交通一卡通系统卡片的要求。第3部分:终端。目的在于明确市政交通一卡通系统终端的要求。第4部分:移动支付
8、系统。目的在于明确市政交通一卡通系统移动支付系统的组成和要求。第5部分:安全。目的在于明确市政交通一卡通系统安全的要求。第6部分:检测。目的在于明确市政交通一卡通系统检测的要求。DB11/T 159市政交通一卡通系统技术规范参考了国家及地方的相关法规、行业标准和最佳实践,结合北京市公共交通行业特点和发展需求,以及新技术应用等进行了修订,保证标准具有先进性、安全性和指导性,保障市政交通一卡通系统长期、稳定和健康地发展。DB11/T 159.5市政交通一卡通系统技术规范 第5部分:安全规定了市政交通一卡通系统安全的通用技术要求,包括系统安全要求、终端安全要求、卡片安全要求、移动支付系统安全要求、交
9、易安全要求、密钥管理及算法要求。适用于市政交通一卡通系统安全的设计、开发和实施。DB11/T 159.52023 1 市政交通一卡通系统技术规范 第 5 部分:安全 1 范围 本文件规定了市政交通一卡通系统安全的通用技术要求,包括系统安全要求、终端安全要求、卡片安全要求、移动支付系统安全要求、交易安全要求、密钥管理及算法要求。本文件适用于市政交通一卡通系统安全的设计、开发和实施。2 规范性引用文件 下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB/T 22
10、239 信息安全技术 网络安全等级保护基本要求 GM/T 0002 SM4 分组密码算法 GM/T 0003 SM2 椭圆曲线公钥密码算法 GM/T 0004 SM3 密码杂凑算法 GM/T 0005 随机性检测规范 JT/T 978.3 城市公共交通 IC 卡技术规范 第 3 部分:读写终端 JT/T 978.6 城市公共交通 IC 卡技术规范 第 6 部分:安全 JT/T 1059.2 交通一卡通移动支付技术规范 第 2 部分:安全单元 JT/T 1059.5 交通一卡通移动支付技术规范 第 5 部分:客户端软件 JT/T 1059.6 交通一卡通移动支付技术规范 第 6 部分:可信服务管
11、理系统 DB11/T 159.1 市政交通一卡通系统技术规范 第 1 部分:总体要求 3 术语和定义 DB11/T 159.1界定的以及下列术语和定义适用于本文件。3.1 对称加密技术 symmetric cryptographic technique 发送方和接收方使用相同保密密钥进行数据变换的加密技术。来源:JT/T 978.62015,3.3 3.2 非对称加密技术 asymmetric cryptographic technique 采用公开变换(由公钥定义)和私有变换(由私钥定义)这两种相关变换的加密技术。来源:JT/T 978.62015,3.2 DB11/T 159.52023
12、2 3.3 Timing攻击 Timing attack 在加密过程中,由于各分支语句的执行、频率、RAM命中率等因素所造成时间不一致,利用这些漏洞进行的攻击活动。3.4 SPA/DPA攻击 simple power analysis/differential power analysis attack 系统消耗功率的大小随微处理器执行的指令不同而不同,通过观察系统的功耗,提取与密钥有关信息的攻击活动。3.5 数字签名 key expiry date 对数据的一种非对称加密变换,简称签名。来源:JT/T 978.62015,3.4 3.6 公钥 public key 非对称密钥对中可公开的密钥
13、。在数字签名时,公钥用于验证。来源:JT/T 978.62015,3.5 3.7 私钥 private key 非对称密钥对中不可公开的密钥,在数字签名中,私钥用于签名。来源:JT/T 978.62015,3.6 4 缩略语 DB11/T 159.1界定的以及下列缩略语适用于本文件:CA:证书认证中心(Certificate Authority)CPU:中央处理单元(Central Process Unit)MAC:报文验证码(Message Authentication Code)PKI:公开密钥基础设施(Public Key Infrastructure)SM2:椭圆曲线公钥密码算法(Pu
14、blic Key Cryptographic Algorithm SM2 Based on Elliptic Curves)SM3:密码杂凑算法(SM3 Cryptographic Hash Algorithm)SM4:分组密码算法(SM4 Cryptographic Algorithm)5 系统安全要求 系统的安全物理环境、安全通信网络、安全区域边界、安全计算环境、安全管理中心、云计算安全扩展要求、移动互联安全扩展要求、安全管理要求等,应符合GB/T 22239中第三级的相关要求。6 终端安全要求 6.1 一般要求 DB11/T 159.52023 3 应符合JT/T 978.6中的相关要求
15、。6.2 终端数据安全要求 6.2.1 终端数据类型 终端存在两种基本类型的数据,包括:a)业务数据:如终端交易记录等。可对这些数据进行访问,但不应进行无授权修改;b)敏感数据:包括卡片应用密钥、公私钥、及终端内部参数。在未授权的情况下,外界不应对这类数据进行访问和修改。6.2.2 业务数据的安全要求 业务数据应存放在存储器中。在更新参数以及下载新的应用程序时,终端应执行以下操作:a)验证更新方的身份;b)校验下载参数及应用程序的完整性;c)在任何情况下,终端的应用数据都不应随意改变或丢失,并保证数据有效;d)所有与交易相关的数据均应以记录形式存储于终端存储器中,终端须保证这些数据的完整性。6
16、.2.3 敏感数据的安全要求 敏感数据应存放在终端安全模块中。安全模块应保证存储数据的安全,具体要求如下:a)安全模块应提供必要的安全机制以防止外界对终端所储存或处理的数据进行非法攻击;b)安全模块的硬件设计应能保证在物理上限制对其内部存贮的敏感数据的窃取,以及对安全模块的非授权使用和修改。一旦安全模块受到非法的攻击,其自身应能够立即完成对内部敏感数据的删除;c)安全模块的逻辑设计应保证,调用任何单一功能或组合功能时,都不会导致敏感数据的泄露。6.3 终端环境安全要求 6.3.1 基本要求 应具有防入侵功能。在正常的运行环境中,保证终端及其接口不会泄露或改变任何存储及处理的敏感数据。6.3.2
17、 一般要求 应限制对内部存储的密钥数据、业务参数、个人敏感信息的物理访问,防止数据被窃取,未经授权的使用或者未经授权的对终端的修改应有安全控制,具体要求如下:a)终端应具备防止外界非法入侵及对软硬件的增加、替换或修改的能力;b)终端应具备防止外界非法测定或修改敏感数据后重新安装终端软件的能力;c)当终端的任何部件发生故障时,不会导致秘密或敏感数据的泄露;d)如果终端的设计需要部分部件在物理上分离,并且处理的数据或指令在这些分离的部件之间传递,那么对终端的所有部件的保护等级应是相同的。6.4 终端密码算法要求 应满足如下算法要求:a)硬件应支持 SM2、SM3 和 SM4 算法;b)应满足密钥的
18、安全下发、存储和更新。DB11/T 159.52023 4 7 卡片安全要求 7.1 一般要求 应符合JT/T 978.6中的相关要求。7.2 共存应用 卡片共存应用应符合如下要求:a)不同应用之间应设计防火墙;b)不同应用之间的初始化要求和应用规则不应发生冲突。7.3 密钥的独立性 特定功能的加密/解密密钥不能被任何其他功能所使用,包括保存在卡片中的密钥和用来产生、派生、传输这些密钥的密钥。7.4 卡片内部安全体系 卡片内部安全体系应符合JT/T 978.6中的相关要求。7.5 卡片通信安全 卡片通信安全应满足要求如下:a)应采用一卡一密的密钥管理体系,密钥利用卡片的 CSN 及其他有关信息
19、,通过规定的加密算法,由卡片的发行机构在初始化时,写入卡片中;b)应用验证应由内置在终端的 SAM 卡或安全模块与总中心计算机处理系统共同完成认证;c)在交易过程中,为防止信号被窃取,其数据通信均应进行加密传输;d)每次写操作时,均应经过 MAC 验证,MAC 的计算需要通过卡内密钥经过特定的计算方法计算得到,MAC 计算方法见附录 A。7.6 卡片交易安全 卡片交易安全应满足要求如下:a)卡片消费交易流程安全应满足 JT/T 978.3 中的相关要求;b)卡片充值交易流程安全应满足 JT/T 978.3 中的相关要求。7.7 卡片防攻击 7.7.1 防 Timing 攻击 应能够抵御通过卡片
20、 CPU 运算的时间差异分析得到卡片机密信息的攻击。7.7.2 防 SPA/DPA 攻击 应能够抵御通过卡片计算过程中能量消耗的变化分析得到卡片机密信息的攻击。7.7.3 防随机数攻击 随机数的产生应符合GM/T 0005中的相关要求。7.8 卡片密码算法要求 芯片及操作系统应支持 SM2、SM3 和 SM4 算法。DB11/T 159.52023 5 8 移动支付系统安全要求 8.1 SE 安全要求 应符合 JT/T 1059.2 中的相关要求。8.2 客户端软件安全要求 应符合 JT/T 1059.5 中的相关要求。8.3 可信服务管理系统安全要求 应符合 JT/T 1059.6 中的相关
21、要求。9 交易安全要求 9.1 消费交易安全 消费交易处理应保证卡与终端之间、终端与系统之间的数据可靠传输,防止数据被窃取或篡改,具体要求如下:a)公共交通领域消费终端应使用 SAM 完成卡片的脱机交易验证;b)非公共交通领域脱机消费终端应使用 SAM 完成卡片的交易验证;消费交易所需安全性较高的行业及应用,应采用联机消费方式进行;c)消费交易时,应验证卡的合规性和可用性,包括但不限于是否为本系统卡、卡片状态是否正常、是否为黑名单卡、卡内余额是否足够等;d)消费交易应符合中心计算机系统下发的消费参数规定,如消费可用卡类型等;e)消费成功后应正确生成和完整保存消费交易数据,并确保数据存储及传输的
22、安全性;f)消费交易数据应包含 TAC;g)系统应及时将黑名单下发到每一台终端上,终端应拒绝黑名单卡的交易并进行锁卡。9.2 充值交易安全 充值交易处理应保证卡与终端之间、终端与系统之间的数据可靠传输,防止数据被窃取或篡改,具体要求如下:a)充值交易应采用联机方式进行,即交易过程中,终端与总中心计算机处理系统实时通信,通过终端及其内置的安全模块、认证系统及硬件加密机,完成卡片的联机认证及合法性检查;b)联机交易终端与总中心计算机处理系统的交互流程应采用 PKI 体系安全机制,采用非对称算法加密技术,确保传输报文的安全,报文中应附带 MAC 防篡改,MAC 计算方法见附录 A;c)支持充值业务的
23、终端应成功签到取得授权,并在有效时间范围内进行卡片的充值交易,授权验证的权限应在断电、复位、关机或超时后失效;d)总中心计算机处理系统应具有对支持充值业务的终端、商户、单位充值额度的三级配置管理功能,如:累计充值额度、当日最大充值额度限制等,对超出充值额度的终端、商户和单位,系统应拒绝其继续交易;e)充值交易时,应验证卡的合规性和可用性,包括但不限于是否为本系统卡、卡片状态是否正常、是否为黑名单卡等;f)充值成功后,终端应正确生成和完整保存充值交易数据,并将交易数据实时上传至总中心计算机处理系统;DB11/T 159.52023 6 g)充值交易数据应包含 TAC。9.3 退卡交易安全 退卡交
24、易处理应保证卡与终端之间、终端与系统之间的数据可靠传输,防止数据被窃取或篡改,具体要求如下:a)退卡交易应采用联机方式进行,即交易过程中,终端与总中心计算机处理系统实时通信,通过终端及其内置的安全模块、总中心计算机处理系统及硬件加密机,完成卡片的联机认证及合法性检查;b)联机交易终端与总中心计算机处理系统的交互流程应采用 PKI 体系安全机制,采用非对称算法加密技术确保传输报文的安全,报文中附带 MAC 防篡改,MAC 计算方法见附录 A;c)退卡终端应成功签到取得授权,并在权限有效时间范围内进行退卡交易,授权验证的权限应在断电、复位、关机或超时后失效;d)退卡交易应符合总中心计算机处理系统下
25、发的退卡参数规定;e)退卡交易时,应验证卡的合规性和可用性,包括但不限于是否为本系统卡、卡片状态是否正常、是否为黑名单卡等;f)退卡成功后,终端应正确生成和完整保存交易数据,并将交易数据实时上传至总中心计算机处理系统;g)退卡交易数据应包含 TAC。10 密钥管理及算法要求 10.1 一般要求 市政交通一卡通系统密钥管理应符合JT/T 978.6的要求。10.2 生成与发行 10.2.1 密钥生成 10.2.1.1 生成方式 生成方式要求如下:a)对称密钥应采用集中方式生成,即由发卡机构生成相应的主密钥组,其他密钥由该组主密钥分散生成。密钥生成的两种基本方法为:1)不重复的密钥生成:随机生成不
26、可恢复的密钥,每次的数值不相同;2)可重复的密钥生成:密钥变换、密钥衍生;密钥的生成是可重复的,能够重新得到与原来相同的密钥值。b)非对称密钥应采用在加密机或 SAM 卡内部产生公钥和私钥的方式,私钥在加密机或 SAM 卡内存储,公钥输出;c)数字证书应采用根 CA 逐级向下签发的方式产生用户证书或设备证书。10.2.1.2 安全技术 不需重复生成的密钥应采用随机产生的方式生成,由系统随机产生密钥,写入安全存取模块中保存。可重复生成的密钥采用密钥变换或密钥衍生的方式生成,应确保密钥变换或密钥衍生过程安全。10.2.1.3 安全措施 为了保证密钥的安全,防止密钥的泄露,在密钥生成时,应符合以下要
27、求:DB11/T 159.52023 7 a)密钥采用多人生成或由硬件加密的方式生成;b)密钥应在独立的物理空间生成,环境应符合安全管理要求;c)密钥生成应由专人负责,应符合安全管理规定;d)密钥生成的过程应严格执行操作规程。10.2.2 密钥发行 10.2.2.1 发行方式 密钥发行应采用逐级分散方式,由上一级生成下一级所需的各种子密钥,并传递给下一级。10.2.2.2 安全技术 应通过主控密钥、传输密钥控制密钥的加密装载、直接加密导出、分散加密导出。10.3 安全机制 10.3.1 对称加密技术 包括 SM4 算法 MAC 计算(见附录 A)、SM4 算法数据加密(见附录 B)、SM4 算
28、法数据解密(见附录 C)、SM4 算法过程密钥产生(见附录 D)和 SM4 算法子密钥推导(见附录 E)。10.3.2 非对称加密技术 非对称加密用来进行静态数据和动态数据的验证以及数字签名,应符合 JT/T 978.6 中的相关要求。在选择公开密钥的模数长度时,应考虑密钥的生命周期以及在此生命周期内被解密的可能性。10.4 密码算法 10.4.1 对称加密算法 SM4 算法应符合 GM/T 0002 中的相关要求。10.4.2 非对称加密算法 SM2 算法应符合 GM/T 0003 中的相关要求。10.4.3 摘要算法 SM3 算法应符合 GM/T 0004 中的相关要求。DB11/T 15
29、9.52023 8 附 录 A(规范性)SM4 算法 MAC 的计算流程 SM4算法MAC的计算流程如下:a)将一个 16 字节长的初始值设定为十六进制的“0 x 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00”;b)将所有的输入数据按指定顺序串联成一个数据块;c)将串联成的数据块分割为 16 字节长的数据块组,标识为 D1、D2、D3 与 D4 等,分割到最后,余下的字节组成一个长度小于等于 8 字节的最后一个数据块;d)若最后一个数据块长度为 16 字节,则在此数据块后附加一个 16 字节长的数据块,附加的数据块为十六进制的“0 x 80 0
30、0 00 00 00 00 00 00 00 00 00 00 00 00 00 00”。若最后一个数据块长度小于 16 字节,则该数据块的最后填补一个十六进制80。若填补之后的数据块长度等于 16 字节,则跳至下一步。若填补之后的数据块长度仍小于 16 字节,则在数据块后填补十六进制00至数据块长度为 16 字节;e)对通过上述步骤产生的数据块组,用过程密钥进行加密运算;f)将 16 字节运算结果按 8 字节分块做异或运算,得到 8 字节数据,取高 4 字节得到 MAC。+初始值I2KMAO2I3SM4(加密)D3O3I4SM4(加密)D4I5SM4(加密)SM4(解密)I1=D1SM4(加
31、密)O1D2KMAKMAO4KMAO5KMBSM4(加密)O6MACKMB 说明:I-输入;D-数据块;KMA-MAC 过程密钥A;KMB-MAC 过程密钥B;O-输出;+-异或运算。图1 SM4 算法的 MAC 计算流程 DB11/T 159.52023 9 附 录 B(规范性)SM4 算法数据加密计算流程 SM4算法数据加密计算流程如下:a)用 LD 表示明文数据的长度,在明文数据前加上 LD 产生新的数据块;b)将 a)中生成的数据块分解成 16 字节数据块,标号为 D1、D2、D3 和 D4 等。最后一个数据块长度有可能不足 16 字节;c)最后(或唯一)的数据块长度等于 16 字节,
32、转入 d);若不足 16 字节,在右边添加十六进制80。若长度已达 16 字节,转入步骤 d);否则,在其右边添加一字节十六进制00直到长度达到 16 字节;d)对每一个数据块使用 SM4 加密;e)计算结束后,依照原顺序连接所有加密后的数据块(加密后的 D1、加密后的 D2 等),并将结果数据块插入到命令数据域中。DNSM4(加密)O1KDAO2SM4(解密)SM4(加密)O3KDAKDB加密后的DN 说明:I-输入;DN-第N个数据块;O-输出;KDA-数据加密密钥A;KDB-数据加密密钥B。图2 SM4 算法数据加密计算流程 DB11/T 159.52023 10 附 录 C(规范性)S
33、M4 算法数据解密计算流程 SM4算法数据解密计算流程如下:a)将命令数据域中的数据块分解成 16 字节长的数据块,标号为 D1、D2、D3 和 D4 等,数据块的解密流程见图 3;b)计算结束后,依照原顺序连接所有解密后的数据块(解密后的 D1、解密后的 D2 等)。数据块由 LD、明文数据、填充字符组成;c)LD 表示明文数据的长度,用来恢复明文数据。DNSM4(解密)O1KDAO2SM4(加密)SM4(解密)O3KDAKDB解密后的DN 说明:I-输入;DN-第N个数据块;O-输出;KDA-数据加密密钥A;KDB-数据加密密钥B。图3 SM4 算法数据解密计算流程 DB11/T 159.
34、52023 11 附 录 D(规范性)SM4 算法过程密钥产生流程 SM4算法过程密钥产生流程如下:a)在 8 字节输入数据的右侧以十六进制“0 x 00 00 00 00 00 00 00 00”的方式补齐,形成16 字节数据作为 SM4 的输入(对原输入数据已经为 16 字节的交易,不需要补齐);b)用 16 字节子密钥,经过一次 SM4 加密产生 16 字节过程密钥。SM4(加密)子密钥输入数据过程密钥 图4 SM4 算法过程密钥产生流程 DB11/T 159.52023 12 附 录 E(规范性)SM4 算法子密钥推导流程 SM4算法子密钥推导流程如下:a)取 8 字节作为分散因子;b)输入数据由 8 字节分散因子加上分散因子取反组成;c)国密算法的子密钥导流程见图 5,用主密钥对输入数据进行 SM4 加密运算得到 16 字节结果作为子密钥。图5 SM4 算法子密钥推导流程 _