APP下载

一种基于服务器端的群组密钥协商方案

2010-09-25陈廷威

通信技术 2010年3期
关键词:服务器端群组密钥

陈廷威, 高 博

0 引言

安全群组通信系统能为工作在开放式网络环境中的各种分布式协作式应用提供一对多、多对多安全通信,能在群组成员之间发送安全可靠的消息并提供安全的同步机制,能提供数据的机密性与完整性,群组成员的身份认证,信息源认证以及系统资源访问控制等安全服务[1]。群组通信[2]是指把同一数据块(报文、分组或文件等)从一台计算机传送到一个由若干台计算机组成的集合的每个成员的过程。

最初的群组通信研究仅考虑成员关系协议与消息的有序性,而对群组通信的安全性方面的研究在近几年才出现Cornell University,Hebrew University与IBM公司合作研究的 ensemble[3]系统、Johns Hopkins University 研发的 Secure Spread[4]均具有安全属性,如提供客户数据的机密性与完整性、群组成员的身份认证、信息源认证及系统资源访问控制等安全服务,均存在群组密钥协商通信效率低、存储开销大等问题。安全群组通信研究的目标是在可靠的群组通信系统上无缝集成安全服务,并且要求这些安全服务具有通用性、鲁棒性、可扩展性及高性能。本文提出基于服务器端组密钥协商机制目的是为了改善其可扩展性及高性能。

1 基于服务器密钥协商群组通信体系结构

现有安全群组通信系统通常采用C/S通信模式,群组密钥协商机制为群组密钥协商协议以客户端函数库形式挂载到客户端应用程序[5]。该方式在进行密钥管理所必需的数学运算时,使群组成员之间增大了额外的通信开销。针对该问题,给出基于服务器端的密钥协商机制。假定安全群组通信系统中客户端组的数量为m,服务器组的数量为n,选取一个以ni核心最小子集进行组密钥协商,而不必组成员全部参加,当m>>n时,群组密钥协商规模从m降为n,即由 o (f(m))降至 o (f(n ) ),可显著提高了可扩展性通信性能。

安全群组通信系统从结构上可划分为四层:可靠多播层,全序多播层,群组管理层,通信安全层[6]。如图1所示,其中可靠多播层用于发送的信息要被接收方正确接收到要通过可靠性保证措施;全序多播层用于通过全序多播协议提供发送方到接收方群组各成员的可靠、有序的信息传送的保证;群组管理层包括群组地址分配、群组的建立、群组的关闭、群组成员的动态加入和退出、错误恢复等功能。通过为群组群组分配地址,所有发送到这个群组的信息都以这个群组地址为接收方地址,所有组成员都接收发送到该群组的数据;通信安全层主要从群组管理层的安全性角度出发,进行群组密钥管理,保证成员加入的合法性、离开后的安全性等性质。群组密钥管理主要包括密钥的产生、交换、存储、更新和销毁等操作。

图1 安全群组通信分层结构

通信安全层具体的实现模式上把通信安全层的安全服务分为两部分:认证、访问控制模块与密钥协商模块放在服务器端,加密算法模块放在客户端函数库内。在服务器端主要有认证与访问控制模块与密钥协商模块。通过在客户端函数库设计一个函数来完成从服务器组密钥到客户端群组密钥的映射。服务器端通信安全层如图2所示。客户端函数库内容由加密模块与一个单向函数f_key_s-c(…)构成如图3所示。

图2 服务器端通信安全层

图3 客户端函数库

单向函数完成从服务器组密钥到客户端群组密钥的映射。函数参数:服务器组密钥、群组名与群组成员数量。服务器组密钥:服务器组间调用群组密钥协商协议协商的组密钥;群组名:客户端申请加入群组名称;群组成员数量:一个群组动态标识。设计的单向函数: f _ key _ s - c(c hararray[i ],chara[j] , intk)。

2 基于服务器端组密钥协商机制

假定服务器组为 s1,s2,…,sn。客户端应用程序为c1, c2,… ,cm。一般情况下m>>n。且这些服务器都是具有同一配置服务器,不具有同一配置的服务器是不能连接服务器组 s1, s2,… ,sn。

假设设客户端a加入群组A:①客户端a申请加入群组A请求;②服务器组响应该请求并调用View视图函数更改视图标识NumA; //NumA表示当前群组 A的成员数量;③服务器组 { S1, S2,… ,Sn}调用密钥协商协议协商出服务器组密钥KEYs;④客户端 a调用函数库的客户端组密钥计算函数f_key_s-c(KEYs,A,NumA)计算出客户端组密钥KEYca;⑤客户端a利用客户端组密钥KEYca与群组A的成员进行通信。

其它群组A的客户端都要进行同样的操作:①服务器组{S1, S2,… ,Sn}检测有新成员加入或检测到密钥更新消息时,

服务器组都具有同一配置文件。这些配置主要是通过显示一个 IP列表,该列表在每一个服务器中维护。当一个服务器需要加入服务器组时,修改每一个服务器的配置。而且不具有同样配置的服务器组是不相互干扰的。具有相同配置的服务器组成员之间均相互信任。服务器加入服务器组的步骤如下:①服务器请求加入服务器组;②检查服务器组的请求服务器的 IP列表是否与匹配。如果匹配,允许加入,否则不允许加入;③服务器组生成新的成员关系ID发送给每一服务器组成员。

客户端加入基于客户端-服务器模式的群组通信流程如下:①客户端请求连接服务器组;②服务器组进行认证与访问控制,如果通过,允许该连接,否则拒绝;③客户端请求加入群组i通信;④群组i成员对其进行认证与访问控制,如果通过,允许加入,否则拒绝;⑤服务器组检测群组成员关系变化或密钥更新请求时,服务器组调用密钥协商协议计算服务器组密钥;⑥群组i的成员调用客户端函数库群组密钥计算函数f_key_s-c(char array[i], char a[j],int k)计算出群组i的群组密钥;⑦检查客户端是否请求加入其他群组。如果是,则转到步骤③,否则下一步;⑧服务器检测是否更新服务器组密钥,如果是,则转到步骤⑤,否则下一步,服务器检测是否客户端离开,如果是,则转到步骤⑤,否则下一步;⑨服务器检测是否客户端加入,如果是,则转到步骤②,否则停止。

下面具体给出群组各种运行模式下协商密钥过程:

(1)一个客户端应用程序加入一个群组运行模式群组A其他成员都接收到一个成员关系改变消息m;②客户等待一条通知消息通知客户端群组A已经协商组密钥;③客户端调用客户端函数库的计算客户端组密钥的函数计算f_key_s-c(KEYs,A,NumA)计算出客户端组密钥KEYca;④客户端a利用客户端组密钥KEYca与群组A的成员进行通信;⑤当收到密钥更新消息时,转到步骤①;

(2)一个客户端应用程序同时加入多个群组运行模式

假设客户端a加入群组A,B两个群组,这两个群组均建立在服务器组上。在服务器组 S1,S2,… ,Sn协商的服务器组密钥KEYs,群组A,群组A的成员数量NumA。通过一个单向映射变换的 f作用到 f (K EYs,A,N umA)=KEYca。就得到群组A的群组密钥KEYca。把它发送到客户端应用程序用于群组A通信。在通信中,群组A中的成员都收到KEYca,当一个客户端应用程序发送一条消息时,使用群组密钥KEYca加密消息进行通信。组内所有成员都收到一条消息。再用该密钥解密消息。

同样对于该客户端a群组B产生的群组密钥为KEYcb= f(K EYs,B,N umB)。就得到群组B的群组密钥KEYcb。把它发送到客户端应用程序用于群组B通信。在通信中,群组B中的成员都收到KEYcb,当一个客户端应用程序发送一条消息时,就是使用群组密钥KEYcb加密消息进行通信。组内所有成员都收到一条消息。再用该密钥解密消息。

(3)一个服务器连接多个客户端运行模式

服务器组间协商的服务器组密钥发送到每个连接的客户端。再由客户端计算出每个群组的群组密钥。一个服务器Si连接了连个客户端程序a、b。这样,在同一配置的服务器组协商服务器密钥,把它发送到每个最近连接客户端a、b。同组每个客户端计算出加入每一个群组的群组密钥。

(4)多个客户端与多个群组运行模式

该运行模式比较复杂,我们给出一般模型如图4。

图4 基于客户端-服务器模式群组通信

图4 中服务器组的虚线部分是略去的服务器,客户端a、b、d加入群组A,客户端b、c加入群组B,客户端c加入群组c。

服务器iS连接两个客户端程序a、b。客户端a加入群组A、B两个群组,客户端b加入群组B、C两个群组。这种情况即是前三种情况的复合,具体细节如上述情况。在这种情况下密钥协商机制的实现机制如下:①服务器组检测到组成员关系变化或更新密钥消息时,服务器组开始调用群组密钥协商协议协商服务器组密钥;②客户端调用客户端组密钥计算函数 f_key_s-c( c hararray[i], c hara[j],intk)计算该客户端加入群组的客户端组密钥。

3 结语

服务器的安全性要比客户端安全性高,这些安全性因素由服务器对客户端认证与访问控制模块保证的,从理论上讲,要比把密钥协商放在客户端更为安全。

从高效性的角度进行分析,把占用安全群组通信大部分资源密钥协商放在服务器组端,无疑是资源最佳配置。基于服务器端的密钥协商机制要比基于客户端的密钥协商协议机制高效。客户端的数量本身远大于服务器的数量。这样减少了运算量,用线性运算时间内的函数计算群组密钥来代替协商到群组成员是一个高效的途径。这是基于抽取一个极小密钥协商子集的概念简化密钥协商机制。

为了解决安全群组系统可扩展性与高性能性,本文利用密钥协商子集思想设计基于服务器端组密钥协商机制。在安全群组通信的可扩展性与高效性方面,本文提出的基于服务器端的密钥协商机制优于基于客户端群组密钥协商机制。

[1] Yair Amir,Yongdae Kim Cristina. On the Performance of Group Key Agreement Protocols[J].ACM Transactions on information,2004,7(03):457-488.

[2] 鲁来风,李红梅,马建峰.容忍入侵的群组通信研究[J].计算机应用,2006,26(09):2187-2189.

[3] Ohad Rodeh, Kenneth P.Birman, Danny Dolev. The Architecture and Performance of Security Protocols in the Ensemble Group Communication System Using Diamonds to guard the castle[J].ACM Trans on Information and System Security (TISSEC), 2001,4(03):289-319.

[4] Yair Amir. Secure Spread An Integrated Architecture for Secure Group Communication[J]. IEEE Transactions on Dependable and Secure Computing,2005,2(03):248-261.

[5] 刘利芬,邓亚平.安全组播密钥更新机制的研究[J].通信技术,2007,40(12):51-54.

[6] 王莺洁,罗为,沈昌祥.一种有效的组密钥认证方法[J].通信技术,2008,41(5):97-101.

猜你喜欢

服务器端群组密钥
幻中邂逅之金色密钥
Linux环境下基于Socket的数据传输软件设计
密码系统中密钥的状态与保护*
Boids算法在Unity3D开发平台中模拟生物群组行为中的应用研究
TPM 2.0密钥迁移协议研究
一种对称密钥的密钥管理方法及系统
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
群组聊天业务在IMS客户端的设计与实现