⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc2408.txt

📁 RFC规范的翻译稿
💻 TXT
📖 第 1 页 / 共 5 页
字号:
注意,安全服务被每个协商状态不同的应用。例如,不同的组织在每个协商状态期间被认证。在第一个状态,被认证的组织可能是ISAKMP服务器/主机,当第二个状态时,用户或应用级程序被认证。
2.4  标识安全联盟
当ISAKMP在两个系统之间引导安全通道时,它不能假设安全服务存在,必须对自己提供一些安全保护。因此,ISAKMP认为一个ISAKMP安全联盟与其它类型的不同,并且ISAKMP在它们自己的名称空间内处理它自己的ISAKMP SA。ISAKMP用ISAKMP头中的这两个cookie域来标识ISAKMP SA。ISAKMP头中的信息ID和建议有效载荷中的SPI域在SA建立期间被用来为其它安全协议标识SA。这四个域的解释是依靠操作发生的地点的。
下面的表格现出了在SA建立期间几个域的存在和不存在。以下的域对于各种SA建立相关的操作是必须的:ISAKMP头中的cookies,ISAKMP头的信息ID域,和建议有效载荷中的SPI域。列中的‘X’表示这个值是必须被提出。列中的‘NA’表示列中的值不适用于操作。
  #             操作              I-Cookie  R-Cookie  Message ID    SPI
 (1)  开始ISAKMP协商                X         0         0           0
 (2)  回答 ISAKMP SA 协商            X         X         0           0
 (3)  初始化其它 SA 协商             X         X         X           X
 (4)  回答其它SA 协商               X         X         X           X
 (5)  其它 (KE, ID, etc.)            X         X         X/0         NA
 (6)  安全协议 (ESP, AH)             NA        NA        NA          X
在表的第(1)行,初始值包括初始ISAKMP头中的cookie域,使用程序概括见2.5.3和3.1节。
表中的第二行,回答包括ISAKMP头中的初始化和回答cookie域,使用程序概括见2.5.3和3.1节。附加信息能在同等地ISAKMP间交换,依靠ISAKMP交换类型在状态1协商中的使用。一旦状态1交换完成,初始值和回答cookies北包含在同等地ISAKMP并发通信的ISAKMP头中。
在状态1协商期间,初始值和回答cookie决定了ISAKMP SA。因此,建议有效载荷中的SPI域变得多余,并且被设置成0或包含信号发送实体的cookie。
在表的第三行中,初始化连接一个协议的信息ID,它包含在SA 建议中。这个被连接在每个建议中协议信息ID和初始化的SPI被发往回答者。一旦状态2协商完成,SPI将被安全协议使用。
表中的第(4)行,回答包括相同的信息ID和回答SPI来连接接收建议中的每个协议。这个信息被返回给初始者。
表中的第(5)行,初始者和回答者用ISAKMP头中的信息ID域来保持进程协议协商的轨迹。这只适用于状态2交换,并且这个对状态1的交换的值必须是0。这是因为混合的cookie标识了ISAKMP SA。在建议有效载荷中的SPI域不适用是因为建议有效载荷只在SA协商信息交换中使用。
表中的第(6)行,状态2协商完成。安全协议使用SPI来决定哪个安全服务和机制来应用于它们之间的通信。第6行中的SPI值不是建议有效载荷中的SPI域,但SPI域包含在安全协议头中。
在SA的建立中,SPI必须被产生。ISAKMP被用于处理可变得SPI。这用建议有效载荷中的SPI尺寸域在SA建立期间来完成。SPI的处理将在DOI详细资料中介绍。
当安全联盟被初始建立,一方假设初始者的身份和另一个回答者的身份。一旦SA被建立,同等实体的源初始者和回答者能初始化状态2协商。因而,ISAKMP SA在实际中使双向的。
附加的,ISAKMP允许初始者和回答者在协商过程中控制。当ISAKMP被用来允许包括分建议的SA协商时,初始者能通过仅仅按照初始者本地的安全政策做一个比例维持一些控制。一旦初始者发出一个包含不止一个建议的建议,初始者将放弃对回答者的控制。一旦回答者正在控制SA的建立时,它将能使这个策略优先于初始者提供的多选择的环境里的初始者。选择建议最匹配回答本地安全策略和返回这个选择的初始者来完成它。
2.5  其它
2.5.1  传输协议
ISAKMP能被在任何传输协议或IP自身上执行。执行必须包含ISAKMP在端口500上使用UDP的发送和接收性能。UDP端口500被IANA指派给DSAKMP。执行能附加支持在其它传输协议或IP自身的ISAKMP。
2.5.2  保留域
在ISAKMP有效载荷中保留域的存在被用来保护字节队列。在一个数据报被发出时,所有ISAKMP协议中的保留域必须被设置成0。接收者应该检查0值的保留域,如果没有找到其它值,则丢弃这个数据报。
2.5.3  反障碍标记的创建
cookie产生的详细资料是所依靠的执行,但必须满足这些基本的要求:
1. cookie必须依赖于特殊的组织。这防止一个从cookie使用一个真实IP地址和UDP端口的攻击者,并且用Diffie-Hellman所需的随机的IP地址或端口来覆盖受害者。
2. 它不可能为其它任何发出的实体产生cookie,这将被那个实体接收。这个暗示意味着发出的实体必须用cookie的产生和并发确认中的本地秘密信息。不可能从任何特殊的cookie中推导出这个秘密信息。
3. cookei产生函数必须非常快的阻止对CUP资源的故意攻击。
Karn's关于创建cookie方法的提议是在IP源地址和目的地址上实现快速哈希(例如,MD5),UDP源端口和目的端口以及一个本地产生的秘密随机数。ISAKMP要求cookie对每个SA机构都是唯一的以便帮助防止重播攻击,因此,数据和时间必须被添加到被哈希的信息中。产生的cookie被放在ISAKMP(在3.1章节中描述)头启动和应答机cookie域中。这些域有8个字节长,因此需要产生的cookie也是8字节长。通知和删除信息(参看3.14,3.15和4.8章节)是单向传输并且在现有ISAKMP SA保护下运行,不需要生成新的cookie。有一种例外情况是在完成SA建立之前,第一阶段交换期间通知信息的传输。3.14 和4.8章节提供了辅助细节。
3  ISAKMP载荷
 ISAKMP载荷提供模块化的组建块来构造ISAKMP消息。ISAKMP中载荷的存在和顺序由在ISAKMP头(见图2)中所定位的交换类型字段来定义。ISAKMP载荷类型将在3.4节的3.15中进行讨论。ISAKMP载荷,消息和交换(见4节)的描述用网络八字节顺序来表示。
3.2  ISAKMP头格式 
 一个ISAKMP消息有固定的头格式,见图2,后面紧跟一个变化的载荷号。固定头简化了分析,如果考虑协议所带来的好处,分析软件将变得简单,并且更容易实现。固定头包括协议所需的信息,来维持状态,处理载荷,并可能防止服务否认或重放攻击。ISAKMP头字段定义如下:
* 发起者cookie(8字节)--实体的cookie对应于一个SA建立请求,或SA通告,或SA删除。
* 应答cookie(八字节)--实体的cookie用来应答一个SA建立请求,和SA通告,或SA删除。
                         1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !                            发起者                             !
    !                            Cookie                             !
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !                            应答                             !
    !                            Cookie                             !
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !   下一个载荷  ! MjVer ! MnVer !    交换类型   !     标志      !
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !                            消息  ID                           !
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !                             长度                              !
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
图2:ISAKMP 头格式
* 主版本(4 bit)-表示使用的ISAKMP协议的主版本。实现是基于此ISAKMP的Internet草案时,主版本号必须定为1。实现是基于以前ISAKMP的Internet草案时,主版本号必须定为0。实现永远也不能接受一个主版本号大于它自己的数据包。
* 微版本(4字节)--表示使用的ISAKMP协议的文版本。实现是基于此ISAKMP的Internet草案时,微版本号必须定为0。实现是基于以前ISAKMP的Internet草案时,微版本号必须定为1。给定同样的主版本号,实现永远不能接受一个微版本号大于它自己的数据包。
* 类型互换(1个八字节)--表示所用的交换类型。这表示消息和载荷遵循所用的交换顺序。
                        交换类型                值
                         NONE                    0
                         Base                    1
                         Identity Protection     2
                         Authentication Only     3
                         Aggressive              4
                         Informational           5
                         ISAKMP Future Use     6 - 31
                         DOI Specific Use     32 - 239
                         Private Use         240 - 255
* 标志(1个八字节)--表示特定的选项,用于设定ISAKMP交换。以下在标志字段中指定的标志,从最低有效位开始,如:在标志字段中加密位是0,提交位是1,鉴别位是2。其他剩余位必须在传输前设为0。
――加密位(1位)--如果设为1,头后面所有的载荷用ISAKMP SA中标识的加密算法来加密。ISAKMP SA标识符是初始和应答cookie的组合。建议加密尽可能在对等体之间进行。对于所有在4.1节中描述的ISAKMP交换,加密必须在双方都交换了密钥交换载荷之后进行。如果加密位不是设为0,不对载荷进行加密。
--提交位(1位)-此位用于同步的单密钥交换。它用来保证加密的内容不会在sa建立之前被接收到。提交位可由参与建立SA的任何一方(任何时刻)来进行设置,可用在ISAKMP SA建立的两个阶段。然而,在阶段1协商之后,它的值必须复位。如果设为1,未设置提交位的实体必须等待从设置了提交位的实体处的包含一个通知载荷(带有CONNECTED通知消息)的信息交换。在这种情况下,信息交换的消息ID字段必须包含原始ISAKMP 阶段2SA协商的消息ID。完成这,可以保证带有CONNECTED通知消息的信息交换可以和正确的阶段2SA相连。信息交换的接收和处理,表示SA的成功建立,并且任何一个实体现在可以处理加密的通信信息。除了同步密钥交换,提交位可以用来保护在不可信网络上传输的丢失,还可以防止多次重发送的必要。
注意:交换的最后消息很有可能被丢失。在这种情况下,希望接收到交换的最后消息的实体,将接收到在阶段1交换之后的协商消息,或阶段2交换之后的加密通信。这种情况的处理并未标准化,但我们由以下提议:如果等待信息交换的实体可以检验接收到的消息(如:阶段2的SA协商消息,或加密通信),那么,它们可以认为SA已经建立,并且继续处理过程。另一个可选项用来转播最后的ISAKMP消息,以迫使另一个实体转播最后的消息。这意味着实现可以将最后的消息(本地的)一直保持到它们确信SA已经建立。
――唯一鉴别位(1 bit),这一位用在带有通知载荷的信息交换中,并且允许带有完整性检查,但不加密的信息传送中(如:“紧急模式”)。4.8节说明了阶段2信息交换必须在一个ISAKMP SA的保护下的信息交换中中发送。对于那个策略,这是唯一的例外。如果唯一鉴别位设置为1,仅只有鉴别安全服务将被应用到实体中,以通报信息交换载荷,并且不对信息交换载荷进行加密。
* 消息ID(4个八位字节)--唯一消息标识符用来标识在同步阶段2的协议状态。这个值由同步阶段2的启动程序来随即产生。在同步SA的建立中(也就是说冲突),此字段的值将会有所不同,因为它们是独立产生的,并且,两个安全联盟将促进SA的建立。然而,不可能由绝对同步的建立。在阶段1的同步中,值必须置为0。
* 长度(4个八位字节)以八位字节来计的整个消息(头+载荷)的长度,加密会扩大ISAKMP 的大小。
3.2  普通载荷头
每一个定义在3.4节到3.16节中的ISAKMP载荷都有一个普通头,见图3,它提供了一个载荷链性能,并清楚的定义了载荷的边界。
                            1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       ! 下一个载荷     !   保留       !         载荷长度              !
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
图 3:  普通载荷头
* 下一个载荷(一个8位字节)――消息中下一个载荷的载荷类型的标识符。如果当前载荷在消息中的最后,此字段将为0。此字段提供了链性能。
* 保留(一个八位字节)――未用,置为0。
* 载荷长度(2个八位字节)――以八位字节为单位,当前载荷的长度,包括普通载荷头。
3.3  数据属性
有一些例子,在ISAKMP中有必要表示数据类型。其中一例及时安全联盟(SA)属性,包括在传输载荷中(在3.6节中有描述)。这些数据属性不是一个ISAKMP载荷,而是包含在ISAKMP 载荷中。数据属性的格式提供了表示许多种不同类型信息的灵活性。可能在一个载荷中由多张数据属性。数据属性的长度将是4个八位字节,或由属性长度字段来定义。这些将由下述属性格式位来完成。关于每一个字段的特定属性信息将在DOI 文档中描述,也就是IPSEC DOI [IPDOI]。
                  1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     !A!       属性类型              !    AF=0  属性长度             !
     !F!                             !    AF=1  属性值               !
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     .                   AF=0  属性值                                .
     .                   AF=1  不发送                                .
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                        图4:数据属性
数据属性字段定义如下:
* 属性类型(2个八位字节)――每一种属性类型的唯一标识符。这些定义的属性将作为特定DOI信息。
最高有效位,或属性格式(AF),表示在类型/长度/值(TLV)格式后的数据属性是否位短类型/值(TV)格式。如果AF位为0,数据格式将是类型/长度/值(TLV)格式。如果AF位位1,数据类型位类型/值格式。
* 属性长度(2个八位字节)-以八位字节位单位的属性值。当AF位为1时,属性值仅2个八位字节,并且没有属性长度。
* 属性值(变化长度)-和特定DOI属性类型相连的属性值。如果AF位为0,此字段将有一个属性长度字段定义的可变长度。如果AF位为1,属性长度值位2个八位字节的长度。
3.4  安全联盟载荷
安全联盟载荷用来协商安全属性,用来表示解释字段(DOI)和协商发生的环境。图5表示了安全联盟载荷的格式。
                          1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -