基于身份的命名数据网络通信方法和通信系统转让专利

申请号 : CN202110055022.8

文献号 : CN112738130B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张丽朱明悦

申请人 : 北京工业大学

摘要 :

本发明公开了一种基于身份的命名数据网络通信方法和通信系统,方法包括:基于HIBC的根PKG的私钥,对系统公共参数进行签名,并记录至数据包的签名信息字段;以生产者的身份信息、数据信息和系统公共参数的有效期构成数据包的名称;消费者在获取数据包过程中,向生产者发送包括数据包名称的兴趣包,生产者向消费者发送数据包;消费者向第三方权威机构发送请求公钥的兴趣包;第三方权威机构向消费者发送包括根PKG对应公钥的数字证书;消费者利用接收到的数字证书中的公钥,对数据包的签名信息进行验证,验证成功后获取数据包中的数据包内容。通过本发明的技术方案,能够防止恶意用户进行数据注入攻击,实现了通信安全的保障。

权利要求 :

1.一种基于身份的命名数据网络通信方法,其特征在于,包括:

生产者在生产数据包过程中,基于身份的层次加密HIBC的根PKG的私钥,对系统公共参数进行签名;

将签名后的系统公共参数记录至所述数据包的签名信息字段;

以所述生产者的身份信息、数据信息和所述系统公共参数的有效期构成所述数据包的名称,所述生产者的身份信息由所述HIBC中当前层级的PKG和所有祖先PKG生成的ID组合形成,所述数据包中包括所述数据包的名称、数据包内容信息、数据包内容和签名信息字段,所述数据包的名称作为HIBC的公钥,所述签名信息字段中包括根据所述根PKG计算得到的对所述系统公共参数的签名信息,所述系统公共参数用于HIBC的签名、验证签名、加密和解密算法中;

消费者在获取所述数据包过程中,向所述生产者发送包括所述数据包名称的兴趣包;

所述生产者在接收到所述兴趣包时,向所述消费者发送所述数据包;

所述消费者向第三方权威机构发送请求所述数据包中的根PKG对应公钥的兴趣包;

所述第三方权威机构向所述消费者发送包括所述根PKG对应公钥的数字证书;

所述消费者利用接收到的所述数字证书,根据所述第三方权威机构的公钥对所述数字证书进行验证后,根据所述数字证书中根PKG的公钥,对所述签名信息字段中签名的根PKG私钥进行匹配验证,验证成功后获取所述数据包中的数据包内容。

2.根据权利要求1所述的基于身份的命名数据网络通信方法,其特征在于,所述第三方权威机构向所述消费者发送的数字证书中包括公钥拥有者信息、公钥、颁发机构信息、有效时间和颁发机构签名,所述颁发机构签名为所述第三方权威机构利用自身私钥对所述数字证书进行签名。

3.一种基于身份的命名数据网络通信系统,应用权利要求1或2所述的基于身份的命名数据网络通信方法,其特征在于,包括:PARAM签名模块,用于在生产者生产数据包过程中,基于HIBC的根PKG的私钥,对系统公共参数进行签名,并将签名后的系统公共参数记录至所述数据包的签名信息字段;

数据包命名模块,用于由所述HIBC中当前层级的PKG和所有祖先PKG生成的ID组合形成所述生产者的身份信息,并以所述生产者的身份信息、数据信息和所述系统公共参数的有效期构成所述数据包的名称,所述数据包中包括所述数据包的名称、数据包内容信息、数据包内容和签名信息字段,所述数据包的名称作为HIBC的公钥,所述签名信息字段中包括根据所述根PKG计算得到的对所述系统公共参数的签名信息,所述系统公共参数用于HIBC的签名、验证签名、加密和解密算法中;

数据包获取模块,在消费者获取所述数据包过程中,向所述生产者发送包括所述数据包名称的兴趣包;

数据包返回模块,用于在所述生产者接收到所述兴趣包时,向所述消费者发送所述数据包;

公钥请求模块,用于向第三方权威机构发送请求所述数据包中根PKG对应公钥的兴趣包,并将所述第三方权威机构返回的数字证书发送至所述消费者;

签名验证模块,用于利用所述消费者接收到的所述数字证书,根据所述第三方权威机构的公钥对所述数字证书进行验证后,根据所述数字证书中根PKG的公钥,对所述签名信息字段中签名的根PKG私钥进行匹配验证,并在验证成功后获取所述数据包中的数据包内容。

4.根据权利要求3所述的基于身份的命名数据网络通信系统,其特征在于,所述第三方权威机构向所述消费者发送的数字证书中包括公钥拥有者信息、公钥、颁发机构信息、有效时间和颁发机构签名,所述颁发机构签名为所述第三方权威机构利用自身私钥对所述数字证书进行签名。

说明书 :

基于身份的命名数据网络通信方法和通信系统

技术领域

[0001] 本发明涉及命名数据网络通信技术领域,尤其涉及一种基于身份的命名数据网络通信方法和一种基于身份的命名数据网络通信系统。

背景技术

[0002] 与当前的IP网络相比,NDN(Named Data Networking,命名数据网络)完全开放、去中心化且面向内容的网络模型,使其不仅更容易受到IP网络中一些传统的网络攻击,也引入了很多在传统网络中不存在的新型攻击。
[0003] 命名数据网络采用缓存机制,并且没有网络连接的概念,那么数据的安全不再依赖于数据所在的地址。NDN只关注数据本身,数据的安全建立在数据本身的安全之上,而不是通道安全。因此NDN在设计之初就将‘安全’作为了沙漏模型中的一层,试图将安全融入网络协议中。NDN中生产者对数据签名,消费者通过验证数字签名,确定数据的完整性。若要确定数据是否可信,还需要提供合适的信仼机制,使数据消费者信任接收到的数据。生产者使用私钥对数据进行签名,消费者使用公钥验证数字签名,验证成功表明某个私钥对数据进行了签名,用户想要确定数据是否可信,需采用合适的信任机制认证其公钥所属者的身份,若公钥所属者可信,则其产生的数据也可信。
[0004] 虽然这种基础的安全措施无法抵御所有的网络攻击,但是至少应该满足以下几种安全需求:
[0005] (1)完整性:由于内容包在非安全信道上传输的过程中容易受到篡改攻击,需要提供一种安全机制保证合法发布者发岀的有效数据包不被修改、破坏和丢失。
[0006] (2)可认证性:NDN中的可认证性一方面要能够从数据包中得出消息的发布源头,验证数据发布者的真实性,确认他没有被冒充;另一方面要能够保证数据名与内容的相关性。
[0007] (3)不可否认性:建立有效的责任机制,防止用户否认发布或者请求过某条内容。即内容发布者不能否认发布过的数据包,消费者不能否认发布过的兴趣包。这样就可以有效避免兴趣包泛洪攻击和虚假内容包注入攻击。
[0008] (4)保密性:对于需要保密的信息,如电子邮件、机要文件和通信密钥等,只有被授权的合法用户才有阅读该信息的能力。
[0009] 而在现有的NDN通信方法中,大多存在效率低下的问题,而且未在数据包名称和公共密钥之间建立唯一关联,导致攻击者可以按以下方式发起数据注入攻击:攻击者拦截兴趣包,并向请求者发送了一个伪造的数据包,其中包含相同的名称、虚假的数据、有关他自己的密钥信息以及相关的签名,则请求者接收此兴趣包可以恢复公钥和攻击者的证书,但他无法发现被攻击,因此无法有效保证数据通信的安全性。

发明内容

[0010] 针对上述问题,本发明提供了一种基于身份的命名数据网络通信方法和通信系统,基于HIBC(hierarchical identity based cryptography,基于身份的层次加密)和PKI的混合信任模型,利用PKG(Private‑Key Generator,私钥生成器)对NDN的层次命名结构进行扩展设计,在数据包名称和公共密钥之间建立唯一关联,防止恶意用户进行数据注入攻击,此外,通过HIBC根PKG的私钥对PARAM(系统公共参数)签名,并通过PKI(Public Key Infrastructure,公钥基础设施)的第三方权威机构验证证书签名从而获取对PARAM的信任,实现了通信安全的保障。
[0011] 为实现上述目的,本发明提供了一种基于身份的命名数据网络通信方法,包括:生产者在生产数据包过程中,基于HIBC的根PKG的私钥,对系统公共参数进行签名;将签名后的系统公共参数记录至所述数据包的签名信息字段;以所述生产者的身份信息、数据信息和所述系统公共参数的有效期构成所述数据包的名称,所述生产者的身份信息由所述HIBC中当前层级的PKG和所有祖先PKG生成的ID组合形成;消费者在获取所述数据包过程中,向所述生产者发送包括所述数据包名称的兴趣包;所述生产者在接收到所述兴趣包时,向所述消费者发送所述数据包;所述消费者向第三方权威机构发送请求所述数据包中的根PKG对应公钥的兴趣包;所述第三方权威机构向所述消费者发送包括所述根PKG对应公钥的数字证书;所述消费者利用接收到的所述数字证书中的公钥,对所述数据包的签名信息进行验证,验证成功后获取所述数据包中的数据包内容。
[0012] 在上述技术方案中,优选地,所述数据包中包括所述数据包的名称、数据包内容信息、数据包内容和签名信息字段,所述数据包的名称作为HIBC的公钥,所述签名信息字段中包括根据所述根PKG计算得到的对所述系统公共参数的签名信息,所述系统公共参数用于HIBC的签名、验证签名、加密和解密算法中。
[0013] 在上述技术方案中,优选地,所述消费者通过所述第三方权威机构获得所述数字证书后,根据所述第三方权威机构的公钥对所述数字证书进行验证后,根据所述数字证书中根PKG的公钥,对所述签名信息字段中签名的根PKG私钥进行匹配验证。
[0014] 在上述技术方案中,优选地,所述第三方权威机构向所述消费者发送的数字证书中包括公钥拥有者信息、公钥、颁发机构信息、有效时间和颁发机构签名,所述颁发机构签名为所述第三方权威机构利用自身私钥对所述数字证书进行签名。
[0015] 本发明还提出一种基于身份的命名数据网络通信系统,应用上述技术方案中任一项所述的基于身份的明明数据网络通信方法,包括:PARAM签名模块,用于在生产者生产数据包过程中,基于HIBC的根PKG的私钥,对系统公共参数进行签名,并将签名后的系统公共参数记录至所述数据包的签名信息字段;数据包命名模块,用于由所述HIBC中当前层级的PKG和所有祖先PKG生成的ID组合形成所述生产者的身份信息,并以所述生产者的身份信息、数据信息和所述系统公共参数的有效期构成所述数据包的名称;数据包获取模块,在消费者获取所述数据包过程中,向所述生产者发送包括所述数据包名称的兴趣包;数据包返回模块,用于在所述生产者接收到所述兴趣包时,向所述消费者发送所述数据包;公钥请求模块,用于向第三方权威机构发送请求所述数据包中根PKG对应公钥的兴趣包,并将所述第三方权威机构返回的数字证书发送至所述消费者;签名验证模块,用于利用所述消费者接收到的所述数字证书中的公钥,对所述数据包的签名信息进行验证,并在验证成功后获取所述数据包中的数据包内容。
[0016] 在上述技术方案中,优选地,所述数据包中包括所述数据包的名称、数据包内容信息、数据包内容和签名信息字段,所述数据包的名称作为HIBC的公钥,所述签名信息字段中包括根据所述根PKG计算得到的对所述系统公共参数的签名信息,所述系统公共参数用于HIBC的签名、验证签名、加密和解密算法中。
[0017] 在上述技术方案中,优选地,所述消费者通过所述第三方权威机构获得所述数字证书后,根据所述第三方权威机构的公钥对所述数字证书进行验证后,根据所述数字证书中根PKG的公钥,对所述签名信息字段中签名的根PKG私钥进行匹配验证。
[0018] 在上述技术方案中,优选地,所述第三方权威机构向所述消费者发送的数字证书中包括公钥拥有者信息、公钥、颁发机构信息、有效时间和颁发机构签名,所述颁发机构签名为所述第三方权威机构利用自身私钥对所述数字证书进行签名。
[0019] 与现有技术相比,本发明的有益效果为:基于HIBC和PKI的混合信任模型,利用PKG对NDN的层次命名结构进行扩展设计,在数据包名称和公共密钥之间建立唯一关联,防止恶意用户进行数据注入攻击,此外,通过HIBC根PKG的私钥对PARAM签名,并通过PKI的第三方权威机构验证证书签名从而获取对PARAM的信任,实现了通信安全的保障。

附图说明

[0020] 图1为本发明一种实施例公开的基于身份的命名数据网络通信方法的流程示意图;
[0021] 图2为本发明一种实施例公开的兴趣包与数据包的结构示意图;
[0022] 图3为本发明一种实施例公开的NDN数据包的命名结构示意图;
[0023] 图4为本发明一种实施例公开的通信过程的数据交换逻辑流程示意图;
[0024] 图5为本发明一种实施例公开的基于身份的命名数据网络通信系统的结构示意图。
[0025] 图中,各组件与附图标记之间的对应关系为:
[0026] 11.PARAM签名模块,12.数据包命名模块,13.数据包获取模块,14.数据包返回模块,15.公钥请求模块,16.签名验证模块。

具体实施方式

[0027] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028] 下面结合附图对本发明做进一步的详细描述:
[0029] 如图1和图2所示,根据本发明提供的一种基于身份的命名数据网络通信方法,包括:生产者在生产数据包过程中,基于HIBC的根PKG的私钥,对系统公共参数进行签名;将签名后的系统公共参数记录至数据包的签名信息字段;以生产者的身份信息、数据信息和系统公共参数的有效期构成数据包的名称,生产者的身份信息由HIBC中当前层级的PKG和所有祖先PKG生成的ID组合形成;消费者在获取数据包过程中,向生产者发送包括数据包名称的兴趣包;生产者在接收到兴趣包时,向消费者发送数据包;消费者向第三方权威机构发送请求数据包中的根PKG对应公钥的兴趣包;第三方权威机构向消费者发送包括根PKG对应公钥的数字证书;消费者利用接收到的数字证书中的公钥,对数据包的签名信息进行验证,验证成功后获取数据包中的数据包内容。
[0030] 在该实施例中,基于HIBC和PKI的混合信任模型,利用PKG对NDN的层次命名结构进行扩展设计,在数据包名称和公共密钥之间建立唯一关联,防止恶意用户进行数据注入攻击,此外,通过HIBC根PKG的私钥对PARAM签名,并通过PKI的第三方权威机构验证证书签名从而获取对PARAM的信任,实现了通信安全的保障。
[0031] 具体地,HIBC是IBC的一个变种,能反映一个组织的层级结构,如一棵倒立的树。IBC(identity based cryptography,基于身份的加密)表示一种公共密钥密码系统,其中任何唯一的字符串都可以用作公共密钥。关联的私钥是基于公钥以及受信任的私钥生成器(PKG)的公共参数和私钥生成的。IBC在NDN数据包的签名信息字段中记录PKG公共参数参数的信息(如附图1)。IBC有两个重要的功能:基于身份的加密(Identity‑based Encryption,IBE)功能和基于身份的签名(Identity‑based Signature,IBS)功能。
[0032] 与IBC不同的是,HIBC中拥有多个PKG,每个PKG都拥有自己的主私钥,PKG为与之相邻的用户产生并传递私钥,HIBC中位于根部的Rootpkg称为根PKG。
[0033] 每个用户的ID由其所有祖先PKG的ID组成。比如,A用户处于第t级上,A的ID为ID元组(ID1,ID2,…,IDt),其中IDi代表第i级的节点。位于第t级上的PKG为与其直接相邻的用户产生私钥,相邻用户的ID为ID元组(ID1,ID2,…IDt,IDt+1)。
[0034] HIBC有两个重要的功能:基于身份的层次加密(Hierarchical Identity‑based Encryption,HIBE)功能和基于身份的层次签名(Hierarchical Identity‑based Signature,HIBS)功能。
[0035] 其中基于身份的签名功能包含有四个算法:设置、提取私钥、签名和验证。设置算法和提取密钥算法与HIBE中的设置与提取算法一样。
[0036] 1.Root Setup(λ)→(MSK(root pkg),PARAM):设置算法。安全参数λ作为输入,Root PKG运行该设置算法,产生自己的主私钥MSK(root pkg)和系统公共参数PARAM,Root PKG会保证MSK(root pkg)的私密性,系统公共参数PARAM是公开的,供系统中的所有用户和PKG使用。
[0037] 2.Lower Level Setup(λ)→MSKpkg:设置算法。安全参数λ作为输入,每个非Root PKG运行该设置算法,产生自己的主私钥MSKpkg。
[0038] 3.KeyGen(MSKpkg,ID‑tuple(ID1,ID2,...,IDt))→DID:私钥提取算法。给具有身份ID‑tuple(ID1,ID2,...,IDt)的用户计算其对应的私钥DID,第t‑1层的PKG执行该算法。算法执行前,PKG会认证申请者是否具有身份ID‑tuple(ID1,ID2,...,IDt)。DID即为私钥,私钥会安全地发送给用户。
[0039] 4.Sign(PARAM,DID,M)→σ:签名算法。该算法由签名者执行,输入签名者的私钥DID、系统公共参数PARAM和待签名的明文M,计算出签名σ。
[0040] 5.Verify(PARAM,ID‑tuple(ID1,ID2,...,IDt),M,σ):验证签名算法。该算法由验证签名者执行,输入系统公共参数PARAM、验证签名者的身份信息ID‑tuple(ID1,ID2,...,IDt)、明文M和签名σ,运行算法验证签名σ,若验证签名成功则输出1,否则输出0。
[0041] 其中,HIBC中的加密和签名操作与IBC中的加密和签名是类似的,不同的是,HIBC中有多个PKG,设置算法会作用于所有的PKG,只是根PKG才拥有系统公共参数PARAM,其他的PKG共用这个公共参数。ID‑tuple(ID1,ID2,...,IDt)作为公钥,系统公共参数用于签名、验证签名、加密和解密算法中,HIBC的安全依赖于系统公共参数PARAM,因此要保证PARAM的安全。
[0042] 此外,公钥基础设施(PKI)是目前网络安全建设的基础与核心,是通信安全实施的基本保障。PKI主要在电子商务、网上银行等安全要求较高的场景使用,用于认证通讯者的身份、加密数据和签名数据。为了获得正确的公钥,第三方权威机构(CA,Certificate Authority)给用户颁发数字证书,数字证书包含公钥拥有者的信息、公钥、颁发机构和有效时间以及颁发机构的签名等信息。证书把公钥和公钥的所有者信息绑定在一起,CA利用自己的私钥对证书签名。用户获取CA的公钥,验证证书的签名确定数字证书真伪,信任CA则信任数字证书中的公钥。由此可知,CA是PKI的重要组成部分,用于认证用户、颁发数字证书和管理证书。
[0043] 如图3所示,其中,扩展的NDN命名结构中,名称在保留了与原先相同结构基础上,还增加了有关生产者真实身份的信息、有关数据的信息和数据的编辑日期或PKG公共参数的有效期。此外,名称的每个组成部分(以“/”分隔)都与PKG相关联。该PKG负责在此级别标识的唯一性,以及将生成的私钥分发给其所有者。这样命名不仅保留了NDN相同的总体体系架构以及路由和缓存机制,还建立了数据包名称和公共密钥之间的唯一关联,更好地满足NDN中的安全要求。该名称扩展可以确保生产者验证身份,数据完整性,名称真实性和相关性。此安全扩展名称可以绕过虚假数据注入攻击,攻击者无法再产生由截获的名称和虚假数据组成的伪造数据包,无法产生对应于该名称的私钥。
[0044] 如图2所示,以bjut大学2020学期学生成绩单的数据包为例,其数据名称充当HIBC公钥,在此名称中,/bjut.edu.cn/admin/部分表示有关生产者身份的信息,以确保对数据进行标识,201861888_Score_Report_2020部分表示有关请求具体数据内容的名称信息,代表学号为201861888的学生2020学期的成绩单,因此确保了相关性。最后,/1_1_2021表示PKG公共参数的有效期。
[0045] 在上述实施例中,优选地,数据包中包括数据包的名称、数据包内容信息、数据包内容和签名信息字段,数据包的名称作为HIBC的公钥,签名信息字段中包括根据根PKG计算得到的对系统公共参数的签名信息,系统公共参数用于HIBC的签名、验证签名、加密和解密算法中。
[0046] 在上述实施例中,优选地,消费者通过第三方权威机构获得数字证书后,根据第三方权威机构的公钥对数字证书进行验证后,根据数字证书中根PKG的公钥,对签名信息字段中签名的根PKG私钥进行匹配验证。
[0047] 如图4所示,具体地,基于PKI对公共参数PARAM建立信任,为了保证系统公共参数PARAM的安全与可信任性,使用HIBC根PKG的私钥计算对PARAM的签名,并将签名信息记录到NDN数据包的签名信息字段。为了安全地获取到相应的公钥以验证签名,采用数字证书传递,该数字证书可作为NDN数据包获取到,并且该证书由通过第三方权威机构身份以及已知公共参数生成的私钥签名。通过第三方权威机构的身份作为公钥验证数字证书的签名,从而获取对PARAM的信任。
[0048] 在上述实施例中,优选地,第三方权威机构向消费者发送的数字证书中包括公钥拥有者信息、公钥、颁发机构信息、有效时间和颁发机构签名,颁发机构签名为第三方权威机构利用自身私钥对数字证书进行签名。
[0049] 在上述实施例中,一组生产者共用一个证书,例如图2中,/bjut.edu.cn/下的所有数据发布者都使用相同的证书,使得基于HIBC和PKI的混合信任模型与传统利用PKI的信任模型相比,减少了证书的使用数量。
[0050] 如图5所示,本发明还提出一种基于身份的命名数据网络通信系统,应用上述实施例中任一项的基于身份的明明数据网络通信方法,包括:PARAM签名模块11,用于在生产者生产数据包过程中,基于HIBC的根PKG的私钥,对系统公共参数进行签名,并将签名后的系统公共参数记录至数据包的签名信息字段;数据包命名模块12,用于由HIBC中当前层级的PKG和所有祖先PKG生成的ID组合形成生产者的身份信息,并以生产者的身份信息、数据信息和系统公共参数的有效期构成数据包的名称;数据包获取模块13,在消费者获取数据包过程中,向生产者发送包括数据包名称的兴趣包;数据包返回模块14,用于在生产者接收到兴趣包时,向消费者发送数据包;公钥请求模块15,用于向第三方权威机构发送请求数据包中根PKG对应公钥的兴趣包,并将第三方权威机构返回的数字证书发送至消费者;签名验证模块16,用于利用消费者接收到的数字证书中的公钥,对数据包的签名信息进行验证,并在验证成功后获取数据包中的数据包内容。
[0051] 在上述实施例中,优选地,数据包中包括数据包的名称、数据包内容信息、数据包内容和签名信息字段,数据包的名称作为HIBC的公钥,签名信息字段中包括根据根PKG计算得到的对系统公共参数的签名信息,系统公共参数用于HIBC的签名、验证签名、加密和解密算法中。
[0052] 在上述实施例中,优选地,消费者通过第三方权威机构获得数字证书后,根据第三方权威机构的公钥对数字证书进行验证后,根据数字证书中根PKG的公钥,对签名信息字段中签名的根PKG私钥进行匹配验证。
[0053] 在上述实施例中,优选地,第三方权威机构向消费者发送的数字证书中包括公钥拥有者信息、公钥、颁发机构信息、有效时间和颁发机构签名,颁发机构签名为第三方权威机构利用自身私钥对数字证书进行签名。
[0054] 以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。