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. 20 约束 异常处理 MD5 日志

    三十九, 一.类的约束 1.抛出异常    NotImplementedError 2.抽象方法 含有抽象方法的类是抽象类 抽象类中的方法全是抽象方法的是接口 抽象类不能创建对象 二.异常处理 处理完 ...

  2. SimpleEntity

    项目地址 :  https://github.com/kelin-xycs/SimpleEntity SimpleEntity 一个 用 C# 实现的 简单的 持久层 Entity 实现 . 这是一个 ...

  3. springMVC--4种映射处理器handlerMapping

    根据controller的name名称来映射寻找controller:BeanNameUrlHandlerMapping  (默认) 1.1开启该映射:默认是开启的 <bean class=&q ...

  4. Percona XtraDB Cluster 的一些使用限制(PXC 5.7)

    Percona XtraDB Cluster有众多的优秀特性,使得mysql集群得以轻松实现.但是不要忽略了它的一些限制.如果你无法接受,或者你的应用程序或数据库(比如使用了memory引擎)对限制无 ...

  5. Docker和Rancher

    Docker打包流程: Dockerfile文件和要打包docker的文件放在同级目录下: 1. docker build -t proj:proj-app:0.0.1 返回tagXXX 2. doc ...

  6. PHP 中 call_user_func 函数 和 call_user_func_array 函数的区别

    PHP 中 call_user_func() 函数 和 call_user_func_array() 函数都是回调函数,在写接口的时候经常会用到,但是他们有什么区别呢? 它们的第一个参数都是被调用的回 ...

  7. Kafka Stream

    Kafka Stream是Apache Kafka从0.10版本引入的一个新Feature(当前:1.0.0-rc0,参见:https://github.com/apache/kafka/releas ...

  8. shell 查看去掉windons中的换行符

    查看 cat -v 1.sh 替换 sed -i 's/\r//g' 1.sh

  9. awk 文本处理工具

    awk: 强大的文本处理工具,擅长对日志文件进行分析: 不仅用于Linux,也是任何环境中现在的功能最强大的数据处理引擎: 语法说明: awk '{pattern + action}' {filena ...

  10. Nuke的色彩匹配节点思路

    大致思路是首先利用node.sample()自带采样功能对整个画面逐像素采 样,我把采样函数写的比较灵活,可以定义一个采样族,即把整个画面分成若干块,逐块采样,很大程度上减少了采样工作量,但相对精度会 ...