5. 网络层安全IPSec

5.1 IPSec协议

(1)前面使用Outlook进行数字签名和数字加密是应用层实现的安全安全套接字实现的安全是在应用层和传输层之间插入了一层来实现数据通信安全。而IPSec是网络层实现的安全。不需要应用程序的支持,只要配置通信双方的安全规则,传输层的数据传输单元就会被加密后封装到网络层,实现数据通信安全。IPSec工作在OSI模型的网络层

(2)IPSec主要的两个协议

  ①鉴别首部(Authentication Header, AH)协议:提供源点鉴别和数据完整性,但不能保密。AH协议的功能都包含在ESP协议中,因此不再使用AH协议。

  ②封装安全有效载荷(Encapsulation Security Payload, ESP)协议:提供源点鉴别、数据完整性和保密,支持IPv4和IPv6。

5.2 安全关联

(1)IPSec协议的IP数据报(简称IPSec数据报),可以在两个主机之间、两个路由器之间或一个主机和一个路由器之间发送。但发送IPSec数据报之前,源实体和目的实体之间必须创建一条网络逻辑连接,即安全关联(Security Association, SA)

(2)安全关联的状态信息(以Client到Web服务器的安全关联SA1为例)

  ①源点(Client的IP)和终点(Web服务器的地址)

  ②一个32位的连接标识符,称为安全参数索引(Security Parameter Index, SPI)

  ③所使用的加密类型(如DES)、加密密码

  ④完整性检查类型(例如,使用报文摘要MD5的报文鉴别码MAC)

  ⑤鉴别使用的密钥(比如指定身份验证密钥为abc)

【注意】要实现安全通信,Web服务器与Client发送IPSec数据报之前,也要建立一条安全关联SA。

5.3 实战:在Windows系统上配置IPSec实现安全通信

(1)实验环境:Win2003Web(192.168.80.20)WinXP(192.168.80.50)

(2)IPSec(IP安全策略)规则的主要组成

  ①筛选器:定义SA的条件,如源地址、目标地址、协议和端口号等

  ②筛选器动作(允许、拒绝和加密通信):只有“协商安全”才需要指明加密算法和完整性算法,以及身份验证方法。如果是允许和拒绝,则不需要指定上述内容。

  ③身份验证方法(Kerberos、数字证书、共享密钥):默认使用Kerberos来验证,这是为域中的计算机准备的身份验证方法。共享密钥则要求通信双方要使用相同的密钥(可自定义,如abc123)

(3)在Win2003虚拟机上创建IP安全策略

  ①运行“secpol.msc”(也可以从管理工具中找到)打开“本地安全策略”→“IP安全策略”→“创建IP安全策略”。(注意,Windows可以有多个IP安全策略,但同一时间只有一个生效,在“本地安全设置”中有三个默认的IP安全策略,他们是针对加入域的计算机预设的,这里我们要创建自己的IP安全策略)

  ②新增“筛选器”:名称为toWindowsXP,源地址为我的IP、目标地址为192.168.80.50、协议为任意,并选中该筛选器。

  ③设置toWindowsXP筛选器的操作:安全措施为协商安全,并设定数据完整性和加密算法以及新密钥的生成时间。同时勾选“接受不安全的通讯,但总是用IPSec响应”(这意味着只允许进行安全通信)和勾选“使用会话密钥完全向前保密”(意味着通信过程中生成的新的会话密钥就不会使用以前用过的会话密钥)

  ④将身份验证方法修改为“预共享密钥”,如abc123。(可编辑默认的Kerberos来达到修改验证方法的目的)。

  ⑤最后右击创建好的“WebIPSec”,并点击“指派”使策略生效。

(4)在WinXP虚拟机上创建IP安全策略

  ①参照Win2003上操作添加筛选器,目标地址填写192.168.80.20,也就是Win2003Web的地址。

  ②按同样的方法创建筛选器操作和指定身份验证方法(预共享密钥也应设为abc123)

  ③指定新创建的IP安全策略,然后ping 192.168.80.20(注意,第一个响应是Negotiating IP Security,即协商IP安全,说明Win2003返回的ICMP响应数据包是经过IPSec策略加密通信的

5.4 实战:查看安全关联和加密数据包

(1)XP上查看安全关联:运行“mmc” →“文件”→“添加/删除管理单元”→添加“独立管理单元”并选中“IP安全监视器”

(2)Win2003上抓包分析IPSec数据包的格式

  ①IPSec数据包格式

    A.当使用ESP(封装安全有效载荷)时,网络层IP数据包的首部的协议字段变为50。当目标主机检查到协议字段为50时,就知道在IP首部后面紧接着是ESP首部。

    B.在ESP首部中,有标志一个安全关联的安全参数索引SPI(32位)和序号(32位)。同时,在原IP数据报后面增加了两个字段,即ESP尾部和ESP鉴别码(MAC)。

    C.ESP尾部和传输层报文(IP的数据报)一起加密因此攻击者无法得知所使用的传输层协议(它在IP数据报的数据部分中)

    D.SA指明的算法和密钥,对“ESP首部+传输层报文段(或IP数据报)+ESP尾部”生成报文鉴别码MAC。

  ②抓包分析IPSec数据包

第10章 网络安全(4)_网络层安全IPSec的更多相关文章

  1. 第10章 网络安全(5)_访问控制列表ACL

    6. 访问控制列表ACL 6.1 标准访问控制列表 (1)标准ACL ①标准ACL是基于IP数据包的源IP地址作为转发或是拒绝的条件.即,所有的条件都是基于源IP地址的. ②基本不允许或拒绝整个协议组 ...

  2. 第10章 网络安全(3)_安全套接字层SSL

    4. 安全套接字层 4.1 安全套接字层(SSL)和传输层安全(TLS) (1)SSL/TLS提供的安全服务 ①SSL服务器鉴别,允许用户证实服务器的身份.支持SSL的客户端通过验证来自服务器的证书, ...

  3. 《mysql必知必会》学习_第10章_20180731_欢

    第10章,计算字段. P64 select concat (vend_name,'(',vend_country,')') from vendors order by vend_name; # 拼接, ...

  4. Linux就这个范儿 第10章 生死与共的兄弟

    Linux就这个范儿 第10章 生死与共的兄弟 就说Linux系统的开机.必须经过加载BIOS.读取MBR.Boot Loader.加载内核.启动init进程并确定运行等级.执行初始化脚本.启动内核模 ...

  5. JavaScript高级程序设计(第三版)学习笔记8、9、10章

    第8章,BOM BOM的核心对象是window,具有双重角色,既是js访问浏览器的一个接口,又是ECMAScript规定的Global对象.因此,在全局作用域中声明的函数.变量都会变成window对象 ...

  6. 【安富莱】【RL-TCPnet网络教程】第10章 RL-TCPnet网络协议栈移植(FreeRTOS)

    第10章     RL-TCPnet网络协议栈移植(FreeRTOS) 本章教程为大家讲解RL-TCPnet网络协议栈的FreeRTOS操作系统移植方式,学习了第6章讲解的底层驱动接口函数之后,移植就 ...

  7. <<Python基础教程>>学习笔记 | 第10章 | 充电时刻

    第10章 | 充电时刻 本章主要介绍模块及其工作机制 ------ 模块 >>> import math >>> math.sin(0) 0.0 模块是程序 一个简 ...

  8. 《构建之法》之第8、9、10章读后感 ,以及sprint总结

    第8章: 主要介绍了软件需求的类型.利益相关者,获取用户需求分析的常用方法与步骤.竞争性需求分析的框架NABCD,四象限方法以及项目计划和估计的技术. 1.软件需求:人们为了解决现实社会和生活中的各种 ...

  9. 敏捷软件开发:原则、模式与实践——第10章 LSP:Liskov替换原则

    第10章 LSP:Liskov替换原则    Liskov替换原则:子类型(subtype)必须能够替换掉它们的基类型(base type). 10.1 违反LSP的情形 10.1.1 简单例子 对L ...

随机推荐

  1. RTP RTCP RTSP

    1.RTP  over UDP和RTP over RTSP有什么区别?2.RTP over RTSP是不是就是RTP over TCP?3.RTP over TCP 打包视频是不是要加4个字节的头,是 ...

  2. Java面向对象 第1节 类和对象

    一.Java 对象和类 面向对象语言三大特性:封装.继承.多态: 对象:描述客观事物的一个实体: 类:类是封装对象的属性和方法的载体,反过来说具有相同属性和行为的一类实体被称为类:类行为:方法:属性: ...

  3. 为什么js 的constructor中是无限循环嵌套:Foo.__proto__.constructor.prototype.constructor.prototype.constructor.prototype.xxx ?

    constructor始终指向创建当前对象实例的(构造)函数. 任何函数都是Function类的一个实例 那么根据上述可知:任何函数的constructor属性都指向Function类,而Functi ...

  4. css中权重与继承

    出处:http://blog.csdn.net/xf616510229/article/details/53613212

  5. 负载均衡器 Ribbion

    一.客户端负载均衡器 Ribbon 客户端向服务器如Eureka Server拉取已经注册的服务信息,然后根据负载均衡策略, 直接命中哪一台服务器发送请求. 整个过程在客户端完成,不需要服务器的参与. ...

  6. hanlp中文智能分词自动识别文字提取实例

    需求:客户给销售员自己的个人信息,销售帮助客户下单,此过程需要销售人员手动复制粘贴收获地址,电话,姓名等等,一个智能的分词系统可以让销售人员一键识别以上各种信息 经过调研,找到了一下开源项目 1.wo ...

  7. JDK官网下载教程

    进入官网网址 https://www.oracle.com/index.html  登录成功后,即可进行下载! PS:新版谷歌浏览器可能会出现无法下载的问题,使用IE浏览器即可.

  8. php上传导入文件 nginx-502错误

    4. php程序执行时间过长而超时,检查nginx和fastcgi中各种timeout设置.(nginx 中的  fastcgi_connect_timeout 300;fastcgi_send_ti ...

  9. Linux常用命令之定时任务

    定时任务的实现,可以让我们把很多重复的,有规律的事情交给机器做.我们就不用苦逼的烦躁做同一件事,这样也让我们做程序的有更多的乐趣和价值.用技术的手段解决常人花时间精力解决的问题.在Linux下实现定时 ...

  10. 黄聪:Jquery+DataTables插件,如何在ajax调用服务器数据后,自动给tr添加id属性

    http://legacy.datatables.net/usage/callbacks#fnRowCallback 主要通过 fnCreatedRow 事件来实现 var table = $('#t ...