当前位置:首页 > 电源 > 电源AC/DC
[导读]1 前言针对Internet 的安全需要,为了给IPV4 和IPV6 数据报提供高质量的、可互操作的、基于密码学的安全性,Internet 工程任务组(IETF)颁布了IP 层安全标准IPSec。IPSec 在IP 层对数据包进行高强度的安全处理,提供包

1 前言

针对Internet 的安全需要,为了给IPV4 和IPV6 数据报提供高质量的、可互操作的、基于密码学的安全性,Internet 工程任务组(IETF)颁布了IP 层安全标准IPSec。IPSec 在IP 层对数据包进行高强度的安全处理,提供包括访问控制、无连接的完整性、数据源认证、抗重播(replay)保护(序列完整性(sequence integrity)的一个组成部分)、保密性和有限传输流保密性在内的服务。这些服务是基于IP 层的,提供对IP 及其上层协议的保护。

对于IPSec 数据流处理而言,有两个必要的数据库:安全策略数据库(SPD) 和安全关联数据库(SAD)。SPD 指定了用于到达或者源自特定主机或网络的数据流的策略,而SAD 则包含了活动的SA 参数。在启动IPSec 保护的源和目的之间,都需要设置单独的输入和输出SPD 和SAD 。

经受IPSec 保护的节点的通信流,无论是输入还是输出都必须查询SPD。SPD 包含一个策略条目的有序列表,每个条目里又包含多个选择符,输入输出数据流就是通过和这些选择符比较来决定是否进行安全保护。IPSec 允许的选择符有目的IP 地址,源IP 地址,传输层协议,系统名和用户ID。目的和源IP 地址可以是一个主机地址,广播地址,单播地址,任意播地址,地址范围,地址加子网掩码或者通配地址;系统名和用户ID 可以是完整的DNS 名或E-mail 地址。SPD 中的条目决定了处理通信流的粒度,策略可能规定与某特定的SA 或SA 束对应的IPSec 服务应该应用到任何源自任何源或者去往任何目的地的所有通信流,策略也可能规定应该基于特定的选择符来决定不同SA 或SA 束的应用。总之,SPD 在控制通过一个IPSec 系统的所有通信中发挥着非常重要的作用。为了在保证安全强度的前提下,提高IPSec 保护节点上的流处理速度,本文提出了一种采用硬件IDT75K62100 芯片实现快速的SPD 与SAD 数据库的思想。

2 SPD 与SAD 硬件结构

安全模块的设计初衷就是为了在IPV6 路由器中对特定的数据流实现高速的IPSec 安全保护,这就使得SPD 和SAD 的高速查找成为一个很关键的问题,因为对每一个包进行IPSec 处理时,都必须查找SPD 和SAD 以获取相应的处理策略,如果查找速度慢的话,将达不到高速的性能要求。数据库可以用软件来组织,也可以依托硬件来实现,为了提高查找速度,我们使用硬件来做数据库。目前支持高速查找的硬件主要有两种:基于逻辑算法设计的SRAM 技术和基于半导体器件设计的CAM(Content Addressable Memory, 内容寻址寄存器)技术。常用的随机存储器通过输入地址来返回该地址所对应的数据信息,而CAM 只需要输入关键字的内容就会将此关键字与CAM 中所有表项同时进行比较,最后返回匹配表项在CAM 中对应的地址信息。CAM 可以在一个硬件时钟周期内完成关键字的精确匹配查找,目前速度可达到266Mpps 。

CAM 虽然有很多优势,但在本模块中如果都采用CAM 来作为数据库,则一方面代价太高,因为输入处理和输出处理各需要两个数据库(SPD和SAD), 这样一共需要四个CAM,而CAM 价格较为昂贵;另一方面将SPD 和SAD 分别设在两块CAM 中,这样每处理一包需要进行两次查找,影响了速度。为此,我们特别研究了一种能够实现快速查找的数据库硬件结构,这种结构采用CAM 和SRAM 相结合的方式。这种结构一方面在一定程度上降低了成本,另一方面解决了二次查找的问题。

这种硬件结构的组成原理是将SPD 设置在CAM 中,而将SAD 设置在SRAM 中,然后将CAM 和SRAM 级联。这样,在进行IPSec 处理时,先在CAM 中查SP,如果没有找到相应的SP, 则查找结束;如果查到了相应的SP,则由CAM 将对应的SA 在SRAM 中的存放地址送给SRAM, 然后从SRAM 中对应地址将SA 取出送FPGA, 这样避免了再由FPGA 对SAD 进行查询。这种数据库的查找方法还引入了流水机制,即CAM 查到了前一报文的SP 后,将匹配地址送给SRAM,在SRAM 读该地址对应的SA 的同时,CAM 可进行对下一报文的SP 的查找。该查找方法中,CAM 与SRAM 的连接如图一所示。

图 1 :CAM 与SRAM 连接图

3 75K62100 芯片的内部结构 实际设计中,CAM 选用IDT 公司的75K62100 ,其内部逻辑结构与主要外部总线如图二所示。从图中可以看出,该型号CAM 内部主要由配置电路,指令译码,输入输出数据缓存,比较寄存器和数据存储区等单元组成,外部总线有指令总线,数据总线和索引总线,另外还包括一条匹配标志信号线。该CAM 的数据存储区的容量为18M, 经过配置电路配置,可以工作在256k×72bit (表项深度为256K, 宽度为72bit)、128K×144bit 、72K×288bit 等模式下。指令总线宽20 位,配置指令,读写指令从该总线输入。数据总线宽72 位, 输入数据时,先将数据写入数据输入输出缓存区,在内部地址译码控制下,再将数据写入数据存储区或比较寄存器。比较后得到匹配项的地址由24 位索引总线送出,数据经输入输出缓存器从数据总线输出,并由匹配标志信号线给出匹配状态。 [!--empirenews.page--]

图 2 :IDT75K62100 内部逻辑结构与外部总线示意图

SRAM 选用IDT 公司的71V65603 ,该款SRAM 工作频率为100M-150MHZ ,支持ZBT 技术,容量为256KX36bit 。其内部逻辑结构及主要外部总线如图三所示。

图 3 :IDT71V65603 内部逻辑结构与外部总线示意图

查找时,先从包头中提取出查表关键字送CAM 查SP,若查到了SP,则将此SP 对应的SA 的地址通过CAM 索引总线送给SRAM 并将匹配标志送IPSec 处理单元,SRAM 根据送来的地址将对应的SA 通过数据总线写入IPSec 处理单元。每查到一条SA,则需要对SAD 中的该SA 条目进行更新,因为SA 中包括序列号和SA 生存期等需要及时更新的字段。更新过程和查找过程基本一致,先从CAM 中找到对应的SP 条目,得到该SA 的存放地址,然后将修改后的SA 写入该地址或将原SA 删除。

4 SPD 和SAD 数据格式设置

一个好的IPSec 协议实现方案,一定程度上取决于SPD 和SAD 条目的合理的设置,因为合理的SPD 和SAD 条目设置可以使IPSec 处理即不复杂,又达到了预期的安全保护的要求。

根据实际需要,本安全模块的SPD 中每个条目设置源IP 地址,目的IP 地址,传输层协议三个选项。需要注意的是,源IP 地址和目的IP 地址项完全没必要设为128 位的, 只需要储存各自地址的高64 位即可,因为在128 位的IPV6 地址中,高64 位是所属网络地址,由于是在路由器上实现IPSec 保护,故在进行策略查找时,只需要检查数据包中的源和目的的网络地址是否与策略库中的网络地址相匹配即可。传输层协议选项为8 位宽,对于输出处理单元,只对TCP 和UDP 进行安全保护,故该选项的十进制值应为6(TCP)或17(UDP)

; 对于输入处理单元,只对ESP 进行处理,故该选项的十进制值应为50。由此看来,SPD 的表项宽度应在136 位以上。

对于输出包处理的SAD,每个SA 条目包括SPI 字段,序列号计数器字段,序列号溢出字段,密钥字段和SA 生存期字段。其中,SPI 字段为32 位宽, 取值范围为256—232-1,我们规定,若SPI 为全1,则表示SA 尚未建立,需要进行协商;若SPI 为其它有效值,则根据对应的SA 进行安全处理。序列号计数器字段为32 位宽,为所处理的数据包提供一个唯一的编号用来抗重放。序列号溢出字段为1 位宽,当该位为‘1’时,表示需要对序列号字段进行溢出检查;为‘0’表示不需进行溢出检查。密钥字段128 位,存放3DES 算法的密钥。SA 生存期字段16 位宽, 值为预先约定的该SA 所处理的数据包的个数,每处理一包该值减一,为0 时该SA 过期, 重新协商。综上所述,输出包处理的SAD1 每个表项宽度应在209 位。[!--empirenews.page--]

对于输入包处理的SAD2,每个条目包括SPI 字段,抗重放窗口字段,密钥字段和SA 生存期字段。抗重放窗口字段32 位宽, 用来存放该SA 所接收到的验证有效的最大序列号, 接收到的包的序列号如果小于该值将被丢弃。其它字段的设置与输出包处理单元对应字段相同,不再重复。综上所述,输入包处理的SAD 每个表项宽度为208 位。

需要说明的是,以上设置是根据本安全模块实际设计的需要设置的,在IPSec 协议中建议的一些选项在本设计中省略了。例如,SPD 中的SPI 选项被省略,因为本设计中SPD 和SAD 是同时查找的,故可以将SPD 中的SPI 项省略。另外本安全模块默认使用隧道模式,密码算法为3DES,不进行认证,故SAD 中的相关选项被省略。

在设计中,SPD1 和SPD2 所用CAM 都设置为128KX144bit 模式,数据存储格式如图4-1 所示。SAD1 和SAD2 均由SRAM 组成,其存储空间为256KX36bit,这样SAD1 和SAD2 中一条SA 条目需要占用6 个存储单元。数据存储格式如图4-2 所示。

图 4-2:SAD1 和SAD2 数据格式

5 创新点总结本文的创新点在于提出并实现了一种用硬件IDT75K62100 芯片实现快速的SPD 与SAD 数据库的思想。目前的SPD 和SAD 往往用软件的方式来实现,但这极大地限制了IPSEC 处理数据流的速度,本文提出的这种思想,经过实现与测试,对提高IPSEC 保护节点提高数据流的处理速度有很大的帮助。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

5月19日消息,英特尔CEO帕特·基辛格在最新发布的2023-2024年度企业社会责任(CSR)报告中,设定了一个宏伟目标:到2030年底,全球50%的半导体将在美国和欧洲生产。

关键字: Intel 芯片 1.8nm

电源系统设计包括设计参数之间的许多权衡,例如尺寸、成本、效率和负载瞬态性能。为了设计功率级,必须建立各种特性,例如瞬态容限、纹波电压和负载特性。

关键字: 降压转换器 电源设计 控制

引领供应链数字化转型新潮流 上海2024年5月16日 /美通社/ -- 5月14日,"第七届亚太智慧供应链与物流创新博览会"在上海顺利举办,作为中国和亚太区最大规模,最有影响力的顶流供应链物流盛会,...

关键字: 数字化 软件 供应链管理 控制

上海2024年5月13日 /美通社/ -- CONNECT 2 是更加用户友好的声卡,仅需轻点几下,它就能为人声和乐器的录制增添异彩。触控面板触感舒适、控制精准、一目了然。所有输入输出信号均可独立静音。自动设置功能通过内...

关键字: NEC 声卡 控制 软件

5月15日消息,谷歌在其2024年I/O开发者大会上宣布了一项名为“AI Overviews(AI概览)”的新搜索体验功能。

关键字: 谷歌 AI 芯片 半导体

5月15日消息,谷歌在I/O大会上发布了第六代TPU芯片Trillium,并透露能够在明年初用上英伟达最新的Blackwell架构GPU。

关键字: 谷歌 AI 芯片 半导体

《芯片与科学法案》(CHIPS)为美国芯片研究、开发、制造和劳动力发展提供了527亿美元的资助。

关键字: 美国芯片法案 芯片与科学法案 芯片

据消息源 jasonwill101 透露,高通公司目前正在重新设计骁龙 8 Gen 4 处理器,新的目标频率为 4.26GHz,这一变化主要是为了应对苹果 M4 / A18 / Pro 处理器。

关键字: 高通 骁龙 8 Gen 4 芯片

业内消息,近日美国麦肯锡公司的一份报告强调了芯片行业的劳动力挑战,在美国寻求吸引更多技术工人从事半导体制造之际,许多现有员工正在重新考虑是否要留下来。

关键字: 芯片

现在市面上还不存在一种方便实验人员选取芯片,以及方便管理人员对芯片进行智能化管理的芯片柜,为此希望通过研发这款智能芯片柜,来解决以上问题。​

关键字: 单片机 芯片
关闭
关闭