基于默克尔树的内容分发网络缓存污染防御方法

文档序号:32000919发布日期:2022-11-02 11:13阅读:48来源:国知局
基于默克尔树的内容分发网络缓存污染防御方法

1.本发明属于通信技术领域,涉及一种内容分发网络缓存污染防御方法,具体涉及一种基于默克尔树的内容分发网络缓存污染防御方法,可用于互联网中用户使用内容分发网络获取异常资源时对污染资源检测和清除。


背景技术:

2.内容分发网络cdn(content delivery network)是构建在互联网基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,将内容分发到快速、稳定的缓存服务器上,提高用户内容的访问响应速度和服务的可用性服务。内容分发网络将源服务器中网页的静态资源等内容备份并存储在最接近用户网络边缘服务器上,即缓存服务器的缓存,使用户可以“就近”取得所需的资源,缓解源服务器压力,避免网络拥塞。虽然内容分发网络的缓存服务器对于提升网站访问效率和用户访问内容的响应速度上有显著的优势,但同时也是受攻击的主要载体之一。例如缓存投毒、缓存欺骗等,攻击者利用web缓存系统对缓存服务器中的缓存资源进行恶意修改,在用户向缓存服务器发送请求的过程中,迫使目标网站向其访问者交付错误页面而非合法内容或资源,影响网络的可用性,或者恶意获得用户个人隐私信息,公开暴露在互联网中,在严重影响网络的可用性同时也对互联网用户个人信息隐私安全造成了极大的威胁。
3.由于攻击方式的多样性和隐匿性,要确保网络的可用性和用户个人隐私安全,如何检测并清除污染资源的是亟待解决的问题。
4.例如,申请公布号为cn113037716a,名称为“一种基于内容分发网络的攻击防御方法”的专利申请,公开了一种基于内容分发网络的攻击防御方法。其实现步骤为: (1)在内容分发网络设置n个边缘节点;(2)根据链路的个数确定高防组数,建立高防集群组,每个高防组包括n个高防ip;(3)域名解析到内容分发网络后,在内容分发网络的每个边缘节点和链路设置请求数和带宽的阈值,当某个边缘节点的请求数、流量至少一个超过阈值,则进行的异常处理;(4)切入高防集群后分别对高防集群的每个高防ip进行请求数、流量监测,同时对内容分发网络中受到影响的边缘节点、链路、ip进行请求数、流量监测。该发明解决了cdn网络因攻击资源消耗过高甚至大规模瘫痪导致的普通高防系统时延过大和网络拥塞的问题。但其存在的缺点在于当某个边缘节点的请求数、流量至少一个超过阈值,该防御方法对其进行的异常处理的时候,会将该节点切入高该节点防集群,对内容分发网络中受到影响的缓存服务器进行请求数、流量监测,并没有对已经受到污染的缓存进行及时清除,用户依然可能收到该被污染资源,无法保证用户获取资源的正确性,且该防御方法异常处理的过程中仅对超过内容分发网络边缘节点设置阈值的请求数或流量进行处理,而对于低于所设置阈值请求资源并没有进行分析和检测,无法全面性检测和防御污染资源。


技术实现要素:

5.本发明的目的在于克服上述现有技术存在的缺陷,提出了一种基于默克尔树的内
容分发网络缓存污染防御方法,在保证时延小和网络畅通的同时,解决现有技术中存在的用户获取资源正确率较低和检测污染缓存局限性的技术问题。
6.为实现上述目的,本发明采取的技术方案包括如下步骤:
7.(1)构建内容分发网络:
8.构建包括用户u、缓存服务器c和m个源服务器o={om|1≤m≤m}的内容分发网络,缓存服务器c与每个源服务器om之间设置有防御端dm;每个源服务器om包含n个web页面wm={w
mn
|1≤n≤n},每web页面w
mn
中包含j个静态资源其中m≥1,om表示第m个源服务器,n≥1,w
mn
表示om中的第n个web页面,j≥1,表示w
mn
中的第j个静态资源;
9.(2)每个源服务器计算其包含的每个web页面的默克尔树根值:
10.每个源服务器om计算其包含的web页面w
mn
中的每个静态资源的哈希值并构建以为叶子节点的w
mn
的默克尔树t
mn
,然后通过计算t
mn
根节点的两个子节点串联的哈希值r
mn
,将r
mn
作为默克尔树t
mn
根值,再将r
mn
存储默在防御端dm中;
11.(3)用户u向缓存服务器c请求发送静态资源q;
12.(4)缓存服务器判断缓存是否命中:
13.缓存服务器c判断自身资源中是否存储有静态资源q,若是,则缓存命中,并执行步骤(6),否则,缓存未命中,并执行步骤(5);
14.(5)缓存服务器向源服务器请求发送资源并存储:
15.缓存服务器c向每个源服务器om请求发送静态资源q,获得响应后,将该资源存储在本身;
16.(6)防御端判断缓存服务器中用户请求资源是否被污染:
17.防御端dm计算静态资源q所在页面缓存服务器中w
mn
的备份w
mn

中的每个静态资源的哈希值与该页面的默克尔树根值r
mn

,在防御端dm中存储r
mn

,并判断r
mn
=r
mn

是否成立,若是,缓存资源未被污染,并执行步骤(7);否则,缓存资源被污染,防御端dm要求缓存服务器c清除该被污染的缓存资源,并执行步骤 (5);
18.(7)缓存服务器获取缓存污染防御结果:
19.缓存服务器c响应用户u请求,将自己存储的资源q直接发送至用户u,实现对自身缓存资源的污染防御。
20.本发明与现有技术相比,具有如下优点:
21.第一,本发明在防御端判断缓存服务器中用户请求资源是否被污染中,通过对比缓存服务器中页面默克尔树根值与源服务器默克尔树根值,来检测缓存资源是否被污,当缓存资源被污染,防御端会立即要求缓存服务器c清除被污染缓存,确保用户不会收到该被污染的缓存,克服了现有技术中由于仅将内容分发网络缓存服务器进行请求数、流量监测并没有及时清除已经受到污染的缓存的问题,在保证时延小和网络畅通的同时,有效提高了用户获取资源的正确性。
22.第二,本发明由于构建的web页面默克尔树的过程中,是以每个源服务器计算其包含的web页面中的所有静态资源的哈希值为叶子节点,可以将所有的静态资源加入检测和分析,减小了漏检的风险,克服了现有技术中存在由于阈值设置而缺少对低于所设置阈值
请求的静态资源分析和检测可能造成漏检风险的问题,能够对缓存污染进行更全面的检测。
附图说明
23.图1是本发明的实现流程图;
24.图2是本发明实施例所构建的内容分发网络的结构示意图;
25.图3是本发明所构建的默克尔树的结构示意图。
具体实施方式
26.以下结合附图和具体实施例,对本发明作进一步详细描述。
27.参照图1,本发明包括如下步骤:
28.步骤1)构建内容分发网络:
29.构建包括用户u、缓存服务器u和m个源服务器o={om|1≤m≤m}的内容分发网络,缓存服务器c与每个源服务器om之间设置有防御端dm;每个源服务器om包含n个web页面wm={w
mn
|1≤n≤n},每web页面w
mn
中包含j个静态资源其中m≥1,om表示第m个源服务器,n≥1,w
mn
表示om中的第n个web页面,j≥1,表示w
mn
中的第j个静态资源;
30.本实施例所构建的内容分发网络如图2所示,其中,m=2,设置两个源服务器o1、o2;源服务器o1中n=1,设置一个web页面w
11
,该页面url是 www.test1.com,j=1,包含有一个静态资源图片,名称为peak-result.png;源服务器o2中n=1,设置一个web页面w
21
,该页面url是www.test2.com,j=2,包含有两个静态资源图片,名称分别为google-search.png、nicon.png;
31.步骤2)每个源服务器计算其包含的每个web页面的默克尔树根值:
32.每个源服务器om计算其包含的web页面w
mn
中的每个静态资源的哈希值并将作为叶子节点,构建w
mn
的默克尔树t
mn
,然后计算根节点的两个子节点串联的哈希值获得默克尔树t
mn
根值r
mn
,再将r
mn
存储默在防御端dm中;
33.本实施例中使用的哈希加密算法为md5,对web页面w
11
构建的默克尔树如图 3(a)所示,将静态资源置于图3(a)l1层,源服务器通过md5 算法获得该静态资源的哈希值为17079c6aa820dc5400f39deaf09573da并置于图3(a) l2层,w
11
页面的默克尔树根值r
11
为0f77ea0c6fce1adaa8d-75d0a829243b4,置于图 3(a)l3层,并将r
11
存储在防御端d1中。
34.data01=peak-result.png
35.node01=hash(data01)=17079c6aa820dc5400f39deaf09573da
36.root=r
11
=hash(node01)=0f77ea0c6fce1adaa8d75d0a829243b4
37.对web页面w
21
构建的默克尔树如图3(b)所示,静态资源与静态资源置于图3(b)l1层,源服务器通过md5算法获得该静态资源与哈希值分别为3d35f0e87d51a81ff0b52421d73f233、6258e1cf133c4e55c
‑ꢀ
67384ad20c19af,置于图3(b)l2层,w
21
页面的默克尔树根值r
21
为13ddbc48368eef
‑ꢀ
def6a96a3b92b53ebe,并将r21
存储在防御端d2中。
38.data01=google-search.png
39.data02=nicon.png
40.node01=hash(data01)=3d35f0e87d51a81ff0b52421d73f233
41.node02=hash(data02)=6258e1cf133c4e55c67384ad20c19af
42.root=r
21
=hash(node01+node02)=13ddbc48368eefdef6a96a3b92b53ebe
43.在构建的默克尔树的过程中,是以每个源服务器计算其包含的web页面中的所有静态资源的哈希值为叶子节点,可以将所有的静态资源加入检测和分析,减小了漏检的风险,可以全面性检测存资源污染;
44.步骤3)用户u向缓存服务器c请求发送静态资源q:
45.用户u通过其客户端浏览器搜索框输入url链接www.test1.com,该请求发送至缓存服务器c,要求其发送静态资源本实施例中用户u会发送两次请求以概括缓存命中和缓存未命中的全部情况;
46.步骤4)缓存服务器判断缓存是否命中:
47.缓存服务器c判断自身资源中是否存储有静态资源q,若是,则缓存命中,并执行步骤(6),否则,缓存未命中,并执行步骤(5);
48.本实施例中用户u第一次次请求发送资源缓存服务器c接收用户请求后未在自身资源检索出,缓存未命中,转到步骤(5);用户u第二次请求发送资源缓存服务器c接收用户请求后可以在自身资源检索出,缓存命中,转到步骤(6);
49.步骤5)缓存服务器向源服务器请求发送资源并存储:
50.缓存服务器c向所有源服务器发送请求获取资源经过源服务器o1响应,将peak-result.png发送至缓存服务器,缓存服务器获得资源后缓存至本身;由于缓存服务器中缓存资源是直接从源服务器获取的,保证了该资源的安全;
51.步骤6)防御端判断缓存服务器中用户请求资源是否被污染:
52.防御端dm计算静态资源q所在页面缓存服务器中w
mn
的备份w
mn

中的每个静态资源的哈希值与该页面的默克尔树根值r
mn

,在防御端dm中存储r
mn

,并判断r
mn
=r
mn

是否成立,若是,缓存资源未被污染,并执行步骤(7);否则,缓存资源被污染,防御端dm要求缓存服务器c清除该被污染的缓存资源,并执行步骤 (5);
53.本实施例中由于用户u第二次发送url请求www.test1.com,静态资源本实施例中由于用户u第二次发送url请求www.test1.com,静态资源已经存储在缓存服务器c中,缓存命中;防御端d1计算缓存服务器c存储的静态资源的哈希值为17079c6aa820dc5400f39dea-f09573da,与页面w
11

默克尔树根值r
11

为0f77ea0c6fce1adaa8d75d0a829243b4,r
11
=r
11

,对比结果相等,则执行步骤(7);其中相关的计算方式如下:
[0054][0055]
[0056]
在用户u第二次发送url请求www.test1.com请求后,确保缓存服务器已经存储静态资源对www.test1.com进行投毒攻击,更改其静态资源对www.test1.com进行投毒攻击,更改其静态资源为计算其哈希值为95c9aef9f683ff92507f0a
‑ꢀ
1855a3c377,该页面w
11

的默克尔树根值r
11

计算结果为ec94ce8afe41e08cabafa4f47
‑ꢀ
75f791b,r
11
≠r
11

,对比结果不相等,证明该缓存已经被污染,防御端d1要求缓存服务器c清除该被污染的缓存资源r
11

,并执行步骤(5);其中相关的计算方式如下:
[0057][0058][0059]
本发明中使用的默克尔树根值匹配原理:默克尔树mt(merkle tree)由一个根节点、一组中间节点和一组叶节点组成。叶节点包含存储数据或其哈希值,中间节点是它的两个叶子节值串联的哈希值,根节点也是由它的两个子节点值串联的哈希值组成。所以默克尔树根值由其叶子节点计算而来,且对于每一组叶子节点该根值具唯一性;一旦叶子节点被替换即缓存页面的静态对象被污染,则根值就会改变。所以本发明中只需要判断源服务器和缓存服务器中web页面默克尔树的根值是否一致,就可以知道缓资源是否被污染;
[0060]
本发明在防御端判断缓存服务器中用户请求资源是否被污染过程中,通过对防御端dm中存储的源服务器web页面w
mn
默克尔树根值r
mn
与缓存服务器web页面 w
mn

默克尔树根值r
mn

,时间复杂度为o(1),不影响用户访问的响应速度,保证网络时延;
[0061]
本发明在防御端判断缓存服务器中用户请求资源是否被污染过程中,当缓存资源被污染,防御端会立即要求缓存服务器c清除被污染缓存,确保用户不会收到该被污染的缓存,提高了用户获取资源的正确性;
[0062]
步骤7)缓存服务器获取缓存污染防御结果:
[0063]
缓存服务器c响应用户u请求,将自己存储的资源q直接发送至用户u,实现对自身缓存资源的污染防御;
[0064]
本实施例中缓存服务器c响应用户u请求,将自己存储的peak-result.png转发至用户,实现对自身缓存资源的污染防御。
[0065]
以上描述仅是本发明的一个具体实例,不构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1