GRE和IPSEC VPN的理解

最近在讨论新区网络连接的时候,提到了VPN,翻到了以前学习做的笔记,分享出来给大家参考

GRE(Generic routing encapsulation)
GRE是一种最传统的隧道协议,GRE完成需要3次封装。
1、接收原始的ip数据包(一般都是私有地址)
2、将原始Ip数据包封装成GRE协议(封装成的ip包头就是gre接口地址)
3、将整个gre数据包外层再封装公网IP包头(就是公网地址)
传输数据包格式如下:
私有ip数据包 #将私有ip和数据一起封装
GRE包头 私有ip数据包 #将数据封装成gre包
公网ip GRE包头 私有ip数据包 #公网可收发的数据包

GRE这种隧道协议,最大的缺点就是数据不安全,明文,所以我们一般在公网上传输的数据都会有加密技术的。
加密技术分为两部分,加密算法和密文

加密算法是指在对密码从原始的明文替换成其他显示方式的过程就称为加密算法,加密算法可以是将密码替换成字母,数字。所以加密算法可以公开,因为别个知道你的加密算法是替换成字母,但是不知道你要替换成哪个字母(除了暴力破解)

密文,密文才是我们要保存好的,一旦被泄露,就没有安全可言了。

私钥算法,指对数据进行解密和加密的密钥是完全相同的(就是可逆的),这种算法也可以称为对称加密算法
公钥算法,将密码加密是使用一个密钥,这个密钥称为公钥,但是对密文解密必须要另外一个密钥来解,这个密钥就俗称私钥,公钥只能加密,不能解密,私钥才能解密,这种也称为非对称加密算法。

对称的加密算法(私钥算法)
DES(data encryption standard)
DES有三种形式 分为DES(40-bit) DES(56-bit) 3DES(3倍56bit)一般加密的长度越长,安全性越高,所以用的最多的就是3DES
AES(advanced encryption standard)
也有三种方式,分为AES 128 AES 192 AES 256 当然同上,256位的最长,安全性最高。

HASH值的算法

HASH值是指对密码进行一定的算法生成的一个值,而通过该值是无法逆推出密码的。目前比较流行的HASH算法有
MD5,将任何数据通过计算后输出128位长的hash值
SHA-1,将任何数据通过计算后输出160位长的hash值

IPsec(IP security)

IPsec比GRE多了数据的加密等安全功能,他是一个类似OSI一协议框架,为了完成数据的安全传输,主要用了下面三个协议,目前只支持IPV4单播(unicast)

IKE(internet key exchange)
ESP(encapsulationg security protocol)
AH(authentication header)

三个协议主要完成两个工作,IKE主要用来保证密钥的安全传输,交换以及存储,并不对用户的实际数据进行操作。
ESP和AH主要是对用户的数据进行加密。是直接操作用户的。

IKE主要用来保证密钥的安全,交换,和存储,在交换密钥的过程中,一般有三种,共享密钥,PKI(CA)证书 RSA,一般我们都只用pre-shared keys。密钥共享后,要保证安全,我们就要对密钥对过算法生成一定长度的字符,在这里我们使用的是diffie-hellman的密钥算法,有三种长度可选,group1(768bit) group2(1024) group5(1536)

SA(Security Association)安全关联
ipsec vpn的所有会话都是在通道中传输的,包括协商密钥,传递用户的数据,这样的通道就称为SA,由于ipsec vpn分为了两个阶段(协商密钥,传递数据)所以SA会有两个即
IKE SA和IPSEC SA

IKE SA 也是整个IPSEC VPN的第一阶段,它主要的工作也是要保证自己协商流量的安全(如:共享的密钥,加密算法的方式等,例:第一阶段我和对端协商的共享密码是123,加密方式是AES,双方协商好了过后,然后再对协商好的数据进行加密和hash算法)
名词解释
1、认证方式,上面已经说过了,一般是用共享密钥的方式。
2、加密算法,对密码进行替换的一种算法,有DES和AES两种
3、HASH算法,对密码生成一种字符串来检验是否被篡改过,有sha-1和md5两种算法.
4、密钥算法,将密码生成一定长度的字符串的算法,一般是diffie-hellman。
5、NAT穿越,对于支持nat穿越的设备,一般ipsec的端口是udp 4500
上面说了这么多的算法,个人理解为先设置一个共享的密钥,再将这个密钥通过diffie-hellman算法算成其中一种长度的密码,然后再进行加密换算,最后再对加密后的后的密文进行HASH计算。

IPSEC SA 是整个IPSEC VPN的第二阶段,主要是对用户的数据进行操作的,他主要完成了对用户的数据进行了加密算法和HASH的算法,第二阶段就要有ESP和AH来对用户的数据进行认证和加密,但是AH不能对数据进行加密,那么我们一般都是用ESP来进行认证和加密了。

然后再说说IPSEC VPN的MODE 分两种,第一是tunnel Mode 第二种是transport mode 我们一般都是隧道模式。
基本上整个IPsec vpn就差不多是为些了,通过上面的认证,封装等,最终我们的数据包格式如下:
新ip包头 esp包头{ 原始ip包头 (数据 esp trailer)} espauth
#()表示被加密的数据 #{}被认证的数据 这是esp协议封装的ipsec vpn

ESP协议号50,AH协议号51

NAT-T(NAT穿越)

因为IPSEC协议框架里面ESP是使用的IP协议号50来表示的,所以没有TCP/UDP说,那一般的企业都是PAT上网的,PAT都是对TCP/UDP的端口进行复用的,因为ESP是没有NAT复用标识的。那就无法穿越NAT,那我们在ESP外层加上UDP的500端口进行封装,这样就可以穿越NAT了,怎么判断是否要NAT穿越的,这是在IKE第一阶之前,会发一个IKE的协商包,协商包会发送SA的地址,进行类似HASH的运算,如果接收方收到的数据经过换算出不是原始的IP,那们就认为经过了NAT,如果有NAT,那UDP的端口也会从500变成4500,然后双方就会采用UDP4500对原始的ESP数据进行封装。因为TCP要面向连接,太麻烦,所以是采用的UDP所以整个包头应该是
新ip包头|UDP包头|ESP包头|原始包头|数据|
当然,数据是加密的,原始包头作为ESP包头的数据是被认证的。

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值