一种基于白盒的加密方法及系统与流程

文档序号:12131477阅读:419来源:国知局
一种基于白盒的加密方法及系统与流程

本发明涉及信息安全领域,特别是涉及一种基于白盒的加密方法及系统。



背景技术:

近年来,随着移动互联网、智能终端、大数据、云计算等的发展,移动互联网从一种技术演变为人们生活的环境。伴随证券账户自由流动制度的实施,证券开户、交易、服务等环节已实现网络化。互联网金融的移动化趋势在证券行业日益深入,越来越多的投资者通过手机、平板电脑等移动终端进行交易。中证协数据显示,去年券商网上业务占比继续提升,网上开户占比由2014年的50%提高到2015年的92%;网上交易人数占比由2014年的79。28%提高到2015年的84。43%。这些网上开户和网上交易数据中,几乎九成来自移动终端的网上行为。大型金融机构、第三方在线支付网站成为网络钓鱼的主要对象,黑客仿冒这些网站或伪造购物网站诱骗用户登录和交易,窃取用户账号密码,从而造成用户经济损失。手机终端业务的发展对其交易的安全可靠性提出了挑战,尤其是对于客户信息的保密保护,对于交易过程当中信息的盗取,都是我们面临的巨大挑战。

现有技术中,目前证券交易平台在手机端多采用:用户名+静态密码+数字验证码作为登录方式,通过利用软键盘来增加账号或密码的安全性,软键盘是通过软件模拟键盘通过鼠标点击或者触屏输入字符,是为了防止木马记录键盘输入的密码,一般在一些银行的网站上要求输入帐号和密码的地方容易看到。但是现有的软件模拟键盘安全性还不够高,依然存在数据监听、数据截取等风险,交易时直接输入密码进行交易,其依然存在安全风险,极易受到撞库、网络钓鱼等攻击,用户在输入交易密码时极易被盗取,给用户带来极大的经济损失,因此急需一种基于移动端的安全方案来保证交易密码的输入安全。



技术实现要素:

本发明提供了一种基于白盒的加密方法及系统,其目的是将密码逐个加密,然后使用白盒算法加密密码,防止传输中加密种子泄露。

本发明提供的技术方案如下:

一种基于白盒的加密方法,包括步骤:

S100应用终端获取用户输入的字符,将所述字符和白盒种子根据预设的字符加密算法和预设的采集顺序进行加密组合,得到组合密码;S200所述应用终端将所述组合密码根据预设的密码加密算法进行加密运算,得到加密密文;S300服务器将所述加密密文进行解密,获得所述用户预设密码。

本发明中,通过白盒密码技术(一种将算法密钥融合到算法中的加密技术)安全的保护键盘,键盘可以是电脑使用的实体键盘,也可以是应用终端上的软件模拟键盘。应用终端上的软件模拟键盘通过鼠标点击或者触屏,获取用户输入的字符,将输入的字符经过字符加密算法和密码加密算法的双重加密,得到的密文发送给服务器,可以防止木马记录键盘输入的密码或者非法用户进行数据监听、数据截取,从而极大地保障了用户经济安全。这里字符加密算法的运算次数和密码加密算法的运算次数是至少一次。将白盒密码技术运用于应用终端的密码键盘上可以很好的防止暴力破解。本发明将用户输入的字符先分开加密,然后整体加密,能很好的防止通过内存dump(dump功能是备份文件,在特定时刻,将整个储存装置或储存装置之某部分的内容记录在另一储存装置中)攻击获取密码。这里白盒种子用来表示插件ID一一对应的字符串,加密存储在插件中。

进一步的,所述步骤S100包括步骤:S110所述应用终端按照预设的采集顺序,获取用户输入的字符;S120所述应用终端获取自身的用户相关信息,并根据所述用户相关信息结合随机数生成字符串;S130所述应用终端根据白盒算法将所述字符串进行加密生成所述白盒种子;S140所述应用终端将获取的所述字符根据所述预设的字符加密算法,结合所述白盒种子,一对一进行运算,得到加密字符;S150所述应用终端按照预设的采集顺序将获得的所述加密字符进行排列,得到所述组合密码;

其中,所述用户相关信息包括用户电话号码信息、身份信息、地址信息中的任意一种或多种,所述随机数由所述应用终端和所述服务器同步生成。

本发明中,根据时间顺序,获取用户输入的字符,根据字符加密算法对采集到的字符和生成的白盒种子进行逐个加密,这样即使非法用户根据撞库或者钓鱼的方式获得加密处理后的组合密码,但是非法用户不能得知白盒种子是如何生成的,如果非法用户只根据获取的组合密码进行登录,由于组合密码≠用户预设密码,导致非法用户不能通过非法获得的组合密码进行账户登录、交易支付,极大地保护了用户的经济安全和隐私安全。其中生成白盒种子采用的算法可以是国际加密算法或国内加密算法中的任意一种或多种。生成组合密码的算法是异或运算或者对称算法等任意一种可逆运算方法。

进一步的,所述步骤S200包括步骤:S210所述应用终端获取自身的硬件相关信息,根据所述硬件相关信息结合挑战码生成加密密钥;S220所述应用终端根据预设的密码加密算法将所述组合密码,结合所述加密密钥,进行加密运算得到加密密文;S230所述应用终端将所述加密密文发送至所述服务器;

其中,所述硬件相关信息包括屏幕参数、尺寸、材质、内存容量、外存容量、CPU性能、摄像头像素、终端型号、应用终端IMEI、应用终端MAC地址中的任意一种或多种,所述挑战码由所述服务器和/或所述应用终端生成。

本发明中,为了进一步保障用户的账户密码等信息,使用密码加密算法对组合密码进行加密得到加密密文,应用终端将加密密文传输给服务器,其中,生成加密密钥的方式是SM3、MD5等杂凑算法进行运算的得到的,众所周知,SM3为单向散列函数,不能从结果推出挑战码和用户硬件信息,这样即使非法用户在传输过程中,利用撞库的方式或者穷举的方式等任何非法途径获得加密密文,进行破解用户采用何种算法以及加密密钥,但是却不能获知用户的硬件相关信息,保护用户的信息安全。由于不能获知随机数,进而不能获知用户密码,由于组合密码≠用户预设密码,导致非法用户不能通过非法获得的组合密码进行账户登录、交易支付,极大地保护了用户的经济安全和隐私安全。同时不同的客户端使用不同的算法,使算法破解难度增加,极大的保护了用户的经济安全和隐私安全。

进一步的,所述步骤S300包括步骤:S310所述服务器对所述加密密文进行解密,得到认证组合密码;S320所述服务器验证所述认证组合密码与所述组合密码是否一致,若是执行步骤S330;否则,执行步骤S360;S330所述服务器根据所述预设的字符加密算法,一对一进行运算得到解密字符,并将所述解密字符按照所述预设的采集顺序排列,得到用户认证密码;S340所述服务器验证所述用户认证密码与所述用户预设密码是否一致,若是执行步骤S350;否则,执行步骤S360;S350所述服务器输出获得所述用户预设密码成功信息;S360所述服务器输出获得所述用户预设密码失败信息。

本发明中,因为非法用户不能获知随机数,随机数只有服务器和用户知道根据什么算法得到的,因此即使非法用户,根据穷举等非法方式伪造合法用户得知加密密文,进而获得组合密码伪装合法用户想要进行登录,但是不能获知用户预先设置的字符加密算法以及生成的随机数,就不能获知白盒种子,由于白盒种子与用户密码进行运算,再根据时间顺序组合就得到组合密码,就算非法用户获得了组合密码,但是却不能根据组合密码推算出用户预设密码,即组合密码≠用户预设密码,从而不能进行手机转账和支付业务时非法登陆合法用户的账户,大大地保护了用户的经济安全和隐私安全。

进一步的,所述步骤S360之后包括步骤:S400所述服务器根据获得的所述用户预设密码成功信息,将所述用户预设密码进行保存;S500所述服务器根据获得的所述用户预设密码失败信息,发出告警提示信息至所述应用终端;S510所述应用终端根据所述告警提示信息,判断是否需要重新执行密码加密认证,若是执行步骤S100;否则,执行步骤S520;S520所述应用终端解除与服务器之间的联系。

本发明中,如果是合法用户输入密码,那么服务器根据一系列的运算得到认证组合密码,验证与用户事先已经保存的密码是一致的,那么服务器就能够判断用户通过密码认证。如果是合法用户不小心输入了错误的密码,那么应用终端发出告警提示信息,合法用户判断是否是自己输入错误,如果是那么就可以重新输入密码,再次进行密码认证。如果是非法用户输入了组合密码,但是非法用户不能根据该组合密码逆运算得到用户预设密码,因此应用终端发出告警提示信息,合法用户判断是否是自己输入错误,如果不是那么应用终端解除与服务器之间的联系,例如微信或者支付宝等应用软件冻结用户账号,避免一些不法分子可能会趁机在手机支付宝或者微信内获取到信息,造成合法用户的损失。

进一步的,所述步骤S100之前包括步骤:S010预先设置所述字符加密算法、所述密码加密算法、所述采集顺序;其中,所述字符加密算法和所述密码加密算法均采用对称算法;所述采集顺序为用户输入字符的时间顺序或时间逆序。

本发明中,在所述服务器与所述应用终端进行数据通信之前,用户根据自身实际情况设置字符加密算法、密码加密算法和采集顺序,算法包括国际算法和国内算法,例如DES算法,TDEA算法,Blowfish算法,RC5算法,SM系列算法。这样,不同的用户采用不同的算法和不同的采集顺序,使算法破解难度增加,加大安全性。

本发明还提供一种基于白盒的密码加密系统,包括:应用终端和服务器;所述应用终端与所述服务器通讯连接;

所述应用终端,获取用户输入的字符,将所述字符和白盒种子根据预设的字符加密算法和预设的采集顺序进行加密组合,得到组合密码;所述应用终端,将所述组合密码根据预设的密码加密算法进行加密运算,得到加密密文;所述服务器,服务器将所述加密密文进行解密,获得所述用户预设密码。

本发明中,应用终端上的软件模拟键盘通过鼠标点击或者触屏,这里的软件模拟键盘字符包括数字字符和字母字符,其中键盘字符是随机排列出现的,这样防止木马通过记录屏幕的输入点窃取输入信息,获取用户输入的字符后,将输入的字符经过字符加密算法和密码加密算法的双重加密,得到的密文发送给服务器,即为加密传输,有效防范了键盘钩子、数据监听、数据截取等风险,从而极大地保障了用户经济安全。这里字符加密算法的运算次数和密码加密算法的运算次数是至少一次。

进一步的,所述应用终端包括:获取模块、白盒种子生成模块、第一加密模块和组合模块;所述获取模块与所述白盒种子生成模块通讯连接;所述白盒种子生成模块与所述第一加密模块通讯连接;所述第一加密模块与所述组合模块通讯连接;

所述获取模块,按照预设的采集顺序,获取用户输入的字符;并获取所述应用终端自身的用户相关信息;

所述白盒种子生成模块,根据所述用户相关信息结合随机数生成字符串;并根据白盒算法将所述字符串进行加密生成所述白盒种子;所述第一加密模块,将获取的所述字符根据所述预设的字符加密算法,结合所述白盒种子,一对一进行运算,得到加密字符;所述组合模块,按照预设的采集顺序将获得的所述加密字符进行排列,得到所述组合密码;

其中,所述用户相关信息包括用户电话号码信息、身份信息、地址信息中的任意一种或多种,所述随机数由所述应用终端和所述服务器同步生成。

本发明中,生成白盒种子采用的算法可以是国际加密算法或国内加密算法中的任意一种或多种。生成组合密码的算法是异或运算或者对称算法等任意一种可逆运算方法。获取用户输入的字符,根据字符加密算法对采集到的字符和生成的白盒种子,根据时间顺序一个对一个进行逐个加密,这样即使非法用户根据撞库或者钓鱼的方式获得加密处理后的组合密码,但是非法用户不能得知白盒种子是如何生成的,如果非法用户只根据获取的组合密码进行登录,由于组合密码≠用户预设密码,导致非法用户不能通过非法获得的组合密码进行账户登录、交易支付,将用户输入的字符先分开加密,然后整体加密,能很好的防止通过内存dump文件攻击获取密码,增加了用户的经济安全和隐私安全。

进一步的,所述应用终端还包括:白盒密钥生成模块、第二加密模块和发送模块;所述白盒密钥生成模块与所述获取模块通讯连接;所述第二加密模块与所述白盒密钥生成模块通讯连接;所述发送模块与所述第二加密模块通讯连接;

所述获取模块,还获取所述应用终端的硬件相关信息;所述白盒密钥生成模块,根据所述硬件相关信息结合挑战码生成加密密钥;所述第二加密模块,根据预设的密码加密算法将所述组合密码,结合所述加密密钥,进行加密运算得到加密密文;所述发送模块,将所述加密密文发送至所述服务器;

本发明中,硬件相关信息包括屏幕参数、尺寸、材质、内存容量、外存容量、CPU性能、摄像头像素、终端型号、应用终端IMEI、应用终端MAC地址中的任意一种或多种。其中,为了进一步保障用户的账户密码等信息,使用密码加密算法对合法加密字符进行加密得到加密密文,应用终端将加密密文传输给服务器,这样即使非法用户在传输过程中,利用撞库的方式或者穷举的方式等任何非法途径破解用户采用何种算法以及加密密钥,但是却不能获知该时刻随机数,进而不能获知组合密码,这样就通过双重加密的方式安全的保护了组合密码,而且不同用户在不同的客户端使用不同的算法,使算法破解难度增加。导致非法用户不能通过非法获得的用户密码进行账户登录、交易支付,极大的保护了用户的经济安全和隐私安全。其中,生成加密密钥的方式是SM3、MD5等杂凑算法进行运算的得到的,众所周知,SM3为单向散列函数,不能从结果推出挑战码和用户硬件信息,大大保护用户的信息安全。

进一步的,所述服务器包括:解密模块、判断模块和控制模块;所述解密模块与所述发送模块通讯连接;所述判断模块与所述解密模块通讯连接;所述控制模块与所述判断模块通讯连接;

所述解密模块,根据所述解密轮密钥对所述加密密文进行解密,得到认证组合密码;所述验证模块,验证所述认证组合密码与所述组合密码是否一致;所述控制模块,还当认证组合密码与所述组合密码一致时,根据所述白盒种子,结合所述预设的字符加密算法,一对一进行运算得到解密字符,并将所述解密字符按照所述预设的采集顺序排列,得到用户认证密码;所述控制模块,还当认证组合密码与所述组合密码不一致时,输出获得所述用户预设密码失败信息;所述验证模块,还验证所述用户认证密码与所述用户预设密码是否一致;所述控制模块,还当所述用户认证密码与所述用户预设密码一致时,输出获得所述用户预设密码成功信息;所述控制模块,还当所述用户认证密码与所述用户预设密码不一致时,输出获得所述用户预设密码失败信息。

本发明中,因为非法用户并不能获取到随机数,因此即使根据穷举等非法方式伪造合法用户得到用户在加密认证过程中传输给服务器的加密密文,进行伪装合法用户登录,但是不能获知用户预先设置的字符加密算法以及生成的随机数,进而就不能获知白盒种子,由于白盒种子与用户密码进行运算,再根据时间顺序组合就得到组合密码,就算非法用户获得了组合密码,但是却不能根据组合密码推算出用户预设密码,即由于这样得到的组合密码≠用户预设密码,从而不能在进行手机转账和支付业务时成功登陆合法用户的账户,大大地保护了用户的经济安全和隐私安全。

进一步的,所述服务器还包括:保存模块和告警模块;所述保存模块与所述控制模块通讯连接;所述告警模块与所述控制模块通讯连接;

所述应用终端还包括判断模块和管理模块,所述判断模块与所述告警模块通讯连接;所述管理模块与所述判断模块通讯连接;

所述保存模块,根据获得的所述用户预设密码成功信息,将所述用户预设密码进行保存;所述告警模块,根据获得的所述用户预设密码失败信息,发出告警提示信息至所述应用终端;所述判断模块,根据所述告警提示信息,判断是否需要重新执行密码加密认证;所述管理模块,当需要重新执行密码加密过程时,重新输入密码进行密码加密认证过程;所述管理模块,当不需要重新执行密码加密过程时,解除与服务器之间的联系。

本发明中,如果是合法用户输入了正确的密码,那么服务器根据一系列的运算得到用户预设密码,验证与用户事先已经保存的密码是一致的,那么服务器就能够判断用户通过密码认证。如果是合法用户不小心输入了错误的密码,那么应用终端发出告警提示信息,合法用户判断是否是自己输入错误,如果是那么就可以重新输入密码,再次进行密码认证。如果是非法用户根据非法途径获得组合密码并输入,但是非法用户不能逆运算得到用户预设密码,只能得到组合密码,由于组合密码≠用户预设密码,因此应用终端发出告警提示信息,合法用户判断是否是自己输入错误,如果不是那么应用终端解除与服务器之间的联系,例如微信或者支付宝等应用软件冻结用户账号,避免一些不法分子可能会趁机在手机支付宝或者微信内获取到信息,造成合法用户的损失。

进一步的,所述应用终端还包括:设置模块,所述设置模块与所述获取模块通讯连接;所述设置模块,预先设置字符加密算法、密码加密算法和采集顺序;其中,所述字符加密算法和所述密码加密算法均采用对称算法;所述采集顺序为用户输入字符的时间顺序或时间逆序。

本发明中,在所述服务器与所述应用终端进行数据通信之前,用户根据自身实际情况设置字符加密算法、密码加密算法和采集顺序,这样,不同的用户可以根据自己的需求采用不同的算法规则,使算法破解难度增加,加大安全性。

与现有技术相比,本发明提供一种基于白盒的加密方法及系统,至少带来以下一种技术效果:

1、将白盒密码技术运用于应用终端的密码键盘上可以很好的防止暴力破解。

2、将用户输入的字符先分开加密,然后整体加密,能很好的防止通过缓存文件攻击获取密码。

3、不同的用户采用不同的算法规则,使算法破解难度增加,加大安全性。

附图说明

下面将以明确易懂的方式,结合附图说明优选实施方式,对一种基于白盒的加密方法及系统的特性、技术特征、优点及其实现方式予以进一步说明。

图1是本发明一种基于白盒的加密方法一个实施例的流程图;

图2是本发明一种基于白盒的加密方法另一个实施例的流程图;

图3是本发明一种基于白盒的加密方法另一个实施例的流程图;

图4是本发明一种基于白盒的密码加密系统一个实施例的结构图;

图5是本发明一种基于白盒的密码加密系统另一个实施例的结构图;

图6是本发明一种基于白盒的密码加密系统另一个实施例的结构图;

图7是本发明一种基于白盒的加密方法另一个实施例的流程图;

图8是本发明一种基于白盒的加密方法另一个实施例的结构图。

具体实施方式

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。

参照图1所示,本发明提供一种基于白盒的加密方法的一个实施例,包括:

S100应用终端获取用户输入的字符,将所述字符和白盒种子根据预设的字符加密算法和预设的采集顺序进行加密组合,得到组合密码;

S200所述应用终端将所述组合密码根据预设的密码加密算法进行加密运算,得到加密密文;

S300服务器将所述加密密文进行解密,获得所述用户预设密码。

具体的,在本实施例中,键盘字符包括数字字符和字母字符,键盘字符以符号图片显示。应用终端上的软件模拟键盘通过鼠标点击或者触屏,获取用户输入的字符,将输入的字符经过字符加密算法和密码加密算法的双重加密,得到的密文发送给服务器,可以防止木马记录键盘输入的密码或者非法用户进行数据监听、数据截取,从而极大地保障了用户经济安全。这里字符加密算法的运算次数和密码加密算法的运算次数是至少一次。将白盒密码技术运用于应用终端的密码键盘上可以很好的防止暴力破解。本发明将用户输入的字符先分开加密,然后整体加密,能很好的防止通过内存dump攻击获取密码。

参照图2所示,本发明提供一种基于白盒的加密方法的另一个实施例,包括:

S110所述应用终端按照预设的采集顺序,获取用户输入的字符;

S120所述应用终端获取自身的用户相关信息,并根据所述用户相关信息结合随机数生成字符串;

S130所述应用终端根据白盒算法将所述字符串进行加密生成所述白盒种子;

S140所述应用终端将获取的所述字符根据所述预设的字符加密算法,结合所述白盒种子,一对一进行运算,得到加密字符;

S150所述应用终端按照预设的采集顺序将获得的所述加密字符进行排列,得到所述组合密码;

S210所述应用终端获取自身的硬件相关信息,根据所述硬件相关信息结合挑战码生成加密密钥;

S220所述应用终端根据预设的密码加密算法将所述组合密码,结合所述加密密钥,进行加密运算得到加密密文;

S230所述应用终端将所述加密密文发送至所述服务器;

S310所述服务器对所述加密密文进行解密,得到认证组合密码;

S320所述服务器验证所述认证组合密码与所述组合密码是否一致,若是执行步骤S330;否则,执行步骤S360;

S330所述服务器根据所述预设的字符加密算法,一对一进行运算得到解密字符,并将所述解密字符按照所述预设的采集顺序排列,得到用户认证密码;

S340所述服务器验证所述用户认证密码与所述用户预设密码是否一致,若是执行步骤S350;否则,执行步骤S360;

S350所述服务器输出获得所述用户预设密码成功信息;

S360所述服务器输出获得所述用户预设密码失败信息。

在本实施例中,用户相关信息包括用户电话号码信息、身份信息、地址信息中的任意一种或多种。硬件相关信息包括屏幕参数、尺寸、材质、内存容量、外存容量、CPU性能、摄像头像素、终端型号、应用终端IMEI、应用终端MAC地址中的任意一种或多种。

具体的,在本实施例中,其中生成白盒种子采用的算法可以是国际加密算法或国内加密算法中的任意一种或多种。

生成组合密码的算法是异或运算或者对称算法等任意一种可逆运算方法。

生成加密密钥的算法是SM3、MD5等杂凑算法进行运算的得到的,众所周知,SM3为单向散列函数,不能从结果推出挑战码和用户硬件信息。

生成加密密文的算法是根据SM4、DES等对称可逆算法。

在本实施例中,根据时间先后顺序,获取用户输入的字符,根据字符加密算法对采集到的字符和生成的白盒种子进行偶数次的对称运算逐个加密,例如进行偶数次的异或运算,下面进行举例:假如根据用户自身的用户相关信息比如生日0216,当用户需要输入密码进行验证时,服务器和手机端均根据用户选择的算法随机生成相同的随机数,该随机数为1567,用户信息0216和随机数生成字符串02161567,预先设置的白盒算法例如将数字序列0123456789一一对应转换为白盒ID—8639701524,这个将字符串0123456789相互转换为8639701524的方法是用户事先选择的一种白盒算法。那么根据用户事先选择的白盒算法生成白盒种子即为58616714,白盒种子58616714的二进制分别表示为0101,1000,0110,0001,0110,0111,0001,0100。那么用户输入密码41382165,用户输入密码41382165的二进制分别表示为0100,0001,0011,1000,0010,0001,0110,0101。将用户输入的密码和白盒种子的二进制按照一对一逐个分别进行异或运算,即0100⊕0101=1001,0001⊕1000=1001,……,0101⊕0100=1001,表示为十六进制即得到的加密字符分别为9,9,9,9,8,8,7,9按照用户输入41382165的时间先后顺序得到的组合密码就是99998879。这里服务器根据应用终端的硬件相关信息比如用户手机的型号信息,以及服务器生成的挑战码,进行运算生成加密密钥,这样将组合密码99998879根据加密密钥进行加密得到加密密文,应用终端将加密密文发送至服务器,然后服务器将得到的加密密文,根据与加密密钥匹配的解密密钥进行进行解密得到组合密码,进一步将组合密码进行逆运算得到用户输入的预设密码41382165。这里,因为服务器与应用终端使用的算法和生成的随机数是一致的,随机数是由应用终端和服务器根据相同的算法和相同的触发条件生成,因此服务器与应用终端生成的随机数一致,但是生成的随机数服务器与应用终端之间并不进行传输下发过程,所以在传输过程中非法用户是不能获得随机数的,进而不能获得白盒种子。由于白盒种子与用户密码进行运算,再根据时间顺序组合就得到组合密码,就算非法用户获得了组合密码,但是却不能根据组合密码推算出用户预设密码,即因此只有和服务器绑定的应用终端和服务器知道两者使用的算法和随机数。这样即使非法用户根据撞库或者钓鱼的方式获得加密处理后的加密密文,但是非法用户不能获取白盒种子,因此即使通过暴力破解的方式得到组合密码99998879,但是不能根据组合密码逆推运算得到用户输入的预设用户密码,即因为组合密码≠用户预设密码,如果非法用户只根据非法获取的组合密码进行登录,导致非法用户不能非法进行账户登录、交易支付,极大地保护了用户的经济安全和隐私安全。其中,生成加密密钥的方式是SM3、MD5等杂凑算法进行运算的得到的,众所周知,SM3为单向散列函数,不能从结果推出挑战码和用户硬件信息,这样即使非法用户在传输过程中,利用撞库的方式或者穷举的方式等任何非法途径获得加密密文,进行破解用户采用何种算法以及加密密钥,但是却不能获知用户的硬件相关信息,保护用户的信息安全。同时,不同的客户端使用不同的算法,使算法破解难度增加,挑战码可以是服务器生成,也可以是应用终端生成,但是一般由应用终端比如手机生成的挑战码,随机性不高,而且在向服务器传输时容易被截取,安全性不高,这里优先使用服务器生成挑战码,挑战码可以是根据时间因子和/或事件因子生成。这样非法用户就不能在进行手机转账和支付业务时成功登陆合法用户的账户,大大地保护了用户的经济安全和隐私安全。

对于数字排列:

1.取硬件ID,本实施例中可以取手机IMEI码。

2.取当前时间信息T,单位为毫秒。

3.计算EK(H(ID)+EK(T));

3.1其中,首先通过哈希算法计算硬件ID算出的一安全单向的散列函数H(ID),通过加密算法加密时间信息EK(T),再加密H(ID)和EK(T),即得到EK(H(ID)+EK(T)),将结果转化为0-9之间的一个数r1;

3.2取0-9数列(键盘字符中的10个数字)中排列在r1位置的数a1;

3.3其中0-9数列除掉a1,剩9个数,继续第3.2步,结果转为0-8之间的数r2,然后再取数列(9个数)排列在r2位置的数,以此继续下去。

4.可取出序列:a1、a2、a3……。

举例,假设上述步骤获得的序列为数字随机序列:412357698,则表示,第4个数字键盘字符放第1位,第1个数字键盘字符放第2位,…,第8个数字键盘字符放第9位。从而将数字的键盘字符随机排列。

对于字母排列:同数字排列,先取0-25之间的数,然后依次取26次即可,比如字母随机序列:23213145310…,则表示第23个字母键盘字符放第1位,第2个字母键盘字符图片放第2位…,在此不作赘述。

应用终端通过SOTP算法、DES、3DES、RC2、RC4、IDEA、RSA、SM系列等加密算法随机生成随机数,SOTP算法在申请号201410532214.3专利中已经公开。

参照图3所示,本发明提供一种基于白盒的加密方法的另一个实施例,包括:

S010预先设置所述字符加密算法、所述密码加密算法、所述采集顺序;

S100应用终端获取用户输入的字符,将所述字符和白盒种子根据预设的字符加密算法和预设的采集顺序进行加密组合,得到组合密码;

S200所述应用终端将所述组合密码根据预设的密码加密算法进行加密运算,得到加密密文;

S310所述服务器对所述加密密文进行解密,得到认证组合密码;

S320所述服务器验证所述认证组合密码与所述组合密码是否一致,若是执行步骤S330;否则,执行步骤S360;

S330所述服务器根据所述预设的字符加密算法,一对一进行运算得到解密字符,并将所述解密字符按照所述预设的采集顺序排列,得到用户认证密码;

S340所述服务器验证所述用户认证密码与所述用户预设密码是否一致,若是执行步骤S350;否则,执行步骤S360;

S350所述服务器输出获得所述用户预设密码成功信息;

S360所述服务器输出获得所述用户预设密码失败信息;

S400所述服务器根据获得的所述用户预设密码成功信息,将所述用户预设密码进行保存;

S500所述服务器根据获得的所述用户预设密码失败信息,发出告警提示信息至所述应用终端;

S510所述应用终端根据所述告警提示信息,判断是否需要重新执行密码加密认证,若是执行步骤S100;否则,执行步骤S520;

S520所述应用终端解除与服务器之间的联系。

具体的,在本实施例中,在所述服务器与所述应用终端进行数据通信之前,用户根据自身实际情况设置字符加密算法、密码加密算法和采集顺序,这样,不同的用户采用不同的算法规则,使算法破解难度增加,加大安全性。如果是合法用户输入了正确的密码,那么服务器根据一系列的运算得到用户预设密码,验证与用户事先已经保存的密码是一致的,那么服务器就能够判断用户通过密码认证。如果是合法用户不小心输入了错误的密码,那么应用终端发出告警提示信息,合法用户判断是否是自己输入错误,如果是那么就可以重新输入密码,再次进行密码认证。如果是非法用户输入了组合密码,但是非法用户不能根据该组合密码逆运算得到用户预设密码,因此应用终端发出告警提示信息,合法用户判断是否是自己输入错误,如果不是那么应用终端解除与服务器之间的联系,例如微信或者支付宝等应用软件冻结用户账号,将应用软件与服务器之间的关系解除,事后用户可以再重新绑定两者之间的关系,有效地避免一些不法分子可能会趁机在手机支付宝或者微信内获取到信息,造成合法用户的损失。在所述服务器与所述应用终端进行数据通信之前,用户根据自身实际情况设置字符加密算法、密码加密算法和采集顺序,算法包括国际算法和国内算法,例如DES算法,TDEA算法,Blowfish算法,RC5算法,SM系列算法。这样,不同的用户采用不同的算法和不同的采集顺序,使算法破解难度增加,加大安全性。

参照图4所示,本发明提供一种基于白盒的密码加密系统1000的一个实施例,包括:

应用终端1100和服务器1200;所述应用终端1100与所述服务器1200通讯连接;

所述应用终端1100,获取用户输入的字符,将所述字符和白盒种子根据预设的字符加密算法和预设的采集顺序进行加密组合,得到组合密码;

所述应用终端1100,将所述组合密码根据预设的密码加密算法进行加密运算,得到加密密文;

所述服务器1200,将所述加密密文进行解密,获得所述用户预设密码。

本发明中,应用终端1100上的软件模拟键盘通过鼠标点击或者触屏,这里的软件模拟键盘字符包括数字字符和字母字符,其中键盘字符是随机排列出现的,这样防止木马通过记录屏幕的输入点窃取输入信息,获取用户输入的字符后,将输入的字符经过字符加密算法和密码加密算法的双重加密,得到的密文发送给服务器1200,即为加密传输,有效防范了键盘钩子、数据监听、数据截取等风险,从而极大地保障了用户经济安全。这里字符加密算法的运算次数和密码加密算法的运算次数是至少一次。

参照图5所示,本发明提供一种基于白盒的密码加密系统1000的另一个实施例,所述应用终端1100包括:获取模块1110、白盒种子生成模块1120、第一加密模块1130、组合模块1140、白盒密钥生成模块1150、第二加密模块1160和发送模块1170;

所述获取模块1110与所述白盒种子生成模块1120通讯连接;所述白盒种子生成模块1120与所述第一加密模块1130通讯连接;所述第一加密模块1130与所述组合模块1140通讯连接;;所述白盒密钥生成模块1150与所述获取模块1110通讯连接;所述第二加密模块1160与所述白盒密钥生成模块1150通讯连接;所述发送模块1170与所述第二加密模块1160通讯连接;

所述服务器1200包括:解密模块1210、判断模块1180和控制模块1230;所述解密模块1210与所述发送模块1170通讯连接;所述判断模块1180与所述解密模块1210通讯连接;所述控制模块1230与所述判断模块1180通讯连接;

所述获取模块1110,按照预设的采集顺序,获取用户输入的字符;并获取所述应用终端1100自身的用户相关信息;

所述白盒种子生成模块1120,根据所述用户相关信息结合随机数生成字符串;并根据白盒算法将所述字符串进行加密生成所述白盒种子;

所述第一加密模块1130,将获取的所述字符根据所述预设的字符加密算法,结合所述白盒种子,一对一进行运算,得到加密字符;

所述组合模块1140,按照预设的采集顺序将获得的所述加密字符进行排列,得到所述组合密码;

所述获取模块1110,还获取所述应用终端1100的硬件相关信息;

所述白盒密钥生成模块1150,根据所述硬件相关信息结合挑战码生成加密密钥;

所述第二加密模块1160,根据预设的密码加密算法将所述组合密码,结合所述加密密钥,进行加密运算得到加密密文;

所述发送模块1170,将所述加密密文发送至所述服务器1200;

所述解密模块1210,根据所述解密轮密钥对所述加密密文进行解密,得到认证组合密码;

所述验证模块1220,验证所述认证组合密码与所述组合密码是否一致;

所述控制模块1230,还当认证组合密码与所述组合密码一致时,根据所述预设的字符加密算法,一对一进行运算得到解密字符,并将所述解密字符按照所述预设的采集顺序排列,得到用户认证密码;

所述控制模块1230,还当认证组合密码与所述组合密码不一致时,输出获得所述用户预设密码失败信息;

所述验证模块1220,还验证所述用户认证密码与所述用户预设密码是否一致;

所述控制模块1230,还当所述用户认证密码与所述用户预设密码一致时,输出获得所述用户预设密码成功信息;

所述控制模块1230,还当所述用户认证密码与所述用户预设密码不一致时,输出获得所述用户预设密码失败信息。

具体的,本发明实施例中,例如根据时间先后顺序,获取用户输入的字符,根据字符加密算法对采集到的字符和生成的白盒种子进行逐个加密,其中,为了进一步保障用户的账户密码等信息,使用密码加密算法对合法加密字符进行加密得到加密密文,应用终端1100将加密密文传输给服务器1200,这样即使非法用户在传输过程中,利用撞库的方式或者穷举的方式等任何非法途径破解获取加密密文,但是却不能获知随机数进而不能获知用户预设密码,安全的保护了用户预设密码,同时不同的客户端使用不同的算法,使算法破解难度增加,进一步保护了组合密码。即使非法用户非常厉害获得加密处理后的加密密文从而破解加密密文得到组合密码,但是其中生成白盒种子采用的算法可以是国际加密算法或国内加密算法中的任意一种或多种。生成组合密码的算法是异或运算或者对称算法等任意一种可逆运算方法。只有和服务器绑定的应用终端和服务器知道两者使用的算法和随机数,即只有它们知道使用的白盒种子,这样即使非法用户根据撞库或者钓鱼的方式获得加密处理后的加密密文,但是非法用户不能获取白盒种子,因此即使通过暴力破解的方式得到组合密码,但是不能根据组合密码逆推运算得到用户输入的用户预设密码,非法用户根据获取的组合密码进行登录,即因为组合密码≠用户预设密码,导致非法用户不能通过非法获得的用户密码进行账户登录、交易支付,极大的保护了用户的经济安全和隐私安全。

其中,所述用户相关信息包括用户电话号码信息、身份信息、地址信息中的任意一种或多种,所述随机数由所述应用终端和所述服务器同步生成。硬件相关信息包括屏幕参数、尺寸、材质、内存容量、外存容量、CPU性能、摄像头像素、终端型号、应用终端IMEI、应用终端MAC地址中的任意一种或多种。

参照图6所示,本发明提供一种基于白盒的密码加密系统1000的另一个实施例,所述服务器1200还包括:保存模块1250和告警模块1260;所述保存模块1250与所述控制模块1230通讯连接;所述告警模块1260与所述控制模块1230通讯连接;所述应用终端1100还包括判断模块1180和管理模块1190,所述判断模块1180与所述告警模块1260通讯连接;所述管理模块1190与所述判断模块1180通讯连接;

所述保存模块1250,根据获得的所述用户预设密码成功信息,将所述用户预设密码进行保存;

所述告警模块1260,根据获得的所述用户预设密码失败信息,发出告警提示信息至所述应用终端1100;

所述判断模块1180,根据所述告警提示信息,判断是否需要重新执行密码加密认证;

所述管理模块1190,当需要重新执行密码加密过程时,重新输入密码进行密码加密认证过程;

所述管理模块1190,当不需要重新执行密码加密过程时,解除与服务器1200之间的联系;

进一步的所述应用终端1100还包括:设置模块1101,所述设置模块1101与所述获取模块通讯连接;

所述设置模块1101,预先设置字符加密算法、密码加密算法和采集顺序;

其中,所述字符加密算法和所述密码加密算法均采用对称算法;所述采集顺序为用户输入字符的时间顺序或时间逆序。

本发明中,在所述服务器1200与所述应用终端1100进行数据通信之前,用户根据自身实际情况设置字符加密算法、密码加密算法和采集顺序,算法包括国际算法和国内算法,例如DES算法,TDEA算法,Blowfish算法,RC5算法,SM系列算法。这样,不同的用户采用不同的算法和不同的采集顺序,使算法破解难度增加,加大安全性。如果是合法用户输入了正确的密码,那么服务器1200根据一系列的运算得到用户预设密码,验证与用户事先已经保存的密码是一致的,那么服务器1200就能够判断用户通过密码认证。如果是合法用户不小心输入了错误的密码,那么应用终端1100发出告警提示信息,合法用户判断是否是自己输入错误,如果是那么就可以重新输入密码,再次进行密码认证。如果是非法用户输入了组合密码,但是非法用户不能根据该组合密码逆运算得到用户预设密码,因此应用终端1100发出告警提示信息,合法用户判断是否是自己输入错误,如果不是那么应用终端1100解除与服务器1200之间的联系,例如微信或者支付宝等应用软件冻结用户账号,避免一些不法分子可能会趁机在手机支付宝或者微信内获取到信息,造成合法用户的损失。

参照图7所示,本发明提供一种基于白盒的加密方法的一个实例,包括:

1、其中简单的位运算,例如流加密:将用户输入的第一个字符与种子的第一个字符异或,当输入第二个字符时与白盒种子的第二个字符异或,以此类推;

2、组合加密字符的规则是根据用户输入的顺序;

3、白盒种子的生成是根据用户传入的手机100信息和用户的一些信息如手机号等,结合密码卡生成的随机数生成一个字符串,然后根据白盒母算法加密该字符串生成一个固定的白盒种子;

4、白盒密钥的生成是根据服务器生成的挑战码和手机100的硬件信息使用白盒密码技术的加密接口加密生成一个加密密钥作为SM4加密的种子;

5、后台是指远端的服务器200。

本实施例中,本发明主要解决一般的安全键盘容易被恶意软件拦截、破解密码。基于白盒密码技术发明的密码键盘过程如图7和图8所示,应用终端屏幕上的键盘生成的字符种类随机,字符出现的位置随机,这样可以防止木马通过记录屏幕的输入点窃取输入信息。由于手机100的系统键盘容易被外界监听盗取密码,现在市场上提供的系统键盘多使用公开的加密算法,而加密种子的生成一般由手机100生成,随机性不高,而且在向服务器200传输时容易被截取,安全性不高,本发明使用白盒算法,安全的保护了种子,同时不同的客户端使用不同的算法,使算法破解难度增加。将密码键盘集成在银行手机100APP中,在进行手机100转账和支付业务时调用该密码键盘进行密码输入验证。将白盒密码技术运用于移动端的密码键盘上可以很好的防止暴力破解。将用户输入的数分开加密后整体加密很好的防止手机100内存dump攻击获取密码。将用户输入的密码逐个加密,按照时间先后顺序得到组合加密字符,然后使用白盒算法加密密码,防止传输中加密种子泄露。当然,这里包括但是不限于异或运算,只要是对称可逆运算,那么只需要计算次数是偶数次就能够进行逆推出用户输入的用户预设密码。

应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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