Skip to content

JEP 115: AEAD CipherSuites

摘要

支持 SP-800-380D、RFC 5116、RFC 5246、RFC 5288、RFC 5289 和 RFC 5430 中定义的 AEAD/GCM 密码组。

目标

  1. 实现 JCA/JCE 中的 AEAD/GCM 密码算法。
  2. 更新 JCA/JCE,以支持 AEAD 操作。
  3. 在 JSSE 中实现基于 AEAD/GCM 的密码套件。

动机

作为美国国家安全局 Suite B 计划(国家密码基础设施现代化)的一部分,JDK 需要支持 AES 等密码的 Galois 计数器模式(GCM)密码模式。GCM 也在一些新的 TLS 密码套件中使用。对于进入美国政府销售领域以及需要现代密码技术的其他客户,GCM 模式将是必需的。

为了满足 Suite B TLS 合规性,当客户端和服务器都支持必要的密码套件时,必须使用 GCM 密码套件。要实现 Suite-B 合规性,GCM 密码套件需要在默认的 JSSE 提供程序中得到支持。

描述

在 JDK 7 中,Java SE 已经为 AEAD/GCM 接口提供了定义。在 JDK 8 中,JCA/JCE 提供程序将实现这些 AEAD/GCM 接口。PKCS#11 标准的 GCM 支持在 PKCS#11 V2.30 规范中被定义,但该规范仍然是草案。因此,SunPKCS11 提供程序在 JDK 8 中将不会增强以支持 GCM。

此功能将在默认 JSSE 实现中支持以下密码套件:

  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (RFC 5430, RFC 5289)
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (RFC 5430, RFC 5289)
  • TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 (RFC 5289)
  • TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 (RFC 5289)
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (RFC 5289)
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (RFC 5289)
  • TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 (RFC 5289)
  • TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 (RFC 5289)
  • TLS_RSA_WITH_AES_128_GCM_SHA256 (RFC 5288)
  • TLS_RSA_WITH_AES_256_GCM_SHA384 (RFC 5288)
  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (RFC 5288)
  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (RFC 5288)
  • TLS_DH_RSA_WITH_AES_128_GCM_SHA256 (RFC 5288)
  • TLS_DH_RSA_WITH_AES_256_GCM_SHA384 (RFC 5288)
  • TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 (RFC 5288)
  • TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 (RFC 5288)
  • TLS_DH_DSS_WITH_AES_128_GCM_SHA256 (RFC 5288)
  • TLS_DH_DSS_WITH_AES_256_GCM_SHA384 (RFC 5288)
  • TLS_DH_anon_WITH_AES_128_GCM_SHA256 (RFC 5288)
  • TLS_DH_anon_WITH_AES_256_GCM_SHA384 (RFC 5288)

请注意,为了支持 JVM 中的 AEAD 密码套件,GCM 密码实现必须至少从一个 JCA/JCE 提供程序中可用。因此,作为这个 JEP 的一部分,SunJCE 提供程序将得到相应增强,以提供 JSSE AEAD 密码套件所需的 GCM 支持。

测试

  1. 需要验证新接口是否符合预期行为。
  2. 需要验证实现是否以意外的方式破坏了向后兼容性。
  3. 需要验证实现是否以意外的方式引入了新的互操作性问题。

影响

  • JCP: 对 JCP 没有影响
  • 其他 JDK 组件:对其他 JDK 组件没有影响
  • 兼容性:最小化影响
  • 安全性:对安全性没有影响
  • 可移植性:对可移植性产生有限影响
  • 用户界面:无图形用户界面
  • 文档:需要记录新功能的文档
  • 国际化:最小化影响,可能会添加新的错误消息
  • 本地化:最小化影响,可能会添加新的错误消息
  • 法律问题:无法律问题
  • 其他:无其他已知影响