智汇华云:IPSecVPN原理介绍与实现

IPSecVPN是目前应用最广泛、最安全的VPN,从个人手机到平板电脑再到路由器、企业的防火墙都能轻松的创建IPSecVPN,保护使用者的数据安全防止数据被劫持,嗅探,因此掌握IPSecVPN原理以及常见问题排查对于运维及开发人员来说都至关重要。本期华云数据“智汇华云”专栏将为您奉上IPSecVPN原理介绍与实现。

IPSec全称是InternetProtocolSecurity,是由(InternetEngineeringTaskForce)制定的一组开放的网络安全协议。它并不是一个单独的协议,而是一系列为IP网络提供安全性的协议和服务的集合,主要包括:

1.IKE(InternetKeyExchange因特网密钥交换协议)

2.ESP(encapsulatingsecuritypayload封装安全载荷)

3.AH(AuthenticationHeader认证头协议,无法经过NAT,基本不使用)

IKE因特网密钥交换

IKE协议有v1版本和v2版本,目前我们主要使用v1版本,v1版本是基于UDP500和4500(NAT使用)端口号的应用层协议。IKE协议的主要作用是交换IPSec对等体两端的SA(SecurityAssociation),SA一般包括:

1.使用哪种协议(AH、ESP还是两者结合使用)

2.协议的封装模式(传输模式和隧道模式)

3.认证算法(MD5、SHA-1)

4.加密算法(DES、3DES和AES128、aes256)对称加密,用于加密数据

5.pfsgroup(diffie-hellmangroup)modp1024,modp1536,modp2048非对称加密,用于安全交换密钥

6.特定流中保护数据的共享密钥以及密钥的生存周期等

IKEv1版本的协商过程分为两个阶段。

第一阶段叫做IKE(ISAKMP)SA,协商出来的SA给第二阶段使用,这一阶段又有两种协商模式,使用中一般使用主模式,比较安全

mainmode,安全,但是要6个数据包

aggressive(野蛮模式),只需要4个数据包,由于不安全容易被暴力破解,一般不使用

第二阶段叫做IPSecSA,协商出来的SA给用户数据流加密使用

封装协议(安全协议)

IPSec的封装协议有两种:

1.AH(AuthenticationHeader)认证头协议,协议号为51。工作原理是在每一个数据包的标准IP报头后面添加一个AH报文头,基本不使用。

2.ESP(encapsulatingsecuritypayload)封装安全载荷,协议号为50。工作原理是在每一个数据包的标准IP报头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾(ESPTail和ESPAuthdata)。

*与AH不同的是,ESP将数据中的有效载荷进行加密后再封装到数据包中,以保证数据的机密性,但ESP没有对IP头的内容进行保护。

封装模式

IPSec的封装模式也有两种,实际使用的时候双方协商出封装协议和封装模式,一并使用:

1.传输模式(host-to-hosttransportmode),在传输模式中,AH头或ESP头被插入到IP头与传输层协议头之间,保护TCP/UDP/ICMP负载。传输模式不改变报文头,基本不使用。

2.隧道模式(tunnelingmode),隧道模式下,AH协议的完整性验证范围为包括新增IP头在内的整个IP报文。ESP协议验证报文的完整性检查部分包括ESP头、原IP头、传输层协议头、数据和ESP报尾,但不包括新IP头,因此ESP协议无法保证新IP头的安全。ESP的加密部分包括原IP头、传输层协议头、数据和ESP报尾。

IPSec实现-控制面

上面讲的都是IPSec协议上的定义和规范,具体到IPSec在linux系统的实现上主要有各种swan(openswan,strongswan,libreswan),这些应用程序负责协商双方的加密算法,加密方式,隧道模式,路由策略。并通过linux的xfrm内核接口调用下发到数据面中。

IPSec实现-数据面

IPSec在Linux上有两种数据面,目前一般使用第二种Linux内核的XFRM框架,除非是很老的机器没有这个的时候会用第一种:

1.KLIPS,很古老,2.6版本以前的Linux版本使用。通过创建出虚拟IPSec接口,路由IPSec数据包,可以很方便添加firewall规则。

2.Linux内核XFRM/NETKEY(ipsectransform),执行具体的转发策略和封包解包,如果有offload还要执行offload提升速度。新版本内核也支持创建出虚拟IPSec接口,方便添加firewall规则。

控制面-Libreswan

这里我们主要讲一下libreswan,libreswan是目前使用较多的IPSec控制面实现,平常使用中需要掌握libreswan中的pluto和whack命令

1.pluto命令是IPsecIKEkeying守护进程,负责自动化ipsec之间的SA协商。

启动pluto守护进程命令:ipsecpluto

2.whack命令是用户和pluto守护进程进行交互使用的命令

#添加一条ipsec连接(vpn1的具体配置写在文件中)

ipsecwhackaddconnvpn1--configipsec.config

#允许pluto守护进程开始监听

ipsecwhack--listen

#初始化ipsec连接

ipsecwhack--initiate--namevpn1

数据面-XFRM

Linux内核通过XFRM框架来支持IPSec的数据面实现,xfrm框架支持Linux的网络namespace。

xfrm使用两个数据库记录ipsec的数据面信息。

1.xfrm策略,存储在内核的SPD(securitypolicydatabase)中。告诉ipsec哪些流量需要进行ipsec处理。

2.xfrm状态,存储在内核的SADB(securityassociationdatabase)中。表示单向流量,包含加密密钥,标志,请求ID,统计信息等信息。

手动创建ipsec隧道

ipxfrm命令可以手动创建两台之间使用ipsec隧道通信,跳过libreswan的控制面SA协商

192.168.0.6<=======>192.168.0.28,脚本如下:

A=192.168.0.6

B=192.168.0.28

ipxfrmstateaddsrc$Adst$Bprotoespspi0x00000301modetunnelauthmd50x96358c90783bbfa3d7b196ceabe0536b\

encdes3_ede0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df

ipxfrmstateaddsrc$Bdst$Aprotoespspi0x00000302modetunnelauthmd50x99358c90783bbfa3d7b196ceabe0536b\

encdes3_ede0xffddb555acfd9d77b03ea3843f2653255afe8eb5573965df

ipxfrmpolicyaddsrc$Adst$Bdiroutptypemaintmplsrc$Adst$Bprotoespmodetunnel

ipxfrmpolicyaddsrc$Bdst$Adirinptypemaintmplsrc$Bdst$Aprotoespmodetunnel

ipxfrmpolicyaddsrc$Adst$Bdirinptypemaintmplsrc$Adst$Bprotoespmodetunnel

ipxfrmpolicyaddsrc$Bdst$Adiroutptypemaintmplsrc$Bdst$Aprotoespmodetunnel

tcpdump抓包

抓包看两台机器之间的ping包,可以发现ping包已经被加密为ESP报文。

您当前使用的浏览器版本过低,导致网站不能正常访问,建议升级浏览器

THE END
1.IPSec基本原理要建立一对IPSec SA,IKEv1需要经历两个阶段:“主模式+快速模式”或者“野蛮模式+快速模式”,前者至少需要交换9条消息,后者也至少需要6条消息。而IKEv2正常情况使用2次交换共4条消息就可以完成一对IPSec SA的建立,如果要求建立的IPSec SA大于一对时,每一对IPSec SA只需额外增加1次创建子SA交换,也就是2条消息https://support.huawei.com/enterprise/zh/doc/EDOC1100203254/b436f4a5/IPSec%E5%8D%8F%E8%AE%AE%E6%A1%86%E6%9E%B6.htm
2.EVPNL2VPNoverSRv6BE技术介绍6W100新华三集团SRv6 SID C E 2 C E 1 SRv6 SID 建立 SRv6 PW 表项学习 报文转发 SRv6 PW 的建立过程 MAC 地址学习 生成 MAC 地址 表 SRv6 BE 报文转发方式 2 工作机制概述 P E 3 C E 3 SRv6 SID 类型 携带 SID 的 BGP EVPN 路由 SID 的功能 End.DX2 SIhttps://www.h3c.com/cn/Service/Document_Software/Document_Center/Home/Routers/00-Public/Learn_Technologies/Technologies/EVPN_L2VPN_over_SRv6_BE_Tech-20000/?CHID=1039628
3.物联网安全加速技术:面向低功耗设备的优化功耗管理技术的结合:为了进一步优化低功耗设备的安全性能,可以将功耗管理技术与安全加速技术相结合。例如,通过动态调整设备的工作频率和电压,可以降低其在处理安全任务时的功耗。此外,还可以采用休眠模式等节能技术,以在不需要实时处理安全任务时降低设备的功耗。 https://www.ctyun.cn/developer/article/622017579847749
4.路由器AUTO加密算法mob64ca13fd163c的技术博客2) 安全协议的类型:IPSec定义了两种安全协议、AH和ESP、 3) 源IP地址 ISAKMP/IKE阶段2 的传输集: 数据连接的传输定义了数据连接时如何被保护的。 安全协议:AH协议 ESP协议 连接模式:隧道模式 传输模式 加密方式:对于ESP而言有DES、3DES、AES-128、AES-192、AES-256 https://blog.51cto.com/u_16213603/12866266
5.Apple设备的CiscoIPsecVPN设置混合认证,服务器提供证书,客户端提供预共享密钥,进行 IPsec 认证。要求用户认证(通过xauth提供),包括认证方式的用户名和密码以及 RSA SecurID。 认证群组 Cisco Unity 协议根据一组常见参数,使用认证群组来分组用户。应创建一个针对用户的认证群组。对于预共享密钥认证和混合认证,群组名称必须在设备上配置,并且使用群组的https://support.apple.com/zh-cn/guide/deployment/depdf31db478/1/web/1.0
6.“信息安全”课程习题及参考答案网络信息安全doc7,阐述如何分别使用常规加密算法和公开密钥加密算法对单向鉴别的例子——电子邮件进行鉴别的原理,以及两种方法的优缺点。 如果使用常规加密方法进行发方和收方的直接鉴别,密钥分配策略是不现实的。这种方案需要发方向预期的收方发出请求,等待包括一个会话密钥的响应,然后才能发送报文。 http://read.cucdc.com/cw/62655/104021.html
7.IKE密钥交换原理消息③是发起方根据已确定的IKE策略,把自己的验证数据(包括所采用的身份认证机制中的密钥,证书等)发给响应方,让响应方最终完成对发起方的身份验证。至此整个信息交换过程就完成了,进入第二阶段IPSec SA建立了. 由野蛮模式和主模式的对比可以发现,与主模式相比,野蛮模式减少了交换信息的数目,提高了协商的速度,但是没https://www.jianshu.com/p/ba32be6bf672
8.网络中心职业院校数字校园的技术系统包括数字资源、教育教学、管理服务、支撑条件、网络安全五个部分。 数字资源的建设与应用要根据自身实际突出专业特色、校企合作特色,遵循社会服务、优先引入、慎重自建、边建边用、建用结合、开放共享的原则。 教育教学信息化应以人才培养模式革新为主线,适应“互联网+职业教育”发展需要,创新产http://www.xtzy.com/wlzx/detail.jsp?public_id=153330
9.详解IP安全:IPSec协议簇AH协议ESP协议本文详细阐述了IPSec协议簇,包括AH和ESP两种安全协议的功能、IKE协议的作用以及IPSec的实现方式,重点介绍了传输模式和隧道模式。IPSec旨在为IPv4和IPv6提供端到端和网络层的安全保障,通过IKE协议进行密钥管理和交换,AH提供完整性与认证,ESP提供加密和完整性保护。 https://blog.csdn.net/web22050702/article/details/137861215
10.overipsecVPN包括华为软件客户端与微软自带客户端两种配置华为AR系列路由器 实现l2tp over ipsec VPN【包括华为软件客户端与微软自带客户端两种配置方法】 http://ccieh3c.com/?p=1358 http://pan.baidu.com/s/1i5Hed5F 掌握目标 1、通过对路由器配置,实现L2TP over ipsec 配置【包括微软与华为自己软件客户端的实现】 https://hqyman.cn/post/589.html
11.网络线条网络安全专业试题库55. 防火墙的安全性包括:___、___、___、___和___五个方面。 56. 交换式局域网从根本上改变了“共享介质”的工作方式,它可以通过支持交换机端口结点之间的多个__ ,达到增加局域网带宽,改善局域网的性质与服务的目的。 57. Cisco设备需要为特权模式的进入设置强壮的密码,不要采用enable password设置密码,https://www.yc00.com/xiaochengxu/1690418665a347205.html
12.北邮网院通信新技术作业答案6篇(全文)17、功能不良的家庭结构模式包括() A.疏离的B.缠结的C.清晰的D.等级失调的 本题参考答案: A B D 18、父母和一个已婚子女或未婚兄弟姐妹生活在一起所组成的家庭模式。也包括父或母和一对已婚子女及其孩子所组成的家庭,一对夫妇同其未婚兄弟姐妹所组成的家庭() https://www.99xueshu.com/w/file5jvt80ns.html
13.多接入协议数据单元会话管理的制作方法3)ran将n2消息传送到新amf。n2消息包括n2参数和注册请求。注册请求可以包括注册类型、订户永久标识符或临时用户id、安全参数、nssai、mico模式默认设置(或配置)等。 [0170] 当使用5g ? ran时,n2参数包括与ue正驻留的小区相关的位置信息、小区标识符和rat类型。 https://www.xjishu.com/zhuanli/62/202080020586.html
14.陕西调度规程考试题(精选6篇)SA:一套专门将安全服务/密钥和需要保护的通信数据联系起来的方案。它保证了IPSec数据报封装及提取的正确性, 同时将远程通信实体和要求交换密钥的IPSec数据传输联系起来。SA解决的是如何保护通信数据、保护什么样的通信数据以及由谁来实行保护的问题。 1.2 IPSec的两种模式https://www.360wenmi.com/f/fileff2kbqqt.html
15.水闸自动化监控系统控制结构包括3个层次,3个模式,分别为集中控制(2)IPSec的密钥管理包括密钥的确定和分发。IPSec支持哪两种密钥管理方式。试比较这两种方式的优缺点。 (3)如果按照以下网络结构配置IPSecVPN,安全机制选择的是ESP,那么IPSec工作隧道模式,一般情况下,在图中所示的四个网络接口中,将哪两个网络接口配置为公网IP,哪两个网络接口配置为内网IP。 https://www.educity.cn/souti/evslw56d.html
16.详解IPSec介绍当安全协议同时采用AH和ESP时,AH和ESP协议必须采用相同的封装模式。 加密算法 加密是一种将数据从明文转换成无法读懂的密文的过程,接收方只有在拥有正确的密钥的情况下才能对密文进行解密,从而保证了数据的私密性。 IPSec VPN工作过程中涉及数据加密(IP报文加密)和协议消息加密(ISAKMP消息加密)两种情况。 https://www.isolves.com/it/wl/zs/2021-01-12/35362.html
17.浅谈IPsecIKE和IKEv2的基本原理封装模式 IPsec支持两种封装模式:传输模式和隧道模式。 传输模式(Transport Mode) 该模式下的安全协议主要用于保护上层协议报文,仅传输层数据被用来计算安全协议头,生成的安全协议头以及加密的用户数据(仅针对ESP封装)被放置在原IP头后面。若要求端到端的安全保障,即数据包进行安全传输的起点和终点为数据包的实际起点和https://www.intsavi.com/page98.html?article_id=358&pagenum=all
18.IPsec与传输模式不同,在隧道模式中,原IP地址被当作有效载荷的一部分受到IPSec的安全保护,另外,通过对数据加密,还可以将数据包目的地址隐藏起来,这样更有助于保护端对端隧道通信中数据的安全性。 ESP隧道模式中签名部分(完整性检查和认证部分)和加密部分分别如图所示。ESP的签名不包括新IP头。 https://baike.sogou.com/v619370.htm