《金卡生活》杂志
中国银联 主管主办
理论研究 实务探讨
长按二维码关注我们
原创 / 朱浩然 杨阳 尹亚伟
作者供职于中国银联电子支付研究院、电子商务与电子支付国家工程实验室
编者按
在不借助传统安全控件的基础上,寻找确保用户账户资金安全的替代方案。为此提出了基于可信执行环境方案以及多因素身份认证方案,从根本上避免了恶意软件对用户键盘输入的盗取给账户安全带来的隐患。
一般而言,安全控件是指为了提升支付用户账户安全,防止账户密码等敏感信息被木马或病毒等恶意软件盗取的客户端程序。安全控件一般体积较小,功能单一,由浏览器下载安装并加载,从而提供服务。
安全控件的由来。在线上支付发展的初期,由于缺乏完整的信用体系做基础,线上支付业务的完成一般而言是模仿现金交易的行为。根据相关的法律法规规定,支付密码是银行卡支付的主要依据,通过支付账号和支付密码就可以进行支付指令的确认。
在这种情况下,在线支付网站上线之后,发生了很多用户密码被盗,从而导致账户资金损失的情况。很多木马病毒程序可以在感染了用户的电脑之后,盗取用户的支付账号和支付密码,从而模仿用户完成支付动作,盗取用户资金。
在此基础上,在线支付网站的安全开发者提出了使用安全控件保护用户账号密码的方案。也就是当用户在浏览器里进行支付动作的时,使用自定制的密码输入控件替换掉浏览器提供的标准密码输入控件,从而避免木马病毒对用户账号密码的盗取,保护用户资金安全。
从此之后,随着支付网站业务和技术的发展,有个别的厂商对于安全控件进行了更新和升级,在保护用户密码不被窃取的基础上增加了更多的功能,如密码加密、环境运行检测、收集信息等。
安全控件的功能。通过对业界安全控件的研究和分析,安全控件的主要功能有:
一是防止木马通过监控键盘记录获取支付敏感信息。安全控件的主要功能就是避免木马病毒程序在感染了用户的电脑之后,通过对窗口句柄的扫描,对浏览器密码输入框的特殊窗口属性进行获取,盗取用户的支付账号和支付密码。
二是对支付敏感信息的明文进行加密。安全控件还可以实现对客户端用户密码的加密保护,保证用户的敏感信息输入不会在客户端被恶意程序获取。
三是结合业务提供其他安全功能。现在的安全控件在提供键盘输入保护、密码加密等功能之外,还提供了一些和业务相结合的功能,如客户端信息的收集,用户行为的分析等。
传统安全控件模式
传统的安全控件是以浏览器插件的形式提供服务的,根据浏览器内核的不同,一般分为两种,分别是以IE浏览器为代表的Trident内核浏览器的ActiveX插件和以Chrome为代表的其他内核浏览器NPAPI插件。
ActiveX插件。根据微软权威的软件开发指南MSDN(Microsoft Developer Network)的定义,ActiveX插件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。
ActiveX插件技术是国际上通用的基于Windows平台的软件技术,它可以以浏览器插件的形式调用操作系统的本地API,从而完成普通Web应用程序没有权限使用的功能。例如,普通的Web应用程序无法调用操作系统键盘Hook,而通过用户安装的ActiveX,应用程序便拥有了调用Windows API的权限。所以在Microsoft旗下的IE浏览器中,一般的安全控件是通过ActiveX的形式来提供键盘保护功能。
然而,ActiveX插件在给Web应用程序带来方便的同时,也有着诸多缺点:首先,ActiveX可以访问大量操作系统底层API,给用户系统的安全性带来巨大隐患;其次,有些ActiveX在工作过程中会耗费大量的系统资源,造成浏览器甚至是系统的崩溃。
NPAPI插件。NPAPI即网景插件应用程序编程接口,它是Netscape Navigator、Mozilla Suite、Mozilla Sea Monkey和Mozilla Firefox等Gecko引擎浏览器与Apple Safari和Google Chrome等WebKit引擎浏览器所使用的类似ActiveX的插件接口。NPAPI插件架构有40多个API,与ActiveX类似,开发者可以通过NPAPI架构的API与用户操作系统进行交互。所以在除IE以外的主流浏览器中,支付网站的安全控件都是以NPAPI插件的形式来提供保护用户支付账号、密码安全功能的。
而NPAPI对操作系统而言并不只是个插件,如图1所示,事实上它是运行在操作系统之上,与浏览器平级运行的程序。它可以甚至可以进行一些超过浏览器权限之外的动作。NPAPI的存在给操作系统带来了很大的安全隐患。与此同时,除了不安全因素以外,NPAPI的插件质量也参差不齐,一旦有插件崩溃则同时导致浏览器的崩溃,对系统资源的浪费也很巨大。因此,新版的Chrome浏览器已经放弃对NPAPI控件的支持,而其他各大浏览器也先后宣布了放弃NPAPI的计划。
图1 NPAPI工作原理
安全控件使用现状
通过对PayPal的实际使用和研究分析,发现PayPal在用户从登陆到进行支付的完整过程中并没有提供安全控件来提供服务。同时,以花旗银行和美国银行为例进行了研究,同PayPal一样,都没有提示和要求用户进行任何安全控件的安装,也没有在浏览器端对用户的信息进行加密。此外,国外主要的支付相关网站都没有使用任何模式的安全控件。
相反,国内安全控件却得到很好的应用和发展。
一是银联在线支付。
安全控件插件版。目前,在支持ActiveX插件的IE浏览器上,银联在线仍然使用的是ActiveX插件的安全控件。当用户使用安全银联在线支付功能的时候,会被要求下载安装“UPEditorCtrl Class”的ActiveX插件。在其他浏览器上,银联在线支付使用的是NPAPI插件模式的安全控件。
安全控件非插件版。在不支持ActiveX、NPAPI插件的浏览器中,银联在线支付使用了系统服务程序的插件模式。在用户第一次登陆银联在线支付网站的时候,会要求用户下载并安装安全控件(见图2)。安装过之后,我们可以在操作系统的后台进程中发现一个名为“UPSecurityInput.exe”的进程。
图2 银联安全控件非插件版
该进程的工作原理概括如下:该控件运行在操作系统后台,页面会由Javascript脚本会以Ajax请求与该后台服务进行通信认证,激活该服务的保护功能,该服务将会在后台实行键盘记录保护和密码加密等功能。
二是工商银行和招商银行。
工商银行和招商银行网银仍使用传统模式的安全控件。在IE浏览器上,工商银行网银需要用户安装名为“AxSubmitControl Class”的安全控件,招商银行要求用户安装名为“China Merchants Bank Co. Ltd”的ActiveX控件。在Chrome(45版本以前),工商银行网银和招商银行网银都是使用的是传统的NPAPI插件来提供安全控件功能。
未解决新版浏览器不支持的问题。同工商银行相似,在Chrome浏览器(45及以后版本)登录招行网银的时,按要求安装控件仍无法完成正常业务。可见招商银行截至目前也未解决新版浏览器无法支持传统控件的问题。
三是建设银行。
登录过程。建行提供了名为“中国建设银行密码输入器”的软键盘的密码输入方式,此类方法可以避免键盘记录器等木马程序对于账号密码的盗取。如图3所示:
图3 建行软键盘安全控件
每次输入时唤出的软键盘上的键位排列情况都是随机不同的,从此避免了根据键位的固定而对于鼠标移动来进行输入分析的攻击。
支付过程。无论在什么浏览器上,登录建设银行网银都是不需要安装控件的,但是在进行转账确认等支付操作的时候,无论在IE浏览器还是在Chrome浏览器中,建设银行都会要求下载安装“网银盾驱动”。
四是支付宝。
现状。在支付宝的网站页面上,我们完成了从登陆到转账付款的全部动作,但是在整个流程中并没有任何关于安全控件的提示,也没有下载安装任何软件,就完成了交易的操作(见图4)。
图4 支付宝无安全控件要求
历史版本。最新版本的支付宝网站已经不需要用户进行安全控件的安装了。不过,在之前版本的支付宝是要求用户下载并安装安全控件的。系统中的“aliwssv.exe”就是旧版本的支付宝要求安装的安全控件进程。该进程除提供基础安全控件功能外,还会收集本机信息,定期向后台发送数据。
五是财付通。
在财付通的登录界面,我们同样没有发现任何安全控件安装的要求和提示。财付通提供以QQ号为基础的三种登录方式,分别是:关联登录、扫码登录和账号密码登录。
经过对国内主要支付相关网站的研究,得出主要结论:
一是在支付、转账等资金相关动作上,国内金融网站都需要安全控件的支持。国内金融网站采取的主要策略是使用传统控件的模式。而目前银联的“非插件版”安全控件解决了传统模式不被支持的问题。
二是主要第三方支付网站不需要安全控件的支持。新版的支付宝、财付通等主要第三方支付网站对安全控件不做任何强制要求。
三是不同网站提供个性化的安全方案。如银联采用非插件版解决新浏览器的支持问题;支付宝在用户在电脑上的第一次登陆时要求通过手机客户端扫码进行认证;财付通除了提供常规登录方式以外,还提供QQ客户端关联登录和扫码登录的方式。
安全控件新模式研究和分析
在上述调研基础上,结合业界先进经验,我们提出如下几种不同的新模式方案。
可选的系统服务模式。可选的Windows系统服务模式的安全控件的工作原理是,在用户登录网站的时候,用户可以直接进行登录支付动作,也可以按照提示选择下载安装安全控件程序。
若用户不安装安全控件程序,则页面的脚本将对用户的敏感信息输入进行非对称加密,并将加密后的信息发送到后台服务器进行验证。
若用户安装安全控件程序,则该安全控件会在用户的操作系统开启后台服务,并随用户操作系统的启动而自行启动。安全控件系统服务对用户流量进行监控,当用户登录支付网站时,对用户在浏览器中输入的账号、密码等敏感信息进行监控和保护,防止木马或病毒程序对账户键盘输入的截取。
可选的系统服务模式在一定程度上提升用户体验和支付便捷性,但是当用户选择不安装时,无法提供键盘窃听保护。
流量代理的系统服务模式。目前中国银联的安全控件采用了系统服务模式,该模式通过HTTP请求与页面脚本的工作模式在实际使用中会面临流量窃听以及端口占用的问题,为解决上述问题,我们提出一种基于流量代理的系统服务模式。
在该模式下,安全控件系统进程的形式运行在操作系统后台,该进程对用户开启的进程进行轮询,当发现用户打开浏览器并登录支付网站时,对用户流量进行代理;当发现用户输入用户名、卡号、密码等敏感信息时,对用户的输入进行保护和加密,并在用户提交动作时,将加密后的敏感信息的加载到用户流量中,从而完成登录或支付。
具体流程见图5流量代理系统服务模式工作流程。
图5 流量代理系统服务模式工作流程
与中国银联现行的安全控件相比,基于流量代理的系统服务模式安全控件的优点有:安全性高,解决了流量在本地明文传输带来的安全隐患;可用性高,避免了用户端口占用或网络设备对可用性的影响。
软键盘模式。软键盘模式是在不要求用户安装任何程序的条件下避免键盘记录器对于账户账号密码获取的一种方式。它使用特定的算法加随机数的组合形式对键盘进行重新布局,将用户的光标移动和点击输入转换为信息的输入。
软键盘安全控件的优点有:放弃键盘输入,避免记录类攻击;不需要用户专门安装,易维护。软键盘安全控件的也有如下缺点:鼠标点击的输入方式影响用户输入体验;有被录屏攻击的风险。
安全支付新模式。提高用户体验、增强支付便捷、逐步淘汰传统安全控件是技术发展趋势。我们需要在不借助传统安全控件的基础上,寻找确保用户账户资金安全的替代方案。
一是基于TEE的敏感信息保护方案。可信执行环境TEE(Trusted Execution Environment)是支付设备主处理器上的一个安全区域,其可以保证加载到该环境内部的代码和数据的安全性、机密性以及完整性。TEE提供一个隔离的执行环境,提供的安全特征包含:隔离执行、可信应用的完整性、可信数据的机密性、安全存储等。
因特尔(Intel)发布了Identity Protection Technology with PTD,即带有受保护交易显示 (PTD) 的英特尔身份保护技术(见图6)。该技术可以使用单独的安全嵌入式处理器向用户显示信息并接收来自用户的输入。由于用户的关键输入输出都是在独立的安全可信环境中运行,所以该技术有助于减少恶意软件的攻击,例如抓屏器、击键记录器、僵尸程序、中间人攻击 (MitM) 或浏览器中间人攻击 (MitB)。
图6 Intel IPT技术
该方案在目前的实现也面临着双重的问题,一方面,具有IPT with PTD功能的Intel CPU并不能涵盖绝大多数的PC电脑;另一方面,IPT with PTD技术在金融支付网站上的应用需要接口中间件的支持。所以目前看来,该项技术的实现还需要时间和完善。
二是多因素的可信身份认证方案。主要的第三方支付网站之所以能够放弃安全控件,主要是因为他们的支付风险控制可以通过其他方式来完成,从而在放弃使用安全控件提升用户体验的同时,同样确保了用户的资金安全。
在此基础上,我们提出一种新的结合云端风险一体化的多因素的可信身份认证方案(见图7)。该方案中,系统需要在用户登陆支付网站和确认支付时分别对用户的运行环境风险和支付风险进行判别,并根据风险值确定是否进行多因素的可信身份认证。
图7 多因素的可信身份认证流程
风险判定主要是指由服务器结合业务流程,对用户登录设备、支付账户、目标商户等进行多方面认证。如判断用户登录设备的曾经使用情况、判断用户是否在陌生的城市登录、用户支付或转账的目标账户是否存在风险、用户支付或转账的金额是否超出日常金额。
在此,我们归结几种利用非键盘输入安全因素完成认证的方案。
一是生物特征识别。生物识别技术是指利用人体的生物学特征进行身份认证的一种技术。具体而言,生物特征识别技术就是通过计算机与光学、声学、生物传感器和生物统计学原理等高科技手段密切结合,利用人体固有的生理特性,(如指纹、脸像、虹膜等)和行为特征(如笔迹、声音、步态等)来进行个人身份的鉴定。
二是设备指纹识别。设备指纹是指通过在服务器在网站或者移动端采集终端用户环境的非敏感设备特征细信息,通过服务端的设备特征匹配算法而建立一套全球设备标识库,相当于为每一位互联网用户的访问设备分配了唯一的设备标识。这样,通过服务器云端的统一风控系统,可以根据该设备指纹识别用户是否是在安全设备上进行支付动作。
三是用户行为模式。用户行为模式是指服务器通过用户的历史动作,归纳分析出用户常见的行为模式,如键盘输入频率、鼠标移动速度、页面停留/跳转时间、访问流程等,给合法用户建立行为基线模型。因此,当用户的账户被人盗取使用时,通过该模型可以分析出用户的真实性。从而降低用户资金被攻击者盗取。
四是网络身份证。网络身份证(VIEID),全称虚拟身份电子标识是互联网络信息世界中Virtual 标识用户身份的工具,是在网络空间用于唯一标识一个用户身份的电子信息,用于在网络中识别各方的身份及表明我们的身份或某种资格。
经过对安全控件的由来、功能、传统模式的分析,以及对电子支付行业内的使用现状的调研,结合对安全控件现有模式的研究,报告进行了安全控件新模式的研究及可行性分析。报告提出了可选的系统服务模式、流量代理模式等现有安全控件模式的改进方案,这些方案解决了当前安全控件不被浏览器兼容、安全性和可用性的问题,在当前的环境下具有很高的可行性。
此外,经过研究表明提高用户体验、增强支付便捷、逐步淘汰传统安全控件是技术发展趋势。长远来看,我们需要在不借助传统安全控件的基础上,寻找确保用户账户资金安全的替代方案。为此,报告从长期实现的角度提出了基于可信执行环境方案以及多因素身份认证方案,这些方案借助了最新的因特尔IPT、生物特征识别、设备指纹识别、用户行为模式分析等技术,从根本上避免了恶意软件对用户键盘输入的盗取给账户安全带来的隐患。目前为止,上述技术的发展导致方案的落地需要更多的前后端系统的支持。但是我们相信,在软硬件技术高速发展的现代,这些方案的实现也指日可待。
实习编辑:张超逸
,