计算机安全系统和防止键击记录的方法转让专利

申请号 : CN201580071378.3

文献号 : CN107111479A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : G·易W·C·史密斯C·M·阿德温

申请人 : 安客诚

摘要 :

静态安全凭证被替换为假名和因会话而异的密码,以增加与用户登录尝试相关联的安全性,并且具体而言击败键盘记录攻击。对于每次登录事件,系统通过随机替换给定的用户名和密码中的字符来生成唯一的、因会话而异的凭证。随机字符生成确保系统登录尝试使用不同的字符组合,由此针对每次用户会话产生新的用户名和密码。系统的客户端侧仅要求显示图像文件的能力,其中专用软件/硬件被限于服务器侧,由此便于宽范围的客户端设备对系统的使用。

权利要求 :

1.一种向系统认证用户的方法,包括以下步骤:

a.接收包括来自字符集的字符子集的随机定义存储;

b.生成包括来自所述字符子集的第一排序的字符的第一数组以及包括来自所述子集的第二排序的字符的第二数组;

c.随机化所述第二数组中的第二排序的字符;

d.根据所述第一数组和第二数组来创建密钥,所述密钥包括来自所述第一数组的字符以及来自所述第二数组的对应字符的配对;

e.构建包括标识输入图像的图像文件,其中出现在所述密钥的配对中的来自所述第一数组的字符被匹配到所述密钥中的来自所述第二数组的所述对应字符;

f.接收来自所述用户的经加密的输入标识;

g.使用所述密钥来解密来自所述用户的所述输入标识,以用所述第一数组中的对应字符替换来自所述第二数组的字符;

h.将来自所述用户的经解密的输入标识与被储存的输入标识进行比较;以及i.如果来自所述用户的所述经解密的输入标识与所述被储存的输入标识相匹配,则登录所述用户。

2.根据权利要求1所述的向系统认证用户的方法,其特征在于,其中所述字符子集包括元音。

3.根据权利要求1所述的向系统认证用户的方法,其特征在于,其中所述字符子集包括数字。

4.根据权利要求1所述的向系统认证用户的方法,其特征在于,其中所述字符子集排除特殊字符。

5.根据权利要求1所述的向系统认证用户的方法,其特征在于,其中接收来自所述用户的经加密的输入包括接收来自用户的被部分地加密的输入以使其包括经加密的部分和未经加密的部分的步骤,并且其中使用所述密钥对来自所述用户的所述输入标识进行解密以用来自所述第一数组的对应字符替换来自所述第二数组的字符的步骤仅被应用于来自所述用户的所述输入的所述经加密的部分。

6.根据权利要求1所述的向系统认证用户的方法,其特征在于,其中所述第一数组包括多个元素,每个元素包括单个字符,并且其中所述第二数组包括多个元素,每个元素包括单个字符。

7.根据权利要求1所述的向系统认证用户的方法,其特征在于,其中所述第一数组包括多个元素,每个元素包括单个字符,并且其中所述第二数组包括多个元素,其中所述第二数组的元素中的至少一个元素包括多个字符。

8.根据权利要求1所述的向系统认证用户的方法,其特征在于,其中构建包括标识输入图像的图像文件的步骤包括构建标识输入图像的步骤,其中来自所述第一数组的字符在所述标识输入图像中对所述用户不可见。

9.根据权利要求8所述的向系统认证用户的方法,其特征在于,还包括以下步骤:在接收到来自所述用户的经加密的输入标识的至少一个字符之后,构建包括具有来自所述第二数组的不同字符排序的标识输入图像的第二图像文件。

10.一种用于向系统认证用户的装置,包括:

a.包括来自字符集的字符子集的随机定义存储;

b.与所述随机定义存储通信的数组生成器,以产生包括来自所述字符子集的字符的第一和第二数组;

c.用于改变来自所述第二数组的所述字符的排序的数组随机化器;

d.用于匹配来自所述第一数组和第二数组的字符配对以产生密钥的哈希图生成器;

e.用于生成包括来自所述密钥的字符的图像文件的图形引擎;

f.用于向用户显示所述图像文件的输出显示器;

g.包括接收由用户输入的供认证的字符的小键盘的输入板;

h.匹配引擎,所述匹配引擎与所述输入板、所述密钥和用户标识表通信,以使用所述密钥对来自所述输入板的输入进行解密、将经解密的输入与来自所述用户表的对应的用户标识信息进行比较,并且如果匹配被找到,则登陆所述用户。

11.根据权利要求10所述的用于向系统认证用户的装置,其特征在于,其中所述输出显示器和所述输入板包括相同的设备。

12.根据权利要求11所述的用于向系统认证用户的装置,其特征在于,其中所述输出显示器和所述输入板包括触摸屏设备。

13.根据权利要求10所述的用于向系统认证用户的装置,其特征在于,其中所述输出显示器是ATM上的视频显示器。

14.根据权利要求10所述的用于向系统认证用户的装置,其特征在于,包括用于生成包括来自所述密钥的字符的图像文件的图形引擎,其中来自所述第一数组的字符被映射到来自所述第二数组的对应字符。

15.根据权利要求10所述的用于向系统认证用户的装置,其特征在于,包括用于生成包括来自所述密钥的字符的图像文件的图形引擎,其中来自所述第一数组的字符不被显示在所述图像文件中。

16.根据权利要求10所述的用于向系统认证用户的装置,其特征在于,包括用于在所述输入板接收到由用户输入的至少一个供认证的字符之后生成包括来自与所述第一密钥不同的第二密钥的字符的第二图像文件。

17.一种用于在用户登录尝试期间击败键盘记录攻击的方法,包括以下步骤:a.从标准的字母数字字符集中生成包括所述字母数字字符集的子集的数组;

b.随机化所述数组的排序;

c.创建包括有序配对集的密钥,其中每个配对包括来自所述字母数字字符集的所述子集的原始排序字符以及对应于所述阵列中与所述字母数字字符集的所述子集的所述原始排序字符相同位置的所述字母数字字符集的所述子集的经随机化排序的字符;

d.构建包括至少一个经随机化排序的字符的图像文件;

e.从客户端设备接收经加密的用户名和经加密的密码中的一个或多个,其中所述经加密的用户名和经加密的密码中的一个或多个包括代替原始排序的字符的至少一个经随机排序的字符;以及f.分析经加密的用户名和经加密的密码中的一个或多个,以确定其是否匹配未经加密的用户名和未经加密的密码中的一个或多个。

18.根据权利要求17所述的方法,其特征在于,其中分析经加密的用户名和经加密的密码中的一个或多个以确定其是否匹配未经加密的用户名和未加密的密码中的一个或多个的步骤包括以下步骤:使用所述密钥来解密经加密的用户名和经加密的密码中的一个或多个。

19.根据权利要求18所述的方法,其特征在于,其中构建包括至少一个经随机化排序的字符的图像文件的步骤还包括以下步骤:至少一个有序配对,其中原始排序的字符和来自所述有序配对的经随机化排序的字符在视觉上被相邻地显示。

20.根据权利要求18所述的方法,其特征在于,还包括以下步骤:创建包括第二有序配对集的第二密钥,以及从所述第二密钥构建包括至少一个经随机化排序的字符的第二图像文件。

说明书 :

计算机安全系统和防止键击记录的方法

背景技术

[0001] 键击记录(keystroke logging)是一种出于恶意的目的暗中捕捉来自计算设备的无疑心的用户的用户标识信息(诸如用户名、密码、PIN、帐号或其他标识凭证)的众所周知的方法。该方法通过在信息由用户借助于键盘、小键盘、触摸屏或其他输入设备输入时秘密地记录及在一些情况下传送信息而起作用。键击记录可使用被设计成对来自用户的键击流进行“窥探”的专用硬件设备来执行,或者通过被安装在用户的计算设备上的软件来执行。远程访问键盘记录软件可定期地传送来自用户的计算机的数据,诸如通过将该数据上传到远程服务器,或者通过使用计算设备的电子邮件软件经由电子邮件将信息发送到预设的电子邮件地址。键击记录攻击的常见目标是用户名和密码数据,因为此类数据可被用来远程访问用户所持有的帐户。这样的访问可被用于各种欺诈的目的,诸如获取对财务帐户的访问以进行未经授权的购买或资金转移。

发明内容

[0002] 在各种实现中,本发明用产生假名和因会话而异的密码的电子系统替代了通过计算机、智能电话、自动柜员机(ATM)和其他计算设备递送的静态安全凭证(诸如标准计算机用户名和密码),从而通过增加的安全性来增强这些设备的操作。对于每次登录事件,系统通过随机替换给定的(通常是个人选择的)用户名或密码或两者中的字符来生成唯一的、因会话而异的凭证。随机字符生成算法确保系统登录尝试使用不同的字符组合(在某些实现中,混合大小写的字母和数字),从而要求用户使用与系统通信的这些设备中的一者来针对每次用户会话输入新的用户名和密码。
[0003] 为了在某些实现中生成安全的登录凭证,系统针对原始用户名和密码中的所有元音(大写和小写)和所有数字随机生成替代“密钥”。当登录进会话时,用户通过用来自图形图像文件中提供的密钥替换表的替换字符替换原始凭证中的元音和数字来键入用户名和密码。对于每个用户会话,系统随机生成一个或多个密钥替换表作为图像文件。
[0004] 由于在本发明的某些实现中使用的专用硬件和软件系统驻留在服务器侧,所以系统相对容易地用任何客户端侧计算设备或平台来实现,因为其仅需要在客户端侧显示图像文件以便于操作。所有其他处理都发生在系统的服务器侧,包括用来向用户显示密钥映射表的(诸)图像文件的生成。密钥映射表的图像在某些实现中是可扩展的,由此容适不同尺寸和类型的显示器,包括平板和智能电话。
[0005] 尤其对于银行业而言,系统可用使用10位(仅数字)替换密钥映射表的自动柜员机(ATM)终端来实现。在其他实现中,系统可支持用一个、两个或更多个字符替换单个字符,以使得被提交的凭证在每次使用时具有不同的长度,条件是系统管理被配置成使得仅一个密钥子集正在被映射(一个示例为使数字账号被键入自计算机键盘)。
[0006] 可以看出,本发明的功能是通过为用户提供更安全的登录体验来改善计算设备的操作和效率。通过考虑以下具体实施方式和附图将更好地理解所公开主题的这些和其他特征、目的和优点。

附图说明

[0007] 图1是根据本发明的一实现的某些电子组件的概览。
[0008] 图2是根据本发明的一实现的过程流程图。
[0009] 图3是本发明的一实现的随机密钥生成方面的过程流程图。
[0010] 图4是本发明的一实现的随机密钥显示方面的过程流程图。
[0011] 图5是根据本发明的一实现的针对在ATM机上的登录所显示的图像文件。
[0012] 图6是根据本发明的一实现的针对按一对一映射输入数字数据所显示的图像文件。
[0013] 图7是根据本发明的一实现的针对按一对多映射输入数字数据所显示的图像文件。
[0014] 图8是示出根据本发明的一实现的在触摸屏显示器处输入数字数据的流程图。
[0015] 图9是示出根据本发明的一实现的过程流程的“泳道”图。

具体实施方式

[0016] 在图1中,在与计算机服务器通信的某些实现中,随机定义存储10包含来自随机化将发生的字母数字字符集的字符的子集。在特定情况下,例如,随机定义存储10中的字符可以是现代英语字母a、e、i、o和u中的某些元音。数组生成器12操作以创建两个数组,每个数组包含来自根据随机定义存储10的配置文件将经受随机化的子集的字符。数组生成器12的输出于是为第一数组14和第二数组16。为了随机化这些字符,第二数组16的输出被输入到数组随机化器18,其结果是第二数组16现在包含与第一数组14相同的字符,但以不同的(经随机化的)顺序提供这些字符。继续现代英文字母表中的元音的示例,第一数组14将在随机化之后保持a、e、i、o、u,而第二数组16可具有按e、i、u、a、o顺序的相同的字符。这两个数组14和16随后被组合成哈希图(hash map)20,其产生了密钥22。密钥22包含有序配对,其示出了来自数组14的每个原始字符现在被匹配到来自第二数组16的随机字符。继续该示例,密钥22的有序配对将是a=e、e=i、i=u、o=a和u=o。
[0017] 图形引擎24在输出显示器26处使用密钥22来构建用户显示,在该显示器26处用户可以查看登录信息。在各种实现中,例如,输出显示器26可以是个人计算机监视器、平板、智能电话或ATM。图形引擎24的处理优选地发生在输出显示器26远程的服务器处,使得输出显示器26处所需的唯一处理是以预定格式提供的图形图像的显示。
[0018] 响应于在输出显示器26处查看图形图像,用户可在输入板28处输入登录信息。在一些情况下,输出显示器26和输入板28可以是分开的设备,或者可以是相同设备的不同组件,或者实际上可以是相同设备的相同组件。例如,在个人计算机的情形中,输出显示器26可以是视频屏幕,而输入板28可以是键盘。另一方面,在平板或智能电话的情形中,触摸屏显示器可同时用作输出显示器26和输入板28,它们被显示在触摸屏中与这两个不同功能对应的不同部分上,或者将功能重叠成触摸屏显示器的单个区域。
[0019] 一旦从输入板28处的用户接收到信息,则该信息就被传送到匹配引擎30。在匹配引擎30处,密钥22与同该用户有关的秘密用户ID/密码数据32一起使用,以确定由用户在输入板28处输入的数据实际上是否与正确用户ID/密码数据32的经加密的版本匹配。如果是的话,则用户被允许在34处登录并继续正常处理。
[0020] 图2-4提供了显示如图1所描述的这些组件如何提供登录功能以防止对用户的键盘记录攻击的过程流程。随着处理从图2的开始步骤40移动,在步骤42,用户被连接到登录屏幕以创建一次会话,并向用户分配一个会话ID作为步骤44。在步骤46,随机密钥22根据图3所描绘的子处理来被生成。在步骤48的开始之后,在步骤50,将被随机化的值被读取自随机定义文件10。如图1的示例所示,在这种情况下,所示的示例是元音a、e、i、o和u将成为随机定义10的一部分。第一数组14和第二数组16随后在步骤52被生成。第二数组16被随机化,现在的结果是第一数组14和第二数组16以不同的顺序呈现同一组字母数字字符(元音)。具有这些值的哈希图在步骤56被创建,并且密钥22在步骤58被返回。
[0021] 在此示例中用于生成密钥22的Python风格的伪代码可如下所示:
[0022] #生成随机密钥
[0023] #被用于重排的随机
[0024] import random
[0025] #以上经用户定义的密钥将被用于加密
[0026] userEncryptKey=[“a”,“e”,“i”,“o”,“u”]
[0027] def generateRandomSet(key):
[0028] #userEncryptKey复制到tempEncryptKey
[0029] tempEncryptKey=list(key)
[0030] #重排tempEncryptKey
[0031] random.shuffle(tempEncryptKey,random.random)
[0032] #创建哈希表(Python中的dict)
[0033] dictKey={}
[0034] #打印随机密钥对
[0035] for i in range(0,len(userEncryptKey)):
[0036] dictKey[userEncryptKey[i]]=tempEncryptKey[i]
[0037] #返回哈希表
[0038] return dictKey
[0039] #使用经用户定义的加密密钥来生成新的随机密钥对。
[0040] dictKey=generateRandomSet(userEncryptKey)
[0041] print dictKey
[0042] 在图2的步骤60,向用户显示随机密钥22。被用来启用该特征的处理在图4中被描绘。从步骤62开始,在步骤64,密钥22被接收作为变量。在步骤66,来自密钥22的密钥对由图形引擎24转换成图像文件。该文件可以是举例而言诸如便携式网络图形(.png)文件、图形交换格式(.gif)文件、联合图像专家组格式(JPEG)格式(.jpg)文件或便携式文档格式(.pdf)文件的格式。在步骤62,图像被返回,并且子过程在步骤70结束。
[0043] 返回到图2,系统在显示含有密钥22的图像之后等待,直到用户基于密钥22输入经加密的版本的密码。当用户输入发生在决定步骤74时,用户的输入使用返回密钥22来被解密。在决定步骤78,使用匹配引擎30进行比较,以基于被储存在用户ID/密码表32中的实际用户ID/密码信息来确定是否存在匹配。在步骤80,如果不存在匹配,则登录失败,并且系统等待另一次尝试。在某些实现中,系统可以在给定数量的不成功的尝试之后将用户锁定。如果由于在步骤82的匹配而发现登录成功,则处理移动到结束步骤84,伴随用户成功登录进系统。
[0044] 图5例示了当使用系统的一个特定实现(诸如使用ATM,其中仅数字被输入(诸如还涉及到用户所拥有的卡的用于两步验证的个人标识码(PIN)))时由用户查看到的屏幕。在屏幕90上(在这种情况下,其充当输出显示器26),形成PIN号码92的一部分的原始密钥与来自相应配对的在返回密钥22中找到的替换密钥一起被显示。以这种方式,用户可通过知道原始密钥来容易地输入经加密的替代密钥。例如,使用来自图5的数据,如果用户知道他或她的PIN是“1234”,则经加密的形式的对应数位将为“5836”。用户于是在输入板28处输入“5836”,其出现在密码/PIN区域96。
[0045] 在图6中,示出了其中仅一部分的数字以与图5类似的方式被加密的替代实现。例如,这可能是信用卡号码或其他长号码。用户可接着将替代密钥94的加密仅应用于最后四个数位,并且在其他数位上输入原始数字92。该方法也可被应用于其他类型的数字,诸如信用卡或类似设备的到期日。
[0046] 虽然图6例示了一对一的映射方法,但是一对多的方法也可被使用(如图7所示),以使得系统在键盘记录攻击之下更加安全。在这种情况下,用于每个原始密钥92的替换密钥94可以由多个字母数字字符组成。在该特定示例中,字母数字字符的个数从一到三不等,但是可以在各种实现中使用任何个数。
[0047] 图8提供了组合的输出显示器26和输入板28(例如触摸屏90)如何能够以动态方式被使用以进一步防止键盘记录攻击的示例。该实现是为了防止所谓的“肩窥(shouldersurfing)”,即在使用计算设备或交易终端的人的肩膀之上盯着看以窃取个人的登录凭证的行为。在这种情况下,触摸屏90仅向用户显示替代密钥94(为了清楚起见,原始密钥92以虚线示出)。在步骤“a”给出显示的示例,其中假设实际密码/PIN为“1284”。现在假设在步骤“b”,来自随机密钥22的第一模式被用来创建步骤“b”的显示。用户将针对密码的第一数位按下“1”,其中一个字符随后出现在密码/PIN区域96中,以显示该第一数位已被输入(即使如此,为了安全起见,数位本身可能被遮蔽,如图所示)。在步骤“c”,在按下该第一数位之后,该模式被再次随机化,以使得不同的随机密钥22被使用。用户根据实际密码输入第二个数字,其被匹配(对用户不可见)到对应的数位。随着用户分别输入密码的第三和第四数位,处理同样地行进通过步骤“d”和“e”。因此,在本发明的该实现中,重新随机化是在逐字符的基础上发生的。
[0048] 图9提供了以“泳道”格式来例示本发明的一实现的一个示例的流程图,以解说本发明使得可以在系统的服务器侧保留处理并由此增强抵抗通常源于客户端侧的键盘记录攻击的安全性的程度。在该示例中,用户打算登录到他或她的银行帐户。在步骤100,用户使用诸如个人计算机或智能电话的客户端设备将期望的网站的URL键入web浏览器中。然后,在步骤102,Web浏览器将针对加载网页的该请求发送到相关联的服务器。在步骤104,请求在服务器处被接收到,并且在步骤106,专门针对该会话的字母数字密钥集(随机密钥22)被随机地生成。由系统管理员定义的集合中的每个字母数字字符与不同的随机字母或数字相关联。(在图9的示例中,经定义的集合是元音和数字集。)该映射被用来使用图形引擎24来创建显示每个元音和数字以及相关联的随机字母或数字之间的关联性的图像文件。然后,在步骤108,图形上传递该映射的图像文件从服务器被发送到用户的web浏览器,以供步骤110处的在客户端设备的屏幕上的显示。
[0049] 一旦用户在显示器上看到具有一次性映射的图像,则用户在步骤112被提示输入他或她的用户名和密码。在该示例中,用户名是“apple”,而密码是“kiwi1234”。用户使用图像文件作为指导将名称“apple”键入为“4pplo”,用数字“4”替换小写的元音“a”,并用小写“o”替换小写“e”。类似地,用户将密码“kiwi1234”键入为“k3w3O0Ee”,用数字“3”替换小写的元音“i”,并用替换字符“O0Ee”代替4位字符串(1234)。在步骤114,该信息由客户端浏览器发送到服务器,然后在步骤116,该服务器基于先前特别针对该用户登录会话生成的信息来解密用户名和密码。在验证步骤118,如果找到有效的用户名和密码的匹配,则服务器在步骤120认证帐户的用户为真。然后,用户可以正常地进行,以与他或她的帐户中所维护的信息进行交互。
[0050] 可以看出,用户名和密码两者中的字符的随机替换消除了黑客和键击记录器标识并窃取与计算机和其他计算设备一起使用的安全凭证的能力。在以五个替换密钥为特色的密码(在图9的元音和数字替换示例中,对于“kiwi1234”而言,这将是i、1、2、3、4)以及不考虑用户名密钥替换的情况下,个人将正确标识所有密码字符的数学概率为186万分之一,约为百分之0.000054。
[0051] 本文所描述的各实现的优点在于,仅在服务器上维护所需的专用软件和硬件,并因此任何软件都不需要被安装在用户侧。上述示例中的客户端侧可能只需要标准的互联网浏览器。更一般地,能够显示包含密钥映射的图像的任何计算设备均可被使用。Web浏览器中所使用的标准图像格式(诸如.jpg和.png文件)可被支持。对于诸如ATM之类的封闭系统,附加的图像格式可被支持。
[0052] 本文中所描述的某些实现针对用户名和密码两者提供保护,而不仅仅是提供在被设计成击败键盘记录和其他类型的计算机系统安全攻击的许多系统中常见的只针对密码的保护。另外,由于在某些实现中仅元音和数字可用该技术来被替换,所以在登录验证期间,要求密码或用户名带有特殊字符的任何密码协议将无法使这些特殊字符被替换或移除。(特殊字符包括不是字母或数字的字符,诸如但不限于标点符号、货币符号以及通常出现在键盘或文本输入设备上的其他这样的字符。)系统不要求密码被截断,这使得其与指定针对密码的长度要求的现有系统更加兼容。与许多其他认证系统不同,客户端侧不要求单独的附加硬件来实现本技术,诸如生成一次性使用密码的硬件令牌或需要个人设备的系统(诸如用于接收带有一次性激活码或密钥的SMS消息的移动电话)。
[0053] 已经参考前述的具体实现描述了本发明。这些实现仅仅旨在是示例性的,而并不旨在限制本发明的全部范围。许多变体和修改鉴于上述示教都是可能的,包括其他语言中的实现或者使用不同的字母或字符集的实现等。本发明仅由所附权利要求中所阐述的予以限定。本文引用的所有参考文献以不与本文的公开内容相冲突的程度通过参考援引纳入于此。除非另有明确阐述,否则本文所描绘的流程不要求所示的特定次序或顺序次序来实现期望的结果。此外,其他步骤可被提供,或者步骤可被从所描述的流程中被消除,并且其他组件可被添加到所描述的系统或从所描述的系统中被移除。因此,其他实现也在所附权利要求的范围内。某范围的任何公开旨在包括在该范围内的所有范围以及在该范围内的所有各个个体值的公开。