IPSec是IETF定义的一个协议组。通信双方在IP层通过加密、完整性校验、数据源认证等方式,保证了IP数据报文在网络上传输的机密性、完整性和防重放。

  1. 机密性(Confidentiality)指对用户数据进行加密保护,用密文的形式传送数据。
  2. 完整性(Data integrity)指对接收的数据进行认证,以判定报文是否被篡改。
  3. 防重放(Anti-replay)指防止恶意用户通过重复发送捕获到的数据包所进行的攻击,即接收方会拒绝旧的或重复的数据包。
  4. 其他安全要求:源认证(确认信息真实的发送者和接收者)、不可否认性(防止通信双方中的某一方事后否认其行为)

加密算法主要分为两大类
相同的密钥进行加解密,就叫做对称密钥算法
知名算法:DES ,3DES ,AES ,RC4
不同的密钥进行加解密,就叫做非对称密钥算法
知名算法:RSA ,DH ,ECC

非对称密钥特点
• 特点:
• 用一个密钥加密的东西只能用另一个密钥来解密。
• 仅仅只用于:密钥交换(加密密钥)和数字签名(加密散列)。
• 优点:
• 安全。
• 因为不必发送密钥给接受者,所以非对称加密不必担心密钥被中途截获的问题。
• 密钥数目和参与者的数目一样。
• 不需要事先在各参与者之间建立关系以交换密钥。
• 技术支持数字签名和不可否认性。
• 缺点:
• 非常非常慢。
• 密文会变长。

对称密钥算法特点
• 特点:
• 同一个密钥用于加解密。
• 优点:
• 速度快
• 安全
• 紧凑
• 缺点:
• 明文传输共享密钥,容易出现中途劫持和窃听的问题。
• 密钥数量是以参与者数量平方的速度增长(指数增长)。
• 因为数量过多,所以管理和存储会有很大问题。
• 不支持数字签名和不可否认性。

散列函数
散列函数也叫做HASH函数,主流的散列算法有MD5 与SHA-1 。散列函数的主要任务是验证数据的完整性。通过散列函数计算得到的结果叫做散列值,这个散列值也常常被称为也常常被称为数据的指纹

散列算法的四大特点
• 固定大小
散列函数可以接收任意大小的数据,并输出固定大小的散列值。以MD5这个散列算法为例,不管原始数据有多大,通过MD5计算得到的散列值总是128比特,而SHA-1的输出长度则为160比特。
• 雪崩效应
原始数据就算修改哪怕一个比特,计算得到的散列值也会发生巨大的变化 。
• 单向
只可能从原始数据计算得到散列值,不可能从散列值恢复哪怕一个比特的原始数据。
• 冲突避免
几乎不能够找到另外一个数据和当前数据计算的散列值相同,因此散列函数能够确保数据的唯一性。

散列算法的主要用途
1.认证
2.使用数字签名保障数据与文档的完整性
3. IPSec 和路由协议的验证

IPSEC 架构 和实施
IPSec VPN体系结构主要由AH(Authentication Header)、ESP(Encapsulating Security Payload)和IKE(Internet Key Exchange)协议套件组成。
1.AH协议:主要提供的功能有数据源验证、数据完整性校验和防报文重放功能。然而,AH并不加密所保护的数据报。(所以现网中几乎不使用AH)
2.ESP协议:提供AH协议的所有功能外(但其数据完整性校验不包括IP头),还可提供对IP报文的加密功能。
3.IKE协议:用于自动协商AH和ESP所使用的密码算法。

IPSec 传输模式
• 隧道模式中,AH 或ESP 头封装在原始IP 报文头之前,并另外生成一个新的IP头封装到AH 或ESP 之前。隧道模式可以完全地对原始IP数据报进行认证和加密,而且,可以使用IPSec 对等体的IP 地址来隐藏客户机的IP
•传输模式下, AH或ESP报头位于IP报头和传输层报头之间。

ESP
•ESP封装安全负载,IP协议号50,能够为数据提供私密性、完整性和源认证,同时可抵御防重放攻击(反复发送相同的报文,接收方解密消耗系统资源而导致的DOS攻击),不对原始IP头部进行安全防护

IPSec的两个数据库
为了实现IPSec 的互操作性,IPSec 模型描述了两个数据库
SPD(安全策略数据库)
SPD 决定了什么流量将接受IPSec处理
SADB (安全关联数据库)
SADB 维护每一个SA (安全关联)包含的参数

SPD (安全策略数据库)
这里的选择器就是Cisco 的感兴趣流
• Destination IP address (源IP )
• Source IP address (目的IP )
• Name (名字)
•Transport Layer protocols (传输层协议)
• Source and destination ports (源目端口号)
满足感兴趣流的行为:旁路,丢弃和IPSec 加密).
每一个条目与SA 关联

安全联盟SA
安全联盟定义了IPSec对等体间将使用的数据封装模式、认证和加密算法、密钥等参数。
建立SA的方式有以下两种:
手工方式:安全联盟所需的全部信息都必须手工配置。手工方式建立安全联盟比较复杂,但优点是可以不依赖IKE而单独实现IPSec功能。当对等体设备数量较少时,或是在小型静态环境中,手工配置SA是可行的。
IKE动态协商方式:只需要通信对等体间配置好IKE协商参数,由IKE自动协商来创建和维护SA。动态协商方式建立安全联盟相对简单些。对于中、大型的动态网络环境中,推荐使用IKE协商建立SA。

什么是SA (安全关联)
SA 是IPSec 的一个基本组成部分,SA 是SADB的一个条目,它包含双方关于IKE 和IPSec 已经协商完毕的安全信息)
• IKE or ISAKMP SA 1. 双向的 2. 决定了IKE 协议处理相关细节
• IPSec SA 1. 单向的一对SA 2.与封装协议相关 3. 决定了具体加密流量的处理方式
两种类型的SA 都由IKE协议协商产生

安全联盟(Security Association )
• 定义:
• 安全联盟是要建立IPSec隧道的通信双方对隧道参数的约定,包括隧道两端的IP地址、隧道采用的验证方式、验证算法、验证密钥、加密算法、加密密钥、共享密钥以及生存周期等一系列参数。
• IPSEC SA在两个对等体之间的双向通信,最少需要两个安全联盟来分别对两个方向的数据流进行安全保护。入站数据流和出站数据流分别由入站SA和出站SA进行处理
• IKE SA在IKE对等体之间构建一个双向的会话
• SA 由三元组来唯一标识 ,包括:
目的IP地址 安全参数索引 安全协议号
SADB (安全关联数据库)
在SADB里边的每一个条目决定了一个特定SA 的参数,当一个IPSec SA 被创建,SADB 更新所有关于这个SA的参数。当一个inbound IPSec 数据包抵达,SADB 基于外层IP 头部的目的IP 地址,SPI 和IPSec封装协议(ESP/AH )检索数据库以获得相应SA ,然后用这个SA 的相关参数处理这个inbound IPSec数据包。对于outbound IPSec 数据包处理的相关参数,是由SPD 相关联的SA

SPD 与 SADB

IPSec 组成部分

IKEv1 和IKEv2
• IKE 协议分IKEv1 和IKEv2 两个版本。
• IKEv1
• IKEv1使用两个阶段为IPSec进行密钥协商并建立IPSec SA。
第一阶段,通信双方协商和建立IKE本身使用的安全通道,建立
一个IKE SA。
第二阶段,利用这个已通过了认证和安全保护的安全通道,建立一对IPSec SA 。

• IKEv2
• IKEv2则简化了协商过程。
在一次协商中可直接产生IPSec的密钥,生成IPSec SA。

IKE 与IPSec的关系
• IKE 协议建立在Internet安全联盟和密钥管理协议ISAKMP (Internet Security Association and Key ManagementProtocol )定义的框架上,是基于UDP(User Datagram Protocol)的应用层协议。它为IPSec提供了自动协商交换密钥、建立SA 的服务,能够简化IPSec的使用和管理。

IKE的三个模式和两个阶段

野蛮模式与主模式对比
• IKEv1 建立IKE SA 的过程定义了主模式(Main Mode)
和野蛮模式(Aggressive Mode )两种交换模式。
• 主模式包含三次双向交换,用到了六条信息。
• 消息①和②用于策略交换;
• 消息③和④用于密钥信息交换;
• 消息⑤和⑥用于身份和认证信息交换。
• 野蛮模式只用到三条信息。
• 前两条消息①和②用于协商提议,消息③用于响应方认证发起方。

野蛮模式适用场景
• 与主模式相比,野蛮模式减少了交换信息的数目,提高了协商的速度,但是没有对身份信息进行加密保护。虽然野蛮模式不提供身份保护,但它可以满足某些特定的网络环境需求。
• 当IPSec隧道中存在NAT设备时,需要启用NAT穿越功能,而NAT转换会改变对等体的IP地址,由于野蛮模式不依赖于IP地址标识身份,使得采用预共享密钥验证方法时,NAT 穿越只能在野蛮模式中实现。
• 如果发起方的IP地址不固定或者无法预先知道,而双方都希望采用预共享密钥验证方法来创建IKE SA,则只能采用野蛮模式。
• 如果发起方已知响应方的策略,或者对响应者的策略有全面的了解,采用野蛮模式能够更快地创建IKE SA。

快速模式(Quick Mode )

• 快速模式中,双方需要协商生成IPSec SA各项参数(包含可选参数PFS ),并为IPSec SA 生成认证/ 加密密钥。
• 这在快速模式交换的前两条消息①和②中完成,消息②中还包括认证响应方。消息③为确认信息,通过确认发送方收到该阶段的消息②,验证响应者是否可以通信。

IKEv2 密钥协商和交换
• IKEv2 保留了IKEv1 的大部分特性,IKEv1的一部分扩展特性(如如NAT 穿越)作为IKEv2 协议的组成部分被引入到IKEv2 框架中。
• IKEv2 中所有消息都以“请求-响应”的形式成对出现,响应方都要对发起方发送的消息进行确认,如果在规定的时间内没有收到确认报文,发起方需要对报文进行重传处理,提高了安全性。
IKEv2初始交换过程图

IKEv2 通知交换过程图

IKE 安全机制
• 身份认证
• 身份保护
• DH (Diffie-Hellman )密钥交换算法
• 完善的前向安全性PFS (Perfect Forward Secrecy )

身份认证
确认通信双方的身份(对等体的IP 地址或名称),包括:
• 预共享密钥PSK(pre-shared key)认证(在预共享密钥认证中,认证字作为一个输入来产生密钥,通信双方采用共享的密钥对报文进行Hash计算,判断双方的计算结果是否相同。如果相同,则认证通过;否则认证失败)
• 数字证书RSA(rsa-signature)认证。
• 数字信封认证。

DH (Diffie-Hellman )密钥交换算法
• Diffie-Hellman算法是一种公开密钥算法。通信双方在不传送密钥的情况下通过交换一些数据,计算出共享的密钥
• 发起方和响应方利用ISAKMP 消息的Key Exchange 和nonce 载荷交换彼此的密钥材料。
• Key Exchange用于交换DH公开值。
• Nonce(只被使用一次的任意或非重复的随机数值)用于传送临时随机数。

完美的前向安全性PFS
• 短暂的一次性密钥系统称为“完美向前保密”(Perfect Forward Secrecy ,PFS )
• 如果加密系统中有一个秘钥是所有对称密钥的衍生者(始祖),便不能认为那是一个“完美向前保密”的系统。在这种情况下,一旦破解了根密钥,便能拿到其它衍生的所有密钥,受那些密钥保护的全部数据都会曝光。
• 在IPSec 里,PFS 是通过在IPSec SA协商阶段重新进行一次DH 交换来实现的。

利用互联网通信
2)通信设备需要有远端通信设备的路由
R8(config)# ip route 0.0.0.0 0.0.0.0 Ethernet0/3
R8(config)#ip access-list extended NAT
R8(config-ext-nacl)#deny ip 88.1.1.0 0.0.0.255 10.10.10.0 0.0.0.255
R8(config-ext-nacl)#permit ip any any
R8(config)#ip nat inside source list NAT interface e0/3 overload
R8(config-crypto-map)#int e0/3
R8(config-if)#ip nat outside
一定要在NAT时deny掉要加密的流量

3)实施ipsec VPN
步骤1.
R8(config)#ip access-list extended VPN
R8(config-ext-nacl)#permit ip 88.1.1.0 0.0.0.255 10.10.10.0 0.0.0.255

步骤2.
R8(config)#crypto isakmp policy 1
R8(config-isakmp)#encryption aes
3des Three key triple DES
aes AES - Advanced Encryption Standard.
des DES - Data Encryption Standard (56 bit keys).
R8(config-isakmp)#authentication pre-share
R8(config-isakmp)#group 2
R8(config)#crypto isakmp key MIMA address 10.1.10.10
R8(config)#crypto ipsec transform-set YEWU esp-aes esp-sha-hmac

步骤3.
R8(config)#crypto map CELUE 10 ipsec-isakmp
R8(config-crypto-map)#match address VPN
R8(config-crypto-map)#set peer 10.1.10.10
R8(config-crypto-map)#set transform-set YEWU

R8(config-crypto-map)#int e0/3
R8(config-if)#crypto map CELUE
两边的配置几乎一模一样

验证
R8#show access-lists VPN
R8#show crypto isakmp sa
R8#show crypto engine connections active

思科IPSec协议解析相关推荐

  1. 新版思科CCNA认证1.0 零基础入门技术VTP协议解析-ielab网络实验室

     新版思科CCNA认证1.0 零基础入门技术VTP协议解析-ielab网络实验室 VTP(VLAN Trunking Protocol):VLAN中继协议,是Cisco专用协议.也被称为虚拟局域网干道 ...

  2. IPSec协议抓包详解和IPSec NAT穿越报文解析

    目录 协议概述 2.IPSec作用 3.认证方式 3.1.预共享密钥 3.2.数字证书 4.ESP加密算法 4.1.ESP完整性检测 4.2.ESP防重放 4.3.ESP防窃听 5.IPSec工作原理 ...

  3. ipsec协议_网工知识角轻松学网络|三分钟了解PPPOE协议

    学网络,就在IE-LAB 国内高端网络工程师培养基地 PPPOE( Point-to-PointProtocol Over Ethernet)以太网上的点对点协议,是将点对点协议(PPP)封装在以太网 ...

  4. SSL协议解析及SSL虚拟专用网

    参考博客地址 目录 第一部分:SSL协议解析 一.SSL简介 二.SSL协议介绍 三.SSL协议应用 四.SSL协议特点 五.SSL协议结构分析 六.SSL连接建立过程(握手过程) 七.几个重要的se ...

  5. synopsys PCIE IP协议解析

    synopsys PCIE IP协议解析 1.Overview Core支持单个Pcie内核的Loopback功能,该功能主要为了做芯片验证,以及在没有远程接收器件的情况下完成自己的回环.同时,Cor ...

  6. 详解BLE 空中包格式—兼BLE Link layer协议解析

    BLE有几种空中包格式?常见的PDU命令有哪些?PDU和MTU的区别是什么?DLE又是什么?BLE怎么实现重传的?BLE ACK机制原理是什么?希望这篇文章能帮你回答以上问题. 虽然BLE空中包(pa ...

  7. wireshark协议解析器 源码分析 封装调用

    源码分析 Wireshark启动时,所有解析器进行初始化和注册.要注册的信息包括协议名称.各个字段的信息.过滤用的关键字.要关联的下层协议与端口(handoff)等.在解析过程,每个解析器负责解析自己 ...

  8. wireshark协议解析器原理与插件编写

    工作原理 每个解析器解码自己的协议部分, 然后把封装协议的解码传递给后续协议. 因此它可能总是从一个Frame解析器开始, Frame解析器解析捕获文件自己的数据包细节(如:时间戳), 将数据交给一个 ...

  9. ipsec协议(转)

    from:http://lulu1101.blog.51cto.com/4455468/816875 ipsec协议 2012-03-25 23:40:28 标签:休闲 ipsec协议 职场 IPSe ...

最新文章

  1. linux 重新加载驱动程序,在linux中模拟设备驱动程序崩溃。让python重新加载i
  2. 如何巧用方位角和倾斜角增大光伏电站的发电量?
  3. 使用ASP.Net 3.5 的Ajax与Web服务开发实例
  4. 机器人从计算机应用领域看,人的素质差异,本质地不在于他们即存知识信息量的差异,而在于他们思维能力的差异。( )...
  5. 把aspx页面输出成xml的方法注意事项
  6. asp.net ajax1.0基础回顾(五):调用ASMX(WebService)
  7. 福禄克官方经销商给您科普光纤极性基础
  8. 2021年暑期旅游数据报告
  9. thinkphp 响应
  10. JavaScript稀疏数组
  11. kafka监听topic消费_Kafka消费者-从Kafka读取数据
  12. NSUserDefault的使用
  13. HTTP上传大文件的注意点
  14. Oracle P6培训系列:01安装
  15. python下载微信公众号文章_Python 抓取微信公众号文章
  16. k8s节点重启后,该节点一直not ready
  17. win10添加网络打印机_大神教你设置 win10系统安装打印机及驱动的详细方案 -win10使用教程...
  18. 低代码接口开发平台——YesApi(免费注册)
  19. 教你用直播大师在局域网内发布组播节目
  20. 测试你适合的发型软件叫什么,有没有测试发型的app 测试自己适合什么发型

热门文章

  1. 成都铁路局电话预订火车票宣传指南
  2. 图解css3:核心技术与案例实战. 2.11 属性选择器
  3. 腾讯应届程序员开到了50万年薪?网友:装的还挺像的!
  4. python绘画图_用python绘画一些简单图片
  5. sso 登出_SSO单点登录/登出系统实现
  6. 模拟英雄联盟游戏盒子的英雄排行榜的实现
  7. 如何替代即将淘汰的Flash方案?
  8. 用2个随机值破解PHP的MT_RAND函数
  9. 过一遍HTML标签(三)
  10. 中顶家电销售管理系统