安全控件
出自 MBA智库百科(https://wiki.mbalib.com/)
目录 |
安全控件一般是指为了提升支付用户账户安全,防止账户密码等敏感信息被木马或病毒等恶意软件盗取的客户端程序。安全控件一般体积较小,功能单一,由浏览器下载安装并加载,从而提供服务。
在线上支付发展的初期,由于缺乏完整的信用体系做基础,线上支付业务的完成一般而言是模仿现金交易的行为。根据相关的法律法规规定,支付密码是银行卡支付的主要依据,通过支付账号和支付密码就可以进行支付指令的确认。
在这种情况下,在线支付网站上线之后,发生了很多用户密码被盗,从而导致账户资金损失的情况。很多木马病毒程序可以在感染了用户的电脑之后,盗取用户的支付账号和支付密码,从而模仿用户完成支付动作,盗取用户资金。
在此基础上,在线支付网站的安全开发者提出了使用安全控件保护用户账号密码的方案。也就是当用户在浏览器里进行支付动作的时,使用自定制的密码输入控件替换掉浏览器提供的标准密码输入控件,从而避免木马病毒对用户账号密码的盗取,保护用户资金安全。
从此之后,随着支付网站业务和技术的发展,有个别的厂商对于安全控件进行了更新和升级,在保护用户密码不被窃取的基础上增加了更多的功能,如密码加密、环境运行检测、收集信息等。
通过对业界安全控件的研究和分析,安全控件的主要功能有:
一是防止木马通过监控键盘记录获取支付敏感信息。安全控件的主要功能就是避免木马病毒程序在感染了用户的电脑之后,通过对窗口句柄的扫描,对浏览器密码输入框的特殊窗口属性进行获取,盗取用户的支付账号和支付密码。
二是对支付敏感信息的明文进行加密。安全控件还可以实现对客户端用户密码的加密保护,保证用户的敏感信息输入不会在客户端被恶意程序获取。
三是结合业务提供其他安全功能。现在的安全控件在提供键盘输入保护、密码加密等功能之外,还提供了一些和业务相结合的功能,如客户端信息的收集,用户行为的分析等。
传统的安全控件是以浏览器插件的形式提供服务的,根据浏览器内核的不同,一般分为两种,分别是以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的计划。