IPsec 原理和应用简介(一篇搞定~)
IPsec(InternetProtocolSecurity)是为IP网络提供安全性的协议和服务的集合,是一组基于网络层的,应用密码学的安全通信协议族,不具体指某个
IPsec(Internet Protocol Security)是为IP网络提供安全性的协议和服务的集合,是一组基于网络层的,应用密码学的安全通信协议族,不具体指某个协议。它是 VPN(Virtual Private Network,虚拟专用网)中常用的一种技术。由于IP报文本身没有集成任何安全特性,IP 数据包在公用网络如 Internet 中传输可能会面临被伪造、窃取或篡改的风险。通信双方通过 IPsec 建立一条 IPsec 隧道,IP 数据包通过 IPsec 隧道进行加密传输,有效保证了数据在不安全的网络环境如 Internet 中传输的安全性。
IPsec 可以分为配置和运行两个过程。配置过程可以手工进行也可以通过软件自动配置,比如 strongSwan,LibreSwan,OpenSwan,FreeSwan等;
【资料图】
IPsec工作时需要的数据:
安全策略(Security Policy,缩写SP),定义了什么样的数据要进行ipsec处理,相关的配置被存储到SPD(Security Policy Database)中。
安全关联(Security Association 缩写SA,有些文章翻译为"安全联盟"),是建立ipsec通信所需的相关参数。比如加密密钥、认证密钥等,保存在SAD(SA Database)中。
SP 描述了需要做什么;而 SA 描述了它应该如何实现。一对SA和SP负责一个方向的数据处理,双向都需要IPsec就需要两对SA和SP。建立SA,手工配置又复杂又不安全,生产上应该没人会用。利用软件自动配置是首选,软件配置是通过 Internet Key Exchange 协议(有IKEv1 和 IKEv2两个版本) 自动协商。IKE是一个复合协议,协议建立在Internet安全联盟和密钥管理协议ISAKMP定义的框架上,是基于UDP(User Datagram Protocol)的500 端口的应用层协议,在NAT环境下会切换为4500端口。IKE的精髓在于它永远不在不安全的网络上传送密钥,而是通过一些数据的交换,通信双方最终计算出共享的密钥,并且即使第三方截获了双方用于计算密钥的所有交换数据,也无法计算出真正的密钥。其中的核心技术就是DH(Diffie Hellman)交换技术。
DH方法针对的是以下困难的局面:
Alice 和 Bob 想协商一个密钥,用于对称加密。但是他们之间的通信渠道是不安全的。所有经过此渠道的信息均会被敌对方Eve看到。为了防止密钥泄露,Diffie 与 Hellman提出以下密钥交换协议:
有两个全局公开的参数,一个素数p和一个整数 g ,g 是 p 的一个原根。
1. Alice 和 Bob 先对 p 和 g 达成一致,而且公开出来。Eve 也就知道它们的值了。
2. Alice 取一个私密的整数a, 不让任何人知道, 发给 Bob 计算结果:A=ga mod p. Eve 也看到了A的值。
3.类似,Bob 取一私密的整数 b , 不让任何人知道, 发给Alice计算结果B=gb mod p. 同样 Eve 也会看见传递的B是什么。
4. Alice 拥有的信息为g、p、a、B 计算出 K=Ba mod p=(gb)a mod p=gab mod p.
5. Bob 拥有的信息为g、p、b、A 也能计算出 K=Ab mod p=(ga)b mod p=gab mod p.
6. Alice 和 Bob 现在就拥有了一个共用的密钥K.
7.虽然Eve也看见了p、g、A、B 但是鉴于计算离散对数的困难性,他无法知道a和b 的具体值,所以Eve就无从知晓密钥K是什么了。
IKE有三个组件:(了解一下不细聊)SKEME,Oakley ,ISAKMP。
SKEME:实现公钥加密认证的机制
Oakley:基于到达两个对等体间的加密密钥的机制
ISAKMP:在两个实体间进行分组格式及状态转换的消息交换的体系结构。
IKE协商分两个阶段:第一阶段,用来协商自己用的连接信息,被称为 IKE SA(或 ISAKMP SA ),期间需要完成身份验证和密钥信息交换。身份验证的方法Public Key Authentication
Pre-Shared-Key Authenticiation (PSK)
Extensible Authentication Protocol (EAP) 用户名密码
eXtended Authentication (XAuth)
这个阶段有主模式(Main Mode)和野蛮模式(Aggressive Mode)两种协商方法。感兴趣的可以自行搜索或参考文后的扩展链接了解。第二阶段,是在第一阶段建立的 IKE SA 的保护下来确立 IPsec SA,使用快速模式。根据配置的 AH/ESP 安全协议等参数协商出 IPsec SA。协商出IPSec 需要使用的认证算法和加密算法及相关密钥(1)认证算法 IPSec可以使用三种认证算法MD5(Message Digest 5):MD5 通过输入任意长度的消息,产生 128bit 的消息摘要。SHA-1(Secure Hash Algorithm):SHA-1 通过输入长度小于 2 的 64 次方比特的消息,产生 160bit 的消息摘要。SHA-2:SHA-2 算法相对于 SHA-1 加密数据位数有所上升,安全性能要远远高于SHA-1(2)加密算法加密算法实现主要通过对称密钥系统,它使用相同的密钥对数据进行加密和解密。IPSec使用以下三种加密算法:DES:使用 56bit 的密钥对一个 64bit 的明文块进行加密。3DES:使用三个 56bit 的 DES 密钥(共 168bit 密钥)对明文进行加密。AES:使用 128bit、192bit 或 256bit 密钥长度的 AES 算法对明文进行加密。
【文章福利】小编推荐自己的Linux内核技术交流群:【749907784】整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,有需要的可以自行添加哦!!!(含视频教程、电子书、实战项目及代码)
工作模式有隧道模式(Tunnel mode)和传输模式(Transport mode)。
封装协议有 AH (Authentication Header头部验证) 和 ESP (Encapsulating Security Payload安全载荷封装)两种,协议号分别为51、50。IPSEC 使用 ESP 来支持加密,使用 AH来保护报文的完整性。二者可以单独使用, 也可以一起使用。
AH 认证头协议:鉴别头 AH:(不提供保密性,只对整个IP数据包提供保护)无连接数据完整性:通过哈希函数产生的校验来保证数据源认证:通过计算验证码时加入一个共享密钥来实现抗重放服务:AH报头中的随机序列号可以防止重放攻击
ESP 封装安全载荷协议:除提供 AH 认证头协议的所有功能之外,还有数据保密和有限的数据流保护。ESP 协议允许对 IP 报文净荷进行加密和认证、只加密或者只认证,ESP 没有对 IP头的内容进行保护。保密服务通过使用密码算法加密 IP 数据包的相关部分来实现。数据流保密由隧道模式下的保密服务提供。ESP 通常使用 DES、3DES、AES 等加密算法实现数据加密,使用 MD5 或 SHA1 来实现数据完整性认证。IPsec的数据封包方式注:下边的图只是示意图,AH 头,ESP 头等还有其他细节结构,并未体现出来,详情请自行搜索。AH 协议在两种模式下的封装:
ESP 协议在两种模式下的封装:
兴趣流量的识别和封装,由内核空间网络栈的 xfrm (读作transfrom)框架提供支持,处于Netfilter的处理路径上:
上图是知名的 netfilter 框架处理过程图的一部分,可以清楚的看到:input 的数据在 xfrm lookup 处,发现是需要解码的数据,解码后重新进入网络栈处理。
output 的数据经过 xfrm lookup 处,发现是需要编码的数据,编码后重新进入网络栈发出。
下边这个图看的可能更清晰些:
查看 xfrm 的状态,策略,监控可以使用ip命令:
关于 IPsec 做 VPN:
传输模式,只是对原始IP包的数据部分进行处理,目的IP并没有变化。传输模式只为高层协议提供安全服务,提供端到端的数据保护,本身并不能做VPN。但是
常用的VPN比如 L2TP over IPsec, 即在 IPsec 的传输模式+ESP协议下,去跑 L2TP VPN:(由外到内的数据封装)
IP/UDP(4500)/ESP/UDP(1701)/L2TP/PPP/IP/TCP/HTTP
把其他协议(比如GRE等)跑到传输模式的ESP加密的模式上,用ESP做加密,然后用其他协议做功能,也是常见的用法。
隧道模式,是对原有的整个 IP 包进行处理,外层又封装了一层IP头。可以做 VPN用,但因为之前 IPsec 隧道模式认证和分配IP的协议标准化不太好,所以也不常用,现在不知是否可以直接使用了。
关于 IPsec 的 NAT 穿透:
注:NAT 有很多类型,这里指的是 Port Address Translation (PAT)型的NAT,是和端口相关的 NAT ,一般家庭网络都是这种 NAT。
AH 主要用于保护消息的完整性,其验证范围包含IP报文头,而 NAT 修改 IP 报文头会导致 AH 检查失败,因此使用 AH 保护的 IPSec 隧道是不能穿越 NAT 网关的。
ESP协议保护的报文不存在该问题,因为 ESP 保护的部分不包含IP报文头(对隧道方式而言是外层IP报文头)。
因为 AH/ESP 是 IP 层有协议号的协议,和 TCP、UDP 是同级协议,本身没有端口号,在标准的 PAT-NAT下也无法工作。
但是,还记得之前 IKE 协商时如果发现 NAT 环境会切换到 UDP 的 4500 端口么。IKE 用完了 UDP 的4500端口,后边 IPsec 真正工作时也会把自己封到 UDP-4500 端口的数据中,以支持 NAT 。这依靠 IPsec 的 NAT-Traversal,简称 NAT-T,NAT-Discovery ,简称 NAT-D 机制来实现的。
最终得到结论,只有ESP协议 配合UDP4500端口封装才能支持NAT环境。
关于本机的NAT配置对IPsec的影响
由下图可知,NAT处理是在IPsec之前的,如果NAT改变了数据的IP地址,IPsec有可能就识别不到相关数据流了,所以在网关上配有NAT以支持内网机器联网的同时,又要通过IPsec与远程网络打通时,一定要注意NAT的配置,不要对内网打通的流量做NAT。
可以参考下边这个链接,通过strongSwan在Ubuntu系统上做个配置示例,
https://www.digitalocean.com/community/tutorials/how-to-set-up-an-ikev2-vpn-server-with-strongswan-on-ubuntu-22-04
这个示例配通后,本机的请求会被IPsec封装,传输到远端,在远端做NAT以使用远程服务器的IP访问网络。配置过程中注意服务器本机的防火墙配置。
下图来自 strongSwan文档,可以用来解释好几种应用情景
左边10.1.0.0/16网络,代表一个办公区的内网,网关是moon。
右边10.2.0.0/16网络,代表另一个办公区,网关是sun。
中间192.168.0.0/24网络代表公网,画的是直连,但我们应该理解成中间经过很多路由器和不同的网段。
下边carol和dave代表能联通公网的主机,比如我们家里的电脑。
下边winnetou代表公网上的一台服务器。
情景一,安全加密(Host-to-Host)
图中moon和sun之间,想安全通信不被别人拦截数据。他们之间就可以打通IPsec隧道(传输或隧道模式,兴趣流 192.168.0.1 - 192.168.0.2),对他们之间的通信做加密。被加密的数据,可以是L2TP,GRE等其他VPN或隧道协议,为其他协议提供安全支持和NAT穿越等服务。
情景二,远程访问(Host-to-Site)
比如图中carol在家里,想访问左边的办公区的网络中的所有设备。carol和办公区的网关moon之间打通 IPsec 隧道(隧道模式,兴趣流 192.168.0.100-10.1.0.0/16),carol之间就可以向目的网段的服务器地址比如10.1.0.10发送数据了。
情景三,内网互联(Site-to-Site)
比如右边办公区的bob想直接访问左办公区的alice,那就在moon和sun之间打通IPsec隧道(隧道模式,兴趣流10.1.0.0/16-10.2.0.0/16),他们相互通信的数据包会被自动传输到对端。
情景四,隐藏IP(Host-to-Site + SNAT)
比如carol不想用自己的IP上网,想用winnetou的IP,那就在他们之间打通IPsec隧道(隧道模式,一般会配置一个VIP作为默认网关,兴趣流VIP - 0.0.0.0/0), 在winnetou上开通数据转发功能,并对数据包做SNAT,发出前把源地址替换成自己的192.168.0.150。
原文作者:漫跑的小兔
[ 相关文章 ]
IPsec(InternetProtocolSecurity)是为IP网络提供安全性的协议和服务的集合,是一组基于网络层的,应用密码学的安全通信协议族,不具体指某个
“趁着孩子还没开学,来到月牙岛,白天有玩的,晚上有看的,骑骑自行车、看看花灯、猜猜灯谜,晚上多晚都不怕,从我们进月牙岛景区,就看到有
1、20世纪50年代,重庆江津钟山古镇20岁的农民刘国江爱上了比他大10岁的“漂亮寡妇”徐朝清。2、为了躲避世人的流言蜚语,他们携手私奔到了森
1、1898年(光绪二十四年),谭嗣同参加戊戌变法。2、变法失败后,于1898年(光绪二十四年)9月28日在北京宣武门外
天地在线(002995)02月06日在投资者关系平台上答复了投资者关心的问题。
大家好!我是胖虎,「胖虎看西游」每天为你带来不一样的梦幻西游故事。昨日,胖虎报道了曲阜孔庙千万新老板加盟的消息,引发了大家的各种猜测
1、宝盖草(学名:LamiumamplexicauleL )又名:珍珠莲、接骨草、莲台夏枯草等,属管状花目,唇形科一
1、SMTown是对韩国娱乐工厂S M Entertainment旗下所有艺人的总称,也可称为SM家族,发行SMTo
东部三强争霸,76人补强短板冲冠,黑马褪色,詹姆斯有望双喜临门,湖人,三强,雄鹿队,76人队,中国篮球,美国篮球,勒布朗詹姆斯,孟菲斯灰熊队,国际
(新华全媒+)灯会璀璨夜流光溢彩庆元宵(2)
詹姆斯北京时间2月3日,NBA常规赛,湖人112-111险胜步行者,步行者遭遇4连败。詹姆斯本场再砍27分,生涯总得分来到38352分距离超越贾巴尔(38387
1、东芝BCD-326WTB是一款电子产品。2、型号是BCD-326WTB。文章到此就分享结束,希望对大家有所帮助。
00-1010平民职业推荐:德鲁伊、术士、牧师、萨满。1 游戏中需要氪金的英雄很多,氪金英雄的实力相当不错。2 新手玩家
多车相撞!现场火光冲天,路人听到爆炸声!目前已解除交通管制
1、昌邑市城市建设综合开发有限公司于2004年07月12日在昌邑市市场监督管理局登记成立。2、法定代表人尹光勋,公司经营
1、《中华姓氏文化大典(总论)》是2014年大象出版社出版的图书。2、作者是李吉。文章到此就分享结束,希望对大家有所
1、魔环为大型网络游戏《魔兽世界》中的一个副本。2、魔环副本位于游戏中苔原西北方的考拉达岛上。文章到此就分享结束,希望对
1、有志不在年高,无志空长百岁,俗语,意思是指只要有远大志向,就算年纪大也没事,一个没有远大志向的人,即便活到很大的岁数
1、文理类录取分7个批次进行1 本科提前批院校:7月10日至7月15日录取;2 本科一批院校:7月17日至7月22日
元宵节前大检查守护冰城百姓“舌尖上的安全”
[ 相关新闻 ]
Copyright 2015-2022 北冰洋医院网 版权所有 备案号:沪ICP备2020036824号-3 联系邮箱:562 66 29@qq.com