一种基于HTTP协议的安全认证方法及系统与流程

文档序号:16887751发布日期:2019-02-15 22:47阅读:176来源:国知局
一种基于HTTP协议的安全认证方法及系统与流程

本发明涉及安全认证方法领域,尤其涉及一种基于http协议的安全认证方法及系统。



背景技术:

在一些特殊场合下需要使用http协议实现安全登录验证,目前基于http协议下的认证方式有基本认证和摘要认证,基本认证方式传输的密码非常容易被破解,即使密码经过加密也无法防止重放认证,而摘要认证已经出现了许多攻击方法,特别是针对web应用服务器漏洞进行的摘要认证攻击。故目前使用http协议进行安全认证的方法,其安全性无法保证。



技术实现要素:

本发明为了解决上述技术问题提供一种基于http协议的安全认证方法。

本发明解决上述技术问题的技术方案如下:一种基于http协议的安全认证方法,包括:

步骤1,接收客户端发送的http协议请求,根据所述http协议请求生成session和认证页面。

步骤2,从预设置的密码算法列表中随机选择一个密码算法,使用动态混淆器将所述密码算法打乱,得到打乱后的密码算法,并将所述打乱后的密码算法保存至所述session中;再获取唯一随机码,并将所述唯一随机码保存至所述session中。

步骤3,将所述打乱后的密码算法、所述唯一随机码以及所述认证页面发送至所述客户端;所述认证页面用于接收用户输入的用户名和第一用户密码,所述打乱后的密码算法和所述唯一随机码用于对所述第一用户密码进行加密以得到第一加密密码。

步骤4,根据从所述客户端接收的所述用户名从web应用服务器的数据库中取出第二用户密码,并通过所述session中的所述打乱后的密码算法和所述唯一随机码对所述第二用户密码进行加密,得到第二加密密码;

步骤5,验证所述第一加密密码和所述第二加密密码是否一致,若一致,则验证通过;若不一致,则验证失败。

本发明的有益效果是:在用户进行安全认证时,通过在服务器中预存的密码算法列表随机中选择密码算法并将其密码算法打乱后结合唯一随机码对用户密码进行加密,使得用户每次访问服务器时都能定制得到不同的且不可逆的加密密码,增加了密码破译难度,可有效防止密码破解和重放认证,保证认证的安全性。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,所述步骤3具体包括:

步骤3.1,将所述打乱后的密码算法、所述唯一随机码以及所述认证页面发送至所述客户端,其中,所述认证页面用于接收用户输入的用户名和第一用户密码。

步骤3.2,将所述第一用户密码和所述唯一随机码通过预设的混合方式进行混合,得到混合数据。

步骤3.3,通过所述打乱的密码算法对所述混合数据进行加密,得到所述第一加密密码。

采用上述进一步方案的有益效果是,通过预设混合方式对第一用户密码和唯一随机码进行混合,使得每次加密后的数据不相同,解决了重放认证的问题。

进一步,所述混合方式包括直接拼接、相加、相交替和转换中的一种或多种。

采用上述进一步方案的有益效果是,通过采用可采用不同的混合方式可进一步提高了混合数据的复杂程度,以避免重放认证的问题。

进一步,所述额基于http协议的安全认证方法还包括:

步骤6,在验证完成后,删除所述session中的所述打乱后的密码算法和所述唯一随机码。

采用上述进一步方案的有益效果是,在验证完成后删除该次制定的密码算法和唯一随机码,以便下次加密时重新制定新的密码算法和唯一随机码,保证每次加密都不可逆,有效避免了常规的密码破解方法。

进一步,所述密码算法列表包括md5、sha1、sha256和sm3。

采用上述进一步方案的有益效果是,通过在密码算法列表中设定md5、sha1、sha256、sm3等多种不可逆密码算法以定制非标准的密码算法库,进一步增加解密难度。

本发明为了解决上述技术问题还提供一种基于http协议的安全认证系统。

其技术方案如下:

一种基于http协议的安全认证系统,包括:

请求接收模块,用于接收客户端发送的http协议请求,根据所述http协议请求生成session和认证页面。

加密信息生成模块,用于从预设置的密码算法列表中随机选择一个密码算法,并使用动态混淆器将所述密码算法打乱,以得到打乱后的密码算法,且将所述打乱后的密码算法保存至所述session中;再获取唯一随机码,并将所述唯一随机码保存至所述session中。

第一加密模块,用于将所述打乱后的密码算法、所述唯一随机码以及所述认证页面发送至所述客户端;所述认证页面用于接收用户输入的用户名和第一用户密码,所述打乱后的密码算法和所述唯一随机码用于对所述第一用户密码进行加密以得到第一加密密码。

第二加密模块,用于根据从所述客户端接收的所述用户名从web应用服务器的数据库中取出第二用户密码,并通过所述session中的所述打乱后的密码算法和所述唯一随机码对所述第二用户密码进行加密,得到第二加密密码。

验证模块,用于验证所述第一加密密码和所述第二加密密码是否一致,若一致,则验证通过;若不一致,则验证失败。

进一步,第一加密模块还包括:

发送单元,用于将所述打乱后的密码算法、所述唯一随机码以及所述认证页面发送至所述客户端,其中,所述认证页面用于接收用户输入的用户名和第一用户密码。

混合单元,用于将所述第一用户密码和所述唯一随机码通过预设混合方式进行混合,得到混合数据。

加密单元,用于通过所述打乱的密码算法对所述混合数据进行加密,得到所述第一加密密码。

进一步,所述混合方式包括直接拼接、相加、相交替和转换中的一种或多种。

进一步,还包括:

删除模块,用于在验证完成后,删除所述session中的所述打乱后的密码算法和所述唯一随机码。

进一步,所述密码算法列表包括md5、sha1、sha256和sm3。

附图说明

图1为本发明的实施例的基于http协议的安全认证方法的方法流程图;

图2为本发明的实施例的基于http协议的安全认证系统的结构示意图;

图3为本发明的实施例的基于http协议的安全认证系统的数据传输示意图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

如图1所示,本发明实施例提供的一种基于http协议的安全认证方法,包括:

步骤1,接收客户端发送的http协议请求,根据所述http协议请求生成session和认证页面。

需要说明的是,在计算机中,尤其是在网络应用中,称为“会话控制”。session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的web页之间跳转时,存储在session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。

步骤2,从预设置的密码算法列表中随机选择一个密码算法,使用动态混淆器将所述密码算法打乱,得到打乱后的密码算法,并将所述打乱后的密码算法保存至所述session中;再获取唯一随机码,并将所述唯一随机码保存至所述session中。

需要说明的是,这里web应用服务器生成唯一的随机码,根据客户端访问生成的session保存生成的唯一随机码。其中,生成唯一随机码的方法可以是写代码产生随机的数字和字母组合,每产生1个去数据库查询该随机码是否已存在,如果已存在,则重新产生,直到不重复为止。也可以用其他唯一随机码生成方法,因为唯一随机码的生成方法为现有技术,故不在此赘述。

步骤3,将所述打乱后的密码算法、所述唯一随机码以及所述认证页面发送至所述客户端;所述认证页面用于接收用户输入的用户名和第一用户密码,所述打乱后的密码算法和所述唯一随机码用于对所述第一用户密码进行加密以得到第一加密密码。

步骤4,根据从所述客户端接收的所述用户名从web应用服务器的数据库中取出第二用户密码,并通过所述session中的所述打乱后的密码算法和所述唯一随机码对所述第二用户密码进行加密,得到第二加密密码;

步骤5,验证所述第一加密密码和所述第二加密密码是否一致,若一致,则验证通过;若不一致,则验证失败。

可选地,所述步骤3具体包括:

步骤3.1,将所述打乱后的密码算法、所述唯一随机码以及所述认证页面发送至所述客户端,其中,所述认证页面用于接收用户输入的用户名和第一用户密码。

步骤3.2,将所述第一用户密码和所述唯一随机码通过预设的混合方式进行混合,得到混合数据。

步骤3.3,通过所述打乱的密码算法对所述混合数据进行加密,得到所述第一加密密码。

可选地,所述混合方式包括直接拼接、相加、相交替和转换中的一种或多种。

在实际应用场景中,用户通过客户端向web应用服务器发送http的协议请求,请求web应用服务器的认真页面,其中,客户端可以是智能手机、平板电脑、个人电脑等。

web应用服务器在接收到用户的http的协议请求后,从web应用服务器的密码算法列表中随机选择密码算法,根据客户端访问生成的session保存使用的密码算法,并使用动态混淆器打乱该密码算法代码。

需要说明的是,动态混淆器为常用的用作保护代码、精简编译后程序大小的编辑工具,为现有技术,故不在此赘述。

同时,web应用服务器生成唯一的随机码,根据客户端访问生成的session保存生成的唯一随机码。然后,web应用服务器把打乱后的密码算法和生成的唯一随机码,随同认证页面一并返回给客户端。

用户在客户端接收到认证页面后,在认证页面上填写用户名和第一用户密码,客户端再根据唯一随机码和打乱后的密码算法对其第一用户密码进行加密,以得到第一加密密码,并将第一加密密码与用户名一并发送至web应用服务器。

web应用服务器在接收到第一加密密码与用户名后开始对其用户的身份信息进行认证。首先,根据用户名从web应用服务器的数据库中取得与该用户名对应的预先存储的第二用户密码,并通过session保存的唯一随机码和打乱的密码算法对该用户面进行加密,得到第二加密密码。

需要说明的是,若第一用户密码正确,则第一用户密码和第二用户密码完全一致。

然后,对其第一加密密码进行验证,具体地,将第一加密密码和第二加密密码做一致性比较,若一致,则验证通过,若不一致,则验证失败。

最后,无论验证成功还是验证失败,web应用服务器都将删除session保存的唯一随机码和打乱的密码算法,以便下次加密时重新制定新的密码算法和唯一随机码,保证每次加密都不可逆,有效避免了常规的密码破解方法。

有上述可知,本实施例的基于http协议的安全认证方法,适用于使用http协议实现安全登登录的验证,使用若干种混合数据方法和多种不可逆密码算法高度定制非标准的密码算法库,有效避免了常规的密码破解方法。混合唯一随机码与数据加密,使得每次加密后的数据不相同,解决了重复认证的问题。本发明使用动态混淆器打乱密码算法,每次的密码算法代码不一样,即使被监听截获,也难以读懂,结合不可逆密码算法的特点,大大提高了密码破解的难度。

如图2所示,本发明实施例提供的一种基于http协议的安全认证系统,包括:

请求接收模块,用于接收客户端发送的http协议请求,根据所述http协议请求生成session和认证页面。

加密信息生成模块,用于从预设置的密码算法列表中随机选择一个密码算法,并使用动态混淆器将所述密码算法打乱,以得到打乱后的密码算法,且将所述打乱后的密码算法保存至所述session中;再获取唯一随机码,并将所述唯一随机码保存至所述session中。

第一加密模块,用于将所述打乱后的密码算法、所述唯一随机码以及所述认证页面发送至所述客户端;所述认证页面用于接收用户输入的用户名和第一用户密码,所述打乱后的密码算法和所述唯一随机码用于对所述第一用户密码进行加密以得到第一加密密码。

第二加密模块,用于根据从所述客户端接收的所述用户名从web应用服务器的数据库中取出第二用户密码,并通过所述session中的所述打乱后的密码算法和所述唯一随机码对所述第二用户密码进行加密,得到第二加密密码。

验证模块,用于验证所述第一加密密码和所述第二加密密码是否一致,若一致,则验证通过;若不一致,则验证失败。

其安全认证系统工作时,数据传输情况如图3所示:

(1)客户端通过http协议请求web应用服务器的认证页面,并在所述web应用服务器中生成session。所述web应用服务器在预设置的密码算法列表中随机选择一个密码算法,并使用动态混淆器将所述密码算法打乱,以得到打乱后的密码算法,且将所述打乱后的密码算法保存至所述session中。所述web应用服务器还生成的唯一随机码,并将所述唯一随机码保存至所述session中。

(2)所述web应用服务器再将所述打乱后的密码算法、所述唯一随机码以及所述认证页面发送至客户端。

(3)所述客户端还通过所述认证页面接收用户输入的用户名和第一用户密码,并通过所述打乱后的密码算法和所述唯一随机码对所述第一用户密码进行加密以得到第一加密密码,且将所述第一加密密码和所述用户名发送至所述web应用服务器。

所述web应用服务器再根据所述用户名从所述数据库中的取出第二用户密码,并通过所述session中的所述打乱后的密码算法和所述唯一随机码对所述第二用户密码进行加密,得到第二加密密码。

所述web应用服务器再验证所述第一加密密码和第二加密密码是否一致,若一致,则验证通过;若不一致,则验证失败。

可选地,第一加密模块还包括:

发送单元,用于将所述打乱后的密码算法、所述唯一随机码以及所述认证页面发送至所述客户端,其中,所述认证页面用于接收用户输入的用户名和第一用户密码。

混合单元,用于将所述第一用户密码和所述唯一随机码通过预设混合方式进行混合,得到混合数据。

加密单元,用于通过所述打乱的密码算法对所述混合数据进行加密,得到所述第一加密密码。

可选地,所述混合方式包括直接拼接、相加、相交替和转换中的一种或多种。

可选地,所述混合方式包括直接拼接、相加、相交替和转换中的一种或多种。

可选地,还包括:

删除模块,用于在验证完成后,删除所述session中的所述打乱后的密码算法和所述唯一随机码。

可选地,所述密码算法列表包括md5、sha1、sha256和sm3。

需要说明的是,md5为消息摘要算法(message-digestalgorithm);sha1为安全哈希算法(securehashalgorithm);sha256为安全散列算法(securehashalgorithmsha)其算法;sm3为哈希函数算法,均为现有加密算法,故不在此赘述。

综上所述,基于http协议下使用表单认证方式,通过非标准的、高度定制化的加密方法,实现安全的认证机制,规避了基本认证和摘要认证所出现的各种攻击。由于高度定制、非标准的不可逆的密码算法库,随机选择密码算法库中算法对数据加密;客户端的定制密码算法库使用动态混淆器打乱代码,增加代码读懂难度;每次访问服务器均产生唯一随机码,客户端使用随机的密码算法对数据和唯一随机码进行不可逆加密,防止密码破解和重放认证。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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