一种内容验证方法及设备转让专利

申请号 : CN201710152738.3

文献号 : CN108632197B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 汪漪林栋

申请人 : 华为技术有限公司

摘要 :

一种内容验证方法及设备,用以加快内容验证的速度。该方法包括:第一网络设备接收第二网络设备发送的第一数据包,所述第一数据包携带第一内容;若所述第一数据包携带了第一对称加密信息,且所述第一对称加密信息用于在所述第一网络设备所在的可信域中验证所述第一内容,则所述第一网络设备根据所述第一对称加密信息验证所述第一数据包携带的第一内容是否合法;若所述第一内容合法,则所述第一网络设备根据所述第一数据包的传输路径对所述第一数据包进行处理。

权利要求 :

1.一种内容验证方法,其特征在于,包括:

第一网络设备接收第二网络设备发送的第一数据包,所述第一数据包携带第一内容;

若所述第一数据包携带了第一对称加密信息,且所述第一对称加密信息用于在所述第一网络设备所在的可信域中验证所述第一内容,则所述第一网络设备根据所述第一对称加密信息验证所述第一数据包携带的第一内容是否合法,其中,所述第一数据包每经过一个可信域,则可携带所述可信域对应的对称加密信息;

若所述第一内容合法,则所述第一网络设备根据所述第一数据包的传输路径对所述第一数据包进行处理;

其中,所述方法还包括:

若所述第一数据包未携带所述第一对称加密信息,或所述第一对称加密信息不用于在所述第一网络设备所在的可信域中验证所述第一内容,则所述第一网络设备根据所述第一数据包携带的数字签名验证所述第一内容是否合法;

若所述第一内容合法,则所述第一网络设备根据所述第一数据包的传输路径对所述第一数据包进行处理;

其中,若所述第一数据包未携带所述第一对称加密信息,所述方法还包括:所述第一网络设备使用第一对称密钥对第二散列值进行加密,得到第二对称加密信息,所述第二散列值是所述第一网络设备对所述第一内容进行哈希运算得到的;

所述第一网络设备将所述第二对称加密信息添加到所述第一数据包中,得到第二数据包;

若所述第一内容合法,则所述第一网络设备根据所述第一数据包的传输路径对所述第一数据包进行处理,包括:若所述第一内容合法,则所述第一网络设备根据所述第一数据包的传输路径对所述第二数据包进行处理。

2.如权利要求1所述的方法,其特征在于,所述第一网络设备根据所述第一对称加密信息验证所述第一数据包携带的第一内容是否合法,包括:所述第一网络设备使用第一对称密钥对所述第一对称加密信息进行解码,得到第一散列值,及,所述第一网络设备对所述第一内容进行哈希运算,得到所述第二散列值;其中,所述第一对称加密信息是使用所述第一对称密钥对所述第一内容的散列值进行加密得到的;

所述第一网络设备比较所述第一散列值及所述第二散列值,确定二者是否相同;其中,若所述第一散列值与所述第二散列值相同,则确定所述第一内容合法,否则确定所述第一内容不合法。

3.如权利要求1所述的方法,其特征在于,所述第一网络设备根据所述第一数据包携带的数字签名验证所述第一内容是否合法,包括:所述第一网络设备采用所述第一内容的内容提供设备所提供的公钥对所述数字签名进行解码,得到第三散列值,及,所述第一网络设备对所述第一内容进行哈希运算,得到第二散列值;其中,所述数字签名是所述内容提供设备通过私钥对所述第一内容的散列值加密得到的;

所述第一网络设备比较所述第二散列值及所述第三散列值,确定二者是否相同;其中,若所述第二散列值与所述第三散列值相同,则确定所述第一内容合法,否则确定所述第一内容不合法。

4.如权利要求1所述的方法,其特征在于,在所述第一网络设备使用第一对称密钥对所述第二散列值进行加密,得到第二对称加密信息后,还包括:所述第一网络设备将所述第二对称加密信息发送给所述第一内容的内容提供设备。

5.一种内容验证方法,其特征在于,包括:

第一网络设备接收第二网络设备发送的第一数据包,所述第一数据包携带第一内容;

若所述第一数据包未携带对称加密信息,则所述第一网络设备使用第一对称密钥对所述第一内容的散列值进行加密,得到第一对称加密信息;所述第一对称密钥用于在所述第一网络设备所在的可信域中对内容进行对称加密;

所述第一网络设备将所述第一对称加密信息添加到所述第一数据包中,得到第二数据包,其中,所述第一数据包每经过一个可信域,则可携带所述可信域对应的对称加密信息;

所述第一网络设备根据所述第一数据包的传输路径对所述第二数据包进行处理;其中,在所述第一网络设备使用第一对称密钥对所述第一内容的散列值进行加密之前,还包括:所述第一网络设备根据所述第一数据包携带的数字签名验证所述第一内容是否合法;

所述第一网络设备使用第一对称密钥对所述第一内容的散列值进行加密,包括:若所述第一内容合法,则所述第一网络设备使用所述第一对称密钥对所述第一内容的散列值进行加密。

6.如权利要求5所述的方法,其特征在于,所述第一网络设备根据所述第一数据包携带的数字签名验证所述第一内容是否合法,包括:所述第一网络设备采用所述第一内容的内容提供设备所提供的公钥对所述数字签名进行解码,得到第二散列值,及,所述第一网络设备对所述第一内容进行哈希运算,得到第一散列值;其中,所述数字签名是所述内容提供设备通过私钥对所述第一内容的散列值加密得到的;

所述第一网络设备比较所述第一散列值及所述第二散列值,确定二者是否相同;其中,若所述第一散列值与所述第二散列值相同,则确定所述第一内容合法,否则确定所述第一内容不合法。

7.如权利要求5或6所述的方法,其特征在于,在所述第一网络设备使用第一对称密钥对所述第一内容的散列值进行加密,得到第一对称加密信息之后,还包括:所述第一网络设备将所述第一对称加密信息发送给所述第一内容的内容提供设备。

8.一种网络设备,其特征在于,包括:

接收单元,用于接收第二网络设备发送的第一数据包,所述第一数据包携带第一内容;

验证单元,用于若所述第一数据包携带了第一对称加密信息,且所述第一对称加密信息用于在所述网络设备所在的可信域中验证所述第一内容,则根据所述第一对称加密信息验证所述第一数据包携带的第一内容是否合法,其中,所述第一数据包每经过一个可信域,则可携带所述可信域对应的对称加密信息;

处理单元,用于若所述第一内容合法,则根据所述第一数据包的传输路径对所述第一数据包进行处理;

所述验证单元还用于:若所述第一数据包未携带所述第一对称加密信息,或所述第一对称加密信息不用于在所述网络设备所在的可信域中验证所述第一内容,则根据所述第一数据包携带的数字签名验证所述第一内容是否合法;

所述处理单元还用于:若所述第一内容合法,则根据所述第一数据包的传输路径对所述第一数据包进行处理;

所述网络设备还包括加密单元和添加单元;

所述加密单元用于:使用第一对称密钥对第二散列值进行加密,得到第二对称加密信息,所述第二散列值是所述网络设备对所述第一内容进行哈希运算得到的;

所述添加单元用于:将所述第二对称加密信息添加到所述第一数据包中,得到第二数据包;

所述处理单元用于若所述第一内容合法,则根据所述第一数据包的传输路径对所述第一数据包进行处理,包括:若所述第一内容合法,则根据所述第一数据包的传输路径对所述第二数据包进行处理。

9.如权利要求8所述的网络设备,其特征在于,所述验证单元用于根据所述第一对称加密信息验证所述第一数据包携带的第一内容是否合法,包括:使用第一对称密钥对所述第一对称加密信息进行解码,得到第一散列值,及,对所述第一内容进行哈希运算,得到所述第二散列值;其中,所述第一对称加密信息是使用所述第一对称密钥对所述第一内容的散列值进行加密得到的;

比较所述第一散列值及所述第二散列值,确定二者是否相同;其中,若所述第一散列值与所述第二散列值相同,则确定所述第一内容合法,否则确定所述第一内容不合法。

10.如权利要求8所述的网络设备,其特征在于,所述验证单元用于根据所述第一数据包携带的数字签名验证所述第一内容是否合法,包括:采用所述第一内容的内容提供设备所提供的公钥对所述数字签名进行解码,得到第三散列值,及,对所述第一内容进行哈希运算,得到第二散列值;其中,所述数字签名是所述内容提供设备通过私钥对所述第一内容的散列值加密得到的;

比较所述第二散列值及所述第三散列值,确定二者是否相同;其中,若所述第二散列值与所述第三散列值相同,则确定所述第一内容合法,否则确定所述第一内容不合法。

11.如权利要求8所述的网络设备,其特征在于,所述网络设备还包括发送单元,用于:在所述加密单元使用第一对称密钥对所述第二散列值进行加密,得到第二对称加密信息后,将所述第二对称加密信息发送给所述第一内容的内容提供设备。

12.一种网络设备,其特征在于,包括:

接收单元,用于接收第二网络设备发送的第一数据包,所述第一数据包携带第一内容;

加密单元,用于若所述第一数据包未携带对称加密信息,使用第一对称密钥对所述第一内容的散列值进行加密,得到第一对称加密信息;所述第一对称密钥用于在所述网络设备所在的可信域中对内容进行对称加密;

添加单元,用于将所述第一对称加密信息添加到所述第一数据包中,得到第二数据包,其中,所述第一数据包每经过一个可信域,则可携带所述可信域对应的对称加密信息;

处理单元,用于根据所述第一数据包的传输路径对所述第二数据包进行处理;其中,所述网络设备还包括验证单元;

所述验证单元用于:在所述加密单元使用第一对称密钥对所述第一内容的散列值进行加密之前,根据所述第一数据包携带的数字签名验证所述第一内容是否合法;

所述加密单元用于使用第一对称密钥对所述第一内容的散列值进行加密,包括:若所述第一内容合法,则使用所述第一对称密钥对所述第一内容的散列值进行加密。

13.如权利要求12所述的网络设备,其特征在于,所述验证单元用于根据所述第一数据包携带的数字签名验证所述第一内容是否合法,包括:采用所述第一内容的内容提供设备所提供的公钥对所述数字签名进行解码,得到第二散列值,及,对所述第一内容进行哈希运算,得到第一散列值;其中,所述数字签名是所述内容提供设备通过私钥对所述第一内容的散列值加密得到的;

比较所述第一散列值及所述第二散列值,确定二者是否相同;其中,若所述第一散列值与所述第二散列值相同,则确定所述第一内容合法,否则确定所述第一内容不合法。

14.如权利要求12或13所述的网络设备,其特征在于,所述网络设备还包括发送单元,用于:在所述加密单元使用第一对称密钥对所述第一内容的散列值进行加密,得到第一对称加密信息之后,将所述第一对称加密信息发送给所述第一内容的内容提供设备。

说明书 :

一种内容验证方法及设备

技术领域

[0001] 本发明实施例涉及通信技术领域,尤其涉及一种内容验证方法及设备。

背景技术

[0002] 以网际协议(Internet Protocol,IP)包交换为核心技术的互联网机制已被广泛应用了超过20年,这是因为IP协议自身的简单性降低了网络互联成本、增强了网络适应性。但从技术发展的角度反思,互联网最初的目标是为了追求网络的互联以实现硬件资源的共享。由于最开始的通信需求发生在两台实体设备间,为了确定设备的具体位置,互联网使用IP地址来标识不同的设备以支持设备间的数据通信。然而,随着技术的进步和信息化的普及,硬件共享的需求在逐步下降,信息共享已逐渐成为主要目标。目前,网络应用的主体已经转为文字信息、图像和视频等内容,内容服务已经成为网络服务的主体。对于用户来说,关注的不再是内容存储在哪里(Where),而更多的是关注内容本身(What),以及内容检索与传输的速度、质量和安全性。目前的IP网络架构仍然根据设备地址进行信息内容的检索和传送,这样做在适应上层应用的变化方面显得低效。
[0003] 为了从根本上解决IP技术原有的缺陷,国际学术界和工业界过去已经开展了许多以内容为中心的研究项目,代表性的研究有内容中心网络(Content-Centric Networking,CCN)/内容中心网络(Named Data Networking,NDN)项目。CCN/NDN是通过在网络设备中缓存内容来提高网络的传输效率,从而降低网络成本、提高网络利用率。
[0004] 其中,在NDN网络中,NDN路由器需要对转发或存储的内容进行验证,以防止被污染的数据在网络中扩散。而目前NDN路由器在对内容进行验证时,都是采用非对称加密方式来验证,通过这种验证方式虽然能够检测内容是否被污染,但非对称加密方式下的验证速度过慢,无法满足高速网络环境的需求。

发明内容

[0005] 本发明实施例提供一种内容验证方法及设备,用于加快内容验证的速度。
[0006] 第一方面,提供一种内容验证方法,该方法可由第一网络设备执行,其中,第一网络设备包括但不限于路由器、交换机、网管、或网卡等设备。另外,该方法还涉及第二网络设备,第二网络设备包括但不限于内容提供设备、路由器、交换机、网管、或网卡等设备。该方法包括:第一网络设备接收第二网络设备发送的第一数据包,第一数据包携带第一内容。若第一数据包携带了第一对称加密信息,且第一对称加密信息用于在第一网络设备所在的可信域中验证第一内容,则第一网络设备根据第一对称加密信息验证第一数据包携带的第一内容是否合法。若第一内容合法,则第一网络设备根据第一数据包的传输路径对第一数据包进行处理。
[0007] 本发明实施例中,第一网络设备在第一网络设备所在的可信域中可采用对称加密的方式对内容进行验证,由于是在可信域中采用对称加密方式,因此安全性有所保障,而对称加密方式的验证速度远快于非对称加密方式,因此通过采用本发明实施例提供的技术方案能够有效加快内容验证的速度,提高效率,也能够适应高速网络环境的需求。
[0008] 结合第一方面,在第一方面的第一种可能的实施方式中,第一网络设备根据第一对称加密信息验证第一数据包携带的第一内容是否合法,包括:第一网络设备使用第一对称密钥对第一对称加密信息进行解码,得到第一散列值,及,第一网络设备对第一内容进行哈希运算,得到第二散列值。第一网络设备比较第一散列值及第二散列值,确定二者是否相同,其中,若第一散列值与第二散列值相同,则确定第一内容合法,否则确定第一内容不合法。其中,第一对称加密信息是使用第一对称密钥对第一内容的散列值进行加密得到的。
[0009] 提供了通过对称加密方式进行内容验证的方法。通过对称加密进行验证,方式简单,验证速度会有较大幅度的提高,相对于通过非对称加密进行验证的方式来说能够极大地提高内容验证的效率。
[0010] 结合第一方面,在第一方面的第二种可能的实施方式中,该方法还包括:若第一数据包未携带第一对称加密信息,或第一对称加密信息不用于在第一网络设备所在的可信域中验证第一内容,则第一网络设备根据第一数据包携带的数字签名验证第一内容是否合法。若第一内容合法,则第一网络设备根据第一数据包的传输路径对第一数据包进行处理。
[0011] 也就是说,如果第一网络设备无法使用对称加密方式对第一内容进行验证,那么第一网络设备就继续采用非对称加密方式来验证,以保证内容验证过程的顺利进行。即,本发明实施例中的网络设备较为灵活,可根据实际情况灵活选择验证方式。
[0012] 结合第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,第一网络设备根据第一数据包携带的数字签名验证第一内容是否合法,包括:第一网络设备采用第一内容的内容提供设备所提供的公钥对数字签名进行解码,得到第三散列值,及,第一网络设备对第一内容进行哈希运算,得到第二散列值。第一网络设备比较第二散列值及第三散列值,确定二者是否相同,若第二散列值与第三散列值相同,则确定第一内容合法,否则确定第一内容不合法。其中,数字签名是内容提供设备通过私钥对第一内容的散列值加密得到的。
[0013] 提供了通过非对称加密方式进行内容验证的方法,网络设备可灵活选择不同的验证方法。
[0014] 结合第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中,该方法还包括:第一网络设备使用第一对称密钥对第二散列值进行加密,得到第二对称加密信息,第一网络设备将第二对称加密信息添加到第一数据包中,得到第二数据包。那么,若第一内容合法,则第一网络设备根据第一数据包的传输路径对第一数据包进行处理,包括:若第一内容合法,则第一网络设备根据第一数据包的传输路径对第一数据包进行处理。
[0015] 本发明实施例中,每经过一个可信域,在该数据包中就可以带上该可信域对应的对称加密信息,即,使用该可信域的对称密钥对数据包中的内容的散列值加密后的信息。那么,如果是第一网络设备生成的第二对称加密信息,第一网络设备就将第二对称加密信息添加到第一数据包中,并传输第二数据包,则第二数据包里就携带了第二对称加密信息。处于第一网络设备所在的可信域中的其他网络设备接收第二数据包后就可以直接根据第二对称加密信息进行验证,无需再重新生成对称加密信息,简化了后续的网络设备的操作。
[0016] 结合第一方面的第四种可能的实施方式,在第一方面的第五种可能的实施方式中,在第一网络设备使用第一对称密钥对第二散列值进行加密,得到第二对称加密信息后,还包括:第一网络设备将第二对称加密信息发送给内容提供设备。
[0017] 第一网络设备生成第二对称加密信息后,可将第二对称加密信息发给内容提供设备,则内容提供设备在接收第二对称加密信息后,可以将第二对称加密信息存储到第一内容的附件数据中。这样,若内容提供设备下次再发送第一内容时,可将第二对称加密信息添加到携带第一内容的数据包中一并发送,则第二对称加密信息所对应的可信域中的设备就可以直接使用对称加密方式来验证第一内容的合法性,减少了使用非对称加密方式验证的次数,提高验证效率。
[0018] 第二方面,提供一种内容验证方法,该方法可由第一网络设备执行,其中,第一网络设备包括但不限于路由器、交换机、网管、或网卡等设备。另外,该方法还涉及第二网络设备,第二网络设备包括但不限于内容提供设备、路由器、交换机、网管、或网卡等设备。该方法包括:第一网络设备接收第二网络设备发送的第一数据包,第一数据包携带第一内容。若第一数据包未携带对称加密信息,则第一网络设备使用第一对称密钥对第一内容的散列值进行加密,得到第一对称加密信息。第一网络设备将第一对称加密信息添加到第一数据包中,得到第二数据包。第一网络设备根据第一数据包的传输路径对第二数据包进行处理。其中,第一对称密钥用于在第一网络设备所在的可信域中对内容进行对称加密。
[0019] 如果第一网络设备无法使用对称加密方式对第一内容进行验证,那么第一网络设备就生成对称加密信息,以使得处于第一网络设备所在的可信域中的其他网络设备接收第二数据包后就可以直接根据第一对称加密信息进行验证,无需再重新生成对称加密信息,简化了后续的网络设备的操作。而且,由于是在可信域中采用对称加密方式,因此安全性有所保障,而对称加密方式的验证速度远快于非对称加密方式,因此通过采用本发明实施例提供的技术方案能够有效加快内容验证的速度,提高效率,也能够适应高速网络环境的需求。
[0020] 结合第二方面,在第二方面的第一种可能的实现方式中,在第一网络设备使用第一对称密钥对第一内容的散列值进行加密之前,还包括:第一网络设备根据第一数据包携带的数字签名验证第一内容是否合法。那么,第一网络设备使用第一对称密钥对第一内容的散列值进行加密,包括:若第一内容合法,则第一网络设备使用第一对称密钥对第一内容的散列值进行加密。
[0021] 也就是说,第一网络设备在生成第一对称加密信息之前,先要验证第一内容的合法性,若第一内容不合法,则第一网络设备也就无需生成第一对称加密信息了。此时,由于第一网络设备无法使用对称加密方式对第一内容进行验证,则第一网络设备就采用非对称加密方式来验证,以保证内容验证过程的顺利进行。可见,本发明实施例中的网络设备较为灵活,可根据实际情况灵活选择验证方式。
[0022] 结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,第一网络设备根据第一数据包携带的数字签名验证第一内容是否合法,包括:第一网络设备采用第一内容的内容提供设备所提供的公钥对数字签名进行解码,得到第二散列值,及,第一网络设备对第一内容进行哈希运算,得到第一散列值。第一网络设备比较第一散列值及第二散列值,确定二者是否相同,若第一散列值与第二散列值相同,则确定第一内容合法,否则确定第一内容不合法。其中,数字签名是内容提供设备通过私钥对第一内容的散列值加密得到的。
[0023] 提供了通过非对称加密方式进行内容验证的方法,网络设备可灵活选择不同的验证方法。
[0024] 结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,在第一网络设备使用第一对称密钥对第一内容的散列值进行加密,得到第一对称加密信息之后,还包括:第一网络设备将第一对称加密信息发送给第一内容的内容提供设备。
[0025] 第一网络设备生成第一对称加密信息后,可将第一对称加密信息发给内容提供设备,则内容提供设备在接收第一对称加密信息后,可以将第一对称加密信息存储到第一内容的附件数据中。这样,若内容提供设备下次再发送第一内容时,可将第一对称加密信息添加到携带第一内容的数据包中一并发送,则第一对称加密信息所对应的可信域中的设备就可以直接使用对称加密方式来验证第一内容的合法性,减少了使用非对称加密方式验证的次数,提高验证效率。
[0026] 第三方面,提供一种网络设备,该网络设备包括接收器和处理器。其中,接收器用于接收第二网络设备发送的第一数据包,第一数据包携带第一内容。处理器用于若第一数据包携带了第一对称加密信息,且第一对称加密信息用于在该网络设备所在的可信域中验证第一内容,则根据第一对称加密信息验证第一数据包携带的第一内容是否合法。若第一内容合法,则根据第一数据包的传输路径对第一数据包进行处理。
[0027] 结合第三方面,在第三方面的第一种可能的实现方式中,处理器用于根据第一对称加密信息验证第一数据包携带的第一内容是否合法,包括:使用第一对称密钥对第一对称加密信息进行解码,得到第一散列值,及,对第一内容进行哈希运算,得到第二散列值。比较第一散列值及第二散列值,确定二者是否相同,若第一散列值与第二散列值相同,则确定第一内容合法,否则确定第一内容不合法。其中,第一对称加密信息是使用第一对称密钥对第一内容的散列值进行加密得到的。
[0028] 结合第三方面,在第三方面的第二种可能的实现方式中,处理器还用于:若第一数据包未携带第一对称加密信息,或第一对称加密信息不用于在该网络设备所在的可信域中验证第一内容,则根据第一数据包携带的数字签名验证第一内容是否合法。若第一内容合法,则根据第一数据包的传输路径对第一数据包进行处理。
[0029] 结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,处理器用于根据第一数据包携带的数字签名验证第一内容是否合法,包括:采用第一内容的内容提供设备所提供的公钥对数字签名进行解码,得到第三散列值,及,对第一内容进行哈希运算,得到第二散列值。比较第二散列值及第三散列值,确定二者是否相同,若第二散列值与第三散列值相同,则确定第一内容合法,否则确定第一内容不合法。其中,数字签名是内容提供设备通过私钥对第一内容的散列值加密得到的。
[0030] 结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,处理器还用于:使用第一对称密钥对第二散列值进行加密,得到第二对称加密信息。将第二对称加密信息添加到第一数据包中,得到第二数据包。那么,处理器用于若第一内容合法,则根据第一数据包的传输路径对第一数据包进行处理,包括:若第一内容合法,则根据第一数据包的传输路径对第一数据包进行处理。
[0031] 结合第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式中,该网络设备还包括发送器,用于:在处理器使用第一对称密钥对第二散列值进行加密,得到第二对称加密信息后,将第二对称加密信息发送给内容提供设备。
[0032] 第四方面,提供一种网络设备,该网络设备包括接收器和处理器。其中,接收器用于接收第二网络设备发送的第一数据包,第一数据包携带第一内容。处理器用于若第一数据包未携带对称加密信息,使用第一对称密钥对第一内容的散列值进行加密,得到第一对称加密信息,将第一对称加密信息添加到第一数据包中,得到第二数据包。其中,第一对称密钥用于在该网络设备所在的可信域中对内容进行对称加密。根据第一数据包的传输路径对第二数据包进行处理。
[0033] 结合第四方面,在第四方面的第一种可能的实现方式中,处理器还用于:在所使用第一对称密钥对第一内容的散列值进行加密之前,根据第一数据包携带的数字签名验证第一内容是否合法。那么,处理器使用第一对称密钥对第一内容的散列值进行加密,包括:若第一内容合法,则使用第一对称密钥对第一内容的散列值进行加密。
[0034] 结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,处理器用于根据第一数据包携带的数字签名验证第一内容是否合法,包括:采用第一内容的内容提供设备所提供的公钥对数字签名进行解码,得到第二散列值,及,对第一内容进行哈希运算,得到第一散列值。比较第一散列值及第二散列值,确定二者是否相同,若第一散列值与第二散列值相同,则确定第一内容合法,否则确定第一内容不合法。其中,数字签名是内容提供设备通过私钥对第一内容的散列值加密得到的。
[0035] 结合第四方面或第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,该网络设备还包括发送器,用于:在处理器使用第一对称密钥对第一内容的散列值进行加密,得到第一对称加密信息之后,将第一对称加密信息发送给第一内容的内容提供设备。
[0036] 第五方面,提供一种网络设备,该网络设备包括用于执行第一方面或第一方面的任一种可能的实现方式所提供的方法的功能单元。
[0037] 第六方面,提供一种网络设备,该网络设备包括用于执行第二方面或第二方面的任一种可能的实现方式所提供的方法的功能单元。
[0038] 第七方面,提供一种计算机存储介质,用于储存为上述网络设备所用的计算机软件指令,其包含用于执行第一方面或第一方面的任一种可能的实现方式为网络设备所设计的程序。
[0039] 第八方面,提供一种计算机存储介质,用于储存为上述网络设备所用的计算机软件指令,其包含用于执行第二方面或第二方面的任一种可能的实现方式为网络设备所设计的程序。
[0040] 本发明实施例中,可采用对称加密方式对内容进行验证,对称加密方式的验证速度远快于非对称加密方式,因此通过采用本发明实施例提供的技术方案能够有效加快内容验证的速度,提高效率,也能够适应高速网络环境的需求。

附图说明

[0041] 图1A为CCN/NDN网络中的Interest包的结构示意图;
[0042] 图1B为CCN/NDN网络中的Data包的结构示意图;
[0043] 图2为NDN网络中对Interest包和Data包的转发机制的示意图;
[0044] 图3为NDN网络中NDN路由器进行内容验证的流程图;
[0045] 图4为本发明实施例提供的内容验证方法的一种流程图;
[0046] 图5-图8为本发明实施例提供的第一网络设备的几种结构示意图。

具体实施方式

[0047] 为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例作进一步地详细描述。
[0048] 本文中描述的技术不仅限于CCN/NDN网络,还可用于多种内容中心网络。
[0049] 以下,对本发明实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
[0050] (1)网络设备,能够转发数据包,在某些实施方式中,网络设备也可以生成数据包。网络设备可包括路由器、交换机、网管、或网卡等设备,本文在描述时以路由器为例。
[0051] (2)CCN/NDN的数据包大致分为两类:兴趣(Interest)包和数据(Data)包,Interest包是CCN/NDN网络中的一种请求包格式,Data包是CCN/NDN网络中的一种内容包格式。
[0052] 其中,Interest包的结构可参考图1A。可以看到,在Interest包中包括请求内容名、选择规则集、以及会话序列号等字段。其中,请求内容名用于承载一个Interest包所请求的内容的名称,选择规则集用于指示请求内容的偏好,或用于进行发布者过滤,或用于指示请求的范围等,会话序列号用于承载本次会话的序列号。
[0053] Data包的结构可参考图1B。Data包中包括被请求内容名、数字签名、发布者信息、以及内容数据等字段。其中,被请求内容名用于承载该Data包所携带的内容数据的名称,数字签名是该内容数据的发布者对该内容数据进行哈希计算后再采用私钥对哈希计算的结果进行加密得到的,用于对内容数据进行验证,发布者信息例如包括该内容数据的发布者的名称、用于对数字签名进行解密的公钥、该内容数据的地址、以及该内容数据的有效期中的至少一种,内容数据即为所请求的内容。其中,“内容”和“数据”在本文中可被互换使用,鉴于此,本文中也将Data包承载的内容数据称为“内容”或“数据”。
[0054] (3)CCN/NDN为了提供更好的服务,提供了三种逻辑结构来维护状态信息,这三种逻辑结构分别为内容存储池(Content Store,CS)、请求状态表(Pending Interest Table,PIT)、以及转发表(Forwarding Information Base,FIB)。这三种逻辑结构可以存储在路由器中。
[0055] 其中,CS用于存储近期被路由器转发的某些常用的内容,在CS中,一般采用<名字,数据指针>的格式存储。“名字”为所请求的内容的对外发布的名字,“数据指针”指向实际存储该内容的物理内存位置。CS这张表也可以理解为路由器上的内容索引表。
[0056] PIT中存储已经被路由器转发,但还没有收到响应的有特殊需求的Interest包的状态信息,在PIT中,以类似于<名字前缀,端口列表,其他属性>的格式存储。其中,“名字前缀”是内容的名字聚合后的路由前缀,“端口列表”记录请求相同内容的Interest包的接收端口。
[0057] FIB与IP网络中的路由转发表类似,记录Interest包可被转发的端口列表,以<名字前缀,端口列表>的格式存储。其中,“名字前缀”是聚合后的路由前缀,“端口列表”表示可以经由哪些端口转发,以获取指定名字对应的内容。
[0058] (4)可信域,是指在一个集合中,各个网络设备互相通过身份认证,从而实现对称秘钥的共享。例如一种可信域为自治系统(AS)。
[0059] 本发明实施例中,一个可信域中的各个网络设备可以共享一个对称密钥,也就是说,一个可信域中的各个网络设备可以使用同一个对称密钥对内容进行加密,而对于已使用该对称密钥加密的内容,其他的网络设备接收之后可以采用该对称密钥对加密后的内容进行解密,以验证该内容是否合法。通过这种方式,在可信域内都可以采用对称加密方式来验证内容的合法性,无需再使用非对称加密方式,加快了内容验证的速度。其中,一个可信域中的各个网络设备事先可以通过互通消息的方式来共享对称密钥。
[0060] 对于不同的可信域,所使用的对称密钥可以相同,也可以不相同,本发明实施例不作限制。
[0061] (5)本发明实施例中的术语“系统”和“网络”可被互换使用。“多个”是指两个或两个以上,鉴于此,本发明实施例中也可以将“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。另外,需要理解的是,在本发明实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
[0062] 首先介绍本发明实施例的技术背景。
[0063] 目前在NDN网络中,NDN路由器对Interest包和Data包实行不同的转发机制,下面进行介绍,请参见图2。
[0064] 当NDN路由器收到Interest包时,首先依据Interest包中所请求的内容的名字作为关键字在CS中进行检索,如果在CS中检索到对应该名字的内容,那么就直接返回该内容给发送Interest包的用户设备。如果缓存中不存在该内容,即在CS中未检索到对应该名字的内容,则在PIT表中查找对应的PIT表项,如果找到对应的PIT表项,说明用于请求相同的内容的Interest包已经被转发过,但还没有收到Data包,那么NDN路由器就在对应的PIT表项中添加收到该Interest包的端口号,并丢弃该Interest包,不再转发。而如果在PIT表中没有找到对应的PIT表项,则需要将该名字添加到PIT表中,并记录接收到该Interest包的端口号,并在FIB中进行路由查找。如果FIB表中可以转发的端口有多个,则需要根据NDN网络的多路径特性来选取一路或多路进行转发。如果FIB中没有对应名字的路由信息,则丢弃该Interest包,或返回请求包。
[0065] 当NDN路由器收到Data包时,根据Data包携带的名字在PIT表中搜索相应的PIT表项,获取转发端口列表,然后根据转发端口列表中的端口发送Data包,并在CS中缓存Data包携带的内容。如果在PIT表中没有搜寻到对应的PIT表项,或者PIT表项中记录同样内容的Data包已经转发过,那么NDN路由器就丢弃该Data包。
[0066] 其中,在NDN网络中,NDN路由器收到Data包后,需要对转发和/或存储的内容进行验证,在验证通过后才会转发和/或存储该内容,以防止被污染的内容在网络中扩散。NDN路由器进行内容验证的基本过程如图3所示:
[0067] S31、NDN路由器接收内容提供方发送的与Interest包对应的Data包。
[0068] 其中,用户设备可先向内容提供方发送用于请求内容D’的Interest包,内容提供方接收该Interest包后,就向NDN路由器发送给Data包。
[0069] S32、当NDN路由器收到内容提供方发送的与Interest包对应的Data包时,NDN路由器对Data包进行解析,获取Data包携带的“内容”和“数字签名”等信息。该内容即为D’,数字签名以Kpri(Hash(D)表示。其中,数字签名是该内容D’的提供方先对内容D’进行哈希计算得到内容D’的散列值,再使用私钥对该内容D’的散列值加密得到的。这里的哈希计算可以是哈希散列计算。
[0070] S33、NDN路由器对内容D’进行哈希散列计算,例如可采用MD5或CRC32等算法,得到内容D’的散列值,表示为Hash(D’)。
[0071] S34、NDN路由器使用内容D’的提供方所提供的公钥对数字签名进行解码,获得原始的内容D’的散列值,将其表示为Kpub(Kpri(Hash(D)))。
[0072] S35、NDN路由器将Hash(D’)与Kpub(Kpri(Hash(D)))进行比较,确定二者是否相同。如果两者相同,则NDN路由器确定接收的内容D’无误,则可以转发并缓存内容D’,例如转发给用户设备,否则,NDN路由器确定接收的内容D’有误,则丢弃内容D’。
[0073] 根据图3可知,目前NDN路由器在对内容进行验证时,都是采用非对称加密方式来验证。通过这种验证方式虽然能够检测内容是否被污染,但非对称加密方式下的验证速度过慢,无法满足高速网络环境的需求。
[0074] 鉴于此,本发明实施例中,第一网络设备在第一网络设备所在的可信域中可采用对称加密的方式对内容进行验证,由于是在可信域中采用对称加密方式,因此安全性有所保障,而对称加密方式的验证速度远快于非对称加密方式,因此通过采用本发明实施例提供的技术方案能够有效加快内容验证的速度,提高效率,也能够适应高速网络环境的需求。
[0075] 下面结合附图介绍本发明实施例提供的技术方案。
[0076] 请参见图4,本发明一实施例提供一种内容验证方法。其中在图4中,内容的提供方、路由器1和路由器2属于一个可信域,将该可信域例如为AS1,路由器3和用户设备属于一个可信域,将该可信域例如为AS2。也就是说,内容的提供方、路由器1和路由器2可以共享同一个对称密钥,路由器3和用户设备可以共享同一个对称密钥。下文中将内容的提供方称为内容提供设备,一个内容提供设备可以提供多个内容。该方法的过程描述如下。
[0077] S41、内容提供设备向路由器1发送数据包,该数据包携带第一内容,则路由器1接收该数据包。
[0078] 用户设备首先向内容提供设备发送Interest包,该Interest包用于请求第一内容,该存储在内容提供设备中的第一内容用D’来表示。那么内容提供设备接收该Interest包后,内容提供设备就向用户设备发送携带内容D’的数据包。例如内容提供设备到用户设备之间的传输路径为内容提供设备-路由器1-路由器2-路由器3-用户设备,因此内容提供设备将携带内容D’的数据包发送给路由器1。
[0079] 其中,路由器1可以作为第一网络设备,该内容提供设备可以作为第二网络设备,该数据包也可称为第一数据包。在图4中,将该数据包称为数据包1。
[0080] 在第一数据包中,除了携带内容D’之外,还可携带数字签名,该数字签名是内容提供设备对内容D’进行哈希计算(例如哈希散列计算)得到内容D’的散列值,再使用私钥对内容D’的散列值进行加密后得到的密文,例如将数字签名表示为Kpri(Hash(D))。
[0081] S42、路由器1确定第一数据包里未携带对称加密信息,那么路由器1就使用第一对称密钥对内容D’的散列值进行对称加密,将对称加密后得到的信息称为第一对称加密信息。
[0082] 路由器1接收第一数据包后,若确定第一数据包里未携带对称加密信息,则路由器1对第一数据包携带的内容D’进行哈希散列计算,得到内容D’的散列值,再使用第一对称密钥对内容D’的散列值进行加密,得到第一对称加密信息。第一对称密钥是路由器1所在的可信域,即AS1中共享的对称密钥,AS1里的设备都可以使用第一对称密钥对内容进行对称加密。
[0083] 以从内容提供设备到用户设备之间的传输路径为内容提供设备-路由器1-路由器2-路由器3-用户设备为例,内容提供设备与路由器1同属于一个可信域,那么内容提供设备在向路由器1发送第一数据包时,可以直接在第一数据包里添加第一对称加密信息,即内容提供设备对内容D’进行哈希散列计算,得到内容D’的散列值,再使用第一对称密钥对内容D’的散列值进行加密,得到第一对称加密信息,并将第一对称加密信息添加到第一数据包中,在这种情况下,路由器1会确定第一数据包里携带了对称加密信息。或者,内容提供设备也可以只将内容D’和数字签名添加到第一数据包中发送给路由器1,那么路由器1接收的第一数据包就未携带对称加密信息,S42以此为例。
[0084] 另外,因为不同的可信域所使用的对称密钥可能不同,或者即使相同,对于不同的可信域来说彼此之间可能也不知晓其他可信域的对称密钥,而数据包从内容提供设备传输到请求内容的用户设备的过程中可能会经过一个或多个可信域,本发明实施例中,每经过一个可信域,在该数据包中就可以带上该可信域对应的对称加密信息,即,使用该可信域的对称密钥对数据包中的内容的散列值加密后的信息。在图4中,第一数据包从内容提供设备直接发给了路由器1,而在其他场景中,第一数据包从内容提供设备发出之后,可能还经过了其他的网络设备,之后才到达路由器1,即内容提供设备属于其他的可信域,经过的网络设备也属于其他的可信域,如果是这种情况,那么第一数据包里就会携带对称加密信息,但第一数据包携带的对称加密信息可能就不是路由器1所在的可信域里用于对内容D’进行验证的信息。本发明实施例中,即使数据包里携带了对称加密信息,但只要携带的不是路由器1所在的可信域中用于对内容D’进行验证的对称加密信息,则路由器1的处理方式与确定第一数据包未携带对称加密信息的处理方式是一样的。
[0085] 当然,因为图4里第一数据包是从内容提供设备直接发送给路由器1,内容提供设备和路由器1同属于一个可信域,且内容提供设备未生成第一对称加密信息,因此S42中路由器1接收的第一数据包不携带任何的对称加密信息。
[0086] 在一种实施方式中,在路由器1使用第一对称密钥对内容D’的散列值进行对称加密之前,路由器1先要验证内容D’是否合法。因为此时第一数据包里未携带对称加密信息,因此路由器1可使用非对称加密方式验证内容D’的合法性,例如,路由器1可根据第一数据包携带的数字签名验证内容D’是否合法。如果路由器1验证确定内容D’合法,则路由器1就使用第一对称密钥对内容D’的散列值进行对称加密。
[0087] 具体的,路由器1根据第一数据包携带的数字签名验证内容D’是否合法,可通过以下方式实现:路由器1采用内容提供设备所提供的公钥对第一数据包携带的数字签名进行解码,将解码得到的结果称为第二散列值。以及,路由器1对第一内容进行哈希散列计算,将得到的结果称为第一散列值。然后,路由器1比较第一散列值及第二散列值,确定二者是否相同,如果第一散列值与第二散列值相同,那么路由器1就确定第一内容合法,否则就确定第一内容不合法。如果确定内容D’合法,则路由器1可使用第一对称密钥对内容D’的散列值进行对称加密,而如果确定内容D’不合法,则表明内容D’已被污染,则路由器1可以丢弃第一数据包,以保障网络安全。另外,如果确定内容D’不合法,路由器1还可以重新请求获得内容D’,例如路由器1生成用于请求获得内容D’的Interest包,并将该Interest包发送给上游的其他网络设备,或发送给其他的用户设备,以请求获得内容D’。至于究竟发送给哪些设备来请求内容D’,是路由器1事先知晓的。
[0088] S43、路由器1将第一对称加密信息添加到第一数据包中。本文中将添加了第一对称加密信息的第一数据包称为第二数据包。其中,在图4中将该第二数据包称为数据包2。
[0089] S44、路由器1根据第一数据包的传输路径对第二数据包进行处理。
[0090] 在本发明实施例中,路由器1可以缓存内容D’,还可以将第二数据包发送给第一数据包的传输路径上的下一跳设备,即路由器2,则路由器2接收第二数据包。图4中的S44是以路由器1将第二数据包发送给路由器2为例。
[0091] 在一种实施方式中,路由器1还可以将第一对称加密信息发送给内容提供设备,例如路由器1可生成Interest包,并将第一对称加密信息添加到该Interest包中发送给内容提供设备。那么内容提供设备在接收携带了第一对称加密信息的Interest包后,可以将第一对称加密信息存储到内容D’的附件数据中,这样,若内容提供设备下次再发送内容D’时,可将第一对称加密信息添加到携带内容D’的数据包中一并发送,则第一对称加密信息所对应的可信域中的设备就可以直接使用对称加密方式来验证内容D’的合法性,减少了使用非对称加密方式验证的次数,提高验证效率。
[0092] S45、路由器2根据第二数据包携带的第一对称加密信息验证第二数据包携带的内容D’的合法性。
[0093] 实际上,第一数据包、第二数据包、第一网络设备、第二网络设备等只是称谓,是相对概念,例如此时路由器2也可作为第一网络设备,路由器1作为第一网络设备,第二数据包也可认为是第一数据包。但为了避免混淆,依然将第二数据包称为第二数据包。
[0094] 其中,路由器2接收第二数据包后,确定第二数据包里携带了对称加密信息,即第一对称加密信息,那么路由器2先确定第一对称加密信息是否是路由器2所在的可信域对应的对称加密信息,下面介绍几种确定方式。
[0095] A、设备在对内容进行对称加密后,可以在生成的对称加密信息中添加设备所在的可信域的标识,例如AS1的标识为a,AS2的标识为b,等等,每个可信域都唯一对应各自的标识。那么路由器1也就在第一对称加密信息中添加了AS1的标识a,则路由器2接收第二数据包后,只要确定第二数据包携带的对称加密信息中有携带了标识a的对称加密信息,就可以知道该携带了标识a的对称加密信息为路由器2所在的可信域的对称加密信息。
[0096] 这种方式较为简单,设备可以很快确定对称加密信息是否是该设备所在的可信域对应的对称加密信息。
[0097] B、设备接收数据包后,若数据包携带了对称加密信息,则设备使用该设备所在的可信域的对称密钥对数据包携带的对称加密信息进行解密,且设备计算该数据包携带的内容的散列值。如果解密得到的散列值与设备计算得到的该数据包携带的内容的散列值一致,那么就表明该对称加密信息是该设备所在的可信域对应的对称加密信息,且相当于也一并验证了内容的合法性。而如果解密得到的散列值与设备计算得到的该数据包携带的内容的散列值不一致,则设备并不能确定究竟是该对称加密信息不是该设备所在的可信域对应的对称加密信息,还是内容不合法,因此,设备可以继续使用内容提供设备所提供的公钥对该数据包携带的数字签名进行解码,并比较解码得到的散列值与设备计算得到的该数据包携带的内容的散列值是否一致,如果解码得到的散列值与设备计算得到的该数据包携带的内容的散列值一致,则表明该对称加密信息不是该设备所在的可信域对应的对称加密信息,实际上也就相当于确认了该内容合法,而如果解码得到的散列值与设备计算得到的该数据包携带的内容的散列值不一致,则表明内容不合法。
[0098] 当然上面的A方式和B方式只是举例,本发明实施例中,路由器2确定第一对称加密信息是否是路由器2所在的可信域对应的对称加密信息的方式不限于以上两种。
[0099] 如果路由器2确定第一对称加密信息是路由器2所在的可信域对应的对称加密信息,那么路由器2就根据第一对称加密信息验证第二数据包携带的内容D’是否合法。具体的,路由器2根据第一对称加密信息验证第二数据包携带的内容D’是否合法,可通过以下方式实现:路由器2使用第一对称密钥对第一对称加密信息进行解码,及,路由器2对内容D’进行哈希散列运算。路由器2比较解码得到的散列值与哈希散列运算得到的散列值,确定二者是否相同,如果解码得到的散列值与哈希散列运算得到的散列值相同,则路由器2确定第一内容合法,否则路由器2确定第一内容不合法。
[0100] 其中,S45是以第二数据包携带了第一对称加密信息为例,如果第二数据包未携带第一对称加密信息,或者第二数据包虽然携带了对称加密信息,但携带的对称加密信息不是路由器2所在的可信域对应的对称加密信息,即携带的对称加密信息不用于在AS1中验证内容D’的合法性,那么路由器2可继续采用非对称加密方式验证内容D’的合法性,关于非对称加密方式的验证过程可参考S42中的相关介绍。
[0101] S46、如果内容D’合法,则路由器2根据第二数据包的传输路径对第二数据包进行处理。
[0102] 如果路由器2确定内容D’不合法,则路由器2可以丢弃内容D’。另外,路由器2还可以重新请求获得内容D’,例如路由器2生成用于请求获得内容D’的Interest包,并将该Interest包发送给上游的其他网络设备,或发送给其他的用户设备,以请求获得内容D’。至于究竟发送给哪些设备来请求内容D’,是路由器2事先知晓的。
[0103] 如果路由器2确定内容D’合法,则路由器2就根据第二数据包的传输路径对第二数据包进行处理。在本发明实施例中,路由器2可以缓存内容D’,还可以将第二数据包发送给第二数据包的传输路径上的下一跳设备,即路由器3,则路由器3接收第二数据包。图4中的S46是以路由器2将第二数据包发送给路由器3为例。
[0104] 在一种实施方式中,路由器2还可以将第一对称加密信息发送给内容提供设备,例如路由器2可生成Interest包,并将第一对称加密信息添加到该Interest包中发送给内容提供设备。那么内容提供设备在接收携带了第一对称加密信息的Interest包后,可以将第一对称加密信息存储到内容D’的附件数据中,这样,若内容提供设备下次再发送内容D’时,可将第一对称加密信息添加到携带内容D’的数据包中一并发送,则第一对称加密信息所对应的可信域中的设备就可以直接使用对称加密方式来验证内容D’的合法性,减少了使用非对称加密方式验证的次数,提高验证效率。
[0105] 当然,如果路由器1已经将第一对称加密信息发送给内容提供设备了,则路由器2就可以无需发送,或者如果是内容提供设备自己生成的第一对称加密信息,则路由器2也无需发送,可根据实际情况选择不同的处理方式。
[0106] S47、路由器3确定第二数据包里携带的对称加密信息中不包括路由器3所在的可信域对应的对称加密信息,那么路由器3就使用第二对称密钥对内容D’的散列值进行对称加密,将对称加密后得到的信息称为第二对称加密信息。
[0107] 路由器3接收第二数据包后,确定第二数据包里携带了对称加密信息,则路由器3可采用如前介绍的A方式或B方式确定第二数据包携带的对称加密信息中是否包括用于在AS2中验证内容D’的合法性的对称加密信息。本发明实施例中,第二数据包携带的第一对称加密信息是用于在AS1里验证内容D’的合法性的对称加密信息,也就是说第二数据包里未携带用于在AS2里验证内容D’的合法性的对称加密信息,因此路由器3可以生成用于在AS2里对内容D’进行验证的对称加密信息,为了与在AS1里对内容D’进行验证的第一对称加密信息相区别,本文中将用于在AS2里对内容D’进行验证的对称加密信息称为第二对称加密信息。具体的,路由器3对第二数据包携带的内容D’进行哈希散列计算,得到内容D’的散列值,再使用第二对称密钥对内容D’的散列值进行加密,得到第二对称加密信息。第一对称密钥是路由器1所在的可信域,即AS1中共享的对称密钥,AS1里的设备都可以使用第一对称密钥对内容进行对称加密。
[0108] 另外,在路由器3生成第二对称加密信息之前,要采用非对称加密方式对第二数据包携带的内容D’进行验证,关于非对称加密方式的验证过程可参考S42中的相关介绍。
[0109] S48、路由器3将第二对称加密信息添加到第二数据包中。本文中将添加了第二对称加密信息的第二数据包称为第三数据包。在图4中将该第三数据包表示为数据包3。
[0110] S49、路由器3根据第二数据包的传输路径对第三数据包进行处理。
[0111] 在本发明实施例中,路由器3可以缓存内容D’,还可以将第三数据包发送给第二数据包的传输路径上的下一跳设备,即用户设备,则用户设备接收第三数据包。图4中的S49是以路由器3将第三数据包发送给用户设备为例。
[0112] 在一种实施方式中,路由器3还可以将第二对称加密信息发送给内容提供设备,例如路由器3可生成Interest包,并将第二对称加密信息添加到该Interest包中发送给内容提供设备。那么内容提供设备在接收携带了第二对称加密信息的Interest包后,可以将第二对称加密信息存储到内容D’的附件数据中,这样,若内容提供设备下次再发送内容D’时,可将第二对称加密信息添加到携带内容D’的数据包中一并发送,则第二对称加密信息所对应的可信域中的设备就可以直接使用对称加密方式来验证内容D’的合法性,减少了使用非对称加密方式验证的次数,提高验证效率。
[0113] 如果用户设备与路由器3同属于一个可信域,则用户设备接收第三数据包后可采用对称加密方式验证内容D’的合法性,即使用AS2中共享的第二对称密钥验证内容D’的合法性,关于对称加密方式下的验证过程可参考S45中的相关介绍。而如果用户设备与路由器3属于不同的可信域,那么用户设备接收第三数据包后,还会继续采用非对称加密方式验证内容D’的合法性,关于非对称加密方式下的验证过程可参考S42中的相关介绍。
[0114] 其中,用户设备就是请求该内容D’的设备,则用户设备接收第三数据包后,内容D’就传输完毕。如果用户设备确定内容D’合法,则用户设备可以缓存内容D’,还可以对内容D’进行其他一些处理,本发明实施例不作限制。而如果用户设备确定内容D’不合法,则用户设备可以丢弃内容D’,另外,用户设备还可以重新请求获得内容D’,例如用户设备重新生成用于请求内容D’的Interest包,并将该Interest包发送给内容提供设备,以重新请求内容D’。
[0115] 在本发明实施例中,利用网络设备间的可信域,将非对称的加解密过程转变为对称加解密的过程。在一个可信域中,仅需要第一次收到数据包的网络设备进行非对称解密验证即可,后续的网络设备都只需要对称解密验证。若通过软件方式实现,则约能实现2~3个数量级的加速,若通过硬件方式实现则加速比更高。解决了传统的经由非对称加密实现身份认证的方法效率太低的问题。另外,网络设备通过对内容的哈希散列值进行对称加密来对内容进行网络设备所处可信域的标记,从而帮助后续的同一可信域内的网络设备通过验证标识的有效性来加快对内容的验证速度。不同的可信域可添加其特有的标识,使得本发明实施例提供的技术方案能够适用于多可信域的网络环境。
[0116] 请参见表1,为纯软件实现条件下的初步的实验效果。
[0117] 表1
[0118]
[0119] 表1是将现有技术中的内容验证方法,即NDN原始验证方法,与本发明实施例提供的内容验证方法进行比较,可以看到,本发明实施例极大地节约了加解密过程所使用的时间。该实验结果表明,采用本发明实施例提供的方案,内容验证的效率可以提高18倍左右。
[0120] 下面结合附图介绍本发明实施例所提供的设备。
[0121] 请参见图5,基于同一发明构思,本发明一实施例提供一种网络设备,该网络设备包括接收器501和处理器502。
[0122] 其中,处理器502可以包括中央处理器(CPU)或特定应用集成电路(Application Specific Integrated Circuit,ASIC),可以包括一个或多个用于控制程序执行的集成电路,可以包括使用现场可编程门阵列(Field Programmable Gate Array,FPGA)开发的硬件电路,可以包括基带芯片。
[0123] 可能的实施方式中,该网络设备还可以包括存储器503,均在图5中一并示出,因为存储器503不是必选器件,因此在图5中画为虚线框的形式,以与必选器件进行区分。存储器503的数量可以是一个或多个。存储器503可以包括只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)和磁盘存储器,等等。存储器503可以用于存储处理器502执行任务所需的程序代码,还可以用于存储数据。
[0124] 其中,接收器501用于接收第二网络设备发送的第一数据包,第一数据包携带第一内容。处理器502用于若第一数据包携带了第一对称加密信息,且第一对称加密信息用于在该网络设备所在的可信域中验证第一内容,则根据第一对称加密信息验证第一数据包携带的第一内容是否合法。以及,若第一内容合法,则根据第一数据包的传输路径对第一数据包进行处理。
[0125] 在可能的实施方式中,处理器502根据第一对称加密信息验证第一数据包携带的第一内容是否合法,可通过以下方式实现:使用第一对称密钥对第一对称加密信息进行解码,得到第一散列值,及,对第一内容进行哈希运算,得到第二散列值。比较第一散列值及第二散列值,确定二者是否相同。其中,若第一散列值与第二散列值相同,则确定第一内容合法,否则确定第一内容不合法。第一对称加密信息是使用第一对称密钥对第一内容的散列值进行加密得到的。
[0126] 在可能的实施方式中,处理器502还用于:若第一数据包未携带第一对称加密信息,或第一对称加密信息不用于在网络设备所在的可信域中验证第一内容,则根据第一数据包携带的数字签名验证第一内容是否合法。若第一内容合法,则根据第一数据包的传输路径对第一数据包进行处理。
[0127] 在可能的实施方式中,处理器502根据第一数据包携带的数字签名验证第一内容是否合法,可通过以下方式实现:采用第一内容的内容提供设备所提供的公钥对数字签名进行解码,得到第三散列值,及,对第一内容进行哈希运算,得到第二散列值。比较第二散列值及第三散列值,确定二者是否相同。其中,若第二散列值与第三散列值相同,则确定第一内容合法,否则确定第一内容不合法。数字签名是内容提供设备通过私钥对第一内容的散列值加密得到的。
[0128] 在可能的实施方式中,处理器502还用于:使用第一对称密钥对第二散列值进行加密,得到第二对称加密信息,将第二对称加密信息添加到第一数据包中,得到第二数据包。那么,处理器502用于若第一内容合法,则根据第一数据包的传输路径对第一数据包进行处理,包括:若第一内容合法,则根据第一数据包的传输路径对第一数据包进行处理。
[0129] 在可能的实施方式中,该网络设备还包括发送器504,均在图5中一并示出,因为发送器504不是必选器件,因此在图5中画为虚线框的形式,以与必选器件进行区分。发送器504可以属于射频系统,用于与外部设备进行网络通信,例如可以通过以太网、无线接入网、无线局域网等网络与外部设备进行通信。
[0130] 其中,发送器用于:在处理器502使用第一对称密钥对第二散列值进行加密,得到第二对称加密信息后,将第二对称加密信息发送给内容提供设备。
[0131] 其中,接收器501、存储器503和发送器504可以通过总线500与处理器502相连接(图5以此为例),或者也可以通过专门的连接线与处理器502连接。
[0132] 通过对处理器502进行设计编程,将前述所示的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述实施例中的所示的方法。如何对处理器502进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
[0133] 该网络设备可以用于执行上述图4所示的实施例所提供的方法,例如是如前所述的第一网络设备。因此,对于该网络设备中的各功能单元所实现的功能等,可参考如前方法部分的描述,不多赘述。
[0134] 请参见图6,基于同一发明构思,本发明一实施例提供一种网络设备,该网络设备包括接收器601和处理器602。
[0135] 其中,处理器602可以包括CPU或ASIC,可以包括一个或多个用于控制程序执行的集成电路,可以包括使用FPGA开发的硬件电路,可以包括基带芯片。
[0136] 可能的实施方式中,该网络设备还可以包括存储器603,均在图6中一并示出,因为存储器603不是必选器件,因此在图6中画为虚线框的形式,以与必选器件进行区分。存储器603的数量可以是一个或多个。存储器603可以包括ROM、RAM和磁盘存储器,等等。存储器603可以用于存储处理器602执行任务所需的程序代码,还可以用于存储数据。
[0137] 其中,接收器601用于接收第二网络设备发送的第一数据包,第一数据包携带第一内容。若第一数据包未携带对称加密信息,使用第一对称密钥对第一内容的散列值进行加密,得到第一对称加密信息,将第一对称加密信息添加到第一数据包中,得到第二数据包。其中,第一对称密钥用于在该网络设备所在的可信域中对内容进行对称加密。处理器602用于根据第一数据包的传输路径对第二数据包进行处理。
[0138] 在可能的实施方式中,处理器602还用于在使用第一对称密钥对第一内容的散列值进行加密之前,根据第一数据包携带的数字签名验证第一内容是否合法。那么,处理器602使用第一对称密钥对第一内容的散列值进行加密,包括:若第一内容合法,则使用第一对称密钥对第一内容的散列值进行加密。
[0139] 在可能的实施方式中,处理器602用于根据第一数据包携带的数字签名验证第一内容是否合法,包括:采用第一内容的内容提供设备所提供的公钥对数字签名进行解码,得到第二散列值,及,对第一内容进行哈希运算,得到第一散列值。比较第一散列值及第二散列值,确定二者是否相同,其中,若第一散列值与第二散列值相同,则确定第一内容合法,否则确定第一内容不合法。其中,数字签名是内容提供设备通过私钥对第一内容的散列值加密得到的。
[0140] 在可能的实施方式中,该网络设备还包括发送器604,均在图6中一并示出,因为发送器604不是必选器件,因此在图6中画为虚线框的形式,以与必选器件进行区分。发送器604可以属于射频系统,用于与外部设备进行网络通信,例如可以通过以太网、无线接入网、无线局域网等网络与外部设备进行通信。
[0141] 其中,发送器用于:在处理器602使用第一对称密钥对第一内容的散列值进行加密,得到第一对称加密信息之后,将第一对称加密信息发送给第一内容的内容提供设备。
[0142] 其中,接收器601、存储器603和发送器604可以通过总线600与处理器602相连接(图6以此为例),或者也可以通过专门的连接线与处理器602连接。
[0143] 通过对处理器602进行设计编程,将前述所示的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述实施例中的所示的方法。如何对处理器602进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
[0144] 该网络设备可以用于执行上述图4所示的实施例所提供的方法,例如是如前所述的第一网络设备。因此,对于该网络设备中的各功能单元所实现的功能等,可参考如前方法部分的描述,不多赘述。
[0145] 请参见图7,基于同一发明构思,本发明一实施例提供一种网络设备,该网络设备可以包括接收单元701、验证单元702和处理单元703。
[0146] 其中,接收单元701用于接收第二网络设备发送的第一数据包,第一数据包携带第一内容。验证单元702用于若第一数据包携带了第一对称加密信息,且第一对称加密信息用于在该网络设备所在的可信域中验证第一内容,则根据第一对称加密信息验证第一数据包携带的第一内容是否合法。处理单元703用于若第一内容合法,则根据第一数据包的传输路径对第一数据包进行处理。
[0147] 在可能的实施方式中,验证单元702用于根据第一对称加密信息验证第一数据包携带的第一内容是否合法,包括:使用第一对称密钥对第一对称加密信息进行解码,得到第一散列值,及,对第一内容进行哈希运算,得到第二散列值。比较第一散列值及第二散列值,确定二者是否相同,其中,若第一散列值与第二散列值相同,则确定第一内容合法,否则确定第一内容不合法。其中,第一对称加密信息是使用第一对称密钥对第一内容的散列值进行加密得到的。
[0148] 在可能的实施方式中,验证单元702还用于:若第一数据包未携带第一对称加密信息,或第一对称加密信息不用于在该网络设备所在的可信域中验证第一内容,则根据第一数据包携带的数字签名验证第一内容是否合法。处理单元703还用于:若第一内容合法,则根据第一数据包的传输路径对第一数据包进行处理。
[0149] 在可能的实施方式中,验证单元702用于根据第一数据包携带的数字签名验证第一内容是否合法,包括:采用第一内容的内容提供设备所提供的公钥对数字签名进行解码,得到第三散列值,及,对第一内容进行哈希运算,得到第二散列值。比较第二散列值及第三散列值,确定二者是否相同,其中,若第二散列值与第三散列值相同,则确定第一内容合法,否则确定第一内容不合法。其中,数字签名是内容提供设备通过私钥对第一内容的散列值加密得到的。
[0150] 在可能的实施方式中,该网络设备还包括加密单元704和添加单元705,均在图7中一并示出。其中,因为加密单元704和添加单元705都是可选的功能单元,为了与必选的功能单元相区分,在图7中将加密单元704和添加单元705画为虚线形式。
[0151] 其中,加密单元704用于使用第一对称密钥对第二散列值进行加密,得到第二对称加密信息。添加单元705用于将第二对称加密信息添加到第一数据包中,得到第二数据包。那么,处理单元703用于若第一内容合法,则根据第一数据包的传输路径对第一数据包进行处理,包括:若第一内容合法,则根据第一数据包的传输路径对第一数据包进行处理。
[0152] 在可能的实施方式中,该网络设备还包括发送单元706,均在图7中一并示出。其中,因为发送单元706是可选的功能单元,为了与必选的功能单元相区分,在图7中将发送单元706画为虚线形式。
[0153] 其中,发送单元706用于:在加密单元704使用第一对称密钥对第二散列值进行加密,得到第二对称加密信息后,将第二对称加密信息发送给内容提供设备。
[0154] 在实际应用中,接收单元701对应的实体设备可以是图5中的接收器501,验证单元702、处理单元703、加密单元704、及添加单元705对应的实体设备可以是图5中的处理器
502,发送单元706对应的实体设备可以是图5中的发送器504。
[0155] 该网络设备可以用于执行上述图4所示的实施例所提供的方法,例如是如前所述的第一网络设备。因此,对于该网络设备中的各功能单元所实现的功能等,可参考如前方法部分的描述,不多赘述。
[0156] 请参见图8,基于同一发明构思,本发明一实施例提供一种网络设备,该网络设备可以包括接收单元801、加密单元802、添加单元803和处理单元804。
[0157] 其中,接收单元801用于接收第二网络设备发送的第一数据包,第一数据包携带第一内容。加密单元802用于若第一数据包未携带对称加密信息,使用第一对称密钥对第一内容的散列值进行加密,得到第一对称加密信息。添加单元803用于将第一对称加密信息添加到第一数据包中,得到第二数据包。处理单元804用于根据第一数据包的传输路径对第二数据包进行处理。其中,第一对称密钥用于在该网络设备所在的可信域中对内容进行对称加密。
[0158] 在可能的实施方式中,该网络设备还包括验证单元805,均在图8中一并示出。其中,因为验证单元805是可选的功能单元,为了与必选的功能单元相区分,在图8中将验证单元805画为虚线形式。
[0159] 其中,验证单元805用于在加密单元802使用第一对称密钥对第一内容的散列值进行加密之前,根据第一数据包携带的数字签名验证第一内容是否合法。那么,加密单元用于使用第一对称密钥对第一内容的散列值进行加密,包括:若第一内容合法,则使用第一对称密钥对第一内容的散列值进行加密。
[0160] 在可能的实施方式中,验证单元805用于根据第一数据包携带的数字签名验证第一内容是否合法,包括:采用第一内容的内容提供设备所提供的公钥对数字签名进行解码,得到第二散列值,及,对第一内容进行哈希运算,得到第一散列值。比较第一散列值及第二散列值,确定二者是否相同,其中,若第一散列值与第二散列值相同,则确定第一内容合法,否则确定第一内容不合法。其中,数字签名是内容提供设备通过私钥对第一内容的散列值加密得到的。
[0161] 在可能的实施方式中,该网络设备还包括发送单元806,均在图8中一并示出。其中,因为发送单元806是可选的功能单元,为了与必选的功能单元相区分,在图8中将发送单元806画为虚线形式。
[0162] 其中,发送单元806用于在加密单元802使用第一对称密钥对第一内容的散列值进行加密,得到第一对称加密信息之后,将第一对称加密信息发送给第一内容的内容提供设备。
[0163] 在实际应用中,接收单元801对应的实体设备可以是图6中的接收器601,加密单元802、添加单元803、处理单元804、及验证单元805对应的实体设备可以是图6中的处理器
602,发送单元806对应的实体设备可以是图6中的发送器604。
[0164] 该网络设备可以用于执行上述图4所示的实施例所提供的方法,例如是如前所述的第一网络设备。因此,对于该网络设备中的各功能单元所实现的功能等,可参考如前方法部分的描述,不多赘述。
[0165] 本发明实施例中,第一网络设备在第一网络设备所在的可信域中可采用对称加密的方式对内容进行验证,由于是在可信域中采用对称加密方式,因此安全性有所保障,而对称加密方式的验证速度远快于非对称加密方式,因此通过采用本发明实施例提供的技术方案能够有效加快内容验证的速度,提高效率,也能够适应高速网络环境的需求。
[0166] 本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括如前的图4所示的方法实施例中记载的第一网络设备所执行的全部步骤。
[0167] 本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0168] 本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0169] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0170] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0171] 显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。