一种用户登录过程安全加固方法及系统的制作方法
【技术领域】
[0001]本发明属于数据敏感、以及对数据传输安全性较高的单向验证领域,尤其涉及一种用户登录过程安全加固方法及系统。
【背景技术】
[0002]互联网安全问题一直伴随着互联网的发展而被一直关注,用户登录做为互联网用户系统上的入口,其安全性确是重中之重。用户密码做为一个系统内验证用户有效性的关键元素,在网络上传输过程中的安全性直接影响到用户数据的安全。特别是在一些重要系统上,用户密码的丢失直接影响到用户资金安全和个人隐私。
[0003]传统的用户系统登录过程中,密码传输一般采用客户端明文传递、客户端md5加密后传递或配合ssl安全套接字协议进行传输,单靠这些传统方式并不能完全有效解决http流量劫持攻击和本机病毒木马攻击的问题。一旦通讯链路被黑客劫持或者本机感染恶意病毒,明文传输的密码将轻而易举被盗取,虽然通过SSL方式传递密码,可以在一定程度上降低密码在传输过程中的被盗风险,但并不能解决因为本机感染病毒木马而使密码在输入环节被盗的问题。
【发明内容】
[0004]为解决上述问题,本发明提供一种用户登录过程安全加固方法及系统。
[0005]为达到上述目的,本发明采用的技术方案为:
[0006]一种用户登录过程安全加固方法,包括如下步骤:
[0007]S1、接收来自用户端获取密码键盘图片的请求;
[0008]S2、生成包含密码字符及密码字符坐标的密码键盘图片;
[0009]S3、接收来自用户端反馈的数据,该数据包含,在密码键盘图片上被用户点击的密码字符的坐标数据序列;
[0010]S4、根据反馈数据中的坐标数据序列还原密码明文;
[0011]S5、根据密码明文验证用户的有效性,并执行业务逻辑。
[0012]进一步的,步骤S2具体包括,
[0013]S21、生成用户的通用唯一识别码UUID ;
[0014]S22、生成一张能够容纳所有密码字符的空白图片;
[0015]S23、生成包含密码字符及密码字符坐标的数组;
[0016]S24、用生成的UUID标识数组,并将二者一同保存;
[0017]S25、根据生成的数组在空白图片对应坐标上绘制密码字符以生成密码键盘图片。
[0018]更进一步的,UUID采用具有唯一性的硬件ID或是采用会话ID加浏览器特征值的方式获取。
[0019]更进一步的,步骤S23中数组采用随机算法生成。
[0020]更进一步的,步骤S25中在空白图片上绘制密码字符时,对每个字符用干扰算法加以混淆,防止机器识别。
[0021]本发明还提供基于上述方法的一种用户登录过程安全加固系统,包括:
[0022]第一接收装置,用于接收来自用户端获取密码键盘图片的请求;
[0023]密码键盘图片生成装置,用于生成包含密码字符及密码字符坐标的密码键盘图片;
[0024]第二接收装置,用于接收来自用户端反馈的数据,该数据包含,在密码键盘图片上被用户点击的密码字符的坐标数据序列;
[0025]查找装置,用于根据用户端反馈数据中的坐标数据序列还原密码明文;
[0026]验证装置,根据得到的密码明文验证用户的有效性,并执行业务逻辑。
[0027]进一步的,密码键盘图片生成装置具体包括:
[0028]UUID生成模块,用于生成用户的通用唯一识别码UUID ;
[0029]空白图片生成模块,用于生成一张能够容纳所有密码字符的空白图片;
[0030]数组生成模块,用于生成包含密码字符及密码字符坐标的数组;
[0031]存储模块,用于保存生成的数组以及标示该数组的UUID ;
[0032]绘图模块,用于根据生成的数组在空白图片对应坐标上绘制密码字符以生成密码键盘图片。
[0033]更进一步的,数组生成模块采用随机算法生成数组。
[0034]更进一步的,UUID生成模块生成UUID时,采用具有唯一性的硬件ID或是采用会话ID加浏览器特征值的方式生成。
[0035]更进一步的,绘图模块在空白图片上绘制密码字符时,对每个字符用干扰算法加以混淆,防止机器识别。
[0036]采用本技术方案的有益效果:
[0037](I)防止http流量劫持及旁听攻击,即使恶意用户拿到用户端反馈数据中的坐标数据,也无法还原密码明文,因为坐标和密码字符的对应关系,即数组,未保存在用户端而在存储模块中;
[0038](2)防止本机病毒木马窃取密码,即使鼠标键盘被监听,也无法得到用户密码明文,因为密码键盘图片每次都随机生成和排列,即固定坐标每次对应的密码字符都不一样;
[0039](3)基于上述两点说明,本发明具有较高的密码安全防护性,特别适合应用于对密码安全要求较高的应用场景,如网银系统、交易系统、游戏交易平台和SNS社交网站等涉及现金、资金安全和个人隐私的系统,以及,修改密码、用户注册和输入验证码等对数据敏感和安全性要求较高的过程。
【附图说明】
[0040]图1为本发明方法的流程示意图;
[0041]图2为本发明系统的结构示意图;
[0042]图3为密码键盘图片生成装置的结构示意图。
【具体实施方式】
[0043]为了更好的理解本发明,下面结合附图对本发明做进一步说明。
[0044]如图1所示,一种用户登录过程安全加固方法,包括如下步骤。
[0045]S1、接收来自用户端获取密码键盘图片的请求。
[0046]用户端在每次登录之前,首先向服务器端请求获取密码键盘图片,服务器端接收到该请求后,进入下一步。
[0047]S2、生成包含密码字符及密码字符坐标的密码键盘图片。
[0048]具体的,分以下步骤进行:
[0049]S21、生成用户的通用唯一识别码UUID ;
[0050]服务器端生成用户的通用唯一识别码UUID,优选的,用户UUID采用具有唯一性的硬件ID (如CPU、硬盘,MAC地址)或是采用会话ID加浏览器特征值的方式获取,或是其它生成全局唯一性用户特征值的方式获取;
[0051]以采用会话ID加浏览器特征值的方式为例:对于Web系统,假设后端服务器开发语言为PHP,Web服务器为apache,前端为采用浏览器方式登录,首先,服务器端产生一个唯一的会话ID:SESS1N_ID,然后,服务器端根据会话ID、时间戳、用户浏览器AGENT头生成用户 UUID:
[0052]$uuid = sess1n_id().microtime 0.$_SERVER[ ‘HTTP_USER_AGENT,];
[0053]S22、生成一张能够容纳所有密码字符的空白图片;
[0054]服务器端生成一张能够容纳所有密码字符的空白图片,优选的,该空白图片为矩形;假设所有密码字符总数为20,每个密码字符图片呈正方形,边长为5px,空白图片的每一行可以包含10个密码字符图片,那么空白图片的总宽度为50px,总共包含2行;令位于空白图片第一行第一列的字符图片左上角顶点处的坐标为X = 0,y = 0,由于字符图片呈正方形且边长为5px,则字符图片对应的坐标范围为0<x<5,0<y< 5,简称为位于空白图片第一行第一列密码字符的坐标为X = 0,y = 0,对应的坐标范围为O彡x<5,0彡y
<5,同样的可知,位于空白图片第一行第二列密码字符的坐标为X = 5,y = 0,对应的坐标范围为5彡X彡10,0<y< 5,位于空白图片第二行第一列密码字符的坐标为X = 0,y =5,对应的坐标范围为O < X < 5,5 < y < 10,位于空白图片第二行第二列密码字符的坐标为X = 5,y = 5,对应的坐标范围为5<x<10,5<y< 10......以此类推;
[0055]S23、生成包含密码字符及密码字符坐标的数组;
[0056]数组中的密码字符可以为数字、字母或是其它所有可以作为用户密码的字符,且数组中的密码字符必定包含用户密码中的所有字符,如,若是用户端是数字密码登陆系统,则数组中的密码字符为“0-9”这十个数字,若是用户端是字母密码登陆系统,则数组中的密码字符为“A、a、B、b......Z、z ”这52个大小写字母;
[0057]为便于描述,假设用户端为纯数字密码登陆系统,所有密码字符总数为4,密码字符为“1、2、3和4”这四个数字,空白图片仅需容纳四个字符图片,每个字符图片的边长为5px:
[0058]若空白图片为两行两列,则密