发明内容
本发明提供了一种安全访问受保护资源的方法,具体技术方案如下:
一种安全访问受保护资源的方法,所述方法包括:
第一终端向第二终端发出访问受保护资源的请求,并将用户输入的用户名及第一数据发送给所述第二终端,所述第一数据由第三终端生成;
所述第二终端生成第二数据,并根据所述用户名查找所述第三终端的秘密;
所述第二终端根据第一预设处理方法对所述第一数据、第二数据及所述查找得到的秘密进行处理,得到第一特征值,并将所述第一特征值及第二数据发送给所述第一终端,所述第一终端将所述第一特征值及第二数据提供给所述用户;
所述第三终端接收所述用户输入的所述第二数据,并根据与所述第一预设处理方法相同的处理方法对所述第一数据、第二数据及所述第三终端预先存储的秘密进行处理,得到第二特征值,并在接收到所述用户比对所述第一特征值与第二特征值一致的确认信息后,根据第二预设处理方法对所述第一数据、第二数据及所述第三终端预先存储的秘密进行处理,得到第三特征值,并将所述第三特征值输出给所述用户;
所述第一终端将所述用户输入的所述第三特征值发送给所述第二终端;
所述第二终端根据与所述第二预设处理方法相同的处理方法对所述第一数据、第二数据及所述查找得到的秘密进行处理生成第四特征值,并比对所述第四特征值是否与接收到的所述第三特征值一致,若一致,则允许访问,否则,拒绝访问。
一种安全访问受保护资源的方法,所述方法包括:
第二终端接收到第一终端发送的访问受保护资源的请求及用户名,根据预设的算法生成第三数据,并将所述第三数据提供给用户;
第三终端根据第三预设处理方法对所述用户输入的所述第三数据、所述第三终端预先存储的秘密进行处理,得到第五特征值,并将所述第五特征值输出给所述用户;
所述第二终端将所述用户输入的所述第五特征值发送给所述第二终端;
所述第二终端根据所述用户名查找所述第三终端的秘密,并根据与所述第三预设处理方法相同的算法对所述第三数据、所述查找得到的秘密进行处理,得到第六特征值,比对所述第六特征值是否与所述第五特征值一致,若一致,则允许访问,否则,拒绝访问。
一种安全访问受保护资源的系统,所述系统包括:第一终端、第二终端和第三终端;
所述第二终端包括:
第二存储模块,用于存储生成特征值的关联信息,所述关联信息包括:与用户名绑定的所述第三终端的秘密和预设处理方法;
第三接收模块,用于接收所述第一发送模块发送的访问受保护资源的请求、用户名、第一数据及第三特征值;
第二随机数生成模块,用于生成第二数据;
第二特征值生成模块,用于采用第一预设处理方法对所述第一数据、第二数据及所述第二存储模块存储的秘密进行处理生成第一特征值,采用第二预设处理方法对所述第一数据、第二数据及所述第二存储模块存储的秘密进行处理生成第四特征值;
验证模块,用于验证所述第二特征值生成模块生成的第四特征值与所述第三接收模块接收到的第三特征值;
第二输出模块,用于输出所述第二随机数生成模块生成的第二数据及第二特征值生成模块生成的第一特征值;
所述第三终端包括:
第一存储模块,用于存储生成特征值的关联信息,所述关联信息包括生成特征值的秘密和预设处理方法;
第一接收模块,用于接收用户输入的第二终端提供给所述用户的所述第二终端第二随机数生成模块生成的第二数据,及所述用户输入的确认信息;
第一随机数生成模块,用于生成第一数据;
第一特征值生成模块,采用与所述第二终端第二特征值生成模块采用的第一预设处理方法相同的方法对所述第一数据、第二数据及所述第一存储模块存储的秘密进行处理生成第二特征值,在所述第一接收模块接收到用户比对第一特征值与第二特征值一致的确认信息后,采用与所述第二终端第二特征值生成模块采用的第二预设处理方法相同的方法对所述第一数据、第二数据及所述第一存储模块存储的秘密进行处理生成第三特征值;
第一输出模块,用于将所述第一特征值生成模块生成的第三特征值输出给所述用户;
所述第一终端包括:
第一发送模块,用于向第二终端发送所述用户输入的访问受保护资源的请求、用户名、所述第三终端第一随机数生成模块生成的第一数据及第一特征值生成模块生成的第三特征值;
第二接收模块,用于接收所述第二终端第二随机数生成模块生成的第二数据及所述第二终端第二特征值生成模块生成的第一特征值,并输出给所述用户。
一种安全访问受保护资源的系统,所述系统包括:第一终端、第二终端和第三终端;
所述第二终端包括:
存储模块,用于存储生成特征值的关联信息,所述关联信息包括:与用户名绑定的所述第三终端的秘密和预设处理方法;
接收模块,用于接收所述第一终端发送模块发送的访问受保护资源的请求、用户名及第五特征值;
随机数生成模块,用于生成第三数据;
特征值生成模块,用于采用第一预设处理方法对所述第一数据及所述第二终端存储模块存储的秘密进行处理生成第六特征值;
验证模块,用于验证所述第二终端特征值生成模块生成的第六特征值与所述第二终端接收模块接收到的第五特征值;
所述第三终端包括:
存储模块,用于存储生成特征值的关联信息,所述关联信息包括生成特征值的秘密和预设处理方法;
接收模块,用于接收用户输入的第二终端提供给所述用户的所述第二终端随机数生成模块生成的第三数据;
特征值生成模块,采用与所述第二终端第二特征值生成模块采用的第三预设处理方法相同的方法对所述第三数据及所述存储模块存储的秘密进行处理生成第五特征值;
输出模块,用于将所述特征值生成模块生成的第五特征值输出给所述用户;
所述第一终端包括:
发送模块,用于向第二终端发送所述用户输入的访问受保护资源的请求、用户名、所述第三终端特征值生成模块生成的第五特征值;
接收模块,用于接收所述第二终端随机数生成模块生成的第三数据,并输出给所述用户。
本发明所提供的方法和系统可以实现数字签名,并可以实现身份认证,防止了中间人钓鱼网站的攻击,在一定程度了网络中进行交易的安全性。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
本实施例提供了一种安全访问受保护资源的方法,参见图1,所述方法如下:
101、第二终端接收第一终端发送的访问受保护资源的请求,根据预设的算法生成第三数据并保存;
具体地,生成的第三数据可以是一个2到8位的随机数,但不局限于2到8位,也不局限于数字形式,还可以是字母、字母+数字等。
102、第二终端将生成的第三数据发送给第一终端,第一终端显示输出该第三数据;
103、第三终端对第三数据、特征因子及存储的秘密进行处理,生成第五特征值;
需要说明的是,在此之前,用户将第一终端显示输出的第三数据输入第三终端。
具体地,特征因子是第三终端获取的当前时间值或计数值。
具体地,1)、第三终端将第三数据、特征因子进行组合,生成中间值,其中,将第三数据及特征因子进行组合包括但不限于串行连接;2)、采用预设的密码算法根据存储的秘密对中间值进行加密,得到密文;3)、采用预设的截短方法对2)中计算得到的密文进行截短处理,得到第五特征值。
其中,预设的密码算法包括但不限于:SHA1、SHA256、SHA512;
其中,预设的截短方法包括但不限于:掩码压缩和自定义压缩中的至少一种。
具体地,本步骤还包括:第三终端生成第五特征值后更新特征因子。
104、第一终端将用户名及第五特征值发送给第二终端;
具体的,在此之前,用户将用户名及第三终端生成并显示的第五特征值输入到第一终端;
105、第二终端根据用户名查找第三终端的设备编号、秘密;
在本实施例中,第三终端具有唯一的编号,并且每个第三终端中都存储有秘密,该秘密为第三终端利用特征值算法生成特征值时所需的静态参数,每个第三终端中存储的秘密不重复,用户将用户名(例如,账号)和第三终端绑定后,第二终端上将会存储与用户账号对应的第三终端的编号和秘密,并存储有与第三终端相同的特征值算法,用以生成特征值;
第二终端根据用户名查找用户所持的第三终端的秘密包括:第二终端根据用户名查找与该用户的用户名绑定的第三终端的编号,根据第三终端的编号查找第三终端的秘密;
第二终端根据用户名查找用户所持的第三终端的秘密还可以为:在用户将第三终端与用户名绑定时,第二终端建立用户名与第三终端的秘密的对应关系,在第二终端查找秘密时,根据用户名直接就可以找到对应的第三终端的秘密。
106、第二终端根据第三数据、特征因子、查找得到的秘密生成第六特征值;
具体地,第二终端采用与第三终端生成第五特征值相同的算法生成第六特征值,此处就不再赘述。
本实施例中,第二终端按照与第三终端相同的方式更新特征因子,从而保证第三终端与第二终端同步。
无论是第三终端还是第二终端,更新特征因子均采用如下方式:
获取当前国际标准时间,将当前国际标准时间加或减指定值后的结果,作为更新后的时间因子,该指定的值可以根据需要进行设置及修改,如设置为30秒、60秒等等;
或者,获取当前计数值,将当前计数值加或减指定值后的结果,作为更新后的特征因子,该指定的值可以根据需要进行设置及修改,如设置为1次、2次等。
需要说明的是,当第三终端与第二终端均采用当前获取的时间值作为特征因子生成第五特征值或第六特征值时,第三终端与第二终端的时钟频率应当保持同步。
107、第二终端对比接收到的第五特征值是否与第六特征值一致,
如果一致,执行108;
如果不一致,执行109;
108、允许访问受保护资源;
109、拒绝访问受保护资源;
在本发明实施例中,当生成特征值时有当前计数值的参与时,需要对第二终端的特征因子进行修正,修正过程如下:
在生成特征值时将设备(第三终端或第二终端)生成特征值的次数作为特征因子,第一次生成特征值时特征因子为计数值1、第二次生成特征值时特征因子为计数值2,以此类推,每生成一次特征值计数值增加1,也可以为增加一个预设步长。由于第三终端和第二终端是单独计次的,而且,第三终端在每次生成特征值后,计数器就自增,第二终端则是在认证成功后,计数器才自增,很容易产生计数不一致的现象,因此需要对第二终端所存储的计数值进行修正;
设定在第三终端生成第五特征值时使用的特征因子为计数值218,此时在第二终端中保存的特征因子为计数值210,在第二终端计算第六特征值时设定计数值浮动范围为10,计算210作为特征因子对应的特征值,并将计数值逐渐增加到210+10,并同时进行第六特征值的计算,每计算出一个第六特征值,即与第五特征值进行比对,如不相同则增加计算值继续进行第六特征值的计算。由上可知,第二终端生成第六特征值时,分别以计数值210、211……219、220作为特征因子,生成一组最多11个特征值,第二终端将接收到的第五特征值与上述11个特征值进行比对,当第二终端以计数值218作为特征因子生成的特征值时比对成功,则认为第五特征值正确,并停止第六特征值的计算,这时还要对第二终端存储的计数值进行修正,将218作为正确的计数值,使得第三终端与第二终端的计数值保持同步,同时第二终端将计数值218增加1(或预定的步长)保存,作为下次计算特征值的特征因子,如果上述一组11个第一认证码中没有与第五特征值相同的,则认为第五特征值不正确。
当参与运算的特征因子是当前获取的时间值时,为了防止由于操作上的延时而导致第三终端进行了特征因子的更新,而不与第二终端中的特征因子同步,还可以提供一个容错的范围,具体如下:
第二终端用与第三终端生成第五特征值相同的方法生成多个第六特征值作为窗口,通过比对窗口内是否有与第五特征值相同的第六特征值来进行验证,如果窗口内有一个第六特征值与第五特征值相同,则验证成功,如果窗口了所有的第六特征值均与第五特征值不同,则验证失败;
相应地,当比对窗口内有与第五特征值相同的第六特征值时,第二终端将比对成功的第六特征值对应的特征因子作为当前的特征因子,按照与第三终端相同的方式更新该当前特征因子。
例如,在第三终端内部中每60秒产生一个6位的第五特征值,当前时间为“10:57:00”,生成的第五特征值为“708902”,则下一个第五特征值的生成时间是“10:58:00”。第二终端的当前时间为“10:57:00”,在该时间的基础上分别减少以及增加指定的值,如60秒,则得到其他6个特征因子“10:24:00”、“10:25:00”、“10:26:00”、“10:58:00”、“10:59:00”、“11:00:00”,第二终端根据当前特征因子和其他6个特征因子分别生成7个第六特征值,按照时间的顺序分别为:“718002”、“540065”、“540786”、“708902”、“005468”、“654009”、“075400”,第二终端将收到的第五特征值与该7个第六特征值进行对比,如果该第五特征值与上述7个第六特征值中的某一个特征值相同,则本次验证通过,允许访问,且根据当前匹配的特征值确定对应的特征因子,更新该特征因子,用于下次验证,如当前匹配的认证码是“708902”,对应的特征因子是“10:57:00”,则将其更新为“10:58:00”;如果7个第六特征值中没有与第五特征值相同的特征值,则本次验证失败,不允许访问。
需要说明的是,在计算特征值或认证码时,参与运算的除了必须的第三数据及秘密外,特征因子是可选的,参与运算的还可以包括其他可选项,如会话信息(会话信息等)、PIN码或PIN码哈希值等,参与运算的可选项是认证双方事先约定好的。
还需要说明的是,当第二终端产生的第三数据为待签名数据或待签名数据的哈希值时,上述基于特征值的访问流程还可以实现数字签名(明文签名)的功能,即第三终端将用于签名的第三数据运用于上面介绍的生成第五特征值的算法计算签名,即第五特征值,并发送签名给第二终端,第二终端采用上述所说的验证方法(生成第一认证码,对比第一认证码是否与第五特征值相同)对该签名进行验证,这样在实现对第一终端验证的同时,达到了数字签名的目的。
在实际运用中,上述实施例中的第三数据是由待签名数据或待签名数据的哈希值转换得到的。
实施例2
本实施例提供了一种安全访问受保护资源的方法,参见图2,所述方法如下:
201:第三终端生成第一数据并保存,其中,该第一数据具体为随机数;
需要说明的是,使第三终端生成随机数的方法有多种,例如,第三终端带有按键,用户第一次按下按键后,第三终端根据内置的算法生成一个随机数,其中,该随机数可以是一个2到8位数字的随机数,但不局限于2-8位,也不局限于数字形式,可以是字母、字母+数字等。
202:第一终端将第一数据、用户名、PIN码及访问受保护资源的请求发送给第二终端;
在此之前,用户将第三终端生成显示的第一数据、用户名及PIN码输入第一终端。
203:第二终端根据预设的算法生成第二数据,并保存该生成的第二数据;
其中,第二数据具体为随机数,该值可以是任意2到8位数字的随机数,但不限于2到8位,也不局限于数字形式,可以是字母、字母+数字等。
204、第二终端根据接收到的用户名查找第三终端的编号、秘密;
在本实施例中,第三终端具有唯一的编号,并且每个第三终端中都存储有秘密,该秘密为第三终端利用特征值算法生成特征值时所需的静态参数,每个第三终端中存储的秘密不重复,用户将用户名(例如,账号)和第三终端绑定后,第二终端上将会存储与用户账号对应的第三终端的编号和秘密,并存储有与第三终端相同的特征值算法,用以生成特征值;
第二终端根据用户名查找用户所持的第三终端的秘密包括:第二终端根据用户名查找与该用户的用户名绑定的第三终端的编号,根据第三终端的编号查找第三终端的秘密;
第二终端根据用户名查找用户所持的第三终端的秘密还可以为:在用户将第三终端与用户名绑定时,第二终端建立用户名与第三终端的秘密的对应关系,在第二终端查找秘密时,根据用户名直接就可以找到对应的第三终端的秘密。;
205、第二终端对秘密、第一数据、第二数据及PIN码进行处理,生成第一特征值,并保存该生成的第一特征值;
具体地:1)、第二终端将第一数据、第二数据、PIN码进行组合,生成中间值,其中,将第一数据、第二数据、PIN码进行组合包括但不限于串行连接;2)、根据预设的密码算法根据查找得到的秘密对中间值进行加密,得到密文;3)、采用预设的截短方法对2)中计算得到的密文进行截短处理,生成第一特征值;
其中,预设的密码算法包括但不限于:SHA1、SHA256、SHA256;
其中,预设的截短方法包括但限于:掩码压缩或自定义压缩中的至少一种。
206、第二终端将第一特征值及第二数据发送给第一终端,第一终端显示输出第一特征值及第二数据;
207、第三终端根据存储的秘密、第一数据、第二数据及PIN码生成第二特征值,并显示输出;
在此之前,用户将PIN码及第一终端显示输出的第二数据输入第三终端;
在本实施例中,第三终端在用户的第二次触发下生成第二特征值,生成第二特征值的特征值算法与步骤205中第二终端生成第一特征值的算法相同,此处就不再赘述;
208、用户将第三终端输出的第二特征值与第一终端显示的第一特征值进行对比,
如果相同,则认为第二终端是合法的,执行209;
如果不相同,则认为第二终端不合法,执行214;
209、第三终端根据存储的秘密、第二数据、第一数据及PIN码生成第三特征值,并显示输出;
在本实施例中,第三终端在用户的第三次触发下生成第三特征值;
具体地:1)、将第二数据、第一数据、PIN码进行组合,生成中间值,其中,将第二数据、第一数据、PIN码进行组合包括但不限于串行连接;2)、根据预设的密码算法根据存储的秘密对中间值进行加密,得到密文;3)、采用预设的截短方法对2)中计算得到的密文进行截短处理,生成第三特征值;
其中,预设的密码算法包括但不限于:SHA1、SHA256、SHA256;
其中,预设的截短方法包括但限于:掩码压缩或自定义压缩中的至少一种。
210、第一终端将第三特征值发送给第二终端;
在此之前,用户将第三终端生成的第三特征值输入到第一终端。
211、第二终端根据查找得到的秘密、第二数据、第一数据及PIN码生成第四特征值;
具体地,第二终端根据秘密、第二数据、第一数据及PIN码采用与第三终端生成第三特征值时相同的算法来生成第四特征值;
212、第二终端比较生成的第四特征值是否与接收到的第三特征值相同,
如果相同,则认为第一终端是合法的,执行213;
如果不相同,则认为第一终端不合法执行214;
213、允许访问受保护的资源;
214、拒绝访问受保护的资源。
需要说明的是,特征值生成时采用的参数中除了第一数据、第二数据、秘密外,其他的参数是可选项,例如实施例1中参中参与运算的特征因子、本实施例中的PIN码,可选的因子还可以包括第一及第二终端间的会话信息,如会话信息等,参与运算的可选项是事先预定好的。
需要说明的是,在生成第一特征值与第三特征值时,参与运算的第一数据与第二数据的组合方式是不同的;
需要说明是,当第二终端产生的第二数据为待签名数据或待签名数据的哈希值时,上述基于特征值的访问方法的流程还可以实现数字签名(明文签名)的功能,流程如下:第一终端向第二终端发送一个随机的第一数据,第二终端计算该第一数据的应答(即第一特征值),并和用于签名的第二数据发送到第一终端,第一终端首先会验证第二终端的应答(即第三终端是生成第二特征值,并比较是否与第一特征值相同),然后,计算该用于签名的随机数的签名(即生成第三特征值,),并发送给第二终端,第二终端对该签名进行验证(即生成第四特征值,并比较是否与第三特征值相同),这样在实现对第一终端身份认证的同时,达到了数字签名的目的。
在实际运用中,上述实施例中的随机数是由待签名数据或待签名数据的哈希值转换得来的。
实施例3
本实施例提供了一种安全访问受保护资源的系统,参见图3,该系统包括:第三终端301、第一终端302和第二终端303,其中,各设备功能如下:
第三终端301包括:
存储模块3011,用于存储生成特征值的关联信息,该关联信息包括生成特征值的秘密和预设处理方法;
其中,预设处理方法包括:预设密码算法和截短处理方法;
接收模块3012,用于接收用户输入的确认信息(例如,按键等部件)及第三数据,所述第三数据为随机数;
接收模块3012还用于接收用户输入的PIN码及第一终端与第二终端间的会话信息;
特征值生成模块3013,用于当接收模块3012接收到用户输入的确认信息后,根据接收模块3012接收到的第三数据、存储模块3011存储的秘密,采用存储模块3011存储的第三预设处理方法生成第五特征值;
具体地,特征值生成模块3013包括:
加密单元3013A,用于根据存储模块3011存储的秘密采用第三预设密码算法对接收模块3012接收到的第三数据进行加密处理;
生成单元3013B,用于对加密单元的加密结果采用第三预设截短处理方法进行截短处理,生成第五特征值。
输出模块3014,用于当接收模块3012接收到用户输入的确认信息后,输出特征值生成模块3013生成的第五特征值;
本实施例中的接收模块3012还可以接收用户输入的PIN码、会话信息等;
本实施例中的存储模块3011还可以存储生成特征值的次数;
第一终端302包括:发送模块3021,用于向所述第二终端发送用户输入的访问受保护资源的请求、用户名、第三终端特征值生成模块3013生成的特征值;
接收模块3022,用于接收第二终端随机数生成模块3033生成的第三数据,该第三数据为随机数,并输出给所述用户;
该第一终端302与第二终端303通过互联网连接,其上有输入装置和输出装置,输入装置用于接收用户输入的信息,并同网络将该信息发送给第二终端,该输入装置可以是键盘等;输入装置用于将从第二终端303接收的信息输出给用户,该输出装置可以是一个显示器,也可以是音频播放器等;
第二终端303包括:
存储模块3031,用于存储生成特征值的关联信息,该关联信息包括与用户名绑定的第三终端的秘密及预设处理方法;
其中,预设处理方法包括:预设密码算法和截短处理方法;
接收模块3032,用于接收第一终端302的发送模块3021发送的访问受保护资源的请求、用户名和第五特征值;
随机数生成模块3033,用于生成随机数,本实施例中为第三数据;
特征值生成模块3034,用于生成第六特征值;
具体地,特征值生成模块3034包括:查找单元3034A,用于根据接收模块3032接收到的用户名在存储模块3031中查找第三终端的秘密和预设处理方法;
加密单元3034B,用于根据查找单元3034A查找得到的第三终端301的秘密采用第三预设密码算法对随机数生成单元3033生成的第三数据进行加密处理;
生成单元3034C,用于对加密单元3034B的加密结果采用第三预设截短处理方法进行截短处理,生成第六特征值。
验证模块3035,用于验证特征值生成模块3034生成的第六特征值与接收模块3032接收到的第五特征值;
具体地,验证模块3035包括:比对单元3035A,用于比对特征值生成模块3034生成的第六特征值是否与接收到的第五特征值一致;
执行单元3035B,用于:当所述比对单元比对特征值生成模块3034生成的第六特征值与接收到的第五特征值的结果是一致的,则允许访问受保护资源;当特征值生成模块3034生成的第六特征值与接收到的第五特征值的结果不一致的,则拒绝访问受保护资源。
本实施例中,接收模块3032还用于第一终端302返回的PIN码、会话信息等;
输出模块3036,用于第二生成模块3034生成第三数据后,输出第三数据给第一终端302。
本实施例中,第三预设密码算法包括:指纹算法或加密用散列算法;
本实施例中,第三预设截短处理方法包括:掩码压缩或自定义压缩方法。
本实施例中,特征值生成模块3013和特征值生成模块3034在生成特征值时,还可以根据可选参数,包括:特征因子和/或PIN码和/或会话信息,来生成特征值,其中,特征因子包括:时间值或特征值生成次数,具体如实施例1中所述,此处就不再赘述;
具体地,将第三数据及可选参数进行组合,该组合包括但不限于串行连接;采用第三预设密码算法对组合后数据进行加密;采用第三预设截短处理方法将加密结果进行截短处理,得到特征值。
具体地,在可选参数包括特征因子时,第二终端303还包括,更新模块,用于在生成第六特征值后,对特征因子进行更新。
实施例4
本实施例提供了一种认证系统,参见图4,该系统包括:第三终端401、第一终端402和第二终端403,其中,各设备功能如下:
第三终端401包括:
存储模块4011,用于存储生成特征值的关联信息,该关联信息包括生成特征值的秘密和预设处理方法;
其中,预设处理方法包括:预设密码算法和截短处理方法;
接收模块4012,用于接收用户输入的确认信息(例如,按键等部件)及第二终端随机数生成模块4033生成的第二数据;
随机数生成模块4013,用于生成第一数据,该第一数据为随机数;
特征值生成模块4014,用于采用与所述第二终端特征值生成模块4033采用的第一预设处理方法相同的方法对第一数据、第二数据及存储模块4011存储的秘密进行处理生成第二特征值,在第一接收模块4012接收到用户的确认信息后,采用与第二终端特征值生成模块4033采用的第二预设处理方法相同的方法对第一数据、第二数据及存储模块4011存储的秘密进行处理生成第三特征值;
具体地,特征值生成模块4014包括:
组合单元4014A,用于将随机数生成模块4013生成的第一数据与接收模块4012接收到的第二数据进行串行连接;
加密单元4014B,用于根据存储模块4011存储的秘密采用第一预设密码算法对组合单元4014A的连接结果进行加密处理;
生成单元4014C,用于采用第一预设截短处理方法对所述加密单元4014B的加密结果进行处理,生成第二特征值。
和
组合单元4014A′,用于将第二数据及第一数据进行串行连接;
加密单元4014B′,用于根据存储模块4011存储的秘密采用第二预设密码算法对组合单元4014A′的连接结果进行加密处理;
生成单元4014C′,用于采用第二预设截短处理方法对加密单元4014B′的加密结果进行处理,生成第三特征值。
输出模块4015,用于当接收模块4012接收到用户输入确认信息后,输出第二特征值及第三特征值;其中,输出模块4015输出第二特征值后,用户对比第二特征值与第二终端生成的第一特征值是否一致,一致,确认第二终端合法;
本实施例中的接收模块4012还可以接收用户输入的PIN码、会话信息等;
第一终端402包括:
发送模块4021,用于向所述第二终端发送用户输入的访问受保护资源的请求、用户名、第三终端随机数生成模块4013生成的第一数据及特征值生成模块4014生成的第三特征值;
接收模块4022,用于接收所述第二终端随机数生成模块4033生成的第二数据及第二终端特征值生成模块4013生成的第一特征值,并输出给所述用户;
该第一终端402与第二终端403通过互联网连接,其上有输入装置和输出装置,输入装置用于接收用户输入的信息,并同网络将该信息发送给第二终端,该输入装置可以是键盘等;输入装置用于将从第二终端403接收的信息输出给用户,该输出装置可以是一个显示器,也可以是音频播放器等;
第二终端403包括:
存储模块4031,用于存储生成特征值的关联信息,该关联信息包括与用户名绑定的第三终端的秘密和预设处理方法;
接收模块4032,用于接收第一终端402发送模块4021发送的访问受保护资源的请求、用户名、第一数据和第三特征值;
随机数生成模块4033,用于生成随机数,本实例中,生成的随机数为第二数据;
特征值生成模块4034,用于当接收模块4032接收到第一数据后,采用第一预设处理方法对第一数据、第二数据及存储模块4031存储的秘密进行处理生成第一特征值;当接收模块4032接收到第三特征值时,采用第二预设处理方法对第一数据、第二数据及存储模块存储4013的秘密进行处理生成第四特征值;
具体地,特征值生成模块4034包括:
查找单元4034A,用于根据接收模块4032接收到的用户名在存储模块4031中查找第三终端401的秘密和预设处理方法;
组合单元4034B,用于将第一数据与第二数据进行串行连接;;
加密单元4034C,用于根据查找得到的秘密采用第一预设密码算法对组合单元4034B的连接结果进行加密处理;
生成单元4034D,用于采用第一预设截短处理方法对加密单元4034C的加密结果进行处理,生成第一特征值;
和
组合单元4034B′,用于将第二数据及第一数据进行串行连接;
加密单元4034C′,用于根据查找得到的秘密采用第二预设密码算法对组合单元4034B′的连接结果进行加密处理;
生成单元4034D′,用于采用第二预设截短处理方法对加密单元4034C′的加密结果进行处理,生成第四特征值。
验证模块4035,用于判断特征值生成模块4034生成的第四特征值是否与接收模块4032接收到的第三特征值一致,一致,认为第一终端合法;
具体地,验证模块4035包括:
比对单元4035A,用于比对特征值生成模块4034生成的第四特征值是否与接收到的第三特征值一致;
执行单元4035B,用于:当所述比对单元4035A比对特征值生成模块4034生成的第四特征值与接收到的第三特征值的结果是一致的,则允许访问受保护资源;当特征值生成模块4034生成的第四特征值与接收到的第三特征值的结果不一致的,则拒绝访问受保护资源。
输出模块4036,用于特征值生成模块4034生成第二数据、第一特征值后,输出第二数据、第一特征值给第一终端402;
本实施例中,接收模块4032还用于第一终端402返回的PIN码、会话信息等;
本实施例中,第一及第二预设密码算法包括:指纹算法或加密用散列算法;
本实施例中,第一及第二预设截短处理方法包括:掩码压缩或自定义压缩方法。
本实施例中,特征值生成模块4013和特征值生成模块4034在生成特征值时,还可以根据可选参数,包括:特征因子和/或PIN码和/或会话信息,来生成特征值,其中,特征因子包括:时间值或特征值生成次数;
具体地,将第一数据、第二数据及可选参数进行组合,该组合包括但不限于串行连接;采用预设密码算法对组合后数据进行加密;采用预设截短处理方法将加密结果进行截短处理,得到特征值,如实施例2中相应部分所述,此处就不再赘述。
具体地,在可选参数包括特征因子时,第二终端403还包括:更新模块,用于在生成第一及第四特征值后,对特征因子进行更新。
本发明实施例所提供的方法和系统可以实现数字签名,并可以实现身份认证,防止了中间人钓鱼网站的攻击,在一定程度了网络中进行交易的安全性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。