searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

一种高安全性的Web登录方法

2023-08-14 01:38:59
28
0

 

一种高安全性的Web登录方法

一. 概要

     随着互联网技术的不断成熟,用户通过Web浏览器或者手机App访问网页是当今互联网时代最频繁、最常见的应用场景。用户访问一个网页时往往需要先输入用户名和密码实现登录,然后才可以进行例如网上购物、业务办理等后续访问。Web服务器只有根据当前的登录请求中的登录信息和数据库中的用户信息做比较,才能确定用户身份,从而根据用户提供不同的资源和操作权限。

目前常见的Web技术会在用户输入用户名和密码成功登录之后,将用户信息标识内容加密然后返回到http响应报文中,浏览器会将这些用户身份信息存储在本地缓存中,比如最常见的http cookies技术等。当浏览器下次访问页面的时候自动带上这些身份信息,Web服务器解析到这些信息就可以确定访问者身份,从而实现登录之后的页面访问不再需要输入用户名和密码。

然而通过账号加密码登录返回用户身份信息这类登录方法会存在严重的安全隐患。首先Web服务器端用于对用户登录信息做统一加密使用的密钥长度有限,存在被暴力破解的可能;其次本地用户缓存信息能够被木马等程序获取,黑客可以通过木马获取缓存信息或者在传输过程中截获缓存信息,从而盗取用户信息实现对Web服务器进行访问;此外如果登录页面暴露在公网环境下时,极易遇到黑客通过暴力破解的方法获取登录密码。当前无数企业的Web系统面临上述的安全问题,一旦遭受攻击用户信息极易被盗取,攻击者利用盗取的信息登录企业系统之后,会造成不可估量的损失。

 

      有鉴于此,本发明实施例提供了一种Web登录方法以及设备,以解决目前Web登录中存在诸多安全性隐患的问题。本发明创新出一种更优化更安全功能更强大的登录方法以及,可以有效解决当前Web登录存在安全性隐患:1.Web服务器端的密钥存在被暴力破解的可能;2.登录成功之后的用户信息极易被黑客获取;3. Web系统容易被黑客通过暴力破解的方法获取登录密码。

 

二. 技术方案

为了达到以上目的,本发明采用如下技术方案:

一种高安全性的Web登录方法以及装置,包括:安全前置装置、用户登录装置以及高安全性的登录方法:

所述安全前置装置,不具备向客户提供业务服务的能力,只用于保护企业Web系统免于遭受DDOS攻击和暴力破解登录等行为,互联网流量首先进入安全前置装置,通过所有验证才会被转发到客户要访问的Web系统。

一种高安全性的安全前置装置包括配置模块、认证模块、日志模块、安全模块和路由模块。

首先通过认证模块进行来访流量认证。来访流量首先通过认证模块进行来访认证,如果认证不通过则直接丢弃来访数据。

步骤1:解析来访流量携带的认证信息与认证模块中的认证信息进行比较,完全匹配则视为认证通过, 把通过认证的数据标记为数据A。认证算法设计:特殊密钥字符串加以年月日日期为输入参数的hash运算结果。

步骤2:如果认证不通过则直接丢弃来访数据;

日志模块将通过认证的流量数据进行解析记录,从而可以得到所有访问数据的http包特诊数据:来访IP地址、来访http包的User-Agent等关键数据;以及每个url的统计数据,包括当前访问频率、历史最高频率。

安全模块根据配置模块配置的提供的配置数据,比如敏感级别等参数,对日志模块中的安全数据进行安全分析。如果当前访问行为属于攻击行为则直接拒绝来访;正常访问行为的数据则进入路由模块。

    安全分析策略包括并不限于以下策略:

步骤1:如果当前某一个来访IP的访问行为出现:访问频率大于配置上限值,则判定为攻击,拒绝访问,并把访问ip记录在攻击源数据库中。

步骤2:如果当前存在频繁访问不存在的url地址,则判定为攻击行为,则拒绝访问,并把访问ip记录在攻击源数据库中。

步骤3:http头部报文特征符合人为构造特征,判断属于攻击行为直接拒绝来访,并将该来访IP加入黑名单中。同时把该攻击行为的http报文中的特征数据记录在存储装置中以作为供判定攻击行为的特征数据库数据源。

路由模块根据路由规则将数据转发到用户登录装置上。从而用户登录装置最终接收到数据。路由装置只是配置网络可达路径,不做过多赘述。

所述用户登录装置,是当用户访问通过安全前置装置之后,用于让用户通过输入用户名和密码的方式接入企业Web系统,从而可以获取用户所需要的服务,并提供二次登录认证用于提高安全性。包括以下具体步骤:

步骤1:用户输入用户名和密码

用户输入系统颁发的唯一性的用户名,并输入自己制定的密码。

步骤2:用户拖动鼠标完成图形认证

通过用户拖动鼠标完成图形认证的速度和轨迹,判断是否处于安全的登录环境

步骤3:输入六位验证码完成手机短信码二次认证

用户点击接受验证码,系统会向用户注册的手机号发送六位随机码,随机码具有有效期。

步骤4:点击登录

如果所有信息无误,则进入企业Web系统,Web系统会颁发一个登录凭证,此凭证具备有效时长,在此时长内访问Web系统均无需再次输入用户名密码,只要浏览器访问Web服务器的http请求中带上此凭证即可完成安全认证;如果信息有误,则提示用户重新输入,如果连续错误达到规定阈值,则触发冻结用户账号,防止暴力破解用户密码。

安全前置装置和用户登录装置为用户提供一个高安全的登录外部登录环境,但是依旧无法彻底解决安全性的问题。比如:登录凭证用户无法确保安全保存,从而存在丢失的风险;用户可以根据凭证信息暴力破解从而获取服务器密钥从而完成用户权限提升等问题;用户鉴权信息在网络传输过程中,经过不安全的设备存在被盗的可能性。而本发明提供的高安全性的Web登录方法能解决这些问题。

针对上述的安全问题,本发明提供了一种高安全性的Web登录方法,具体方法步骤包括:

步骤1:用户第一次登录调用登录接口传递用户名、密码等认证信息。

服务器端根据用户名密码信息访问数据库进行校验,如果用户名、密码不匹配则返回鉴权失败。如果鉴权成功,从数据库获取用户id,用户名等信息生成一份鉴权信息,保存在Web系统的存储装置中。

步骤2:生成每次登录唯一性的登录加密密钥

不使用传统的固定密钥加密,存在被客户端暴力破解的可能。本发明使用以下方法解决这个问题:根据以下公式为每个用户生成每次登录都唯一的在不同登录环境下均不相同的随机密钥值。根据这个方法Web服务端不使用固定密钥来生成令牌,采用动态密钥的方式颁布动态,不同时间、使用不同的访问软件、不同的网络环境均会影响密钥值,大大降低了被暴力破解的可能性,从而解决了用户可以根据凭证信息暴力破解服务器密钥从而完成用户权限提升的安全问题。具体实现方法为:由用户唯一ID、当前登录时间戳、来访IP地址转化的字符串、用户登录http协议内容中的User-Agent值、固定长度随机生成的唯一值拼接生成当前用户登录密钥:

并在Web系统的存储装置中记录该值和值的映射关系:

步骤3:根据步骤2中生成的密钥和值为当前登录用户生成访问令牌和刷新令牌。

生成一个随机字符串记录为,将保存在存储装置中。利用步骤2中的密钥值进行加密运算,然后拼接值得到访问令牌和刷新令牌,并记录在存储装置中,生成公式如下:

步骤4:服务器段返回步骤3中得到的令牌返回给客户端

服务器端将步骤3中得到的访问令牌和刷新令牌存储在存储装置中并设置过期时间,访问令牌设置较短的过期时间,刷新令牌设置长过期时间。然后通过http响应返回给客户端。客户端浏览器将接收到的两个令牌缓存在本地。

步骤5:客户端携带步骤4中得到的令牌访问Web系统。

客户端浏览器携带访问令牌访问Web系统,Web服务器端根据携带上来的令牌值,截取末尾固定长度得到值,并在存储装置中查询密钥映射关系,从而根据值可以得到该用户当前登录所使用的密钥,如果查询不到有效的映射关系则拒绝当前访问;使用密钥解密访问令牌得到,从而可以通过查询存储装置得到客户信息,如果查询不到则拒绝当前访问。

步骤6:对步骤5中客户端携带的令牌做安全鉴权

解析根据固定长度得到登录时的来访地址IP、登录浏览器的User-Agent信息,并且和当前请求中的来访IP和User-Agent做比较,如果不匹配拒绝当前访问。这一步可以解决之前提到的访问令牌和刷新令牌可能被盗取的安全问题。如果两个Token均被盗,攻击者的来访IP和User-Agent会与登录时的信息发生变化,所以依旧可以判断出两个参数发现改变,从而拒绝请求。

至此完成访问鉴权的所有步骤,客户可以不再需要用户名和密码直接用令牌访问Web系统。

步骤7:访问令牌过期之后使用刷新令牌重新申请访问令牌

访问令牌因为设置的过期时间较短,有效期到期之后,需要使用刷新令牌去获取最新的访问令牌。正常的系统访问只能使用访问令牌,但是访问令牌只有较短的生命周期,即使被截获也很快就会失效,从而极大提高了安全性;刷新令牌拥有较长的生命周期,只有在请求令牌失效时候才会用来获取新的请求令牌。

 

三. 优缺点对比

本申请相对现有技术而言,所具有的优点和效果。

与现有技术相比,本发明的优势和效果是:

1)与传统的登录方式相比较,本发明提出的高安全性的Web登录方法以及装置,能够极大提高Web系统的安全性,保护企业系统信息不被泄露。

2)本发明通过提供一个安全的物理前置装置来抵挡黑客暴力破解登录密码和DDOS攻击,当被黑客攻陷时甚至可以关闭物理装置从而起到隔离攻击的作用,此安全前置装置不会影响影响到真实的企业Web系统。

3)本发明通过安全前置装置和登录装置可以极大提升用户登录环境的安全性,降低安全隐患。

4)本发明提出的安全登录方法,通过设置动态密钥来解决服务器登录密钥存在暴力破解的可能。并通过存储来访IP记录和动态令牌的方法,可以解决客户登录令牌在网络传输中被泄露、在使用本地电脑时被木马盗取的问题。

 

四. 实施方案

为了让本领域中的阅读人更好的理解本发明中的技术方案,下面结合附图和具体实施例,对本发明技术方案作进一步的阐述。很明显,本发明所阐述的实施例仅是本发明的一部分实施例,而不是唯一的实施例。

本申请实施例提供了一种高安全性的Web登录方法以及装置。本发明实施例提供的方法可以应用于任意需要的设置,例如服务器、终端等电子设备,在此不做具体限定,为方便描述,后续统称为设备。

本申请实施例提供了一种高安全性的Web登录方法以及装置,具体包括:安全前置装置、用户登录装置以及高安全性的登录方法。

根据本申请实施例的一方面,提供了一种安全前置装置。如图1所示一种高安全性的安全前置装置包括配置模块、认证模块、日志模块、安全模块和路由模块。

需要说明的是,所述安全前置装置不具备向客户提供业务服务的能力,只用于保护企业Web系统免于遭受DDOS攻击和暴力破解登录等行为,互联网流量首先进入安全前置装置,通过所有验证才会被转发到客户要访问的Web系统。图1为本申请实施例提供的一种安全前置装置的框图。

图2为本申请实施例提供的一种安全前置装置的工作流程图,包括以下具体步骤:

步骤S11:通过认证模块进行来访流量认证。

在本申请实施例中,来访流量首先通过认证模块进行来访认证,具体包括以下步骤A1-A2:

步骤A1,解析来访流量携带的认证信息与认证模块中的认证信息进行比较,完全匹配则视为认证通过, 把通过认证的数据标记为数据A。认证算法设计:特殊密钥字符串加以年月日日期为输入参数的hash运算结果。

步骤A2,如果认证不通过则直接丢弃来访数据;

步骤S12:将步骤S11中通过认证的流量数据A进行日志记录。

在本申请实施例中,日志模块将通过认证的流量数据进行解析记录,从而可以得到所有访问数据的http包特诊数据:来访IP地址、来访http包的User-Agent等关键数据;以及每个url的统计数据,包括当前访问频率、历史最高频率。

步骤S13:将步骤S12中得到的数据C进行安全分析。

在本申请实施例中,安全模块根据配置模块配置的提供的配置数据D,比如敏感级别等参数,对步骤S12中得到数据C进行安全分析,包括以下具体步骤:

步骤B1, 如果当前某一个来访IP的访问行为出现:访问频率大于配置上限值,则判定为攻击,拒绝访问,并把访问ip记录在攻击源数据库中。

步骤B2, 如果当前存在频繁访问不存在的url地址,则判定为攻击行为,则拒绝访问,并把访问ip记录在攻击源数据库中。

步骤B3, http头部报文特征符合人为构造特征,判断属于攻击行为直接拒绝来访,并将该来访IP加入黑名单中。同时把该攻击行为的http报文中的特征数据记录在存储装置中以作为供判定攻击行为的特征数据库数据源。

步骤S14:将步骤S13中得到的数据E进行路由转发。

将属于正常访问行为的数据则标记为数据E。

将步骤S13中得到的数据E通过路由模块,并根据配置的路由规则转发到用户登录装置上。从而用户登录装置最终接收到数据E。

本申请实施例提供了一种用户登录装置。图3为本申请实施例提供的一种用户装置的框图。如图3所示一种高安全性的用户登录装置包括登录模块、存储模块、业务模块。

需要说明的是,所述用户登录装置,当用户访问流量通过安全前置装置之后,用户通过登录模块通过输入用户名和密码的方式接入企业的业务模块,从而可以获取用户所需要的服务。用户登录装置用于提供完成用户登录的装置,并提供二次认证用于提高安全性。图4为本申请实施例提供的一种用户登录装置的工作流程图,包括以下具体步骤:

步骤S21:用户输入用户名和密码

用户输入系统颁发的唯一用户名,并输入自己的密码。

步骤S22:用户拖动鼠标完成图形认证

用户拖动鼠标进行图形认证,通过用户拖动鼠标完成图形认证的速度和轨迹,判断是否处于安全的登录环境

步骤S23:输入六位验证码完成手机短信码二次认证

用户点击接受验证码,Web系统会向用户注册的手机号发送六位随机码,随机码具有有效期。

步骤S24:点击登录

如果所有信息无误,点击登录则完成所有登录验证,成功进入企业Web系统。Web服务器会颁发一个登录凭证,此凭证具备有效时长,在此时长内访问Web系统均无需再次输入用户名密码,只要浏览器访问Web服务器的http请求中带上此凭证即可完成身份认证;如果信息有误,则提示用户重新输入,如果连续错误达到规定阈值,则冻结用户账号,防止暴力破解用户密码。

需要说明的是,安全前置装置和用户登录装置只是为用户提供一个高安全的登录外部登录环境,但是依旧无法彻底解决安全性的问题,比如:用户无法确保安全保存登录凭证,存在丢失和被盗的风险;用户可以根据凭证信息尝试程序暴力破解,从而破解服务器密钥完成用户权限提升等问题。而本申请实施例提供的高安全性的Web登录方法能解决这些问题。

本申请实施例提供了一种高安全性的Web登录方法,图5为本申请实施例提供的一种高安全性的Web登录方法流程图,具体方法包括以下步骤:

步骤S31:用户第一次登录调用登录接口传递用户名、密码等认证信息。服务器端根据用户名密码信息访问数据库进行校验,如果用户名、密码不匹配则返回鉴权失败。如果鉴权成功,从数据库获取用户id,用户名等信息生成一份鉴权信息,保存在Web系统的存储装置中。

步骤S32:生成每次登录唯一性的登录加密密钥

需要说明的是,传统的Web服务器使用固定的密钥,存在被暴力破解的可能,一旦被破解,黑客可以使用密钥随意生成登录令牌,后果不堪设想。

本申请实施例不使用传统固定密钥加密的方法,而采用动态密钥的方法,从而杜绝了密钥被客户端暴力破解的可能。具体实施步骤如下:

步骤C1:查询数据库获取用户唯一ID,标记为。

步骤C2:获取当前用户登录访问的时间戳,标记为。

步骤C3:生成一个36位长度唯一性随机字符串作为加盐值,标记为。

步骤C4:获取当前登录请求中http报文中的IP地址,标记为。

步骤C5:获取当前登录请求中http报文中的User-Agent地址,标记为。

步骤C6:根据以下公式为每次用户登录时生成一个唯一性的随机密钥。由用户唯一ID、当前登录时间戳、来访IP地址转化的字符串、用户登录http协议内容中的User-Agent值、固定长度随机生成的唯一值拼接生成当前用户登录密钥:

步骤C6:在Web系统的存储装置中记录该值和值的映射关系:

步骤S33:根据步骤S32中生成的密钥和值为当前登录用户生成访问令牌和刷新令牌,具体包括以下步骤:

步骤D1:生成一个固定长度的随机字符串,标记为

步骤D2:将该用户所有信息和保存在存储装置中。

步骤D3:利用步骤S32中的密钥值进行加密运算,然后拼接值得到访问令牌,公式如下:

步骤D4:利用步骤S32中的密钥值进行加密运算,然后拼接值得到刷新令牌,公式如下:

步骤S34:服务器段返回步骤S33中得到的令牌返回给客户端

服务器端将步骤S33中得到的访问令牌和刷新令牌存储在存储装置中并设置过期时间,访问令牌设置较短的过期时间,刷新令牌设置长过期时间。然后通过http响应返回给客户端。客户端浏览器将接收到的两个令牌缓存在本地。

步骤S35:客户端携带步骤S34中得到的令牌访问Web系统。

客户端浏览器携带访问令牌访问Web系统,具体包括以下步骤:

步骤E1:Web服务器根据携带上来的令牌值,截取末尾36位长度字符串得到值,并在存储装置中查询密钥映射关系,从而根据值可以得到该用户当前登录所使用的密钥,如果查询不到有效的映射关系则拒绝当前访问。

步骤E2:使用密钥解密访问令牌得到,从而通过查询存储装置可以得到客户信息,如果查询不到则拒绝当前访问。

步骤S36:对步骤S35中客户端携带的令牌做安全鉴权

步骤F1:解析根据固定长度得到登录时的来访地址IP、登录浏览器的User-Agent信息,并且和当前请求中的来访IP和User-Agent做比较,如果不匹配拒绝当前访问。

至此完成访问鉴权的所有步骤,客户可以不再需要用户名和密码直接使用访问令牌访问Web系统。

步骤S37:访问令牌过期之后使用刷新令牌重新申请访问令牌

访问令牌因为设置的过期时间较短,有效期到期之后,需要使用刷新令牌去获取最新的访问令牌。正常的系统访问只能使用访问令牌,但是访问令牌只有较短的生命周期,即使被截获也很快就会失效,从而极大提高了安全性;刷新令牌拥有较长的生命周期,只有在请求令牌失效时候才会用来获取新的请求令牌。

 

五.  发明人认为要保护的发明内容的技术要点

发明人可以分别列出若干项要求保护的技术关键内容,供

代理人撰写权利要求书时参考。

一种高安全性的Web登录方法以及装置,包括:安全前置装置、用户登录装置以及高安全性的登录方法:

所述安全前置装置,不具备向客户提供业务服务的能力,只用于保护企业Web系统免于遭受DDOS攻击和暴力破解登录等行为,互联网流量首先进入安全前置装置,通过所有验证才会被转发到客户要访问的Web系统。

一种高安全性的安全前置装置包括配置模块、认证模块、日志模块、安全模块和路由模块。

首先通过认证模块进行来访流量认证。来访流量首先通过认证模块进行来访认证,如果认证不通过则直接丢弃来访数据。

日志模块将通过认证的流量数据进行分析记录,从而可以得到访问数据的http包特诊、来访频率、来访IP地址等关键数据。

安全模块根据配置模块配置的提供的配置数据,比如敏感级别等参数,对日志模块中的安全数据进行安全分析。如果当前访问行为属于攻击行为则直接拒绝来访;正常访问行为的数据则进入路由模块。

路由模块根据路由规则将数据转发到用户登录装置上。从而用户登录装置最终接收到数据。

所述用户登录装置,是当用户访问通过安全前置装置之后,用于让用户通过输入用户名和密码的方式接入企业Web系统,从而可以获取用户所需要的服务,并提供二次登录认证用于提高安全性。包括以下具体步骤:

步骤1:用户输入用户名和密码

用户输入系统颁发的唯一性的用户名,并输入自己制定的密码。

步骤2:用户拖动鼠标完成图形认证

通过用户拖动鼠标完成图形认证的速度和轨迹,判断是否处于安全的登录环境

步骤3:输入六位验证码完成手机短信码二次认证

用户点击接受验证码,系统会向用户注册的手机号发送六位随机码,随机码具有有效期。

步骤4:点击登录

如果所有信息无误,则进入企业Web系统,Web系统会颁发一个登录凭证,此凭证具备有效时长,在此时长内访问Web系统均无需再次输入用户名密码,只要浏览器访问Web服务器的http请求中带上此凭证即可完成安全认证;如果信息有误,则提示用户重新输入,如果连续错误达到规定阈值,则触发冻结用户账号,防止暴力破解用户密码。

安全前置装置和用户登录装置为用户提供一个高安全的登录外部登录环境,但是依旧无法彻底解决安全性的问题,比如:登录凭证用户无法确保安全保存,从而存在丢失的风险;用户可以根据凭证信息暴力破解从而获取服务器密钥从而完成用户权限提升等问题。而本发明提供的高安全性的Web登录方法能解决这些问题。

本发明提供了一种高安全性的Web登录方法,具体方法步骤包括:

步骤1:用户第一次登录调用登录接口传递用户名、密码等认证信息。

服务器端根据用户名密码信息访问数据库进行校验,如果用户名、密码不匹配则返回鉴权失败。如果鉴权成功,从数据库获取用户id,用户名等信息生成一份鉴权信息,保存在Web系统的存储装置中。

步骤2:生成每次登录唯一性的登录加密密钥

不使用传统的固定密钥加密,存在被客户端暴力破解的可能。根据以下公式生成每个用户专用的每次登录均不相同的随机密钥。由用户唯一ID、当前登录时间戳、固定长度随机生成的唯一值拼接生成当前用户登录密钥:

并在Web系统的存储装置中记录该值和值的映射关系:

步骤3:根据步骤2中生成的密钥和值为当前登录用户生成访问令牌和刷新令牌。

生成一个随机字符串记录为,将该用户包括来访IP等所有信息和保存在存储装置中。利用步骤2中的密钥值进行加密运算,然后拼接值得到访问令牌和刷新令牌,生成公式如下:

步骤4:服务器段返回步骤3中得到的令牌返回给客户端

服务器端将步骤3中得到的访问令牌和刷新令牌存储在存储装置中并设置过期时间,访问令牌设置较短的过期时间,刷新令牌设置长过期时间。然后通过http响应返回给客户端。客户端浏览器将接收到的两个令牌缓存在本地。

步骤5:客户端携带步骤4中得到的令牌访问Web系统。

客户端浏览器携带访问令牌访问Web系统,Web服务器端根据携带上来的令牌值,截取末尾固定长度得到值,并在存储装置中查询密钥映射关系,从而根据值可以得到该用户当前登录所使用的密钥,如果查询不到有效的映射关系则拒绝当前访问;使用密钥解密访问令牌得到,从而可以通过查询存储装置得到客户信息,如果查询不到则拒绝当前访问;将当前请求中的来访IP和存储设备中记录的来访IP做比较,如果不匹配拒绝当前访问。至此完成访问鉴权的所有步骤,客户可以不再需要用户名和密码直接用令牌访问Web系统。

步骤6:访问令牌过期之后使用刷新令牌重新申请访问令牌

访问令牌因为设置的过期时间较短,有效期到期之后,需要使用刷新令牌去获取最新的访问令牌。正常的系统访问只能使用访问令牌,但是访问令牌只有较短的生命周期,即使被截获也很快就会失效,从而极大提高了安全性;刷新令牌拥有较长的生命周期,只有在请求令牌失效时候才会用来获取新的请求令牌。


0条评论
0 / 1000
s****n
1文章数
0粉丝数
s****n
1 文章 | 0 粉丝
s****n
1文章数
0粉丝数
s****n
1 文章 | 0 粉丝
原创

一种高安全性的Web登录方法

2023-08-14 01:38:59
28
0

 

一种高安全性的Web登录方法

一. 概要

     随着互联网技术的不断成熟,用户通过Web浏览器或者手机App访问网页是当今互联网时代最频繁、最常见的应用场景。用户访问一个网页时往往需要先输入用户名和密码实现登录,然后才可以进行例如网上购物、业务办理等后续访问。Web服务器只有根据当前的登录请求中的登录信息和数据库中的用户信息做比较,才能确定用户身份,从而根据用户提供不同的资源和操作权限。

目前常见的Web技术会在用户输入用户名和密码成功登录之后,将用户信息标识内容加密然后返回到http响应报文中,浏览器会将这些用户身份信息存储在本地缓存中,比如最常见的http cookies技术等。当浏览器下次访问页面的时候自动带上这些身份信息,Web服务器解析到这些信息就可以确定访问者身份,从而实现登录之后的页面访问不再需要输入用户名和密码。

然而通过账号加密码登录返回用户身份信息这类登录方法会存在严重的安全隐患。首先Web服务器端用于对用户登录信息做统一加密使用的密钥长度有限,存在被暴力破解的可能;其次本地用户缓存信息能够被木马等程序获取,黑客可以通过木马获取缓存信息或者在传输过程中截获缓存信息,从而盗取用户信息实现对Web服务器进行访问;此外如果登录页面暴露在公网环境下时,极易遇到黑客通过暴力破解的方法获取登录密码。当前无数企业的Web系统面临上述的安全问题,一旦遭受攻击用户信息极易被盗取,攻击者利用盗取的信息登录企业系统之后,会造成不可估量的损失。

 

      有鉴于此,本发明实施例提供了一种Web登录方法以及设备,以解决目前Web登录中存在诸多安全性隐患的问题。本发明创新出一种更优化更安全功能更强大的登录方法以及,可以有效解决当前Web登录存在安全性隐患:1.Web服务器端的密钥存在被暴力破解的可能;2.登录成功之后的用户信息极易被黑客获取;3. Web系统容易被黑客通过暴力破解的方法获取登录密码。

 

二. 技术方案

为了达到以上目的,本发明采用如下技术方案:

一种高安全性的Web登录方法以及装置,包括:安全前置装置、用户登录装置以及高安全性的登录方法:

所述安全前置装置,不具备向客户提供业务服务的能力,只用于保护企业Web系统免于遭受DDOS攻击和暴力破解登录等行为,互联网流量首先进入安全前置装置,通过所有验证才会被转发到客户要访问的Web系统。

一种高安全性的安全前置装置包括配置模块、认证模块、日志模块、安全模块和路由模块。

首先通过认证模块进行来访流量认证。来访流量首先通过认证模块进行来访认证,如果认证不通过则直接丢弃来访数据。

步骤1:解析来访流量携带的认证信息与认证模块中的认证信息进行比较,完全匹配则视为认证通过, 把通过认证的数据标记为数据A。认证算法设计:特殊密钥字符串加以年月日日期为输入参数的hash运算结果。

步骤2:如果认证不通过则直接丢弃来访数据;

日志模块将通过认证的流量数据进行解析记录,从而可以得到所有访问数据的http包特诊数据:来访IP地址、来访http包的User-Agent等关键数据;以及每个url的统计数据,包括当前访问频率、历史最高频率。

安全模块根据配置模块配置的提供的配置数据,比如敏感级别等参数,对日志模块中的安全数据进行安全分析。如果当前访问行为属于攻击行为则直接拒绝来访;正常访问行为的数据则进入路由模块。

    安全分析策略包括并不限于以下策略:

步骤1:如果当前某一个来访IP的访问行为出现:访问频率大于配置上限值,则判定为攻击,拒绝访问,并把访问ip记录在攻击源数据库中。

步骤2:如果当前存在频繁访问不存在的url地址,则判定为攻击行为,则拒绝访问,并把访问ip记录在攻击源数据库中。

步骤3:http头部报文特征符合人为构造特征,判断属于攻击行为直接拒绝来访,并将该来访IP加入黑名单中。同时把该攻击行为的http报文中的特征数据记录在存储装置中以作为供判定攻击行为的特征数据库数据源。

路由模块根据路由规则将数据转发到用户登录装置上。从而用户登录装置最终接收到数据。路由装置只是配置网络可达路径,不做过多赘述。

所述用户登录装置,是当用户访问通过安全前置装置之后,用于让用户通过输入用户名和密码的方式接入企业Web系统,从而可以获取用户所需要的服务,并提供二次登录认证用于提高安全性。包括以下具体步骤:

步骤1:用户输入用户名和密码

用户输入系统颁发的唯一性的用户名,并输入自己制定的密码。

步骤2:用户拖动鼠标完成图形认证

通过用户拖动鼠标完成图形认证的速度和轨迹,判断是否处于安全的登录环境

步骤3:输入六位验证码完成手机短信码二次认证

用户点击接受验证码,系统会向用户注册的手机号发送六位随机码,随机码具有有效期。

步骤4:点击登录

如果所有信息无误,则进入企业Web系统,Web系统会颁发一个登录凭证,此凭证具备有效时长,在此时长内访问Web系统均无需再次输入用户名密码,只要浏览器访问Web服务器的http请求中带上此凭证即可完成安全认证;如果信息有误,则提示用户重新输入,如果连续错误达到规定阈值,则触发冻结用户账号,防止暴力破解用户密码。

安全前置装置和用户登录装置为用户提供一个高安全的登录外部登录环境,但是依旧无法彻底解决安全性的问题。比如:登录凭证用户无法确保安全保存,从而存在丢失的风险;用户可以根据凭证信息暴力破解从而获取服务器密钥从而完成用户权限提升等问题;用户鉴权信息在网络传输过程中,经过不安全的设备存在被盗的可能性。而本发明提供的高安全性的Web登录方法能解决这些问题。

针对上述的安全问题,本发明提供了一种高安全性的Web登录方法,具体方法步骤包括:

步骤1:用户第一次登录调用登录接口传递用户名、密码等认证信息。

服务器端根据用户名密码信息访问数据库进行校验,如果用户名、密码不匹配则返回鉴权失败。如果鉴权成功,从数据库获取用户id,用户名等信息生成一份鉴权信息,保存在Web系统的存储装置中。

步骤2:生成每次登录唯一性的登录加密密钥

不使用传统的固定密钥加密,存在被客户端暴力破解的可能。本发明使用以下方法解决这个问题:根据以下公式为每个用户生成每次登录都唯一的在不同登录环境下均不相同的随机密钥值。根据这个方法Web服务端不使用固定密钥来生成令牌,采用动态密钥的方式颁布动态,不同时间、使用不同的访问软件、不同的网络环境均会影响密钥值,大大降低了被暴力破解的可能性,从而解决了用户可以根据凭证信息暴力破解服务器密钥从而完成用户权限提升的安全问题。具体实现方法为:由用户唯一ID、当前登录时间戳、来访IP地址转化的字符串、用户登录http协议内容中的User-Agent值、固定长度随机生成的唯一值拼接生成当前用户登录密钥:

并在Web系统的存储装置中记录该值和值的映射关系:

步骤3:根据步骤2中生成的密钥和值为当前登录用户生成访问令牌和刷新令牌。

生成一个随机字符串记录为,将保存在存储装置中。利用步骤2中的密钥值进行加密运算,然后拼接值得到访问令牌和刷新令牌,并记录在存储装置中,生成公式如下:

步骤4:服务器段返回步骤3中得到的令牌返回给客户端

服务器端将步骤3中得到的访问令牌和刷新令牌存储在存储装置中并设置过期时间,访问令牌设置较短的过期时间,刷新令牌设置长过期时间。然后通过http响应返回给客户端。客户端浏览器将接收到的两个令牌缓存在本地。

步骤5:客户端携带步骤4中得到的令牌访问Web系统。

客户端浏览器携带访问令牌访问Web系统,Web服务器端根据携带上来的令牌值,截取末尾固定长度得到值,并在存储装置中查询密钥映射关系,从而根据值可以得到该用户当前登录所使用的密钥,如果查询不到有效的映射关系则拒绝当前访问;使用密钥解密访问令牌得到,从而可以通过查询存储装置得到客户信息,如果查询不到则拒绝当前访问。

步骤6:对步骤5中客户端携带的令牌做安全鉴权

解析根据固定长度得到登录时的来访地址IP、登录浏览器的User-Agent信息,并且和当前请求中的来访IP和User-Agent做比较,如果不匹配拒绝当前访问。这一步可以解决之前提到的访问令牌和刷新令牌可能被盗取的安全问题。如果两个Token均被盗,攻击者的来访IP和User-Agent会与登录时的信息发生变化,所以依旧可以判断出两个参数发现改变,从而拒绝请求。

至此完成访问鉴权的所有步骤,客户可以不再需要用户名和密码直接用令牌访问Web系统。

步骤7:访问令牌过期之后使用刷新令牌重新申请访问令牌

访问令牌因为设置的过期时间较短,有效期到期之后,需要使用刷新令牌去获取最新的访问令牌。正常的系统访问只能使用访问令牌,但是访问令牌只有较短的生命周期,即使被截获也很快就会失效,从而极大提高了安全性;刷新令牌拥有较长的生命周期,只有在请求令牌失效时候才会用来获取新的请求令牌。

 

三. 优缺点对比

本申请相对现有技术而言,所具有的优点和效果。

与现有技术相比,本发明的优势和效果是:

1)与传统的登录方式相比较,本发明提出的高安全性的Web登录方法以及装置,能够极大提高Web系统的安全性,保护企业系统信息不被泄露。

2)本发明通过提供一个安全的物理前置装置来抵挡黑客暴力破解登录密码和DDOS攻击,当被黑客攻陷时甚至可以关闭物理装置从而起到隔离攻击的作用,此安全前置装置不会影响影响到真实的企业Web系统。

3)本发明通过安全前置装置和登录装置可以极大提升用户登录环境的安全性,降低安全隐患。

4)本发明提出的安全登录方法,通过设置动态密钥来解决服务器登录密钥存在暴力破解的可能。并通过存储来访IP记录和动态令牌的方法,可以解决客户登录令牌在网络传输中被泄露、在使用本地电脑时被木马盗取的问题。

 

四. 实施方案

为了让本领域中的阅读人更好的理解本发明中的技术方案,下面结合附图和具体实施例,对本发明技术方案作进一步的阐述。很明显,本发明所阐述的实施例仅是本发明的一部分实施例,而不是唯一的实施例。

本申请实施例提供了一种高安全性的Web登录方法以及装置。本发明实施例提供的方法可以应用于任意需要的设置,例如服务器、终端等电子设备,在此不做具体限定,为方便描述,后续统称为设备。

本申请实施例提供了一种高安全性的Web登录方法以及装置,具体包括:安全前置装置、用户登录装置以及高安全性的登录方法。

根据本申请实施例的一方面,提供了一种安全前置装置。如图1所示一种高安全性的安全前置装置包括配置模块、认证模块、日志模块、安全模块和路由模块。

需要说明的是,所述安全前置装置不具备向客户提供业务服务的能力,只用于保护企业Web系统免于遭受DDOS攻击和暴力破解登录等行为,互联网流量首先进入安全前置装置,通过所有验证才会被转发到客户要访问的Web系统。图1为本申请实施例提供的一种安全前置装置的框图。

图2为本申请实施例提供的一种安全前置装置的工作流程图,包括以下具体步骤:

步骤S11:通过认证模块进行来访流量认证。

在本申请实施例中,来访流量首先通过认证模块进行来访认证,具体包括以下步骤A1-A2:

步骤A1,解析来访流量携带的认证信息与认证模块中的认证信息进行比较,完全匹配则视为认证通过, 把通过认证的数据标记为数据A。认证算法设计:特殊密钥字符串加以年月日日期为输入参数的hash运算结果。

步骤A2,如果认证不通过则直接丢弃来访数据;

步骤S12:将步骤S11中通过认证的流量数据A进行日志记录。

在本申请实施例中,日志模块将通过认证的流量数据进行解析记录,从而可以得到所有访问数据的http包特诊数据:来访IP地址、来访http包的User-Agent等关键数据;以及每个url的统计数据,包括当前访问频率、历史最高频率。

步骤S13:将步骤S12中得到的数据C进行安全分析。

在本申请实施例中,安全模块根据配置模块配置的提供的配置数据D,比如敏感级别等参数,对步骤S12中得到数据C进行安全分析,包括以下具体步骤:

步骤B1, 如果当前某一个来访IP的访问行为出现:访问频率大于配置上限值,则判定为攻击,拒绝访问,并把访问ip记录在攻击源数据库中。

步骤B2, 如果当前存在频繁访问不存在的url地址,则判定为攻击行为,则拒绝访问,并把访问ip记录在攻击源数据库中。

步骤B3, http头部报文特征符合人为构造特征,判断属于攻击行为直接拒绝来访,并将该来访IP加入黑名单中。同时把该攻击行为的http报文中的特征数据记录在存储装置中以作为供判定攻击行为的特征数据库数据源。

步骤S14:将步骤S13中得到的数据E进行路由转发。

将属于正常访问行为的数据则标记为数据E。

将步骤S13中得到的数据E通过路由模块,并根据配置的路由规则转发到用户登录装置上。从而用户登录装置最终接收到数据E。

本申请实施例提供了一种用户登录装置。图3为本申请实施例提供的一种用户装置的框图。如图3所示一种高安全性的用户登录装置包括登录模块、存储模块、业务模块。

需要说明的是,所述用户登录装置,当用户访问流量通过安全前置装置之后,用户通过登录模块通过输入用户名和密码的方式接入企业的业务模块,从而可以获取用户所需要的服务。用户登录装置用于提供完成用户登录的装置,并提供二次认证用于提高安全性。图4为本申请实施例提供的一种用户登录装置的工作流程图,包括以下具体步骤:

步骤S21:用户输入用户名和密码

用户输入系统颁发的唯一用户名,并输入自己的密码。

步骤S22:用户拖动鼠标完成图形认证

用户拖动鼠标进行图形认证,通过用户拖动鼠标完成图形认证的速度和轨迹,判断是否处于安全的登录环境

步骤S23:输入六位验证码完成手机短信码二次认证

用户点击接受验证码,Web系统会向用户注册的手机号发送六位随机码,随机码具有有效期。

步骤S24:点击登录

如果所有信息无误,点击登录则完成所有登录验证,成功进入企业Web系统。Web服务器会颁发一个登录凭证,此凭证具备有效时长,在此时长内访问Web系统均无需再次输入用户名密码,只要浏览器访问Web服务器的http请求中带上此凭证即可完成身份认证;如果信息有误,则提示用户重新输入,如果连续错误达到规定阈值,则冻结用户账号,防止暴力破解用户密码。

需要说明的是,安全前置装置和用户登录装置只是为用户提供一个高安全的登录外部登录环境,但是依旧无法彻底解决安全性的问题,比如:用户无法确保安全保存登录凭证,存在丢失和被盗的风险;用户可以根据凭证信息尝试程序暴力破解,从而破解服务器密钥完成用户权限提升等问题。而本申请实施例提供的高安全性的Web登录方法能解决这些问题。

本申请实施例提供了一种高安全性的Web登录方法,图5为本申请实施例提供的一种高安全性的Web登录方法流程图,具体方法包括以下步骤:

步骤S31:用户第一次登录调用登录接口传递用户名、密码等认证信息。服务器端根据用户名密码信息访问数据库进行校验,如果用户名、密码不匹配则返回鉴权失败。如果鉴权成功,从数据库获取用户id,用户名等信息生成一份鉴权信息,保存在Web系统的存储装置中。

步骤S32:生成每次登录唯一性的登录加密密钥

需要说明的是,传统的Web服务器使用固定的密钥,存在被暴力破解的可能,一旦被破解,黑客可以使用密钥随意生成登录令牌,后果不堪设想。

本申请实施例不使用传统固定密钥加密的方法,而采用动态密钥的方法,从而杜绝了密钥被客户端暴力破解的可能。具体实施步骤如下:

步骤C1:查询数据库获取用户唯一ID,标记为。

步骤C2:获取当前用户登录访问的时间戳,标记为。

步骤C3:生成一个36位长度唯一性随机字符串作为加盐值,标记为。

步骤C4:获取当前登录请求中http报文中的IP地址,标记为。

步骤C5:获取当前登录请求中http报文中的User-Agent地址,标记为。

步骤C6:根据以下公式为每次用户登录时生成一个唯一性的随机密钥。由用户唯一ID、当前登录时间戳、来访IP地址转化的字符串、用户登录http协议内容中的User-Agent值、固定长度随机生成的唯一值拼接生成当前用户登录密钥:

步骤C6:在Web系统的存储装置中记录该值和值的映射关系:

步骤S33:根据步骤S32中生成的密钥和值为当前登录用户生成访问令牌和刷新令牌,具体包括以下步骤:

步骤D1:生成一个固定长度的随机字符串,标记为

步骤D2:将该用户所有信息和保存在存储装置中。

步骤D3:利用步骤S32中的密钥值进行加密运算,然后拼接值得到访问令牌,公式如下:

步骤D4:利用步骤S32中的密钥值进行加密运算,然后拼接值得到刷新令牌,公式如下:

步骤S34:服务器段返回步骤S33中得到的令牌返回给客户端

服务器端将步骤S33中得到的访问令牌和刷新令牌存储在存储装置中并设置过期时间,访问令牌设置较短的过期时间,刷新令牌设置长过期时间。然后通过http响应返回给客户端。客户端浏览器将接收到的两个令牌缓存在本地。

步骤S35:客户端携带步骤S34中得到的令牌访问Web系统。

客户端浏览器携带访问令牌访问Web系统,具体包括以下步骤:

步骤E1:Web服务器根据携带上来的令牌值,截取末尾36位长度字符串得到值,并在存储装置中查询密钥映射关系,从而根据值可以得到该用户当前登录所使用的密钥,如果查询不到有效的映射关系则拒绝当前访问。

步骤E2:使用密钥解密访问令牌得到,从而通过查询存储装置可以得到客户信息,如果查询不到则拒绝当前访问。

步骤S36:对步骤S35中客户端携带的令牌做安全鉴权

步骤F1:解析根据固定长度得到登录时的来访地址IP、登录浏览器的User-Agent信息,并且和当前请求中的来访IP和User-Agent做比较,如果不匹配拒绝当前访问。

至此完成访问鉴权的所有步骤,客户可以不再需要用户名和密码直接使用访问令牌访问Web系统。

步骤S37:访问令牌过期之后使用刷新令牌重新申请访问令牌

访问令牌因为设置的过期时间较短,有效期到期之后,需要使用刷新令牌去获取最新的访问令牌。正常的系统访问只能使用访问令牌,但是访问令牌只有较短的生命周期,即使被截获也很快就会失效,从而极大提高了安全性;刷新令牌拥有较长的生命周期,只有在请求令牌失效时候才会用来获取新的请求令牌。

 

五.  发明人认为要保护的发明内容的技术要点

发明人可以分别列出若干项要求保护的技术关键内容,供

代理人撰写权利要求书时参考。

一种高安全性的Web登录方法以及装置,包括:安全前置装置、用户登录装置以及高安全性的登录方法:

所述安全前置装置,不具备向客户提供业务服务的能力,只用于保护企业Web系统免于遭受DDOS攻击和暴力破解登录等行为,互联网流量首先进入安全前置装置,通过所有验证才会被转发到客户要访问的Web系统。

一种高安全性的安全前置装置包括配置模块、认证模块、日志模块、安全模块和路由模块。

首先通过认证模块进行来访流量认证。来访流量首先通过认证模块进行来访认证,如果认证不通过则直接丢弃来访数据。

日志模块将通过认证的流量数据进行分析记录,从而可以得到访问数据的http包特诊、来访频率、来访IP地址等关键数据。

安全模块根据配置模块配置的提供的配置数据,比如敏感级别等参数,对日志模块中的安全数据进行安全分析。如果当前访问行为属于攻击行为则直接拒绝来访;正常访问行为的数据则进入路由模块。

路由模块根据路由规则将数据转发到用户登录装置上。从而用户登录装置最终接收到数据。

所述用户登录装置,是当用户访问通过安全前置装置之后,用于让用户通过输入用户名和密码的方式接入企业Web系统,从而可以获取用户所需要的服务,并提供二次登录认证用于提高安全性。包括以下具体步骤:

步骤1:用户输入用户名和密码

用户输入系统颁发的唯一性的用户名,并输入自己制定的密码。

步骤2:用户拖动鼠标完成图形认证

通过用户拖动鼠标完成图形认证的速度和轨迹,判断是否处于安全的登录环境

步骤3:输入六位验证码完成手机短信码二次认证

用户点击接受验证码,系统会向用户注册的手机号发送六位随机码,随机码具有有效期。

步骤4:点击登录

如果所有信息无误,则进入企业Web系统,Web系统会颁发一个登录凭证,此凭证具备有效时长,在此时长内访问Web系统均无需再次输入用户名密码,只要浏览器访问Web服务器的http请求中带上此凭证即可完成安全认证;如果信息有误,则提示用户重新输入,如果连续错误达到规定阈值,则触发冻结用户账号,防止暴力破解用户密码。

安全前置装置和用户登录装置为用户提供一个高安全的登录外部登录环境,但是依旧无法彻底解决安全性的问题,比如:登录凭证用户无法确保安全保存,从而存在丢失的风险;用户可以根据凭证信息暴力破解从而获取服务器密钥从而完成用户权限提升等问题。而本发明提供的高安全性的Web登录方法能解决这些问题。

本发明提供了一种高安全性的Web登录方法,具体方法步骤包括:

步骤1:用户第一次登录调用登录接口传递用户名、密码等认证信息。

服务器端根据用户名密码信息访问数据库进行校验,如果用户名、密码不匹配则返回鉴权失败。如果鉴权成功,从数据库获取用户id,用户名等信息生成一份鉴权信息,保存在Web系统的存储装置中。

步骤2:生成每次登录唯一性的登录加密密钥

不使用传统的固定密钥加密,存在被客户端暴力破解的可能。根据以下公式生成每个用户专用的每次登录均不相同的随机密钥。由用户唯一ID、当前登录时间戳、固定长度随机生成的唯一值拼接生成当前用户登录密钥:

并在Web系统的存储装置中记录该值和值的映射关系:

步骤3:根据步骤2中生成的密钥和值为当前登录用户生成访问令牌和刷新令牌。

生成一个随机字符串记录为,将该用户包括来访IP等所有信息和保存在存储装置中。利用步骤2中的密钥值进行加密运算,然后拼接值得到访问令牌和刷新令牌,生成公式如下:

步骤4:服务器段返回步骤3中得到的令牌返回给客户端

服务器端将步骤3中得到的访问令牌和刷新令牌存储在存储装置中并设置过期时间,访问令牌设置较短的过期时间,刷新令牌设置长过期时间。然后通过http响应返回给客户端。客户端浏览器将接收到的两个令牌缓存在本地。

步骤5:客户端携带步骤4中得到的令牌访问Web系统。

客户端浏览器携带访问令牌访问Web系统,Web服务器端根据携带上来的令牌值,截取末尾固定长度得到值,并在存储装置中查询密钥映射关系,从而根据值可以得到该用户当前登录所使用的密钥,如果查询不到有效的映射关系则拒绝当前访问;使用密钥解密访问令牌得到,从而可以通过查询存储装置得到客户信息,如果查询不到则拒绝当前访问;将当前请求中的来访IP和存储设备中记录的来访IP做比较,如果不匹配拒绝当前访问。至此完成访问鉴权的所有步骤,客户可以不再需要用户名和密码直接用令牌访问Web系统。

步骤6:访问令牌过期之后使用刷新令牌重新申请访问令牌

访问令牌因为设置的过期时间较短,有效期到期之后,需要使用刷新令牌去获取最新的访问令牌。正常的系统访问只能使用访问令牌,但是访问令牌只有较短的生命周期,即使被截获也很快就会失效,从而极大提高了安全性;刷新令牌拥有较长的生命周期,只有在请求令牌失效时候才会用来获取新的请求令牌。


文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0