移动支付密钥体系研究
引言
移动支付(mobile payment,m-pay)[1]是允许用户使用手机对所消费的商品或服务进行账务支付的一种服务方式。它以RFID U(S)IM 卡为介质,集成了公交刷卡、门禁、考勤、缴纳公用事业费等各种各样的服务,深受大众的欢迎和电信运营商的重视。目前,国内的运营商,包括中国电信、中国移动和中国联通都在大力推广移动支付业务,特别是基于RFID 智能卡的现场支付业务。RFID 智能卡作为移动支付核心部件,其密钥管理系统是移动支付应用系统安全的核心,密钥系统的管理和控制是支付应用系统的关键,密钥管理系统的安全性将直接影响整个支付应用系统的安全性[2]。
目前,密钥管理系统一般为单层密钥管理系统[3]和三层密钥管理系统[4~6]两种。单层密钥管理系统,直接使用根密钥来生成智能卡的密钥, 密钥的生成需要系统的根密钥,根密钥的安全性难以保证,并且难以扩展智能卡应用系统的密钥。三层密钥管理系统主要通过根密钥、二级密钥和会话密钥三层密钥机制和“一卡一密”来保障密钥安全。系统较为简单,只适用于校园一卡通或其他特定的小区域, 无法适用于电信运营商大力推广的移动支付业务,因为密钥的索引过少, 难以降低密钥泄漏所带来的风险;密钥管理系统只有一个级别,无法实现“各区域发卡,跨区域通用”;没有引入与第三方合作类业务的密钥,且只支持PSAM 卡一次发卡,缺乏可扩展性和灵活性。参考文献[7]提出的密钥管理系统比三层密钥管理系统有所改进,增加了密钥的索引和引入了两级密钥管理系统,但仍然没有引入与第三方合作类业务的密钥,且只支持PSAM 卡一次发卡,缺乏可扩展性和灵活性。因此,本文在对称密钥技术的基础上提出了多层密钥体系和密钥管理系统,增强密钥管理系统的可扩展性和灵活性,以满足移动支付的多应用安全需求。
2 移动支付多层密钥体系
移动支付业务包括运营商自营业务和合作类业务,从地域上划分为全国性业务和省内业务, 也就意味着一张RFID智能卡将加载多种支付应用, 既要保障应用的安全性,还要支持应用扩展的灵活性。因此,多层密钥体系要达到以下目标:
· 技术安全性, 包括保证密钥管理系统运行的安全,保障密钥生成、存储、传输等环节的安全性,以防止密钥泄露;
· 可管理性,密钥涉及多个层次和多个应用,需保证密钥的分散、恢复等环节的安全性,以降低密钥泄露所带来的风险;
· 方便扩展性,保证密钥安全的同时,保证不同应用间的独立性以及加载合作类应用密钥的灵活性。
2.1 多层密钥结构
体系中的密钥主要分为4类, 分别是卡片管理密钥、应用管理密钥、应用功能密钥和通信保护密钥。
(1)卡片管理密钥:包括用户卡和PSAM 卡的卡片主控密钥和卡片维护密钥,确保卡片应用的安全加载以及卡片根目录下文件的安全保护。
(2)应用管理密钥:包括应用主控密钥和应用维护密钥,确保卡片应用密钥的安全加载以及应用下文件的安全保护。
(3)应用功能密钥:包括消费密钥、圈存密钥等,是应用于具体应用的密钥。
(4)通信保护密钥:用于保证系统间、终端和平台间的通信安全。
体系中的密钥分3 个级别:全国级密钥、省级密钥和卡内密钥。密钥从全国级密钥开始,逐级分散得到省级密钥和卡内密钥。全国根密钥是卡片管理密钥、通信保护密钥、全国性自营业务的应用管理密钥、全国性自营业务的应用功能密钥和省应用根密钥的根密钥。省应用根密钥是各省省内自营业务的根密钥(本省应用根密钥)的根密钥。全国性合作类业务的应用管理密钥和应用功能密钥来自全国第三方应用母卡,而省内合作类业务的则来自省第三方应用母卡。
分散全国根密钥可生成各种全国性自营业务的密钥(全国应用管理密钥和全国应用功能密钥);分散本省应用根密钥可以得到各种省内自营业务的密钥(本省应用管理密钥和本省应用功能密钥);通过全国第三方应用母卡,可接入各种全国性合作类业务的密钥(全国第三方应用管理密钥和全国第三方应用功能密钥); 通过省第三方应用母卡,可接入各种省内合作类业务的密钥(本省第三方应用管理密钥和本省第三方应用功能密钥)。采用此方式,各种业务的密钥各不相同, 保证了智能卡内各种应用的安全。此外,通过此方式还可灵活地生成更多全国性自营业务和省内自营业务的密钥,接入更多合作类业务的密钥。多层密钥结构如图1所示。

图1 多层密钥机构
2.2 多层密钥管理系统
多层密钥管理系统管理多层密钥结构中的各种密钥,分为全国密钥管理中心和省密钥管理中心两个级别,主要由全国密钥管理系统、全国发卡系统、省密钥管理系统、省发卡系统和第三方系统5 个子系统组成,系统结构如图2 所示。

图2 系统结构
为保证系统以及各子系统免受外部攻击, 系统需要封闭式运行, 即系统与其他系统间以及各子系统间无物理连接,它们间的密钥通过密钥母卡进行传递。各子系统间的关系如下:
· 全国密钥管理系统向全国发卡系统提供PSAM卡发卡母卡;
· 全国密钥管理系统通过密钥母卡向省密钥管理系统传递密钥;
· 省密钥管理系统向省发卡系统提供用户卡发卡母卡和PSAM 卡二次发卡母卡;
· 全国密钥管理中心接入的第三方应用密钥,通过全国密钥管理系统接收后传递给各省密钥管理中心;
· 省密钥管理中心接入的第三方应用密钥,通过省密钥管理系统进行接收。
2.2.1 全国密钥管理中心功能
多层密钥管理系统的功能主要由全国密钥管理中心和省密钥管理中心来完成。其中全国密钥管理中心作为系统的第一级别,主要负责以下几方面。
· 根据密钥种子A、B 生成全国根密钥, 使用全国应用标识分散全国根密钥得到全国卡片管理密钥、全国应用管理密钥、全国应用功能密钥、全国通信保护密钥和省应用根密钥。
· 通过第三方提供的第三方应用母卡接收合作类应用的密钥。
· 加载全国通信保护密钥到加密机,销毁加密机中的全国通信保护密钥。
· 使用全国通信保护密钥制作省通信母卡,使用省应用根密钥制作省应用母卡, 使用全国卡片管理密钥、全国应用管理密钥和全国应用功能密钥制作PSAM 卡发卡母卡和省用户卡发卡母卡,使用第三方应用母卡制作省第三方应用母卡,使用全国卡片管理密钥制作PSAM卡洗卡母卡和省PSAM 卡发卡母卡。
· 把省通信母卡、省应用母卡、省用户卡发卡母卡、省第三方应用母卡、PSAM 卡洗卡母卡和省PSAM卡发卡母卡传递给各省密钥管理中心。
· PSAM 卡的一次发卡。全国发卡系统使用PSAM卡发卡母卡,把PSAM 卡的厂商密钥替代为母卡中的PSAM卡卡片主控密钥。然后,在卡片主控密钥控制下导入卡片维护密钥,创建卡文件结构和导入全国应用管理密钥和全国应用功能密钥。
· 把一次发卡后的PSAM 卡传递给各省密钥管理中心。
2.2.2 省密钥管理中心功能
省密钥管理中心是多层密钥管理系统的第二级别,主要负责以下几方面。
· 接收全国密钥管理中心传递省通信母卡、省应用母卡、省用户卡发卡母卡、省第三方应用母卡、PSAM卡洗卡母卡和省PSAM卡发卡母卡。
· 通过第三方提供的第三方应用母卡接收合作类应用的密钥。
· 加载省通信保护密钥到加密机,销毁加密机中的省通信保护密钥。
· 使用本省应用标识分散省应用母卡中的本省应用根密钥从而生成本省应用功能密钥和本省应用管理密钥。
· PSAM 卡二次发卡母卡和用户卡发卡母卡的制作。使用省通信保护密钥、本省应用功能密钥、本省应用管理密钥和省PSAM 卡发卡母卡制作PSAM 卡二次发卡母卡;利用省用户卡发卡母卡、省第三方应用母卡、本省第三方应用母卡、本省应用功能密钥和本省应用管理密钥制作用户卡发卡母卡。
· 用户卡的发卡。省发卡系统首先使用用户卡发卡母卡,将用户卡的厂商密钥替换母卡中的用户卡卡片主控密钥;然后,在卡片主控密钥控制下导入卡片维护密钥,创建用户卡根目录下的文件和应用目录,并导入应用的主控密钥。接着,在应用主控密钥控制下导入应用维护密钥和应用功能密钥,在应用维护密钥控制下创建应用目录下的文件。最后,将个人化信息写入用户卡内。用户卡发卡母卡中的密钥经用户卡序列号分散后倒入用户卡。
· PSAM 卡的二次发卡。省发卡系统使用PSAM卡二次发卡母卡和PSAM 卡洗卡母卡,往PSAM 卡写入终端机编号,创建本省应用文件,并导入发卡母卡中的密钥。发卡母卡中的应用管理密钥需使用PSAM 卡序列号分散后写入。
3 密钥管理流程
RFID 智能卡上集成多种支付应用,能否准确地生成用户卡和PSAM 卡中的密钥, 对支付系统的安全至关重要。因此,多层密钥管理系统的一个重要方面是管理系统中各类密钥的生成,包括用户卡的卡片管理密钥和运营商自营业务的密钥生成,PSAM 卡的卡片管理密钥、通信保护密钥和运营商自营业务的密钥生成和合作类业务的密钥加载。
3.1 用户卡密钥生成流程
首先,全国密钥管理中心使用省编码分散全国卡片管理密钥、全国应用管理密钥、全国应用功能密钥得到省卡片管理密钥、省应用管理密钥和省应用功能密钥,把省卡片管理密钥、省应用管理密钥和省应用功能密钥写入空白密钥母卡得到省用户卡发卡母卡;将分散省应用根密钥得到的各省的本省应用根密钥写入空白密钥母卡得到省应用母卡。然后,省密钥管理中心使用本省应用标识分散省应用母卡中的本省应用根密钥,得到本省应用管理密钥和本省应用功能密钥。将本省应用管理密钥和本省应用功能密钥一起加载到省用户卡发卡母卡,从而得到用户卡发卡母卡。最后,省发卡系统对用户卡进行发卡。用户卡密钥的生成流程具体如图3所示。

图3 用户卡密钥生成流程
3.2 PSAM 卡密钥生成流程
首先,全国密钥管理中心把全国应用管理密钥,全国卡片管理密钥和全国应用功能密钥写入空白密钥母卡得到PSAM 卡发卡母卡;将分散全国通信保护密钥得到的省通信保护密钥写入空白密钥母卡得到省通信母卡;将卡片管理密钥写入空白密钥母卡得到PSAM 卡洗卡母卡;使用省编码分散卡片管理密钥后写入空白密钥母卡得到省PSAM 卡发卡母卡。全国发卡系统利用PSAM 卡发卡母卡对PSAM 卡进行一次发卡。
然后,省密钥管理中心把本省应用管理密钥、本省应用功能密钥和省通信保护密钥写入到省PSAM 卡发卡母卡,从而生成PSAM 卡二次发卡母卡。最后,省发卡系统利用PSAM 卡洗卡母卡和PSAM 卡二次发卡母卡对一次发卡后的PSAM 卡进行二次发卡。PSAM 卡的密钥生成流程具体如图4 所示。

图4 PSAM卡密钥生成流程
3.3 合作类业务密钥加载
与第三方合作时,第三方应用的密钥可采用“委托运营商完成”和“运营商授权、第三方自行加载”两种方式加载。采用第一种方式时,运营商在用户卡内创建相应的应用并按照第三方的要求导入相应的密钥, 密钥的加载过程如图5所示。如果第三方应用密钥通过全国第三方应用母卡传递给全国密钥管理中心, 则全国密钥管理中心分散母卡中的密钥,并传递给各省密钥管理中心。此时,各省发的用户卡均具有该第三方应用。如果通过省第三方应用母卡传递给省密钥管理中,则只有该省发的用户卡才具有该第三方应用。在第二种方式中,省密钥管理中心在用户卡内创建相应的应用目录,并制作供第三方使用的第三方应用洗卡母卡。第三方利用该母卡,在用户卡中增加第三方应用。

图5 “委托运营方完成”方式中第三方应用密钥的加载流程
4 密钥安全技术
移动支付多层密钥管理系统采用一定的密钥安全技术保证其安全性,主要有:利用3DES 算法生成根密钥,方便恢复根密钥;采用多索引多版本[8]和密钥分散机制,降低密钥泄漏的风险;使用硬件加密机和密钥母卡分别存储和传递密钥,且限制密钥的使用次数和用途,最大限度地保证密钥的安全。
4.1 密钥生成技术
全国根密钥通过加密相关人员提供的密钥种子A、B得到,密钥种子A、B 以安全的方式由各方保管,以供密钥恢复时使用。生成过程为:相关人员提供密钥种子A、B(8 byte 的字符串),将其转化为字节类型a 和b 后,合并a和b 得到16 byte 的密钥种子C。使用C 3DES 加密C 与16 byte F 的异或值得到密钥。
4.2 密钥分散技术
系统采用的密钥分散方法如下:假设KEYf 表示母密钥,KEYs 表示子密钥,K 表示分散因子, 那么使用分散因子K 从母密钥得到子密钥,可表示为:KEYs=3DES(KEYf,K+XOR(K,F))其中,XOR 表示异或运算, + 表示连接,3DES 表示3DES 加密计算,F 表示8 byte 全F,K 为8 byte,KEYf 和KEYs 为16 byte。密钥经全国密钥管理中心分散后传递给各省,保证即使某省的密钥泄漏, 也不会影响到其他省的密钥安全;同样地,密钥分散后导入用户卡,保证某张用户卡的密钥泄漏不会影响其它用户卡的密钥安全。
4.3 密钥存储传输技术
系统采用硬件加密机存储和备份密钥;使用密钥母卡传输密钥,且密钥传输过程中,不得出现密钥明文,同时密钥母卡必须和密钥认证卡配合使用。密钥导入密钥母卡时,可以设置密钥的最多使用次数,也可以设置密钥的用途,比如密钥只能用于分散或只能用于导出。系统根据密钥最多使用次数和密钥用途来限制密钥的使用。
4.4 密钥索引与版本
系统中的密钥采用版本和索引来标识,每类密钥均有多组不同的版本和索引。PSAM 卡中存放一个索引对应的多个版本的密钥, 用户卡中存放一个版本对应的多个索引的密钥。此机制保证用户卡密钥泄漏时,不用回收已发出去的用户卡,只需要把PSAM 卡中的密钥更改为另一个索引对应的多个版本的密钥即可,从而降低密钥泄漏所带来的风险。
5 结束语
本文针对移动支付中集成多应用的安全需求,提出了多层密钥体系和密钥管理系统,并对密钥管理流程和采用的安全机制进行了介绍。首先,系统封闭式运行,并采用加密机和密钥母卡分别存储、传输密钥,而且密钥母卡需要密钥认证卡的配合才能使用,保证了系统运行和密钥的安全。再次,系统采用密钥的多索引多版本安全机制和密钥分散,降低了密钥泄漏所带来的风险,也保证了不同应用间的独立性。最后,全国密钥管理中心和省密钥管理中心均可接入第三方的应用密钥,保证了电信运营商与第三方合作的灵活性。该密钥管理系统实现了技术安全性、可管理性和方便扩展性,能支持丰富的移动支付智能卡应用。(中国电信股份有限公司广东研究院 黄泽龙 张文安 谢云)
移动支付密钥体系研究