具体实施方式
下面参照附图来对本发明的具体实施方式进行详细描述。但应该理解,本发明并不仅限于所述具体实施方式。
在多数情况下,内部网络的成员由于工作、学习的原因,位置并不固定,并随时可能需要与其所属的内部网络进行联系。在本发明的方案中,当内部成员需要与内部网络进行通信,如控制或监视内部网络中的某一设备或传送文件时,他可能会利用自己的笔记本电脑,掌上电脑,甚至网吧里的一台普通电脑来进行通信,这时,就必须关注通信的安全性。
图1示出根据本发明一个具体实施方式的用户设备由外部对内部网络进行安全访问的通信网络的示意图。所述通信网络在此为基于IPv6的网络,其中包括:多个内部网络(例如家庭网络)、与内部网络相连的接入设备1、处于外部网络中的作为内部网络成员的用户设备2以及,用于为接入设备和用户设备提供相关信息更新的一个安全策略参量服务器3。用户设备1通过互联网经由接入设备2与所属内部网络进行根据本发明的特殊安全通信。所述接入设备2负责一个或多个内部网络的接入,对来自作为内部网络成员用户设备和来自内部网络的数据包进行识别和处理,保证数据包安全跨越互联网到达目的地址;用户设备则是任意一台可以连接到互联网的计算机。
下面参照图1来对本发明进行描述。
作为某一内部网络成员的用户从外部网络使用其个人计算机(例如便携式计算机)或公有计算机(如网吧里的计算机)连上互联网。在具体实现中,当需要访问其所属网络时,用户可以通过启动自己的计算机中所包含的IPsec客户端软件或插入用于包含IPsec客户端软件的便携式存储设备(例如USB存储设备)来实现与其所属内部网络之间的安全通信。在此,便携式计算机或公用计算机以便携式存储设备可称为用户设备1。
首先,用户设备1利用预存的用户身份信息,通过与用户的交互(例如提示用户输入用户名和口令),来确定是该用户是否为该个人计算机或USB存储设备的合法主人。如果用户合法,则进入下面操作;否则,拒绝操作。
当用户被确认合法后,用户设备1自动访问运营商提供的安全策略和参数分发服务器,首先凭个人计算机或USB设备中的数字证书确认是否有参数更新,若没有就自动退出访问服务器。若有更新,就自动下载更新的数据。通常是代表其所属内部网络的目的地址前缀的更新,安全策略参量(例如第一、二根密钥以及加/解密和认证算法等)的更新。
随后,用户设备1依据本地预存的内部网络地址前缀(例如64位前缀为前64为IP地址)、用生成安全策略指示(SPI)的第二根密钥Kspi对当前用户设备(主机)的IP地址和当天日期、目的IP地址前缀和源IP地址进行运算,以生成SPI值。然后,由生成加密认证的第一根密钥Kroot根据预先约定的算法来对所生成的SPI值与双方都知晓的预定序列(例如目的地址前缀和源地址)进行运算,从而产生加密密钥Ke和认证密钥Ka。同时自动检测发往网卡的数据包,依据数据包中目的地址前缀(前64位IP地址)是否匹配所属内部网络前缀来确认是否拦截该数据包。如果确定是发往所属内部网络的数据包,则根据已约定的安全策略和已生成的加密密钥Ke对待传输的数据进行加密,以生成加密数据;并利用以生成的认证密钥Ka对加密机密数据Hash(散列)运算,并取Hash运算结果的前一个部分作为认证部分。将所生成的SPI值、加密数据以及认证部分封装为一个用于本发明的特殊安全通信的加密数据包,并将处理好的加密数据包发往网卡,从而发送到与内部网络相连接的接入设备2。
工作于目的内部网络的接入设备2(例如DSLAM),检查到来的数据包(例如Ipsec格式的IP包)。首先检查目的(IP)地址前缀,随后基于本地保存的内部网络地址与根密钥的映射表查询到与该目的地址前缀相对应的根密钥,接着,检查SPI值中包含的日期值。利用根密钥根据按与用户设备1之间约定的算法对当天日期、目的(IP)地址前缀和源(IP)地址等进行计算,得到一个新的安全策略指示(SPI)值,将其与到来数据包中的SPI值相比较,如果两者相一致,则确定是合法的成员所发出的,不致则丢弃。接着根据SPI值计算出认证密钥Ka,并利用认证密钥Ka来对源(IP)地址以及加密数据进行Hash运算,以生成一个新的认证部分,随后将其于到来数据包的SPI中所包含的认证部分进行比较,如果两者相一致,则可确认数据包没被窜改且是合法的成员发出,否则,将丢弃该数据包。最后,当确认没被窜改且是合法的成员发出,根据SPI值计算出加密密钥Ke,解密数据包中的加密数据部分,以生成一个普通数据包。并将生成的普通数据包发往对应的内部网络。
优选的,接入设备2还应记录成功处理的数据包的诸如目的IP地址、源地址及SPI值,Ke,Ka等通信相关信息,以便于加快后续包的处理及反方向从内部网络发往处于外部网络的成员的用户设备的数据处理。同时接入设备也应记录已经从内部网络发起与外部网络的全部通信的相关信息,例如,采用常见的防火墙技术即可实现。这样可以防止非法用户攻击内部网络。
对于从内部网络发出的后续的数据包,由接入设备基于所记录的先前建立的全部通信的相关信息判断是否属于与其外部成员之间的特殊安全通信。如果属于与其外部成员之间的安全通信,则按与用户设备处相似的方式,利用所存的与该内部网络(源IP地址前缀)相对应的根密钥来按照约定的方式对数据进行处理,以生成一个包含源IP地址、目的IP地址、SPI值、加密数据部分以及认证部分的加密数据包,并发送给相应的用户设备1。并由用户设备1对来自接入设备2的加密数据包进行检查,并作相关的解密处理,以得到原始数据。
图2为根据本发明一个具体实施方式的在通信网络的用户设备中用于与所属内部网络进行特殊安全通信的方法流程图。
下面参照图2并结合图1来对此实施方式进行详细描述。
在本实施方式中,在用户设备1中进行与其所属的内部网络之间的特殊安全通信之前,为了确认用户有权启动与内部网络间的安全通信(为合法成员),需要对用户进行验证。因此,在步骤S101中,利用本地预存的用户相关信息来,通过与用户的交互(例如例如提示用户输入用户名和口令),对所述希望启动与内部网络间的安全通信的用户进行身份认证。随着相关技术的不断完善,用户的身份认证还可以通过指纹识别、RFID扫描等方式实现。在步骤S102中对用户的合法性进行判断,如果用户合法,则进入步骤S103;否则,拒绝操作。
在步骤S103中,当用户希望启动与其所属内部网络间的安全通信(即,目的地址与用户设备端预存的所述用户所属的内部网络的IP地址匹配,说明该通信属于与内部网络间的安全通信)时,将依据预存的内部网络地址前缀(例如64位前缀为前64为IP地址),用生成安全策略指示(SPI)的第二根密钥Kspi对和当天日期、目的IP地址前缀和源IP地址(当前用户设备的IP地址)进行运算,以生成一个安全策略指示(SPI)值,该SPI值用于指示加解密算法以及加解密数据的参数。具体的,该SPI值可以包括三部分,其中:第一部分用于指示所采用的安全策略方案,所述安全策略方案包括加密算法、封装方式等;第二部分包括本地当前日期值;第三部分包括通过对所述本地当前日期值、目的地址前缀、源地址、所述第二根密钥等进行散列运算得到的数值。
在一个实施例中,例如在IPv6协议中,SPI值为32比特,其中:
第一部分可为3bit,用于指示所采用的安全策略方案。例如,可用“111”指定ESP封装,3DES加密,MD5认证的安全方案,可用“100”来指定ESP封装,AES-128加密,SHA-1认证的安全方案。由于现在常用的安全策略方案不超过8种,3bit的组合可以满足现有需要,如果今后出现更多的常用安全策略方案,可以将32位中的更多位数分给所述SPI值的第一部分。这样,用户设备1可以用该部分告知IPsec对等端(接入设备2)其所采用的具体的加解密算法,因而双方都有能力由SPI值的第一部分得知此次通信所用的加解密算法(当然,用户设备1与接入设备2之间如果预先约定了加/解密算法,则无需再通过所述第一部分告知对方);
第二部分可包含5bit:由于网络环境的复杂,为了保证通信安全,用于加密和认证密钥都需要定期更新,每月的日期由1至31,可以用5bit二进制覆盖,并在后续步骤中用于每日更新的加密和认证密钥的生成。如果无需对加密密钥和认证密钥进行定期更新,则可以不包含这一部分,而采用用户设备1与接入设备2之间预先约定的一个预定序列;
第三部分包含24bit:将预存的第二根密钥(Kspi)对当前系统的日期值、目的地址前缀(例如内部成员所属内部网络的IP地址的前64位)、源IP地址(例如用户设备端的IP地址,128位),经过约定的MD5算法,得到一个128位的Hash运算结果,取其前24位,作为SPI值的第三部分。
从而,生成了一个完整的SPI值,指示加解密数据的一组参数及算法,由于其输入量中有每天更新的日期值,生成的SPI值也是每天更新的。
在步骤S104中,将本地(例如便携式计算机或USB存储装置)中预存的第一根密钥(Kroot)对生成的SPI值和一个双方都知晓的预定序列(例如目的地址前缀,目的地址的前64位)进行约定的MD5运算,生成加密密钥。由于所述SPI值是每天更新的,所以生成的加密密钥也是每天更新的。
接着,在步骤S104中,用所述加密密钥待发送的属于所述用户与其所属内部网络间的安全通信的数据在约定加密算法下进行加密,得到加密数据。
在步骤S105中,基于SPI值所规定的封装机制(例如Ipsec的封装机制),将前述步骤中生成的SPI值和加密数据封装成数据包,用于经由网络进行发送。
优选的,步骤S103还包括,将预存的第一根密钥(Kroot)作用于之前对生成的SPI值和另一个双方知晓的预定序列(例如源地址的前64位),进行MD5运算,生成认证密钥;进而,在步骤S104中,在生成加密数据之后,利用以生成的认证密钥Ka对加密机密数据Hash(散列)运算,并取Hash运算结果的前一个部分作为认证部分;随后,在步骤S105中,将认证部分与SPI值和加密数据一同进行封装,以生成待传输的数据包。
优选的,用户设备1还通过访问一个由运营商提供的安全策略服务器来更新与根据本发明的特殊安全通信相关的一些参量,例如代表其所属内部网络的目的地址前缀的更新,安全策略参量(例如第一、二根密钥以及加/解密和认证算法等)的更新等。
在用户设备端,为甄别与所属内部网络之间的特殊安全通信或与其他外部网络之间的通信,还可在进行以上操作之间判断待传输的数据包的目的IP地址前缀与预存的用户所属的内部网络的IP地址是否匹配,如果两者不匹配,表示所要进行的通信并非用于用户与所属内部网络间的安全通信,则不需对所述数据包做上述根据本发明的处理,而是直接将该数据包发送出去。
图3为根据本发明的一个具体实施方式的在通信网络中用于与所属内部网络进行特殊安全通信的用户设备的框图。如上面图1所示,该用户设备1工作于外部网络中,用于作为一个内部网络的成员来经由接入设备2来实现根据本发明的对所述内部网络的安全访问。其中,如图3所示,所述用户设备包括:用于生成安全策略指示(SPI)值的生成装置101,用于生成加密密钥的第一运算装置102、用于生成加密数据的加密装置103,用于生成认证密钥的第二运算装置104,用于生成认证部分的认证装置105,用于封装数据包的封装部分106,用于对用户身份进行验证的验证装置107。
在本实施方式中,在进行与其所属的内部网络之间的特殊安全通信之间,为了确认用户有权启动与内部网络间的安全通信(为合法成员),需要对用户进行验证。因此,验证装置107,利用本地预存的用户相关信息来,通过与用户的交互(例如提示用户输入用户名和口令),对所述希望启动与内部网络间的安全通信的用户进行身份认证。随着相关技术的不断完善,用户的身份认证还可以通过指纹识别、RFID扫描等方式实现。如果用户合法,允许对数据包进行相关处理;否则,停止处理。
当验证装置107验证用户为合法。生成装置101将依据预存的内部网络地址前缀(例如64位前缀为前64的IP地址)、用生成安全策略指示(SPI)的第二根密钥Kspi对当前用户设备(主机)的IP地址和当天日期、目的IP地址前缀和源IP地址进行运算,以生成一个安全策略指示(SPI)值,该SPI值用于指示加解密算法以及加解密数据的参数。具体的,该SPI值可以包括三部分,其中:第一部分用于指示所采用的安全策略方案,所述安全策略方案包括加密算法、封装方式等;第二部分包括本地当前日期值;第三部分包括通过对所述本地当前日期值、目的地址前缀、源地址、所述第二根密钥等进行散列运算得到的数值。
在一个实施例中,例如在IPv6协议中,SPI值为32比特,其中:
第一部分可为3bit,用于指示所采用的安全策略方案。例如,可用“111”指定ESP封装,3DES加密,MD5认证的安全方案,可用“100”来指定ESP封装,AES-128加密,SHA-1认证的安全方案。由于现在常用的安全策略方案不超过8种,3bit的组合可以满足现有需要,如果今后出现更多的常用安全策略方案,可以将32位中的更多位数分给所述SPI值的第一部分。这样,用户设备1可以用该部分告知IPsec对等端(接入设备2)其所采用的具体的加解密算法,因而双方都有能力由SPI值的第一部分得知此次通信所用的加解密算法(当然,用户设备1与接入设备2之间如果预先约定了加/解密算法,则无需再通过所述第一部分告知对方);
第二部分可包含5bit:由于网络环境的复杂,为了保证通信安全,用于加密和认证密钥都需要定期更新,每月的日期由1至31,可以用5bit二进制覆盖,并在后续步骤中用于每日更新的加密和认证密钥的生成。如果无需对加密密钥和认证密钥进行定期更新,则可以不包含这一部分,而采用用户设备1与接入设备2之间预先约定的一个预定序列;
第三部分包含24bit:将预存的第二根密钥(Kspi)对当前系统的日期值、目的地址前缀(例如内部成员所属内部网络的IP地址的前64位)、源IP地址(例如用户设备端的IP地址,128位),经过约定的MD5算法,得到一个128位的Hash运算结果,取其前24位,作为SPI值的第三部分。
从而,生成了一个完整的SPI值,指示加解密数据的一组参数及算法,由于其输入量中有每天更新的日期值,生成的SPI值也是每天更新的。
第一运算装置102对本地(例如便携式计算机或USB存储装置)预存的第一根密钥(Kroot)对生成的SPI值和一个双方都知晓的预定序列(例如目的地址前缀,目的地址的前64位)进行约定的MD5运算,生成加密密钥。由于所述SPI值是每天更新的,所以生成的加密密钥也是每天更新的。
加密装置103,用于利用来自所述第一运算装置102的加密密钥,将待发送的属于所述用户与其所属内部网络间的安全通信的数据在约定加密算法下进行加密,并将经其加密的加密数据转给封装装置106;
第二运算装置104将预存的第一根密钥(Kroot)对来自生成装置101的SPI值和另一个双方知晓的预定序列(例如源地址的前64位),进行MD5运算,生成认证密钥,并将该认证密钥转给认证装置105。由于SPI值作为输入量之一,所述认证密钥每天更新;
认证装置105将利用来自所述第二运算装置303的认证密钥,利用已生成的认证密钥Ka对加密机密数据Hash(散列)运算,并取Hash运算结果的前一个部分作为认证部分,用于接收对等端(接入设备)来确定发送者是否可以信赖;
封装装置106,用于将来自生成装置101的SPI值、来自加密装置103的加密数据和来自认证装置105的认证部分封装入待发送的数据包。
优选的,用户设备1还通过访问一个由运营商提供的安全策略服务器来更新与根据本发明的特殊安全通信相关的一些参量,例如代表其所属内部网络的目的地址前缀的更新,安全策略参量(例如第一、二根密钥以及加/解密和认证算法等)的更新等。
在用户设备端1处,为甄别与所属内部网络之间的特殊安全通信或与其他外部网络之间的通信,还可在进行以上操作之间判断待传输的数据包的目的IP地址前缀与预存的用户所属的内部网络的IP地址是否匹配,如果两者不匹配,表示所要进行的通信并非用于用户与所属内部网络间的安全通信,则不需对所述数据包做上述根据本发明的处理,而是直接将该数据包发送出去。
图4和5为根据本发明一个具体实施方式的在通信网络的接入设备中用于支持一个用户设备与其所属内部网络之间的特殊安全通信的方法的流程图。
如图1所示,接入设备2用于与多个内部网络相连,负责内部网络与外部网络间的双向通信的控制。由于内部网络的安全性需要,所以与内部网络有关的通信可以分为:1)由位于外部网络的作为合法成员的用户设备发起的根据本发明的特殊安全通信;2)由所述用户设备发起的到其他外部网络的其他正常通信(例如未采用Ipsec加密方案的数据包和采用现有技术中Ipsec加密方案的通信);3)由内部网络发起的其他正常通信(例如来采用Ipsec加密方案的数据包和采用现有技术中Ipsec加密方案的通信)。而所有来自外部网络的恶意流量都将在接入设备2处被丢弃,从而保护内部网络的安全。优选的,假定接入设备已经记录所有上述三种已建立通信的相关信息,例如,采用常见的防火墙技术即可实现。其中,对于由位于外部网络的作为合法成员的用户设备发起的根据本发明的特殊安全通信,需要记录该通信的目的IP地址、源IP地址、此次通信所用的SPI值、加密密钥、认证密钥以及TCP/UDP端口号等,并保证更新;对于内部网络或用户设备的其他正常通信,可记录该通信的目的IP地址、源IP地址以及TCP/UDP端口号等,并保证更新。
另外,接入设备还要记录其管理的所有内部网络的IP地址前缀和与每个前缀对应的第一根密钥、第二根密钥。即,不同的内部网络拥有不同的IP地址前缀,接入设备将所述不同的前缀映射到属于每个内部网络的用于生成加密、认证密钥的第一根密钥和用于生成SPI值的第二根密钥。所述两个根密钥安全程度最高,而用于安全通信的SPI值、加密密钥、认证密钥由所述第一、第二根密钥在约定算法下作用生成,进而用于在约定的加密、认证算法下的数据加解密和认证。优选的,与用户设备相似,接入设备2可通过访问一个由运营商提供的安全策略服务器来更新与根据本发明的特殊安全通信相关的一些参量,例如代表其所属内部网络的目的地址前缀的更新,安全策略参量(例如第一、二根密钥以及加/解密和认证算法等)的更新等。。
图4为在该方法中当接入设备2接收到来自用户设备的数据包的处理流程。现参照图4来对所述方法的这一部分进行描述。
在步骤S201中,接入设备接收来自外部网络的用户设备的数据包。
步骤S202中,判断所述来自用户设备的数据包是否为用于与其所述内部网络之间特殊安全通信的加密数据包。
如果所述来自用户设备的数据包为用户设备1发起的与所属内部网络之间的根据本发明的特殊安全通信,则进到步骤S203,利用预存的与所述内部网络对应的第一根密钥来对所述来自用户设备的数据包中的加密数据部分执行与用户设备处的加密算法相对应的解密算法,以生成普通数据包,并将其转发给所述内部网络。
如果所述来自用户设备的数据包属于所述用户设备的已建立的其他类型通信,则进到步骤S204,直接转发所述数据包。
如果所述来自用户设备的数据包不属于所述特殊安全通信和所述用户设备的已建立的其他类型通信,则进到步骤S205,丢弃所述数据包。
根据本发明的一个优选实施例,在步骤S202中通过以下步骤来对数据包进行判断:
如上所述,接入设备2接收到的数据包如前所述可能有三种类型。基于已经记录的所有已建立的通信的相关信息,接入设备2可以将接收到的数据包的信息与已存的信息进行对比。
如果根据对比判断所述数据包属于已经建立的通信,则根据该数据包所属于的具体通信类型来分别进到步骤S203-S205,采用对应的方式对数据包进行处理。
如果所述数据包属于由作为合法成员的用户从外部网络发起的与其所属内部网络间的通信,由于已经存储了该通信所用的认证密钥和加密密钥,所以,在步骤S203中,只需将所述认证密钥用于对所述数据包进行认证,对通过认证的数据包,再将所述已存储的该通信所用的加密密钥对所述数据包的加密数据进行解密,并将解密后的普通数据包中转发给目的内部网络即可。
如果所述数据包属于用户设备的已建立的其他正常通信(例如未采用Ipsec方案的数据包和采用现有技术中Ipsec方案的数据包),可在步骤S204中将所述数据包经由网络直接转发。
如果来自用户设备的数据包与所记录的已建立通信的相关信息都不相匹配,则存在两种可能:
(1)所述数据包属于用户设备1首次发起的与所述内部网络之间的根据本发明的特殊安全通信,尚未在接入设备端被记录;
(2)所述数据包属于不明来历的通信(可能为恶意攻击),为保护内部网络,应当丢弃。
对于情况(2),只要简单地将该数据包丢弃即可,
而对于情况(1),所述数据包为采用本发明提供的方案(优选为基于Ipsec封装)的数据包,其中包括SPI值、加密数据和认证部分。因此,首先,接入设备2应从所述数据包中提取表示内部网络的目的地址前缀和SPI值。由于接入设备预存有所有其管理下的内部网络的IP地址前缀和与所述前缀相对应的属于各个内部网络的第一、第二根密钥,接入设备可以简单通过查询而获得处理所述数据包所需的第一、二根密钥。并且,根据所述提取出的SPI值的用于指示安全策略方案(例如,加解密、认证等算法)的第一部分,接入设备可以根据预存的所有安全策略方案来中得知所述数据包所采用的加解密算法和认证算法等,接着便可以对该数据包进行进一步的操作了:
首先,根据由原始SPI值中提取表示用户设备1的当地日期值的第二部分,并利用利用预存的与所述目的地址前缀相对应的第二根密钥通过与用户设备处相同的生成方式来生成新的安全策略指示(SPI)值;将所述原始SPI值与新的SPI值进行比较;如果两者一致,则可以确定该数据是由作为合法成员的用户设备发出的。
在本发明一个优选实施例中,优选的,可利用预存的与所述目的地址前缀相对应的第一根密钥对所述数据包的目的地址前64位、源地址的128位以及所述SPI值的第二部分(日期值),生成一个128位的Hash值,将其前24位作为新的用于校验的SPI值的第三部分。
接着,比较所述数据包中的SPI值的第三部分和所述生成的新的用于校验的SPI值第三部分,如果所述原始SPI值的第三部分与在接入设备中计算得出的SPI值的第三部分相一致,则可以确定该数据是由作为合法成员的用户设备发出的,可以进一步对所述数据包进行认证;否则,将其丢弃。
认证方法是,利用预存的与所述目的地址前缀相对应的第一根密钥对所计算的SPI值和一个与用户设备之间预先约定的预定序列执行与用户设备处相同的运算来生成一个新认证密钥,利用所述新认证密钥对所述来自用户设备的加密数据包中的加密数据部分执行与用户设备处相同的认证运算,以生成新认证部分。在本发明的一个优选实施例中,所述预定序列为源地址。
随后,将所述数据包中提取出的原始认证部分与所述新认证部分相比较,若两者相一致,则确认数据包未被窜改过而且是合法成员发出的,可利用所述第一根密钥在约定算法下对目的地址前缀(例如目的IP地址的前64位)和所述SPI值进行运算,以生成加密密钥,并将所生成的加密密钥对所述数据包中封装的加密数据进行解密,以获得解密后的数据,并将其封装成普通数据包,在步骤S203中转发给目的内部网络。
图5为在该方法中接入设备对来自内部网络发往外部网络的数据包的处理流程。下面,现参照图5来对所述方法的这一部分进行描述。
如上所述,由于接入设备记录所有已建立通信的相关信息。当接入设备2接收到来自内部网络的数据包后,可将接收到的数据包的信息与已存的信息进行对比。如果根据对比判断该数据包属于由内部网络发起的其他正常通信(例如未采用Ipsec加密方案的数据包和采用现有技术中Ipsec加密方案的通信),则将该数据包直接转发;而如果所述数据包属于为根据本发明的用于与所述内部网络之间的特殊安全通信,则利用所述第一根密钥和第二根密钥来将所述普通数据包转换为用于所述特殊安全通信的加密数据包,并将所转换的加密数据包发送给所述用户设备。
如图5所述,在步骤S206中,接收来自内部网络的数据包;
在步骤S207中,根据已经记录的所有已建立的通信的相关信息来判断来自内部网络的数据包是否属于与所述用户设备之间的已建立的根据本发明的特殊安全通信的普通数据包或内部网络的已建立的其他类型通信(例如未采用Ipsec加密方案的数据包和采用现有技术中Ipsec加密方案的通信);
如果该数据包属于所述内部网路与用户设备之间已建立的特殊安全通信,则在步骤S208中,利用所述第一根密钥和第二根密钥来采用与用户设备处相同的方式将所述普通数据包转换为用于所述特殊安全通信的加密数据包,并将所转换的加密数据包发送给所述用户设备;
如果该数据包属于所述内部网络的已建立的其他类型通信,则在步骤S209中,直接转发所述数据包。
如果该数据包不属于所记录的任何已建立的通信(即与所有记录信息都不符合),则在步骤S210中,直接转发所述数据包。
对于与所有记录信息都不符合的数据包,接入设备2可以简单地判断,该数据包可能属于以下几种情况:
-所述数据包采用IPsec封装:这种情况下,无论接入设备处是否存有所述通信的相关信息,接入设备都可以确定所述数据包是基于现有技术中的IPsec方案,属于应当正常转发的数据包,这是由于只需要保护内部网络,不允许外部用户对其随意访问,但是对于内部网络对外部网络的访问,接入设备在此不予限制,于是,记录相关信息后(无相关记录的前提下需要此操作),将该数据包发送至外部网络;
-所述数据包未采用IPsec封装:这可能包括以下情形:
(a)如果接入设备未存有与所述数据包相关信息相匹配的信息,
则判断所述数据包属于由内部网络发起的其他通信,则在步骤S210中,将其正常转发,于是将所述数据包发送至外部网络目的地址;
(b)如果接入设备存有与所述数据包的相关信息相匹配的信息,
则可以根据记录装置中所保存的已建立通信的相关信息判断所述数据包属于内部网络发起的与外部网络的正常通信(不采用IPsec方案)或者内部网络与在外部网络中作为其成员的用户设备之间的根据本发明的特殊安全通信。对于这两种情况,转换处理装置203分别进行以下操作:
(i)内部网络发起的与外部网络的通信(不采用IPsec方案)
或者,对这种数据包,直接将所述数据包发送至目的地址;所述数据包还可能属于:
(ii)外部网络发起的与内部网络间的根据本发明的特殊安全通信,对这种数据包,在步骤S207中,在所存储的与该通信相关的记录信息中查到其所用的第一、第二根密钥,并根据所述根密钥,将第二根密钥作用于目的IP地址、源IP地址和当前系统(接入设备)的日期值,在约定算法(由将生成的SPI值的第一部分确定)下生成SPI值,并将其用于在第一根密钥的作用下生成加密、认证密钥。接着,利用所述加密密钥对待发送的数据进行加密,生成加密数据,利用所述认证密钥作用于所述数据包,生成认证部分,并将所述SPI值、加密数据、认证部分封装成IPsec数据包,进而在后续步骤中发送至目的IP地址(位于外部网络的用户设备)。
图6为根据本发明一个具体实施方式的在通信网络中用于支持用户设备与其所属内部网络之间的特殊安全通信的接入设备的框图。其中,该接入设备2包括用于接收来自所述一个用户设备的数据包第一接收装置201;用于发送数据包的第一发送装置204;用于记录所有已建立通信的相关信息的记录装置205;用于接收来自所述内部网络的数据包的第二接收装置206;用于发送来自内部网络的数据包的第二发送装置207;用于判断所述来自用户设备或内部网络的数据包是否属于根据本发明的用户设备与内部网络之间安全通信的加密数据包的判断装置202;用于根据判断结果来对数据包进行处理,并分别提供给第一或第二发送装置204的转换处理装置203。
在根据本发明的一个具体实施方式中,判断装置202还包括提取装置2021、计算装置2022、比较装置2023和确定装置2024,当接收到来自用户设备的数据包时,可通过以下操作来对数据包进行判断。
如上所述,接入设备2接收到的数据包如前所述可能有三种类型。记录装置207中已经记录了所有已建立的通信的相关信息,判断装置202可以执行以下操作:
-将接收到的数据包的相关信息与记录装置207中已建立的所有通信的相关信息进行对比;
-确定该数据包是否属于由作为合法成员的用户从外部网络发起的与其所属内部网络间的特殊安全通信或者属于用户设备的已建立的其他正常通信(例如未采用Ipsec方案的数据包和采用现有技术中Ipsec方案的数据包),并将确定结果告知转换处理装置203。
转换处理装置203用于执行以下操作:
-如果所述数据包属于由作为合法成员的用户从外部网络发起的与其所属内部网络间的通信,由于已经存储了该通信所用的认证密钥和加密密钥,所以,在步骤S203中,只需将所述认证密钥用于对所述数据包进行认证,对通过认证的数据包,再将所述已存储的该通信所用的加密密钥对所述数据包的加密数据进行解密,并将解密后的普通数据包转发给目的内部网络即可;
-如果所述数据包属于用户设备的已建立的其他正常通信(例如未采用Ipsec方案的数据包和采用现有技术中Ipsec方案的数据包),可在步骤S204中将所述数据包经由网络直接转发。
如果来自用户设备的数据包与所记录的已建立通信的相关信息都不相匹配,则存在两种可能:
(1)所述数据包属于用户设备1首次发起的与所述内部网络之间的根据本发明的特殊安全通信,尚未在接入设备端被记录;
(2)所述数据包属于不明来历的通信(可能为恶意攻击),为保护内部网络,应当丢弃。
因此,当来自用户设备的数据包与所记录的已建立通信的相关信息都不相匹配,判断装置202需要对其进行进一步判断;
具体的,判断装置202还包括一个提取装置2021、计算装置2022、比较装置2023、确定装置2024。
对于上述情况(1),所述数据包为采用本发明提供的方案(优选为基于Ipsec封装)的数据包,其中包括SPI值、加密数据和认证部分。因此,提取装置2021应从所述数据包中提取表示内部网络的目的地址前缀和SPI值。由于接入设备2中已经预存有所有其管理下的内部网络的IP地址前缀和与所述前缀相对应的属于各个内部网络的第一、第二根密钥,接入设备可以简单通过查询而获得处理所述数据包所需的第一、二根密钥。
随后,根据所述提取出的SPI值的用于指示安全策略方案(例如,加解密、认证等算法)的第一部分,计算装置2022可以根据预存的所有安全策略方案来中得知所述数据包所采用的加解密算法和认证算法等,接着便可以对该数据包进行如下操作:根据由原始SPI值中提取表示用户设备1的当地日期值的第二部分,并利用利用预存的与所述目的地址前缀相对应的第二根密钥通过与用户设备处相同的生成方式来生成新的安全策略指示(SPI)值。
比较装置2023将所述原始安全策略指示值与新的安全策略指示值进行比较。
确定装置2024根据由原始SPI值中提取表示用户设备1的当地日期值的第二部分,并利用利用预存的与所述目的地址前缀相对应的第二根密钥通过与用户设备处相同的生成方式来生成新的安全策略指示(SPI)值;将所述原始SPI值与新的SPI值进行比较;如果两者一致,则可以确定该数据是由作为合法成员的用户设备发出的。
在本发明一个优选实施例中,优选的,计算装置2022可利用预存的与所述目的地址前缀相对应的第一根密钥对所述数据包的目的地址前64位、源地址的128位以及所述SPI值的第二部分(日期值),生成一个128位的Hash值,将其前24位作为新的用于校验的SPI值的第三部分。
接着,比较装置2023比较所述数据包中的SPI值的第三部分和所述生成的新的用于校验的SPI值第三部分。如果所述原始SPI值的第三部分与在接入设备中计算得出的SPI值的第三部分相一致,则确定装置2024可以确定该数据是由作为合法成员的用户设备发出的,可以进一步对所述数据包进行认证;否则,将其丢弃。
认证的具体操作如下:
计算装置2022利用预存的与所述目的地址前缀相对应的第一根密钥对所计算的SPI值和一个与用户设备之间预先约定的预定序列执行与用户设备处相同的运算来生成一个新认证密钥,利用所述新认证密钥对所述来自用户设备的加密数据包中的加密数据部分执行与用户设备处相同的认证运算,以生成新认证部分。在本发明的一个优选实施例中,所述预定序列为源地址。
比较装置2023将所述数据包中提取出的原始认证部分与所述新认证部分相比较。若两者相一致,则确定装置2024可以确认数据包未被窜改过而且是合法成员发出的。从而,转换处理装置203可利用所述第一根密钥在约定算法下对目的地址前缀(例如目的IP地址的前64位)和所述SPI值进行运算,以生成加密密钥,并将所生成的加密密钥对所述数据包中封装的加密数据进行解密,以获得解密后的数据,并将其封装成普通数据包,并提供给第一发送装置204,用以发送给目的内部网络。
在根据本发明的一个具体实施方式中,当第二接收装置205接收到来自用户设备的数据包时,判断装置202可通过以下操作来对该数据包进行判断:
如上所述,由于记录装置207记录所有已建立通信的相关信息。当接入设备2接收到来自内部网络的数据包后,判断装置202可将接收到的数据包的信息与记录装置207中已存的所有已建立的通信的相关信息进行对比。根据对比可以给出几个确定结果。如果确定该数据包属于由内部网络发起的其他正常通信(例如未采用Ipsec加密方案的数据包和采用现有技术中Ipsec加密方案的通信),则转换处理装置203将该数据包直接提供给第二发送装置206,用以转发;而如果所述数据包属于为根据本发明的用于与所述内部网络之间的特殊安全通信,则转换处理装置203利用所述第一根密钥和第二根密钥来将所述普通数据包转换为用于所述特殊安全通信的加密数据包,并将所转换的加密数据包发送给所述用户设备。
对于与所有记录信息都不符合的数据包,判断装置203可以简单地判断,该数据包可能属于以下几种情况:
-所述数据包采用IPsec封装:这种情况下,无论记录装置207处是否存有所述通信的相关信息,判断装置203都可以确定所述数据包是基于现有技术中的IPsec方案,属于应当正常转发的数据包,这是由于只需要保护内部网络,不允许外部用户对其随意访问,但是对于内部网络对外部网络的访问,在此不予限制,于是,判断装置203并将该数据包发送至外部网络,并将该通信的相关信息提供给记录装置207进行记录后(无相关记录的前提下需要此操作);
-所述数据包未采用IPsec封装:这可能包括以下情形:
(a)如果接入设备未存有与所述数据包相关信息相匹配的信息
则判断装置203可以确定所述数据包属于由内部网络发起的通信,应当正常转发,从而,转换处理装置204将所述数据包直接提供给第二发送装置,用以发送;
(b)如果接入设备存有与所述数据包的相关信息相匹配的信息
则判断装置203可以根据记录装置中所保存的已建立通信的相关信息判断所述数据包属于内部网络发起的与外部网络的正常通信(不采用IPsec方案)或者内部网络与在外部网络中作为其成员的用户设备之间的根据本发明的特殊安全通信。对于这两种情况,转换处理装置203分别进行以下操作:
(i)内部网络发起的与外部网络的正常通信(不采用IPsec方案)
转换处理装置203将所述数据包直接提供给第二发送装置206,用以发送给目的地址;
(ii)外部网络发起的与内部网络间的根据本发明的特殊安全通信
对这种数据包,转换处理装置203根据记录装置中所保存的与该通信相关的记录信息中查到其所用的第一、第二根密钥,并根据所述根密钥,将第二根密钥作用于目的IP地址、源IP地址和当前系统(接入设备)的日期值,在约定算法(由将生成的SPI值的第一部分确定)下生成SPI值,并将其用于在第一根密钥的作用下生成加密、认证密钥。接着,利用所述加密密钥对待发送的数据进行加密,生成加密数据,利用所述认证密钥作用于所述数据包,生成认证部分,并将所述SPI值、加密数据、认证部分封装成加密数据包(例如IPsec数据包),然后将该加密数据包提供给第二发送装置206,以发送至目的IP地址(位于外部网络的用户设备)。
以上结合附图对本发明的具体实施方式进行了阐述,需要理解,本发明并不限于具体实施方式,本领域内熟练技术人员可以在所附权利要求的范围内做出各种变形或修改。