一种基于浏览器插件的认证方法及***
技术领域
本申请涉及信息认证技术领域,特别涉及一种基于浏览器插件的认证方法及***。
背景技术
在防止***被非授权登录过程中,通常会要求用户输入自己的私钥、账号密码或使用手机、App验证码进行身份验证或身份再验证。
目前,现有技术中通常需要用户输入固定的口令或验证信息,攻击者可以通过截获验证凭据的方式进行身份伪造或进行中间人攻击。
为了解决上述问题,可以在传输层或其他业务逻辑层应用进一步的验证措施,以降低登录凭据被窃取或者出现中间人攻击的可能。然而,这些进一步的验证措施,会给用户带来繁复的动作,降低用户体验。
发明内容
本申请实施方式的目的在于提供一种基于浏览器插件的认证方法及***,能够在用户无感知的情况下完成信息的认证,以提高信息的安全性并且提高用户的体验。
为实现上述目的,本申请一方面提供一种基于浏览器插件的认证方法,提供有安装有指定插件的浏览器,所述方法包括:
当所述指定插件在所述浏览器中进行初始化配置时,录入用户信息和用户的签名密钥;
当通过所述浏览器访问目标站点时,获取所述浏览器向外发送的访问请求;
基于所述签名密钥生成签名信息,并将所述签名信息以及所述用户信息附着于所述访问请求上;
将附着了所述签名信息和所述用户信息的访问请求发送至所述目标站点的服务器处。
进一步地,当所述指定插件在所述浏览器中进行初始化配置时,所述方法还包括:
录入受保护的站点列表;
所述插件检测所述浏览器访问的当前站点,若所述当前站点处于所述受保护的站点列表中,通过所述浏览器的应用程序编程接口获取发往所述当前站点的访问请求。
进一步地,将所述签名信息以及所述用户信息附着于所述访问请求上包括:
将所述签名信息以及所述用户信息填充于所述访问请求中的用户自定义字段中。
进一步地,基于所述签名密钥生成签名信息包括:
按照指定加密算法,将所述签名密钥转换为由所述指定加密算法加密后的签名信息。
进一步地,所述方法还包括:
所述目标站点的服务器接收所述浏览器发来的访问请求,并从所述访问请求中提取所述用户信息和所述签名信息;
基于所述用户信息,从数据库中获取与所述用户信息相匹配的目标签名密钥;
按照所述指定加密算法对所述目标签名密钥进行加密,得到目标签名信息;
将所述目标签名信息与提取出的所述签名信息进行对比,并根据对比结果对所述访问请求进行处理。
进一步地,根据对比结果对所述访问请求进行处理包括:
当所述目标签名信息与提取出的所述签名信息一致时,允许所述浏览器访问所述目标站点;
当所述目标签名信息与提取出的所述签名信息不一致时,拒绝所述访问请求。
另一方面,本申请还提供一种基于浏览器插件的认证***,所述认证***中包括安装有指定插件的浏览器,所述认证***还包括:
信息录入单元,用于当所述指定插件在所述浏览器中进行初始化配置时,录入用户信息和用户的签名密钥;
访问请求获取单元,用于当通过所述浏览器访问目标站点时,获取所述浏览器向外发送的访问请求;
信息附着单元,用于基于所述签名密钥生成签名信息,并将所述签名信息以及所述用户信息附着于所述访问请求上;
访问请求发送单元,用于将附着了所述签名信息和所述用户信息的访问请求发送至所述目标站点的服务器处。
进一步地,所述***还包括:
站点列表录入单元,用于录入受保护的站点列表;
判断单元,用于控制所述插件检测所述浏览器访问的当前站点,若所述当前站点处于所述受保护的站点列表中,通过所述浏览器的应用程序编程接口获取发往所述当前站点的访问请求。
进一步地,所述信息附着单元包括:
加密模块,用于按照指定加密算法,将所述签名密钥转换为由所述指定加密算法加密后的签名信息。
进一步地,所述***还包括:
信息提取单元,用于控制所述目标站点的服务器接收所述浏览器发来的访问请求,并从所述访问请求中提取所述用户信息和所述签名信息;
信息匹配单元,用于基于所述用户信息,从数据库中获取与所述用户信息相匹配的目标签名密钥;
加密单元,用于按照所述指定加密算法对所述目标签名密钥进行加密,得到目标签名信息;
对比单元,用于将所述目标签名信息与提取出的所述签名信息进行对比,并根据对比结果对所述访问请求进行处理。
由上可见,本申请可以在浏览器中安装指定插件,在该指定插件进行初始化配置时可以预先录入用户的签名密钥。该指定插件可以检测浏览器即将访问的站点。当浏览器即将向站点的服务器发送访问请求时,可以拦截该访问请求,并在该访问请求中附加由所述签名密钥进行加密的签名信息。这样,在站点的服务器接收到访问请求时,可以从中提取出签名信息,并将本地存储的该用户的签名密钥进行加密后,与提取的签名信息进行对比,如果两者一致,说明访问请求是合法的,从而允许浏览器正常访问该站点。如果两者不一致,表明访问请求不合法,从而拒绝该访问请求。由上可见,用户不需要对访问请求进行额外的处理,在整个过程中用户都是无感知的,从而可以在提高用户体验的情况下提高信息的安全性。
参照后文的说明和附图,详细公开了本申请的特定实施方式,指明了本申请的原理可以被采用的方式。应该理解,本申请的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本申请的实施方式包括许多改变、修改和等同。
针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤或组件的存在或附加。
附图说明
所包括的附图用来提供对本申请实施方式的进一步的理解,其构成了说明书的一部分,用于例示本申请的实施方式,并与文字描述一起来阐释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本申请实施方式提供的一种基于浏览器插件的认证方法流程图;
图2为本申请另一个实施方式提供的一种基于浏览器插件的认证方法流程图;
图3为本申请实施方式提供的一种基于浏览器插件的认证***的功能模块图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施方式,都应当属于本申请保护的范围。
请参阅图1,本申请提供一种基于浏览器插件的认证方法,在应用本申请的技术方案时,用户需要在浏览器中按照指定插件。该指定插件可以是预先编辑的程序组件,当浏览器开始工作时,该指定插件便可以实现其功能。所述方法可以包括以下步骤。
S1:当所述指定插件在所述浏览器中进行初始化配置时,录入用户信息和用户的签名密钥;
S2:当通过所述浏览器访问目标站点时,获取所述浏览器向外发送的访问请求;
S3:基于所述签名密钥生成签名信息,并将所述签名信息以及所述用户信息附着于所述访问请求上;
S4:将附着了所述签名信息和所述用户信息的访问请求发送至所述目标站点的服务器处。
在本实施方式中,当所述指定插件在所述浏览器中进行初始化配置时,所述方法还包括:
录入受保护的站点列表;
所述插件检测所述浏览器访问的当前站点,若所述当前站点处于所述受保护的站点列表中,通过所述浏览器的应用程序编程接口获取发往所述当前站点的访问请求。
在本实施方式中,将所述签名信息以及所述用户信息附着于所述访问请求上包括:
将所述签名信息以及所述用户信息填充于所述访问请求中的用户自定义字段中。
在本实施方式中,基于所述签名密钥生成签名信息包括:
按照指定加密算法,将所述签名密钥转换为由所述指定加密算法加密后的签名信息。
在本实施方式中,所述方法还包括:
所述目标站点的服务器接收所述浏览器发来的访问请求,并从所述访问请求中提取所述用户信息和所述签名信息;
基于所述用户信息,从数据库中获取与所述用户信息相匹配的目标签名密钥;
按照所述指定加密算法对所述目标签名密钥进行加密,得到目标签名信息;
将所述目标签名信息与提取出的所述签名信息进行对比,并根据对比结果对所述访问请求进行处理。
在本实施方式中,根据对比结果对所述访问请求进行处理包括:
当所述目标签名信息与提取出的所述签名信息一致时,允许所述浏览器访问所述目标站点;
当所述目标签名信息与提取出的所述签名信息不一致时,拒绝所述访问请求。
在一个应用示例中,用户可以在浏览器中安装指定插件,当在浏览器中完成指定插件的初始化配置时,用户可以录入用户信息(例如用户名)、签名密钥(例如可以是用户自定义的一串字符串)、受保护的站点列表等。这样,在该浏览器访问受保护的站点列表中的站点时,便可以自动启动本申请的信息认证方法。需要说明的是,用户录入的用户信息和签名密钥等信息可以同步备份至受保护的站点的服务器中。
具体地,当指定插件检测到用户正在访问受保护的目标站点时,可以通过浏览器的API(Application Programming Interface,应用程序编程接口)获取浏览器即将向外发送的访问请求。当然,在实际应用中,也可以仅仅获取访问请求中的部分参数,本申请对此并不作限定。
在获取了访问请求之后,指定插件可以读取用户之前录入的签名密钥,并按照指定加密算法对该签名密钥进行加密,以保证信息的安全性。所述指定加密算法可以是DES、RSA、MD5等加密算法。在进行加密处理之后,可以得到签名信息。这样,指定插件可以将该签名信息以及该用户的用户信息附着于所述访问请求中。具体地,所述访问请求中可以具备用户自定义字段,这样,指定插件可以将该签名信息以及该用户的用户信息写入所述用户自定义字段中。在完成这些步骤之后,浏览器便可以将具备附加信息的访问请求发送至目标站点的服务器处。
请参阅图2,在服务器接收到浏览器发来的访问请求时,可以从该访问请求中提取用户信息和签名信息。此时,服务器可以进一步地判断提取出的签名信息是否合法。具体地,服务器可以根据提取出的用户信息,在本地的数据库中读取相匹配的签名密钥。然后可以用同样的指定加密算法对读取的签名密钥进行加密,从而得到目标签名信息。此时,可以将所述目标签名信息与从访问请求中提取出的所述签名信息进行对比,当所述目标签名信息与提取出的所述签名信息一致时,允许所述浏览器访问所述目标站点;当所述目标签名信息与提取出的所述签名信息不一致时,拒绝所述访问请求。同时,服务器的日志记录模块还可以对验证的结果进行记录。
由上可见,本申请可以在浏览器中安装指定插件,在该指定插件进行初始化配置时可以预先录入用户的签名密钥。该指定插件可以检测浏览器即将访问的站点。当浏览器即将向站点的服务器发送访问请求时,可以拦截该访问请求,并在该访问请求中附加由所述签名密钥进行加密的签名信息。这样,在站点的服务器接收到访问请求时,可以从中提取出签名信息,并将本地存储的该用户的签名密钥进行加密后,与提取的签名信息进行对比,如果两者一致,说明访问请求是合法的,从而允许浏览器正常访问该站点。如果两者不一致,表明访问请求不合法,从而拒绝该访问请求。由上可见,用户不需要对访问请求进行额外的处理,在整个过程中用户都是无感知的,从而可以在提高用户体验的情况下提高信息的安全性。
请参阅图3,本申请还提供一种基于浏览器插件的认证***,所述认证***中包括安装有指定插件的浏览器,所述认证***还包括:
信息录入单元100,用于当所述指定插件在所述浏览器中进行初始化配置时,录入用户信息和用户的签名密钥;
访问请求获取单元200,用于当通过所述浏览器访问目标站点时,获取所述浏览器向外发送的访问请求;
信息附着单元300,用于基于所述签名密钥生成签名信息,并将所述签名信息以及所述用户信息附着于所述访问请求上;
访问请求发送单元400,用于将附着了所述签名信息和所述用户信息的访问请求发送至所述目标站点的服务器处。
在本实施方式中,所述***还包括:
站点列表录入单元,用于录入受保护的站点列表;
判断单元,用于控制所述插件检测所述浏览器访问的当前站点,若所述当前站点处于所述受保护的站点列表中,通过所述浏览器的应用程序编程接口获取发往所述当前站点的访问请求。
在本实施方式中,所述信息附着单元包括:
加密模块,用于按照指定加密算法,将所述签名密钥转换为由所述指定加密算法加密后的签名信息。
在本实施方式中,所述***还包括:
信息提取单元,用于控制所述目标站点的服务器接收所述浏览器发来的访问请求,并从所述访问请求中提取所述用户信息和所述签名信息;
信息匹配单元,用于基于所述用户信息,从数据库中获取与所述用户信息相匹配的目标签名密钥;
加密单元,用于按照所述指定加密算法对所述目标签名密钥进行加密,得到目标签名信息;
对比单元,用于将所述目标签名信息与提取出的所述签名信息进行对比,并根据对比结果对所述访问请求进行处理。
上面对本申请的各种实施方式的描述以描述的目的提供给本领域技术人员。其不旨在是穷举的、或者不旨在将本发明限制于单个公开的实施方式。如上所述,本申请的各种替代和变化对于上述技术所属领域技术人员而言将是显而易见的。因此,虽然已经具体讨论了一些另选的实施方式,但是其它实施方式将是显而易见的,或者本领域技术人员相对容易得出。本申请旨在包括在此已经讨论过的本发明的所有替代、修改、和变化,以及落在上述申请的精神和范围内的其它实施方式。