HCE技术在移动支付中的应用与安全分析

网站建设 2021-07-09 17:05www.dzhlxh.cn网站建设

 在非接触式移动设备进行现场支付业务时,一般是利用NFC技术的卡模拟方式来实现,即把移动设备模拟成一张非接触式的金融IC卡,与支持非接触式受理的POS终端进行交互。在这种传统的卡模拟方案中,需在移动设备内加载安全单元(SEcure E1ement,SE),用于支付应用及其数据的安全存储和安全运算,为支付过程提供了芯片级的可靠安全保障。该安全单元的载体形式可以是智能SD卡、智能SIM卡或者移动终端内部的嵌入式独立单元。这些安全单元的存在确实保障了金融数据安全,但同时也在卡的发行运营方面增加了移动支付的复杂性。

中国银联股份有限公司技术部助理总经理 李伟

2013年底,安卓操作系统4.4以上版本支持了主机卡模拟(Host-baSEd Card Emulation,HCE)技术,该技术使基于操作系统应用软件直接实现卡模拟技术成为可能,不再要求手机中必须存在安全单元。HCE技术的应用可以大幅降低支付应用的门槛,减少移动支付的推广成本,因而引起了业界的广泛关注。但是,由于HCE方案软件卡支付应用不再要求移动终端中必须存在安全单元,因而需要应设计一套完整的安全加固方案以保护支付应用数据的安全。本文将对HCE技术在移动支付的应用安全进行分析,并提出典型的技术解决方案。

一、基于HCE的软件卡技术方案整体架构

图1给出了一个较为全面的能够涵盖多种具体解决方案的整体架构,其关键模块介绍如下。

1.移动终端

移动终端是用户支付应用的载体,具体形态可以为支持NFC功能的手机、平板或者可穿戴设备等。移动终端应具备用于支撑各类应用运行的执行环境,执行环境为上层应用提供运算、存储管理、输入输出界面等一系列功能和服务。通过移动终端,用户可以下载、安装基于HCE技术实现的软件卡支付应用软件(如数字钱包应用等)。通过支付应用软件,实现支付应用的管理、非接触式支付或远程支付等功能。可信执行环境(Trusted Execution Environment,TEE)技术被视为是未来进一步提升移动终端执行环境安全的一个重要方向。

2.软件卡支付应用

软件卡支付应用是解决方案中最为核心的组成要素,一般而言,其主要功能如下:

用户软件卡账户信息的管理,如申请、下载、删除、暂停、恢复等功能;用户账户信息的保存和处理,如账户参数的保存和更新等;支付过程中的数据运算,如非接触支付中对终端指令的处理和响应、远程支付中交易验证数据的生成或验证等;可提供账户信息查询、余额查询、圈存等操作入口。

软件卡支付应用可以有多种实现形式,可以作为独立的移动应用软件存在,也可以作为插件的形式集成在其他服务提供商的移动应用软件中。

3.移动应用平台

移动应用平台是移动应用软件接入的既有或新建的后台管理系统,提供移动应用的下载和管理功能。在云端支付解决方案中,它还可负责移动应用与云端支付平台之间的数据转发或路由。

4.云端支付平台

云端支付平台是云端支付解决方案中使用到的后台系统,可提供云账户生命周期的管理服务,包括云账户为创建和初始化、活跃账户管理、交易验证、交易处理、生命周期管理及后交易处理。除了这些基础功能外,云端支付平台可同时提供一些辅助功能,例如账单服务、报告服务等。

5.标记化服务提供商系统

标记化服务提供商系统是指在符合EMVCo标记化规范架构下,能够完成从标记生成和发布功能的系统,并在标记请求者发出请求时维护已建立的“标记一主账号”的映射关系。

6.安全单元

在某些应用场景下,如果移动终端中存在安全芯片,软件卡解决方案也可以结合SE,由其来提供更为安全的支付应用数据存储和运算功能。

7.远程支付网关

用于处理远程支付交易的系统前置平台。

二、安全性分析

相比于传统基于SE实现的支付应用(主要由SE提供安全存储和安全运算保障),软件卡支付应用的安全防护需要由整体解决方案来提供。在软件卡支付解决方案中,每一个部件都分担了系统安全的一些责任,同时实现了系统安全的一些功能。安全性不再以某单独部件的安全与否进行衡量,而是以多部件系统整体为单位进行衡量。

软件卡解决方案的安全性可以从两个角度来衡量,一方面是发现漏洞以及利用漏洞的难易程度,另一方面是一旦漏洞被利用之后造成损失的大小。由于软件卡支付应用所处的移动终端操作系统能提供的安全防护较为薄弱,软件卡支付应用一般在整体解决方案中不是独立存在的,它一般与其它安全环境或者云端支付系统架构紧密结合。总体看来,软件卡解决方案的安全性可以从前端和后端两个方面来考虑:前端包含移动终端能提供的安全环境及软件卡支付应用,后端主要是移动应用平台、云端支付平台等。

在前端的安全考虑中,由移动终端操作系统自身提供的安全防护在目前阶段往往存在安全漏洞。因此,建议应用提供方在实现软件卡支付应用时,应该着重分析会有哪些可能存在的风险,然后采用相应的防护技术降低风险。比如,针对支付应用自身,可采用白盒加密、代码混淆等技术手段来提升安全防护能力,减少漏洞,降低漏洞暴露的可能性,提升漏洞被利用的难度;另一方面,尽量降低漏洞被利用之后造成的损失,如可采用账号标记化、限制密钥使用等手段。

在后端的系统实现中,从安全的角度看,一个关键前提是在设计服务器端时不应该假设前端是安全的,应该要考虑到前端安全有被攻破的可能性。基于这个思想,系统做支付授权时,不应只根据前端信息做决定,而应根据前端和后端的信息做出综合决定。另外,服务器端应该实现一些远程管理的功能,保障一旦前端出现安全漏洞服务器能采取一定的措施去修复。同时,应充分利用移动终端和前端支付应用提供的信息,比如位置服务(LBS、指纹识别、交易频次、设备指纹等,建立模型进行综合风险监控。

因此,就软件卡支付应用作为单个部件而言,和基于SE的支付应用实现相比,其风险无疑大幅增加。但如果能合理结合多种安全加固措施和后台服务平台,从系统整体上来看,其安全性能够得到保障。此外,在实现软件卡支付的安全解决方案后,相应的检测与认证也将面临一个新的挑战,此时,检测和认证的对象不再只是系统内的某个部件,而应针对整个解决方案进行综合的评估。

三、典型解决方案示例

以下列出几个典型的软件卡解决方案,重点描述实现过程中需充分考虑的安全要点。

1.云端支付解决方案

Copyright © 2016-2025 www.dzhlxh.cn 金源码 版权所有 Power by

网站模板下载|网络推广|微博营销|seo优化|视频营销|网络营销|微信营销|网站建设|织梦模板|小程序模板