用于执行安全网上银行交易的系统和方法与流程

文档序号:14187028阅读:185来源:国知局

本申请总体涉及网络安全的领域,以及更具体地涉及用于执行安全网上银行交易的系统和方法。



背景技术:

计算机技术在过去十年中的快速发展、以及各种计算设备(个人计算机、笔记本等)且尤其移动设备(平板电脑、智能手机等)的广泛使用,已成为对于这些设备在多种多样的活动领域中的使用以及对于巨大量的任务(从因特网冲浪到银行转账和电子文件传输)的强力刺激。与计算设备和在这些设备上运行的软件的数量的增长并行,恶意程序的数量也以快节奏增长。

目前,存在巨大量种类的恶意程序。一些恶意程序从用户的设备窃取个人机密数据(诸如登录名和密码、银行资料、电子文件),其它恶意程序从用户设备形成所谓的僵尸网络用于网络攻击,诸如拒绝服务(ddos),或用于通过针对其它计算机或计算机网络进行的暴力破解方法窃取密码,另外的其它恶意程序阻止访问用户数据(电子文件传输、照片等),以及第四种恶意程序借助骚扰性广告、付费订阅、向收费号码发送文本等向用户提议付费内容。

对于用户最危险种类的恶意程序之一为所谓的“银行家”应用程序,该应用程序从用户设备窃取其银行资料、用于访问银行账户的登录名和密码等。此外,这类应用程序修改在用户设备与银行服务器之间发送的交易。为了该目的,修改或代替在用户设备上安装的合法银行应用程序(例如,通过假的银行网站向用户提供修改的银行应用程序,该修改的银行应用程序具有嵌入式恶意功能)。这类恶意程序能够对用户造成重大经济损失。

因此,需要提高网上银行交易的安全性且保护银行免受未经授权的远程访问的技术。



技术实现要素:

公开了用于执行安全网上银行交易的系统和方法。在一个示例性方面中,该方法包括:收集与由用户设备请求的网上银行操作的至少一个交易相关的数据;至少基于收集的所述数据创建多个验证脚本,其中,每个验证脚本包括需要收集与所述银行操作的交易相关联的一种或多种类型的识别数据的至少一个规则,且其中,不同验证脚本包括用于收集与所述银行操作的交易相关联的不同类型的识别数据的不同规则;执行所述多个验证脚本以收集需要的所述识别数据;至少基于通过所述多个验证脚本收集的所述识别数据确定执行所述银行操作的安全级别;以及基于确定的所述安全级别确定是否执行请求的所述银行操作。

在一个示例性方面中,与所述网上银行操作的至少一个交易相关的所述数据包括如下项中的至少一者:用于访问银行账户的授权数据;关于请求的所述银行操作的类型的信息;在请求的所述银行操作中涉及的金钱数额;确认执行所述银行操作的数据;以及关于请求的所述银行操作或关于所述银行账户的修改的补充信息。

在一个示例性方面中,所述验证脚本包括如下项中的至少一者:用于收集所述识别数据的一个或多个规则;用于收集所述识别数据的一个或多个方法;以及用于收集所述识别数据的一个或多个条件。

在一个示例性方面中,所述识别数据包括如下项中的至少一者:所述用户设备的ram的转储;在所述用户设备上运行的应用程序的网络活动的记录;来自在所述用户设备上运行的应用程序的函数调用的记录;在所述用户设备上运行的安全策略;在所述用户设备上运行的应用程序之间传输的数据和在传输所述数据时所采用的方法;以及在所述用户设备上运行的应用程序的特性。

在一个示例性方面中,执行所述验证脚本以收集所述识别数据包括如下项中的至少一者:加密收集的所述识别数据;存档收集的所述识别数据;计算收集的所述识别数据的卷积;或计算收集的所述识别数据的校验和。

在一个示例性方面中,确定执行所述网上银行操作的安全级别还包括:将收集的所述识别数据分类为一个或多个数据类别;确定每个数据类别的安全性的第一数值系数;基于给定类别中的收集数据的量确定每个类别中的数据安全性的第二数值系数;以及将执行所述银行操作的所述安全级别计算成多个第一系数和第二系数的数学函数。

在一个示例性方面中,收集的识别数据的所述类别包括如下项中的一者或多者:包含恶意软件的要素的数据的类别;包含恶意软件的工作结果的数据的类别;包含在所述用户设备上运行的且所述恶意软件的工作所需的软件的要素的数据的类别;包含合法软件的要素的数据的类别;以及包含所述合法软件的工作结果的数据的类别。

在一个示例性方面中,确定是否执行所述银行操作基于检测到:所述安全级别不低于阈值;或在执行多个银行操作的情况下,执行所述多个银行操作的安全级别的集中趋势的测量值不低于所述阈值。

在一个示例性方面中,一种用于执行安全网上银行交易的系统包括用户设备的硬件处理器,所述硬件处理器配置成:收集与由用户设备请求的网上银行操作的至少一个交易相关的数据;至少基于收集的所述数据创建多个验证脚本,其中,每个验证脚本包括需要收集与所述银行操作的交易相关联的一种或多种类型的识别数据的至少一个规则,且其中,不同验证脚本包括用于收集与所述银行操作的交易相关联的不同类型的识别数据的不同规则;执行所述多个验证脚本以收集需要的所述识别数据;至少基于通过所述多个验证脚本收集的所述识别数据确定执行所述银行操作的安全级别;以及基于确定的所述安全级别确定是否执行请求的所述银行操作。

在一个示例性方面中,一种非易失性计算机可读介质,所述非易失性计算机可读介质上存储用于执行安全网上银行交易的计算机可执行的指令,所述非易失性计算机可读介质包括用于如下操作的指令:收集与由用户设备请求的网上银行操作的至少一个交易相关的数据;至少基于收集的所述数据创建多个验证脚本,其中,每个验证脚本包括需要收集与所述银行操作的交易相关联的一种或多种类型的识别数据的至少一个规则,且其中,不同验证脚本包括用于收集与所述银行操作的交易相关联的不同类型的识别数据的不同规则;执行所述多个验证脚本以收集需要的所述识别数据;至少基于通过所述多个验证脚本收集的所述识别数据确定执行所述银行操作的安全级别;以及基于确定的所述安全级别确定是否执行请求的所述银行操作。

以上对本发明的示例性方面的简要概述用于提供对本发明的基本理解。该概述不是对所有预期方面的广泛综述,并且既不旨在标识所有方面的关键的或主要的要素,也不旨在勾画本发明的任何方面或所有方面的范围。为了实现前述内容,本发明的一个或多个方面包括在权利要求中所描述的且特别指出的特征。

附图说明

并入本说明书中并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,以及连同详细的描述一起用来阐述这些示例性方面的原理和实现方式。

图1示出根据本发明的方面的用于执行安全网上银行交易的示例性系统的图。

图2示出根据本发明的方面的用于执行安全网上银行交易的示例性方法的流程图。

图3示出根据本发明的方面的用于执行安全网上银行交易的示例性方法的步骤序列的另一图。

图4示出其上可实施用于执行安全网上银行交易的系统和方法的通用计算机系统的示例。

具体实施方式

本文中在用于执行安全网上银行交易的系统、方法和计算机程序产品的背景下描述本发明的示例性方面。本领域的普通技术人员将认识到,以下描述仅仅是说明性的,而不旨在以任何方式进行限制。其它方面将很容易将其自身暗示给了解本发明的优点的本领域的技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或类似的项目。

在描述本发明的示例性方面时将使用如下术语:

银行操作可以为利用与用户的银行账户相关联的数据的操作。银行操作可以涉及用户的计算设备与因特网银行系统之间的一个或多个电子交易。

银行交易可以为就使用所提供数据的银行而言执行的利用银行账户的操作。能够区分在所有兴趣方之间实时执行的在线交易与离线交易。作为银行操作的最后部分,可以通过因特网银行系统或其它通信系统由电子订单、而且还借助任何给出的支付票据发起交易。

图1示出根据本发明的方面的用于执行安全网上银行交易的示例性系统。该系统可以包括但不限于安全服务器110、脚本创建模块111、分析模块112、客户端120、用于利用银行账户工作的模块121、用于安全银行操作的模块122、银行服务器130、用于登记银行交易的模块131、以及用于执行银行交易的模块132。

在计算设备(在下文中也称为“用户设备”)上工作的客户端120可以配置成从该计算设备收集执行银行操作所需的数据。在一个示例性方面中,客户端120包括用于利用银行账户工作的模块121和用于安全银行操作的模块122。客户端120可以为但不限于:运行在用户100的计算设备上的一应用程序或彼此交互且运行在用户100的计算设备上的一组应用程序;在运行在用户100的计算设备上的浏览器上发起的网站;或从用户100的计算设备实施的与银行服务器130的连接的其它可能变型。在一个示例性方面中,客户端可以包括因特网银行应用程序、密码管理器应用程序和因特网银行应用程序的捆绑(在该情况下,用户100可以不将授权数据发送到网上银行应用程序,而是该数据可以直接由网上银行应用程序从密码管理器应用程序获得)等等。

在一个示例性方面中,用于利用银行账户工作的模块121可以配置成:从用户设备获得描述需要执行的银行操作的数据(在后文中,操作信息);以及将该操作信息发送到用于登记交易的模块131和脚本创建模块111。

操作信息的收集可以至少如下来进行:使用单独安装的具有管理权限的应用程序(可以使用进程间通信部件在提及的应用程序和用于利用银行账户工作的模块121之间发送数据);直接通过用于利用银行账户工作的模块121本身(例如,如果该部件的访问权已被提高到访问操作信息所需的级别);以及使用如下项中的至少一者:用户100输入数据所利用的图形界面的可用api函数;操作系统的可用api函数(例如,在函数“::getwindowstext”的帮助下的windows系列的操作系统中);拦截系统事件;或直接访问利用由用户100输入的数据工作的进程的存储器。

操作信息可以包含但不限于:用于访问银行账户、个人账户等的授权数据(例如,登录名和密码、用户100的生物特征数据,诸如指纹、虹膜照片、声纹(voicepattern)、笔迹样本等);银行资料;请求的银行操作的类型(例如,获得账户结余、将一笔钱从一个账户转到另一个账户、账户存款、资金回笼、支付商品和服务等);请求的银行操作中涉及的金钱数额;确认银行操作完成的数据(例如,使用3ds-安全技术的银行操作的确认码);关于请求的银行操作(例如,用于所执行操作的备注)或关于用户100的账户的修改(例如,用户100工作所利用的账号)的补充信息。

在另一个示例性方面中,用于利用银行账户工作的模块121可以向用户100提供图形界面,用户100可以利用该图形界面输入描述银行操作的所有必需数据。

在又一个示例性方面中,用于利用银行账户工作的模块121可以基于先前收集的信息(诸如信用卡号),不从真实用户100而从计算机网络(诸如因特网或银行服务器的网络)收集一些描述银行操作的数据(诸如银行资料)。例如,用户100借助由用于利用银行账户工作的模块121提供的界面可以指示“环保社团的支票账户”作为他希望将一定数额的金钱转入的账户,同时环保社团的支票账户可以不存在于执行银行交易的系统中且可以不被用于利用银行账户工作的模块知道。在用于利用银行账户工作的模块121已收集文本数据“环保社团的支票账户”之后,该模块121可以在因特网上执行对环保社团的银行资料的搜索。如果搜索成功,则找到的银行资料可以被用作银行操作的特性之一。

在一个示例性方面中,用于安全银行操作的模块122可以配置成:从用户设备收集由于执行从脚本创建模块111获得的验证脚本而获得的识别数据,其中,该验证脚本可以包含至少一个数据收集规则,其中,该数据收集规则可以确定:识别数据的特性,用于安全银行操作的模块122利用这些特性在用户100的计算设备的其它数据之中明确地确定识别数据;采集识别数据的方法,用于安全银行操作的模块122基于这些方法选择用户100的计算设备的将用于收集识别数据的资源;收集识别数据的条件,在满足这些条件时,用于安全银行操作的模块122将执行识别数据的收集。然后模块122可以将收集的识别数据发送到分析模块112。

在一个示例性方面中,每个验证脚本可以包括指定与银行操作的交易相关联的不同类型的识别数据的收集的一个或多个规则。因此,不同验证脚本可以包括用于收集不同类型的识别数据的不同数据收集规则。依赖于不同类型的识别数据的多个验证脚本的使用提高了确定用户100实际上是否被授权执行期望的银行交易的准确度。

在各种示例性方面中,不同类型的识别数据可以包括但不限于:

●用户设备的ram的转储;

●在用户设备上运行的应用程序的网络活动的记录(包含多个记载,该记载包括唯一应用程序标识符、计算机网络中的数据交换的开始和结束的时间、与之交换数据的服务器的网络地址、发送或接收的数据的量等等);

●来自在用户设备上运行的应用程序的函数调用的记录(包含多个记载,该记载包括唯一应用程序标识符、调用函数的时间、函数的名称、发送到函数的数据、所调用函数的工作结果等等);

●在用户100的计算设备上运行的安全策略;

●在用户设备上运行的应用程序之间传输的数据、以及传输所述数据的方法,诸如参与数据交换的应用程序的唯一标识符、数据交换的开始和结束时间、传输的数据的量和类型、进程间通信(interprocesscommunication,ipc)的类型等等;

●在用户设备上运行的应用程序的特性(被工作的应用程序占用的ram的量、该应用程序的操作时间、应用程序的唯一标识符,诸如应用程序的校验和md5或名称,以该名称将应用程序登记在用户设备的操作系统中,等等)。

识别数据的特性可以包括但不限于:识别数据的数据类型(例如,数字、字符串、字节阵列、图像、媒体数据等等)、识别数据的大小、以及识别数据的位置(例如,ram中的指针、硬盘驱动上的路径等等)。

收集识别数据的方法可以包括但不限于:使用用户100输入数据所利用的图形界面的api函数调用;使用操作系统的api函数调用;拦截系统事件;直接访问利用由用户100输入的数据工作的进程的存储器。

用户100的计算设备的资源可以包括但不限于:用户100输入数据所利用的图形界面的api函数;操作系统的api函数;系统事件;用于获得对信息媒介(存储器、外部信息媒介、硬盘驱动等等)的访问的数据。

在一个示例性方面中,用于安全的模块122可以利用收集的数据执行如下操作:加密收集的识别数据;存档收集的识别数据;计算收集的识别数据的卷积;计算收集的识别数据的校验和(诸如crc32或md5)。

用于安全的模块122可以将执行前述操作的结果发送到分析模块112。在一个示例性方面中,为了节省网络流量且因此减少工作时间,代替将收集的识别信息发送到分析模块112,用于安全的模块122将发送从收集的识别数据所计算的用计算机确定的校验和(诸如md5)。

在一个示例性方面中,安全服务器110可以配置成分析来自计算设备的银行操作的安全级别,其中,该安全服务器可以包含脚本创建模块111和分析模块112。

在另一个示例性方面中,安全服务器110和银行服务器130可以包括单一服务器,该单一服务器运行在银行方且包含脚本创建模块111、分析模块112、用于登记交易的模块131、以及用于执行交易的模块132。

由于减少了计算资源和网络资源(诸如安全服务器110和银行服务器130之间的网络流量等)的消耗,这类架构可以确保执行银行交易的高速。在一个示例性方面中,安全服务器110和银行服务器130可以包括两个单独的服务器,这两个单独的服务器位于世界的不同区域、由不同组的人来维护和开发。这类架构能够通过如下方式提高执行银行交易的安全性:在执行银行交易时使恶意软件更难以侵入上文提及的服务器和更难以随后损害那些服务器的操作。

在一个示例性方面中,脚本创建模块111、分析模块112、用于登记交易的模块131、以及用于执行交易的模块132对于客户端120来说是不可访问的,但是仅仅客户端120可与其执行数据交换的银行服务器130是可访问的。在该情况下,银行服务器130可以包括分布式系统,在该分布式系统中,提及的模块在物理上是分离的(例如,这些模块存在于世界的不同地区中的不同服务器上)。当需要寻址安全服务器110的模块之一时,客户端120也将寻址银行服务器130。

在另一个示例性方面中,当安全服务器110和银行服务器130对于客户端120来说在逻辑上分离且不同时,客户端可以具有从不同安全服务器之中选择的能力(例如,用户100自身可以选择安全服务的哪个供应商包含一起工作的可用安全服务器之一,并指定该安全服务器作为用户当前的安全服务器110)。

执行银行操作的安全级别可以为表征对前文提及的操作信息的未授权访问发生的概率的数值。在一个示例性方面中,执行银行操作的安全级别可以为从0到1的数值,其中,0可以指示保证发生对从用于安全银行操作的模块122发送到用于执行交易的模块132的前文提及的操作信息的未授权访问,而1是指对前文提及的操作信息的未授权访问被保证不存在。在另一个方面中,执行银行操作的安全级别可以为采取有限的一组值的离散量(例如,0表示执行银行操作是危险的,1表示执行银行操作不被推荐,2表示执行银行操作是安全的)等等。

在另一个示例性方面中,脚本创建模块111可以配置成基于从用于利用银行账户工作的模块121获得的操作信息创建验证脚本,其中,该验证脚本可以配置成收集识别数据且包含至少一个数据收集规则,该至少一个数据收集规则可以确定:识别数据的特性,用于安全银行操作的模块122利用这些特性从用户100的计算设备的其它数据之中明确地确定识别数据;采集识别数据的方法,用于安全银行操作的模块122可以基于这些方法选择用户100的计算设备的将用于采集识别数据的资源;采集识别数据的条件,在满足这些条件时,用于安全银行操作的模块122执行识别数据的收集,上述特性、采集识别数据的条件和方法可以被选择使得执行银行操作的安全级别可以基于对收集的数据的分析来计算。脚本创建模块111将创建的验证脚本发送到用于安全银行操作的模块122。

在一个示例性方面中,验证脚本可以包含:先前创建的数据收集规则的集合;应用收集规则的方式(例如,通过用于安全银行操作的模块122执行收集规则的次序);由于处理收集数据而获得补充数据的方式,诸如:计算获得的数据的校验和;在由于一个数据收集规则的工作而获得的数据之间搜索由于另一个数据收集规则的工作而获得的数据;搜索获得的数据之间的关系以及计算描述所找到的关系的数值系数。

在一个示例性方面中,可以使用现有的多种脚本语言(诸如lua、applescript等)中的一种脚本语言来创建验证脚本。该方法的益处可以包括验证创建的执行速度、操作的支持、和操作的透明性。

在另一个示例性方面中,可以使用高级编程语言(诸如java、c++等)来创建验证脚本。该方法的益处可以包括验证脚本的工作的可靠性、和利用恶意手段对其分析的困难或甚至不可能。

在另一个示例性方面中,组成验证脚本的数据收集规则可以选自如下的一组预定规则:

1)来自提及的该组数据收集规则的每个数据收集规则匹配数值系数,该数值系数表征对用户100的计算设备执行提及的数据收集规则将形成这样的获得的数据的概率:该获得的数据包含关于对操作信息的未授权访问发生的可能性的信息;

2)用于每个数据收集规则的数值系数可以取决于所述数据收集规则意图产生的操作信息的类型、量等等;

3)可以提前基于先前从其它计算设备采集的数据的统计分析计算数值系数;

4)从所述组的数据收集规则,可以随机地选择数据收集规则,直到检测到对操作信息的未授权访问的累积概率超过预定阈值时。

在另一个示例性方面中,可以不从预定的一组数据收集规则选择数据收集规则,而是每次都利用至少如下项重新创建数据收集规则:人工神经网络,其用于分析先前创建的数据收集规则并基于此且基于获得的识别数据创建新的数据收集规则;统计分类算法;或统计预测算法。

分析模块112可以配置成:基于从用于安全银行操作的模块122获得的识别数据计算执行前文提及的银行操作的安全级别;以及在所计算的执行所述银行操作的安全级别满足预定阈值的情况下,从用于执行交易的模块132请求执行银行操作。

满足预定阈值的条件的满足可以至少包括如下项:所计算的执行银行操作的安全级别不低于预定阈值;以及在执行多个银行操作的情况下,所计算的执行这些银行操作的安全级别的集中趋势的测量值不低于预定阈值。

在一个示例性方面中,执行银行操作的安全级别可以采用如下方式来计算:

影响执行银行操作的安全性的条件可以包含:恶意软件在用户100的计算设备上运行以及修改发送到银行服务器130的操作信息。

1)获得的识别数据可以被分类为至少如下类别:

●包含恶意软件的要素的数据;

●包含恶意软件的工作结果的数据;

●包含在计算设备上运行的且恶意软件的工作所需的软件的要素(诸如软件漏洞)的数据;

●包含合法软件的要素的数据;

●包含合法软件的工作结果的数据;

2)每个类别匹配该类别的安全性数值系数,该系数表征分类在提及类别中的数据如何影响执行银行操作的安全性且采用从0(该数据为恶意软件的要素)到1(该数据为可信软件的要素)的值;

3)对于每个类别,根据分类在给定类别中的识别数据的量,可以计算数据安全性系数,其中,该数据安全性系数可以采用从0(在该类别中根本不存在识别数据的情况下)到1(在从用于安全银行操作的模块122获得的所有识别数据已被分类在给定类别中的情况下)的值;

4)执行银行操作的安全级别根据如下公式来计算:

l=∑ci×ni(pi)

其中:

l–执行银行操作的安全级别,

ci–类别i的安全性系数,

ni(pi)–取决于类别i中的数据量的数据安全性系数。

银行服务器130可以配置成基于由客户端120发送的数据执行银行操作,同时银行服务器130包含用于登记交易的模块131和用于执行交易的模块132。

在一个示例性方面中,用于登记交易的模块131可以配置成:基于从用于利用银行账户工作的模块122获得的操作信息,创建银行操作的银行交易的操作信息;以及将创建的交易发送到用于执行交易的模块132。在先前建立的时间段期满时或在从分析模块112接收命令时,可以将创建的银行交易发送到用于执行交易的模块132。

在一个示例性方面中,在创建银行交易之后,将该银行交易保存在位于银行服务器130中的数据库内。如果在先前建立的时间段期满时(例如,通过银行服务器130的管理员基于对先前执行的银行操作的安全性的统计分析),没有来自分析模块112的执行提及的银行交易的命令到达,则将该银行交易从数据库移除且因此甚至在来自分析模块112的提及命令到达之后也无法执行该银行交易。

在另一个示例性方面中,提及的设定的时间段可以取决于从用于利用银行账户工作的模块121获得的操作信息-对于更为关键的银行操作(涉及货币资金的转移),该设定的时间段较短,对于不太关键的银行操作(涉及关于银行账户的数据的修改),该设定的时间段较长。

用于执行交易的模块132可以配置成基于分析模块112的请求执行先前由用于登记交易的模块131创建的银行交易。

可以将执行银行交易的结果发送到客户端120以通知用户100执行提及的银行操作的结果。

在一个示例性方面中,用户100可以通过用于利用银行账户工作的模块121删除或修改提及的银行操作以及因此删除或修改银行交易。例如,如果用户100试图一个接一个执行银行操作:将一笔钱从账户#1转到账户#2、删除先前的银行操作、或获得账户#1的状态,则在已经登记但还未执行银行操作#1的情况下,在银行服务器130上用银行操作#3代替银行操作#1。因此,可以在银行服务器130上减少工作负荷,以及还可以提高执行的银行操作的安全性。

让我们考虑在进行$100从账户#1(银行卡)到账户#2(支票账户)的银行转账的示例上执行银行交易的系统,该银行转账由用户100利用智能手机上运行的网上银行计算应用程序bankingapp来进行。在该情况下,提及的计算应用程序bankingapp包含恶意功能,使得可以将与银行账户和银行操作相关的数据发送到黑客。使所描述的情形是可能的,这是因为用户100安装了不是来自官方银行网站、而是来自传播修改的网上银行应用程序的不可信网站的bankingapp。

用户100可以启动智能手机上运行的网上银行计算应用程序bankingapp120,以执行上述银行操作。出于该目的,用户100可以借助所提供的界面将执行提及的银行操作所需的数据发送到应用程序bankingapp120:

●用于访问个人账户100的登录名和密码;

●银行资料(银行名称、将发生数据交换的银行服务的网络地址等等);

●需要从中取出$100的账户#1的号码和类型:银行卡0001-0002-0003-0004;

●需要向其添加$100的账户#2的号码和类型:支票账户10101010000001000001;

●资金转移的数量和币种:$100;

●关于被请求的银行操作的备注:“支付网页设计者服务”;

●借助文本消息从银行获得的银行操作的确认码:“9876”。

在用户100将所有必需数据发送到应用程序bankingapp120之后,该应用程序的模块之一(具体地,用于利用银行账户工作的模块121)采集由用户100发送的数据并处理该数据:通过非对称加密算法使用公钥加密,从而进一步保护由公共计算机网络发送的数据;验证采集的数据是否遵守适当格式(账户号码的正确性、金钱的数额等等);计算识别数据并将其发送到银行服务器130的预定网络地址。

此外,用于利用银行账户工作的模块121还将获得的识别数据发送到bankingapp120的另一模块,具体地发送到用于安全银行操作的模块122。该模块为由用于安全银行操作且被银行认可的第三方提供给网上银行应用程序bankingapp120的开发者的外部库。用于安全银行操作的模块122分析从用于利用银行账户工作的模块121获得的识别数据以便确定接收的识别数据中的哪个识别数据表征被请求的银行操作且可以用在黑客方案中,诸如:对用户100的个人账户的未授权访问;未授权的银行操作;获得用户100的机密信息(诸如执行的银行操作的列表)。

在所描述的示例中,该数据可以包括:用于访问用户100的个人账户的登录名和密码;银行资料(银行名称、将发生数据交换的银行服务的网络地址等等);在所描述的银行操作中使用的账号的号码;资金转移的量;被请求的银行操作的类型:资金转移。

用于安全银行操作的模块122可以配置成使用具有公钥的非对称加密算法来加密所选数据并将所述数据发送到安全服务器110的预定网络地址。

在安全服务器110上,将由用于安全银行操作的模块122发送的识别数据发送到脚本创建模块111。用于来自接收的识别数据的每种数据(诸如描述用于访问个人账户的登录名和密码的数据、用于银行操作“银行转账”的数据等)的脚本创建模块111选择用于从用户的计算设备采集数据的规则,从而如果恶意软件在用户的计算设备上操作,则可靠地识别该恶意软件。例如,为了确定恶意软件在计算设备上运行且获得对用户的授权数据的未授权访问,需要获得在由用户100输入授权数据之后发生的函数的调用记录。在已选择数据收集规则之后,确定数据收集规则的执行的特性。此后,可以从所选的数据收集规则制定验证脚本并将该验证脚本发送到用于安全银行操作的模块122。

在已获得验证脚本之后,用于确保银行操作的模块122将执行该验证脚本。

表征银行操作且由用于利用银行账户工作的模块121发送到银行服务器130的数据被用于登记交易的模块131接收。可以处理接收的数据:如果该数据已被加密,则解密该数据(例如通过使用公钥的非对称加密算法);验证执行银行操作的登录名、密码和确认码是否遵守适当格式;基于接收的银行资料、账户号码等,验证执行所需的银行操作的技术可能性(账户#1和账户#2存在,在账户#1中有$100等);此后,在成功处理的情况下,基于数据创建银行交易,该交易被登记且存储在银行系统中。针对登记的银行交易设置可执行该银行交易的时间段,且在该时间段期满时将该银行交易从银行系统中移除,以及将通过用于登记交易的模块131将关于不成功的执行该银行操作的尝试的信息发送到网上银行应用程序bankingapp120。因此,实现了防止对提及的银行操作的数据的未授权访问的额外保护。否则,网上银行应用程序bankingapp120将由用于登记交易的模块131下发关于拒绝执行请求的银行操作的信息,该信息之后将以便于用户细读的形式呈现给用户100。

由分析模块112发送到银行服务器130的关于允许执行提及的银行操作的数据被用于执行交易的模块132接收。基于接收的数据,用于执行交易的模块132进行对于在银行系统中登记的前文提及的银行交易的搜索。如果找到银行交易,则执行该银行交易,并将执行结果发送到网上银行应用程序bankingapp120,这些结果之后以便于用户细读的形式呈现给用户100。

图2示出根据本发明的方面的用于执行安全网上银行交易的示例性方法。该方法包括:步骤201,采集操作信息;步骤202,创建银行操作的交易;步骤203,创建验证脚本;步骤204,采集识别数据;步骤205,计算执行银行操作的安全级别;和步骤206,执行银行操作的交易。

更具体地,在步骤201中,从提及的计算设备采集描述请求的银行操作的数据(在后文中,操作信息)。

操作信息可以包括但不限于:用于访问银行账户、个人账户等的授权数据(登录名和密码、用户100的生物特征数据,诸如指纹、虹膜照片、声纹、笔迹样本等);银行资料;请求的银行操作的类型(获得账户结余、将一笔钱从一个账户转到另一个账户、账户存款、资金回笼、支付商品和服务等);请求的银行操作中涉及的金钱数额;确认执行银行操作的数据(使用3ds-安全技术的银行操作的确认码等);关于请求的银行操作(用于所执行操作的备注等)或关于用户100的账户的修改(例如,用户100工作所利用的账号)的补充信息。

在步骤202中,基于在步骤201中获得的操作信息创建提及的银行操作的交易。可以在先前建立的时间段期满时或在步骤205中从分析模块112接收命令时来执行步骤206。

在步骤203中,可以基于在步骤201中采集的操作信息创建验证脚本,该验证脚本配置成从前述计算设备收集数据(在后文中,识别数据)且包含至少一个数据收集规则。该规则可以限定:识别数据的特性,在步骤204中根据这些特性在用户100的计算设备的其它数据之中明确地确定识别数据;采集识别数据的方法,在步骤204中基于这些方法选择用户100的计算设备的将用于采集识别数据的资源;采集识别数据的条件,在满足这些条件时,在步骤204中将进行识别数据的采集,同时上述特性、采集识别数据的条件和方法被选择使得执行银行操作的安全级别基于对采集的识别数据的分析来计算。执行银行操作的安全级别可以为从0到1的数值,其表征存在对提及的操作信息的未授权访问的概率。

验证脚本可以包含:先前创建的数据收集规则的集合;应用数据收集规则的方式(例如,在步骤204中执行数据收集规则的次序);由于处理因数据收集规则的工作而获得的数据而获得补充数据的方式,诸如:计算获得的数据的校验和;在由于一个数据收集规则的工作而获得的数据之间搜索由于另一个数据收集规则的工作而获得的数据;或搜索获得的数据之间的关系以及计算描述所找到的关系的数值系数。

在一个示例性方面中,可以使用多种现有的脚本语言(诸如lua、applescript等)中的一种脚本语言来创建验证脚本。该方法的益处为验证创建的执行速度、操作的支持、和操作的透明性。

在另一个示例性方面中,可以使用高级编程语言(诸如java、c++等)来创建验证脚本。该方法的益处为验证脚本的工作的可靠性、和利用恶意手段对其分析的困难或甚至不可能。

在步骤204中,源于在步骤203中创建的验证脚本的执行而采集识别数据,该验证脚本包含至少一个数据收集规则,其中,该数据收集规则描述:识别数据的特性,在步骤204中利用这些特性在用户100的计算设备的其它数据之中明确地识别出识别数据;采集识别数据的方法,在步骤204中基于这些方法选择用户100的计算设备的将用于采集识别数据的资源;采集识别数据的条件,在满足这些条件时,在步骤204中收集识别数据。

识别数据的类型可以包括但不限于:

●计算设备的ram的转储;

●在计算设备上运行的应用程序的网络活动的记录(包含多个记载,该记载包括唯一应用程序标识符、计算机网络中的数据交换的开始和结束的时间、与之交换数据的服务器的网络地址、发送或接收的数据的量等等);

●来自在计算设备上运行的应用程序的函数调用的记录(包含多个记载,该记载包括唯一应用程序标识符、调用函数的时间、函数的名称、发送到函数的数据、所调用函数的工作结果等等);

●在用户100的计算设备上运行的安全策略;

●在计算设备上运行的应用程序之间传输的数据、以及传输所述数据的方法,诸如参与数据交换的应用程序的唯一标识符、数据交换的开始和结束时间、发送的数据的量和类型、进程间通信(ipc)的类型等等;

●在计算设备上运行的应用程序的特性(被工作的应用程序占用的ram的量、该应用程序的操作时间、应用程序的唯一标识符,诸如应用程序的校验和md5或名称,以该名称将应用程序登记在计算设备的操作系统中,等等)。

识别数据的特性可以包括:识别数据的数据类型(例如,数字、字符串、字节阵列、图像、媒体数据等等)、识别数据的大小、以及识别数据的位置(例如,ram中的指针、硬盘驱动上的路径等等)。

收集识别数据的方法可以包括:使用用户100输入数据所利用的图形界面的api函数调用;使用操作系统的api函数调用;拦截系统事件;直接访问利用由用户100输入的数据工作的进程的存储器。

用户100的计算设备的资源可以包括:用户100输入数据所利用的图形界面的api函数;操作系统的api函数;系统事件;用于获得对信息媒介(存储器、外部信息媒介、硬盘驱动等等)的访问的数据。

在步骤204期间,可以利用收集的识别数据执行如下操作:加密收集的识别数据;存档收集的识别数据;计算收集的识别数据的卷积;或计算收集的识别数据的校验和(诸如crc32或md5);以及在步骤205中将进一步处理执行提及的操作的结果。

在步骤205中,基于在步骤204中收集的识别数据计算执行提及的银行操作的安全级别。

在步骤206中,在如在步骤205中所计算的执行提及的银行操作的安全级别满足预定阈值的情况下,执行在步骤202中创建的交易。

满足预定阈值的条件的满足可以至少在于如下项:所计算的执行银行操作的安全级别不低于预定阈值;或者在执行多个银行操作的情况下,所计算的执行这些银行操作的安全级别的集中趋势的测量值不低于预定阈值。

可以将执行银行交易的结果发送到客户端120,用于用户100的关于执行提及的银行操作的结果的信息。

图3示出根据本发明的方面的用于执行安全网上银行交易的示例性方法的一系列步骤,涉及用户100、安全服务器110、用于利用银行账户工作的模块121、用于安全银行操作的模块122、银行服务器130,以及其中:创建交易310,创建唯一验证脚本320,根据验证脚本验证用户的计算设备330,处理识别数据340以及执行交易350,而且部件之间所传输的数据即为:操作信息310.1、交易的uid320.1、交易的uid320.2、交易的uid320.3、唯一验证脚本330.1、识别数据340.1、从计算设备收集的识别数据的分析结果350.1、执行交易的结果360.1、和银行交易370.1。

更具体地,用户100借助由客户端120提供的图形界面将表征银行操作的数据发送到用于利用银行账户工作的模块121。从由用户100发送的数据,用于利用银行账户工作的模块制定操作信息310.1并将其发送到银行服务器130。银行服务器130处理从用于利用银行账户工作的模块121接收的操作信息310.1并创建银行交易370.1,该银行交易370.1明确地与唯一标识符(交易的uid)320.1相关联。银行服务器将交易的uid返回到其连接的用于利用银行账户工作的模块121。用于利用银行账户工作的模块121将从银行服务器130获得的交易的uid发送到用于安全银行操作的模块122。用于安全银行操作的模块122建立与预定的安全服务器110的连接,并将从用于利用银行账户工作的模块121接收的交易的uid320.3发送到该预定的安全服务器110。除了交易的实际uid320.3以外,用于安全银行操作的模块122还可以发送先前借助用于利用银行账户的工作的模块所接收的操作信息310.1(基于该信息,安全服务器110将创建唯一验证脚本330.1)。安全服务器110创建唯一验证脚本330.1并将其发送回用于安全银行操作的模块122。用于安全银行操作的模块122执行接收的唯一验证脚本330.1,这可以从用户100的计算设备收集识别数据340.1。此后,用于安全银行操作的模块122将收集的识别数据340.1发送到安全服务器110。安全服务器处理接收的识别数据340.1:根据收集的识别数据340.1,该安全服务器计算执行银行交易370.1是否将为安全的、是否获得对操作信息310.1的未授权访问等等。在完成执行验证之后,安全服务器110将计算设备的验证结果350.1发送到银行服务器130,该验证结果350.1还包含先前从用于安全银行操作的模块122接收的交易的uid。在用户100的计算设备的验证结果为正的情况下,银行服务器130可以执行先前创建的银行交易并将银行交易的执行结果发送到用于利用银行账户工作的模块121。在用户100的计算设备的验证为负结果的情况下,银行服务器可以阻止交易的执行。

图4为示出其上可根据示例性方面实施用于执行安全网上银行交易的系统和方法的通用计算机系统的图。如所示,该计算机系统20(其可以是个人计算机或服务器)包括中央处理单元21、系统存储器22和连接各种系统部件的系统总线23,各种系统部件包括与中央处理单元21相关联的存储器。如将由本领域的普通技术人员所领会,系统总线23可以包括总线存储器或总线存储器控制器、外围总线、以及能够与任何其它的总线架构交互的本地总线。系统存储器可以包括永久性存储器(rom)24和随机存取存储器(random-accessmemory,ram)25。基本输入/输出系统(basicinput/outputsystem,bios)26可以存储用于在计算机系统20的元件之间的信息传输的基本程序,例如在使用rom24加载操作系统时的那些基本程序。

计算机系统20还可以包括用于读取和写入数据的硬盘27、用于在可移动磁盘29上读取和写入的磁盘驱动器28、以及用于读取和写入可移动光盘31(诸如cd-rom、dvd-rom和其它光学媒介)的光盘驱动器30。硬盘27、磁盘驱动器28和光盘驱动器30分别通过硬盘接口32、磁盘接口33和光盘驱动器接口34而连接到系统总线23。驱动器和对应的计算机信息媒介为用于存储计算机系统20的计算机指令、数据结构、程序模块和其它数据的电源独立的模块。

示例性方面包括使用借助控制器55连接到系统总线23的硬盘27、可移动磁盘29和可移动光盘31的系统。将由本领域的普通技术人员所理解,也可以利用能够以计算机可读的形式存储数据的任何类型的媒介56(固态驱动器、闪存卡、数字盘、随机存取存储器(ram)等等)。

计算机系统20具有可以存储操作系统35的文件系统36、以及额外的程序应用37、其它程序模块38和程序数据39。计算机系统20的用户可以使用键盘40、鼠标42、或本领域的普通技术人员已知的任何其它输入设备(诸如但不限于麦克风、操纵杆、游戏控制器、扫描器等)输入命令和信息。这些输入设备通常通过串行端口46插入到计算机系统20中,串行端口46转而连接到系统总线,但是本领域的普通技术人员将领会,输入设备也可以以其它方式来连接,诸如但不限于借助并行端口、游戏端口、或通用串行总线(universalserialbus,usb)来连接。监控器47或其它类型的显示设备也可以通过接口(例如视频适配器48)连接到系统总线23。除了监控器47,个人计算机还可以装备有其它的外围输出设备(未示出),例如扬声器、打印机等。

计算机系统20可以使用与一个或多个远程计算机49的网络连接而工作在网络环境中。一个或多个远程计算机49可以为本地计算机工作站或服务器,其包括在描述计算机系统20的性质时使用的上述元件中的大多数元件或全部元件。其它设备也可以存在于计算机网络中,诸如但不限于路由器、网站、对等设备或其它的网络节点。

网络连接可以形成局域计算机网络(local-areacomputernetwork,lan)50和广域计算机网络(wide-areacomputernetwork,wan)。这些网络用在企业计算机网络和公司内部网络中,并且这些网络通常有权访问因特网。在lan或wan网络中,个人计算机20通过网络适配器或网络接口51连接到局域网50。当使用网络时,计算机20系统可以采用调制解调器54或本领域的普通技术人员所熟知的实现与广域计算机网络(诸如因特网)的通信的其它模块。调制解调器54可以是内部设备或外部设备,可以通过串行端口46连接到系统总线23。本领域的普通技术人员将领会,所述网络连接是使用通信模块建立一个计算机与另一个计算机的连接的许多熟知方式的非限制性示例。

在各个方面中,本文中所描述的系统和方法可以以硬件、软件、固件或它们的任何组合来实施。如果以软件来实施,则上述方法可以作为一个或多个指令或代码而被存储在非易失性计算机可读介质上。计算机可读介质包括数据存储器。以示例性而非限制性的方式,这种计算机可读介质可以包括ram、rom、eeprom、cd-rom、闪存或其它类型的电存储介质、磁存储介质或光存储介质,或可用来携带或存储所期望的指令或数据结构形式的程序代码并可以被通用计算机的处理器访问的任何其它介质。

在各个方面中,本发明中所描述的系统和方法可以按照模块来处理。本文中所使用的术语“模块”指的是例如现实世界的设备、部件、或使用硬件(例如通过专用集成电路(applicationspecificintegratedcircuit,asic)或现场可编程门阵列(field-programmablegatearray,fpga))实现的部件的布置,或者指的是硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令集(该指令集在被执行时将微处理器系统转换成专用设备)来实现这样的组合。一个模块还可以被实施为两个模块的组合,其中单独地通过硬件促进某些功能,并且通过硬件和软件的组合促进其它功能。在某些实现方式中,模块的至少一部分(以及在一些情况下,模块的全部)可以被执行在通用计算机(例如上文在图4中更详细描述的通用计算机)的处理器上。因此,每个模块可以以各种适合的配置来实现,而不应受限于本文中所列举的任何特定的实现方式。

为了清楚起见,本文中没有公开各个方面的所有例程特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定于实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力会是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。

此外,应当理解的是,本文中所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文中所提出的教导和指导结合相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。

本文中所公开的各个方面包括本文中以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,在不脱离本文中所公开的发明构思的前提下,相比于上文所提及的内容而言的更多修改是可行的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1