协议的安全体系结构.docx
《协议的安全体系结构.docx》由会员分享,可在线阅读,更多相关《协议的安全体系结构.docx(47页珍藏版)》请在冰豆网上搜索。
![协议的安全体系结构.docx](https://file1.bdocx.com/fileroot1/2023-1/22/1c0baf34-e55e-4c11-b5f5-86eedc632776/1c0baf34-e55e-4c11-b5f5-86eedc6327761.gif)
协议的安全体系结构
组织:
中国互动出版网(http:
//www.china-
RFC文档中文翻译计划(http:
//www.china-
E-mail:
ouyang@china-
译者:
尹欣袁磊陈代兵(theredfoxxyin@)
译文发布时间:
2001-4-3
版权:
本中文翻译文档版权归中国互动出版网所有。
可以用于非商业用途自由转载,但必须保留本文档的翻译及版权信息。
NetworkWorkingGroupS.Kent
RequestforComments:
2401BBNCorp
Obsoletes:
1825R.Atkinson
Category:
StandardsTrack@HomeNetwork
November1998
RFC2401IP层协议安全结构
(RFC2401SecurityArchitecturefortheInternetProtocol)
本备忘录状态:
ThisdocumentspecifiesanInternetstandardstrackprotocolforthe
Internetcommunity,andrequestsdiscussionandsuggestionsfor
improvements.Pleaserefertothecurrenteditionofthe"Internet
OfficialProtocolStandards"(STD1)forthestandardizationstate
andstatusofthisprotocol.Distributionofthismemoisunlimited.
版权声明
Copyright(C)TheInternetSociety(1998).AllRightsReserved.
目录:
1.介绍4
1.1文档内容摘要4
1.2阅读对象4
1.3相关文档5
2设计目标5
2.1目的/目标/需求/问题描述5
2.2警告和假设5
3.系统概况6
3.1IPsec能做什么6
3.2IPsec怎样工作6
3.3IPsec实现方式7
4.安全连接(SecurityAssociation)7
4.1定义和范围7
4.2安全连接的功能性8
4.3安全连接的组合9
4.4安全连接数据库10
4.4.1安全策略数据库(SPD)10
4.4.2选择符12
4.4.3安全连接数据库(SAD)14
4.5安全连接的基本组合16
4.6SA和密钥管理18
4.6.1手动技术18
4.6.2自动SA和密钥管理18
4.6.3定位一个安全网关19
4.7安全连接和多播19
5.IP传输处理20
5.1输出IP传输处理20
5.1.1选择使用一个SA或者SA束20
5.1.2隧道模式的头结构20
5.2输入IP传输处理22
5.2.1选择使用一个SA或者SA束22
5.2.2AH和ESP隧道的处理23
6.ICMP处理(IPSec相关内容)23
6.1PMTU/DF的处理23
6.1.1DF位23
6.1.2PathMTU发现(PMTU)23
7.审查25
8.在支持信息流安全的系统中的运用25
8.1安全连接与灵敏性数据的关系26
8.2灵敏度一致校验26
8.3SPD的附加MLS属性26
9.性能问题27
10.遵守的要求27
11.安全考虑27
12.与RFC1825的不同28
附录A——词汇表28
附录BPMTU/DF/分段问题的分析与讨论29
B.1DF位29
B.2分段30
B.3PathMTU发现32
B.3.1标识原始(originating)主机33
B.3.2PMTU的计算34
B.3.3维护PMTU数据的粒度(granularity)35
B.3.4PMTU的每个套接口维护36
B.3.5通向传输层的PMTU数据的传输36
B.3.6PMTU数据的生命期36
附录C序列空间窗口代码(SequenceSpaceWindowCode)例子36
AppendixD--CategorizationofICMPmessages38
References38
Disclaimer40
AuthorInformation40
版权说明41
1.介绍
1.1文档内容摘要
本备忘录定义了IPsec适应系统的基本结构。
这一结构的目的是为IP层传输提供多种安全服务。
它包括IPv4和IPv6两种环境。
本文档描述了这种系统的目的,它们的构成和它们如何彼此结合以及如何嵌入IP环境。
本文档还描述了IPsec协议提供的安全服务以及如何在IP环境中使用这些服务。
本文档不涉及IPsec结构的所有方面。
后续文档将涉及额外的具有更多高级特性的的结构细节。
例如,在NAT环境下IPsec的使用,对IP多播更完善的支持等等。
本文将根据潜在的必须的功能讨论IPsec安全结构的基本构成。
额外的RFCs(参看1.3节指向的文档)定义了下面四个方面的协议:
a.安全协议――头部认证(AH)和封装安全负载(ESP)
b.安全连接――它们是什么,如何工作,怎样管理,怎样联合
c.密钥管理――手动的,自动的(TheInternetKeyExchange(IKE))
d.认证和加密算法
本文档不是因特网安全结构的综述。
仅涉及IP层的安全,这种安全是通过加密和协议安全机制的组合来实现的。
1.2阅读对象
本文档的阅读对象包括IP安全技术的实现者和其他对获得这一系统背景知识感兴趣的读者,特别是这一技术的预期用户(最终用户或系统管理员)。
附录提供了术语表以帮助阅读对象弥补背景/词汇中的不足。
本文档假设读者熟悉IP层协议,相关网络技术,一般安全术语和概念。
1.3相关文档
如上面所提及的,其他文档提供了一些IPsec组件以及他们相互关系的细节定义。
它们包括在下面列出的RFCs中:
a.”IPSecurityDocumentRoadmap”[TDG97]――该文档为本系统中使用到的加密和认证算法的描述提供了指南
b.安全协议――RFCs描述了头部认证(AH)[KA98a]和封装安全负载协议(ESP)[KA98b]
c.认证和加密算法――每一个算法都有一个独立的RFC
d.自动密钥管理――”TheInternetKeyExchange(IKE)”[HC98],”InternetSecurityAssociationandKeyMangementProtocol(ISAKMP)”[MSST97],”TheOAKLEYKeyDeterminationProtocol”[Orm97],”TheInternetIPSecurityDomainofInterpretationforISAKMP”[Pip98]
2设计目标
2.1目的/目标/需求/问题描述
IPsec被设计成为能够为IPv4和IPv6提供可交互操作的高质量的基于加密的安全。
安全服务集提供包括访问控制、无连接的完整性、数据源认证、抗重播(replay)保护(序列完整性(sequenceintegrity)的一个组成部分)、保密性和有限传输流保密性在内的服务。
这些服务是基于IP层的,提供对IP及其上层协议的保护。
这些目标是通过两大传输协议:
头部认证(AH)、封装安全负载(ESP)和通过密钥管理过程和协议的使用来完成的。
使用于任何环境中的IPsec协议集及其使用的方式是由用户、应用程序、和/或站点、组织对安全和系统的需求来决定。
当正确的实现、使用这些机制时,它们不应该对不使用这些安全机制保护传输的用户、主机和其他英特网部件产生负面的影响。
这些机制也被设计成算法独立的。
这一模块性允许选择不同的算法集而不影响其他部分的实现。
例如:
如果需要,不同的用户通讯可以采用不同的算法集。
定义一个缺省的标准集使全球英特网更容易交互。
这些算法辅以IPsec传输保护和密钥管理协议的使用为系统和应用开发者采用基于IP层的高质量的加密的安全技术提供了途径。
2.2警告和假设
IPsec协议及相关缺省算法为英特网传输提供高质量的安全。
但是,采用这些协议所提供的安全最终依赖于它们实现的质量,其外在表现为标准集的范围。
此外,一个计算机系统或网络的安全是由许多因素决定的,它包括人、物、流程、有危险的散发(compromisingemanations)以及计算机安全经验(practice)。
因此IPsec仅仅只是综合性系统安全结构的一个组成部分。
最终,使用IPsec提供的安全很大程度上依赖于IPsec实现执行时操作所处操作环境中的诸多因素。
例如,操作系统安全缺陷,较差质量的随机数源、不良的系统管理协议和经验等等都能降低使用IPsec所提供的安全。
以上这些环境因素均不在这一或其他IPsec标准的讨论范围内。
3.系统概况
本节提供IPsec工作原理、系统构成以及如何组合提供上述安全服务的进一步说明。
这一描述的目的是使读者对整个流程、系统有一个全貌,了解它是怎样适应IP环境的,为本文档的后续章节提供一个简述。
在后续章节中将对每一个部分作更详细的描述。
IPsec实现工作于一个主机或一个安全网关的环境中,对IP传输提供保护。
所提供的保护是基于:
由用户或系统管理员建立和维护的安全策略数据库(SPD)所定义的需求;由用户或系统的管理员建立的具有约束性应用操作所定义的需求。
通常,通过基于同数据库(SPD)入口相匹配的IP层和传输层头部信息的三种处理模式之一来选择包。
每一个包或被给予IPsec安全服务或被丢弃或被允许通过IPsec,这都基于选择符定义的相应数据库策略。
3.1IPsec能做什么
IPsec为IP层提供安全服务,它使系统能按需选择安全协议,决定服务所使用的算法及放置服务所需密钥到相应位置。
IPsec用来保护一条或多条主机与主机间、安全网关与安全网关间、安全网关与主机间的路径。
(在IPsec文档中,“安全网关”指的是执行IPsec协议的中间系统(intermediatesystem)。
例如,路由器或实现了IPsec的防火墙,我们称之为“安全网关”)
IPsec能提供的安全服务包括访问控制、无连接的完整性、数据源认证、抗重播(replay)保护、保密性和有限传输流保密性在内的服务。
因为这些服务均在IP层提供,所以任何高层协议均能使用它们。
例如,TCP,UDP,ICMP,BGP等等。
IPsecDOI也支持IP压缩协商[SMPT98]。
当在IPsec中使用加密而阻碍低层压缩的有效性时,IP压缩协商被激活。
3.2IPsec怎样工作
IPsec使用两个协议来提供传输安全――头部认证(AH)、封装安全负载(ESP)。
这两个协议都在各自的RFCs[KA98a,KA98b]中有详细的描述。
●IP头部认证(AH)[KA98a]提供无连接的完整性验证、数据源认证、选择性抗重播服务。
●封装安全负载(ESP)[KA98b]提供加密、有限传输流加密。
它也提供无连接的完整性验证、数据源认证、抗重播服务。
(无论ESP什么时间被调用,这些安全服务的某一集合必须被应用)
●AH和ESP均是基于密钥的分布和与这些安全协议相关的传输流管理,AH和ESP均可作为访问控制的媒介物
这些协议或者独立使用或者组合使用以提供IPv4和IPv6环境下所需的安全服务集。
每一个协议支持两种使用模式:
传输模式,隧道模式。
在传输模式下,协议为高层提供基本的保护;在隧道模式下,协议使IP包通过隧道传输。
两种模式的区别将在第4章节讨论。
IPsec允许用户(系统管理员)控制安全服务的粒度(granularity)。
例如,用户可以在两个安全网关间创建单一加密隧道传输所有信息,也可以为每一通过这些网关通讯的主机对的每一个TCP连接创建一个独立的加密隧道。
IPsec管理必须体现下列特性:
●使用哪些安全服务及在哪种组合中被使用
●指定安全保护应该使用的粒度
●对基于加密的安全产生影响的算法
因为这些安全服务使用共享的安全值(密钥),IPsec依赖一组独立的机制来存放这些密钥。
(这些密钥用作认证、完整性验证及加密服务。
)本文档需要支持手动、自动两种分配方式。
它为自动密钥管理定义了一个特殊的基于公共密钥的方法(IKE—[MSST97,Orm97,HC98]),但其他自动密钥分配技术也可以(MAY)使用。
3.3IPsec实现方式
在主机上或路由器、防火墙(创建安全网关)的连接处,IPsec可以有几种实现方式。
下面提供几个几个通常的例子:
a.IPsec完全嵌入原有的IP层实现。
这需要涉及IP源码和这对主机和网关要都是适用的。
b.“Bump-in-the-stack”(BITS)实现。
IPsec实现于原有IP协议栈的下部,处于原有的IP和网络设备驱动之间。
在这种情况下并不需要涉及IP协议栈的源码,所以该实现方法适于遗留系统。
这种方法多在主机上采用。
c.采用外接加密处理设备是军方、金融系统常用的网络安全系统设计方案。
它有时被称为“Bump-in-the-wire”(BITW)实现。
这种设计方案设计来服务于主机或网关(或两者兼有)。
通常这种BITW设备是可设定IP地址的。
(beIPaddressable)当只支持一个单独的主机时,它和BITS方案就十分相似。
但作为支持一个路由器或防火墙时,它必须象个网关一样操作。
4.安全连接(SecurityAssociation)
这节定义了基于IPv4和IPv6环境下实现AH、ESP对安全连接管理的需求。
安全连接的概念是IPsec的基础。
AH和ESP都使用了SAs,IKE的主要功能是建立和维护安全连接。
所有AH和ESP的实现都必须支持下面描述的安全连接的概念。
本节余下部分描述了安全连接管理的各个方面,定义了SA策略管理、传输处理、SA管理技术所需的特性。
4.1定义和范围
安全连接(SA)是一个单向“连接”,它为通过它的传输提供安全服务。
SA通过AH或ESP但不是两者同时使用而提供安全服务。
如果AH和ESP同时用于传输流的保护,那么应该创建两个或多个SA为传输流提供保护。
通常为了安全,两台主机间或两个安全网关间或两个安全连接间(每个方向一个)都需要双向通讯。
安全连接由三个部分内容唯一标识――安全参数索引(SPI),IP目的地址,安全协议(AH和ESP)标识符。
原则上,目的地址可以是一个点播地址,IP广播地址,或多播组地址。
然而,当前IPsecSA管理机制只为点播SAs作了定义。
因此,在接下来的讨论中,SAs将只描述点到点通讯的内容,即使这一概念也可以适用点到多的情况。
如上所述我们定义了两种类型的SAs:
传输模式,隧道模式。
传输模式SA是两台主机间的安全连接。
在IPv4环境中,传输模式安全协议头紧接在IP头和任何选项之后,在任何更高层协议之前(例如TCP或UDP)。
在IPv6环境中,安全协议头出现在基本IP头和扩展之后,但也许出现在目的选项的前或后,并在更高层协议之前。
在采用ESP时,传输模式SA仅为更高层协议安全服务提供,而不为IP头或任何ESP头以前的扩展头提供服务。
在采用AH时,这种保护也被扩展到IP头的可选部分、扩展头的可选部分和可选项(包括IPv4头,IPv6Hop-by-Hop扩展头,或IPv6目的扩展头)。
为了解更多关于AH给予的有效区域,请参看AH规范[KA98a]。
隧道模式SA必然是运用于IP隧道的SA。
只要安全连接的任意一端是安全网关,SA就必须是隧道模式。
因此两个安全网关之间总是隧道模式,同样主机和安全网关间也必然是隧道模式。
注意在传输是指向安全网关的情况下,例如SNMP命令,安全网关是作为主机提供服务的,因而传输模式是被允许的。
但在这种情况下,安全网关不再扮演网关的角色,例如它不再转发传输流。
两个主机间也可以建立隧道模式SA。
由于为了避免IPsec包分段、重组时出现的潜在问题以及这一环境中安全网关后同一目的地存在多重到达路径(例如通过不同的安全网关),对于任意(转发传输流)SA包括安全网关都应该可以支持隧道模式。
对于隧道模式SA,有外部(outer)IP头,内部(inner)IP头。
外部IP头定义了IPsec处理的目的地,内部IP头定义了包最终地址。
安全协议头出现在外部IP头后内部IP头前。
如果在隧道模式中使用AH,外部IP头的部分将受到保护。
同样所有隧道化(tunneled)IP包也受到保护(即所有内部IP头、更高层协议受到保护)。
如果使用ESP,则仅对隧道化的包给予保护而不保护外部头。
总而言之:
1.主机必须支持传输模式和隧道模式;
2.安全网关仅需要支持隧道模式即可。
如果它支持传输模式,仅当安全网关作为主机时使用,例如作为网络管理。
4.2安全连接的功能性
由SA提供的安全服务集依赖于安全协议的选择,SA模式,SA端点以及在协议范围内可选服务的选择。
例如,AH提供数据源认证和IP数据报无连接的完整性验证(以后均称为认证)。
准确的讲,认证服务是使用AH的安全连接粒度的功能。
这将在4.4.2节讨论――选择符。
对于分离的接收者,AH提供抗重播(部分序列完整性)服务以防范拒绝服务的攻击。
当不需要保密(或不允许,例如政府限制加密的使用)时,使用AH协议是适合的。
AH也为IP头可选部分提供认证。
这在某些情况下是有必要的。
例如,如果在收发双方间,IPv4选项或IPv6扩展头的完整性必须被保护到路由时,AH能提供这种服务(除了IP头不可预料的,易变的部分)。
ESP可有选择的为传输提供保密。
(保密服务的长度部分的依赖于所使用的加密算法。
)ESP也可以有选择的提供认证服务(正如上面所定义的)。
如果一个ESPSA认证经过协商,接受方也可以选择具有和AH抗重播服务一样特性的增强抗重播服务。
由ESP提供的认证范围比AH所提供的要窄。
例如,ESP头外部的IP头就不受保护。
如果仅上层协议需要被认证,那么ESP认证是个合适的选择并且它具有比使用AH封装ESP时更高的空间效率。
要注意的是尽管保密和认证均是可选的,但是他们不能都被省略。
它们中至少有一个必须被选择。
如果选择保密服务,则两个安全网关间的ESP(隧道模式)SA能提供局部传输流保密。
隧道模式的使用允许内部IP头倍加密,隐藏(最终的)传输源和目的的标识。
而且,也可能调用ESP负载填充(ESPpayloadpadding)隐藏包的尺寸,甚至隐藏传输的外部特性。
在拨号环境下,当一个移动用户被指定一个动态IP地址并对一个联合防火墙(corporatefirewall)建立一个(隧道模式)ESPSA时,也可以提供类似的传输流保密服务。
值得注意的是粒度(granularity)较精巧的SAs通常比那些来自很多用户传输流粒度较粗糙的SAs更容易受到传输分析。
4.3安全连接的组合
穿过独立SA的IP数据报通过严密的安全协议(AH或ESP)受到保护。
对于特殊的传输流,而仅采用单一的SA时不能实现的。
在这种情况下,使用多重SAs以实现安全策略是必要的。
术语“安全连接束”或“SA束”定义为一个SAs序列(sequence),传输必须通过它来满足一个安全策略。
策略定义了序列的顺序。
(值得注意的是由束组成的SAs可能终止于不同的端点。
例如,一个SA可以在移动主机、网关和另一个网关之间延展,嵌套的SA可以延展到网关后的主机。
)
安全连接可以通过两种方式组合成束:
传输邻接(transportadjacency)和隧道迭代(iteratedtunneling)。
●传输邻接指的是对同一个IP报文使用多于一个安全协议,而不采用隧道方式。
这种联合AH和ESP的方法只允许一级联合;更多的嵌套并不能增加效益(假设每一个协议中使用了足够强壮的算法),因为这一过程仅被执行于IPsec最终目的地的IP实例处。
主机1------------安全网关1-------------Internet-----------安全网关2------------主机2
||||
||||
|--------------------------------安全连接1(ESP传输)-------------------------------|
--------------------------------------安全连接2(AH传输)-------------------------------------
●隧道迭代指的是一种对安全协议的多层次应用,这一安全协议是通过IP隧道实现的。
这种方法允许多重叠代,这是因为每一个隧道可能沿着一路径在不同的IPsec站点(IPsecsite)开始、结束。
除了那些能通过合适的SPD入口被定义的以外,在中间安全网关处对于ISAKMP传输不希望采用特殊的处理。
(参看4.5节的例3)
有三种基本的隧道迭代情况――仅情况2,3需要支持:
1.对于SAs两个端点都是同样的――内部隧道和外部隧道采用AH或ESP,但主机1几乎是不可能把两个指定成一样的。
即AH的内部不可能是AH,ESP的内部不可能是ESP。
主机1------------安全网关1-------------Internet-----------安全网关2------------主机2
||||
||||
|--------------------------------安全连接1(隧道)-------------------------------------|
--------------------------------------安全连接2(隧道)------------------------------------------
2.对于SAs一个端点是一样的――内部隧道和外部隧道采用AH或ESP。
主机1------------安全网关1-------------Internet-----------安全网关2------------主机2
||||
||||
|------------------------安全连接1(隧道)--------------------------|
--------------------------------------安全连接2(隧道)------------------------------------------
3.任意一个端点都不同――内部隧道和外部隧道采用AH或ESP。
主机1------------安全网关1-------------Internet-----------安全网关2------------主机2
||||
||||
|----------------安全连接1(隧道)----------------|
--