基于内容分发网络的篡改干预方法、装置及系统与流程

文档序号:11215999阅读:431来源:国知局
基于内容分发网络的篡改干预方法、装置及系统与流程

本发明涉及数据防篡改和篡改恢复技术领域,特别涉及一种基于内容分发网络的篡改干预方法、装置及系统。



背景技术:

基于内容分发网络(contentdeliverynetwork,简称为cdn)的内容防篡改技术的基本思想是,用户请求cdn网络中响应头不带cache-control:no-cache或no-store或private或max-age=0的文件,即缓存在cdn边缘节点的静态文件(以下对这类文件简称为静态文件)时,若静态文件被恶意插入代码片段或者文件片段,此时响应用户非预期内容,如广告弹窗等。

目前的内容防篡改恢复方案步骤如下:

(1)用户请求源站新发布的静态文件或者已过期的静态文件时,cdn边缘节点需要进行回源请求;

(2)由cdn边缘节点的源站监控模块选择回具体哪一个源站,cdn边缘节点向该源站发起回源请求;

(3)源站正常响应;

(4)cdn边缘节点将响应返回用户,且缓存对应的文件,不管该文件是否被恶意篡改。

(5)如果该文件被恶意篡改,那么在该文件过期之前,如果有用户请求该文件,则cdn边缘节点直接将缓存的该文件发送给用户,也就是用户接收到的仍是被篡改的文件。如果cdn边缘节点判定该文件过期,有用户请求该文件,则cdn边缘节点发起回源请求,且源站与cdn边缘节点之间不发生恶意篡改,此时篡改恢复,用户响应正常,也就是用户能够接收到未被恶意篡改的文件。

上述内容防篡改恢复方案存在以下弊端:不管请求的静态文件是否存在恶意篡改,cdn边缘节点均缓存该静态文件。如果出现恶意篡改,则只有当缓存过期后回源重新请求,源站给出正常响应时,恶意篡改才恢复,同时过期时间不能重新设定,整个恢复过程,不能实现迅速恢复,在判定缓存未过期的这段时间,所有对该文件的请求返回的都是恶意篡改后的文件,延长了故障的时间,加剧了故障的影响。例如访问常用网页或者商城,发现广告弹窗一直存在,影响用户体验;如果这个空响应的文件缓存时间为1天,则至少要等1天后缓存过期且有用户请求该文件才有可能恢复正常。



技术实现要素:

为了解决现有技术中篡改恢复需要等待文件过期才可能实现,影响用户体验的问题,本发明实施例提供了一种基于内容分发网络的篡改干预方法、装置及系统。

根据本发明实施例的一个方面,提供了一种基于内容分发网络的篡改干预方法,包括:

内容分发网络cdn边缘节点接收用户终端的请求消息,其中所述请求消息请求的是静态文件;

所述cdn边缘节点确定回源的源站,并发起回源请求;

所述cdn边缘节点接收所述源站的响应消息,并将所述响应消息发送给所述用户终端;

所述cdn边缘节点判断所述响应消息中的静态文件是否被篡改;

如果未被篡改,则缓存所述静态文件;

如果被篡改,则不缓存所述静态文件,当再次接收到请求所述静态文件的消息时,所述cdn边缘节点重新发起回源请求,若所述源站返回的是正常响应且所述源站与所述cdn边缘节点之间无篡改发生,所述cdn边缘节点缓存所述正常响应的静态文件,实现篡改恢复。

进一步的,所述cdn边缘节点判断所述响应消息中的静态文件是否被篡改,包括:

所述cdn边缘节点分别从对应的至少两个响应消息中获取至少两个第一特征值;

所述cdn边缘节点判断所述至少两个第一特征值是否一致;

如果一致,则确定所述静态文件未被篡改;

如果不一致,则确定所述静态文件被篡改。

进一步的,还包括:所述cdn边缘节点判断所述至少两个第一特征值是否一致时,先判断是否是首次接收到请求所述静态文件的请求消息。

进一步的,所述cdn边缘节点判断所述响应消息中的静态文件是否被篡改,包括:

所述cdn边缘节点提取所述响应消息中携带的第二特征值,其中,所述第二特征值唯一标识所述静态文件;

所述cdn边缘节点利用与所述源站协商的计算方法,根据所述响应消息计算得到第三特征值;

所述cdn边缘节点判断所述第二特征值与所述第三特征值是否一致;

如果一致,则确定所述静态文件未被篡改;

如果不一致,则确定所述静态文件被篡改。

进一步的,所述cdn边缘节点判断所述响应消息中的静态文件是否被篡改,包括:

所述协商的计算方法,是由所述源站利用预先与所述cdn系统协商的计算方法。

进一步的,如果所述源站与所述用户终端之间存在多个cdn节点,所述cdn边缘节点将所述响应消息发送给所述用户终端包括:

所述cdn边缘节点利用所述多个cdn节点之间的预设私有协议对所述响应消息进行处理;

所述cdn边缘节点将所述处理后的响应消息通过所述多个cdn节点进行传输;

当用户终端侧的cdn边缘节点接收到所述处理后的响应消息时,利用所述预设私有协议对所述处理后的响应消息进行还原,并将还原的响应消息发送给所述用户终端。

根据本发明实施例的另一个方面,提供了一种基于内容分发网络的篡改干预装置,应用于内容分发网络cdn边缘节点,所述装置包括:

接收单元,用于接收用户终端的请求消息,以及接收所述源站的响应消息;

回源单元,用于确定回源的源站,并发起回源请求;

第一发送单元,用于将所述响应消息发送给所述用户终端;

判断单元,用于判断所述响应消息中的静态文件是否被篡改;

缓存单元,用于在未被篡改的情况下,缓存所述静态文件;

处理单元,用于在被篡改的情况下,不缓存所述静态文件,当再次接收到请求所述静态文件的消息时,重新发起所述回源请求,若所述源站返回的是正常响应且所述源站与所述cdn边缘节点之间无篡改发生,缓存所述正常响应的静态文件,实现篡改恢复。

进一步的,应用于内容分发网络cdn边缘节点,所述装置包括:

所述接收单元包括第一接收单元和第二接收单元,其中,所述第一接收单元用于接收用户终端的请求消息;所述第二接收单元用于接收所述源站的响应消息。

进一步的,所述判断单元包括:

第一判断模块,用于判断是否是首次接收到请求所述静态文件的请求消息;

获取模块,用于从所述响应消息中获取至少两个第一特征值;

第二判断模块,用于判断所述至少两个第一特征值是否一致;

第一确定模块,用于在一致的情况下,确定所述静态文件未被篡改;以及在不一致的情况下,确定所述静态文件被篡改。

进一步的,所述判断单元用于判断是否是首次接收到请求所述静态文件的请求消息;从所述响应消息中获取至少两个第一特征值并判断所述至少两个第一特征值是否一致;以及用于在一致的情况下,确定所述静态文件未被篡改,并且在不一致的情况下,确定所述静态文件被篡改。

进一步的,所述判断单元包括:

提取模块,用于提取所述响应消息中携带的第二特征值,其中,所述第二特征值唯一标识所述静态文件;

计算模块,用于利用与所述源站协商的计算方法,根据所述响应消息计算得到第三特征值,所述计算方法是由所述源站利用预先与cdn系统协商的计算方法;

第三判断模块,用于判断所述第二特征值与所述第三特征值是否一致;

第二确定模块,用于在一致的情况下,确定所述静态文件未被篡改;以及在不一致的情况下,确定所述静态文件被篡改。

进一步的,所述判断单元用于提取所述响应消息中携带的第二特征值,其中,所述第二特征值唯一标识所述静态文件;用于利用与所述源站协商的计算方法,根据所述响应消息计算得到第三特征值,所述计算方法是由所述源站利用预先与cdn系统协商的计算方法;用于判断所述第二特征值与所述第三特征值是否一致;以及用于在一致的情况下,确定所述静态文件未被篡改,并且在不一致的情况下,确定所述静态文件被篡改。

进一步的,所述第一发送单元包括:

处理模块,用于在所述源站与所述用户终端之间存在多个cdn节点的情况下,利用所述多个cdn节点之间的预设私有协议对所述响应消息进行处理,处理后的响应消息不能被其他设备识别;

传输模块,用于将所述处理后的响应消息通过所述多个cdn节点进行传输;

还原模块,用于作为用户终端侧的cdn边缘节点接收到所述处理后的响应消息时,利用所述预设私有协议对所述处理后的响应消息进行还原,并将还原的响应消息发送给所述用户终端。

根据本发明实施例的再一个方面,提供了一种基于内容分发网络的篡改干预系统,包括:用户终端、内容分发网络cdn边缘节点以及源站,其中,

所述用户终端,用于发送请求消息,其中所述请求消息请求的是静态文件;

所述cdn边缘节点包括所述基于内容分发网络的篡改干预装置;

所述源站包括:

第三接收单元,用于接收所述cdn边缘节点发送的回源请求;

第二发送单元,用于向所述cdn边缘节点发送响应消息。

进一步的,所述源站还包括:

计算单元,用于利用预先与所述cdn边缘节点协商的计算方法计算得到唯一标识所述静态文件的特征值,并将所述特征值置于所述响应消息中。

本发明实施例的技术方案通过cdn边缘节点判断文件是否被恶意篡改,如无恶意篡改,则正常缓存文件,如有恶意篡改,则不缓存该文件,后续用户继续访问此文件时,需要回源重新请求,当源站响应正常且源站与cdn边缘节点之间无篡改发生,此时篡改恢复。cdn边缘节点通过判断能够及时发现文件被恶意篡改,且不缓存被恶意篡改的文件;无需等缓存到期才进行恶意篡改的恢复,只要用户下次请求该文件即可进行恶意篡改的恢复,缩短了篡改恢复的时间,及时将异常数据恢复,保证用户体验。另外,通过预设的私有协议在多个cdn节点之间传输不能被其他设备识别的数据,保证cdn节点之间传输的内容不会被恶意篡改,同时可以有效的针对网络状况及时修改拥塞策略,提高传输速度与稳定性,保证用户体验。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的基于内容分发网络的篡改干预方法的流程图;

图2是本发明实施例提供的基于内容分发网络的篡改干预装置的结构框图;

图3是本发明实施例提供的基于内容分发网络的篡改干预系统的结构框图;

图4是本发明实施例提供的基于内容分发网络的篡改干预系统的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本发明实施例提供了一种基于内容分发网络的篡改干预方法,如图1所示,该方法包括如下步骤s101至步骤s106。需要说明的是本发明实施例中的篡改干预包括篡改预防以及篡改恢复,换而言之,本发明实施例不但可以预防静态文件被篡改,而且可以将被篡改的静态文件进行恢复。

步骤s101,cdn边缘节点接收用户终端的请求消息,其中该请求消息请求的是静态文件;本实施例中的静态文件可以是源站新发布的静态文件或者缓存已过期的静态文件;

步骤s102,cdn边缘节点确定回源的源站,并发起回源请求;具体的,可以由cdn边缘节点的源站监控模块确定回哪个源站;

步骤s103,cdn边缘节点接收源站的响应消息,并将响应消息发送给用户终端;

步骤s104,cdn边缘节点判断响应消息中的静态文件是否被篡改;

步骤s105,如果未被篡改,则缓存静态文件;

步骤s106,如果被篡改,则不缓存静态文件,当再次接收到请求该静态文件的消息时,cdn边缘节点重新发起回源请求,若源站返回的是正常响应且源站与cdn边缘节点之间无篡改发生,cdn边缘节点缓存该正常响应的静态文件,实现篡改恢复。

上述实施例的方法,用户请求源站新发布的静态文件或者缓存已过期的静态文件时,cdn边缘节点增加判断文件是否被恶意篡改的步骤,如无恶意篡改,则正常缓存文件,如有恶意篡改,则不缓存该文件,后续用户继续访问此文件时,需要回源重新请求,当源站响应正常且源站与cdn边缘节点之间无篡改发生,此时篡改恢复。cdn边缘节点通过判断能够及时发现文件被恶意篡改,且不缓存被恶意篡改的文件;无需等缓存到期才进行恶意篡改的恢复,只要用户下次请求该文件即可进行恶意篡改的恢复,缩短了篡改恢复的时间,及时将异常数据恢复,保证用户体验。

本发明实施例提供了以下两种cdn边缘节点判断静态文件是否被篡改的方法,下面分别进行说明。

(1)多次判定从响应消息中获取的特征值,具体步骤如下:cdn边缘节点判断是否是首次接收到请求该静态文件的请求消息;如果不是,则cdn边缘节点分别从对应的至少两个响应消息中获取至少两个第一特征值;cdn边缘节点判断这至少两个第一特征值是否一致;如果一致,则确定静态文件未被篡改;如果不一致,则确定静态文件被篡改。

本方法基于概率统计,即篡改现象偶发且不可预期。如果cdn边缘节点首次接收到请求该静态文件的请求消息,则按照本方法,不缓存获取的静态文件,并等待后续用户请求该静态文件,以再次回源获得该静态文件,从而判断这两次或更多次的特征值是否一致。

具体的,上述第一特征值可以是静态文件的md5值(messagedigestalgorithmmd5,即消息摘要算法第五版),或者其他在静态文件被篡改以后会发生变化的值,以便能够及时通过该特征值的变化,确定出静态文件被篡改。

使用本方法判断静态文件是否被篡改,缩短了文件异常的恢复时间,比如缓存时间为1天的文件,不需要等1天后才进行恶意篡改的恢复,只要用户下一次请求该文件即进行恶意篡改的恢复,大大减少了数据恢复的时间。

(2)cdn边缘节点与源站协商一种计算方法,cdn边缘节点和源站均利用该计算方法计算特征值,cdn边缘节点比较自身计算的值与源站计算的值是否一致,来确认文件的唯一性。具体步骤如下:cdn边缘节点提取响应消息中携带的第二特征值,其中,第二特征值唯一标识静态文件,由源站利用预先与cdn边缘节点协商的计算方法计算得到;cdn边缘节点利用该计算方法,根据响应消息计算得到第三特征值;cdn边缘节点判断第二特征值与第三特征值是否一致;如果一致,则确定静态文件未被篡改;如果不一致,则确定静态文件被篡改。

具体的,源站计算的第二特征值可以携带在响应头中。例如,第二特征值和第三特征值可以是根据从响应消息的http头获取的len信息以及文件md5值进行计算得到的。

本方法基于与预先协商的计算方法,如果cdn边缘节点计算的值与源站计算的值不一致,则判断出静态文件被篡改,不缓存该静态文件,后续用户继续请求访问此文件时,重复进行上述回源以及判断是否被篡改的过程,直到两个值一致,才缓存该文件。使用本方法判断静态文件是否被篡改,能唯一确认,保证cdn边缘节点不会缓存被恶意篡改的文件,大大缩短了篡改恢复时间。

在实际的网络环境中,源站与用户终端之间可能存在多个cdn节点,用户请求文件到cdn边缘节点回源获取文件的过程中,需要经过这多个cdn节点的传输,cdn节点之间链路不可控,也存在篡改文件的可能。

考虑到这种情况,本发明优选实施例提供了防止cdn节点之间传输的文件不会被篡改的实现方法,具体的,cdn边缘节点将响应消息发送给用户终端包括:cdn边缘节点利用多个cdn节点之间的预设私有协议对响应消息进行处理,处理后的响应消息不能被其他设备识别;cdn边缘节点将处理后的响应消息通过多个cdn节点进行传输;当用户终端侧的cdn边缘节点接收到处理后的响应消息时,利用预设私有协议对处理后的响应消息进行还原,并将还原的响应消息发送给用户终端。

本优选实施例通过预设的私有协议在多个cdn节点之间进行数据传输,可直观理解为在多个cdn节点间搭建了隧道,隧道中内容对外显示为乱码,即不能被其他设备识别。由此可以保证cdn节点之间传输的内容不会被恶意篡改,同时可以有效的针对网络状况及时修改拥塞策略,提高传输速度与稳定性,保证用户体验。另外,结合上述判断文件是否被篡改的方法(1)或(2),能够全链路保证内容不会被恶意篡改。

本发明实施例还提供了一种基于内容分发网络的篡改干预装置,应用于cdn边缘节点,可以用于实现上述篡改干预方法,具体实现细节可参考上述方法实施例。如图2所示,该装置包括:第一接收单元21、回源单元22、第二接收单元23、第一发送单元24、判断单元25、缓存单元26和处理单元27。

第一接收单元21,用于接收用户终端的请求消息,其中该请求消息请求的是源站新发布的静态文件或者缓存已过期的静态文件;

回源单元22,连接至第一接收单元21,用于确定回源的源站,并发起回源请求;

第二接收单元23,连接至回源单元22,用于接收源站的响应消息;

第一发送单元24,连接至第二接收单元23,用于将响应消息发送给用户终端;

判断单元25,连接至第二接收单元23,用于判断响应消息中的静态文件是否被篡改;

缓存单元26,连接至判断单元25,用于在未被篡改的情况下,缓存静态文件;

处理单元27,连接至判断单元25,用于在被篡改的情况下,不缓存静态文件,当再次接收到请求该静态文件的消息时,重新发起回源请求,若源站返回的是正常响应且源站与cdn边缘节点之间无篡改发生,缓存该正常响应的静态文件,实现篡改恢复。

需要说明的是,本发明实施例中的第一接收单元21和第二接收单元23也可以合并成为一个接收单元,通过该合并后的接收单元接收用户终端的请求消息,以及接收源站的响应消息;此时也可以看作是该合并后的接收单元包括了第一接收单元21和第二接收单元23。因此,是否将第一接收单元21和第二接收单元23合并为一个接收单元,可根据实际需要进行设定,本发明对此不作限定。

上述实施例的装置,cdn边缘节点通过判断能够及时发现文件被恶意篡改,且不缓存被恶意篡改的文件;无需等缓存到期才进行恶意篡改的恢复,只要用户下次请求该文件即可进行恶意篡改的恢复,缩短了篡改恢复的时间,及时将异常数据恢复,保证用户体验。

在一个实施例中,判断单元25包括:第一判断模块,用于判断是否是首次接收到请求静态文件的请求消息;获取模块,连接至第一判断模块,用于在不是首次接收的情况下,分别从对应的至少两个响应消息中获取至少两个第一特征值;第二判断模块,连接至获取模块,用于判断至少两个第一特征值是否一致;第一确定模块,连接至第二判断模块,用于在一致的情况下,确定静态文件未被篡改;以及在不一致的情况下,确定静态文件被篡改。本实施例中的判断单元25适用于上述判断静态文件是否被篡改的方法(2)。

适用于上述判断静态文件是否被篡改的方法(3)中的判断单元25包括:提取模块,用于提取响应消息中携带的第二特征值,其中,第二特征值唯一标识静态文件,由源站利用预先与cdn边缘节点协商的计算方法计算得到;计算模块,用于利用计算方法,根据响应消息计算得到第三特征值;第三判断模块,连接至计算模块与提取模块,用于判断第二特征值与第三特征值是否一致;第二确定模块,连接至第三判断模块,用于在一致的情况下,确定静态文件未被篡改;以及在不一致的情况下,确定静态文件被篡改。

需要说明的是,本发明实施例中的判断单元25也可以不包括第一判断模块、第二判断模块和第一确定模块,而直接通过判断单元25判断是否是首次接收到请求静态文件的请求消息;从响应消息中获取至少两个第一特征值并判断至少两个第一特征值是否一致;以及用于在一致的情况下,确定静态文件未被篡改,并且在不一致的情况下,确定静态文件被篡改。

此外,判断单元25还可以不包括提取模块、计算模块、第三判断模块,以及第二确定模块,而直接通过判断单元25提取所述响应消息中携带的第二特征值,其中,第二特征值唯一标识所述静态文件;利用与源站协商的计算方法,根据响应消息计算得到第三特征值,该计算方法是由源站利用预先与cdn系统协商的计算方法;判断第二特征值与第三特征值是否一致;以及用于在一致的情况下,确定静态文件未被篡改,并且在不一致的情况下,确定所述静态文件被篡改。

因此,判断单元25是否包括第一判断模块、第二判断模块、第一确定模块、取模块、计算模块、第三判断模块,以及第二确定模块,可根据实际需要进行设定,本发明对此不作限定。

优选的,第一发送单元24包括:处理模块,用于在源站与用户终端之间存在多个cdn节点的情况下,利用多个cdn节点之间的预设私有协议对响应消息进行处理,处理后的响应消息不能被其他设备识别;传输模块,连接至处理模块,用于将处理后的响应消息通过多个cdn节点进行传输;还原模块,用于作为用户终端侧的cdn边缘节点接收到处理后的响应消息时,利用预设私有协议对处理后的响应消息进行还原,并将还原的响应消息发送给用户终端。这样能够保证cdn节点之间传输的内容不会被恶意篡改。

本发明实施例还提供了一种基于内容分发网络的篡改干预系统,如图3所示,该系统包括:用户终端10、cdn边缘节点20以及源站30。

用户终端10,用于发送请求消息,其中该请求消息请求的是源站新发布的静态文件或者缓存已过期的静态文件;

cdn边缘节点20,连接至用户终端10,包括上述实施例所述的基于内容分发网络的篡改干预装置;

源站30,连接至cdn边缘节点20,包括:第三接收单元31,用于接收cdn边缘节点20发送的回源请求;第二发送单元32,连接至第三接收单元31,用于向cdn边缘节点20发送响应消息。

上述实施例的系统,cdn边缘节点通过判断能够及时发现文件被恶意篡改,且不缓存被恶意篡改的文件;无需等缓存到期才进行恶意篡改的恢复,只要用户下次请求该文件即可进行恶意篡改的恢复,缩短了篡改恢复的时间,及时将异常数据恢复,保证用户体验。

优选的,源站30还可以包括:计算单元,连接至第三接收单元31,用于利用预先与cdn边缘节点协商的计算方法计算得到唯一标识静态文件的特征值,并将该特征值置于响应消息中。

下面结合图4对本发明的方案进行详细说明。

如图4所示,用户终端10与源站30之间存在多个cdn节点,用户请求静态文件,用户终端10发送请求到cdn边缘节点20a,cdn边缘节点20a通过预设私有协议向cdn边缘节点20b转发该请求;cdn边缘节点20b回源站30获取静态文件,使用上述方法(1)或(2)判断静态文件是否被篡改,以决定是否缓存该文件,并将响应通过预设私有协议发送给cdn边缘节点20a。

如果判断出静态文件被篡改,则cdn边缘节点20b不缓存该静态文件,cdn边缘节点20a对接收到的响应进行处理,得到用户终端10能够识别的静态文件,将该静态文件返回给用户终端10,同时不缓存该静态文件,后续用户访问该文件,仍进行回源请求。

如果判断出静态文件未被篡改,则cdn边缘节点20b缓存该静态文件。cdn边缘节点20a对接收到的响应进行处理,得到用户终端10能够识别的静态文件,将该静态文件返回给用户终端10,同时将响应缓存,后续用户继续访问,则直接将缓存的响应给用户。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1