一种基于Linux内核的IPsec协议栈设计

2019-10-08 07:45阮俊杰
软件 2019年1期

阮俊杰

摘  要: 随着开源技术的不断发展,Linux在各大领域得到了广泛的应用,在嵌入式设备领域,大量工业控制设备、路由交换设备、网络安全设备等基于Linux内核研发,并得到了广泛的应用。在网络安全领域,VPN技术作为解决网络通信机密性以及完整性的手段,广泛用于各类业务系统的安全保障。本文开展了基于Linux内核的IPsec协议栈设计,对网络数据包在数据出入栈等环节的处理流程进行了优化处理以及详细说明。实践证明该IPsec协议栈设计可以有效满足网络数据通信加密的需求。

关键词: Linux,通信加密,协议栈

中图分类号: TP393.08    文献标识码:     DOI:10.3969/j.issn.1003-6970.2019.01.027

【Abstract】: With the rapid development of open source technology, Linux has been widely used in various fields. In the field of embedded equipment, a large number of industrial control equipment, routing switching equipment and network security equipment are based on the Linux kernel. In the field of network security, V VPN technology is widely used to solve the problem of data communication confidentiality and integrity. In this paper, the IPsec protocol stack design based on Linux kernel is researched, we optimized the processing flow of the data process. It has been proved that this IPsec protocol stack design can effectively meet the needs of network data communication encryption.

【Key words】: Linux; Communication encryption; Protocol stack

0  引言

在工业控制系统当中,大量工业控制设备、远程控制设备均基于IP网络通信。IP通信技术在给业务系统带来便利的同时,也带来了网络安全问题[1-4]。工业控制控制系统大量采用明文通信方式,存在数据被窃听或被篡改的风险,对系统的安全稳定运行造成极大的威胁[5-7]。如变电站内采用明文方式的MMS、Goose、SV协议进行通信[8-9];设备在线监测系统基于明文方式的IEC 61850协议进行通信等[10]。针对当前工控系统存在的问题,工信部曾在2011年451号文中要求需要采用数据加密措施实现工控系统的网络安全保护[11]。

VPN技术是解决当前网络通信问题的最为重要的技术之一,其基于对称加密算法以及非对称加密算法实现网络通信的机密性以及完整性保护[12]。本文开展了基于Linux内核的IPsec协议栈设计,本文首先分析了IPsec协议栈,其次对网络数据包的数据出入栈等环节的处理流程进行了优化处理以及详细说明。实践证明该IPsec协议栈设计可以有效满足网络数据通信加密的需求。

1  数据处理流程

在Linux系统当中,IPsec VPN数据包的处理流程如下图1所示。

在IPsec协议栈当中,ESP和AH为传输层协议,在传输层进行封装和解封装并处理调用了加密和解密算法实现对该类协议报文的处理[13]。

IPsec协议栈支持封装协议嵌套处置,即通过封装定义关联一个数据报文的下一个封装处理调用,实现数据报文的连续封装或者解封装处理。在传输模式下,经过解封装处理的报文会被发送至路由处理模块,重新查询路由和路由投递[14];在隧道模式下,经过解封装处理的报文会被系统软中断处理,处理结束之后发送至路由处理模块[14]。

如果VPN设备采用硬件加密卡实现数据包的加解密,需将需处理的报文放入加解密队列,并通知系统ESP数据报文处理结束。当硬件加密卡完成数据包的处理之后,通过中断方式返回到回调处理[15]。

1.1  实验材料数据包进入处理

数据包进行协议栈之后,系统将根据IP数据包的目的地址、安全参数索引等信息查找系统的安全隧道,并根据查找到的安全隧道信息进行安全隧道状态、生存期、重放窗口等处理,数据包的具体的处理过程如下图所示:

(1)安全封装包检查:根据数据包的nmask标记判断其是否为安全封装包,如果是则转入安全封装处理,如够将丢弃该数据包;

(2)安全策略索引SPI(Security Parameter Index)信息查找:根據数据包的目的地址、安全参数索引等信息提取安全策略索引;

(3)安全联盟库SAD(Security Association Databasee)信息查找:根据数据包的目的地址、协议以及安全策略索引SPI查找安全联盟库SAD。如果没找到对应的安全隧道,则丢弃该IP包,如果找到对应的安全隧道,则将根据安全隧道对安全封装数据包进行后续处理;

(4)数据包认证或者解密处理:根据安全隧道指定的安全封转协议、算法和密钥进行认证或解密处理;

(5)新数据包处理策略匹配:对认证或者解密之后的数据包进行再处理,包括数据包重新匹配安全策略库,检查其是否所有属于多重加密数据包;

(6)新数据包进入处置:调用数据包进入模块进行系统协议栈,进行路由转发等。

1.2  数據包外出处理

针对将要外出的数据包,系统将根据IP包的相关信息查找安全策略库,找到该IP包对应的外出处理策略,并根据安全策略对数据包进行处置,如下表所示:

对于可以向外发送的IP数据包,外出的数据包将根据策略提供的信息,查找安全隧道表,找到该IP包应该应用的安全隧道。如果找到了安全隧道,则检查安全隧道的状态、生存期。然后进行安全封装协议处理,数据包的具体的处理流程如下图所示:

(1)安全联盟库(SAD)信息查找:根据数据包的信息查找安全联盟库SAD,得到该数据包对应的安全隧道信息;

(2)安全隧道状态检查:检查安全隧道的生命周期等信息,对于超时等失效的安全隧道,需要释放并重新协商;

(3)数据包安全封装:根据安全策略信息,对数据包进行加密封装,增加ESP头或者AH认证头部信息;

(4)数据包校验:对数据包进行数字签名以及数据包校验;

(5)数据包外发:根据数据包的IP地址,查找系统的路由表,将数据包路由转发。

2  安全策略检查

安全策略检查将从IP包中提取源/目的IP地址、源/目的端口、下一层协议等信息,根据IP包的相关信息构造选择符,然后通过选择符查询进入安全策略库,找到第一个匹配项(策略),根据该匹配项所定义的策略对IP包进行检查和处理,数据包的处理结果分为三类,如下表所示:

在检查的过程当中,如果数据包中的数据包类型、数据包长度、IP版本、校验和等任何一项没有通过都将丢弃。对于处理结果为接受的数据包,根据IP包的源地址、目的地址和服务类型(tos)等信息查找路由表,并根据路由表的信息进行下一步处置。

3  结论

网络安全问题已经逐步成为威胁工控系统正常稳定运行的最为严重的风险之一,针对网络通信安全,VPN技术是保障网络通信机密性以及完整性保

护最为重要的方法之一,本文基于Linux内核开展了IPsec协议栈设计,本文首先分析了IPsec协议栈下的数据处理数据流图,其次对数据出入栈等环节的处理流程进行了优化处理以及详细说明。实践证明该IPsec协议栈设计可以有效满足网络数据通信加密的需求。

参考文献

尹肖栋, 严丹, 赵一凡. 论工业控制系统网络安全风险评估试点工作[J]. 软件, 2018, 39(09): 55-57.

周波, 熬洪, 高原. 军队无线网络安全体系构建思考[J]. 软件, 2015, 36(8): 17-21

杨盾, 王小鹏. 应对 DDoS 攻击的 SDN 网络安全特性研究[J]. 软件, 2018, 39(3): 175-180

王天明, 符天. 基于扩展OpenFlow流标结构增强SDN网络安全性研究[J]. 软件, 2018, 39(7): 01-05

李磊. 数据通信网络安全维护策略探讨[J]. 软件, 2018, 39(7): 191-193

赵澄, 方建辉, 姚明海. 工业控制网络中APT攻击检测系统设计[J]. 计算机测量与控制, 2018, 26(10): 250-254.

李艺. 工业控制网络安全防御体系及关键技术研究[D]. 华北电力大学(北京), 2017.

沃建栋. 基于IEC61850规约数字化变电站的建设与实施[D]. 浙江大学, 2017.

汪繁荣. 智能变电站网络通信流量实时监测系统及仿真研究[D]. 武汉大学, 2017.

刘爽. 基于分布式光纤温度传感器的配网在线监测系统的设计与实现[D]. 电子科技大学, 2018.

陈建辉. 工业控制系统带来信息安全建设巨大机遇——《关于加强工业控制系统信息安全管理的通知》学习与分析[J]. 中国信息安全, 2012(03): 52-56.

蒋华, 李康康, 胡荣磊. 一种基于strong Swan的IPsec VPN网关的实现[J]. 计算机应用与软件, 2017, 34(07): 79-84.

古红锋. IPsec VPN产品测试平台设计与实现[D]. 电子科技大学, 2018.

潘晓瑜. IPsec封装模式在不同场景下的应用[J]. 软件导刊, 2017, 16(12): 169-171.

孟祥也. 多层级服务网络的信息安全传输技术研究[D]. 北京理工大学, 2016.