Network Working Group                                           J. Arkko
Request for Comments: 5448                                 V. Lehtovirta
Updates: 4187                                                   Ericsson
Category: Informational                                        P. Eronen
                                                                   Nokia
                                                                May 2009
        
Network Working Group                                           J. Arkko
Request for Comments: 5448                                 V. Lehtovirta
Updates: 4187                                                   Ericsson
Category: Informational                                        P. Eronen
                                                                   Nokia
                                                                May 2009
        

Improved Extensible Authentication Protocol Method for 3rd Generation Authentication and Key Agreement (EAP-AKA')

改进的第三代认证和密钥协商可扩展认证协议方法(EAP-AKA')

Status of This Memo

关于下段备忘

This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.

本备忘录为互联网社区提供信息。它没有规定任何类型的互联网标准。本备忘录的分发不受限制。

Copyright Notice

版权公告

Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved.

版权所有(c)2009 IETF信托基金和确定为文件作者的人员。版权所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents in effect on the date of publication of this document (http://trustee.ietf.org/license-info). Please review these documents carefully, as they describe your rights and restrictions with respect to this document.

本文件受BCP 78和IETF信托在本文件出版之日生效的与IETF文件有关的法律规定的约束(http://trustee.ietf.org/license-info). 请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。

Abstract

摘要

This specification defines a new EAP method, EAP-AKA', which is a small revision of the EAP-AKA (Extensible Authentication Protocol Method for 3rd Generation Authentication and Key Agreement) method. The change is a new key derivation function that binds the keys derived within the method to the name of the access network. The new key derivation mechanism has been defined in the 3rd Generation Partnership Project (3GPP). This specification allows its use in EAP in an interoperable manner. In addition, EAP-AKA' employs SHA-256 instead of SHA-1.

本规范定义了一种新的EAP方法EAP-AKA’,它是EAP-AKA(第三代身份验证和密钥协商的可扩展身份验证协议方法)方法的一个小版本。更改是一个新的密钥派生函数,它将方法中派生的密钥绑定到访问网络的名称。新的密钥派生机制已在第三代合作伙伴计划(3GPP)中定义。本规范允许以可互操作的方式在EAP中使用它。此外,EAP-AKA“使用SHA-256而不是SHA-1。

This specification also updates RFC 4187, EAP-AKA, to prevent bidding down attacks from EAP-AKA'.

本规范还更新了RFC 4187,EAP-AKA,以防止来自EAP-AKA'的竞价拒绝攻击。

Table of Contents

目录

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
   2.  Requirements Language  . . . . . . . . . . . . . . . . . . . .  3
   3.  EAP-AKA' . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
     3.1.  AT_KDF_INPUT . . . . . . . . . . . . . . . . . . . . . . .  6
     3.2.  AT_KDF . . . . . . . . . . . . . . . . . . . . . . . . . .  8
     3.3.  Key Generation . . . . . . . . . . . . . . . . . . . . . . 10
     3.4.  Hash Functions . . . . . . . . . . . . . . . . . . . . . . 12
       3.4.1.  PRF' . . . . . . . . . . . . . . . . . . . . . . . . . 12
       3.4.2.  AT_MAC . . . . . . . . . . . . . . . . . . . . . . . . 13
       3.4.3.  AT_CHECKCODE . . . . . . . . . . . . . . . . . . . . . 13
   4.  Bidding Down Prevention for EAP-AKA  . . . . . . . . . . . . . 14
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . . 15
     5.1.  Security Properties of Binding Network Names . . . . . . . 18
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 19
     6.1.  Type Value . . . . . . . . . . . . . . . . . . . . . . . . 19
     6.2.  Attribute Type Values  . . . . . . . . . . . . . . . . . . 19
     6.3.  Key Derivation Function Namespace  . . . . . . . . . . . . 19
   7.  Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 20
   8.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 20
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 20
     9.1.  Normative References . . . . . . . . . . . . . . . . . . . 20
     9.2.  Informative References . . . . . . . . . . . . . . . . . . 21
   Appendix A.  Changes from RFC 4187 . . . . . . . . . . . . . . . . 23
   Appendix B.  Importance of Explicit Negotiation  . . . . . . . . . 23
   Appendix C.  Test Vectors  . . . . . . . . . . . . . . . . . . . . 24
        
   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
   2.  Requirements Language  . . . . . . . . . . . . . . . . . . . .  3
   3.  EAP-AKA' . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
     3.1.  AT_KDF_INPUT . . . . . . . . . . . . . . . . . . . . . . .  6
     3.2.  AT_KDF . . . . . . . . . . . . . . . . . . . . . . . . . .  8
     3.3.  Key Generation . . . . . . . . . . . . . . . . . . . . . . 10
     3.4.  Hash Functions . . . . . . . . . . . . . . . . . . . . . . 12
       3.4.1.  PRF' . . . . . . . . . . . . . . . . . . . . . . . . . 12
       3.4.2.  AT_MAC . . . . . . . . . . . . . . . . . . . . . . . . 13
       3.4.3.  AT_CHECKCODE . . . . . . . . . . . . . . . . . . . . . 13
   4.  Bidding Down Prevention for EAP-AKA  . . . . . . . . . . . . . 14
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . . 15
     5.1.  Security Properties of Binding Network Names . . . . . . . 18
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 19
     6.1.  Type Value . . . . . . . . . . . . . . . . . . . . . . . . 19
     6.2.  Attribute Type Values  . . . . . . . . . . . . . . . . . . 19
     6.3.  Key Derivation Function Namespace  . . . . . . . . . . . . 19
   7.  Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 20
   8.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 20
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 20
     9.1.  Normative References . . . . . . . . . . . . . . . . . . . 20
     9.2.  Informative References . . . . . . . . . . . . . . . . . . 21
   Appendix A.  Changes from RFC 4187 . . . . . . . . . . . . . . . . 23
   Appendix B.  Importance of Explicit Negotiation  . . . . . . . . . 23
   Appendix C.  Test Vectors  . . . . . . . . . . . . . . . . . . . . 24
        
1. Introduction
1. 介绍

This specification defines a new Extensible Authentication Protocol (EAP)[RFC3748] method, EAP-AKA', which is a small revision of the EAP-AKA method originally defined in [RFC4187]. What is new in EAP-AKA' is that it has a new key derivation function, specified in [3GPP.33.402]. This function binds the keys derived within the method to the name of the access network. This limits the effects of compromised access network nodes and keys. This specification defines the EAP encapsulation for AKA when the new key derivation mechanism is in use.

本规范定义了一种新的可扩展身份验证协议(EAP)[RFC3748]方法,EAP-AKA',它是[RFC4187]中最初定义的EAP-AKA方法的一个小版本。EAP-AKA’中的新功能是它有一个新的密钥派生函数,在[3GPP.33.402]中指定。此函数将方法中派生的密钥绑定到访问网络的名称。这限制了受损访问网络节点和密钥的影响。本规范定义了在使用新密钥派生机制时AKA的EAP封装。

3GPP has defined a number of applications for the revised AKA mechanism, some based on native encapsulation of AKA over 3GPP radio access networks and others based on the use of EAP.

3GPP已经为修改后的AKA机制定义了许多应用,一些基于3GPP无线接入网络上AKA的本机封装,另一些基于EAP的使用。

For making the new key derivation mechanisms usable in EAP-AKA, additional protocol mechanisms are necessary. Given that RFC 4187 calls for the use of CK (the encryption key) and IK (the integrity key) from AKA, existing implementations continue to use these. Any

为了使新的密钥派生机制在EAP-AKA中可用,需要额外的协议机制。鉴于RFC4187调用AKA中的CK(加密密钥)和IK(完整性密钥),现有实现继续使用这些密钥。任何

change of the key derivation must be unambiguous to both sides in the protocol. That is, it must not be possible to accidentally connect old equipment to new equipment and get the key derivation wrong or attempt to use wrong keys without getting a proper error message. The change must also be secure against bidding down attacks that attempt to force the participants to use the least secure mechanism.

密钥派生的更改必须对协议中的双方都是明确的。也就是说,不可能意外地将旧设备连接到新设备,并使密钥派生错误,或在未获得正确错误消息的情况下尝试使用错误的密钥。该更改还必须能够防止试图迫使参与者使用最不安全的机制的竞价拒绝攻击。

This specification therefore introduces a variant of the EAP-AKA method, called EAP-AKA'. This method can employ the derived keys CK' and IK' from the 3GPP specification and updates the used hash function to SHA-256 [FIPS.180-2.2002]. But it is otherwise equivalent to RFC 4187. Given that a different EAP method type value is used for EAP-AKA and EAP-AKA', a mutually supported method may be negotiated using the standard mechanisms in EAP [RFC3748].

因此,本规范引入了EAP-AKA方法的变体,称为EAP-AKA’。该方法可以使用来自3GPP规范的派生密钥CK'和IK',并将使用的哈希函数更新为SHA-256[FIPS.180-2.2002]。但它在其他方面等同于RFC 4187。鉴于EAP-AKA和EAP-AKA使用不同的EAP方法类型值,可使用EAP[RFC3748]中的标准机制协商相互支持的方法。

Note: Appendix B explains why it is important to be explicit about the change of semantics for the keys, and why other approaches would lead to severe interoperability problems.

注意:附录B解释了为什么明确说明键的语义变化很重要,以及为什么其他方法会导致严重的互操作性问题。

The rest of this specification is structured as follows. Section 3 defines the EAP-AKA' method. Section 4 adds support to EAP-AKA to prevent bidding down attacks from EAP-AKA'. Section 5 explains the security differences between EAP-AKA and EAP-AKA'. Section 6 describes the IANA considerations and Appendix A explains what updates to RFC 4187 EAP-AKA have been made in this specification. Appendix B explains some of the design rationale for creating EAP-AKA'. Finally, Appendix C provides test vectors.

本规范其余部分的结构如下所示。第3节定义了EAP-AKA方法。第4节增加了对EAP-AKA的支持,以防止来自EAP-AKA'的竞价拒绝攻击。第5节解释了EAP-AKA和EAP-AKA'之间的安全性差异。第6节描述了IANA注意事项,附录A解释了本规范中对RFC 4187 EAP-AKA所做的更新。附录B解释了创建EAP-AKA'的一些设计原理。最后,附录C提供了测试向量。

2. Requirements Language
2. 需求语言

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

本文件中的关键词“必须”、“不得”、“必需”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照[RFC2119]中所述进行解释。

3. EAP-AKA'
3. EAP-AKA'

EAP-AKA' is a new EAP method that follows the EAP-AKA specification [RFC4187] in all respects except the following:

“EAP-AKA”是一种新的EAP方法,除以下内容外,在所有方面均遵循EAP-AKA规范[RFC4187]:

o It uses the Type code 50, not 23 (which is used by EAP-AKA).

o 它使用类型代码50,而不是23(EAP-AKA使用)。

o It carries the AT_KDF_INPUT attribute, as defined in Section 3.1, to ensure that both the peer and server know the name of the access network.

o 它带有第3.1节中定义的AT_KDF_输入属性,以确保对等方和服务器都知道接入网络的名称。

o It supports key derivation function negotiation via the AT_KDF attribute (Section 3.2) to allow for future extensions.

o 它通过AT_KDF属性(第3.2节)支持密钥派生函数协商,以允许将来的扩展。

o It calculates keys as defined in Section 3.3, not as defined in EAP-AKA.

o 它按照第3.3节的规定计算关键点,而不是按照EAP-AKA的规定计算关键点。

o It employs SHA-256 [FIPS.180-2.2002], not SHA-1 [FIPS.180-1.1995] (Section 3.4).

o 它使用SHA-256[FIPS.180-2.2002],而不是SHA-1[FIPS.180-1.1995](第3.4节)。

Figure 1 shows an example of the authentication process. Each message AKA'-Challenge and so on represents the corresponding message from EAP-AKA, but with EAP-AKA' Type code. The definition of these messages, along with the definition of attributes AT_RAND, AT_AUTN, AT_MAC, and AT_RES can be found in [RFC4187].

图1显示了身份验证过程的示例。每个消息AKA'-Challenge等表示来自EAP-AKA的相应消息,但带有EAP-AKA'类型代码。这些消息的定义以及在_RAND、AT _AUTN、AT _MAC和AT _RES的属性定义见[RFC4187]。

    Peer                                                    Server
       |                       EAP-Request/Identity             |
       |<-------------------------------------------------------|
       |                                                        |
       |  EAP-Response/Identity                                 |
       |  (Includes user's Network Access Identifier, NAI)      |
       |------------------------------------------------------->|
       |         +--------------------------------------------------+
       |         | Server determines the network name and ensures   |
       |         | that the given access network is authorized to   |
       |         | use the claimed name.  The server then runs the  |
       |         | AKA' algorithms generating RAND and AUTN, and    |
       |         | derives session keys from CK' and IK'.  RAND and |
       |         | AUTN are sent as AT_RAND and AT_AUTN attributes, |
       |         | whereas the network name is transported in the   |
       |         | AT_KDF_INPUT attribute.  AT_KDF signals the used |
       |         | key derivation function.  The session keys are   |
       |         | used in creating the AT_MAC attribute.           |
       |         +--------------------------------------------------+
       |                         EAP-Request/AKA'-Challenge     |
       |        (AT_RAND, AT_AUTN, AT_KDF, AT_KDF_INPUT, AT_MAC)|
       |<-------------------------------------------------------|
   +------------------------------------------------------+     |
   | The peer determines what the network name should be, |     |
   | based on, e.g., what access technology it is using.  |     |
   | The peer also retrieves the network name sent by     |     |
   | the network from the AT_KDF_INPUT attribute.  The    |     |
   | two names are compared for discrepancies, and if     |     |
   | necessary, the authentication is aborted.  Otherwise,|     |
   | the network name from AT_KDF_INPUT attribute is      |     |
   | used in running the AKA' algorithms, verifying AUTN  |     |
   | from AT_AUTN and MAC from AT_MAC attributes.  The    |     |
   | peer then generates RES.  The peer also derives      |     |
   | session keys from CK'/IK'.  The AT_RES and AT_MAC    |     |
   | attributes are constructed.                          |     |
   +------------------------------------------------------+     |
       | EAP-Response/AKA'-Challenge                            |
       | (AT_RES, AT_MAC)                                       |
       |------------------------------------------------------->|
       |         +-------------------------------------------------+
       |         | Server checks the RES and MAC values received    |
       |         | in AT_RES and AT_MAC, respectively.  Success     |
       |         | requires both to be found correct.               |
       |         +-------------------------------------------------+
       |                                           EAP-Success  |
       |<-------------------------------------------------------|
        
    Peer                                                    Server
       |                       EAP-Request/Identity             |
       |<-------------------------------------------------------|
       |                                                        |
       |  EAP-Response/Identity                                 |
       |  (Includes user's Network Access Identifier, NAI)      |
       |------------------------------------------------------->|
       |         +--------------------------------------------------+
       |         | Server determines the network name and ensures   |
       |         | that the given access network is authorized to   |
       |         | use the claimed name.  The server then runs the  |
       |         | AKA' algorithms generating RAND and AUTN, and    |
       |         | derives session keys from CK' and IK'.  RAND and |
       |         | AUTN are sent as AT_RAND and AT_AUTN attributes, |
       |         | whereas the network name is transported in the   |
       |         | AT_KDF_INPUT attribute.  AT_KDF signals the used |
       |         | key derivation function.  The session keys are   |
       |         | used in creating the AT_MAC attribute.           |
       |         +--------------------------------------------------+
       |                         EAP-Request/AKA'-Challenge     |
       |        (AT_RAND, AT_AUTN, AT_KDF, AT_KDF_INPUT, AT_MAC)|
       |<-------------------------------------------------------|
   +------------------------------------------------------+     |
   | The peer determines what the network name should be, |     |
   | based on, e.g., what access technology it is using.  |     |
   | The peer also retrieves the network name sent by     |     |
   | the network from the AT_KDF_INPUT attribute.  The    |     |
   | two names are compared for discrepancies, and if     |     |
   | necessary, the authentication is aborted.  Otherwise,|     |
   | the network name from AT_KDF_INPUT attribute is      |     |
   | used in running the AKA' algorithms, verifying AUTN  |     |
   | from AT_AUTN and MAC from AT_MAC attributes.  The    |     |
   | peer then generates RES.  The peer also derives      |     |
   | session keys from CK'/IK'.  The AT_RES and AT_MAC    |     |
   | attributes are constructed.                          |     |
   +------------------------------------------------------+     |
       | EAP-Response/AKA'-Challenge                            |
       | (AT_RES, AT_MAC)                                       |
       |------------------------------------------------------->|
       |         +-------------------------------------------------+
       |         | Server checks the RES and MAC values received    |
       |         | in AT_RES and AT_MAC, respectively.  Success     |
       |         | requires both to be found correct.               |
       |         +-------------------------------------------------+
       |                                           EAP-Success  |
       |<-------------------------------------------------------|
        

Figure 1: EAP-AKA' Authentication Process

图1:EAP-AKA的认证过程

EAP-AKA' can operate on the same credentials as EAP-AKA and employ the same identities. However, EAP-AKA' employs different leading characters than EAP-AKA for the conventions given in Section 4.1.1 of [RFC4187] for International Mobile Subscriber Identifier (IMSI) based usernames. EAP-AKA' MUST use the leading character "6" (ASCII 36 hexadecimal) instead of "0" for IMSI-based permanent usernames. All other usage and processing of the leading characters, usernames, and identities is as defined by EAP-AKA [RFC4187]. For instance, the pseudonym and fast re-authentication usernames need to be constructed so that the server can recognize them. As an example, a pseudonym could begin with a leading "7" character (ASCII 37 hexadecimal) and a fast re-authentication username could begin with "8" (ASCII 38 hexadecimal). Note that a server that implements only EAP-AKA may not recognize these leading characters. According to Section 4.1.4 of [RFC4187], such a server will re-request the identity via the EAP-Request/AKA-Identity message, making obvious to the peer that EAP-AKA and associated identity are expected.

EAP-AKA“可以使用与EAP-AKA相同的凭据进行操作,并使用相同的身份。然而,对于[RFC4187]第4.1.1节中针对基于国际移动用户标识符(IMSI)的用户名给出的约定,EAP-AKA'使用了不同于EAP-AKA的前导字符。对于基于IMSI的永久用户名,EAP-AKA“必须使用前导字符“6”(ASCII 36十六进制)而不是“0”。前导字符、用户名和身份的所有其他用法和处理由EAP-AKA[RFC4187]定义。例如,需要构造假名和快速重新身份验证用户名,以便服务器能够识别它们。例如,笔名可以以“7”开头(ASCII 37十六进制),快速重新认证用户名可以以“8”(ASCII 38十六进制)开头。请注意,仅实现EAP-AKA的服务器可能无法识别这些前导字符。根据[RFC4187]第4.1.4节,这样的服务器将通过EAP请求/AKA标识消息重新请求标识,从而向对等方表明EAP-AKA和相关标识是预期的。

3.1. AT_KDF_INPUT
3.1. AT_KDF_输入

The format of the AT_KDF_INPUT attribute is shown below.

AT_KDF_输入属性的格式如下所示。

       0                   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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | AT_KDF_INPUT  | Length        | Actual Network Name Length    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      .                        Network Name                           .
      .                                                               .
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
       0                   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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | AT_KDF_INPUT  | Length        | Actual Network Name Length    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      .                        Network Name                           .
      .                                                               .
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

The fields are as follows:

字段如下所示:

AT_KDF_INPUT

AT_KDF_输入

This is set to 23.

这设置为23。

Length

The length of the attribute, calculated as defined in [RFC4187], Section 8.1.

属性的长度,按照[RFC4187]第8.1节中的定义计算。

Actual Network Name Length

实际网络名称长度

This is a 2 byte actual length field, needed due to the requirement that the previous field is expressed in multiples of 4 bytes per the usual EAP-AKA rules. The Actual Network Name Length field provides the length of the network name in bytes.

这是一个2字节的实际长度字段,由于要求前一个字段按照通常的EAP-AKA规则以4字节的倍数表示,因此需要该字段。“实际网络名称长度”字段以字节为单位提供网络名称的长度。

Network Name

网络名称

This field contains the network name of the access network for which the authentication is being performed. The name does not include any terminating null characters. Because the length of the entire attribute must be a multiple of 4 bytes, the sender pads the name with 1, 2, or 3 bytes of all zero bits when necessary.

此字段包含正在执行身份验证的接入网络的网络名称。该名称不包括任何终止的空字符。因为整个属性的长度必须是4字节的倍数,所以发送方在必要时用1、2或3字节的所有零位填充名称。

Only the server sends the AT_KDF_INPUT attribute. Per [3GPP.33.402], the server always verifies the authorization of a given access network to use a particular name before sending it to the peer over EAP-AKA'. The value of the AT_KDF_INPUT attribute from the server MUST be non-empty. If it is empty, the peer behaves as if AUTN had been incorrect and authentication fails. See Section 3 and Figure 3 of [RFC4187] for an overview of how authentication failures are handled.

只有服务器发送AT_KDF_输入属性。根据[3GPP.33.402],在通过EAP-AKA'将特定名称发送给对等方之前,服务器始终验证给定接入网络使用特定名称的授权。来自服务器的AT_KDF_输入属性的值必须为非空。如果为空,对等方的行为就好像AUTN不正确,身份验证失败。有关如何处理身份验证失败的概述,请参见[RFC4187]的第3节和图3。

In addition, the peer MAY check the received value against its own understanding of the network name. Upon detecting a discrepancy, the peer either warns the user and continues, or fails the authentication process. More specifically, the peer SHOULD have a configurable policy that it can follow under these circumstances. If the policy indicates that it can continue, the peer SHOULD log a warning message or display it to the user. If the peer chooses to proceed, it MUST use the network name as received in the AT_KDF_INPUT attribute. If the policy indicates that the authentication should fail, the peer behaves as if AUTN had been incorrect and authentication fails.

此外,对等方可以对照其自己对网络名称的理解来检查接收到的值。一旦检测到差异,对等方要么警告用户并继续,要么验证过程失败。更具体地说,对等方应该有一个在这些情况下可以遵循的可配置策略。如果策略指示可以继续,则对等方应记录警告消息或将其显示给用户。如果对等方选择继续,它必须使用在AT_KDF_输入属性中接收到的网络名称。如果策略指示身份验证应失败,则对等方的行为就好像AUTN不正确且身份验证失败一样。

The Network Name field contains a UTF-8 string. This string MUST be constructed as specified in [3GPP.24.302] for "Access Network Identity". The string is structured as fields separated by colons (:). The algorithms and mechanisms to construct the identity string depend on the used access technology.

网络名称字段包含UTF-8字符串。此字符串必须按照[3GPP.24.302]中针对“接入网络标识”的规定构造。字符串的结构是由冒号(:)分隔的字段。构造身份字符串的算法和机制取决于所使用的访问技术。

On the network side, the network name construction is a configuration issue in an access network and an authorization check in the authentication server. On the peer, the network name is constructed based on the local observations. For instance, the peer knows which access technology it is using on the link, it can see information in a link-layer beacon, and so on. The construction rules specify how

在网络方面,网络名称构造是接入网络中的配置问题和认证服务器中的授权检查。在对等网络上,网络名称是基于本地观测值构建的。例如,对等方知道它在链路上使用的是哪种访问技术,它可以在链路层信标中看到信息,等等。施工规则规定了如何施工

this information maps to an access network name. Typically, the network name consists of the name of the access technology, or the name of the access technology followed by some operator identifier that was advertised in a link-layer beacon. In all cases, [3GPP.24.302] is the normative specification for the construction in both the network and peer side. If the peer policy allows running EAP-AKA' over an access technology for which that specification does not provide network name construction rules, the peer SHOULD rely only on the information from the AT_KDF_INPUT attribute and not perform a comparison.

此信息映射到访问网络名称。通常,网络名称包括接入技术的名称,或接入技术的名称后跟在链路层信标中公布的某个运营商标识符。在所有情况下,[3GPP.24.302]都是网络和对等端构造的规范性规范。如果对等策略允许在该规范未提供网络名称构造规则的访问技术上运行EAP-AKA,则对等方应仅依赖AT_KDF_输入属性中的信息,而不执行比较。

If a comparison of the locally determined network name and the one received over EAP-AKA' is performed on the peer, it MUST be done as follows. First, each name is broken down to the fields separated by colons. If one of the names has more colons and fields than the other one, the additional fields are ignored. The remaining sequences of fields are compared, and they match only if they are equal character by character. This algorithm allows a prefix match where the peer would be able to match "", "FOO", and "FOO:BAR" against the value "FOO:BAR" received from the server. This capability is important in order to allow possible updates to the specifications that dictate how the network names are constructed. For instance, if a peer knows that it is running on access technology "FOO", it can use the string "FOO" even if the server uses an additional, more accurate description, e.g., "FOO:BAR", that contains more information.

如果在对等机上对本地确定的网络名和通过EAP-AKA接收的网络名进行比较,则必须按照以下步骤进行。首先,将每个名称分解为以冒号分隔的字段。如果其中一个名称的冒号和字段多于另一个,则会忽略其他字段。将比较其余字段序列,并且仅当它们每个字符相等时才匹配。此算法允许前缀匹配,其中对等方能够将“,”FOO“和“FOO:BAR”与从服务器接收的值“FOO:BAR”进行匹配。为了允许对规范进行可能的更新,从而说明如何构造网络名称,此功能非常重要。例如,如果一个对等方知道它正在访问技术“FOO”上运行,那么它可以使用字符串“FOO”,即使服务器使用包含更多信息的额外的、更准确的描述,例如“FOO:BAR”。

The allocation procedures in [3GPP.24.302] ensure that conflicts potentially arising from using the same name in different types of networks are avoided. The specification also has detailed rules about how a client can determine these based on information available to the client, such as the type of protocol used to attach to the network, beacons sent out by the network, and so on. Information that the client cannot directly observe (such as the type or version of the home network) is not used by this algorithm.

[3GPP.24.302]中的分配程序确保避免在不同类型的网络中使用相同名称可能引起的冲突。该规范还具有关于客户机如何基于客户机可用的信息(例如用于连接到网络的协议类型、网络发送的信标等)来确定这些的详细规则。此算法不使用客户端无法直接观察到的信息(如家庭网络的类型或版本)。

The AT_KDF_INPUT attribute MUST be sent and processed as explained above when AT_KDF attribute has the value 1. Future definitions of new AT_KDF values MUST define how this attribute is sent and processed.

当AT_KDF属性的值为1时,必须如上所述发送和处理AT_KDF_输入属性。新AT_KDF值的未来定义必须定义如何发送和处理此属性。

3.2. AT_KDF
3.2. AT_KDF

AT_KDF is an attribute that the server uses to reference a specific key derivation function. It offers a negotiation capability that can be useful for future evolution of the key derivation functions.

AT_KDF是服务器用于引用特定密钥派生函数的属性。它提供了一种协商能力,可用于密钥派生函数的未来演化。

The format of the AT_KDF attribute is shown below.

AT_KDF属性的格式如下所示。

       0                   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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | AT_KDF        | Length        |    Key Derivation Function    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
       0                   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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | AT_KDF        | Length        |    Key Derivation Function    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

The fields are as follows:

字段如下所示:

AT_KDF

AT_KDF

This is set to 24.

这设置为24。

Length

The length of the attribute, MUST be set to 1.

属性的长度必须设置为1。

Key Derivation Function

金钥推衍函数

An enumerated value representing the key derivation function that the server (or peer) wishes to use. Value 1 represents the default key derivation function for EAP-AKA', i.e., employing CK' and IK' as defined in Section 3.3.

表示服务器(或对等方)希望使用的密钥派生函数的枚举值。值1表示EAP-AKA'的默认关键点衍生函数,即采用第3.3节中定义的CK'和IK'。

Servers MUST send one or more AT_KDF attributes in the EAP-Request/ AKA'-Challenge message. These attributes represent the desired functions ordered by preference, the most preferred function being the first attribute.

服务器必须在EAP请求/AKA'-质询消息中发送一个或多个AT_KDF属性。这些属性表示按优先顺序排列的所需函数,最优先的函数是第一个属性。

Upon receiving a set of these attributes, if the peer supports and is willing to use the key derivation function indicated by the first attribute, the function is taken into use without any further negotiation. However, if the peer does not support this function or is unwilling to use it, it does not process the received EAP-Request/ AKA'-Challenge in any way except by responding with the EAP-Response/ AKA'-Challenge message that contains only one attribute, AT_KDF with the value set to the selected alternative. If there is no suitable alternative, the peer behaves as if AUTN had been incorrect and authentication fails (see Figure 3 of [RFC4187]). The peer fails the authentication also if there are any duplicate values within the list of AT_KDF attributes (except where the duplication is due to a request to change the key derivation function; see below for further information).

在接收到这些属性的集合时,如果对等方支持并且愿意使用由第一个属性指示的密钥派生函数,则无需进一步协商即可使用该函数。但是,如果对等方不支持此功能或不愿意使用此功能,则它不会以任何方式处理接收到的EAP请求/AKA'-质询,除非使用仅包含一个属性的EAP响应/AKA'-质询消息进行响应,该消息的值设置为所选备选方案。如果没有合适的替代方案,对等方的行为就好像AUTN不正确,身份验证失败一样(参见[RFC4187]的图3)。如果AT_KDF属性列表中存在任何重复值,则对等方也会导致身份验证失败(重复是由于请求更改密钥派生函数所致的情况除外;有关更多信息,请参阅下文)。

Upon receiving an EAP-Response/AKA'-Challenge with AT_KDF from the peer, the server checks that the suggested AT_KDF value was one of the alternatives in its offer. The first AT_KDF value in the message

在从对等方接收到具有AT_KDF的EAP响应/AKA'-质询后,服务器检查建议的AT_KDF值是否是其报价中的备选值之一。消息中的第一个atkdf值

from the server is not a valid alternative. If the peer has replied with the first AT_KDF value, the server behaves as if AT_MAC of the response had been incorrect and fails the authentication. For an overview of the failed authentication process in the server side, see Section 3 and Figure 2 of [RFC4187]. Otherwise, the server re-sends the EAP-Response/AKA'-Challenge message, but adds the selected alternative to the beginning of the list of AT_KDF attributes and retains the entire list following it. Note that this means that the selected alternative appears twice in the set of AT_KDF values. Responding to the peer's request to change the key derivation function is the only legal situation where such duplication may occur.

从服务器发送的不是有效的替代方案。如果对等方已使用第一个AT_KDF值进行响应,则服务器的行为就好像响应的AT_MAC不正确,并且身份验证失败。有关服务器端失败的身份验证过程的概述,请参阅[RFC4187]的第3节和图2。否则,服务器将重新发送EAP响应/AKA'-Challenge消息,但会将所选备选方案添加到AT_KDF属性列表的开头,并保留其后面的整个列表。请注意,这意味着所选备选方案在AT_KDF值集中出现两次。响应对等方更改密钥派生函数的请求是唯一可能发生此类复制的法律情况。

When the peer receives the new EAP-Request/AKA'-Challenge message, it MUST check that the requested change, and only the requested change, occurred in the list of AT_KDF attributes. If so, it continues with processing the received EAP-Request/AKA'-Challenge as specified in [RFC4187] and Section 3.1 of this document. If not, it behaves as if AT_MAC had been incorrect and fails the authentication. If the peer receives multiple EAP-Request/AKA'-Challenge messages with differing AT_KDF attributes without having requested negotiation, the peer MUST behave as if AT_MAC had been incorrect and fail the authentication.

当对等方收到新的EAP请求/AKA'-质询消息时,它必须检查请求的更改以及仅请求的更改是否发生在AT_KDF属性列表中。如果是,则按照[RFC4187]和本文件第3.1节的规定,继续处理收到的EAP请求/AKA'-质询。如果不是,它的行为就好像AT_MAC不正确,身份验证失败一样。如果对等方在没有请求协商的情况下接收到具有不同AT_KDF属性的多个EAP请求/AKA'-质询消息,则对等方必须表现得好像AT_MAC不正确,并且身份验证失败。

Note that the peer may also request sequence number resynchronization [RFC4187]. This happens after AT_KDF negotiation has already completed. An AKA'-Synchronization-Failure message is sent as a response to the newly received EAP-Request/AKA'-Challenge (the last message of the AT_KDF negotiation). The AKA'-Synchronization-Failure message MUST contain the AUTS parameter as specified in [RFC4187] and a copy the AT_KDF attributes as they appeared in the last message of the AT_KDF negotiation. If the AT_KDF attributes are found to differ from their earlier values, the peer and server MUST behave as if AT_MAC had been incorrect and fail the authentication.

注意,对等方还可以请求序列号重新同步[RFC4187]。这发生在AT_KDF谈判已经完成之后。AKA'-同步失败消息作为对新收到的EAP请求/AKA'-质询(AT_KDF协商的最后一条消息)的响应发送。AKA'-同步失败消息必须包含[RFC4187]中指定的AUTS参数,并复制AT_KDF属性,因为它们出现在AT_KDF协商的最后一条消息中。如果发现AT_KDF属性与其以前的值不同,则对等方和服务器的行为必须与AT_MAC不正确一样,并且身份验证失败。

3.3. Key Generation
3.3. 密钥生成

Both the peer and server MUST derive the keys as follows.

对等方和服务器都必须派生密钥,如下所示。

AT_KDF set to 1

AT_KDF设置为1

In this case, MK is derived and used as follows:

在这种情况下,MK的推导和使用如下:

       MK = PRF'(IK'|CK',"EAP-AKA'"|Identity)
       K_encr = MK[0..127]
       K_aut  = MK[128..383]
       K_re   = MK[384..639]
       MSK    = MK[640..1151]
       EMSK   = MK[1152..1663]
        
       MK = PRF'(IK'|CK',"EAP-AKA'"|Identity)
       K_encr = MK[0..127]
       K_aut  = MK[128..383]
       K_re   = MK[384..639]
       MSK    = MK[640..1151]
       EMSK   = MK[1152..1663]
        

Here [n..m] denotes the substring from bit n to m. PRF' is a new pseudo-random function specified in Section 3.4. The first 1664 bits from its output are used for K_encr (encryption key, 128 bits), K_aut (authentication key, 256 bits), K_re (re-authentication key, 256 bits), MSK (Master Session Key, 512 bits), and EMSK (Extended Master Session Key, 512 bits). These keys are used by the subsequent EAP-AKA' process. K_encr is used by the AT_ENCR_DATA attribute, and K_aut by the AT_MAC attribute. K_re is used later in this section. MSK and EMSK are outputs from a successful EAP method run [RFC3748].

这里[n..m]表示从位n到m的子串。PRF’是第3.4节中规定的新伪随机函数。其输出的前1664位用于K_encr(加密密钥,128位)、K_aut(认证密钥,256位)、K_re(重新认证密钥,256位)、MSK(主会话密钥,512位)和EMSK(扩展主会话密钥,512位)。这些密钥由后续EAP-AKA“进程”使用。K_encr由AT_encr_DATA属性使用,K_aut由AT_MAC属性使用。本节后面将使用K_re。MSK和EMSK是EAP方法成功运行的输出[RFC3748]。

IK' and CK' are derived as specified in [3GPP.33.402]. The functions that derive IK' and CK' take the following parameters: CK and IK produced by the AKA algorithm, and value of the Network Name field comes from the AT_KDF_INPUT attribute (without length or padding) .

IK'和CK'按照[3GPP.33.402]中的规定推导。派生IK'和CK'的函数采用以下参数:AKA算法生成的CK和IK,网络名称字段的值来自AT_KDF_输入属性(无长度或填充)。

The value "EAP-AKA'" is an eight-characters-long ASCII string. It is used as is, without any trailing NUL characters.

值“EAP-AKA”是一个八个字符长的ASCII字符串。它按原样使用,没有任何尾随NUL字符。

Identity is the peer identity as specified in Section 7 of [RFC4187].

标识是[RFC4187]第7节中规定的对等标识。

When the server creates an AKA challenge and corresponding AUTN, CK, CK', IK, and IK' values, it MUST set the Authentication Management Field (AMF) separation bit to 1 in the AKA algorithm [3GPP.33.102]. Similarly, the peer MUST check that the AMF separation bit is set to 1. If the bit is not set to 1, the peer behaves as if the AUTN had been incorrect and fails the authentication.

当服务器创建AKA质询和相应的AUTN、CK、CK',IK和IK'值时,它必须在AKA算法中将认证管理字段(AMF)分离位设置为1[3GPP.33.102]。同样,对等方必须检查AMF分离位是否设置为1。如果该位未设置为1,则对等方的行为就好像AUTN不正确并且身份验证失败一样。

On fast re-authentication, the following keys are calculated:

在快速重新身份验证时,将计算以下密钥:

MK = PRF'(K_re,"EAP-AKA' re-auth"|Identity|counter|NONCE_S) MSK = MK[0..511] EMSK = MK[512..1023]

MK=PRF'(K|re,“EAP-AKA‘re-auth’| Identity | counter | NONCE|S)MSK=MK[0..511]EMSK=MK[512..1023]

MSK and EMSK are the resulting 512-bit keys, taking the first 1024 bits from the result of PRF'. Note that K_encr and K_aut are not re-derived on fast re-authentication. K_re is the re-authentication key from the preceding full authentication and stays unchanged over any fast re-authentication(s) that may happen based on it. The value "EAP-AKA' re-auth" is a sixteen- characters-long ASCII string, again represented without any trailing NUL characters. Identity is the fast re-authentication identity, counter is the value from the AT_COUNTER attribute,

MSK和EMSK是结果512位密钥,从PRF'的结果中提取前1024位。请注意,K_encr和K_aut不是在快速重新身份验证时重新派生的。K_re是前一次完全身份验证中的重新身份验证密钥,在基于该密钥的任何快速重新身份验证过程中保持不变。值“EAP-AKA're-auth”是一个16个字符长的ASCII字符串,同样表示为没有任何尾随NUL字符。标识是快速重新身份验证标识,计数器是AT_计数器属性中的值,

NONCE_S is the nonce value from the AT_NONCE_S attribute, all as specified in Section 7 of [RFC4187]. To prevent the use of compromised keys in other places, it is forbidden to change the network name when going from the full to the fast re-authentication process. The peer SHOULD NOT attempt fast re-authentication when it knows that the network name in the current access network is different from the one in the initial, full authentication. Upon seeing a re-authentication request with a changed network name, the server SHOULD behave as if the re-authentication identifier had been unrecognized, and fall back to full authentication. The server observes the change in the name by comparing where the fast re-authentication and full authentication EAP transactions were received at the Authentication, Authorization, and Accounting (AAA) protocol level.

NONCE_S是AT_NONCE_S属性中的NONCE值,如[RFC4187]第7节所述。为防止在其他地方使用受损密钥,禁止在从完全重新身份验证过程变为快速重新身份验证过程时更改网络名称。当对等方知道当前接入网络中的网络名称与初始完全身份验证中的网络名称不同时,不应尝试快速重新身份验证。当看到具有更改的网络名称的重新身份验证请求时,服务器的行为应与重新身份验证标识符未被识别一样,并返回到完全身份验证。服务器通过比较在身份验证、授权和记帐(AAA)协议级别接收快速重新身份验证和完全身份验证EAP事务的位置来观察名称的更改。

AT_KDF has any other value

AT_KDF具有任何其他值

Future variations of key derivation functions may be defined, and they will be represented by new values of AT_KDF. If the peer does not recognize the value, it cannot calculate the keys and behaves as explained in Section 3.2.

可以定义键派生函数的未来变化,它们将由AT_KDF的新值表示。如果对等方无法识别该值,则无法计算键并按照第3.2节中的说明进行操作。

AT_KDF is missing

AT_KDF失踪

The peer behaves as if the AUTN had been incorrect and MUST fail the authentication.

对等方的行为就像AUTN不正确一样,必须通过身份验证。

If the peer supports a given key derivation function but is unwilling to perform it for policy reasons, it refuses to calculate the keys and behaves as explained in Section 3.2.

如果对等方支持给定的密钥派生函数,但出于策略原因不愿意执行该函数,则该对等方拒绝计算密钥,其行为如第3.2节所述。

3.4. Hash Functions
3.4. 哈希函数

EAP-AKA' uses SHA-256 [FIPS.180-2.2002], not SHA-1 [FIPS.180-1.1995] as in EAP-AKA. This requires a change to the pseudo-random function (PRF) as well as the AT_MAC and AT_CHECKCODE attributes.

EAP-AKA“使用SHA-256[FIPS.180-2.2002],而不是EAP-AKA中的SHA-1[FIPS.180-1.1995]。这需要更改伪随机函数(PRF)以及AT_MAC和AT_校验码属性。

3.4.1. PRF'
3.4.1. PRF'

The PRF' construction is the same one IKEv2 uses (see Section 2.13 of [RFC4306]). The function takes two arguments. K is a 256-bit value and S is an octet string of arbitrary length. PRF' is defined as follows:

PRF的结构与IKEv2使用的结构相同(见[RFC4306]第2.13节)。该函数有两个参数。K是256位的值,S是任意长度的八位字符串。PRF’的定义如下:

PRF'(K,S) = T1 | T2 | T3 | T4 | ...

PRF’(K,S)=T1 | T2 | T3 | T4 |。。。

where: T1 = HMAC-SHA-256 (K, S | 0x01) T2 = HMAC-SHA-256 (K, T1 | S | 0x02) T3 = HMAC-SHA-256 (K, T2 | S | 0x03) T4 = HMAC-SHA-256 (K, T3 | S | 0x04) ...

其中:T1=HMAC-SHA-256(K,S|0x01)T2=HMAC-SHA-256(K,T1 | S|0x02)T3=HMAC-SHA-256(K,T2 | S|0x03)T4=HMAC-SHA-256(K,T3 | S|0x04)。。。

PRF' produces as many bits of output as is needed. HMAC-SHA-256 is the application of HMAC [RFC2104] to SHA-256.

PRF’根据需要产生尽可能多的输出位。HMAC-SHA-256是HMAC[RFC2104]对SHA-256的应用。

3.4.2. AT_MAC
3.4.2. 在苹果

When used within EAP-AKA', the AT_MAC attribute is changed as follows. The MAC algorithm is HMAC-SHA-256-128, a keyed hash value. The HMAC-SHA-256-128 value is obtained from the 32-byte HMAC-SHA-256 value by truncating the output to the first 16 bytes. Hence, the length of the MAC is 16 bytes.

在EAP-AKA'中使用时,AT_MAC属性更改如下。MAC算法是HMAC-SHA-256-128,一个键控哈希值。HMAC-SHA-256-128值是通过将输出截断为前16个字节从32字节的HMAC-SHA-256值中获得的。因此,MAC的长度是16字节。

Otherwise, the use of AT_MAC in EAP-AKA' follows Section 10.15 of [RFC4187].

否则,EAP-AKA中AT_MAC的使用遵循[RFC4187]第10.15节。

3.4.3. AT_CHECKCODE
3.4.3. AT_校验码

When used within EAP-AKA', the AT_CHECKCODE attribute is changed as follows. First, a 32-byte value is needed to accommodate a 256-bit hash output:

在EAP-AKA'中使用时,AT_CHECKCODE属性更改如下。首先,需要32字节的值来容纳256位哈希输出:

    0                   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | AT_CHECKCODE  | Length        |           Reserved            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                     Checkcode (0 or 32 bytes)                 |
   |                                                               |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    0                   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | AT_CHECKCODE  | Length        |           Reserved            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                     Checkcode (0 or 32 bytes)                 |
   |                                                               |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Second, the checkcode is a hash value, calculated with SHA-256 [FIPS.180-2.2002], over the data specified in Section 10.13 of [RFC4187].

其次,校验码是一个散列值,使用SHA-256[FIPS.180-2.2002]对[RFC4187]第10.13节中规定的数据进行计算。

4. Bidding Down Prevention for EAP-AKA
4. EAP-AKA的投标下降预防

As discussed in [RFC3748], negotiation of methods within EAP is insecure. That is, a man-in-the-middle attacker may force the endpoints to use a method that is not the strongest that they both support. This is a problem, as we expect EAP-AKA and EAP-AKA' to be negotiated via EAP.

如[RFC3748]所述,EAP内的方法协商是不安全的。也就是说,中间人攻击者可能会强制端点使用它们都不支持的最强方法。这是一个问题,因为我们希望通过EAP谈判EAP-AKA和EAP-AKA。

In order to prevent such attacks, this RFC specifies a new mechanism for EAP-AKA that allows the endpoints to securely discover the capabilities of each other. This mechanism comes in the form of the AT_BIDDING attribute. This allows both endpoints to communicate their desire and support for EAP-AKA' when exchanging EAP-AKA messages. This attribute is not included in EAP-AKA' messages as defined in this RFC. It is only included in EAP-AKA messages. This is based on the assumption that EAP-AKA' is always preferable (see Section 5). If during the EAP-AKA authentication process it is discovered that both endpoints would have been able to use EAP-AKA', the authentication process SHOULD be aborted, as a bidding down attack may have happened.

为了防止此类攻击,此RFC为EAP-AKA指定了一种新机制,允许端点安全地发现彼此的能力。该机制以AT_竞价属性的形式出现。这允许两个端点在交换EAP-AKA消息时传达其对EAP-AKA的期望和支持。此属性不包括在此RFC中定义的EAP-AKA消息中。它仅包含在EAP-AKA消息中。这是基于以下假设,即EAP-AKA“始终是可取的”(见第5节)。如果在EAP-AKA身份验证过程中发现两个端点都可以使用EAP-AKA’,则应中止身份验证过程,因为可能发生了竞价拒绝攻击。

The format of the AT_BIDDING attribute is shown below.

AT_BIDDING属性的格式如下所示。

       0                   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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | AT_BIDDING    | Length        |D|          Reserved           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
       0                   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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | AT_BIDDING    | Length        |D|          Reserved           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

The fields are as follows:

字段如下所示:

AT_BIDDING

竞价

This is set to 136.

这设置为136。

Length

The length of the attribute, MUST be set to 1.

属性的长度必须设置为1。

D

D

This bit is set to 1 if the sender supports EAP-AKA', is willing to use it, and prefers it over EAP-AKA. Otherwise, it should be set to zero.

如果发送方支持EAP-AKA',愿意使用它,并且更喜欢它而不是EAP-AKA,则该位设置为1。否则,应将其设置为零。

Reserved

含蓄的

This field MUST be set to zero when sent and ignored on receipt.

发送时此字段必须设置为零,接收时忽略。

The server sends this attribute in the EAP-Request/AKA-Challenge message. If the peer supports EAP-AKA', it compares the received value to its own capabilities. If it turns out that both the server and peer would have been able to use EAP-AKA' and preferred it over EAP-AKA, the peer behaves as if AUTN had been incorrect and fails the authentication (see Figure 3 of [RFC4187]). A peer not supporting EAP-AKA' will simply ignore this attribute. In all cases, the attribute is protected by the integrity mechanisms of EAP-AKA, so it cannot be removed by a man-in-the-middle attacker.

服务器在EAP请求/AKA质询消息中发送此属性。如果对等方支持EAP-AKA',它会将收到的值与其自身的能力进行比较。如果结果表明服务器和对等方都能够使用EAP-AKA’,并且更喜欢它而不是EAP-AKA,则对等方的行为就好像AUTN不正确并且验证失败一样(参见[RFC4187]的图3)。不支持EAP-AKA的对等方将忽略此属性。在所有情况下,该属性都受到EAP-AKA完整性机制的保护,因此中间人攻击者无法删除该属性。

Note that we assume (Section 5) that EAP-AKA' is always stronger than EAP-AKA. As a result, there is no need to prevent bidding "down" attacks in the other direction, i.e., attackers forcing the endpoints to use EAP-AKA'.

注意,我们假设(第5节)EAP-AKA’总是比EAP-AKA强。因此,不需要阻止另一方向的“向下”攻击,即攻击者迫使端点使用EAP-AKA’。

5. Security Considerations
5. 安全考虑

A summary of the security properties of EAP-AKA' follows. These properties are very similar to those in EAP-AKA. We assume that SHA-256 is at least as secure as SHA-1. This is called the SHA-256 assumption in the remainder of this section. Under this assumption, EAP-AKA' is at least as secure as EAP-AKA.

以下是EAP-AKA的安全属性摘要。这些特性与EAP-AKA中的特性非常相似。我们假设SHA-256至少和SHA-1一样安全。这在本节的其余部分称为SHA-256假设。在此假设下,EAP-AKA'至少与EAP-AKA一样安全。

If the AT_KDF attribute has value 1, then the security properties of EAP-AKA' are as follows:

如果AT_KDF属性的值为1,则EAP-AKA'的安全属性如下所示:

Protected ciphersuite negotiation

受保护密码套件协商

EAP-AKA' has no ciphersuite negotiation mechanisms. It does have a negotiation mechanism for selecting the key derivation functions. This mechanism is secure against bidding down attacks. The negotiation mechanism allows changing the offered key derivation function, but the change is visible in the final EAP-Request/AKA'-Challenge message that the server sends to the peer. This message is authenticated via the AT_MAC attribute, and carries both the chosen alternative and the initially offered list. The peer refuses to accept a change it did not initiate. As a result, both parties are aware that a change is being made and what the original offer was.

EAP-AKA“没有密码套件协商机制。它确实有一个用于选择密钥派生函数的协商机制。这种机制是安全的,可以防止出价下降攻击。协商机制允许更改所提供的密钥派生功能,但更改在服务器发送给对等方的最终EAP请求/AKA'-质询消息中可见。此消息通过AT_MAC属性进行身份验证,并携带所选备选方案和最初提供的列表。对等方拒绝接受其未发起的更改。因此,双方都知道正在进行更改,以及原始报价是什么。

Mutual authentication

相互认证

Under the SHA-256 assumption, the properties of EAP-AKA' are at least as good as those of EAP-AKA in this respect. Refer to [RFC4187], Section 12 for further details.

在SHA-256假设下,EAP-AKA’在这方面的性能至少与EAP-AKA相同。有关更多详细信息,请参阅[RFC4187],第12节。

Integrity protection

完整性保护

Under the SHA-256 assumption, the properties of EAP-AKA' are at least as good (most likely better) as those of EAP-AKA in this respect. Refer to [RFC4187], Section 12 for further details. The only difference is that a stronger hash algorithm, SHA-256, is used instead of SHA-1.

在SHA-256假设下,EAP-AKA的性能至少与EAP-AKA的性能一样好(很可能更好)。有关更多详细信息,请参阅[RFC4187],第12节。唯一的区别是使用了更强的散列算法SHA-256,而不是SHA-1。

Replay protection

重放保护

Under the SHA-256 assumption, the properties of EAP-AKA' are at least as good as those of EAP-AKA in this respect. Refer to [RFC4187], Section 12 for further details.

在SHA-256假设下,EAP-AKA’在这方面的性能至少与EAP-AKA相同。有关更多详细信息,请参阅[RFC4187],第12节。

Confidentiality

保密性

The properties of EAP-AKA' are exactly the same as those of EAP-AKA in this respect. Refer to [RFC4187], Section 12 for further details.

在这方面,EAP-AKA'的特性与EAP-AKA的特性完全相同。有关更多详细信息,请参阅[RFC4187],第12节。

Key derivation

导出密钥

EAP-AKA' supports key derivation with an effective key strength against brute force attacks equal to the minimum of the length of the derived keys and the length of the AKA base key, i.e., 128 bits or more. The key hierarchy is specified in Section 3.3.

EAP-AKA'支持密钥派生,有效密钥强度对抗暴力攻击,等于派生密钥长度和AKA基本密钥长度的最小值,即128位或更多。第3.3节规定了密钥层次结构。

The Transient EAP Keys used to protect EAP-AKA packets (K_encr, K_aut, K_re), the MSK, and the EMSK are cryptographically separate. If we make the assumption that SHA-256 behaves as a pseudo-random function, an attacker is incapable of deriving any non-trivial information about any of these keys based on the other keys. An attacker also cannot calculate the pre-shared secret from IK, CK, IK', CK', K_encr, K_aut, K_re, MSK, or EMSK by any practically feasible means.

用于保护EAP-AKA数据包(K_encr、K_aut、K_re)、MSK和EMSK的瞬态EAP密钥以加密方式分开。如果我们假设SHA-256的行为是一个伪随机函数,那么攻击者就无法根据其他密钥导出关于这些密钥的任何非平凡信息。攻击者也无法通过任何实际可行的方法从IK、CK、IK',CK',K_encr、K_aut、K_re、MSK或EMSK计算预共享秘密。

EAP-AKA' adds an additional layer of key derivation functions within itself to protect against the use of compromised keys. This is discussed further in Section 5.1.

EAP-AKA’在其内部增加了一层额外的密钥派生功能,以防止使用泄露的密钥。这将在第5.1节中进一步讨论。

EAP-AKA' uses a pseudo-random function modeled after the one used in IKEv2 [RFC4306] together with SHA-256.

EAP-AKA'使用了一个伪随机函数,该函数模仿IKEv2[RFC4306]中使用的函数以及SHA-256。

Key strength

关键力量

See above.

见上文。

Dictionary attack resistance

字典攻击抵抗

Under the SHA-256 assumption, the properties of EAP-AKA' are at least as good as those of EAP-AKA in this respect. Refer to [RFC4187], Section 12 for further details.

在SHA-256假设下,EAP-AKA’在这方面的性能至少与EAP-AKA相同。有关更多详细信息,请参阅[RFC4187],第12节。

Fast reconnect

快速重新连接

Under the SHA-256 assumption, the properties of EAP-AKA' are at least as good as those of EAP-AKA in this respect. Refer to [RFC4187], Section 12 for further details. Note that implementations MUST prevent performing a fast reconnect across method types.

在SHA-256假设下,EAP-AKA’在这方面的性能至少与EAP-AKA相同。有关更多详细信息,请参阅[RFC4187],第12节。注意,实现必须防止跨方法类型执行快速重新连接。

Cryptographic binding

加密绑定

Note that this term refers to a very specific form of binding, something that is performed between two layers of authentication. It is not the same as the binding to a particular network name. The properties of EAP-AKA' are exactly the same as those of EAP-AKA in this respect, i.e., as it is not a tunnel method, this property is not applicable to it. Refer to [RFC4187], Section 12 for further details.

注意,这个术语指的是一种非常特殊的绑定形式,它是在两层身份验证之间执行的。它与绑定到特定网络名称不同。在这方面,EAP-AKA'的属性与EAP-AKA的属性完全相同,即,由于它不是隧道方法,因此该属性不适用于它。有关更多详细信息,请参阅[RFC4187],第12节。

Session independence

会话独立性

The properties of EAP-AKA' are exactly the same as those of EAP-AKA in this respect. Refer to [RFC4187], Section 12 for further details.

在这方面,EAP-AKA'的特性与EAP-AKA的特性完全相同。有关更多详细信息,请参阅[RFC4187],第12节。

Fragmentation

碎裂

The properties of EAP-AKA' are exactly the same as those of EAP-AKA in this respect. Refer to [RFC4187], Section 12 for further details.

在这方面,EAP-AKA'的特性与EAP-AKA的特性完全相同。有关更多详细信息,请参阅[RFC4187],第12节。

Channel binding

通道绑定

EAP-AKA', like EAP-AKA, does not provide channel bindings as they're defined in [RFC3748] and [RFC5247]. New skippable attributes can be used to add channel binding support in the future, if required.

EAP-AKA’与EAP-AKA一样,不提供[RFC3748]和[RFC5247]中定义的通道绑定。如果需要,将来可以使用新的可跳过属性添加通道绑定支持。

However, including the Network Name field in the AKA' algorithms (which are also used for other purposes than EAP-AKA') provides a form of cryptographic separation between different network names, which resembles channel bindings. However, the network name does not typically identify the EAP (pass-through) authenticator. See the following section for more discussion.

然而,在AKA“算法”(也用于EAP-AKA以外的其他目的)中包含网络名称字段,提供了不同网络名称之间的加密分离形式,类似于通道绑定。但是,网络名称通常不标识EAP(直通)验证器。有关更多讨论,请参阅以下部分。

5.1. Security Properties of Binding Network Names
5.1. 绑定网络名称的安全属性

The ability of EAP-AKA' to bind the network name into the used keys provides some additional protection against key leakage to inappropriate parties. The keys used in the protocol are specific to a particular network name. If key leakage occurs due to an accident, access node compromise, or another attack, the leaked keys are only useful when providing access with that name. For instance, a malicious access point cannot claim to be network Y if it has stolen keys from network X. Obviously, if an access point is compromised, the malicious node can still represent the compromised node. As a result, neither EAP-AKA' nor any other extension can prevent such attacks; however, the binding to a particular name limits the attacker's choices, allows better tracking of attacks, makes it possible to identify compromised networks, and applies good cryptographic hygiene.

EAP-AKA将网络名称绑定到使用的密钥中的能力提供了一些额外的保护,防止密钥泄漏到不适当的方。协议中使用的密钥特定于特定的网络名称。如果由于事故、访问节点泄露或其他攻击而发生密钥泄漏,则泄漏的密钥仅在提供具有该名称的访问时有用。例如,如果一个恶意接入点从网络X窃取了密钥,那么它就不能声称自己是网络Y。显然,如果一个接入点被破坏,恶意节点仍然可以代表被破坏的节点。因此,EAP-AKA'或任何其他扩展都无法阻止此类攻击;但是,与特定名称的绑定限制了攻击者的选择,允许更好地跟踪攻击,使识别受损网络成为可能,并应用良好的密码卫生。

The server receives the EAP transaction from a given access network and verifies that the claim from the access network corresponds to the name that this access network should be using. It becomes impossible for an access network to claim over AAA that it is another access network. In addition, if the peer checks that the information it has received locally over the network-access link layer matches with the information the server has given it via EAP-AKA', it becomes impossible for the access network to tell one story to the AAA network and another one to the peer. These checks prevent some "lying NAS" (Network Access Server) attacks. For instance, a roaming partner, R, might claim that it is the home network H in an effort to lure peers to connect to itself. Such an attack would be beneficial for the roaming partner if it can attract more users, and damaging for the users if their access costs in R are higher than those in other alternative networks, such as H.

服务器从给定的接入网络接收EAP事务,并验证来自接入网络的声明是否对应于该接入网络应使用的名称。接入网络不可能通过AAA声称它是另一个接入网络。此外,如果对等方检查其通过网络接入链路层在本地接收到的信息是否与服务器通过EAP-AKA’提供给它的信息相匹配,则接入网络不可能向AAA网络讲述一个故事,向对等方讲述另一个故事。这些检查可防止某些“说谎NAS”(网络访问服务器)攻击。例如,漫游伙伴R可能声称它是家庭网络H,以吸引对等方连接到自身。如果这种攻击能够吸引更多的用户,则对漫游伙伴有利;如果用户在R中的访问成本高于其他替代网络(如H)中的访问成本,则对用户有害。

Any attacker who gets hold of the keys CK and IK, produced by the AKA algorithm, can compute the keys CK' and IK' and, hence, the Master Key (MK) according to the rules in Section 3.3. The attacker could then act as a lying NAS. In 3GPP systems in general, the keys CK and IK have been distributed to, for instance, nodes in a visited access network where they may be vulnerable. In order to reduce this risk, the AKA algorithm MUST be computed with the AMF separation bit set to 1, and the peer MUST check that this is indeed the case whenever it

任何获得AKA算法生成的关键点CK和IK的攻击者都可以根据第3.3节中的规则计算关键点CK'和IK',从而计算主关键点(MK)。然后,攻击者可以充当说谎的NAS。一般来说,在3GPP系统中,密钥CK和IK已经被分发到例如访问的接入网络中的节点,这些节点可能容易受到攻击。为了降低这一风险,必须在AMF分离位设置为1的情况下计算AKA算法,并且对等方必须检查在任何时候都是如此

runs EAP-AKA'. Furthermore, [3GPP.33.402] requires that no CK or IK keys computed in this way ever leave the home subscriber system.

运行EAP-AKA’。此外,[3GPP.33.402]要求以这种方式计算的CK或IK密钥永远不会离开家庭订户系统。

The additional security benefits obtained from the binding depend obviously on the way names are assigned to different access networks. This is specified in [3GPP.24.302]. See also [3GPP.23.003]. Ideally, the names allow separating each different access technology, each different access network, and each different NAS within a domain. If this is not possible, the full benefits may not be achieved. For instance, if the names identify just an access technology, use of compromised keys in a different technology can be prevented, but it is not possible to prevent their use by other domains or devices using the same technology.

从绑定中获得的额外安全好处显然取决于将名称分配给不同接入网络的方式。这在[3GPP.24.302]中有规定。另见[3GPP.23.003]。理想情况下,这些名称允许在一个域中分离每种不同的访问技术、每种不同的访问网络和每种不同的NAS。如果不可能做到这一点,则可能无法实现全部好处。例如,如果名称仅识别访问技术,则可以防止在不同技术中使用受损密钥,但不可能防止使用相同技术的其他域或设备使用这些密钥。

6. IANA Considerations
6. IANA考虑
6.1. Type Value
6.1. 类型值

EAP-AKA' has the EAP Type value 50 in the Extensible Authentication Protocol (EAP) Registry under Method Types. Per Section 6.2 of [RFC3748], this allocation can be made with Designated Expert and Specification Required.

EAP-AKA'在方法类型下的可扩展身份验证协议(EAP)注册表中具有EAP类型值50。根据[RFC3748]第6.2节,可根据指定专家和所需规范进行分配。

6.2. Attribute Type Values
6.2. 属性类型值

EAP-AKA' shares its attribute space and subtypes with EAP-SIM [RFC4186] and EAP-AKA [RFC4187]. No new registries are needed.

EAP-AKA'与EAP-SIM[RFC4186]和EAP-AKA[RFC4187]共享其属性空间和子类型。不需要新的登记册。

However, a new Attribute Type value (23) in the non-skippable range has been assigned for AT_KDF_INPUT (Section 3.1) in the EAP-AKA and EAP-SIM Parameters registry under Attribute Types.

但是,在EAP-AKA和EAP-SIM参数注册表的“属性类型”下,为AT_KDF_输入(第3.1节)分配了不可跳过范围内的新属性类型值(23)。

Also, a new Attribute Type value (24) in the non-skippable range has been assigned for AT_KDF (Section 3.2).

此外,已为AT_KDF(第3.2节)分配了不可跳过范围内的新属性类型值(24)。

Finally, a new Attribute Type value (136) in the skippable range has been assigned for AT_BIDDING (Section 4).

最后,可跳过范围内的新属性类型值(136)已分配给AT_投标(第4节)。

6.3. Key Derivation Function Namespace
6.3. 键派生函数命名空间

IANA has also created a new namespace for EAP-AKA' AT_KDF Key Derivation Function Values. This namespace exists under the EAP-AKA and EAP-SIM Parameters registry. The initial contents of this namespace are given below; new values can be created through the Specification Required policy [RFC5226].

IANA还为EAP-AKA“AT_KDF键派生函数值”创建了一个新名称空间。此命名空间存在于EAP-AKA和EAP-SIM参数注册表下。该名称空间的初始内容如下所示;可以通过规范要求的策略[RFC5226]创建新值。

   Value      Description              Reference
   ---------  ----------------------   ---------------
   0          Reserved                 [RFC5448]
   1          EAP-AKA' with CK'/IK'    [RFC5448]
   2-65535    Unassigned
        
   Value      Description              Reference
   ---------  ----------------------   ---------------
   0          Reserved                 [RFC5448]
   1          EAP-AKA' with CK'/IK'    [RFC5448]
   2-65535    Unassigned
        
7. Contributors
7. 贡献者

The test vectors in Appendix C were provided by Yogendra Pal and Jouni Malinen, based on two independent implementations of this specification.

附录C中的测试向量由Yogendra Pal和Jouni Malinen根据本规范的两个独立实现提供。

8. Acknowledgments
8. 致谢

The authors would like to thank Guenther Horn, Joe Salowey, Mats Naslund, Adrian Escott, Brian Rosenberg, Laksminath Dondeti, Ahmad Muhanna, Stefan Rommer, Miguel Garcia, Jan Kall, Ankur Agarwal, Jouni Malinen, Brian Weis, Russ Housley, and Alfred Hoenes for their in-depth reviews and interesting discussions in this problem space.

作者要感谢根瑟·霍恩、乔·萨洛维、马茨·纳斯伦德、阿德里安·埃斯科特、布莱恩·罗森博格、拉克斯米纳特·唐德蒂、艾哈迈德·穆哈纳、斯特凡·罗默、米格尔·加西亚、扬·卡尔、安库·阿加瓦尔、朱尼·马林、布莱恩·韦斯、罗斯·霍斯利和阿尔弗雷德·霍恩斯在这个问题空间的深入评论和有趣讨论。

9. References
9. 工具书类
9.1. Normative References
9.1. 规范性引用文件
   [3GPP.24.302]      3GPP, "3rd Generation Partnership Project;
                      Technical Specification Group Core Network and
                      Terminals; Access to the 3GPP Evolved Packet Core
                      (EPC) via non-3GPP access networks; Stage 3;
                      (Release 8)", 3GPP Technical Specification 24.302,
                      December 2008.
        
   [3GPP.24.302]      3GPP, "3rd Generation Partnership Project;
                      Technical Specification Group Core Network and
                      Terminals; Access to the 3GPP Evolved Packet Core
                      (EPC) via non-3GPP access networks; Stage 3;
                      (Release 8)", 3GPP Technical Specification 24.302,
                      December 2008.
        

[3GPP.33.102] 3GPP, "3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; 3G Security; Security architecture (Release 8)", 3GPP Technical Specification 33.102, December 2008.

[3GPP.33.102]3GPP,“第三代合作伙伴项目;技术规范组服务和系统方面;3G安全;安全架构(第8版)”,3GPP技术规范33.102,2008年12月。

[3GPP.33.402] 3GPP, "3GPP System Architecture Evolution (SAE); Security aspects of non-3GPP accesses; Release 8", 3GPP Technical Specification 33.402, December 2008.

[3GPP.33.402]3GPP,“3GPP系统架构演进(SAE);非3GPP接入的安全方面;第8版”,3GPP技术规范33.402,2008年12月。

[FIPS.180-2.2002] National Institute of Standards and Technology, "Secure Hash Standard", FIPS PUB 180-2, August 2002, <http://csrc.nist.gov/publications/ fips/fips180-2/fips180-2.pdf>.

[FIPS.180-2.2002]国家标准与技术研究所,“安全哈希标准”,FIPS PUB 180-22002年8月<http://csrc.nist.gov/publications/ fips/fips180-2/fips180-2.pdf>。

[RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed-Hashing for Message Authentication", RFC 2104, February 1997.

[RFC2104]Krawczyk,H.,Bellare,M.,和R.Canetti,“HMAC:用于消息认证的键控哈希”,RFC 2104,1997年2月。

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H. Levkowetz, "Extensible Authentication Protocol (EAP)", RFC 3748, June 2004.

[RFC3748]Aboba,B.,Blunk,L.,Vollbrecht,J.,Carlson,J.,和H.Levkowetz,“可扩展身份验证协议(EAP)”,RFC 3748,2004年6月。

[RFC4187] Arkko, J. and H. Haverinen, "Extensible Authentication Protocol Method for 3rd Generation Authentication and Key Agreement (EAP-AKA)", RFC 4187, January 2006.

[RFC4187]Arkko,J.和H.Haverinen,“第三代认证和密钥协议(EAP-AKA)的可扩展认证协议方法”,RFC 4187,2006年1月。

[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 5226, May 2008.

[RFC5226]Narten,T.和H.Alvestrand,“在RFCs中编写IANA注意事项部分的指南”,BCP 26,RFC 5226,2008年5月。

9.2. Informative References
9.2. 资料性引用

[3GPP.23.003] 3GPP, "3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; Numbering, addressing and identification (Release 8)", 3GPP Draft Technical Specification 23.003, December 2008.

[3GPP.23.003]3GPP,“第三代合作伙伴项目;技术规范组核心网络和终端;编号、寻址和标识(第8版)”,3GPP技术规范草案23.003,2008年12月。

   [3GPP.35.208]      3GPP, "3rd Generation Partnership Project;
                      Technical Specification Group Services and System
                      Aspects; 3G Security; Specification of the
                      MILENAGE Algorithm Set: An example algorithm set
                      for the 3GPP authentication and key generation
                      functions f1, f1*, f2, f3, f4, f5 and f5*;
                      Document 4: Design Conformance Test Data (Release
                      8)", 3GPP Technical Specification 35.208,
                      December 2008.
        
   [3GPP.35.208]      3GPP, "3rd Generation Partnership Project;
                      Technical Specification Group Services and System
                      Aspects; 3G Security; Specification of the
                      MILENAGE Algorithm Set: An example algorithm set
                      for the 3GPP authentication and key generation
                      functions f1, f1*, f2, f3, f4, f5 and f5*;
                      Document 4: Design Conformance Test Data (Release
                      8)", 3GPP Technical Specification 35.208,
                      December 2008.
        

[FIPS.180-1.1995] National Institute of Standards and Technology, "Secure Hash Standard", FIPS PUB 180-1, April 1995, <http://www.itl.nist.gov/fipspubs/fip180-1.htm>.

[FIPS.180-1.1995]国家标准与技术研究所,“安全哈希标准”,FIPS PUB 180-1,1995年4月<http://www.itl.nist.gov/fipspubs/fip180-1.htm>.

[RFC4186] Haverinen, H. and J. Salowey, "Extensible Authentication Protocol Method for Global System for Mobile Communications (GSM) Subscriber Identity Modules (EAP-SIM)", RFC 4186, January 2006.

[RFC4186]Haverinen,H.和J.Salowey,“全球移动通信系统(GSM)用户身份模块(EAP-SIM)的可扩展认证协议方法”,RFC 4186,2006年1月。

[RFC4284] Adrangi, F., Lortz, V., Bari, F., and P. Eronen, "Identity Selection Hints for the Extensible Authentication Protocol (EAP)", RFC 4284, January 2006.

[RFC4284]Adrangi,F.,Lortz,V.,Bari,F.,和P.Ernen,“可扩展身份验证协议(EAP)的身份选择提示”,RFC 4284,2006年1月。

[RFC4306] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", RFC 4306, December 2005.

[RFC4306]Kaufman,C.,“互联网密钥交换(IKEv2)协议”,RFC43062005年12月。

[RFC5113] Arkko, J., Aboba, B., Korhonen, J., and F. Bari, "Network Discovery and Selection Problem", RFC 5113, January 2008.

[RFC5113]Arkko,J.,Aboba,B.,Korhonen,J.,和F.Bari,“网络发现和选择问题”,RFC 5113,2008年1月。

[RFC5247] Aboba, B., Simon, D., and P. Eronen, "Extensible Authentication Protocol (EAP) Key Management Framework", RFC 5247, August 2008.

[RFC5247]Aboba,B.,Simon,D.,和P.Eronen,“可扩展认证协议(EAP)密钥管理框架”,RFC 5247,2008年8月。

Appendix A. Changes from RFC 4187
附录A.RFC 4187的变更

The changes to RFC 4187 relate only to the bidding down prevention support defined in Section 4. In particular, this document does not change how the Master Key (MK) is calculated in RFC 4187 (it uses CK and IK, not CK' and IK'); neither is any processing of the AMF bit added to RFC 4187.

RFC 4187的变更仅涉及第4节中定义的投标否决预防支持。特别是,本文件不改变RFC 4187中主密钥(MK)的计算方式(它使用CK和IK,而不是CK'和IK');RFC 4187中也没有添加任何AMF位处理。

Appendix B. Importance of Explicit Negotiation
附录B.明确谈判的重要性

Choosing between the traditional and revised AKA key derivation functions is easy when their use is unambiguously tied to a particular radio access network, e.g., Long Term Evolution (LTE) as defined by 3GPP or evolved High Rate Packet Data (eHRPD) as defined by 3GPP2. There is no possibility for interoperability problems if this radio access network is always used in conjunction with new protocols that cannot be mixed with the old ones; clients will always know whether they are connecting to the old or new system.

当传统的和修改的AKA密钥导出函数的使用明确地绑定到特定的无线接入网络时,例如,3GPP定义的长期演进(LTE)或3GPP2定义的演进高速分组数据(eHRPD),在两者之间选择是容易的。如果该无线接入网络始终与不能与旧协议混合的新协议一起使用,则不可能出现互操作性问题;客户端将始终知道他们是连接到旧系统还是新系统。

However, using the new key derivation functions over EAP introduces several degrees of separation, making the choice of the correct key derivation functions much harder. Many different types of networks employ EAP. Most of these networks have no means to carry any information about what is expected from the authentication process. EAP itself is severely limited in carrying any additional information, as noted in [RFC4284] and [RFC5113]. Even if these networks or EAP were extended to carry additional information, it would not affect millions of deployed access networks and clients attaching to them.

但是,在EAP上使用新的密钥派生函数会引入多个分离度,使得选择正确的密钥派生函数更加困难。许多不同类型的网络采用EAP。这些网络中的大多数都无法携带任何有关认证过程中所需信息的信息。如[RFC4284]和[RFC5113]所述,EAP本身在承载任何附加信息方面受到严重限制。即使这些网络或EAP被扩展以承载更多信息,也不会影响数百万已部署的接入网络和连接到它们的客户端。

Simply changing the key derivation functions that EAP-AKA [RFC4187] uses would cause interoperability problems with all of the existing implementations. Perhaps it would be possible to employ strict separation into domain names that should be used by the new clients and networks. Only these new devices would then employ the new key derivation mechanism. While this can be made to work for specific cases, it would be an extremely brittle mechanism, ripe to result in problems whenever client configuration, routing of authentication requests, or server configuration does not match expectations. It also does not help to assume that the EAP client and server are running a particular release of 3GPP network specifications. Network vendors often provide features from future releases early or do not provide all features of the current release. And obviously, there are many EAP and even some EAP-AKA implementations that are not bundled with the 3GPP network offerings. In general, these approaches are expected to lead to hard-to-diagnose problems and increased support calls.

简单地更改EAP-AKA[RFC4187]使用的关键派生函数将导致所有现有实现的互操作性问题。也许可以将新客户机和网络使用的域名严格分开。只有这些新设备才会采用新的密钥派生机制。虽然这可以在特定情况下使用,但这将是一种非常脆弱的机制,一旦客户机配置、身份验证请求路由或服务器配置与预期不符,就会导致问题。假设EAP客户端和服务器正在运行特定版本的3GPP网络规范也无济于事。网络供应商通常提前提供未来版本的功能,或者不提供当前版本的所有功能。显然,有许多EAP甚至一些EAP-AKA实现没有与3GPP网络产品捆绑在一起。一般来说,这些方法预计会导致难以诊断的问题和更多的支持电话。

Appendix C. Test Vectors
附录C.测试向量

Test vectors are provided below for four different cases. The test vectors may be useful for testing implementations. In the first two cases, we employ the Milenage algorithm and the algorithm configuration parameters (the subscriber key K and operator algorithm variant configuration value OP) from test set 19 in [3GPP.35.208].

下面提供了四种不同情况下的测试向量。测试向量可用于测试实现。在前两种情况下,我们使用[3GPP.35.208]中测试集19中的Milenage算法和算法配置参数(用户密钥K和操作员算法变量配置值OP)。

The last two cases use artificial values as the output of AKA, and is useful only for testing the computation of values within EAP-AKA', not AKA itself.

最后两种情况使用人工值作为AKA的输出,仅用于测试EAP-AKA'中的值计算,而不是AKA本身。

Case 1

案例1

The parameters for the AKA run are as follows:

AKA运行的参数如下所示:

Identity: "0555444333222111"

身份:“05554443332211”

Network name: "WLAN"

网络名称:“WLAN”

RAND: 81e9 2b6c 0ee0 e12e bceb a8d9 2a99 dfa5

兰德:81e9 2b6c 0ee0 e12e bceb a8d9 2a99 dfa5

AUTN: bb52 e91c 747a c3ab 2a5c 23d1 5ee3 51d5

AUTN:bb52 e91c 747a c3ab 2a5c 23d1 5ee3 51d5

IK: 9744 871a d32b f9bb d1dd 5ce5 4e3e 2e5a

IK:9744871A d32b f9bb d1dd 5ce5 4e3e 2e5a

CK: 5349 fbe0 9864 9f94 8f5d 2e97 3a81 c00f

CK:5349 fbe0 9864 9f94 8f5d 2e97 3a81 c00f

RES: 28d7 b0f2 a2ec 3de5

回复:28d7 b0f2 a2ec 3de5

Then the derived keys are generated as follows:

然后生成派生密钥,如下所示:

CK': 0093 962d 0dd8 4aa5 684b 045c 9edf fa04

CK':0093 962d 0dd8 4aa5 684b 045c 9edf fa04

IK': ccfc 230c a74f cc96 c0a5 d611 64f5 a76c

IK':ccfc 230c a74f cc96 c0a5 d611 64f5 a76c

K_encr: 766f a0a6 c317 174b 812d 52fb cd11 a179

K_encr:766f a0a6 c317 174b 812d 52fb cd11 a179

K_aut: 0842 ea72 2ff6 835b fa20 3249 9fc3 ec23 c2f0 e388 b4f0 7543 ffc6 77f1 696d 71ea

K_aut:0842 ea72 2ff6 835b fa20 3249 9fc3 ec23 c2f0 e388 b4f0 7543 ffc6 77f1 696d 71ea

K_re: cf83 aa8b c7e0 aced 892a cc98 e76a 9b20 95b5 58c7 795c 7094 715c b339 3aa7 d17a

K_re:cf83 aa8b c7e0 aced 892a cc98 e76a 9b20 95b5 58c7 795c 7094 715c b339 3aa7 d17a

MSK: 67c4 2d9a a56c 1b79 e295 e345 9fc3 d187 d42b e0bf 818d 3070 e362 c5e9 67a4 d544 e8ec fe19 358a b303 9aff 03b7 c930 588c 055b abee 58a0 2650 b067 ec4e 9347 c75a

MSK:67c4 2d9a a56c 1b79 e295 e345 9fc3 d187 d42b e0bf 818d 3070 e362 c5e9 67a4 d544 e8ec fe19 358a b303 9aff 03b7 c930 588c 055b abee 58a0 2650 b067 ec4e 9347 c75a

EMSK: f861 703c d775 590e 16c7 679e a387 4ada 8663 11de 2907 64d7 60cf 76df 647e a01c 313f 6992 4bdd 7650 ca9b ac14 1ea0 75c4 ef9e 8029 c0e2 90cd bad5 638b 63bc 23fb

EMSK:f861 703c d775 590e 16c7 679e a387 4ada 8663 11de 2907 64d7 60cf 76df 647e a01c 313f 6992 4bdd 7650 ca9b ac14 1ea0 75c4 ef9e 8029 c0e2 90cd bad5 638b 63bc 23fb

Case 2

案例2

The parameters for the AKA run are as follows:

AKA运行的参数如下所示:

Identity: "0555444333222111"

身份:“05554443332211”

Network name: "HRPD"

网络名称:“HRPD”

RAND: 81e9 2b6c 0ee0 e12e bceb a8d9 2a99 dfa5

兰德:81e9 2b6c 0ee0 e12e bceb a8d9 2a99 dfa5

AUTN: bb52 e91c 747a c3ab 2a5c 23d1 5ee3 51d5

AUTN:bb52 e91c 747a c3ab 2a5c 23d1 5ee3 51d5

IK: 9744 871a d32b f9bb d1dd 5ce5 4e3e 2e5a

IK:9744871A d32b f9bb d1dd 5ce5 4e3e 2e5a

CK: 5349 fbe0 9864 9f94 8f5d 2e97 3a81 c00f

CK:5349 fbe0 9864 9f94 8f5d 2e97 3a81 c00f

RES: 28d7 b0f2 a2ec 3de5

回复:28d7 b0f2 a2ec 3de5

Then the derived keys are generated as follows:

然后生成派生密钥,如下所示:

CK': 3820 f027 7fa5 f777 32b1 fb1d 90c1 a0da

CK':3820 f027 7fa5 f777 32b1 fb1d 90c1 a0da

IK': db94 a0ab 557e f6c9 ab48 619c a05b 9a9f

IK':db94 a0ab 557e f6c9 ab48 619c a05b 9a9f

K_encr: 05ad 73ac 915f ce89 ac77 e152 0d82 187b

K_encr:05ad 73ac 915f ce89 ac77 e152 0d82 187b

K_aut: 5b4a caef 62c6 ebb8 882b 2f3d 534c 4b35 2773 37a0 0184 f20f f25d 224c 04be 2afd

K_aut:5b4a caef 62c6 ebb8 882b 2f3d 534c 4b35 2773 37a0 0184 f20f f25d 224c 04be 2afd

K_re: 3f90 bf5c 6e5e f325 ff04 eb5e f653 9fa8 cca8 3981 94fb d00b e425 b3f4 0dba 10ac

K_re:3f90 bf5c 6e5e f325 ff04 eb5e f653 9fa8 cca8 3981 94fb d00b e425 b3f4 0dba 10ac

MSK: 87b3 2157 0117 cd6c 95ab 6c43 6fb5 073f f15c f855 05d2 bc5b b735 5fc2 1ea8 a757 57e8 f86a 2b13 8002 e057 5291 3bb4 3b82 f868 a961 17e9 1a2d 95f5 2667 7d57 2900

MSK:87b3 2157 0117 cd6c 95ab 6c43 6fb5 073f f15c f855 05d2 bc5b b735 5fc2 1ea8 a757 E8 f86a 2b13 8002 e057 5291 3bb4 3b82 f868 a961 17e9 1a2d 95f5 2667 7d57 2900

EMSK: c891 d5f2 0f14 8a10 0755 3e2d ea55 5c9c b672 e967 5f4a 66b4 bafa 0273 79f9 3aee 539a 5979 d0a0 042b 9d2a e28b ed3b 17a3 1dc8 ab75 072b 80bd 0c1d a612 466e 402c

EMSK:c891 d5f2 0f14 8a10 0755 3e2d ea55 5c9c b672 e967 5f4a 66b4 bafa 0273 79f9 3AE 539a 5979 d0a0 042b 9d2a e28b ed3b 17a3 1dc8 ab75 072b 80bd 0c1d a612 466e 402c

Case 3

案例3

The parameters for the AKA run are as follows:

AKA运行的参数如下所示:

Identity: "0555444333222111"

身份:“05554443332211”

Network name: "WLAN"

网络名称:“WLAN”

RAND: e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 e0e0

兰德:E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0

AUTN: a0a0 a0a0 a0a0 a0a0 a0a0 a0a0 a0a0 a0a0

AUTN:A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0

IK: b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 b0b0

IK:B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0

CK: c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 c0c0

CK:C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0

RES: d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 d0d0

回复:D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0

Then the derived keys are generated as follows:

然后生成派生密钥,如下所示:

CK': cd4c 8e5c 68f5 7dd1 d7d7 dfd0 c538 e577

CK':cd4c 8e5c 68f5 7dd1 d7d7 dfd0 c538 e577

IK': 3ece 6b70 5dbb f7df c459 a112 80c6 5524

IK':3ece 6b70 5dbb f7df c459 a112 80c6 5524

K_encr: 897d 302f a284 7416 488c 28e2 0dcb 7be4

K_encr:897d 302f a284 7416 488c 28e2 0dcb 7be4

K_aut: c407 00e7 7224 83ae 3dc7 139e b0b8 8bb5 58cb 3081 eccd 057f 9207 d128 6ee7 dd53

K_aut:c407 00e7 7224 83ae 3dc7 139e b0b8 8bb5 58cb 3081 eccd 057f 9207 d128 6ee7 dd53

K_re: 0a59 1a22 dd8b 5b1c f29e 3d50 8c91 dbbd b4ae e230 5189 2c42 b6a2 de66 ea50 4473

K_re:0a59 1a22 dd8b 5b1c f29e 3d50 8c91 dbbd b4ae e230 5189 2c42 b6a2 de66 ea50 4473

MSK: 9f7d ca9e 37bb 2202 9ed9 86e7 cd09 d4a7 0d1a c76d 9553 5c5c ac40 a750 4699 bb89 61a2 9ef6 f3e9 0f18 3de5 861a d1be dc81 ce99 1639 1b40 1aa0 06c9 8785 a575 6df7

MSK:9f7d ca9e 37bb 2202 9ed9 86e7 cd09 d4a7 0d1a c76d 9553 5C ac40 a750 4699 bb89 61a2 9ef6 f3e9 0f18 3de5 861a d1be dc81 ce99 1639 1b40 1aa0 06c9 8785 a575 6df7

EMSK: 724d e00b db9e 5681 87be 3fe7 4611 4557 d501 8779 537e e37f 4d3c 6c73 8cb9 7b9d c651 bc19 bfad c344 ffe2 b52c a78b d831 6b51 dacc 5f2b 1440 cb95 1552 1cc7 ba23

EMSK:724d e00b db9e 5681 87be 3fe7 4611 4557 d501 8779 537e e37f 4d3c 6c73 8cb9 7BJ9D c651 bc19 bfad c344 ffe2 b52c a78b d831 6b51 dacc 5f2b 1440 cb95 1552 1cc7 ba23

Case 4

案例4

The parameters for the AKA run are as follows:

AKA运行的参数如下所示:

Identity: "0555444333222111"

身份:“05554443332211”

Network name: "HRPD"

网络名称:“HRPD”

RAND: e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 e0e0

兰德:E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0

AUTN: a0a0 a0a0 a0a0 a0a0 a0a0 a0a0 a0a0 a0a0

AUTN:A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0

IK: b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 b0b0

IK:B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0

CK: c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 c0c0

CK:C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0

RES: d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 d0d0

回复:D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0

Then the derived keys are generated as follows:

然后生成派生密钥,如下所示:

CK': 8310 a71c e6f7 5488 9613 da8f 64d5 fb46

CK':8310 a71c e6f7 5488 9613 da8f 64d5 fb46

IK': 5adf 1436 0ae8 3819 2db2 3f6f cb7f 8c76

IK':5adf 1436 0ae8 3819 2db2 3f6f cb7f 8c76

K_encr: 745e 7439 ba23 8f50 fcac 4d15 d47c d1d9

K_encr:745e 7439 ba23 8f50 fcac 4d15 d47c d1d9

K_aut: 3e1d 2aa4 e677 025c fd86 2a4b e183 61a1 3a64 5765 5714 63df 833a 9759 e809 9879

K_aut:3e1d 2aa4 e677 025c fd86 2A4 e183 61a1 3a64 5765 5714 63df 833a 9759 e809 9879

K_re: 99da 835e 2ae8 2462 576f e651 6fad 1f80 2f0f a119 1655 dd0a 273d a96d 04e0 fcd3

K_re:99da 835e 2ae8 2462 576f e651 6fad 1f80 2f0f a119 1655 dd0a 273d a96d 04e0 fcd3

MSK: c6d3 a6e0 ceea 951e b20d 74f3 2c30 61d0 680a 04b0 b086 ee87 00ac e3e0 b95f a026 83c2 87be ee44 4322 94ff 98af 26d2 cc78 3bac e75c 4b0a f7fd feb5 511b a8e4 cbd0

MSK:c6d3 a6e0 ceea 951e b20d 74f3 2c30 61d0 680a 04B086 ee87 00ac e3e0 b95f a026 83c2 87be ee44 4322 94ff 98af 26d2 cc78 3bac e75c 4b0a f7fd feb5 511b a8e4 cbd0

EMSK: 7fb5 6813 838a dafa 99d1 40c2 f198 f6da cebf b6af ee44 4961 1054 02b5 08c7 f363 352c b291 9644 b504 63e6 a693 5415 0147 ae09 cbc5 4b8a 651d 8787 a689 3ed8 536d

EMSK:7fb5 6813 838a dafa 99d1 40c2 f198 f6da cebf b6af ee44 4961 1054 02b5 08c7 f363 352c b291 9644 b504 63e6 a693 5415 0147 ae09 cbc5 4b8a 651d 8787 a689 3ed8 536d

Authors' Addresses

作者地址

Jari Arkko Ericsson Jorvas 02420 Finland

雅丽爱立信芬兰公司02420

   EMail: jari.arkko@piuha.net
        
   EMail: jari.arkko@piuha.net
        

Vesa Lehtovirta Ericsson Jorvas 02420 Finland

Vesa Lehtovirta Ericsson Jorvas 02420芬兰

   EMail: vesa.lehtovirta@ericsson.com
        
   EMail: vesa.lehtovirta@ericsson.com
        

Pasi Eronen Nokia Research Center P.O. Box 407 FIN-00045 Nokia Group Finland

Pasi Eronen诺基亚研究中心邮政信箱407 FIN-00045诺基亚集团芬兰

   EMail: pasi.eronen@nokia.com
        
   EMail: pasi.eronen@nokia.com