通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  新兵

注册:2021-3-18
跳转到指定楼层
1#
发表于 2021-8-22 19:27:01 |只看该作者 |倒序浏览
本帖最后由 136367 于 2021-8-22 19:27 编辑

加密学原理:

IPSec VPN
IPSec:加密数据
VPN:部署路由的过程

如何保证数据在互联网传递的时候,安全?
1、私密性                加密
2、身份认证             预共享密钥&数字证书
3、完整性                散列算法

加密:古典加密学  【二战及二战之前使用的加密方式】
          现代加密学  【二战之后的使用的加密方式】


一般来说,网络通信的时候,有加密就有认证;但是又认证未必有加密。

实现私密性
现代加密学:
对称密钥算法:加密和解密使用相同的密钥。 加密速度快。 适合加密大量的实际数据。
                       【DES    3DES   AES--快加密技术】【RC4-流加密技术】
非对称密钥算法:有一对密钥,公钥、私钥。 加密速度慢,据统计,比对称密钥算法慢1500倍。
                            加密小的东西,以bit计数。   适合加密密码和散列结果【128bit  256bit  384bit  512bit】。
                       【RSA--SSH会用到】  【DH--IPSEC VPN里面用来动态交互密钥的算法】

SSH配置:

完整性:
散列算法-Hash算法
MD5-128bit       SHA-160bit    SHA-256bit    SHA-512

源认证【身份认证、不可否认性】:                  
1、HMAC    Hash散列函数:实现完整性    在散列的同时,添加一个只有发送方和接收方知道的密钥,来实现身份认证。
2、数字签名技术  【需要用到非对称密钥算法】--需要使用数字证书

公钥加密这个行为称之为加密;私钥加密这个行为称之为签名【签名的目的是为了实现身份认证】。


站点到站点的VPN:【打通企业的两个或者多个内网】
                            L2L的IPSec VPN、GRE over IPSec【有隧道】、动态多点VPN【DMVPN】---免费的--不需要额外花钱--基于已有互网络
                            MPLS VPN、Qinq---花钱  


远程接入的VPN:【针对移动端远程接入到企业内部】
                            SSLVPN、PPTP、L2TP、EZVPN

IPSec架构:
IKE 【Isakmp】---控制层面
AH/ESP---数据层面--封装实际数据


IPSec协商过程【一定要有流量出发才会协商】:
阶段一:主要为了保证阶段二的协商是安全    6个包
第一个包:自己所有SA、Cookia值【散列结果】
如果第一个包没有发出去:可能的原因 1、没有去往对方加密点/通信点的路由   2、流量没有撞上感兴趣流   3、可能是VPN流量被执行NAT
                                                            4、发起协商的设备没有收到可以出发IPSec协商数据  5、外网接口没有调用IPSec
第二个包:找到一套相匹配的SA发过去
如果第二个包没有发出去:可能的原因  1、对端没有相匹配的SA  2、没有去往对方加密点的路由 3、外网接口没有调用IPSec

前两个包交互完毕,得到了一套双向的阶段一的SA,可以用来加密阶段一的第五个和第六个包,以及阶段二的三个包

第三个包/第四个包:交换DH的公开值,双方通过一系列复杂的数学运算得到三个参数:Ka【认证】 Kd 【加密实际数据】 Ke 【加密消息】
几乎不会出问题

第五个包/第六个包:身份验证



阶段二:主要为了保证后续实际数据的安全    3个包

阶段二没有协商成功,可能的原因:阶段二的安全参数不匹配【感兴趣流要对称】、加密算法Hash算法认证方式工作模式等保持一致。


路由器处理数据包的时候,先看NAT,再看VPN。

L2L IPSec VPN配置:
步骤:
1.确保拥有去往对方公网【加密点】的路由    --注意测试
2.确保拥有去往对方内网【通信点】的路由--设备转发数据包的时候,先看路由   【如果设备有缺省,可以包含1和2】
3.IPSec VPN阶段一  【Isakmp SA -- IKE SA】
Site1(config)#crypto isakmp policy 106
Site1(config-isakmp)#authentication pre-share  //仅修改认证方式,加密算法,散列算法,生存时间都默认

Site1(config)#crypto isakmp key cisco address 60.67.1.1  //定义预共享密钥,实现身份认证
4.IPSec VPN阶段二  【IPSec SA】
Site1(config)#crypto ipsec transform-set L2L esp-aes esp-md5-hmac  
                                                         //转换集名字叫L2L,封装数据用ESP协议,加密是用aes,完整性校验用md5,认证用hmac
Site1(config)#access-list 100 permit ip 172.16.1.0 0.0.0.255 10.1.1.0 0.0.0.255   //定义感兴趣流
关联阶段二转换集和感兴趣流
Site1(config)#crypto map C 10 ipsec-isakmp
Site1(config-crypto-map)#set peer 60.67.1.1
Site1(config-crypto-map)#match address 100
Site1(config-crypto-map)#set transform-set L2L
Site1(config-crypto-map)#exit
5.调用
Site1(config-if)#int e0/0   
Site1(config-if)#crypto map C    //在外网接口调用,没有方向,发送数据加密,接收数据解密

Site1#show crypto isakmp sa    //查看阶段一的协商状态    ACTIVE是协商成功的,
IPv4 Crypto ISAKMP SA
dst             src             state          conn-id status
60.67.1.1       103.231.1.1     QM_IDLE           1001 ACTIVE

Site1#show crypto ipsec sa  //查看阶段二SA,有效期1h
Site1#clear crypto session  //清理IPSec会话,重新发送实际数据,触发协商

路由器转发IPSec VPN流量的时候,如果没有阶段一的SA【处理消息】,但是有阶段二的SA【处理实际数据】,不重新协商阶段一。
                                                      如果没有阶段二的SA,但是有阶段一的SA,肯定需要协商阶段二的。

PFS完美递进保密性的功能默认没有开启,如果要开启,执行:

VRF:虚拟路由转发  Virtual Routing Forwarding
      在路由器创建虚拟路由器的技术

工作模式:隧道模式Tunnel模式、传输模式Transport模式
数据协议:ESP/AH
IPSec和NAT并存的实验【不是IPSec流量穿越NAT】

AH会对外层包头做Hash,AH封装的实际数据无法穿越NAT设备。
ESP不会对外层包头做Hash,ESP封装的实际数据可以穿越NAT设备 【下节课我们是说NAT穿越的时候,肯定会使用ESP】。

设备处理数据包的时候,先执行NAT的动作,然后执行VPN的动作。

PPPOE:Point to Point Over Ethernet

PPP:Point to Point,用户接入互联网,ISP端可以使用这个协议对用户做认证。
         Chap:挑战握手认证协议    需要三次握手   密文
         PAP:密码认证协议   需要两次握手  明文
只能运行在点对点的线路上,比如Serial接口。以太网接口无法直接运行PPP协议。
但是,现在的网络基本上都是以太网。


PPPOE出现了。帮助PPP协议可以在以太网上运行的。

mtu值:从帧头结尾开始计算【不包括帧头】,包括里面所封装的所有内容,加起来最大字节数。-----一般就是1500字节
Ip mtu值:从IP包头开始计算【包括IP包头】,包括里面所封装的所有内容,加起来最大字节数。------未必是1500字节

穿越NAT的问题:

1、加密学原理
2、IPSec VPN 控制层面
3、IPSec VPN 数据层面
4、IPSec VPN和NAT共存---把VPN流量从NAT里面排除出去
5、IPSec VPN穿越NAT的问题
     AH【不能穿越NAT设备】/ESP【可以穿越NAT设备】

ESP 三层协议  没有端口口  不是基于TCP/UDP  基于IP包头的
PAT 既转换地址也转换端口号

思科路由器上默认开了NAT-T功能,IPSEC VPN的数据层面的数据【被ESP封装的数据】,就可以正常执行PAT转换。

阶段一
MM1  MM2  用来告诉对方自己是否支持NAT穿越
如果支持NAT穿越,那么
MM3  MM4 用来检测中间是否存在NAT设备,怎么检测呢?源地址 源端口  Hash       目的地址  目的端口 Hash

如果两个站点通过NAT-T机制,发现中间存在NAT设备,这两个站点无法判断是哪种NAT。
但是呢,两个站点,接下来发送的所有数据,包括MM5  MM6  阶段二三个包,包括后续实际数据都会给你添加上UDP4500头部。
为啥?是因为,如果不添加4500头部,那么后续传递的实际数据是被ESP封装的,ESP没有端口号,万一中间的NAT设备做的PAT,那么就无法正常转换,那么就无法正常发数据。


ESP封装的数据,没有端口号,如何经过PAT设备的呢?
备用功能--SPI-Matching

如果两个站点都在NAT设备的身后,那只能做静态NAT。
做UDP 500【给阶段一前四个协商包用的】 和 UDP 4500 【给阶段一MM5  MM6  阶段二 三个包 后续传的所有实际数据】的转换项
如果任意一个站点设备关闭了NAT-T功能,需要做UDP 500 【阶段一和阶段二 9个协商包】和 ESP的转换项



举报本楼

您需要登录后才可以回帖 登录 | 注册 |

版规|手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2025-7-18 17:59 , Processed in 0.268586 second(s), 17 queries , Gzip On.

Copyright © 1999-2025 C114 All Rights Reserved

Discuz Licensed

回顶部