一种认证方法、内容分发网络CDN和内容服务器与流程

文档序号:16886642发布日期:2019-02-15 22:41阅读:362来源:国知局
一种认证方法、内容分发网络CDN和内容服务器与流程

本申请涉及通信技术领域,尤其涉及一种认证方法、内容分发网络cdn和内容服务器。



背景技术:

通常,内容服务商(internetcontentprovider,icp)将内容资源(音乐、视频等)存储在云存储服务器中,当客户端需要访问某个内容资源时,从云存储服务器中获取。随着访问量的增加,为了缓解云存储服务器的压力,各个icp可以把部分内容资源分配到部署在各个位置的节点服务器中,该节点服务器即内容分发网络(contentdeliverynetwork,cdn)。当终端设备需要访问某个内容资源时,可以从cdn中获取,从而缓解了云存储服务器的压力。

图1示出了现有技术中内容分发过程的示意图。在该过程中,云存储服务器为内容服务器分配一个密钥,然后内容服务器和cdn共享该密钥。客户端请求访问某个内容资源的过程为:客户端向内容服务器发送内容访问请求,该内容访问请求用于请求访问内容资源,内容服务器向客户端反馈响应信息,该响应信息中携带有一个认证凭证(token),该认证凭证是基于云存储服务器分配的密钥生成的。客户端接收到响应信息后,将该响应信息发送给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确定接收所述内容访问请求的时间不处于所述有效时间段内时,无需对第一认证凭证进行认证。通过这种方式,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中存储的内容资源的安全性。

在一种可能的设计中,所述内容服务器基于所述第二密钥生成第二认证凭证,包括:所述内容服务器根据所述第二密钥、所述内容资源的内容文件路径和内容编号、第二有效时间段以及第二加密算法生成第二签名;其中,所述第二加密算法为所述云服务器分配的算法;所述第二有效时间段用于指示所述第二认证凭证有效的时间段;所述内容服务器根据所述第二签名生成所述第二认证凭证。

在本申请实施例中,内容服务器根据输入参数(包括内容资源的内容文件路径和内容编号、第一有效时间段)、云服务器分配的第二密钥和第二加密算法生成第二认证凭证。云服务器可以对第二认证凭证进行认证,当第二认证凭证认证通过后,云服务器才会将内容资源发送给客户端,有助于提高云存储服务器中存储的内容资源的安全性。

在一种可能的设计中,所述第一加密算法为对称加密算法、非对称加密算法、hash算法或hmac算法中的一种;所述第二加密算法为对称加密算法、非对称加密算法、hash算法或hmac算法中的一种。

在本申请实施例中,第一加密算法和第二加密算法还可以是其它算法,以上几种只是举例,本申请实施例对此不作限定。

第三方面,提供一种内容分发网络cdn。该内容分发网络cdn具有实现上述方法设计中内容分发网络cdn的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。

在一个可能的设计中,内容分发网络cdn的具体结构可包括接收器、处理器和发送器。接收器、处理器和发送器可执行上述第一方面或第一方面的任意一种可能的设计所提供的方法中的相应功能。

第四方面,提供一种内容服务器。该内容服务器具有实现上述方法设计中内容服务器的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。

在一个可能的设计中,内容服务器的具体结构可包括接收器和发送器。接收器和发送器可执行上述第二方面或第二方面的任意一种可能的设计所提供的方法中的相应功能。

第五方面,本申请实施例提供一种内容分发网络cdn,包括处理器和存储器。其中,存储器用于存储一个或多个计算机程序;当存储器存储的一个或多个计算机程序被处理器执行时,使得内容分发网络cdn能够实现第一方面或者第一方面的任意一种可能的设计的方法。

第六方面,本申请实施例提供一种内容服务器,包括处理器和存储器。其中,存储器用于存储一个或多个计算机程序;当存储器存储的一个或多个计算机程序被处理器执行时,使得内容服务器能够实现第二方面或者第二方面的任意一种可能的设计的方法。

第七方面,本申请实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当计算机程序在内容分发网络cdn上运行时,使得所述内容分发网络cdn执行第一方面或上述第一方面的任意一种可能的设计的方法。

第八方面,本申请实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当计算机程序在内容服务器上运行时,使得所述内容服务器执行第二方面或上述第二方面的任意一种可能的设计的方法。

第九方面,本申请实施例还提供一种包含计算机程序产品,当所述计算机程序产品在内容分发网络cdn上运行时,使得所述内容分发网络cdn执行第一方面或上述第一方面的任意一种可能的设计的方法。

第十方面,本申请实施例还提供一种包含计算机程序产品,当所述计算机程序产品在内容服务器上运行时,使得所述内容服务器执行第二方面或上述第二方面的任意一种可能的设计的方法。

附图说明

图1为现有技术中的内容分发过程的示意图;

图2为本申请实施例提供的一种客户端的结构示意图;

图3为本申请实施例提供的一种应用场景的示意图;

图4为本申请实施例提供的一种认证方法的流程示意图;

图5为本申请实施例提供的一种内容分发网络cdn的结构示意图;

图6为本申请实施例提供的一种内容服务器的结构示意图;

图7为本申请实施例提供的一种内容分发网络cdn的结构示意图;

图8为本申请实施例提供的一种内容服务器的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

以下,对本申请中的部分用语进行解释说明,以便与本领域技术人员理解。

本申请实施例涉及的客户端,例如智能手机、平板电脑、掌上电脑、各类可穿戴设备、车载设备、计算机等设备。以客户端是智能手机为例,智能手机中为可以安装各种应用程序,以实现不同的功能。当然,客户端还可以是用于某一功能的服务器,例如,用于存储数据的服务器,可以是安装了客户端软件的设备,该设备可以是计算机或者终端设备等,也可以是逻辑概念,例如,为软件模块或者虚拟化实现下的一个虚拟机,本申请实施例中不作限制。

在本申请实施例中,客户端还可以被称为其它名称,比如终端设备,或者用户设备(userequipment,ue)等,即本申请实施例对客户端的名称不作限定。

本申请实施例涉及的应用程序,为完成某项或多项特定工作的计算机程序。以智能手机为例,智能手机运行一个应用程序的计算机程序时,可以显示该应用程序的显示界面,在该显示界面中,可以实现人机交互。通常,一个应用程序可以实现特定的功能。例如应用程序包括:例如,短信应用、彩信应用、各种邮箱应用、微信、腾讯聊天软件(qq)、whatsappmessenger、连我(line)、照片分享(instagram)、kakaotalk、钉钉等。

本申请实施例涉及的内容服务器,提供特定的网络内容资源的内容服务商,比如京东、亚马逊、淘宝、新浪等等。

在本申请实施例中,内容服务器还可以被称为其它名称,比如内容服务商、网络内容供应商、网络内容提供商等等,即本申请实施例对内容服务器的名称不作限定,只要表述如上的意思即可。

本申请实施例涉及的内容分发网络,即部署在各个地方的节点服务器,内容服务商可以将不同的内容资源放置在不同的cdn中。以内容服务商是京东为例,京东可以将发货点是成都的内容资源(比如商品信息)分配到位于成都的cdn中。当成都用户在访问所述内容资源时,可以从所述位于成都的cdn中获取。

本申请实施例涉及的云存储服务器,用于存储内容资源的服务器。通常,内容服务商会将全部内容资源存储在云存储服务器中。其中,内容资源可以包括多种类型,比如音乐、视频、图像等等。在本申请实施例中,云存储服务器还可以被称为其它名称,比如云服务器、云端等等,即本申请实施例对云存储服务器的名称不作限定,只要表述如上的意思即可。

本申请实施例涉及的多个,是指两个或大于两个。

另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。

下面介绍客户端的一种可能的结构。以客户端是智能手机为例,图2示出了一种智能手机的结构示意图。参阅图2所示,所述手机200包括:射频(radiofrequency,rf)电路210、处理器220、存储器230、输入单元240和显示单元250。本领域技术人员可以理解,图2中示出的手机的结构并不构成对手机的限定,本申请实施例提供的手机可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图2对所述手机200的各个构成部件进行具体的介绍:

所述rf电路210可用于通信或通话过程中,数据的接收和发送。手机200可以通过所述rf电路210与内容服务器或者cdn进行信息交互。比如,手机200可以通过所述rf电路210向内容服务器发送内容访问请求,并通过所述rf电路210接收内容服务器反馈的信息等。通常,所述rf电路210包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(lownoiseamplifier,lna)、双工器等。

此外,rf电路210可以通过无线通信与内容服务器或者cdn通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystemofmobilecommunication,gsm)、通用分组无线服务(generalpacketradioservice,gprs)、码分多址(codedivisionmultipleaccess,cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、长期演进(longtermevolution,lte)、电子邮件、短消息服务(shortmessagingservice,sms)等。

所述存储器230可用于存储各个应用程序的软件程序和/或模块。所述处理器220通过运行存储在所述存储器230的某个应用程序的软件程序和/或模块,从而运行所述应用程序,实现特定的功能。

可选的,所述存储器230可以主要包括存储程序区和存储数据区。其中,存储程序区可存储操作系统、各种应用程序(比如微信、qq)的软件程序和/或模块等;存储数据区可存储手机200在使用过程中所创建的数据(比如各种图片、视频文件等多媒体文件)等。

此外,所述存储器230可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

所述处理器220是所述手机200的控制中心,利用各种接口和线路连接各个部件,通过运行或执行存储在所述存储器230内的软件程序和/或模块,以及调用存储在所述存储器230内的数据,执行所述手机200的各种功能和处理数据,从而实现基于手机200的多种业务。

所述显示单元250可用于显示由用户输入的信息或提供给用户的信息以及所述手机200的各种菜单。所述显示单元250即为所述手机200的显示系统,用于呈现界面,实现人机交互。所述显示单元250可以包括显示面板。可选的,所述显示面板可以采用液晶显示屏(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置。

以手机200运行京东app,与内容服务器交互为例。存储器230中存储有京东app的软件程序和/或模块,用户通过输入单元240(比如触摸屏)触发手机200中的京东app的图标后,处理器220运行存储在存储器230中的京东app的软件程序和/或模块,打开京东app,在显示单元250上显示京东app的显示界面。若处理器220检测到用户触发点击所述显示界面中的某个商品的操作时,处理器220生成第一内容访问请求,该第一内容访问请求用于请求访问所述商品的内容资源(比如商品信息),rf电路210将该内容访问请求发送给京东的内容服务器。然后,手机200通过rf电路210接收内容服务器反馈的第二内容访问请求,所述第二内容访问请求中携带有第一认证凭证和第二认证凭证。关于第一认证凭证和第二认证凭证的作用,将在后文中介绍。

尽管未示出,图2示出的手机200还可以包括其它部件,比如wifi模块、通信接口、显示单元、摄像头、电源、至少一种传感器、音频电路等等,在此不再赘述。

图3示出了本申请实施例提供的应用场景的示意图。如图3所示,应用场景包括客户端、内容服务器、云存储服务器、至少一个cdn(图3中以cdn1、cdn2、cdn3这个三个cdn为例)。当然,图3也可以理解为内容服务器、云存储服务器、客户端以及至少一个cdn之间的信息交互示意图。其中,图3中的客户端可以是图2所示的手机200。通常,内容服务器可以将全部内容资源存储在云存储服务器中,将部分内容资源存储在不同的cdn中。

如图3所示,每个cdn为内容服务器分配一个密钥。比如,cdn1为内容服务器分配第一密钥,cdn2为内容服务器分配第三密钥,cdn3为内容服务器分配第四密钥,云存储服务器为内容服务器分配第二密钥。

客户端需要访问某个内容资源时,向内容服务器发送第一内容访问请求,所述第一内容访问请求用于请求内容资源(在前述内容中,已经以客户端是手机200为例,且以京东app为例进行了举例,在此不多赘述)。内容服务器根据第一内容访问请求确定与所述第一内容访问请求对应的cdn(具体过程,将在后文介绍)。比如,与第一内容访问请求对应的cdn是cdn1。内容服务器基于cdn1分配的第一密钥生成第一认证凭证,内容服务器基于云存储服务器分配的第二密钥生成第二认证凭证。然后,内容服务器向客户端反馈第二内容访问请求,该第二内容访问请求中携带有第一认证凭证和第二认证凭证。

客户端将第二内容访问请求转发给cdn1,cdn1通过第一密钥对第一认证凭证进行认证。当第一认证凭证认证通过时,若cdn1中存储有所述内容资源,则将所述内容资源发送给所述客户端。当第一认证凭证认证通过时,若cdn1中没有所述内容资源,则所述cdn1将所述第二内容请求发送给云存储服务器,所述云存储服务器通过第二密钥对第二认证凭证进行认证,若第二认证凭证认证通过,则云存储服务器将所述内容资源发送给所述cdn1,所述cdn1将所述内容资源发送给所述客户端。

通过以上描述可知,本申请实施例中,至少一个cdn中的每个cdn为内容服务器分配一个密钥,且云存储服务器也为内容服务器分配一个密钥。云存储服务器为内容服务器分配的密钥和每个cdn为内容服务器分配的密钥可以不同。这样的话,即便某个cdn被入侵者攻击,导致该cdn的密钥泄露,也不会对云存储服务器产生影响,因为,所述某个cdn的密钥和云存储服务器的密钥并不相同。通过这种方式,有助于提高云存储服务器中存储的内容资源的安全性。

图4示出了本申请实施例提供的一种认证方法的流程图。该方法可以适用于图3所示的应用场景或者类似的应用场景中,下文中以图3所示的应用场景为例进行说明。如图4所述,所述流程包括:

s401:cdn1为内容服务器分配第一密钥,cdn2为内容服务器分配第三密钥,cdn3为内容服务器分配第四密钥,云存储服务器为内容服务器分配第二密钥。

需有说明的是,虽然图4中各个cdn以及云存储服务器为内容服务器分配密钥都用s401表示,但是在实际应用过程中,各个cdn以及云存储服务器为内容服务器分配密钥可以同时发生,也可以不同时发生。

在本申请实施例中,s401可以周期性的发生,即各个cdn以及云存储服务器可以周期性的为内容服务器分配密钥。比如,云存储服务器和各个cdn可以分别以一定的周期为内容服务器分配密钥。其中,云存储服务器的分配周期和cdn的分配周期可以相同,也可以不同。当然,s401也可以只发生一次。比如,云存储服务器以及各个cdn在初次使用时,为内容服务器分配密钥,在之后的使用过程中,无需再次为内容服务器分配密钥。

s402:客户端向内容服务器发送第一内容访问请求,相应的,内容服务器接收客户端发送的第一内容访问请求。

以客户端是手机为例,用户在使用手机中的app时,手机可以生成内容访问请求。用户使用不同的app时,手机生成的内容访问请求不同。以app是音乐播放器为例,用户在音乐播放器的显示界面中的输入框中输入要搜索某个音乐后,点击搜索按钮后,手机将生成第一内容访问请求。该第一内容访问请求用于请求访问内容资源(即所述音乐)。

在本申请实施例中,内容服务器接收客户端发送的第一内容访问请求后,可以对客户端的合法性进行验证。作为一种示例,以客户端是手机为例,手机生成的第一内容访问请求中可以携带有所述手机的设备标识信息,所述设备标识信息可以用于指示所述手机是否为合法用户。所述设备标识信息可以包括所述手机的设备标识、ip地址、mac地址等等。内容服务器接收到所述手机发送的第一内容访问请求后,可以通过所述第一内容访问请求中携带的设备标识信息验证所述手机是否为合法用户。当内容服务器验证手机为非合法用户时,向该手机反馈响应信息,所述响应信息用于指示内容访问失败,手机无需继续进行后续步骤。若内容服务器验证手机为合法用户,内容服务器继续进行后续步骤。

作为另一种示例,手机生成的第一内容访问请求中还可以携带有当前登陆app的账号信息以及订购的业务信息。以客户端是手机为例,用户使用手机中的app时,可能注册账户,并通过该账户订购了该app提供的某项业务。若手机检测到该app中的某项业务被触发,生成第一内容访问请求,那么所述第一内容业务请求中可以携带有所述app的当前登陆的账户信息以及该账户信息所订购的业务信息。内容服务器接收到所述第一内容访问请求后,根据所述账户信息以及所述订购的业务信息,为所述手机提供相应的内容资源。举例来说,用户在爱奇艺app中注册账号,并订购vip业务,那么用户点击爱奇艺app显示界面中的具有某个vip权限的电影时,手机向内容服务器发送第一内容访问请求,该第一内容访问请求用户请求访问所述电影,所述第一内容访问请求中携带有所述账号信息以及订购的业务信息。内容服务器根据所述账号信息和所述订购的业务信息,向用户提供所述电影。若手机并未订购所述vip业务,则第一内容访问请求中没有订购的业务信息。内容服务器根据所述手机的账户信息,确定所述手机未订购该业务,内容服务器可以向所述手机反馈响应信息,该响应信息用于指示无法访问所述内容资源。

作为另一种示例,手机生成的第一内容访问请求中还可以携带有请求访问的内容资源的内容编号。所述内容编号用于标识所述内容资源。以手机中的音乐播放器为例,该音乐播放器的显示界面中呈现的音乐中,每个音乐具有一个编号,当用户触发某个音乐时,手机可以确定该音乐的编号,并将该编号携带于第一内容访问请求中。关于内容编号的使用将在后文中介绍。

s403:内容服务器确定与所述第一内容访问请求对应的cdn。

在本申请实施例中,s403可以有多种实现方式。一种可能的实现方式为,内容服务器在为各个cdn分配内容资源时,可以建立内容资源和cdn之间的映射关系。内容服务器接收到第一内容访问请求后,从该映射关系中,确定于所述第一内容访问请求所请求的内容资源对应的cdn。又一种可能的实现方式为,如前述内容可知,第一内容访问请求中可以携带ip地址,内容服务器中可以存储ip地址与cdn之间的映射关系。内容服务器接收到第一内容访问请求后,从该映射关系中,确定于所述第一内容访问请求中携带的ip地址对应的cdn。在这种方式中,不同的cdn可以管理不同的客户端。另一种可能的实现方式为,第一内容访问请求中还可以携带客户端当前所处的地理位置信息,内容服务器中可以存储客户端所处的地理位置信息与cdn之间的映射关系。内容服务器接收到第一内容访问请求后,从该映射关系中,确定与所述地理位置对应的cdn。在这种方式中,内容服务器可以根据客户端当前所处的地理位置信息,确定适合客户端发送的第一内容访问请求的cdn。

在下文中,以内容服务器确定与所述第一内容访问请求所请求的内容资源对应的cdn是cdn1为例进行说明。

如前述内容可知,内容服务器中存储有各个cdn分配的密钥。因此,当内容服务器确定与所述第一内容访问请求所请求的内容资源对应的cdn是cdn1时,内容服务器可以基于cdn1分配的第一密钥生成第一认证凭证,即s404。

s404:内容服务器基于cdn1分配的第一密钥生成第一认证凭证,基于云存储服务器分配的第二密钥生成第二认证凭证。

下面分别介绍内容服务器生成第一认证凭证和第二认证凭证的过程。需要说明的是,以下描述的内容服务器生成第一认证凭证和第二认证凭证的过程只是举例,并不是限定。在实际应用中,内容服务器也可以通过其它方式生成第一认证凭证和第二认证凭证,本申请实施例不作限定。

一,内容服务器基于第一密钥生成第一认证凭证的过程如下:

第一步,内容服务器确定第一内容访问请求所请求的内容资源的第一内容文件路径。第二步,内容服务器建立第一有效时间段。第三步,内容服务器基于输入参数和第一加密算法生成第一签名,其中,输入参数包括第一内容文件路径、内容编号、第一密钥、第一有效时间段。第四步,内容服务器根据第一签名生成第一认证凭证。

需要说明的是,内容服务器中可以存储内容资源和内容文件路径之间的映射关系。比如,第一内容访问请求所请求的内容资源是一首歌曲,则内容服务器根据内容资源和内容文件路径之间的映射关系确定所述歌曲的内容文件路径。因此,在第一步中,内容服务器接收到第一内容访问请求后,可以确定所述第一内容服务器所请求的内容资源的第一内容文件路径。

在第二步中,内容服务器可以设置第一有效时间段,该第一有效时间段可以理解为第一认证凭证有效的时间段。其中,第二步和第一步之间的执行顺序不限定。

在第三步中,内容服务器使用的第一加密算法可以是cdn1分配的加密算法。需要说明的是,各个cdn除了可以为内容服务器分配密钥,还可以为内容服务器分配加密算法。不同的cdn可以为内容服务器分配不同的加密算法。当然,第一加密算法也可以不是cdn1分配的加密算法,而采用其它加密算法,比如第一加密算法是cdn1预设的加密算法。

可选的,第一加密算法可以是对称加密算法、非对称加密算法、hash算法或hmac算法等等。以第一加密算法是hash算法为例,内容服务器根据hash算法和输入参数生成第一签名。其中,输入参数可以包括第一有效时间段、第一内容文件路径、内容编号、第一密钥。

在第四步中,内容服务器根据第一签名生成第一认证凭证。通常,第一认证凭证有两个字段组成。其中,第一字段是第一签名,第二字段是第一有效时间,或者,第一字段可以是第一有效时间,第二字段可以是第一签名。

二,内容服务器基于第二密钥生成第二认证凭证的过程如下:

第一步,内容服务器确定第一内容访问请求所请求的内容资源的第一内容文件路径。第二步,内容服务器建立第二有效时间段。第三步,内容服务器基于输入参数和第二加密算法生成第二签名,其中,输入参数包括第一内容文件路径、内容编号、第二密钥、第二有效时间段。第四步,内容服务器根据第二签名生成第二认证凭证。

其中,第一步与前述的内容服务器基于第一密钥生成第一认证凭证中的第一步类似,不多赘述。第二步中,第二有效时间段可以与前述的第一有效时间段相同,或者不同。若第二有效时间段与第一有效时间不同,第二有效时间段可以大于第一有效时间段。第三步中,第二加密算法可以是云存储服务器为内容服务器分配的加密算法,也可以是其它加密算法。

s405:内容服务器向客户端发送第二内容访问请求,所述第二内容访问请求中携带有第一认证凭证和第二认证凭证;相应的,客户端接收所述第二内容访问请求。

在本申请实施例中,第二内容访问请求中除了携带有第一认证凭证和第二认证凭证之外,还携带有其它信息,比如内容文件访问统一资源定位符(uniformresourcelocator,url)(包括第一内容文件路径和内容编号)、cdn1的cdn标识信息等,其中,内容文件访问url用于指示所述内容资源在cdn中的访问地址。关于第二内容访问请求中携带的其它信息的作用将在后续介绍。

s406:客户端将所述第二内容访问请求发送给cdn1;相应的,cdn1接收客户端发送的所述第二内容访问请求。

如前述内容可知,第二内容访问请求中还可以携带有cdn1的cdn标识信息,客户端接收到该第二内容访问请求后,通过识别cdn1的cdn标识信息,可以知道将第二内容访问请求发送给cdn1。

s407:cdn1接收到第二内容访问请求后,通过第一密钥对所述第一认证凭证进行认证。

需要说明的是,为了便于cdn1识别第二内容访问请求中的第一认证凭证,内容服务器可以在生成第一认证凭证和第二认证凭证的过程中,为第一认证凭证和第二认证凭证设置认证凭证标识。比如,认证凭证标识可以是认证凭证的名称(比如第一认证凭证的名称是token1,第二认证凭证的名称是token2),认证凭证标识还可以采用二进制表示,认证凭证标识为“1”的认证凭证为内容服务器基于cdn1分配的第一密钥生成的第一认证凭证,认证凭证标识为“0”的认证凭证为内容服务器基于云存储服务器分配的第二密钥生成的第二认证凭证。因此,cdn1接收到第二内容访问请求后,可以通过第一密钥对认证凭证标识为“1”的认证凭证(也即第一认证凭证)进行认证。内容服务器也可以只为第一认证凭证设置认证凭证标识,即具有认证凭证标识的认证凭证为内容服务器基于cdn1分配的第一密钥生成的第一认证凭证,不具有认证凭证标识的认证凭证为内容服务器基于云存储服务器分配的第二密钥生成的第二认证凭证。这样的话,cdn1接收到第二内容访问请求后,可以通过第一密钥对具有认证凭证标识的认证凭证(也即第一认证凭证)进行认证。

下面介绍cdn1通过第一密钥对第一认证凭证进行认证的过程。需要说明的是,下文介绍的cdn1通过第一密钥对第一认证凭证进行认证的过程只是举例,并不是限定。在实际应用中,cdn1还可以通过其它方式对第一认证凭证进行认证,本申请实施例不作限定。

如前述内容可知,第一认证凭证中包括两个字段,其中一个字段是第一有效时间段,另一个字段是第一签名。因此,cdn1对第一认证凭证的认证可以分两步进行。第一步,cdn1可以判断接收第二内容请求的时间是否在第一有效时间段内。举例来说,假设第一有效时间段为10:00-10:05,若cdn1在10:07接收到第二内容访问请求,则说明第二内容访问请求已经超期,cdn1无需进行对第一认证凭证进行认证,此时cdn1可以丢弃第二内容访问请求,或者向客户端反馈响应信息(该响应信息用于指示请求已经超期)。当cdn1确定接收第二内容访问请求的时间在第一有效时间段内时,可以继续进行第二步。第二步,cdn1判断第一签名是否正确。

如前述内容可知,第一签名是内容服务器根据输入参数(包括输入参数可以是第一有效时间段、第一内容文件路径、第一密钥)和第一加密算法计算得到的。因此,为了验证第一签名是否正确,一种可能的实现方式为,cdn1可以根据所述输入参数和第一加密算法重新计算得到一个第三签名,比较第三签名和第一签名是否相同,若相同,则说明第一签名正确,即第一认证凭证认证通过,若不相同,则说明第一签名不正确,即第一认证凭证认证不通过。

cdn1计算第三签名时,需要第一加密算法,以及输入参数。关于第一加密算法,需要说明的是,如前述内容可知,内容服务器在生成第一签名算法时,采用第一加密算法,而第一加密算法可以是cdn1分配的,也可以是cdn1自己预设的。如果内容服务器在生成第一签名算法时,采用的是cdn1分配的第一加密算法,那么cdn1在生成第二签名时,也采用第一加密算法。如果内容服务器在生成第一签名算法时,采用的不是cdn1分配的第一加密算法,而且其它算法,那么第二内容访问请求中可以携带所述其它算法的算法标识。当cdn1接收到第二内容访问请求时,根据所述算法标识,确定与所述算法标识对应的算法,并在生成第二签名时,也采用确定出的与所述算法标识对应的算法。也就是说,内容服务器在生成第一签名时采用加密算法和cdn1生成第三签名时采用的加密算法是相同的算法。

关于输入参数,需要说明的是,如前述内容可知,内容服务器生成第一签名时,采用的输入参数包括第一内容文件路径、内容编号、第一密钥、第一有效时间段。其中,第一密钥是cdn1分配给内容服务器的,所以cdn1知晓第一密钥。而第一有效时间段是第一认证凭证中的一个字段,第一内容文件路径和内容编号携带于第二内容访问请求中。因此,cdn1可以从第二内容访问请求中获取第一内容文件路径、内容编号,并读取第一认证凭证中的第一有效时间段。之后,cdn1根据第一内容文件路径、内容编号、第一有效时间段、第一密钥和第一加密算法,生成第三签名。

需要说明得是,如果客户端或者cdn1被入侵者攻击,导致第二内容访问请求中的第一内容文件路径或者内容编号被篡改,那么cdn1从第二内容访问请求中获取的第一内容文件路径或者内容编号是被篡改后的,那么cdn1根据被篡改后的第一内容文件路径、内容编号、第一有效时间段、第一密钥和第一加密算法生成的第三签名和第一签名是不同的,即第一认证凭证认证不通过。此时,cdn1可以丢弃第二内容访问请求,或者,向客户端反馈无法获取内容资源的响应信息。

如果第二内容访问请求中的第一内容文件路径和内容编号未被篡改,那么cdn1根据第一内容文件路径、内容编号、第一有效时间段、第一密钥和第一加密算法生成的第三签名和第一签名是相同,即第一认证凭证认证通过。

s408:cdn1确认所述第一认证凭证认证通过后,若所述cdn1中存储有所述内容资源,则执行s409;若所述cdn1中没有存储有所述内容资源,则执行s410。

s409:cdn1将所述内容资源发送给所述客户端。

在本申请实施例中,cdn1和云存储服务器分别为内容服务器分配不同的密钥,内容服务器根据cdn1分配的第一密钥生成第一认证凭证,cdn通过第一密钥对第一认证凭证进行认证,认证通过后,若cdn1中存储有客户端所请求的内容资源,则将该内容资源反馈给客户端,无需进行后续步骤,对于客户端来说,有助于降低获取内容资源的时延,而且在这一过程中,即便cdn1的密钥泄露,也不会对云存储服务中存储的内容资源造成威胁。

s410:cdn1将所述第二内容访问请求发送给所述云存储服务器。

在本申请实施例中,如果云存储服务器和cdn1采用的域名相同,则cdn1可以将第二内容访问请求转发给云存储服务器。

如果云存储服务器和cdn1采用不同的域名,那么cdn1向云存储服务器发送第二内容访问请求时,可以将第二内容访问请求中的内容文件访问url的域名替换为云存储服务器的域名,域名替换后的内容访问url用于指示所述内容资源在云存储服务器中的访问地址。然后,cdn1将包含域名替换后的内容文件访问url的第二内容访问请求发送给云存储服务器。

举例来说,域名替换之前,内容文件访问url为http://www.huawei.com/test/test.mp4,其中,www.huawei.com是cdn1的域名,cdn1将内容文件访问url中的cdn1的域名替换成云存储服务器的域名,则域名替换之后的内容文件访问url为http://myaccount.blob.core.windows.net/test/test.mp4,其中myaccount.blob.core.windows.net是云存储服务器的域名。

可选的,cdn1向所述云存储服务器发送的第二内容访问请求中可以不携带第一认证凭证。

s411:云存储服务器接收到第二内容访问请求后,通过第二密钥对第二内容访问请求中的第二认证凭证进行认证。

下面介绍云存储服务器通过第二密钥对第二认证凭证进行认证的过程。需要说明的是,下文介绍的云存储服务器通过第二密钥对第二认证凭证进行认证的过程只是举例,并不是限定。在实际应用中,云存储服务器还可以通过其它方式对第二认证凭证进行认证,本申请实施例不作限定。

如前述内容可知,第二认证凭证中包括两个字段,其中一个字段是第二有效时间段,另一个字段是第二签名。因此,云存储服务器对第二认证凭证的认证可以分两步进行。第一步,云存储服务器可以判断接收第二内容请求的时间是否在第二有效时间段内。当云存储服务器确定接收第二内容访问请求的时间在第二有效时间段内时,可以继续进行第二步。第二步,云存储服务器判断第二签名是否正确。

如前述内容可知,第二签名是内容服务器根据输入参数(包括第二有效时间段、第一内容文件路径、内容编号、第二密钥)和第二加密算法计算得到的。因此,为了验证第二签名是否正确,一种可能的实现方式为,云存储服务器可以据输入参数和第二加密算法重新计算得到一个第四签名,比较第四签名和第二签名是否相同,若相同,则说明第二签名正确,即第二认证凭证认证通过,若不相同,则说明第二签名不正确,第二认证凭证认证不通过。

云存储服务器计算第四签名时,需要第二加密算法,以及输入参数。关于第二加密算法和输入参数,与前述的s407中cdn1计算第三签名的过程类似,为了说明书的简洁,在此不多赘述。

需要说明得是,如果cdn1被入侵者攻击,导致第二内容访问请求中的第一内容文件路径或者内容编号被篡改,那么云存储服务器从第二内容访问请求中获取的第一内容文件路径或者内容编号是被篡改后的,那么云存储服务器根据被篡改后的第一内容文件路径、内容编号、第二有效时间段、第二密钥和第二加密算法生成的第四签名和第二签名是不同的,即第二认证凭证认证不通过。此时,云存储服务器可以丢弃第二内容访问请求,或者,向cdn1反馈无法获取内容资源的响应信息,然后cdn1将所述响应信息发送给客户端。

如果第二内容访问请求中的第一内容文件路径和内容编号未被篡改,那么云存储服务器根据第一内容文件路径、内容编号、第二有效时间段、第二密钥和第二加密算法生成的第四签名和第二签名是相同的,即第二认证凭证认证通过。

s412:云存储服务器确认第二认证凭证认证通过后,向cdn1发送所述内容资源。

s413:cdn1将所述内容资源发送给所述客户端。

通过以上描述可知,cdn和云存储服务器分别为内容服务器分配不同的密钥。即便cdn被入侵者攻击,导致该cdn的密钥泄露,也不会对云存储服务器产生影响,有助于提高云存储服务器中存储的内容资源的安全性。

通过以上的关于本申请实施例提供的认证方法的描述可知,在本申请实施例中,cdn和云服务存储器为内容服务器分配的密钥不同。即便cdn被入侵者攻击,导致该cdn的密钥泄露,也不会对云存储服务器产生影响,因为,所述某个cdn的密钥和云存储服务器的密钥并不相同。通过这种方式,有助于提高云存储服务器中存储的内容资源的安全性。而且,在本申请实施例中,cdn可以对第一认证凭证进行认证,为云存储服务器分担了部分工作量。而且,cdn中存储有客户端所请求的内容资源时,只要cdn确认第一认证凭证认证通过,则将所述内容资源发送给客户端,在一定程度上,降低了接收内容资源的时延。

本申请的各个实施方式可以任意进行组合,以实现不同的技术效果。

上述本申请提供的实施例中,从内容分发网络cdn和内容服务器作为执行主体的角度对本申请实施例提供的方法进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,内容分发网络cdn或内容服务器可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。

基于相同的构思,图5所示为本申请实施例提供的一种内容分发网络cdn500。如图5所示,内容分发网络cdn500包括接收器501、处理器502、发送器503。其中,接收器501可以用于执行图4所示实施例中的s406、s412,和/或用于支持本文所描述的技术的其它过程;处理器502可以用于执行图4所示实施例中的s407和s408,和/或用于支持本文所描述的技术的其它过程;发送器503可以用于执行图4所示的s409、s410、s413,和/或用于支持本文所描述的技术的其它过程。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

基于相同的构思,图6所示为本申请实施例提供的一种内容服务器600。如图6所示,内容服务器600包括接收器601、发送器602。其中,接收器601可以用于执行图4所示实施例中的s401-s402,和/或用于支持本文所描述的技术的其它过程;发送器603可以用于执行图4所示的s405,和/或用于支持本文所描述的技术的其它过程。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

基于相同的构思,图7所示为本申请实施例提供的一种内容分发网络cdn700。如图7所示,内容分发网络cdn700包括存储器701、处理器702、系统总线703以及通信接口704。其中,存储器701、处理器702以及通信接口704通过系统总线703连接。存储器701用于存储计算机执行指令,当内容分发网络cdn700运行时,处理器702执行存储器701存储的计算机执行指令,以使内容分发网络cdn700执行图4所示的实施例中内容分发网络cdn所执行的方法步骤。具体的方法可参考上文及附图中的相关描述,此处不再赘述。其中,通信接口704可以是收发器,或者是独立的接收器和发送器。

基于相同的构思,图8所示为本申请实施例提供的一种内容服务器800。如图8所示,内容服务器800包括存储器801、处理器802、系统总线803以及通信接口804。其中,存储器801、处理器802以及通信接口804通过系统总线803连接。存储器801用于存储计算机执行指令,当内容服务器800运行时,处理器802执行存储器801存储的计算机执行指令,以使内容服务器800执行图4所示的实施例中内容服务器所执行的方法步骤。具体的方法可参考上文及附图中的相关描述,此处不再赘述。其中,通信接口804可以是收发器,或者是独立的接收器和发送器。

本发明实施例还提供一种计算机存储介质,该存储介质可以包括存储器,该存储器可存储有程序,该程序执行时包括如前的图4所示的方法实施例中记载的内容分发网络cdn所执行的全部步骤。

本发明实施例还提供一种计算机存储介质,该存储介质可以包括存储器,该存储器可存储有程序,该程序执行时包括如前的图4所示的方法实施例中记载的内容服务器所执行的全部步骤。

本发明实施例还提供一种包含计算机程序产品,当所述计算机程序产品在内容分发网络cdn上运行时,使得所述内容分发网络cdn执行包括如前的图4所示的方法实施例中记载的内容分发网络cdn所执行的全部步骤。

本发明实施例还提供一种包含计算机程序产品,当所述计算机程序产品在内容服务器上运行时,使得所述内容服务器执行包括如前的图4所示的方法实施例中记载的内容服务器所执行的全部步骤。

本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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