掌桥专利:专业的专利平台
掌桥专利
首页

一种基于跨域资源访问的浏览器用户身份验证系统及方法

文献发布时间:2023-06-19 13:45:04


一种基于跨域资源访问的浏览器用户身份验证系统及方法

技术领域

本发明涉及一种基于跨域资源访问的浏览器用户身份验证系统及方法。通过跨域资源访问获得用户浏览器到第三方站点的链接状态信息,并通过数据处理从链接状态信息中提取用户特征,之后通过机器学习训练获得用户特征的分类模型和用户指纹数据库,最后将用户指纹库应用于用户身份的识别和验证。属于浏览器指纹、用户身份验证技术领域。

背景技术

浏览器的攻防研究始终是热点话题。其中,关于浏览器指纹的研究近年来更是得到了许多关注。浏览器指纹技术最初是为了进行用户身份识别而诞生的,而身份识别对于用户安全至关重要,也因此浏览器指纹技术始终备受瞩目。如今,浏览器指纹技术已经广泛的融入到我们的网络生活当中,在用户识别、用户追踪、定向广告、用户行为分析等方面有了许多具体应用。

浏览器指纹是通过用户浏览器中反映的信息,例如:系统字体、用户的屏幕分辨率、浏览器上安装的个性化插件等进行用户身份的识别。

浏览器指纹的发展历程大致可以分为以下三代。第一代使用有状态标识符,例如cookie和evercookie。这种浏览器指纹技术会在用户访问网站时,在用户浏览器的cookie中添加一个唯一标识符信息,用来区别不同的用户,然而cookie是可清楚的,所以当用户清除了cookie后网站无法再识别用户,并且随着浏览器技术本身的发展,越来越多的浏览器支持关闭cookie的隐身功能。因此第一代浏览器指纹的发展面临窘境。第二代浏览器指纹技术使用无状态标识符,例如浏览器插件版本和代理。由于不同的用户之间,在使用浏览器时的具体需求不同,因此可能会安装不同的浏览器插件,因此可以通过检测用户浏览器上安装的插件识别用户。而如今展开的第三代浏览器指纹的研究(或者被称为第2.5代浏览器指纹)则侧重于研究跨浏览器平台的用户指纹的研究。

此外,还有一些其他的高级浏览器指纹技术,例如:canvas画布指纹和audio API指纹。其中,canvas画布指纹利用了html上的canvas画布实现。由于不同用户所使用的硬件设备不同、驱动不同、操作系统不同、浏览器平台不同,这些品牌或版本之间的差异会导致用户设备对同一个canvas画布上的图像有不同的编码方式、渲染效果,最终导致同一张图片在不同的设备上有细微的差别,通过提取图片hash即可区分不同的用户。audio API指纹与canvas画布指纹类似。也是利用用户间硬件设备、操作系统、浏览器平台之间的差异,导致对同一段音频有不同的处理方式,最终产生了细微的差别,并利用这种差别区分不同的用户。

但是现有的浏览器指纹技术并不完美,仍然存在许多问题。

第一,对于真实用户身份识别而言,根据相关研究的调查显示,约有70%的用户会安装并经常性的使用不同的浏览器。而以往的浏览器指纹无法实现跨浏览器平台的用户识别,因此会将在同个设备上使用不同浏览器的同一用户识别成不同用户。第二,对于攻击者伪装的虚假用户的识别而言,随着一些Web应用程序测试工具的出现和发展完善,攻击者可以轻易的利用如selenium这样的测试工具,实现自动化的切换不同的浏览器平台并伪装成不同的用户,这对于以往的浏览器指纹技术也是难以识别的,攻击者无止境的制造虚假用户,将造成灾难性的后果。

浏览器指纹技术可以应用在不同的场景之中。例如:用户行为分析、精准广告投放等,又或者是欺诈攻击的识别和攻击者追踪定位的具体场景上。但是现有的浏览器指纹技术仍然有亟待解决的问题。第一,现有的浏览器指纹技术难以解决跨浏览器平台的用户身份认证,通过简单的切换浏览器平台就可以迷惑系统的身份检测;第二,现有的浏览器指纹技术十分依赖来自用户设备的特征来验证用户身份,但是来自用户设备本身的信息是容易遭到攻击者的篡改的,攻击者可以通过不断调整系统的底层参数来冒充不同的用户。综上所述,如今我们急需一种新型的浏览器指纹方案,能够使用更底层地并难以修改的信息,来实现用户的身份认证和定位,减少对易篡改或修改的系统变量的依赖。能够更准确地识别出攻击者所创建的虚假用户和他们的攻击行为。并为用户提供更好的服务,保护用户和相关组织的安全。

发明内容

本发明的目的是提供一种基于跨域资源访问的浏览器用户身份验证的系统及方法,克服现有浏览器指纹在跨浏览器识别和应对系统参数修改的问题。建立了一种利用跨域资源访问获取用户到第三方站点的链接状态信息,提取特征建立分类模型和用户指纹库的用户指纹识别系统,其通过数据采集模块、数据处理模块、用户身份指纹模块和用户身份识别模块,基于用户浏览器的物理连接状态构建用户的位置指纹。

为实现上述目的,本发明采用以下技术方案:

一种基于跨域资源访问的浏览器用户身份验证系统,其特征在于:包括数据采集模块、数据处理模块、用户身份指纹模块和用户身份识别模块。数据采集模块负责采集用户浏览器到第三方站点的跨域资源访问的链接状态信息;数据处理模块用于处理采集到的链接状态信息并提取特征,建立用户特征数据库;用户身份指纹模块根据用户特征数据库进行用户分类,并根据分类方法建立用户指纹库;用户身份识别模块用于为网站运营方提供身份识别服务。

进一步的,所述数据采集模块包括链接状态信息数据采集模块、设备信息采集模块和链接状态信息数据库;

链接状态信息模块采集所有用户的链接信息状态。通过用户访问网站时执行的网站脚本,采集用户到第三方站点的链接状态信息,并反馈给网站后台,保存到用户链接状态信息数据库中。

设备信息采集模块是对用户的设备信息进行采集,用于标识采集到的链接状态信息与用户的对应关系。

链接状态信息数据库是一个不断更新的资源表,能够从广泛的数据来源中导入数据。数据库中的数据源来自链接状态信息采集模块和设备信息采集模块。这些数据由用户浏览器执行的下发脚本采集得到。

进一步的,所述数据处理模块包括数据预处理模块、特征提取模块、数据标准化模块和用户特征数据库。

数据预处理模块用于预处理数据采集模块中得到的用户链接状态信息数据,清洗丢包数据。

特征提取模块用于提取链接状态信息的统计特征。特征提取模块需要从链接状态信息中提取适当的统计特征用于后续的训练,这些统计特征将用于构建用户分类模型,创建用户指纹数据库。

数据标准化模块是用来解决统计特征的标准化问题的。数据标准化模块将意义各不相同的各个统计特征统一到同一个标准化区间中,用于增强后续训练结果的分类识别准确性。

用户特征数据库用于保存处理后的用户特征数据,这些数据将用于后续用户身份指纹模块建立用户分类模型和用户指纹数据库。

进一步的,所述用户身份指纹模块包括用户特征分类模块、用户指纹数据库。

用户特征分类模块用于对用户的特征构建分类模型。用户特征分类模块通过机器学习算法,获得对用户特征的分类模型,并且将分类结果保存到用户指纹数据库中备用。

用户指纹数据库用于保存用户特征分类模块的分类结果,并提供给用户身份识别模块,根据采集到的用户指纹是否对应于用户指纹数据库中的指纹判断用户的身份。

进一步的,所述用户身份识别模块包括最大似然比较模块。

最大似然比较模块用于是用来比较一个新提取到的用户指纹与用户指纹数据库中的近似程度的,并将极大似然的用户记录作为用户身份备选项,识别和验证用户身份。该模块用于为网站提供身份验证服务。

与现有技术相比,本发明有益效果在于:克服了现有浏览器指纹在跨浏览器识别和应对系统参数修改的问题,通过数据采集模块、数据处理模块、用户身份指纹模块和用户身份识别模块,基于用户浏览器到第三方站点的跨域资源访问获得的链接状态信息,来识别和验证用户的身份信息,不仅能够使用更底层地并难以修改的信息,来实现用户的身份认证和定位,减少对易篡改或修改的系统变量的依赖,还能够更准确地识别出攻击者所创建的虚假用户和他们的攻击行为,从而为用户提供更好的服务,保护用户和相关组织的安全。

附图说明

图1为本发明中系统的架构模块图;

图2为本发明中方法的流程图。

其中,1-数据采集模块,11-链接状态信息采集模块,12-设备信息采集模块,13-链接状态信息数据库,2-数据处理模块,21-数据预处理模块,22-特征提取模块,23-数据标准化模块,24-用户特征数据库,3-用户身份指纹模块,31-用户特征分类模块,32-用户身份指纹数据库,4-用户身份识别模块,41-最大似然比较模块。

具体实施方式

以下结合附图对本发明做进一步说明。

如图1所示,本发明所述的一种基于跨域资源访问的浏览器用户身份验证系统,包括数据采集模块1、数据处理模块2、用户身份指纹模块3和用户身份识别模块4。数据采集模块1作为网站前端,运行在用户浏览器上;数据处理模块2、用户身份指纹模块3、用户身份识别模块4作为网站后端运行在远程服务器上;用户在访问网站时,浏览器自动执行数据采集模块的脚本采集用户的链接状态信息,并将链接状态信息提交给网站后端服务器。

如图1所示,本发明所述的数据采集模块1包含链接状态信息采集模块11、设备信息采集模块12、链接状态信息数据库13;链接状态信息采集模块11嵌入在网页脚本中,与连接状态信息数据库13逻辑上链接;当用户访问网站时下发给用户浏览器,并由用户浏览器自动执行,向一组第三方站点分别提交一组跨域图片资源访问请求,并计算从发送请求到收到响应的响应延时序列,并将该相应演示序列作为用户到站点的物理连接状态反馈给网站后端服务器,交给数据处理模块,并同步到连接状态信息数据库13;设备信息采集模块12嵌入在网页脚本中,与链接状态信息数据库逻辑连接,负责采集用户的设备信息,用于标识用户与采集到的链接状态信息的对应关系。链接状态信息数据库13位于网站后台服务器上,用于提供存储功能,与链接状态信息模块11,设备信息采集模块12和数据预处理模块21逻辑连接。

如图1所示, 本发明所述的数据处理模块2包含数据预处理模块21、特征提取模块22、数据标准化模块23和用户特征数据库24;数据处理模块2位于网站后端服务器上。数据预处理模块21与链接状态信息数据库13、特征提取模块22逻辑连接,该模块负责对采集到的链接状态信息进行数据预处理,由于链接状态信息是通过跨域图片资源的请求的响应延时得到的,因此存在丢包现象,在预处理阶段需要清洗掉丢包数据,便于后续处理。特征提取模块22与数据预处理模块21、数据标准化模块23逻辑相连,用于提取采集到的链接状态信息数据的统计特征,用于后续学习训练;提取的统计特征是由最大值、最小值、平均值、方差、均方根值、偏度和峰度的七元组构成,统计特征的提取窗口大小选择在20~30之间可以保持较大的识别准确率。数据标准化模块23与特征提取模块22和用户特征数据库24逻辑连接,用于将七元组中的各项统计特征标准化到同一个区间,增加分类准确性,可以使用min-max标准化方法;用户特征数据库24与数据标准化模块23和用户特征分类模块31逻辑连接,提供存储功能。

如图1所示, 本发明所述的用户身份指纹模块3包含用户特征分类模块31、用户身份指纹数据库32;用户特征分类模块31与用户特征数据库24、用户身份指纹数据库32逻辑连接,通过学习训练构建用户特征的分类模型,构建用户指纹,将指纹保存到用户身份指纹数据库32,可以使用KNN算法或随机森林算法以获得较高的分类准确性;用户身份指纹数据库32与用户特征分类模块31、最大似然比较模块41逻辑连接,提供存储功能,保存已经建立的用户指纹,并提供给网站作为用户身份验证服务。

如图1所示, 本发明所述的用户身份识别模块4包含最大似然比较模块41;最大似然比较模块将采集到的用户指纹与用户身份指纹数据库中的指纹记录进行比对,识别和验证用户的身份。

如图2所述,本发明的流程如下:

步骤1、用户使用浏览器访问网站并自动执行下发脚本。

步骤2、脚本利用用户浏览器采集用户设备的链接状态信息。浏览器根据下发的脚本向第三方站点发送跨域图片资源请求,并计算响应延时;向一组第三方站点采集跨域图片资源请求的响应延时序列作为用户设备的链接状态信息提交给网站后端服务器。

步骤3、后台服务器对采集到的链接状态信息进行数据预处理和特征提取。在数据预处理阶段,由于链接状态信息是通过跨域图片资源请求的延时响应序列得到的,因此可能会有丢包的现象,需要清洗丢包数据;在特征提取阶段,选择由最大值、最小值、平均值、方差、均方根值、偏度和峰度的七元组构成的统计特征,提取窗口在20~30时可以获得较好的分类准确性。

步骤4、将提取到的用户指纹与用户指纹数据库进行极大似然比较,判断用户身份。

步骤5、如果身份认证不通过,需要检查用户是否使用了一台新设备登录网站,是否要更新身份指纹。

步骤6、如果需要更新指纹,则需要通过第三方的辅助认证,核查用户身份,可以使用邮箱验证或短消息验证。

步骤7、如果第三方验证通过,则需要通过用户身份指纹模块重新进行训练,得到新的分类模型,获得新的用户指纹。

步骤8、将用户指纹更新到用户指纹数据库。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

技术分类

06120113792448