以下内容摘自业界唯一一本真正从全局视角介绍网络安全系统设计的图书——《网络工程师必读——网络安全系统设计》一书。目前该书在卓越网上仅需要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与身份认证方法之间的关系

IPSec逻辑体系架构相关推荐

  1. mysql 架构名_MySQL 逻辑体系架构

    [逻辑架构] 第一层:所包含的服务并不是MySQL所独有的技术.它们都是服务于C/S程序或者是这些程序所需要的 :连接处理,身份验证,安全性等等. 第二层:通常叫做 SQL Layer.在 MySQL ...

  2. [转]OpenContrail 体系架构文档

    OpenContrail 体系架构文档 英文原文:http://opencontrail.org/opencontrail-architecture-documentation/ 翻译者:@KkBLu ...

  3. 论坛报名 | 智能体系架构与芯片的下一个十年

    与6位图灵奖得主和100多位专家 共同探讨人工智能的下一个十年 长按图片或点击阅读原文,内行盛会,首次免费注册 2020年6月21-24日,第二届北京智源大会(官网:https://2020.baai ...

  4. 专家谈计算机体系架构研究获“图灵奖”

    来源:科学网   作者:王佳雯 韩扬眉 近日,有着"计算机界的诺贝尔奖"之称的"图灵奖"揭开面纱.国际计算机协会宣布,美国科学家约翰·轩尼诗和大卫·帕特森获得2 ...

  5. 基于面向服务体系架构(SOA)和面向资源体系架构(ROA)的业务组件模型

    引言 在<面向服务体系架构(SOA)和业务组件(BC)的思考>(以下简称< SOA 和 BC >)一文中介绍了基于面向服务体系架构(SOA)的组件模型,本文按照"分离 ...

  6. 嵌入式处理器的体系架构与内核详解

    嵌入式处理器的体系架构与内核详解 当我们谈及嵌入式处理器的体系架构时,一般都是想到Intel的X86架构和ARM公司的ARM架构.X86架构和ARM架构最大的不同点就是使用的指令集不同,前者使用的CI ...

  7. 一个细节翔实、可供参考的支付体系架构演进实例--转

    注:本文整理自美丽联合集团资深工程师陈宗在 ArchSummit 深圳 2017 上的演讲,原题为:<支付体系架构与实践>. 上篇:支付体系架构演进 在过去 4 年的时间里,作为面向亿级用 ...

  8. 如何构建 FinTech 科学反欺诈体系|架构师实践日

    微众圈 > 微信资讯 > 科技 > 文章 如何构建 FinTech 科学反欺诈体系|架构师实践日 摘自公众号:七牛云发布时间:2017-4-11 21:28:33 FinTech,即 ...

  9. 【转】BI 入门: 体系架构及相关技术

    (1) 老板,你要这么多数据做什么?         假如你是一个商品零售公司的老板.     你的公司很先进,已经实现了业务信息化,每一笔销售单据都保存在数据库中,日积月累,已经保存了十余年的销售数 ...

最新文章

  1. 漂浮机器人新进展:Cimon的头部将为国际空间站带来人工智能
  2. 如何成为一名优秀的UI/UX设计师?
  3. python里的关键字有哪些_Python中的yield关键字做了什么?
  4. 动态修改属性设置 easyUI
  5. python 支持向量机预测结果相同_Python机器学习算法 — 支持向量机(SVM)
  6. esp虚拟服务器,esp8266接入云服务器
  7. 牛刀小试:使用Reactive Extensions(Rx),对短时间内多次发生的事件限流
  8. 惠普g260鼠标宏软件_电竞外设再添新成员,微星DS102电竞鼠标正式发布
  9. Android: 例如用户模块 保持登录后数据实时同步改变
  10. ceph cluster monitor
  11. 推荐系统的常用算法概述
  12. 190331每日一句
  13. Python爬虫之JS逆向分析技巧
  14. 极客时间MySQL实战45讲笔记
  15. ②五元物联网芯片点亮led 庆科EMW3060 , 运行alios- blink程序
  16. 如何解决tomcat启动时出现 Server Tomcat v9.0 Server at localhost failed to start.
  17. 【荧光光谱】用matlab绘制荧光光谱图
  18. PG 锁类型、级别、死锁解决
  19. World Locking Tools for Unity (五)安装部分
  20. 考研计算机专业课时长,计算机考研复习经验

热门文章

  1. 关于系统用户数,并发用户数,在线用户数,吞吐量
  2. 十一、Struts2封装请求参数的方式
  3. ARCGIS开发中类型XXX在未被引用的程序集中定义的解决办法
  4. 4. XHTML语法
  5. 跟开发对接,要了解哪些数据库知识?
  6. 如何让产品不受到技术限制快速迭代?
  7. 【运营】产品经理必须了解的运营方法,让你的产品有产有销
  8. IPV4 VS IPV6 谈谈省级ipv6的必要性
  9. vim-plug 插件安装
  10. Linux解压有思路