基于隐私保护的浏览器安全查询方法

文档序号:30979555发布日期:2022-08-03 00:16阅读:247来源:国知局
基于隐私保护的浏览器安全查询方法

1.本发明涉及网络技术领域,特别涉及一种基于隐私保护的浏览器安全查询方法。


背景技术:

2.安全浏览服务是浏览器的一项重要服务,其目的是为了防止钓鱼网站、诈骗网站等对用户的欺骗,其工作方式一般由浏览器服务商收集和维护一个黑名单列表,若用户浏览了处于黑名单中的网站,浏览器便会给予相应的提示。为了方便用户的使用,诸如google、firefox等厂商均设置可供查询的api,用户上传自己想要查询的网址url,便可得到该url是否恶意的判定结果。
3.在判断浏览网址的安全性时,google等厂商只得到用户浏览网址的32位哈希前缀,但约有20000余个url会共享一个相同32位哈希前缀,即无法保证对浏览网址安全性的准确判断。为了保证查询准确率,google通常会要求用户对所查询的url进行分解,进而上传多个前缀便于精确检查,这样多个前缀联合,使反向推断出用户浏览的网址便成为可能。而用户的浏览记录一旦被获取,互联网服务提供商便会借此进行相关的个性化服务,甚至是对用户进行画像,严重危害用户的隐私安全。


技术实现要素:

4.发明目的:针对以上问题,本发明目的是提供一种基于隐私保护的浏览器安全查询方法,通过椭圆曲线上的离散对数保障黑名单列表以及用户的浏览记录隐私安全。
5.技术方案:本发明的一种基于隐私保护的浏览器安全查询方法,包括如下步骤:
6.步骤1,服务器端接收黑名单提供者发送的恶意url列表和随机数,计算每个恶意url的256位哈希值,截取前32位作为哈希前缀;再利用随机数为每个恶意url进行加密,将32位哈希前缀和加密后的url集组合成字典数据,将该字典数据发送到客户端;
7.步骤2,所述客户端接收用户输入的待查询url,第一次判断待查询url哈希前缀是否存在于本地客户端存储的字典数据恶意url哈希前缀集中,若不存在,则输出待查询url为安全网址;若存在,则继续进行第二次判断,需要用户输入一个随机数,客户端使用该随机数为用户输入的待查询url哈希进行加密,并将加密结果发送到服务器端;
8.步骤3,服务器端在接收到加密结果后,使用黑名单提供者发送的随机数为加密结果进行加密,然后将结果发送回客户端;
9.步骤4,客户端收到服务器端的处理结果后,对该处理结果进行计算,判断计算后的结果是否存在于本地存储的恶意url加密结果中,若不存在,则输出待查询url为安全网址;若存在,则输出待查询url为恶意网址。
10.进一步,所述步骤1包括:
11.服务器端将256位哈希值映射到椭圆曲线e(a,b,p,r)的点p(x,y)上,a、b、p、r分别表示椭圆曲线方程y2=x3+ax+b(mod p)中的参数a,b,p,r表示椭圆曲线的阶,x、y分别表示横、纵坐标,以随机数k作为参数,对点p进行椭圆曲线e上的乘法运算k*p,得到新的点p1
(x1,y1);
12.使用hashlib256函数计算点p1横纵坐标的256位哈希值且加和,表达式为:sum=hashlib256(x1)+hashlib256(y1),将所有恶意url哈希前缀q和256位哈希值sum以(q,sum)形式作为字典数据发送到本地客户端。
13.进一步,所述步骤2包括:
14.用户输入待查询url后,本地客户端计算该待查询url的256位哈希值,截取前32位作为哈希前缀;若该32位哈希前缀存在于本地字典数据存储的恶意url的32位哈希前缀数据集中,则将待查询url映射到椭圆曲线e(a,b,p,r)的点o(x2,y2)上,选取随机数random进行椭圆曲线e上的乘法运算:random*o,得到新的点o1(x3,y3),并将o1发送到服务器端。
15.进一步,所述步骤3包括:在接收到点o1后,服务器端根据黑名单提供者选择的随机数k进行椭圆曲线e上的乘法运算:k*o1,得到新的点o2(x4,y4),将o2发送回客户端。
16.进一步,所述步骤4包括:
17.步骤401,计算客户端选取的随机数random所选椭圆曲线e(a,b,p,r)中r的逆元random-1
,做椭圆曲线上的乘法计算:random-1
*o2,得到了新的点o3(x5,y5);
18.步骤402,计算点o3哈希值,表达式为:ans=hashlib256(x5)+hashlib256(y5),并查询该哈希值ans值是否在本地客户端存储的sum值数据集中,若存在,则输出待查询url为恶意url;若不存在,则输出待查询url为安全url。
19.有益效果:本发明与现有技术相比,其显著优点是:
20.1、在保障基本的安全浏览服务的前提下,本发明使用椭圆曲线上的离散对数问题保障用户和黑名单服务提供者的隐私不泄露;
21.2、所有有关url是否是恶意的判断都在本地进行,待查询的url不会以明文的方式离开本地客户端,极大保障用户的隐私安全;
22.3、本发明使用两步查询作为主要结构,大幅提升了查询的速度;
23.4、优化了算法结构与数据存储方式,使得本地占用明显较少,不会对用户的使用体验带来明显影响。
附图说明
24.图1为本发明流程图;
25.图2为本发明中黑名单提供商上传加密黑名单的流程图;
26.图3为本发明为用户选的url进行本地判断的流程图;
27.图4为本发明服务器端接收到客户端的请求令牌后的行为的流程图;
28.图5为本发明客户端接收到令牌后进行详细判定的流程图。
具体实施方式
29.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。
30.本实施例所述的一种基于隐私保护的浏览器安全查询方法,流程图如图1所示,包括如下步骤:
31.如图2,步骤1,服务器端接收黑名单提供者发送的恶意url列表和随机数,计算每
个恶意url的256位哈希值,截取前32位作为哈希前缀;再利用随机数为每个恶意url进行加密,将32位哈希前缀和加密后的url集组合成字典数据,将该字典数据发送到客户端。
32.黑名单服务提供者选择恶意url集合组成的列表,支持上传的格式有.txt,.json,.xls等,选取随机数表达式为:
33.x
n+1
=「get.clock()+(a*xn+c)mod m]
34.式中,get.clock()函数为获取当前系统小时、分钟以及秒数总和的函数,m为模数,m》0,a为乘数,0《a《m,c为增量,0《c《m,x0为初值,0《x0《m,为保证随机数列的周期足够大,m取值2
31-1,a取值为16807,c取值0,a为m的本原根,保证随机数列的周期为整数,x0取值5。
35.(a*xn+c)mod m会生成一串随机数列,根据get.clock()的值time,获取数列中第time个值作为(a*xn+c)mod m的输出值,最后二者相加,向上取整,得到随机数k。将随机数k作为密钥和恶意url黑名单集合上传到服务器端。
36.服务器端使用hashlib256函数计算每个恶意url的256位哈希值,并截取前32位作为哈希前缀q。
37.服务器端将256位哈希值映射到椭圆曲线e(a,b,p,r)的点p(x,y)上,曲线方程为:y2=x3+ax+b mod k,4a3+27b2≠0mod p,a、b、p、表示椭圆曲线方程y2=x3+ax+b(mod p)中的参数a,b,p,r表示椭圆曲线的阶,x、y分别表示横、纵坐标,以随机数k作为参数,对点p进行椭圆曲线e上的乘法运算k*p,得到新的点p1(x1,y1)。
38.使用hashlib256函数计算点p1横纵坐标的256位哈希值且相加,表达式为:sum=hashlib256(x1)+hashlib256(y1),将所有恶意url哈希前缀q和256位哈希值sum以(q,sum)形式作为字典数据发送到本地客户端。
39.本地客户端值储存url对应的32位哈希前缀以及椭圆曲线计算得到的点和将点做散列相加后的值,仅仅凭借单个前缀,完全无法反向推断对应url值,且即使明确p(x,y)和k*p即p1(x1,y1),若要推断出随机数k是非常困难的,所以步骤1的安全性可以得到充分的证明。
40.如图3,步骤2,客户端接收用户输入的待查询url,第一次判断待查询url哈希前缀是否存在于本地客户端存储的字典数据恶意url哈希前缀集中,若不存在,则输出待查询url为安全网址;若存在,则继续进行第二次判断,需要用户输入一个随机数,客户端使用该随机数为用户输入的待查询url哈希进行加密,并将加密结果发送到服务器端。在进行判断时,由于本地客户端存储是(q,sum)词典形式,只需使用dict.contains函数即可判断得到的哈希前缀是否存在于本地数据库中。
41.用户输入待查询url后,本地客户端计算该待查询url的256位哈希值,截取前32位作为哈希前缀;若该32位哈希前缀存在于本地客户端字典数据存储的恶意url的32位哈希前缀数据集中,则将待查询url映射到椭圆曲线e(a,b,p,r)的点o(x2,y2)上,使用stochastic()函数选取随机数random进行椭圆曲线e上的乘法运算:random*o,得到新的点o1(x3,y3),并将o1发送到服务器端。
42.如图4,步骤3,服务器端在接收到加密结果后,使用黑名单提供者发送的随机数为加密结果进行加密,将加密结果发送回客户端;
43.在接收到点o1后,服务器端根据黑名单提供者选择的随机数k进行椭圆曲线e上的乘法运算:k*o1,得到新的点o2(x4,y4),将o2发送回客户端。
44.如图5,步骤4,客户端收到服务器端的处理结果后,对该处理结果进行计算,判断计算后的结果是否存在于本地存储的恶意url加密结果中,若不存在,则输出待查询url为安全网址;若存在,则输出待查询url为恶意网址。
45.步骤401,计算客户端选取的随机数random所选椭圆曲线e(a,b,p,r)中r的逆元random-1
,做椭圆曲线上的乘法计算:random-1
*o2,得到了新的点o3(x5,y5)。
46.经过证明,random-1
*o2的结果与下面的结果是相同的,即:random-1
*o2=random-1
*(k*o1)=random-1
*(k*(random*o))=k*o
47.步骤402,计算点o3哈希值,表达式为:ans=hashlib256(x5)+hashlib256(y5),并查询该哈希值ans值是否在本地客户端存储的sum值数据集中,若存在,则输出待查询url为恶意url;若不存在,则输出待查询url为安全url。
48.客户端为了加密自己所查询的url的散列值,使用到了随机数为其编码。但在收到服务器端发送的令牌后,只需计算该随机数关于椭圆曲线中参数r的逆元,便可忽略掉随机数的存在,证明本步骤的可行性。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1