IPSec逻辑体系架构
以下内容摘自业界唯一一本真正从全局视角介绍网络安全系统设计的图书——《网络工程师必读——网络安全系统设计》一书。目前该书在卓越网上仅需要70折:http://www.amazon.cn/mn/detailApp?ref=DT_BG&uid=479-8465001-9671654&prodid=bkbk975360
8.5.1 IPSec逻辑体系架构
有多个RFC定义了IPSec组件和体系架构。这些组件和它们之间的关系构成了IPSec体系架构。本部分主要讨论IPSec逻辑体系架色的基本组成,以及这些组件在Windows Server 2003中是如何协同工作的。
遵照IETF对IPSec协议的定义,在Windows Server 2003系统中,IPSec体系架构主要包括以下几个部分:
n 安全关联(SA)
n SA和密钥管理支持
n IPSec协议
n 算法和方法
1. 安全关联(SA)
安全关联(Security Associations,SA)是由互认策略、定义安全服务密钥机制和在IPSec通信双方保护安全通信的密钥组成。每个SA是为所负责的通信提供单方向,或者单一连接的安全保护。
因为SA仅是单方向的定义,所以每个IPSec会话需要两个SA。例如,如果IPSec协议的AH和ESP封装方式同时在通信双方的IPSec会话中应用,则需要4个SA。
IPSec安全通信的SA需要2个数据库:1个安全策略数据库(Security Policy Database,SPD),一个安全关联数据库(Security Association Database,SAD)。SPD保存SA建立所需的安全需求和策略需求。它被应用于出/入两个方向的数据包处理期间。IPSec检查出/入方向的数据包,以确保是符合安全策略需求。
SAD包括每个活动SA的参数。IKE协议是在SAD中自动封装的。SA建立后,SA信息将被存储在SAD中。图8-12显示了SA、SPD以及SAD之间的关系。对数据包进行IPsec处理时,要查询SPD和SAD。为了提高速度,SPD的每一条记录都应有指向SAD中相应记录的指针,反之亦然。对于外出处理,先查询SPD,获得指向SA的指针,再在SAD查询进行处理所需参数。如SA未建立,则应使用IKE协商,并建立SPD和SAD间的指针。对于进入处理,先查询SAD,对IPsec包进行还原,取出指向SPD的指针,然后验证该包应用的策略与SPD中规定的是否相符。
图8-12 SA、SAD、SPD之间的逻辑关系
一个IPsec系统中SPD分为进入SPD和外出SPD,均处于内核中。系统初始化时,将策略库中的每一条记录分别装入进入SPD和外出SPD中。为了确保SPD的有效性和安全性,应定期进行更新和刷新。SAD的每一条记录对应一个SA。SA经IKE协商得到,并以有序散列链表的形式组织。而且,SAD也分为进入SAD和外出SAD,分别与进入散列链表和外出散列链表相对应。进入散列链表用SA中的IPsec源地址计算散列值,外出散列链表用SA中的IPsec目的地址计算散列值。
SA的维护视SA的建立方式而定。如采用自动方式协商SA,则根据SA生存期的状态和序号计数器的溢出标志来决定SA的有效性。生存期分为软生存期和硬生存期。软生存期状态决定发送方是否可用SA发送数据包,硬生存期状态决定接收方是否可用SA来处理收到的数据包。当一个SA的软生存期期满时,发送方不能继续用其来发送数据包,此时,可以启动或触发IKE再协商一个。使用软、硬生存机制可保证通信的持续性。如采用手工方式建立SA,则不存在生存期,仅根据序号计数器的溢出标志来决定SA的有效性。如SPD或SAD过于庞大,则可将一部分置于用户空间。
2. SA和密钥管理
IPSec需要SA和密钥管理支持。ISAKMP(Internet Security Association and Key Management Protocol,互联网安全关联和密钥管理协议)通过协商、建立、修改和删除SA过程定义了身份认证和密钥交换框架。但它不定义实际的密钥交换,只提供框架。
IPSec需要支持手动和自动两种方式的SA和密钥管理。IKE是IPSec默认的自动密钥管理协议的。IKE是一种混合协议,合并了Oakley密钥交换协议的一部分和SKEME密钥技术协议。图8-13显示了ISAKMP、Oakley和SKEME协议之间的关系。
Oakley协议使用Diffie-Hellman密钥交换或者密钥许可算法来创建一个唯一、共享的的加密密钥,这个密钥是作为产生身份认证和加密所需的密钥材料。例如,一个共享加密密钥可以当作DES加密算法所需的密钥材料。Diffie-Hellman交换可以使用一个用来定义为在密钥交换过程中使用而创建的基础主号码长度的组号。号码越长,加密能力越强。典型的Diffie-Hellman组包括组1(密钥长度为768位)、组2(密钥长度为1024位)和组14(密钥长度为2048位)。图8-14显示了Oakley协议、Diffie-Hellman算法和有名的Diffie-Hellman密钥交换组之间的关系。
图8-13 ISAKMP与IKE,以及IKE与Oakley和SKEME协议之间的关系 图8-14 Oakley与Diffie-Hellman算法和Diffie-Hellman组之间的关系
Oakley协议定义了多种密钥交换过程模式。这些模式符合在ISAKMP协议中定义的两个协商步骤。步骤1,Oakley协议定义两种法则模式:主模式(Main mode)和攻击性模式(Aggressive mode)。Windows IPSec不采用攻击性模式。步骤2:Oakley协议只定义一个模式,即:快速模式(Quick mode)快速模式。
3. IPSec协议
为IP层(也即网络层)提供安全保护,IPSec定义了两个协议:身份认证头(Authentication Header,AH)和封装安全载荷(Encapsulating Security Payload,ESP)。这两个协议为SA提供安全服务。每个SA是由SPI(Security Parameters Index,安全参数索引)、目的IP地址和安全协议(AH或者ESP)头进行标识的。
在SA中,SPI是唯一的,用来在区别同一个接收请求计算机上的多个SA。例如,IPSec与两台计算机进行通信,则在每台计算机上就需要两个SA。一个SA服务于入方向的通信,一个SA服务于出方向的通信。因为对于这两个SA来说,IPSec通信端的IP地址是一样的,SPI就可以用于区别入方向和出方向SA。因为每个SA的加密密钥不同,所以每个SA必须被唯一标识。
图8-15显示了SA、SPI、目标IP地址和安全协议(AH或者ESP)之间的关系,其实也是IPSec协议组成和SA体系架构。从图中可以看出,在SA中包括了IP头和AH或者ESP头两个大部分。而在IP头中包括了IP地址,而AH或者ESP头中包括了SPI。具体这两个协议的包格式将在本章后面介绍。
图8-15 IPSec协议和SA体系架构
4. 算法和方法
IPSec协议使用身份认证、加密和密钥交换算法。在AH和ESP协议中,有两种身份认证或者加密哈希算法:HMAC-MD5 (Hash Message Authentication Code with MD5,哈段消息认证代码-消息摘要5) 和HMAC-SHA-1(Hashed Message Authentication code with Secure Hash Algoritm-1,带有安全哈然算法1的哈希消息身份认证代码)。在ESP中还可以使用DES和3DES(Triple DES)加密算法。图8-16显示了身份认证和加密算法,以及安全协议之间(AH或者ESP)的关系。
IPSec的身份认证方法是由IKE协议定义的,被分为三类:数字签名、公钥证书和预共享密钥。图8-17显示了IKE协议和这三种身份认证方法之间的关系。
图8-16 IPSec协议及与身份认证、加密算法和安全协议之间的关系 图8-17 IKE与身份认证方法之间的关系
本文转自王达博客51CTO博客,原文链接http://blog.51cto.com/winda/316212如需转载请自行联系原作者
茶乡浪子

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
VMware View使用安装配置
VMware View安装配置 本部分将告诉入门者View的组件,如何配置Active directory ,如何安装第一台Connection Server,如何创建池与指派桌面给用户,以及如何使用View Client 连接至虚拟桌面。 关于View的组件: View组件架构: 一、 Active Directory 准备 1、Connection Server必须要加入域,以及以后的虚拟桌面也一样。 2、创建一个用于虚拟桌面的“OU”组织单元。 3、创建一个“安全组”用于受权其他用户进行管理View.以及指定用户至虚拟桌面。 二、 安装第一台Connection Server 开始安装,运行Connection Server安装程序: 选择“Configure Windows Firewall automatically”,Next 选择Finish。 View Connection Server 配置: 1、需要IE 7以上版本,或是Firefox 3.0以上版本 2、Adobe Flash Paly 10以上支持 在IE中输入 https://connect...
-
下一篇
业务用例在SOA业务建模中的交叉使用
业务用例- 我们思考业务流程的出发点是从我们真实世界的业务运作着手。业务用例是一种从外部的视角来描述业务。更通常的情况是,一个业务用例就是一系列的行为和活动,而这些行为和活动将对特定的业务执行者带来价值,或者表示出一个业务是如何响应一个业务事件的。使用业务用例的一个关键点和价值也体现在它是对关键抽象业务流程的一个简单描述。因此业务用例的实现正好接业务流程模型。 业务流程模型- 业务流程模型捕获活动任务和子任务,数据流向,执行任务或其它业务信息的角色或系统。对于业务模型一般要创建一个描述现状的AS-IS模型,同时又会根据规划输出描述将来的TO-BE模型。 业务架构模型- 用于描述业务架构上下文,定义业务功能域,业务流程,IT系统以支持该业务架构。在这里可以参考EA企业架构,而业务架构模型的重点又主要是CBM(Component business modeling)业务组件模型,业务组件模型通过价值链的业务领域,从决策,管理和执行三个层面对业务进行组件化。注意在这里对于和业务目标相关的组件,我们需要Drill Down下一层,进行Functional area analysis功能域分...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL数据库在高并发下的优化方案
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Thymeleaf,官方推荐html解决方案