IPSEC ×××两个阶段的协商过程

第一阶段

有主模式和积极模式2种

注意!!!只有remote ***和Easy ***是积极模式的,其他都是用主模式来协商的 让IKE对等体彼此验证对方并确定会话密钥,这个阶段用DH进行密钥交换,创建完IKE SA后,所有后续的协商都将通过加密和完整性检查来保护

phase 1帮助在对等体之间创建了一条安全通道,使后面的phase 2过程协商受到安全保护

第二阶段

快速模式

协商IPSEC SA使用的安全参数,创建IPSEC SA,使用AH或ESP来加密IP数据流

总结

第一阶段作用-----对等体之间彼此验证对方,并协商出IKE SA,保护第二阶段中IPSEC SA协商过程

第二阶段作用-----协商IPSEC 单向SA,为保护IPS数据流而创建

主模式协商

IKE phase 1在IPSEC对等体间交换6条消息,这些消息的具体格式取决于使用的对等体认证方法

一,使用预共享密钥进行验证的主模式(6条)

协商过程使用ISAKMP消息格式来传递(UDP 500)

第一阶段:

准备工作

在前2条消息发送以前,发送者和接受者必须先计算出各自的cookie(可以防重放和DOS***),这些cookie用于标识每个单独的协商交换消息

cookie---RFC建议将源目IP,源目端口,本地生成的随机数,日期和时间进行散列操作.cookie成为留在IKE协商中交换信息的唯一标识, 实际上cookie是用来防止DOS***的,它把和其他设备建立IPSEC所需要的连接信息不是以缓存的形式保存在路由器里,而是把这些信息HASH成个cookie值

1&2消息

消息1---发送方向对等体发送一条包含一组或多组策略提议,在策略提议中包括5元组(加密算法,散列算法,DH,认证方法,IKE SA寿命)

消息2---接受方查看IKE策略消息,并尝试在本地寻找与之匹配的策略,找到后,则有一条消息去回应

注意!!!发起者会将它的所有策略发送给接受者,接受者则在自己的策略中寻找与之匹配的策略(对比顺序从优先级号小的到大的)(默认策略实际就是个模版没作用,如果认证只配置预共享的话,其他参数就会copy默认策略里的)

在1&2消息中报错可能出现的原因

1,peer路由不通

2,crypto iskmp key没有设置

3,一阶段的策略不匹配

3&4消息

这2条消息,用于交换DH的公开信息和随机数

两个对等体根据DH的公开信息都算出了双方相等的密植后,两个nonce连通预共享密钥生成第一个skeyID

随后便根据SKEY__ID来推算出其他几个skeyID

skeyID_d---用来协商出后续IPSEC SA加密使用的密钥的

skeyID_a---为后续的IKE消息协商以及IPSEC SA协商进行完整性检查(HMAC中的密钥)

skeyID_e---为后续的IKE消息协商以及IPSEC SA协商进行加密

5&6消息

这2条消息用于双方彼此验证,这个过程是受skeyID_e加密保护的

为了正确生成密钥,每一个对等体必须找到与对方相对应的预共享密钥,当有许多对等体连接时,每一对对等体两端都需要配置预共享密钥,每一对等体都必须使用ISAKMP分组的源IP来查找与其对等体对应的预共享密钥(此时由于ID还没到,彼此先用HASH来彼此验证对方)

HASH认证成分---SKEYID_a, cookieA, cookieB,preshare_key, SA paload,转换集,策略

在5&6消息中报错可能出现的原因

1,crypto iskmp key设置错了

消息6--接受者处理过程

1,用skeyID_e对消息进行加密

2,用ID(源IP)查找出与共享密钥 3,skeyID_a和preshare-key等一堆东西一起来计算HASH 4,和收到的HASH做比较

第二阶段(3条)

phase 2的目标是协商IPSEC SA,而且只有一种模式,快速模式,快速模式的协商是受IKE SA保护的

1&2消息

消息1---发送方发送一条报文,其中包含HASH,IPSEC策略提议,NONCE和可选的DH,身份ID

HASH:是用于给接受方作完整性检查的,用于再次认证对等体(必须)HASH的成分和5-6阶段一样

IPSEC策略提议:其中包括了安全协议,SPI,散列算法,隧道模式,IPSEC SA生命周期(必须)

NONCE:用于防重放***,还被用作密码生成的材料,仅当启用PFS时用到 ID:描述IPSEC SA是为哪些地址,协议和端口建立的

PFS(利用DH交换,可选):用了PFS后就会在第二阶段重新DH出个数据加密KEY,这个KEY和以前IKE协商出来的KEY没有任何关系,然后由这个新KEY来加密数据,只有到这个IPSEC SA的生命周期后,会再次DH出新的KEY,这样,安全性就提高了(普通等ipec SA过期或密钥超时时,重新生成的数据加密密钥还是根据以阶段DH出来的skeyID_d衍生出来的)(PFS启用后,数据加密部分使用的密钥就没有了衍生的过程)

DH:重新协商IPSEC SA实使用的密钥(正常情况下IPSEC阶段使用的密钥都是由skeyID_d衍生而来,密钥之间都有一定的关系,就算IPSEC SA超时,新的KEY还是和skeyID_d有一定的关系)

在1&2消息中报错可能出现的原因 1,ipsec trasport不匹配 2,感兴趣流不对称 3,

消息2---使用相同的消息进行相应

3消息

发送方发送第三条消息,其中包含一个HASH,其作用时确认接受方的消息以及证明发送方处于Active状态(表示发送方的第一条消息不是伪造的)

转载于:https://blog.51cto.com/xiaodanni83/1766190

IPSEC ***两个阶段的协商过程相关推荐

  1. IPSEC 的IKE协商过程,主模式和野蛮模式,AH和ESP

    一. 基本名词解释: 1.IPSec 对等体 IPSec 用于在两个端点之间提供安全的 IP 通信,通信的两个端点被称为 IPSec 对等体. 2.安全联盟 SA(Security Associati ...

  2. IPsec之IKE协商过程详解

    IPsec之IKE协商过程详解 IKE第一阶段 IKE的精髓在于它永远不在不安全的网络上直接传送密钥,而是通过一系列的计算,双方最终计算出共享密钥,并且即使第三方截获了交换中的所有数据,也无法计算出真 ...

  3. PIX的精彩 --- IKE的两个阶段

    转:PIX的精彩 --- IKE的两个阶段 2008-05-05 14:24 ESP.AH用来对IP报文进行加/解密.验证以达到保护IP报文的目的,而IKE则是通信双方用来协商加/解密算法及其密钥.密 ...

  4. IPSEC协议及当中IKE协商加解密原理

    散列函数:也叫Hash函数,主要是为保证数据完整性,主流算法有MD5.SHA-1. 散列值:通过散列函数计算得到的结果 对称密钥算法:使用相同的密钥与算法对数据进行加解密 运算 - 优点:速度快.安全 ...

  5. java dtls server_DTLS协议(基于UDP)中client/server的认证过程和密钥协商过程

    我的总结:DTLS的握手就是协商出一个对称加密的秘钥(每个客户端的秘钥都会不一样),之后的通信就要这个秘钥进行加密通信.协商的过程要么使用非对称加密算法进行签名校验身份,要么通过客户端和服务器各自存对 ...

  6. java dtls server_DTLS协议中client/server的认证过程和密钥协商过程

    1.DTLS介绍 1.1 DTLS的作用 互联网先驱们最开始在设计互联网协议时主要考虑的是可用性,安全性是没有考虑在其中的,所以传输层的TCP.UDP协议本身都不具备安全性.SSL/TLS协议是基于T ...

  7. 连信的会话加密密钥协商过程

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 介绍连信会话加密密钥的协商过程." 公号内之前已经对协议的框架和协议内的数据格式进行了介绍,有需要可以回顾下: 连信协议整体框架 ...

  8. 院士:人一生有两个阶段最能逼出成果,一是拿博士学位,二是评正教授

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 来源:算法与数学之美 虽然这是一位大学校长在全校研究生教育工作会上的"内部讲话&qu ...

  9. VoLTE技术(含IMS注册/去注册流程、IMS呼叫流程、呼叫保持流程、二次协商过程)

    文章目录 VoLTE技术 IMS简介 SIP消息结构 IMS注册流程 IMS去注册流程 什么是Ghost Call 预留资源的呼叫流程 挂断电话流程(主动挂断.拒接) SDP协议,二次协商过程 呼叫保 ...

最新文章

  1. (C++)1009 Product of Polynomials
  2. Ubuntu中php.ini修改运行内存
  3. PHP 正则表达式 最后总结
  4. Non-interger Area 分类讨论 奇偶 取模 牛客练习赛95
  5. 和jwt_秒懂 JWT
  6. java enum 关联_Java:如果EnUM常量在本质上是静态的,那么它如何可以拥有与其相关联的构造函数和方法...
  7. MySQL复习资料(七)——MySQL-存储过程
  8. joomla tab 扩展_如何使用扩展功能扩展Joomla网站的功能
  9. 网页模板素材|解救不会编程的UI设计师网页设计者!
  10. micropython 驱动oled0.91_[MicroPython]STM32F407开发板驱动OLED液晶屏
  11. python爬虫都能干什么用_5 行代码就能写一个 Python 爬虫
  12. 读《摄影测量与遥感概论》有感
  13. 23000字,信息流广告分析基础!
  14. 将html导出为PDF文件(为PDF加盖章)
  15. 什么是锐度sharpness
  16. 《教父II:西西里人》 shbp--3
  17. 行路难之后,物流业的出路
  18. C++中cout的格式使用
  19. STemWin显示图片
  20. JAVA多维分析报表怎么做_Quick BI 3.0 - 强大的多维分析表格:交叉表

热门文章

  1. 批量下载哨兵(Sentinel)数据
  2. HBase性能优化总结
  3. jsonp原生js跨域拿新浪数据插件封装【可扩展】
  4. 新单词 part 4
  5. jsoncpp-src-0.5.0.tar.gz 源码错误!!!!
  6. C#利用WebClient 两种方式下载文件(一)
  7. SQL Server 数据库的维护(四)__游标(cursor)
  8. UITableViewCell中cell重用机制导致内容重复的方法
  9. 两个Python web框架:Django Tornado比较
  10. SQL Server 2012安装图解