采用基于IP层虚拟专用网建立安全组播隧道的技术 所属技术领域:
本发明涉及网络安全技术,采用Internet安全协议IPSec构建的虚拟专用网(VPN)技术来建立用于保护组播通信的安全组播隧道,是对组播通信进行保护的一种新颖的实现方式。技术背景:
IPSec是一种实现网络安全的重要手段,它采用加密和认证等方式形成主机或者网段之间的安全通道VPN。IPSec对数据包进行处理时需要两个基本步骤:第一,查阅安全策略库(SPDB),决定对数据采取的安全策略(比如对数据是接受、转发还是丢弃),SPDB是一种粗略的处理。第二,被SPDB接收的数据传给安全关联数据库(SADB),SADB决定了具体采用的安全措施,如加密算法、数据分块长度、密钥长度等。由于SPDB和SADB中缺乏针对组播地址的安全策略(SP)和安全关联(SA),因此本专利中需要进行扩充。
数据传送有三种基本方式,一种叫单播,针对主机到主机通信;一种叫广播,针对一台主机到子网内所有主机的通信;第三种叫组播,采用Internet规定的组播地址(从224.0.0.0到239.255.255.255),只有组成员能收到组播数据。组的生成采用Internet组管理协议(IGMP)控制。组播节省了大量网络带宽,可以实现视频点播等运用,是宽带运用下的热点,也是未来发展地重点。现有的组播缺点是不安全,任何人都可以加入组,也可以退出组,这对一些采用组播技术的运用如电子政务会议的安全威胁很大,因此安全组播越来越受重视。但是由于组播针对的是组地址,它的实体是许多台机器,如果采用单播下的安全协议如Internet密钥交换协议(IKE),那么连接的发起者只有一个,但是响应者却有许多个,如何进行协商呢?如何对组成员身份进行鉴别呢?因此,单播下的安全协议IKE、IPSec不能直接用于组播。这是组播发展的难点。
组播的发展,是由于需要以一种可扩展的方式支持一对多或多对多的运用。目前组播的商业运用越来越受重视,但是安全性却构成组播广泛运用的制约因素之一。实现安全组播的关键问题是用户权限撤销问题:即新用户加入组时的安全策略配置问题(如密钥分发问题)和用户退出组的策略更新问题(或密钥更新问题)。解决该关键问题的方法有:
第一种基本的方法是每个用户分别与组播源拥有一个共同的密钥(预共享密钥一Ks),组播源采用在Ks保护下分发组播数据加密密钥(Kd);当用户加入时,组播源采用Kd重新分发给老用户Kd’,用Ks给新用户分发Kd’;当用户退出时,组播源采用Ks重新分发Kd”。该方法的缺点是当用户数量较多时,密钥分发效率低,此外预共享密钥缺乏足够的用户身份认证。
第二种方法是在第一种方法的基础上将组播组分为若干层次树,每一个树枝具有一个控制点,在每个控制点内按照第一种方法来进行,同层次的控制点又有一个更高一级的控制点,以此类推。该方法的缺点是控制节点不能随意更改和撤销,也即控制节点成为安全的薄弱点。
第三种方法是采用公开密钥技术,如采用Diffie-Hellman(简称为D-H)来进行密钥的更新,D-H交换安全性较差,容易受到中间人攻击。
IPSec VPN是一种在不安全的Internet线路上构建的IP层安全的虚拟专用网络,它主要用于保护主机和个人的通信,将保护主机或网段的IPSec VPN用于安全组播是一种新颖的实现方式。发明内容:
本发明提出了一种采用IPSec VPN实现安全组播的新方法。该方法采用组播源和组播用户进行IKE协商,进而形成IPSec VPN,在此基础上进行组播密钥的分发,然后对安全策略数据库(SPDB)和安全关联数据库(SADB)进行扩充,形成组安全关联(GSA),在此基础上进行组数据发送。
计算机安全通信中的安全方案包括了两个方面的内容:一是数据的安全处理;二是数据处理所需要的密钥管理方案,包括密钥的产生、分发、管理、生存期等参数。目前有两种基本的密钥管理方案:第一种是基于对称密钥体制的管理方案,该方法中最基本的密钥采用离线分发方式;第二种是采用基于非对称密钥体制的管理方案,该方法最基本的思想是采用非对称算法,公开密钥等公有信息可以在网上传播,从公有信息很难推断出用户的私有信息。常见的是D-H交换。与非对称密钥管理方案配合的是对通信双方身份的认证,因此需要CA、PKI等基础设施并利用数字签名等技术。为了规范IPSec通信环境下的密钥管理,Internet任务组(IETF)制定了一种标准的安全关联生成框架-ISAKMP。在此框架上可以进行密钥的交换、管理,IKE就是建立在ISAKMP框架上的一种协议。IKE工作时分为两个主要阶段,一个为主模式阶段,另一个为快速模式阶段。主模式用来形成基本的安全通道,用来保护快速模式,该阶段形成的安全关联叫ISAKMP SA;快速模式形成保护数据通信的安全通道,该阶段形成的安全关联叫IPSec SA。
本发明的实现原理是:
组播源采用IGMP控制信息建立组播组,成员通过IGMP加入组,组播源于是得到组播成员列表。在收集组播成员的基础上,组播源和成员采用IKE进行协商。协商的结果形成组播源和成员之间的安全隧道(本专利中简称为“个人隧道”),然后组播源采用硬件卡生成了组播数据加密密钥Kd,通过“个人隧道”,组播源把Kd安全传送给组成员,组成员在Kd的基础上,扩充安全策略数据库SPDB和安全关联数据库SADB,从而形成组播源和组成员之间的组播安全隧道(本专利中简称为“组播隧道”,用英文MVPN表示)。
假设组播源和老成员之间的组播隧道用MVPN1表示,当新用户加入时,组播源和新用户进行IKE协商,形成组播源和新成员之间的个人隧道,之后组播源通过个人隧道分发给新成员组播数据加密密钥Kd,新成员扩充自己的SPDB和SADB,形成组播源和新成员之间的新组播隧道MVPN2。然后组播源和老成员之间采用组播隧道MVPN1分发组播数据加密密钥Kd,在Kd的基础上,组播隧道MVPN1更新为MVPN2。于是,所有成员可以通过组播隧道MVPN2获得信息。
当用户退出时,组播源重新生成组播数据加密密钥(为了表示该组播数据加密密钥和以前的组播数据加密密钥不同,用Kd’表示),组播源采用组播源和余下成员之间的个人隧道分发Kd’。在Kd’基础上,组播隧道由MVPN1更新为MVPN2。于是,剩下的所有成员可以通过组播隧道MVPN2获得信息。
本发明的特征在于:采用Internet密钥管理协议IKE形成的虚拟专用网络IPSec VPN来进行组播密钥的分发,通过扩充组播安全策略库SPDB和安全关联数据库SADB形成组播安全通道MVPN,然后数据通过MVPN进行组播数据的传送。
本发明的具体步骤为:
A:组播源采用IGMP控制信息建立组播组;
B:组播源监控组成员状态的变化;
当有用户加入时,根据新加入的用户和老用户的不同,采用不同的步骤,如下:
对新加入的用户,步骤为C到F:
C:组播源和成员进行IKE协商,形成个人隧道;
D:通过个人隧道分发组播数据加密密钥Kd;
E:成员扩充自己的安全策略数据库SPDB和安全关联数据库SADB,形成组播隧道MVPN2;
F:数据通过组播隧道MVPN2传送。
对老用户,步骤为G到I:
G:组播源通过原组播隧道MVPN1传送老用户Kd;
H:成员更新组播隧道,即组播隧道由MVPN1更新为MVPN2;
I:数据通过更新后的组播隧道MVPN2传送。
当有成员退出时,步骤为J到M。
J:组播源生成新的组播数据加密密钥Kd’;
K:组播源和余下成员通过个人隧道传送Kd’;
L:成员将组播隧道MVPN1更新为MVPN2;
M:数据通过更新后的MVPN2传送。
本发明所述的新用户加入步骤中,有新用户加入时,采用IKE协商个人隧道,在个人隧道的基础上,形成组播隧道;老用户则将老组播隧道进行更新;有用户退出时,在已有个人隧道的基础上,进行老组播隧道的更新。
本发明当新用户加入时,在个人隧道的基础上,需要对安全策略数据库SPDB和安全关联数据库SADB进行更新,以建立组播的隧道。
本发明采用IKE进行密钥分发,可以进行针对用户或主机的认证,在此基础上进行采用IPSec VPN组播密钥分发,具有安全性高的特点。采用扩充的安全策略数据库和安全关联数据库,将IPSecVPN的隧道由用户推广到组,形成安全组播VPN-MVPN,组播数据通过MVPN来传送,由于IPSec VPN具有针对主机到主机或用户到用户的特点,因此安全性更高。
本发明采用了非对称密钥体制,不直接依靠预共享密钥,适用于Internet网上运用;组播密钥的分发依靠IKE和IPSec VPN,利用了两者的优点,对组播成员的鉴别性好;组播数据通过采用加密和认证等方式形成的主机和主机或网段和网段之间的组安全通道MVPN传送,安全性好。附图及其图面说明:
图1本发明的流程图
其中守护进程用来监控组成员的状态,比如是否有成员加入和退出。如果有加入,则对新加入者和原有成员分别进行不同的处理。如果有退出,则按照流程进行处理。具体实施方式:
本发明的特征在于:采用Internet密钥管理协议IKE形成的虚拟专用网络IPSec VPN来进行组播密钥的分发,且对安全策略数据库和安全关联数据库进行扩充形成组播安全隧道,数据通过组播安全隧道传送。
本发明的具体步骤为:组播源采用IGMP控制信息建立组播组,成员通过IGMP加入该组。组播源不断检测是否有成员加入。
当组播源检测到有用户加入时,组播源马上和新加入成员进行IKE的信息交换,此交换不仅完成了组播源对成员的身份认证,也生成了组播源和成员之间的安全隧道一个人隧道。然后组播源生成保护组播数据通信的密钥Kd,对新成员和老成员采用不同的方法将密钥发送过去。对新成员,由于还没有针对组播的隧道,因此Kd通过个人隧道发送。然后新成员需要扩充自己的安全策略数据库SPDB和安全关联数据库SADB,形成组隧道MVPN。对于老成员,由于已经存在了组播隧道,因此Kd直接通过组播隧道分发。
当组播源检测到有用户退出时,组播源于是生成新的组播数据加密密钥Kd’,此时组播源和余下成员通过个人隧道传送Kd’,在Kd’的基础上进行组播隧道的更新,然后组播数据通过更新后的组播隧道传送。
本发明所述的上述方式在Linux下用ANSIC实现。