1. 引言 (Introduction)
基于隧道的可扩展认证协议 (Extensible Authentication Protocol, EAP) 方法是一类 EAP 方法, 它会建立安全隧道, 并在该安全隧道保护下执行其他 EAP 方法. 基于隧道的 EAP 方法可以用于任何支持 EAP 认证的下层协议. 现有若干基于隧道的 EAP 方法使用传输层安全性 (Transport Layer Security, TLS) [RFC8446] 建立安全隧道. 支持这种模式的 EAP 方法包括受保护 EAP (Protected EAP, PEAP) [PEAP], EAP 隧道传输层安全性 (EAP Tunneled Transport Layer Security, EAP-TTLS) [RFC5281], 以及经安全隧道的 EAP 灵活认证 (EAP Flexible Authentication via Secure Tunneling, EAP-FAST) [RFC4851]. 然而, 这些方法要么是厂商特定的, 要么是信息性规范, 业界需要一种标准轨道 (Standards Track) 的基于隧道的 EAP 方法. [RFC6678] 概述了标准基于隧道的 EAP 方法的需求清单.
本文档描述隧道可扩展认证协议 (Tunnel Extensible Authentication Protocol, TEAP) 版本 1, 它基于 EAP-FAST [RFC4851]. 从 EAP-FAST 到 TEAP 的变更总体上较小, 主要目的是满足 [RFC6678] 中针对标准基于隧道的 EAP 方法提出的需求.
本文档还定义了与 TLS 1.2 一起使用的密码学派生. 使用 TLS 1.3 时, 必须 (MUST) 使用 [RFC9427] 中的密码学派生定义, 而不是本文给出的定义.
请注意, 虽然从技术上可以将 TEAPv1 与 TLS 1.0 和 TLS 1.1 一起使用, 但这些协议已在 [RFC8996] 中废弃. 因此, 本文给出的定义仅适用于 TLS 1.2 和 TLS 1.3.
1.1. 互操作性问题 (Interoperability Issues)
本文档相对于 [RFC7170] 包含大量变更. 这些变更主要是对该规范的澄清和修正.
不过, 与 [RFC7170] 相比, 本规范在密码绑定信息 (cryptographic-binding information) 的规定上有一个重大变化. 虽然 [RFC7170] 已有多个实现, 但该文档中的文本被各个实现以不同方式解释. 这些实现具有互操作性, 但只覆盖 [RFC7170] 中描述的功能子集.
本规范描述 TEAPv1 在理论上的工作方式, 同时也说明 TEAPv1 当前可互操作的功能子集. 为了简化这个已经很复杂的规范的描述, 所有互操作性问题都与正常协议操作分开记录.
关于互操作性问题的进一步讨论, 请参见第 5 节.
1.2. 需求语言 (Requirements Language)
本文档中的关键词 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" 和 "OPTIONAL" 按 BCP 14 [RFC2119] [RFC8174] 中的说明解释, 但仅当它们以全大写形式出现时才按该方式解释, 如此处所示.
1.3. 术语 (Terminology)
本文档中的许多术语来自 [RFC3748]. 其他术语定义如下:
Type-Length-Value (TLV)
: TEAP 使用 TLV 格式的对象. TLV 格式定义在第 4.2 节.
Inner Method
: 在通过 TEAP 承载的 TLS 交换内部作为应用数据发送的认证方法. Inner Method 可以是 EAP 认证方法, 用户名/密码认证, 或厂商特定认证方法. 当 TLS 连接已认证时, Inner Method 也可以是公钥密码学标准 (Public Key Cryptography Standard, PKCS) 交换.