TouchEn nxKey键盘加密应用程序出现的许多漏洞很容易使其被黑化

TouchEn nxKey是韩国安全软件公司Raonsecure开发的端到端加密应用程序,用于保证键盘使用时的全方位安全,目前这个应用程序主要用于韩国的金融业务,在韩国几乎所有电脑上都安装了这款软件 。如果你想在韩国操作网上银行业务,就必须使用它 。不过韩国人对它的安全性并不认可,TouchEn nxKey确实在设计上包含了关键日志记录功能,但它未能充分限制外界对它的访问 。此外,研究人员发现其中存在的七个安全漏洞,可以让攻击者实现从简单的拒绝服务攻击到远程代码执行攻击 。
2005年韩国一个黑客组织通过远程访问木马从人们的银行账户中窃取了5000万韩元(当时约合5万美元) 。通过这种方式,他们不仅获得了用户的登录凭证,还获得了他们安全卡上的信息 。这种安全卡类似于索引TAN,这是一种第二因素认证方法,2012年在欧盟被禁止,原因是很容易被银行木马攻破 。
那用户的计算机是如何被这个恶意应用程序攻击的?这听起来像是在用浏览器访问恶意网站时进行的驱动程序下载,很可能是浏览器漏洞被利用了 。但是也有可能是用户被诱导安装了应用程序 。如今,上述攻击场景已经不那么常见了,一是网络浏览器变得更加安全,二是银行已经完全采用了双因素验证 。至少在很多国家,你通常需要另一台设备来确认交易 。并且在确认时可以看到交易细节,因此不会贸然确认向其他人转账的信息 。
韩国则在2006/2007年强制银行交易使用TouchEn Key,当你在网页中输入数据时,该应用程序声称可以保护你的敏感数据 。最终,TouchEn nxKey被扩展到支持非微软浏览器的使用场景中 。
TouchEn nxKey的实际用处
TouchEn nxKey是通过加密键盘输入来预防键盘记录 。
依赖TouchEn nxKey的网站运行nxKey SDK,该SDK由两部分组成:一组运行在网站上的JAVAScript代码和一些服务器端代码 。下面是它的工作原理:
1.在使用nxKey SDK的网站上输入密码字段;
2.nxKey SDK的JavaScript代码会检测到它并通知你的本地nxKey应用程序;
3.nxKey应用程序在windows内核中激活它的设备驱动程序;
4.设备驱动程序现在拦截所有键盘输入,键盘输入不是由系统处理,而是被发送到nxKey应用程序 。
5.nxKey应用程序加密键盘输入并将其发送给nxKey SDK的JavaScript代码;
6.JavaScript代码将加密的数据放入隐藏的表单字段中 。实际的密码字段只接收虚拟文本 。
7.输入完登录凭证后,点击“登录”;
8.加密的键盘输入与其他数据一起发送到服务器 。
9.nxKey SDK的服务器端部分对其进行解密,并从中检索纯文本密码 。常规登录程序接管 。
一个试图记录输入到这个网站的数据的键盘记录器只能看到加密的数据 。它可以看到网站使用的公钥,但没有相应的私钥 。所以没有办法解密,密码是安全的 。
网站如何与TouchEn nxKey通信?
网站如何知道计算机上安装了特定的应用程序呢?它是如何与之沟通的?
最初,TouchEn nxKey需要安装其浏览器扩展 。该浏览器扩展使用本机消息将请求从网站转发到应用程序,并将响应发送回网页 。
然而,使用浏览器扩展作为中间体已不再是最先进的技术 。目前的最佳方法是网站使用WebSockets API直接与应用程序通信,不再需要浏览器扩展 。

TouchEn nxKey键盘加密应用程序出现的许多漏洞很容易使其被黑化

文章插图
虽然花旗银行韩国分行等一些网站专门使用新的WebSocket方法,但釜山银行等其他网站仍然运行完全依赖浏览器扩展的旧代码 。
这不仅仅意味着用户仍然需要安装浏览器扩展,它还解释了软件安装后仍无法识别的频繁投诉 。这些用户安装的是不支持WebSocket通信的旧版本软件 。没有自动更新,目前韩国一些银行仍然提供这些旧版本的下载 。
滥用TouchEn扩展攻击银行网站
TouchEn浏览器扩展真的很小,它的功能是最少的 。通过它的代码,我们看到了这样的评论:
TouchEn nxKey键盘加密应用程序出现的许多漏洞很容易使其被黑化

文章插图
目前,危险的eval()调用已经从浏览器扩展中被清除了 。
研究人员在回调机制中发现了这样一个问题,网站可以向应用程序发送一个setcallback请求来注册一些事件 。当此类事件发生时,应用程序将指示扩展调用页面上已注册的回调函数 。从本质上讲,页面上的任何全局函数都可以通过名称调用 。


推荐阅读