《数据通信与网络》笔记--IPSec

时间:2022-06-14 03:49:11

1.IP层的安全:IPSec

IP层安全(IP security,IPsec)是由因特网工程任务组(IETF)设计用来为IP层的分组提供安全的一组协议。IPsec帮助

生成经过鉴别的与安全的IP层的分组,如下图:

《数据通信与网络》笔记--IPSec

1.1.两种方式

IPSec以2种不同的方式运行,传输方式和隧道方式,如下图所示:

《数据通信与网络》笔记--IPSec

                                                                    传输方式

在传输方式(transport mode)下,IPsec保护传输层到网络层传递的内容,换言之,传输方式保护网路层的有效载荷,在网络层

中封装有效载荷。

传输方式通常用于主机到主机的数据保护,发送主机使用IPsec鉴别和/或加密来自传输层的有效载荷。接受主机使用IPSec检验鉴别

和/或解密IP分组并将它传递给传输层。


《数据通信与网络》笔记--IPSec

                                                                    隧道方式
在隧道方式(tunnel mode)下,IPsec保护整个IP分组,包括头部,将IPsec加密方法用与整个分组,然后增加一个新的头部。隧道
方式通常用于两个路由器之间,或者一个主机与一个路由器之间以及一个路由器与一个主机之间。换言之,当发送放或者接收方不是主机
时,我们使用隧道方式,对来自发送方与接收方之间的侵入提供真个原始分组保护。它好像整个分组通过假想的隧道进行传输。


1.2.两种安全协议

IPSec定义了两种
安全协议,鉴别头部(AH)协议和封装安全载荷(ESP)协议,在IP层提供鉴别和/或加密。

1.2.1.鉴别头部协议

鉴别头部协议(Authenticatin Header Protocol)用于鉴别源端主机以确保IP分组所携带载荷的完整性。协议使用散列函数和一个
对称秘钥生成报文摘要,并将摘要插入鉴别头部中。根据其运行方式(传输方式或隧道方式),将AH插入到相应的位置。下图表示了
在传输方式下各个字段以及鉴别头部的位置。
《数据通信与网络》笔记--IPSec

当由IP数据报携带鉴别头部时,IP头部中协议字段的初始值就替换为值51。在鉴别头部内的一个字段(写一个头部字段)规定了协

议字段的初始值(由IP数据报携带的有效载荷类型)。加入鉴别头部的步骤如下:

a.     鉴别头部加入到有效载荷中,将鉴别数据字段的值置为0.

b.     散列处理是根据总的分组计算的。但是,IP头部中只有在传输过程中不发生改变的那些字段才包含在报文摘要(鉴别数据)的

计算过程中。

c.     将鉴别数据加入到鉴别头部中协议字段的值改为51,将IP头部加入。

1.2.2.封装安全载荷

AH协议并不提供保密性,只提供源端鉴别和数据的完整性。IPSec后来定义了一个可选的称为封装安全载荷
(Encapsulating Security Payload, ESP)的协议,它提供源端鉴定,完整性以及保密性。ESP增加了一个头部和一个尾部。注意,
ESP的鉴别数据加载分组的末端。这样使计算更容易。下图表示了ESP的头部和尾部的位置。


《数据通信与网络》笔记--IPSec


当IP数据报携带ESP的头部和尾部时,IP头部中协议字段的值更改为50。在ESP尾部内有一个字段(下一个头部字段)保留着协议字段的初始值

(IP数据报所携带的载荷类型,比如TCP或UDP)。ESP过程遵循下列步骤:

a.  对ESP尾部加入到有效载荷中。

b.  对有效载荷和尾部进行加密。

c.  加入ESP头部。

d.  使用ESP头部,有效载荷以及ESP尾部生成鉴别数据。

e.  将鉴别数据加入到ESP尾部的末尾。

f.  将协议值改为50后,在加入到IP头部。

1.2.3.AH和ESP

ESP协议是在AH协议已经使用后设计的,ESP除了能做AH能做的任何事情外,还能提供额外的功能(保密性),问题是,为什么我们需要
AH,答案是我们并不需要,但是AH的实施已经包含在一些商业产品中,这就是说AH将仍然是因特网的一部分,直至这些产品被淘汰。

1.2.4.IPSec提供的服务

AH和ESP两个协议可在网路层对分组提供几种安全服务。

访问控制:IPSec通过安全关联数据库(SADB)简介地提供访问控制,当一个分组到达目的端时,如果还没有为该分组建立安全关联,那么就

丢弃该分组。

报文鉴别:AH和ESP两者通过使用鉴别数据提供报文的完整性。生成一个数据摘要,该摘要由发送方发给接收方,由接收方进行检验。

实体鉴别:在AH和ESP中,用发送方发送的安全关联和秘钥散列数据摘要鉴别数据的发送方。

保密性:在ESP中报文加密提供保密性,但是AH没有提供保密性。如果需要保密性,我们应该用ESP而不是AH。

避免重放攻击:在两个协议中,用序列号和一个滑动窗口防止重放攻击(reply 
attack)。当建立安全关联时,每个IPSec头部都有一个

唯一的序列号,序列号从0开始增加直到2^32-1,当序列号到达最大值时,他复位为0,同时删除旧的安全关联并建立新的安全关联。为
了防止处理重复的分组,IPSec要求接收方使用固定大小的窗口。接收方固定窗口大小的默认值是64。

1.3.安全关联

IPSec需要使用一个称为安全关联(security Association,SA)机制建立一组安全参数。
因为我们已知IP是一个无连接的协议,每个数据报彼此独立,对这种类型的通信,IPSec使用下面的方法建立安全关联:
当发送方第一次有一个数据报要按发送给某一特定的接收方是,在发送方与该特定的的接收方之间建立一组安全参数,该组安全参数
可保存用作以后向同一个接收方发送IP分组传输。
一个简单入和出安全关联例子如下:
《数据通信与网络》笔记--IPSec
当Alice需要向Bob发送数据报时,他使用IPSec的ESP协议,用密钥为x的SHA-1执行鉴别,而用密钥为y的DES执行解密,
当Bob需要向Alice发送数据报时,他使用IPSec的AH协议,用密钥为z的MD5执行鉴别。

安全关联数据库(SADB)

安全关联数据库可以是很复杂的。如果Alice要发送多份报文给多个人,Bob需要接收来自多个人的报文时,情况就相当复杂。
另外每一方都需要有人关联和出关联才能允许双向通信。换言之,我们要有一组关联,他被聚合成一个数据库,这个数据库称为
安全关联数据库(security association database,SADB)。

1.4.因特网密钥交换(IKE)

现在我们来解决最后的部分,如何创建SADB。因特网密钥交换(Internet key exchange,IKE)是用于建立SADB中入关联于

出关联的一个协议。

IKE是在其他三个协议(Oakley,SKEME和ISAKMP)之上的一个更复杂的协议。如下图所示:

 
《数据通信与网络》笔记--IPSec

Oakley协议时由Hilarieorman开发的一个协议,他是在Diffie-Hellman密钥交换方法基础上的一个密钥生成协议,但做了一些改进,

Oakley是一个无格式的协议,就是说没有规定交换的报文格式。

SKEME是有HugoKrawcyzk设计的,它是另一个密钥交换协议,它使用公钥密码和密钥交换作为实体鉴别。

因特网安全关联和密钥管理协议(Internet SecurityAssociation and Key Management Protocol, ISAKMP)是由国家安全机构(NSA)

设计的协议,它具有实现IKE定义的交换。在生成标准化的和格式化的保温过程中,它允许IKE交换的多个分组,协议以及参数,从而生成安

全关联。

2.虚拟专用网(VPN)

虚拟专用网(virtual private network,VPN)是一个在大型公司中获得广泛应用的技术,为了实现公司内部和公司之间的通信,
他们使用因特网,但在内部通信中又必须进行保密,VPN,是将IPSec协议用到IP数据报的安全性上。
VPN技术在隧道方式下使用IPSec来提供鉴别,完整性以及保密性。
隧道方式:组织机构中每个专用的IP数据报都封装到另一个数据报中。为了在隧道技术中使用IPSec,VPN需要使用两种寻址方式,如图:
《数据通信与网络》笔记--IPSec

公共网络(因特网)负责将分组从R1传送到R2,外部人员无法解密分组的内容,也不能解密源地址和目的地址,解密过程发生在R2,
它找到分组的目的地址并转发该分组。

《数据通信与网络》笔记--IPSec的更多相关文章

  1. 《数据通信与网络》笔记--虚电路网络:帧中继和ATM

    在之前的文章中已经介绍过虚电路交换,详细请参见:http://blog.csdn.net/todd911/article/details/9069447 这边介绍下使用虚电路交换的2中WAN技术:帧中 ...

  2. 《数据通信与网络》笔记--TCP中的拥塞控制

    1.拥塞窗口 发送方窗口的大小不仅取决于接收方,而.而且还取决于网络拥塞的情况. 发送方有2种信息:接收方通告的窗口大小和拥塞窗口的大小,实际的窗口大小事这两者中的最小者. 实际窗口大小 = min( ...

  3. 《数据通信与网络》笔记--QoS

    QoS(Quality of Service)服务质量,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术. 1.QoS参数 衡量服务质量QoS的参数主要包括: 端到端延迟(Delay) ...

  4. 《数据通信与网络》笔记--SSL/TLS

    上次简单地介绍了IP层的安全,今天来介绍下在传输层提供安全性最主要的2个协议:安全套接字层(SSL)协议和传输 层安全(TLS)协议.TLS实际上就是SSL的IETF版本. 1.SSL服务 设计安全套 ...

  5. 《数据通信与网络》笔记--SCTP

    SCTP(stream control transmission protocol)是一种新的可靠的,面向报文的传输层控制协议.它兼有UDP和TCP的特性,它是可靠的面向报文的协议,它保存报文的边界, ...

  6. 网络笔记02数据解析 -1-JSON解析

    1.JSON解析 1.JSON介绍 JSON是最网络传输数据最为广泛的数据格式,没有之一,出身草根,是Javascript的子集,专门负责描述数据格式.Javascript是网页开发的一种脚本语言,和 ...

  7. 网络笔记-unity 实现AOP

    该文章来自网络,如有冒犯,请及时联系! 前提 引用以下文件 Microsoft.Practices.ObjectBuilder2.dll Microsoft.Practices.Unity.dll M ...

  8. Android网络笔记

    (1)网络状态: ConnectivityManager负责管理所有连接的服务(如:系统服务,3G/4G,WiFi,蓝牙等).查看网络状态的类是NetWorkInfo,它是通过Connectivity ...

  9. Github上点赞90k的计算机基础、操作系统、网络笔记,赶紧收藏

    最近,有粉丝发消息给我,说想要好好学习计算机,但是找不到门路啊,所以小编打算给大家推荐一些很奈斯的计算机学习的资料,希望大家赶紧收藏起来好好学习. 资料分为四份,给大家展示了部分内容,头条受限,无法全 ...

随机推荐

  1. 斐波拉契数列加强版——时间复杂度O(1),空间复杂度O(1)

    对于斐波拉契经典问题,我们都非常熟悉,通过递推公式F(n) = F(n - ) + F(n - ),我们可以在线性时间内求出第n项F(n),现在考虑斐波拉契的加强版,我们要求的项数n的范围为int范围 ...

  2. MongoDB数据访问[C#]附源码下载(查询增删改) 转载

    安装完MongoDBhttp://localhost:28017/监测是否成功! vs 2008 C# MongoDB 源代码下载地址:http://download.csdn.net/source/ ...

  3. C#并行和多线程编程

    5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq   5天玩转C#并行和多线程编程系列文章目录 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel 5天玩转C#并行和多线 ...

  4. IOS百度地图之--->第二篇《大头针__简单使用及自定义》

    呵呵!大家不要只看帖不回帖么,要不然我都没有积极性了. 第一步:创建一个用来呈现mapview的viewcontroller,不废话直接贴代码        BasicMapViewControlle ...

  5. 01_Linux安装

    一.VMware创建一个虚拟机 下一步   .下一步  .下一步 ..前方高能 二.安装CentOS 6.7 next  ->  选择 中文简体  -> 美式键盘,直接下一步  ,一直下一 ...

  6. service相关

    本篇仍以问题为驱动 一.什么时Service? Service是Android程序中四大基础组件之一,它和Activity一样都是Context的子类,只不过它没有UI界面,是在后台运行的组件.Ser ...

  7. PCB板的三种敷铜方法解析

    1 do not pour over all same net objects:仅仅对相同网络的焊盘进行连接,其他如覆铜.导线不连接. 2 pour over all same net objects ...

  8. Nett的Http表头赋值

    DefaultFullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseSta ...

  9. Java读取excel的示例

    一.引用的jar包,apache的POI // https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml compile group: ' ...

  10. Disk Genius 彻底清理硬盘空闲