一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于人脸安全验证的跨浏览器高并发数据访问的软件系统的制作方法

2022-11-23 21:43:16 来源:中国专利 TAG:


1.本发明涉及软件技术领域,具体为一种基于人脸安全验证的跨浏览器高并发数据访问的软件系统。


背景技术:

2.身份验证是系统必不可少的一环,保证了数据和平台的安全。目前工业界一些软件系统的安全验证还停留在使用用户密码验证的方式,用户需要记住一串数字字符密码的组合进行系统身份验证。这种传统方式的弊端是一旦用户密码被破解或被他人知晓,系统数据将暴露在严重的安全隐患下,对公司造成不小的经济损失。尽管有些软件使用了更有效的指纹验证方式,但指纹识别设备处理速度慢,用户注册繁琐,且存在指纹被复制的风险。随着技术的进步,人们把目光投向了更为智能的人工智能领域,其中,人脸识别是一种基于人的脸部特征信息进行身份识别的一种生物识别技术。人脸识别技术将人脸采集、人脸特征提取、人脸相似度比较等部分集成在一起,最大程度的保证了使用系统的是用户本人,不需用户记忆信息,在便捷性和安全性上更胜一筹,广泛应用于考勤系统、安保系统、人脸移动支付等等领域。
3.随着国家对数据安全问题的重视,用户的个人数据需要得到有效保护,然而人脸识别内部的数据特征库存储了很多人脸部特征数据,如果图片被获取应用于恶意用途,如金融信贷,冒名顶替,对用户造成经济上和社会上的危害不可估量,因此,在软件系统应用人脸识别算法进行身份验证时,应当保证内部数据的安全,防止数据泄露,然而当前的人脸识别算法并没有注意这件事。
4.现在是数据爆炸的时代,系统每日承担着海量数据的访问请求,这就给系统的磁盘i/o带来巨大的负担,在用户访问请求过多的情况下往往导致访问速度下降、请求失败,甚至导致软件崩溃。为了维护系统的稳定性,需要引入缓存机制,目前的缓存技术多样,如redis缓存、cdn缓存等,在不同的服务层进行数据缓存,各有利弊。为了满足不同场景下的海量数据访问需求,需要结合几种缓存方式设计联合缓存机制来最大程度的维持系统的高并发访问和稳定。
5.此外,现有技术,cn114419689a公开一种基于机器学习的人脸识别系统。该发发明中的安全监护模块通过一种基于口令的密钥方式实现密钥托管,保证程序每一次对于视频设备的访问都必须获得用户的许可才能正常进行,但是,基于口令的密钥仍然存在被破解的风险。
6.cn114937304a提出一种基于同态加密的隐私保护人脸识别算法。该方法采用基于层次的同态加密方案,将加密后的人脸数据通过网络传输送入服务端进行表情识别;在同态加密之前对人脸表情图像进行关键点特征提取和筛选,从而减少计算时间。cn114445875a公开了一种基于深度学习的身份识别与人脸比对系统及训练方法,该系统通过客户终端的数据采集模块的信号输出端连接主机,服务器云端的图像预处理模块通过网络传输模块接收客户端主机传输的信息,身份证识别深度学习网络模型输出预测值,通过
网络传输模块传输回主机。cn113435406a提供一种实现隐私保护的人脸识别方法及装置,在人脸识别方法中,客户端获取待识别人脸图像的目标特征,并采用同态加密算法对目标特征进行同态加密,得到加密人脸特征。客户端将加密人脸特征发送给云端服务器。云端服务器对加密人脸特征和各层网络的网络参数进行目标处理,从而确定加密人脸识别结果。但是,上述场景均在云端识别人脸,经过了网络传输,受网络影响较大,数据网络传输过程中有被攻击的风险,且具有额外的传输时间损耗,不适合保密要求高的系统。


技术实现要素:

7.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于人脸安全验证的跨浏览器高并发数据访问的软件系统,用于解决在现有软件中系统安全性和用户安全性,以及系统访问稳定性的问题。
8.为实现上述目的及其他相关目的,本发明提供以下技术方案:一种基于人脸安全验证的跨浏览器高并发数据访问的软件系统,该系统包括:用户安全验证模块、数据缓存模块、数据访问模块;其特征为:所述用户安全验证模块:包括摄像头采集人脸图像、人脸特征提取、人脸比对、人脸加密模块;所述数据缓存模块:采用联合缓存机制,保持系统的稳定性,该联合缓存机制并在浏览器端,服务器端和进程内分别部署的缓存库,实现高并发数据场景下的系统稳定;所述数据访问模块:主要负责用户通过浏览器访问本地数据,为了实现跨浏览器兼容访问本地数据;包括本地服务组件和执行组件以保证浏览器访问本地数据的兼容性;基于java开发组件,客户端计算机启动本地服务组件,为浏览器提供websocket访问服务;通过本地服务组件和其提供的服务接口访问本地计算机资源;通过本地执行组件把执行结果反馈给本地组件服务。
9.优选为:用户通过所述用户安全验证模块进行身份验证:用户通过客户端的摄像头设备进行拍照,采集用户人脸图像,并通过人脸识别方法进行用户身份匹配,匹配成功则说明用户是可信用户,允许该用户登录;若匹配不成功,则退回登录界面。
10.优选为:所述人脸识别方法包括以下步骤:步骤1:图像采集:通过摄像头或手机等拍照设备,采集用户图片;步骤2:人脸预处理:识别用户图片中人脸五官部分,并通过偏移旋转方式将用户五官标准化;通过采用人脸检测部分的滑动窗口,在图片中选出人脸候选集,并使用回归模型修正人脸;步骤3:人脸特征识别:通过深度学习模型框架,实现图像特征提取:包括了特征提取层,特征池化层,特征修正层,以及全连接层:其中:特征提取层公式为:l为特征提取的层数,x为特征向量,m为矩阵的列坐标,n为矩阵的横坐标,convf()
为函数,k为卷积核,上标l代表层数,nm代表矩阵的元素位置,p为偏置向量,q为矩阵的列数;特征池化层使用最大池化方式maxpool,即将矩阵中n*n的子矩阵缩为1*1的元素,元素值为子矩阵的最大值;全连接层:用于将特征向量映射到不同的特征空间,公式为:p为新的特征向量,w为权重矩阵,x为原特征向量,b代表偏置向量,上标i代表向量维度;特征修正层,公式为:func()代表本函数,x代表数据特征向量,c为超参数人工设定,e代表指数。
11.人脸识别的模型架构为:输入图像-(卷积层-池化层-修正层)*3-全连接层*2-输出向量步骤4:同态加密数据存储:同态加密可以在加密的状态下进行加法和乘法运算,且解密后不影响结果,原则如下:如下:其中括号代表加密算法,a,b为加密前的数据,可见加密前两数相加与两数相加再加密的结果相同,相乘同理。
12.对于所有的样本特征向量,都要做同态加密处理,得到:p代表原向量,q代表加密后的向量,上标代表维度;同态加密算法的步骤如下:a. 生成秘钥:计算公钥g和私钥m。
13.私钥m计算方式如下:其中,为多项式模数,n为自定义参数。
14.公钥g的计算方式为:
其中,r为随机多项式,z为噪声,m为私钥。
15.b. 加密算法:对于输入的x,用以下公式加密:其中,t为多项式的系数模数,v为掩码,m为私钥,r为随机多项式,,,为噪声。
16.c. 解密算法:对于加密的,用以下方式解密:其中,为解密后的向量,为加密后的向量,t为多项式的系数模数。
17.所有经过人脸识别的图像输出的特征向量,均会被同态加密算法加密。
18.步骤5: 人脸相似度加密匹配对测试样本和每一个内部用户加密特征数据使用向量内积乘法,将得到加密的置信度score步骤6:人脸相似度解密加密的置信度分数经过解密算法解密,得到真正的置信度分数,置信度均低于0.5代表用户不在内部库中,高于0.5,则取最高值的用户代表用户身份。
19.优选为:所述深度学习的训练过程包括三元损失函数,公式为:i代表第i维数据, 是样本锚点,是正样本, 是负样本, c是超参数。代表l2正则运算,g()为映射函数。
20.优选为:该联合缓存机制包含以下级别的缓存机制:首先是浏览器中的缓存,当用户通过浏览器请求数据时,首先在浏览器缓存中查询是否已有该数据,这里使用第一级http缓存;联合缓存的第二级是负载均衡缓存,在高并发的场景下,需要对服务器进行负载均衡处理,这里引入了nignx缓存,部署在服务器端。联合缓存的第三级是托管堆缓存,存在在进程中,在java中,此缓存位于jvm 的托管堆上面。
21.优选为:所述数据访问模块的接口包括:浏览器与本地组件服务之间、浏览器与执行组件之间、本地组件服务与执行组件
之间;所述浏览器与本地组件服务之间,浏览器与本地组件服务接口采用标准的websocket协议进行访问和通信;所述浏览器与执行组件之间,浏览器与执行组件之间通过json格式的数据来进行通信,浏览器发送的json格式数据和接收返回状态数据,由执行组件和浏览器端自行协商,本地组件服务起到一个承上启下的桥梁作用。
22.与现有技术相比,本发明的有益效果是:数据缓存模块包括联合缓存机制,实现了高并发数据场景下的系统稳定;所述数据访问模块装有本地服务组件,保证浏览器访问本地数据的兼容性;运用安全人脸识别技术,在保证设备安全访问的同时保护了用户的隐私信息,同时设计了联合缓存机制来保证数据高并发访问。
附图说明
23.图1为本发明的整体架构图;图2为本发明的具体实施流程图;图3为人脸安全验证模块的人脸识别框架示意图;图4为数据缓存模块的联合缓存机制示意图。
具体实施方式
24.下面结合附图和具体实施例来对本发明进行详细的说明。
25.一种基于人脸安全验证的跨浏览器高并发数据访问的软件系统,该系统包括:用户安全验证模块,数据访问模块,数据缓存模块;其中,所述用户安全验证模块包括摄像头采集人脸图片,人脸特征提取,人脸比对,人脸加密等模块。其中,所述数据缓存模块包括联合缓存机制,在浏览器端,服务器端和进程内分别部署了缓存库,实现了高并发数据场景下的系统稳定。其中,所述数据访问模块装有本地服务组件和执行组件,保证浏览器访问本地数据的兼容性。
26.首先,用户通过用户安全验证模块进行身份验证。用户通过客户端的摄像头设备进行拍照,采集用户人脸图像,并通过人脸识别算法进行用户身份匹配,匹配成功则说明用户是可信用户,允许该用户登录;若匹配不成功,则退回登录界面。
27.人脸安全识别算法包括以下流程:1图像采集:通过摄像头或手机等拍照设备,采集用户图片。
28.2人脸预处理:识别用户图片中人脸五官部分,并通过偏移旋转等方式将用户五官标准化。本发明中人脸检测部分使用滑动窗口,在图片中选出人脸候选集,并使用回归模型修正人脸。
29.3人脸特征识别:这是人脸识别算法的主要部分,通过深度学习模型框架,实现图像特征提取。
30.其中,特征提取层公式为:
l为特征提取的层数,x为特征向量,m为矩阵的列坐标,n为矩阵的横坐标,convf()为函数,k为卷积核,上标l代表层数,nm代表矩阵的元素位置,p为偏置向量,q为矩阵的列数。
31.特征池化层使用最大池化方式maxpool,即将矩阵中n*n的子矩阵缩为1*1的元素,元素值为子矩阵的最大值。
32.特征修正层公式为:func()代表本函数,x代表数据特征向量,c为超参数人工设定,e代表指数。修正层的引入防止了反向传播梯度爆炸的问题,负数的处理使其在输入为负数的情况下有一定的输出,提高抗干扰力。
33.训练过程中的损失函数为三元损失函数,公式为:i代表第i维数据,是样本锚点,是正样本, 是负样本, c是超参数。代表l2正则运算,g()为映射函数。
34.此损失函数可以使测试样本与正样本之间的类间距最小,与负样本之间的类间距最大。
35.全连接层:用于将特征向量映射到不同的特征空间,公式为:p为新的特征向量,w为权重矩阵,x为原特征向量,b代表偏置向量,上标i代表维度;特征修正层,公式为:func()代表本函数,x代表数据特征向量,c为超参数人工设定,e为指数。
36.4. 同态加密数据存储每个图片经模型提取特征后都得到一个向量,上标代表维度。为了保护用户的特征,此特征不能被直接使用,需要经过加密保证数据不被泄露。同时,为了便于后面人脸相似度匹配,需要保证加密后的数据不影响运算,因此使用同态加密的方式。同态加密的原理如下:
其中括号代表加密算法,a,b为加密前的数据,可见加密前两数相加与两数相加再加密的结果相同,相乘同理。
37.对于所有的样本特征向量,都要做同态加密处理,得到:p为原向量,q代表加密后的向量,上标代表维度;同态加密算法的步骤如下:d. 生成秘钥:计算公钥g和私钥m。
38.私钥m计算方式如下:其中,为多项式模数,n为自定义参数。
39.公钥g的计算方式为:其中,r为随机多项式,z为噪声,m为私钥。
40.e. 加密算法:对于输入的x,用以下公式加密:其中,t为多项式的系数模数,v为掩码,m为私钥,r为随机多项式,,,为噪声。
41.f. 解密算法:对于加密的,用以下方式解密:其中,为解密后的向量,为加密后的向量,t为多项式的系数模数。
42.所有经过人脸识别的图像输出的特征向量,均会被同态加密算法加密。
43.步骤5: 人脸相似度加密匹配
对测试样本和每一个内部用户加密特征数据使用向量内积乘法,将得到加密的置信度score步骤6:人脸相似度解密加密的置信度分数经过解密算法解密,得到真正的置信度分数,置信度均低于0.5代表用户不在内部库中,高于0.5,则取最高值的用户代表用户身份。
44.以上为用户验证模块内容,通过用户验证模块后,进入数据访问模块。
45.数据访问模块主要负责用户通过浏览器访问本地数据,为了实现跨浏览器兼容访问本地数据,我们基于java开发组件。只要浏览器支持html5的前提下无需加载任何插件,即可便利的解决浏览器访问本地计算机资源的技术。客户端计算机启动本地组件服务,为浏览器提供websocket访问服务。通过本地组件服务和其提供的服务接口,可便利的访问本地计算机资源。通过本地执行组件能够方便的把执行结果反馈给本地组件服务。
46.数据访问模块的接口包括以下三部分:浏览器与本地组件服务之间、浏览器与执行组件之间、本地组件服务与执行组件之间。所述浏览器与本地组件服务之间,浏览器与本地组件服务接口采用标准的websocket协议进行访问和通信。所述浏览器与执行组件之间,浏览器与执行组件之间通过json格式的数据来进行通信,浏览器发送的json格式数据和接收返回状态数据,由执行组件和浏览器端自行协商,本地组件服务起到一个承上启下的桥梁作用。
47.所述本地组件服务与执行组件之间,执行组件需实现ibasecom接口类定义的各项接口,完成对接。
48.以上是数据访问模块的架构,主要针对用户访问客户端本地数据,当用户访问内网数据过多时,可能会导致系统崩溃。因此本发明引入数据缓存模块,设计了一种联合缓存机制,保持系统的稳定性。
49.联合缓存机制包含以下级别的缓存机制:首先是浏览器中的缓存,当用户通过浏览器请求数据时,首先在浏览器缓存中查询是否已有该数据,这里使用http缓存,当用户第一次请求数据时,浏览器缓存库没有缓存数据,会从内部服务器取数据,并且放到浏览器缓存中,下次再进行请求的时候会根据缓存的策略来读取本地或者服务的数据信息。其中运用了强制缓存机制,当用户第二次访问该数据时,若两次访问时间不超过手工设置的过期时间seconds,将获得缓存数据,若超过,则需访问服务端请求数据。
50.联合缓存的第二级是负载均衡缓存,在高并发的场景下,需要对服务器进行负载均衡处理,这里引入了nignx缓存,部署在服务器端,当用户请求到达时,服务器首先会在缓存中搜索该请求,命中则直接返回数据。若服务端缓存库中不存在此条请求,则服务器需处理此请求,同时在其返回结果后,将结果存入服务器缓存库中,便于下次访问存取数据。
51.联合缓存的三级是托管堆缓存,存在在进程中,在java中,此缓存位于jvm 的托管堆上面,内存中运行的进程对数据的响应速度极高,适合存放访问频繁的热点数据。需要注意的是,内存有限进程缓存库的空间不能太大,需要选择最核心的数据进入进程内缓存库。因此,缓存回收策略使用lfu最不常用算法,其原理是,在固定时间内,访问量最小的数据将会被移除缓存。在此种状况下由于先入先出和后入先出回收策略算法。
实施例
52.图1展示了本发明的总体架构,具体如下:本实施例提供一种基于人脸安全验证的跨浏览器高并发数据访问的软件系统,本发明软件系统由用户安全验证模块,数据缓存模块,数据访问模块构成,其中,用户安全验证模块包含拍照设备,部署在客户端。数据访问模块部署在浏览器端,包含本地组件服务和执行组件,主要用于访问客户端计算机的本地设备,既包括文件系统中的各类型文件,又包含打印机,读卡器等外部设备,本地组件服务兼容了各种浏览器,便于用户使用。数据缓存模块设计了联合缓存机制,分别部署在浏览器端,服务器端和进程内部,分别基于http缓存、负载均衡缓存和托管堆缓存结合在一起,共同维护系统稳定,实现高并发数据访问。
53.本发明涉及到的技术架构如下:1. 用户安全验证模块:python pytorch numpy;2. 数据缓存模块:http nginx代理服务器 thread;3. 数据访问模块:java swt websocket;图2展示了本实施例一种基于人脸安全验证的跨浏览器高并发数据访问的软件系统的流程示意图,所述方法包括以下步骤:步骤s1:用户首先需要通过用户安全验证模块进行登录。具体实施流程如下:1图像采集:用户通过拍照设备采集用户自己的照片,照片将上传到系统用于验证用户身份。
54.2人脸预处理:在照片中检测用户的人脸五官部分并剪切出来,若面部不正,将通过偏移旋转等方式将用户五官尽量摆正。本发明中人脸检测部分使用滑动窗口,在图片中选出人脸候选集,并使用回归模型修正人脸。
55.3人脸特征识别:预处理后的图片将通过基于深度学习人脸识别模型框架,经过一系列的特征提取、特征池化、特征修正、实现图像特征提取,提取出用户的特征并以向量的形式表示。本框架包括了11个特征提取层,4个特征池化层,以及两个全连接层。损失函数使用三元损失函数,目的是使正样本的间距最小,负样本的间距拉大。保证人脸识别的准确性。
56.4. 同态加密数据存储:为了保证用户隐私的同时便于后面人脸相似度匹配,需要保证加密后的数据不影响运算,因此使用同态加密的方式。对于所有的样本特征向量,都要做同态加密处理,得到加密后的向量。同时,模型内部特征库的所有特征也将进行同样的同态加密处理。
57.5. 人脸相似度匹配:对用户加密特征向量和每一个内部用户加密特征数据使用向量内积乘法,将得到置信度score,分值越高置信度越高,置信度均低于0.5代表用户不在内部库中,高于0.5,则取最高值的用户代表用户身份。
58.6. 当识别到用户的身份在可信人员中,则通过身份验证。
59.步骤s2:用户访问本地数据需通过数据访问模块,通过用户验证模块后,将进入数据访问模块。
60.该项技术实现的接口主要涉及以下三部分:1. 浏览器与本地组件服务之间浏览器与本地组件服务接口采用标准的websocket协议进行访问和通信。
61.2. 浏览器与执行组件之间浏览器与执行组件之间通过json格式的数据来进行通信,浏览器发送的json格式数据和接收返回状态数据,由执行组件和浏览器端自行协商,本地组件服务起到一个承上启下的桥梁作用。
62.3. 本地组件服务与执行组件之间执行组件需实现ibasecom接口类定义的各项接口,完成对接。
63.本模块的调用流程为:

浏览器通过websocket向本地组件服务发送json格式数据;

本地组件服务判断相关执行组件是否加载。组件未加载,则调用open接口加载相关执行组件;

本地组件服务调用receivemessage接口,向执行组件转发浏览器的json格式数据;

执行组件执行过程中或执行完成后,调用msgevent .sendmessage接口向本地组件服务发送相关执行状态和执行结果;

本地组件服务向浏览器转发执行组件的执行状态或执行结果。
64.该模块基于java语言进行开发,因此使得该项技术不但可以跨浏览器进行访问,还可以跨操作系统(windows/linux)进行访问,并能支持在安全可靠平台上的应用。
65.步骤s3:用户访问内部网络数据需通过数据缓存模块,以保证系统的高效稳定性。具体设计了基于多端的联合缓存机制如下:1. 浏览器缓存:当用户通过浏览器请求数据时,首先在浏览器缓存中查询是否已有该数据,这里使用http缓存,当用户第一次请求数据时,浏览器缓存库没有缓存数据,会从内部服务器取数据,并且放到浏览器缓存中,下次再进行请求的时候会根据缓存的策略来读取本地或者服务的数据信息。其中运用了强制缓存机制,当用户第二次访问该数据时,若两次访问时间不超过手工设置的过期时间seconds,将获得缓存数据,若超过,则需访问服务端请求数据。
66.2. 负载均衡缓存:在高并发的场景下,需要对服务器进行负载均衡处理,这里引入了nginx缓存,作为均衡分配请求的服务器,将所有请求通过upstream功能发送给服务器端,支持多种负载均衡算法,可以保证系统的高并发性,尽量不堵塞或崩溃,部署在服务器端,当用户请求到达时,服务器首先会在缓存中搜索该请求,命中则直接返回数据。若服务端缓存库中不存在此条请求,则服务器需处理此请求,同时在其返回结果后,将结果存入服务器缓存库中,便于下次访问存取数据。
67.3. 托管堆缓存:此部分存在在进程中,在java中,此缓存位于jvm 的托管堆上面,由于内存宝贵,进程缓存库的空间不能太大,需要选择最核心的数据进入进程内缓存库。因此,缓存回收策略使用lfu最不常用算法,其原理是,在固定时间内,访问量最小的数据将会被移除缓存。具体部署使用消息队列修改方案,在修改完缓存数据后,给消息队列发送通知,其他应用进程将在收到通知后更改缓存数据。
68.图4展示了本发明数据缓存模块中联合缓存机制,具体的联合缓存机制的访问流程如下:用户通过浏览器发送请求,请求首先通过浏览器http缓存,若命中,返回缓存中的
数据,同时修改此数据的过期时间。否则,请求通过浏览器进入服务器。
69.请求在服务器端缓存库中查找,若命中,返回缓存中的数据,同时修改此数据的过期时间。否则,请求在服务器中启动程序进程。
70.请求在进程缓存中查找,若命中,返回缓存中的数据,同时修改此数据的过期时间。否则,请求通过进程处理,查找数据。
71.最终,当用户无访问请求时,退出系统。
72.本发明提供了一种基于人脸安全验证的跨浏览器高并发数据访问的软件系统, 系统包括:用户安全验证模块、数据缓存模块、数据访问模块。其中用户安全验证模块使运用了先进的人脸识别算法用于验证用户身份,保证了系统的安全。同时在人脸识别模块使用了同态加密算法进行人脸相似度比对,保护了用户的隐私。数据缓存模块设计了联合缓存机制以实现高并发访问来维护系统稳定性。在数据访问模块解决了多浏览器兼容性的问题。综上所述,本发明通过以上模块保证了系统安全性、用户安全性、系统稳定性以及系统兼容性。
73.以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述 的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各 种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。本发明要求的保护范围由所附的权利要求书及其等同物界定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献