摘 要 本文描述了一种向 POS 终端下载密钥的技术方案。通过该方案,可以为生产中的终端下载唯一的非对称密钥。出厂后的终端,可以通过该非对称密钥连接银行后台下载主密钥。该方案可以将非对称密钥通过自动化的方式注入 POS 终端。 POS 终端在生产后可以直接部署到商户,节省了运输到银行下载主密钥的工作。通过这个方案,减少了人工管理成本,提高了终端从生产环节到达部署环节的效率。
本文源自福建电脑第 37 卷 第 6 期2021 年 6 月
关键词 POS 终端;密钥下载;一机一密;自动化
1 引言
本文所提出的方案基于密码学,应用于 POS 终端这一金融支付场景上[1],用于解决向 POS 终端预置密钥的问题。作为一款金融支付终端,本文的方案主要使用 POS 终端完成付款功能。在这个过程中,POS 终端保护传递到银行后台的持卡人的敏感数据,如 PIN 和 PAN 的机密性和完整性[2]。为了做到这一点,根据密码学原理[3],POS 终端需要使用合适的密钥保护这些敏感数据。从密钥生命周期的角度来看,如何将密钥下载到 POS 终端,是整个金融支付领域非常重要的问题。
2 研究技术背景分析
随着电子支付产业的不断发展,电子支付因其快捷、便利的特点,受到人们的广泛认可和关注。因此,银行卡支付、消费卡支付已经成为人们消费支付的主要方式。其充分依托网络技术得以发展[4]。电子支付系统包括消费者使用的终端设备、支付平台等多种不同的设备。为了保证消费者的个人权益不受影响,消费者需要在安全环境中消费。消费者将账号和 PIN 输入 POS 终端[5],然后由该终端统一向支付平台传输信息。作为电子支付的重要载体, POS 终端承担了保护消费者账号和 PIN 的重要责任。为了避免账号或密码被破解,更好地保护持卡人的财产安全,在整个支付过程中都会通过加密的方式保护账号和密码,避免其以明文形式出现。因此,接受 PIN 输入的 POS 终端需配备相应的密钥管理体系[6]。如何下载初始密钥到终端,是一个需要解决的问题。常见的密钥下载方式有两种。
(1)终端在生产后,运输到银行的专用环境内,直接连接到银行后台下载明文交易密钥。该方式为当前传统的密钥下载方式,终端厂商需要先将终端发货给银行,然后由银行安排专人为每一台终端下载密钥,最后再由银行安排人员将终端布放到各个商户。在整个流程中,需要将终端先发货到银行,再发货到商户,延长了终端布放的时间。另一方面,银行需要有专人为每台终端下载密钥,增加了人力成本和管理成本。由于银行系统是对 POS 终端下载明文密钥,需要确保该区域始终在安全环境内[7]。
(2)终端在生产的时候,连接到终端厂商后台下载明文厂商密钥。通过该方式,终端出厂后已经有厂商密钥,可以使用该厂商密钥与银行后台建立安全通道,进而下载银行交易密钥。通过该方式生产的终端,生产后可以直接布放到商户,缩短了终端布放的时间。但由于是下载明文厂商密钥,则需要在厂商工厂内建立单独的安全环境,只能在此环境里下载明文密钥,相应地会降低生产效率。
主密钥和工作密钥是 POS 终端最常用的密钥管理体系,具有分级的特征,而这种体系和每笔交易均衍生出密钥的管理方法,都需要在终端下载初始密钥。目前,普遍以远程密钥下载方式下载初始密钥到终端[8],要求支付终端在出厂后预置非对称密钥和证书。
针对上述两种方案各自存在的问题,本文提出了一种新的解决方案。终端在生产的时候,与终端厂商后台建立安全通道,厂商密钥则可通过该安全通道,在终端与后台之间安全地传输。通过该方案,既满足了为出厂的终端下载厂商密钥的需求,同时不需要为工厂建设专门的安全房,还能对终端的生产效率没有造成太大的影响。
3 技术实现重点研究
对于生产中的终端,此时内部并没有可以和服务器交互的密钥。如何与服务器建立安全通道是本方案的设计要点。
本方案主要涉及三个角色:终端、PC、服务器。图 1 展示了三种之间的连接关系。
现说明三者之间进行交互的完整流程。
(1)三个角色各自拥有的重要数据。
服务器拥有提供加解密功能的证书及私钥(Enc_Server_keypair)[9],提供表征自己身份的证书和私钥(Auth_Server_keypair)以及 PC 的 Sub CA (Securemedia_SubCA)。同时,服务器作为一个 CA,可以为终端签发证书。
PC 拥有表征自己身份的证书 和 私 钥 (Auth_Securemedia_keypair) 以及服务器的 Sub CA(Server_SubCA)。PC 可以使用 Server_SubCA 验证服务器的真实性。
终端预置有服务器的 Sub CA(Server_SubCA)。终端可以使用 Server_SubCA 验证服务器证书的真实性。
(2)三个角色之间建立安全通道的流程。
每台 PC 的登录口令,由两名生产线上的操作员共同管理,第一名操作员负责登录口令的前 5 位,第二名操作员负责登录口令的后 5 位。
整个过程需要两个人一起操作才能完成,称为双控机制。具体为:两名操作员分别输入登录口令, PC 验证登录口令成功后,操作员才能使用 PC 上运行的软件,与服务器建立安全通道。
PC 与服务器,基于各自的证书及私钥,以及对方的 Sub CA,使用 TLS1.2 协议建立双向认证安全通道。
知道 PC 登录口令的人员,均为生产线上的操作员,均会按照生产流程,检查生产线上的 POS 终端,在确保外观完整后,才将该 POS 终端接入安全通道。当 POS 终端接入安全通道后,开启厂商密钥下载的流程。
(3)服务器向 POS 终端签发厂商证书的流程。
服务器向 POS 终端发送 Enc_Server_keypair 的证书。POS 终端使用 Server_SubCA 验证该证书的真实性后,终端生成随机会话密钥 SK,使用服务器证书加密该 SK,并通过 PC 与服务器之间的安全通道,将 SK 密文传递给服务器。服务器使用相应的私钥解密密文得到 SK 明文。若终端自己生成公私钥对的速度较慢,则由服务器生成公私钥对并完成证书签发,由服务器将经过 SK 加密后的私钥密文和证书发送给终端;若终端自己生成公私钥对的速度较快,则终端上送证书请求给服务器,证书请求的真实性由 SK 保证,服务器验证证书请求有效后,由服务器签发证书,并将证书发送给 POS 终端。图 2 展示了密钥下载的整个流程。
4 技术特征分析
通过上述流程可以看到,本文描述的技术方案,主要基于 PKI 体系,使用非对称密钥协商会话密钥,再使用该会话密钥保护待传递的数据,如私钥或证书请求。
考虑到生产中的 POS 终端没有密钥,因此只能由 POS 终端认证服务器,而服务器无法认证 POS 终端。为了解决这个问题,本方案引入 PC,通过 PC 与服务器基于 TLS1.2 建立的安全通道,确保后续 POS 终端与服务器交互数据的完整性和真实性。
两名操作员分别输入登录口令后,PC 验证登录口令的正确性,确保操作员身份的合法性。操作员自然能够按照厂商管理规范的要求,确保终端身份的合法性。
简言之,首先通过 PC 验证登录口令,再通过操作员检查 POS 终端的身份,完成对终端的身份认证。
在上述第 3 步流程里,当 POS 终端将 SK 的密文发给服务器时,只有合法的服务器才能正确解密 SK。通过该隐式认证,完成 POS 终端对服务器的身份验证。至此,完成了厂商密钥下载流程里,终端与服务器的双向认证流程。
在完成双向认证后,开始传递密钥。POS 终端使用预置在自己软件里的服务器 Sub CA,验证服务器下发的证书有效性,确保该证书确实来源于可靠的 CA。然后,由 POS 终端生成随机会话密钥 SK,再使用该证书加密 SK。通过该方式,确保 SK 只能被有效的服务器解密,从而保证 SK 不会被攻击者恶意获取。另一方面,由于 PC 已经与服务器建立安全通道,该通道确保了二者之间传递数据的真实性,使得密文 SK 的真实性得到了保障,避免了伪造 POS 终端获取厂商密钥的可能性。
5 结束语
为了保证本文提出的技术方案可以顺利实施,需要做好多方面的工作。在前期部署阶段需要做好充足的准备。由于方案涉及到证书,因此必须对 CA 中心进行合理的部署,搭建完整的 PKI 体系。在建立 CA 中心时,可以选择多种不同的方法。第 1 种方法可以在可信的第三方挂靠 CA 机构,成为其附属机构。第 2 种方法可以由终端厂家建立自己的 CA 中心。不论是哪种方式,服务器和加密机均需要放置在安全环境内,不过只需要部署集中式的服务器和加密机即可,不需要在每个工厂都设立单独的安全房。
在此基础上,还需要签发采集终端随机生成SK 的证书,用于加密该 SK 并上送到服务器。通过加解密方式,确保只有真实的服务器才能获取到该 SK。
同时,还需要注意到,通过 PC 的介入,可以在 PC 与服务器之间建立双向认证通道,从而保证通道之间传递数据的真实性,确保终端上送的证书请求或密文 SK 的真实性。
本文提出的技术方案,允许终端的厂商密钥可以由终端生成,也可以由服务器生成。至于采用哪种方式来实施,取决于终端生成厂商密钥的速度。这样,因终端性能不足造成的低效产能问题,可以得到有效的解决。
通过上述技术手段,终端在生产过程中,即可完成获取厂商密钥的目的,从而使得终端后续可以进行远程下载银行密钥的操作。
综上,本文提出的技术方案描述了对 POS 终端下载厂商密钥的解决方案。该方案使用了 PKI、非对称算法、双向认证这些密码学技术。通过 PKI 技术,为建立双向认证安全通道及传递敏感数据,提供了可信证书链。通过建立安全通道,以及生产线上操作员对终端的生产管理,完成了服务端与终端之间的双向认证。
同时,基于该双向认证安全通道,确保终端与服务端之间传递数据的真实性,确保双方之间传递的临时会话密钥是可信的,从而保证厂商密钥的可靠性。由于本文提出的技术方案对生产流程增加了一些额外操作,但对生产本身并没有提出本质上的改变,因此对生产效率没有造成较大影响。同时,由于不需要为每个工厂均设立单独的安全房,降低了生产成本和管理成本[10]。总而言之,本技术方案从安全、效率、成本三个角度出发,解决了为生产线上的终端预置厂商密钥的需求。