跳到主要内容

5. TEAPv1 的限制 (Limitations of TEAPv1)

如第 1.1 节所述, 与协议在理论上能够实现的功能相比, TEAPv1 实现的功能范围受到限制. 这些限制意味着, 现有 TEAPv1 实现只完全支持少数内部方法 (Inner Method).

虽然第 6 节定义了用于密钥派生和密码绑定 (crypto-binding) 的密码学计算, 但本节记录已知哪些 Inner Methods 可以工作, 以及这些方法为何可以工作. 其他 Inner Methods 也可能可以工作, 但其结果很可能依赖具体实现.

这里讨论这些问题时, 不会点名特定实现, 也不会对这些实现作出负面推断. 这些实现在受限场景下可以很好地协同工作. 任何互操作性问题都源自 [RFC7170] 中定义的复杂性和不完整性, 而不是某个特定实现的问题.

互操作性问题仅限于 Compound MAC 的使用和派生, Compound MAC 派生自内部 MSK 和 EMSK. 简而言之, 当多个 Inner Method 提供 EMSK 时, 已知不同实现会为 Compound MAC 派生出不同的值.

5.1. 可互操作的内部方法 (Interoperable Inner Methods)

已知以下 Inner Methods 可以工作. 这些方法同时适用于用户凭据和机器凭据.

  • EAP-MSCHAPv2

  • EAP-TLS

已知以下 Inner Methods 组合可以工作. 这些方法适用于用户凭据和机器凭据的任意顺序.

  • EAP-MSCHAPv2 后接 EAP-MSCHAPv2

  • EAP-TLS 后接 EAP-MSCHAPv2

当请求方 (supplicant) 和认证器 (authenticator) 都忽略 Crypto-Binding TLV 的 EMSK Compound MAC 字段时, 已知以下 Inner Methods 组合可以工作. 这些方法适用于用户凭据和机器凭据的任意顺序.

  • EAP-MSCHAPv2 后接 EAP-TLS

  • EAP-TLS 后接 EAP-TLS

5.2. 说明和背景 (Explanation and Background)

Inner Methods 集合受限的主要原因是, 最广为人知的 TEAP supplicant 只支持 EAP-MSCHAPv2 和 EAP-TLS 作为 Inner Methods. 此外, 该实现不会在它发送的所有 Crypto-Binding TLV 中编码 EMSK Compound MAC 字段, 并且会忽略它接收的所有 Crypto-Binding TLV 中的该字段.

已知的 authenticator 实现支持这个客户端, 但未测试任何其他 Inner Methods 组合. 因此, 由于密码学派生本身复杂, 且缺少互操作性测试, 每个 authenticator 对 Crypto-Binding TLV 的 EMSK Compound MAC 字段都实现了完全不同的派生方式. 这个差异是在多个实现已经发布多年之后才被发现的.

5.3. 后续步骤 (Next Steps)

任何试图修改 TEAPv1 以解决这些问题的做法, 都很可能导致一个或多个实现不符合更新后的规范. 更糟的是, 对本规范的更新会产生多个互不兼容的 TEAPv1 版本.

这种做法不可接受.

为维护已知的互操作性, 本规范只记录这些问题, 而不试图修正它们. 由于 TEAP 和 Crypto-Binding TLV 都包含 Version 字段, 更好的前进路径是发布本规范, 同时记录 TEAPv1 的重大注意事项. 对 TEAP 的任何更改都可以在未来的 TEAPv2 规范中完成.