Cisco ❀ IPsec原理与加密算法

IPSEC VPN-internet protocol security virtual private networks

IPSEC是一种加密的框架,不是加密协议,规定了加密的步骤、流程

1、IPSEC的性质:

  1. 私密性:使用对称加密算法和非对称加密算法
  2. 完整性:使用Hash散列函数

源认证:数字签名、Hmac(密钥化Hash)-共享密钥,对发送数包的源进行认证,pre-share-认证对端是经过授权的
不可否认性:数字证书(引入了信任第三方)

一、加密算法:
对称加密算法:DES(56bit)、3DES(168bit)、AES(128,192,256bit)
– 块加密:将数据分为固定大小,例如DES使用8字节
– 电子密码本
– 加密块链接
– 流加密:逐bit进行加密
非对称加密算法:RSA(主流)、DH(ipsec)、EC(手机 PDA等移动设备)、RC 2/3/4/6–对网页流加密(高度集支持软件,加密位数较低,密钥长度512~4096)

二、Hash函数:认证算法
函数特点:

  1. 不可逆性
  2. 雪崩效应
  3. 不等长输入,等长输出
  4. 冲突避免(尽量使用SHA-1)
    MD5(128bit)、SHA(160bit)

数字签名:将数据使用hash认证算法计算得到hash值使用非对称算法中私钥加密
数字证书:由可信的第三方颁发(CA机构),内容包含了用户的对称加密算法,公钥,公司名,地址
为了保证数据传输的安全性:传递的报文包括密文,密钥包—公钥加密、数字签名—私钥加密、数字证书

三、IPsec VPN:使用ipsec来实现远程接入的一种VPN技术
IPsec VPN星型拓扑:需要两次加密
一个分支站点的数据要抵达另一个分支站点,首先需要加密数据送往中心,数据在中心站点第一次被解密,查看路由判断出隧道,然后再中心站点被第二次加密,并且送往目的站点,目的站点收到数据后,再进行第二次解密,由于数据被两次加解密,所以大大增加了延时
这里写图片描述
这里写图片描述

IPsec:使用了三种协议:IKE、ESP、AH

  1. IKE:互联网密钥交互协议
  2. ESP:封装安全负载协议
  3. AH:认证头部

IPsec VPN模式:tunnel(隧道模式)、transport(传输模式)

  1. 隧道模式:通信点不等于加密点
    IP公网头部+ESP+IP头部+DATA
  2. 传输模式:通信点等于加密点
    IP头部+ESP+DATA,只对数据加密,不能再公网内传递
    Site-to-site VPN:隧道模式
    Remote-access VPN:远程拨号VPN,隧道模式

四、ESP-加密安全负载协议:基于IP协议封装, 协议号为50,源于IPV6中,支持加密和认证。可以保证数据的私密性、完整性和源认证
1、ESP头部:包含了三个字端
2、SPI:安全参数索引,一般为4个字节,SPI使用玩真的SA(安全关联)的标记,通过接收到报文中的SPI级到了该报文使用什么样的算法进行安全加密、认证(通过查看本地具有相同的SPI的SA内容,IKE就能过保障一方出向的SPI等于对方入向的SPI)
3、S.N:安全序列号,进行简单的重复性检测,防止重放攻击(插入相同的密文),序列号加1
4、IV:初始化向量,固定8字节,再块加密的加密块链接中与初始化的明文报文进行异或运算(保证了相同的明文产生不优的密文)
5、ESP尾部:包含了padding、padding length、next-header(从原始的IP头部中协议字端复制而来)
6、ESP认证字端:ESP数据与随机值进行hash运算所得到的hash值—hmac

发送数据ESP的处理过程:
增加ESP头部和ESP尾部
加密(针对DATA数据和ESP尾部进行加密)
认证(针对ESP头部和已经加密的数据进行hash运算)
重算CRC

五、AH-认证头部:只认证不加密,并且认证之后的hash值仍存在认证字段中,AH基于IP封装,封装协议号为51,会对IP头部进行认证。
存在两个问题:

  1. 不加密,不能保证数据的私密性
  2. 对IP头部进行认证,不支持NAT

SPD:安全策略数据库,就是流量选择器----对流量进行加密的标记:
(1)加密
(2)旁路(正常转发,默认)
(3)过滤
SADB:安全关联 数据库,所以支持的SA信息存放的位置

六、IKE:互联网密钥交互协议:分为3部分:

  1. ISAMKP协议(双方认证)
  2. 认证(仅限于远程接入VPN并且在使用域共享密钥方式进行源认证时使用)
  3. IPsec策略协商

IKE第一阶段:使用了6个报文
第1,2报文,
第3,4报文,明文发送,传递DH算法的公钥,随机产生一些值,双方交互运算,得到公共的信息,从而计算出来的三个相同的Skey-id
Skey-id d—衍生出来的IPsec中对称加密算法的密钥
Skey-id a—衍生出来IPsec的随机值(用于hmac)
skey-id e—衍生出来ISAMKP中的对称加密算法的密钥

IKE第二阶段hmac的随机是双方手工指定的
第5,6报文,使用密文发送 ,将所有的公共信息进行认证
IKE第二阶段:进行IPsec SA协商(该SA对传递的数据进行封装)共三个报文,全部都是加密的
第一个再次进行认证(检测IPsec中的公共信息)
第二个报文发送自己的所有SA策略
第三个报文进行确认IPsec VPN建立完成

七、VPN:虚拟专用网络
1、VPN分类:

二层VPN:FR ATM

三层VPN:GRE IPsec VPN

  1. GRE:通用路由封装,无安全性保障
  2. MPLS VPN:VPN是在ISP内完成,安全性较高,有QOS保障
  3. IPSEC VPN:VPN是在C网络中完成,安全性较高,无QOS保障

IPSEC VPN:IPSEC,对IP数据进行加密或认证,使用IKE协商,使用ESP或者AH封装保证数据传递的安全性

IKE协议中IPSEC中的相关参数分为3个阶段:
– 第1阶段:ISAKMP协商,进行ISAKMP中SA的协商—6个报文
– 第1.5阶段:认证(对使用VPN用户的身份进行检测,是否授权)—3个报文
– 第2阶段:IPSEC SA的协商,协商IPSEC在相关信息(SA安全关联信息)—3个报文
在site-to-site VPN中仅包含了第1和第2阶段
在remote-access VPN中包含了所有的三个阶段

AH协议(Authentication Header,使用较少):可以同时提供数据完整性确认、数据来源确认、防重放等安全特性;AH常用摘要算法(单向Hash函数)MD5和SHA1实现该特性。----不适用于nat–要对数据来源进行确认

ESP协议(Encapsulated Security Payload,使用较广):可以同时提供数据完整性确认、数据加密、防重放等安全特性;ESP通常使用DES、3DES、AES等加密算法实现数据加密,使用MD5或SHA1来实现数据完整性。
为何AH使用较少呢?因为AH无法提供数据加密,所有数据在传输时以明文传输,而ESP提供数据加密;其次AH因为提供数据来源确认(源IP地址一旦改变,AH校验失败),所以无法穿越NAT。当然,IPSec在极端的情况下可以同时使用AH和ESP实现最完整的安全特性,但是此种方案极其少见。

八、IPSEC VPN的基本配置:
对端缺省

R1(config)#ip route 0.0.0.0 0.0.0.0 10.1.12.2

使用ACL定义感兴趣流量:

R1(config)#access-list 100 permit ip 172.16.1.0 0.0.0.255 172.16.2.0 0.0.0.255
R2(config)#access-list 100 permit ip 172.16.2.0 0.0.0.255 172.16.1.0 0.0.0.255

定义IKE第一阶段–ISAKMP SA信息:
定义IKE第一阶段,设置为域共享密钥方式进行源认证

R1(config)#crypto isakmp policy 10
R1(config-isakmp)#group 2          //非对称加密算法 DH长度为1024
R1(config-isakmp)#encryption 3des 
R1(config-isakmp)#authentication pre-share 
R1(config-isakmp)#hash md5

定义域共享密钥key值

crypto isakmp key 6 cisco address 12.1.1.2

定义IPSEC SA(使用ESP或AH方式加密认证):

R1(config)#crypto ipsec transform-set openlab esp-3des esp-md5-hmac 

定义map:

R1(config)#crypto map ccie 10 ipsec-isakmp   //关联IKE第一阶段
% NOTE: This new crypto map will remain disabled until a peer
        and a valid access list have been configured.
R1(config-crypto-map)#set peer 12.1.1.2     
R1(config-crypto-map)#set transform-set openlab   
R1(config-crypto-map)#match address 100
R1(config-crypto-map)#exit

接口调用:

R1(config)#int s1/1
R1(config-if)#crypto map ccie

IPsec VPN为触发方式
查看:

r1#show crypto isakmp sa  //查看第一阶段
IPv4 Crypto ISAKMP SA
dst             src             state          conn-id slot status
23.1.1.2        12.1.1.1        QM_IDLE           1001    0 ACTIVE

只要状态显示QM标示隧道已经建立

r1#show crypto ipsec sa   //查看IKE第二阶段

九、数据传输安全案例
这里写图片描述
下面给出上面图片的具体解释:
加密信息:
(1)原始数据
(2)数字签名:
原始数据经过hash运算得到信息摘要再经过alice的私钥签名加密得到数字签名
(3)alice证书:
CA发布,验证alice的公钥是本人发送
将原始数据+数字签名+alice证书–使用alice和bob直接的对称密钥进行加密传送数据

公钥:由CA提供bob的证书,解密证书得到公钥,用公钥加密对称密钥得到密钥信封

数据包=加密信息+密钥信封—公网传递

当bob得到加密信息时会使用bob用自己的私钥解密出对称密钥再使用alice和bob之间的对称密钥进行解密传送的数据,得到
原始信息+数字签名+alice证书
alice证书可以得到alice的公钥
用alice公钥验证数字签名是不是由alice发送
解密数字签名会得到信息摘要,再将得到的原始信息进行hash运算并且与得到的信息摘要进行比较,相同即可使用

公钥用于传递来加密解密 私钥用于自己解密

创作者:Eric· Charles

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页