实现多方通信安全的系统和方法

文档序号:7964305阅读:158来源:国知局
专利名称:实现多方通信安全的系统和方法
技术领域
本发明涉及网络通信领域,尤其涉及一种实现多方通信安全的系统和方法。
背景技术
多方通信是指具有两个或者两个以上的成员参加的一种通信场景,只有 两个成员参加的场景是多方通信的一个特例。多方通信场景一般都有多个数 据接收者, 一个或多个数据发送者。在多方通信中可以采用单播技术或者多 播技术来发送报文,采用多播技术比采用单播技术更容易实现多方通信。
常见的多方通信场景包括远程多方会议、IP电话、IPTV、网络在线游戏 和网格计算等。多方通信安全是指对多方通信参与者提供访问控制(授权、 认证),对通信内容提供加密、完整性保护、重放保护、源认证和组认证等 安全服务,防止非组成员窃听和篡改通信内容,或干扰通信过程的正常进 行,以及防止来自成员内部的安全威胁。
多方通信的安全需求主要包括
1、 授权和认证。只有经过允许、并能证明身份的人才能加入多方通信组 以及收发数据,以使多播组可控。
2、 保密。只有拥有解密密钥的节点才能解读组通信报文的内容。
3、 组成员认证。非组成员无法生成有效的认证信息,进而无法冒充组成 员发送多播报文。4、 源认证(抗抵赖)。组成员无法生成其他组成员的认证信息,进而无 法冒充其他组成员发送多播报文。另一方面,组成员也无法否认其发送的信息。5、 匿名性。为组成员提供匿名发言的机制,也就是说,接收方无法从接 收到的多播报文推断出发送方的身份。6、 完整性。提供验证收到的多播报文是否被篡改的手段。7、 抗重放。提供重放检测机制,实现抗重放攻击。为保证多方通信的安全通常对多方通信报文进行加密传输。加密和解密 用的多方共享密钥只有组成员才知道,这样能够确保被加密的报文只有组成 员才能解读。组成员认证也可以利用该密钥来实现,因为只有拥有密钥的组 成员才能正确地生成加密的多播报文。利用上述多方共享密钥来解决多方通信安全问题的关键是密钥的生成和 分发。这种生成和分发必须是排外的,即非组成员无法获得生成和分发的密 钥。源认证、完整性和匿名服务通常也要利用双方或多方之间信息的排外共 享。在多方通信中,如何实现密钥的排外共享是组密钥管理的研究范畴,组 密钥是所有组成员共享的密钥,用来对多播报文进行加密和解密等安全操 作。组密钥管理主要研究如何为组成员生成、发布和更新组密钥,并解决由 此产生的扩展性、健壮性和可靠性问题。现有技术中一种实现多方通信安全的方案为使用MSEC (多播安全) 工作组设计的MSEC协议族的管理方案。MSEC是IETF安全域下的一个工作 组,致力于解决IP多播的安全问题,已经制定了多个安全协议。MSEC协议 族的工作方式示意图如图1所示。MSEC工作组的协议设计思路是将组密钥管理和数据安全相分离,只解 决组密钥管理方面的问题。MSEC工作组已经制定了多个组密钥管理协议, 包括GSAKMP (组安全联盟管理协议)、GDOI (组解释域)、MIKE丫 (多
媒体因特网密钥管理)等,这些协议的共性是偏重于为基于组播方式的数据 安全协议提供标准的组密钥管理方案。从工作方式上看,MSEC协议族更适合工作在支持IP层多播的环境中, 比如GSAKMP和GDOI协议就直接使用了需要多播服务的组密钥管理算法。 虽然在单播方式下这种算法也能运行,但将严重影响运行效率。而上述两种协议没有规定任何使用单播代替多播时的优化措施。MIKE丫协议工作在多方 模式时,也需要采用多播工作方式。在所支持的数据安全协议方面,MSEC协议族虽然是可扩展的,但其主 要支持ESP (封装安全协议)和AH (IP头可认证协议)协议,这两种协议的 特点是工作在IP层,需要采用多播方式才能提供多方通信数据安全服务。上述现有技术方案的缺点为1、只解决了组密钥管理方面的问题,不能给应用程序和应用协议提供标 准的API (应用程序编程接口 )调用接口。MSEC协议族采用组密钥管理协议和数据安全协议分开设计的方式。各 个组密钥管理协议只能以守护进程或应用程序的形式单独运行,比如GDOI和 GSAKMP ,不能提供标准的API调用接口供应用程序对组密钥管理进行控 制,因此,基于组密钥管理协议开发的应用程序的可移植性很低。而MIKEY协议则需要嵌入到调用其服务的应用程序中运行。就是说,如 果应用程序需要调用MI KE丫协议的功能,就需要自身完成MIKEY协议的交互 过程。这种方式增加了MIKEY协议与应用程序的耦合度,使得每一位需要使 用MIKEY协议功能的编程人员都需要了解MIKEY协议的内部实现知识,增加 了应用程序的实现难度。从数据安全方面看,因为MSEC协议族目前主要支持ESP和AH,这两种 协议均在IP层实现,需要运行于操作系统的内核中,这种实现方式除了不能
用程序的可部署性,因为不同的操作系统对ESP和AH的功能实现可能并不相 同,有的可能根本没有实现这样的功能。此外,即使MSEC协议族能够通过扩展支持新的数据安全协议,但因为 目前缺乏一种通用的、应用程序能直接调用的、支持多方通信的数据安全协 议,应用程序同样不能使用MSEC协议族提供的服务。2、 基于集中管理方式实现,不支持分布式密钥协商 MSEC协议族在解决多于两方的多方通信安全问题时,都需要存在密钥服务器,不能支持P2P (对等计算)这类对等网络上的纯分布式的多方通信 场景。3、 存在多播依赖性,限制了其实际的应用MSEC协议族更适合部署在具有IP多播功能的环境中。但在实际应用中 多播技术使用极少,多方通信普遍采用单播技术实现。所以MSEC协议族的 应用范围受到了限制。现有技术中另一种实现多方通信安全的方案为基于TLS (基于有连接 的可靠传输的安全协议)和DTLS (基于无连接的不可靠传输的安全协议)技 术的双方通信安全解决方案。TLS和DTLS运行在应用层和传输层之间,能够提供标准API供应用程序 调用和控制其功能,并且在应用程序进程空间中运行,可以很容易的与应用 程序进行交互。TLS和DTLS基于Client/Server (客户端/服务器)方式运行, 能够提供认证、密钥协商、密钥更新、加密、完整性保护、抗重放等安全功 能。上述现有技术的方案的缺点为该方案只能为两方的通信提供安全服 务,对三方及以上的通信场景,只能通过建立多个session (会话)的方式来 提供安全功能,这种建立多个session的方式繁瑣、复杂、效率低下,可行性 极低
发明内容
鉴于上述现有技术所存在的问题,本发明的目的是提供一种实现多方通信安全的系统和方法,从而能够以标准API的形式向应用程序(或应用协议) 提供组密钥管理和多方通信数据安全功能。本发明的目的是通过以下技术方案实现的一种实现多方通信安全的系统,包括组密钥管理单元和记录协议单元,组密钥管理单元提供组密钥管理服务;记录协议单元向应用程序或应用协议、组密钥管理单元提供数据安全服务。所述的组密钥管理单元包括初始化单元提供用户的访问控制服务,进行组安全联盟的创建和分发;所述的组密钥管理单元还包括安全联盟更新单元对组安全联盟进行更新。所述的数据安全服务至少包括加密服务、完整性保护服务、抗重放服 务、源认证服务、抗抵赖服务和组认证服务的其中之一。 所述的记录协议单元还提供数据压缩服务。 所述系统支持集中式或分布式组密钥管理算法。当本发明所述系统采用集中式组密钥管理方式时,组密钥管理单元建立内 部的辅助安全联盟来保护组安全联盟的下发,所述的辅助安全联盟包括初始 化安全联盟。组密钥管理单元建立内部的辅助安全联盟来保护组安全联盟的更新,所述 的辅助安全联盟包括密钥更新安全联盟。所述系统工作在应用程序进程空间中,向应用程序或应用协议提供标准的 应用程序编程接口 API功能调用接口 。
所述系统采用单播、多播或者单多播混合的数据发送方式。 一种实现多方通信安全的方法,当系统工作在集中式密钥管理方式时,包括步骤A、 组控制器和密钥管理服务器GCKS创建并保存组安全联盟;B、 所述GCKS与组成员协商创建初始化安全联盟,在所述初始化安全联 盟的保护下,所述组成员从GCKS获取组安全联盟。所述的方法还包括步骤C、 在组通信进行过程中,所述GCKS负责对组安全联盟进行更新。 所述的步骤A具体包括在系统中设置GCKS, GCKS创建组安全联盟和密钥更新安全联盟,将创 建的组安全联盟和密钥更新安全联盟保存在GCKS中。 所述的步骤B具体包括GCKS和组成员之间完成身份认证;所述组成员与GCKS协商创建初始化 安全联盟,组成员在所述初始化安全联盟的保护下,从GCKS获取组安全联 盟和密钥更新安全联盟。所述的步骤C具体包括C1、 GCKS在检测到发生密钥更新事件后,对组安全联盟和密钥更新安 全联盟进行更新,通过安全联盟更新单元将更新后的组安全联盟和密钥更新 安全联盟发送给所有组成员,该更新过程受当前密钥更新安全联盟的保护;C2、所有组成员通过安全联盟更新单元接收所述更新报文,获取其中携 带的组安全联盟和密钥更新安全联盟信息,更新其组安全联盟和密钥更新安 全联盟。所述的密钥更新事件至少包括密钥泄漏、密钥到期、管理员手动更新、 组成员离开和新组成员加入的其中之一。一种实现多方通信安全的方法,当系统工作在分布式密钥管理方式时,包

在组通信开始时全体组成员共同创建组安全联盟。 所述的方法还包括
在发生密钥更新事件后,全体组成员共同更新组安全联盟。 由上述本发明提供的技术方案可以看出,本发明通过以集成的方式设计组 密钥管理和数据安全协议,以API调用接口的形式向应用程序(或应用协 议)提供组密钥管理和数据安全服务。和现有技术相比,具有如下优点
1、 以集成的方式设计组密钥管理和数据安全协议,能以标准API的形式 向应用程序提供组密钥管理和多方通信数据安全功能,并且所有功能均在用 户进程空间内实现,可移植性好,可部署性高。
2、 通过组密钥管理算法替换机制,既能支持集中式的组密钥管理,又 能支持分布式的组密钥管理。
3、 既能够利用底层提供的多播服务,又不存在多播依赖性。
4、 支持两方或两方以上的多方通信场景。


图1为MSEC协议族的工作方式示意图2为本发明所述系统的实施例的内部结构图3为本发明所述系统的实施例工作在集中式密钥管理方式时的实际部署
图4为本发明所述系统的实施例工作在分布式式密钥管理方式时的实际部 署图。
具体实施例方式
本发明提供了一种实现多方通信安全的系统和方法,本发明的核心为以
集成的方式设计组密钥管理和数据安全协议,以API调用接口的形式向应用 程序提供组密钥管理和数据安全服务。
下面结合附图来详细描述本发明所述系统,本发明所述实现多方通信安全 的系统的实施例的结构图如图2所示。包括组密钥管理单元和Record Protocol (记录协议)单元。
本发明所述实现多方通信安全的系统要求底层的传输协议能够提供复用/ 解复用功能,实现应用程序级的网络通信。传输协议提供的数据收发服务可 以是可靠的或者不可靠的。比如,可以采用UDP (用户数据报协议)、 DCCP (数据报拥塞控制协议)或者TCP (传输控制协议)作为传输协议。 本发明所述系统的底层传输协议可以是TCP/1 P的传输层协议,也可以是位于 应用层之上的传输层,比如P2P重叠网络平台中的传输层,这种传输层的特 点是在TCP/IP协议栈的应用层之上构造,比如开源项目JXTA的P2P平台中的 管道服务。
本发明所述实现多方通信安全的系统工作在应用程序进程空间中,向应用 程序或应用协议提供一组标准的API功能调用接口 ,提供组密钥管理和数据 安全服务。
本发明所述实现多方通信安全的系统可以采用单播、多播或者单多播混合 的数据发送方式。
本发明所述实现多方通信安全的系统中的组密钥管理单元提供用户的访 问控制(授权/认证)功能,给应用程序或应用协议提供组密钥管理服务,进 行Group SA (組安全联盟)的创建、更新和分发等服务,将Group SA信息 传递给记录协议单元。上述组密钥管理单元可以通过Handshake (握手协 议)来实现,组密钥管理单元包括初始化单元和SA更新单元两部分。
初始化单元主要负责提供用户的访问控制功能,进行Group SA的创建 和分发。在本发明的具体实现中,初始化单元中所提供的用户的访问控制功
能及Group SA的创建和分发功能也可以由两个单独的功能模块来完成。
SA更新单元主要负责对Group SA进行更新,实现前后向加密和抗同谋 破解功能。
SA通常由密钥和若干算法(如加密算法)组成,同时也包含一些ID之类 辅助的信息。对SA进行更新也就是对已有密钥进行更新。组密钥管理单元还 可以建立一些内部的辅助SA,该辅助SA包括初始化SA和密钥更新SA。是 否需要建立内部的辅助SA与本发明所述系统采用的组密钥管理算法有关。如 果本发明所述系统采用的是集中式组密钥管理方案,则组密钥将由密钥服务 器统一创建和更新,这时需要建立内部的辅助SA来保护组密钥的下发和更 新。如果采用的是分布式的组密钥管理方案,组密钥由全体组成员协商,协 商算法本身能保证协商过程的安全性,不需要建立辅助的SA。
本发明所述实现多方通信安全的系统中的Record协议单元向应用程序 (或应用协议)和组密钥管理单元提供多方通信数据安全服务,该数据安全 服务包括加密、完整性保护、抗重放、源认证、抗抵赖、组认证等功能。 Record协议还可以提供数据压缩功能,以节约网络带宽。
本发明的多方通信安全系统支持集中式和分布式两种组密钥管理方式。下 面分别介绍本发明所述系统的集中式和分布式两种组密钥管理方式的具体处 理过程。
1、集中式密钥管理方式的具体处理过程。
本发明所述系统工作在集中式密钥管理方式时的实际部署图如图3所示。 当本发明的多方通信安全系统工作在集中式密钥管理方式时,在系统中设置 一个GCKS (组控制器和密钥管理服务器),系统基于Client/Server模式, GCKS充当Handshake的服务器端,组员充当Handshake的客户端,整个系 统由一个GCKS和若干组员组成。
GCKS负责对组成员进行访问控制和组密钥管理。GCKS也可以由某个组
成员(比如数据发送者)充当。在集中式密钥管理方式下,系统中除了
Group SA,还存在lnitiation SA (初始化SA),用于保护初始化过程。如果 需要组密钥更新功能,系统中还将存在Re-key SA (更新SA),用于保护密 钥更新报文。GCKS的组密钥管理单元首先创建Group SA和Re-key SA,将 创建的Group SA和Re-key SA保存在GCKS中。
GCKS的位置和标识通过其它的技术手段公布给各个组成员。各个组成员 对应的应用程序通过本发明所述系统的API调用接口发起运行Handshake协 议。Handshake协议首先运行lnitiation (初始化单元)子协议,GCKS完成对 组成员的身份认证,所述组成员与GCKS协商创建起辅助作用的lnitiation SA。然后,各个组成员通过lnitiation子协议在起辅助作用的Initiation SA的保 护下从GCKS下载Re-key SA (可选的)和Group SA。
在各个组成员的初始化过程完成后,可以根据需要继续运行Handshake协 议的Rekeying (安全联盟更新单元)子协议,对各个组成员的SA密钥进行更 新。更新的具体过程为GCKS在检测到发生密钥泄漏、密钥到期、组成员 离开、新组成员加入或其它的一些密钥更新事件后,自动对Group SA和Re-key SA进行密钥更新,然后通过Rekeying子协议将更新后的Group SA和Re-key SA发送给所有组成员。组成员通过Rekeying子协议接收Rekeying报文, 完成Re-key SA和Group SA的更新。上述Rekeying报文受Re-key SA的保 护。
上述Rekeying子协议的处理过程可以采用多播方式来完成,也可以采用 单播方式来完成。在采用单播方式时,Rekeying子协议可以采取一些优化措 施,减少GCKS的报文发送负担,提高Rekeying报文的发送成功率。
2、分布式密钥管理方式的具体处理过程。
本发明所述系统工作在分布式式密钥管理方式时的实际部署图如图4所 示。当本发明的多方通信安全系统工作在分布式密钥管理方式时,全体组成员共同参与组密钥的创建和更新。这时,可以由组创建者充当组控制器,负 责访问控制。所有需要加入组的成员需要通过组控制器的授权和身份认证。
纟且成员通过运4亍Handshake十办i义的lnitiation子十办i义完成iU正。
在分布式密钥管理方式下,系统中只存在Group SA, Group SA在组通信 开始时,通过组创建者发起由全体组成员共同创建。当发生新组成员加入、 已有组成员离开、密钥泄漏、管理员手动更新、密钥到期或其它的一些密钥 更新事件后,全体组成员通过Rekeying子协议共同更新组密钥和Group SA。 更新过程可以由组创建者发起,也可以由其它组成员发起。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局 限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻 易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的 保护范围应该以权利要求的保护范围为准。
权利要求
1、一种实现多方通信安全的系统,其特征在于,包括组密钥管理单元和记录协议单元,组密钥管理单元提供组密钥管理服务;记录协议单元向应用程序或应用协议、组密钥管理单元提供数据安全服务。
2、 根据权利要求1所述的系统,其特征在于,所述的组密钥管理单元包括初始化单元提供用户的访问控制服务,进行组安全联盟的创建和分发;
3、 根据权利要求2所述的系统,其特征在于,所述的组密钥管理单元还 包括安全联盟更新单元对组安全联盟进行更新。
4、 根据权利要求1所述的系统,其特征在于 包括加密服务、完整性保护服务、抗重放服务 和组认证服务的其中之一 。
5、 根据权利要求4所述的系统,其特征在于,所述的记录协议单元还提 供数据压缩服务。
6、 根据权利要求1所述的系统,其特征在于,所述系统支持集中式或分 布式组密钥管理算法。
7、 根据权利要求6所述的系统,其特征在于,当本发明所述系统采用集 中式组密钥管理方式时,组密钥管理单元建立内部的辅助安全联盟来保护组 安全联盟的下发,所述的辅助安全联盟包括初始化安全联盟。
8、 根据权利要求7所述的系统,其特征在于,组密钥管理单元建立内部 的辅助安全联盟来保护组安全联盟的更新,所述的辅助安全联盟包括密钥更所述的数据安全服务至少 源认证服务、抗抵赖服务 新安全联盟。
9、 根据权利要求1所述的系统,其特征在于,所述系统工作在应用程序 进程空间中,向应用程序或应用协议提供标准的应用程序编程接口 API功能 调用接口。
10、 根据权利要求1所述的系统,其特征在于,所述系统采用单播、多播 或者单多播混合的数据发送方式。
11、 一种实现多方通信安全的方法,其特征在于,当系统工作在集中式 密钥管理方式时,包括步骤A、 组控制器和密钥管理服务器GCKS创建并保存组安全联盟;B、 所述GCKS与组成员协商创建初始化安全联盟,在所述初始化安全联 盟的保护下,所述组成员从GCKS获取组安全联盟。
12、 根据权利要求11所述的方法,其特征在于,所述的方法还包括步骤C、 在组通信进行过程中,所述GCKS负责对组安全联盟进行更新。
13、 根据权利要求12所述的方法,其特征在于,所述的步骤A具体包括 在系统中设置GCKS, GCKS创建组安全联盟和密钥更新安全联盟,将创建的组安全联盟和密钥更新安全联盟保存在GCKS中。
14、 根据权利要求13所述的方法,其特征在于,所述的步骤B具体包括 GCKS和组成员之间完成身份认证;所述组成员与GCKS协商创建初始化安全联盟,组成员在所述初始化安全联盟的保护下,从GCKS获取组安全联 盟和密钥更新安全联盟。
15、 根据权利要求12、 13或14所述的方法,其特征在于,所述的步骤C 具体包括C1、 GCKS在检测到发生密钥更新事件后,对组安全联盟和密钥更新安 全联盟进行更新,通过安全联盟更新单元将更新后的组安全联盟和密钥更新 安全联盟发送给所有组成员,该更新过程受当前密钥更新安全联盟的保护;C2、所有组成员通过安全联盟更新单元接收所述更新报文,获取其中携 带的组安全联盟和密钥更新安全联盟信息,更新其组安全联盟和密钥更新安 全联盟。
16、 根据权利要求15所述的方法,其特征在于,所述的密钥更新事件至 少包括密钥泄漏、密钥到期、管理员手动更新、组成员离开和新组成员加 入的其中之一。
17、 一种实现多方通信安全的方法,其特征在于,当系统工作在分布式 密钥管理方式时,包括在组通信开始时全体组成员共同创建组安全联盟。
18、 根据权利要求17所述的方法,其特征在于,所述的方法还包括 在发生密钥更新事件后,全体组成员共同更新组安全联盟。
全文摘要
本发明提供了一种实现多方通信安全的系统和方法,该系统主要包括组密钥管理单元和记录协议单元。该方法主要包括当系统工作在集中式密钥管理方式时,GCKS(组控制器和密钥管理服务器)创建并保存组安全联盟,所述GCKS与组成员协商创建初始化安全联盟,在所述初始化安全联盟的保护下,所述组成员从GCKS获取组安全联盟;当系统工作在分布式密钥管理方式时,在组通信开始时全体组成员共同创建组安全联盟。本发明中的系统在应用程序进程空间中运行,能够以标准API(应用程序接口)的形式向应用程序(或应用协议)提供组密钥管理和多方通信数据安全功能。
文档编号H04L9/32GK101106449SQ20061009931
公开日2008年1月16日 申请日期2006年7月13日 优先权日2006年7月13日
发明者亚 刘, 苗福友 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1