基于SoC的IPSec协议实现技术
时间:09-24
来源:互联网
点击:
3.2 功能实现
(1)lPSec协议的输出与输入引擎处理
对于输出数据包,IPSec协议输出引擎先调用策略管理模块,查询SPD,确定数据包应使用的安全策略。根据策略管理模块的指示,协议引擎对该数据包作出如下3种可能的处理:
①如存在有效的SA,则取出相应的参数,将数据包封装(包括加密、验证,添加IPSec头和IP头等),然后发送。
②如尚未建立SA,策略管理模块启动或触发IKE协商。协商成功后,按①中的步骤处理;不成功则应将数据包丢弃,并记录出错信息。
③如存在SA但无效,策略管理模块将此信息向IKE通告,请求协商新的SA,协商成功后按①中的步骤处理,不成功则应将数据包丢弃。
对于输入数据包,IPSec协议引擎先调用策略管理模块,查询SAD。如得到有效的SA,则对数据包进行解封(还原),再查询SPD,验证为该数据包提供的安全保护是否与策略配置的相符。如相符,则将还原后的数据包交给TCP层或转发。如不相符,或要求应用IPSec但未建立SA,或SA无效,则将数据包丢弃,并记录出错信息。
(2)SPDB和SADB实现技术
IPSec协议处理数据报文的过程中需要通过不断地查询SADB和SPDB来验证数据的合法性和取出密钥进行数据报的加解密处理,因此,对IPSec处理性能而言,如何选择保存SADB和SPDB的数据结构至关重要。另外由于SA和SP的数量都是动态地变化的,必须选择合适的存储结构。如用软件方法设计一个合理的数据结构进行存储,在系统的SADB和SPDB规模比较小时SA和SP的查询速度还可以接受,但随着SADB和sPDB规模的扩大,系统的查询能力必然下降。因为在查询中最好的情况是一次命中,而大多数情况下都不会是一次命中,查询的效率必然下降,从而影响IPSec协议的处理。要从根本上解决查询效率的问题必须分析SADB和SPDB的设计要求,才能找到解决方法。
SPDB和SADB的设计基于每一个SA对应一条SPD。SA和SPD在各数据库中具有相同的地址。利用指针互指,只要在其中一个数据库查找到匹配的字段,就能同时得到两个数据库的地址指针。因此,SPDB和SADB的设计应该满足下列要求:
①对于该数据结构能够有效地进行查询,得到确切的或者基于选择符的匹配结果,包括源地址、目的地址、协议和SPI。
②能够为选择符保存通配、范围或确切的值。
③隐藏指向SADB和SPDB的指针,保证两个结构间的同步。
④对SA/SP条目进行排序保存,以便匹配查找一直能快速完成。
采用硬件设计技术通常是提高协议处理速度的好方法。其中,CAM(Content_Addressable Memory)是按内容寻址存储 器,是由控制和匹配两大部分组成的。通过控制部分,可以把需要写进CAM中的数据通过SPDB和SADB管理模块写进 CAM中,供查找时使用。在匹配口可以输入数据,找出该匹配数据所在地址并返回。在实际设计中,SADB或SPDB数据库内容连续存储在RAM空间中。 CAM中写入需要查找的匹配输入项三元组等,匹配输出是32位作为查询SADB和SPDB在RAM中的地址,这种匹配方法一次查询只需几个时钟周期即可完成。在SADB和SPDB规模很大时系统的查询速度不会降低。目前CAM的匹配速度很快,查找速度可以达到1亿次/s,而在一个1000Mb/s的网络口上每秒连续传最大包的个数为1000×1024×1024/(8×96)=1 365 330,完全满足系统查找的需要。匹配成功即可查找出对应的数据库中起始地址,大大节省了查表的时间,提高IPSec处理的效率。
(3)密码算法的实现
在IPSec实现过程中涉及了一系列的密码运算,其中包括实现AH和ESP的加密算法和认证算法,实现IKE所需要的密钥交换算法以及密钥生成算法。为获得较高的密码运算效率,可以采用流水线技术设计专门的密码运算协处理器;设计硬件随机数发生器,为密码设备产生消息密钥;设计密钥安全控制器,以保护密钥安全。
(4)其余功能的实现
IKE密钥交换、策略管理、SAD手工注入和硬件初始化(如SPD和SAD的管理)等由实时操作系统实现。
结语
本文介绍了基于SoC的IPSec协议实现技术,适用于千兆位VPN设备等高端应用。至于速度要求不高的低端应用,SoC中可以由CPU实现协议处理,而密码算法由硬件实现,以降低硬件规模和设计成本,使设备获得较高的性价比。总之,以SoC构筑安全平台,是提高安全产品安全性、可靠性和时效性的有效途径。
研发基于自主知识产权的、基于SoC的安全产品,可以充分利用SoC中CPU效率高、硬件可编程能力强,以及芯片规模大、速度快的特点,极大地提高安全产品的性能。该技术不仅对信息安全产品具有重要的实用价值,而且对密码工程技术具有重要的学术意义。
(1)lPSec协议的输出与输入引擎处理
对于输出数据包,IPSec协议输出引擎先调用策略管理模块,查询SPD,确定数据包应使用的安全策略。根据策略管理模块的指示,协议引擎对该数据包作出如下3种可能的处理:
①如存在有效的SA,则取出相应的参数,将数据包封装(包括加密、验证,添加IPSec头和IP头等),然后发送。
②如尚未建立SA,策略管理模块启动或触发IKE协商。协商成功后,按①中的步骤处理;不成功则应将数据包丢弃,并记录出错信息。
③如存在SA但无效,策略管理模块将此信息向IKE通告,请求协商新的SA,协商成功后按①中的步骤处理,不成功则应将数据包丢弃。
对于输入数据包,IPSec协议引擎先调用策略管理模块,查询SAD。如得到有效的SA,则对数据包进行解封(还原),再查询SPD,验证为该数据包提供的安全保护是否与策略配置的相符。如相符,则将还原后的数据包交给TCP层或转发。如不相符,或要求应用IPSec但未建立SA,或SA无效,则将数据包丢弃,并记录出错信息。
(2)SPDB和SADB实现技术
IPSec协议处理数据报文的过程中需要通过不断地查询SADB和SPDB来验证数据的合法性和取出密钥进行数据报的加解密处理,因此,对IPSec处理性能而言,如何选择保存SADB和SPDB的数据结构至关重要。另外由于SA和SP的数量都是动态地变化的,必须选择合适的存储结构。如用软件方法设计一个合理的数据结构进行存储,在系统的SADB和SPDB规模比较小时SA和SP的查询速度还可以接受,但随着SADB和sPDB规模的扩大,系统的查询能力必然下降。因为在查询中最好的情况是一次命中,而大多数情况下都不会是一次命中,查询的效率必然下降,从而影响IPSec协议的处理。要从根本上解决查询效率的问题必须分析SADB和SPDB的设计要求,才能找到解决方法。
SPDB和SADB的设计基于每一个SA对应一条SPD。SA和SPD在各数据库中具有相同的地址。利用指针互指,只要在其中一个数据库查找到匹配的字段,就能同时得到两个数据库的地址指针。因此,SPDB和SADB的设计应该满足下列要求:
①对于该数据结构能够有效地进行查询,得到确切的或者基于选择符的匹配结果,包括源地址、目的地址、协议和SPI。
②能够为选择符保存通配、范围或确切的值。
③隐藏指向SADB和SPDB的指针,保证两个结构间的同步。
④对SA/SP条目进行排序保存,以便匹配查找一直能快速完成。
采用硬件设计技术通常是提高协议处理速度的好方法。其中,CAM(Content_Addressable Memory)是按内容寻址存储 器,是由控制和匹配两大部分组成的。通过控制部分,可以把需要写进CAM中的数据通过SPDB和SADB管理模块写进 CAM中,供查找时使用。在匹配口可以输入数据,找出该匹配数据所在地址并返回。在实际设计中,SADB或SPDB数据库内容连续存储在RAM空间中。 CAM中写入需要查找的匹配输入项三元组等,匹配输出是32位作为查询SADB和SPDB在RAM中的地址,这种匹配方法一次查询只需几个时钟周期即可完成。在SADB和SPDB规模很大时系统的查询速度不会降低。目前CAM的匹配速度很快,查找速度可以达到1亿次/s,而在一个1000Mb/s的网络口上每秒连续传最大包的个数为1000×1024×1024/(8×96)=1 365 330,完全满足系统查找的需要。匹配成功即可查找出对应的数据库中起始地址,大大节省了查表的时间,提高IPSec处理的效率。
(3)密码算法的实现
在IPSec实现过程中涉及了一系列的密码运算,其中包括实现AH和ESP的加密算法和认证算法,实现IKE所需要的密钥交换算法以及密钥生成算法。为获得较高的密码运算效率,可以采用流水线技术设计专门的密码运算协处理器;设计硬件随机数发生器,为密码设备产生消息密钥;设计密钥安全控制器,以保护密钥安全。
(4)其余功能的实现
IKE密钥交换、策略管理、SAD手工注入和硬件初始化(如SPD和SAD的管理)等由实时操作系统实现。
结语
本文介绍了基于SoC的IPSec协议实现技术,适用于千兆位VPN设备等高端应用。至于速度要求不高的低端应用,SoC中可以由CPU实现协议处理,而密码算法由硬件实现,以降低硬件规模和设计成本,使设备获得较高的性价比。总之,以SoC构筑安全平台,是提高安全产品安全性、可靠性和时效性的有效途径。
研发基于自主知识产权的、基于SoC的安全产品,可以充分利用SoC中CPU效率高、硬件可编程能力强,以及芯片规模大、速度快的特点,极大地提高安全产品的性能。该技术不仅对信息安全产品具有重要的实用价值,而且对密码工程技术具有重要的学术意义。
SoC 半导体 Altera FPGA 电路 嵌入式 仿真 看门狗 相关文章:
- SoC面临挑战,智能分割顺势而起(11-07)
- 基于PL3200的CDMA扩频电力线载波通信系统设计(11-19)
- 基于SOCKS地IPv4向IPv6过渡技术(01-08)
- 基于GPRS的SOCKET通信的应用研究(01-15)
- 蓝牙技术硬件实现模式分析(01-11)
- 代理服务器------代理之间的级联(03-17)
