指南 TLS 标准合规

传输层安全性(TLS)协议是保护Internet上网络通信的主要手段。 本文是一个简要指南,可帮助您配置安全服务器以满足当前 TLS 标准认证

介绍

传输层安全性(TLS) 协议是保护Internet上网络通信的主要手段。 它(及其前身, 安全套接字层或SSL)已在许多应用程序中使用了数十年,但最值得注意的是在浏览器访问它们时 HTTPS 网站。 TLS 通常会在后台安静地运行,但与人们的想法相反, TLS 不是一个行之有效的黑匣子。 而是安全 TLS 提供来自各种密码算法的合作。 此外, TLS像之前的SSL一样,它随着安全行业的发展而不断发展-必须满足新技术和业务要求,同时必须缓解最新的安全威胁。 随着时间的流逝,算法可能会过时,或者实践可能会被放弃,每次更改都会影响算法的整体安全性。 TLS 实例(例如现在保护您的连接的实例)。

这种波动性促使各种标准组织发布指导性文件,从而为 TLS 可以在特定的市场,部门或服务中建立安全性。 不幸的是,有许多这样的标准,不同部门要求遵守不同的适用文件,而标准本身 随着时间的流逝而发展,适应他们旨在保护的行业的变化。

可以理解的是,在标准的海洋中航行以建立现代的 TLS 实例对于管理员来说可能真是头疼。 本文是简要指南,可帮助您配置安全服务器以达到预期的效果 TLS 成为2021年的标准。 附录.)

标准

有几个实体为 TLS 有关网络安全的信息,例如美国卫生与公众服务部(HHS)或美国国家标准技术研究院(NIST)。 为了简洁起见,本文将仅研究三个最常用的文档:

  1. 健康保险流通与责任法案 (HIPAA)
  2. NIST的 SP 800-52R2指南
  3. 支付卡行业数据安全标准 (PCI-DSS)

HIPAA

HIPAA是美国政府于1996年制定的一项法规,涉及安全处理 受保护的健康信息 (PHI)。 PHI指的是任何数字化患者信息,例如测试结果或诊断。 HIPAA 指导文件 2013年发布的内容如下:

有效的移动数据加密过程应符合NIST特殊出版物800-52《传输层安全性的选择和使用指南》(TLS)实施; 800-77,IPsec VPN指南; 或800-113,SSL VPN指南或经过联邦信息处理标准(FIPS)140-2验证的其他指南。

NIST标准

NIST在2005年发布了特殊出版物(SP)800-52,其中描述了正确配置操作程序以安全配置服务器的功能。 TLS 政府服务器的实例。 此后SP 800-52已被版本SP 800-52r1(2014)和SP 80052r2(2019)取代。 本文遵循的SP 800-52r2的准则,目前是稳定的。

PCI-DSS

PCI-DSS是由支付卡行业(PCI)标准安全委员会(SSC)维护的遵从标准,该标准确定了电子商务网站如何处理支付和卡信息。 关于正确的配置 TLS 实例,PCI-DSS指出:

“有关强密码和安全协议(例如NIST SP 800-52和SP 800-57,OWASP等)的信息,请参考行业标准和最佳做法。”

TLS 标准:将所有这些放在一起

现在应该注意的是,每个标准都会根据其功能和所处理的数据影响不同的系统。 例如,医院的电子邮件服务器可能属于HIPAA准则,因为交换的消息可能包含患者信息,而医院的CRM系统可能属于PCI-DSS,因为它可以包含信用卡和其他客户数据。 符合所有三个标准将需要使用通用 TLS 所有文档中都有参数。

幸运的是,所有标准显然都遵循NIST的准则来选择 TLS 参数。 这意味着,在撰写本文时,符合SP 800-52r2的服务器也应符合HIPAA和PCI-DSS。 (好的,这不是 究竟 是的,但下一节会更清楚。)

配置 TLS 参数

的安全级别 TLS 提供受到的影响最大 协议版本 (即1.0、1.1等)和允许的 密码套件。 密码是执行加密和解密的算法。 但是, 密码套件 是一组算法,包括密码,密钥交换算法和哈希算法,它们一起用于建立安全性 TLS 连接。 最 TLS 客户端和服务器支持多种选择,因此在建立安全连接以选择公用时必须进行协商。 TLS 版本和密码套件。

TLS 协议版本

关于 TLS 版本支持,NIST SP 800-52r2指出以下内容:

支持仅政府应用程序的服务器 配置为使用 TLS 1.2和 应该 配置为使用 TLS 1.3。 这些服务器 不应该 配置为使用 TLS 1.1和 最好不要 使用 TLS 1.0,SSL 3.0或SSL 2.0。

...

支持公民或面向业务的应用程序的服务器(即,客户端可能不是政府IT系统的一部分) 配置为谈判 TLS 1.2和 应该 配置为谈判 TLS 1.3。 指某东西的用途 TLS 通常不建议使用1.1和1.0版本,但是可以在必要时配置这些版本以实现与公民和企业的交互…这些服务器 最好不要 允许使用SSL 2.0或SSL 3.0。

机构 支持 TLS 1.3到1年2024月XNUMX日。在此日期之后,服务器 支持 TLS 1.3仅适用于政府应用程序和面向公民或企业的应用程序。 通常,支持以下内容的服务器 TLS 1.3 应该 配置为使用 TLS 也是如此1.2。 然而, TLS 在支持以下功能的服务器上可能禁用了1.2 TLS 1.3是否已确定 TLS 互操作性不需要1.2。

而 TLS 1.0被禁止 TLS 对于政府站点,不赞成使用1.1,NIST指南指出,为了与第三方服务,政府控制的服务器兼容 五月 实施 TLS 必要时可以使用1.0和1.1。 在PCI-DSS 3.2.1(当前版本)下,兼容服务器 必须放弃支持 TLS 1.0并迁移到 TLS 1.1,最好 TLS 1.2。” HIPAA在技术上允许使用所有版本的 TLS。 因此,最低的普遍支持 TLS 版本是1.1; 但是,PCI-DSS和NIST强烈建议使用更安全的 TLS 1.2(如上所述,NIST建议采用 TLS 1.3,并计划在2024年之前获得支持。

密码套房

TLS 1.2及更早版本

SP 800-52r2指定了各种可接受的密码套件,用于 TLS 1.2及更早版本。 该标准不需要任何特定密码套件的支持,但可以提供有关选择更强密码套件的指南:

  1. 优先使用临时密钥,而不要使用静态密钥(即,DDH优先于DH,ECDHE优先于ECDH)。 临时密钥提供了完美的前向保密性。
  2. 与CBC模式相比,首选GCM或CCM模式。 使用经过身份验证的加密模式可以防止多种攻击(有关更多信息,请参见[SP 3.3.2-800r52]的2节)。 请注意,这些版本在以下版本中不可用 TLS 1.2.
  3. CCM优先于CCM_8。 后者包含较短的身份验证标签,从而提供较低的身份验证强度。

此外,尽管这些是 允许 密码套件,如果您 TLS 服务器不处理各种不同的平台和客户端,建议仅使用这些算法的一小部分。 仅当(或何时)发现新的协议漏洞时,允许更多的密码套件才能将攻击范围扩大到服务器。

ECDSA证书的密码套件
TLS 1.2年:
IANA OpenSSL的
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0xC0, 0x2B ECDHE-ECDSA-AES128-GCM-SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0xC0, 0x2C ECDHE-ECDSA-AES256-GCM-SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_CCM 0xC0, 0xAC ECDHE-ECDSA-AES128-CCM
TLS_ECDHE_ECDSA_WITH_AES_256_CCM 0xC0, 0xAD ECDHE-ECDSA-AES256-CCM
TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 0xC0, 0xAE ECDHE-ECDSA-AES128-CCM8
TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 0xC0, 0xAF ECDHE-ECDSA-AES256-CCM8
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 0xC0, 0x23 ECDHE-ECDSA-AES128-SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 0xC0, 0x24 ECDHE-ECDSA-AES256-SHA384
TLS 1.2、1.1或1.0:
IANA OpenSSL的
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0xC0, 0x09 ECDHE-ECDSA-AES128-SHA
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0xC0, 0x0A ECDHE-ECDSA-AES256-SHA
RSA证书的密码套件
TLS 1.2年:
IANA OpenSSL的
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0xC0, 0x2F ECDHE-RSA-AES128-GCM-SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0xC0, 0x30 ECDHE-RSA-AES256-GCM-SHA384
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 0x00, 0x9E DHE-RSA-AES128-GCM-SHA256
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 0x00, 0x9F DHE-RSA-AES256-GCM-SHA384
TLS_DHE_RSA_WITH_AES_128_CCM 0xC0, 0x9E DHE-RSA-AES128-CCM
TLS_DHE_RSA_WITH_AES_256_CCM 0xC0, 0x9F DHE-RSA-AES256-CCM
TLS_DHE_RSA_WITH_AES_128_CCM_8 0xC0, 0xA2 DHE-RSA-AES128-CCM8
TLS_DHE_RSA_WITH_AES_256_CCM_8 0xC0, 0xA3 DHE-RSA-AES256-CCM8
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 0xC0, 0x27 ECDHE-RSA-AES128-SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 0xC0, 0x28 ECDHE-RSA-AES256-SHA384
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 0x00, 0x67 DHE-RSA-AES128-SHA256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 0x00, 0x6B DHE-RSA-AES256-SHA256
TLS 1.2、1.1或1.0:
IANA OpenSSL的
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 0xC0, 0x13 ECDHE-RSA-AES128-SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 0xC0, 0x14 ECDHE-RSA-AES256-SHA
TLS_DHE_RSA_WITH_AES_128_CBC_SHA 0x00, 0x33 DHE-RSA-AES128-SHA
TLS_DHE_RSA_WITH_AES_256_CBC_SHA 0x00, 0x39 DHE-RSA-AES256-SHA
ECDSA证书的密码套件
TLS 1.2年:
IANA OpenSSL的
TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 0x00, 0xA2 DHE-DSS-AES128-GCM-SHA256
TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 0x00, 0xA3 DHE-DSS-AES256-GCM-SHA384
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 0x00, 0x40 DHE-DSS-AES128-SHA256
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 0x00, 0x6A DHE-DSS-AES256-SHA256
TLS 1.2、1.1或1.0:
IANA OpenSSL的
TLS_DHE_DSS_WITH_AES_128_CBC_SHA 0x00, 0x32 DHE-DSS-AES128-SHA
TLS_DHE_DSS_WITH_AES_256_CBC_SHA 0x00, 0x38 DHE-DSS-AES256-SHA
DH证书密码套件
DSA签名, TLS 1.2年:
IANA OpenSSL的
TLS_DH_DSS_WITH_AES_128_GCM_SHA256 0x00, 0xA4 DH-DSS-AES128-GCM-SHA256
TLS_DH_DSS_WITH_AES_256_GCM_SHA384 0x00, 0xA5 DH-DSS-AES256-GCM-SHA384
TLS_DH_DSS_WITH_AES_128_CBC_SHA256 0x00, 0x3E DH-DSS-AES128-SHA256
TLS_DH_DSS_WITH_AES_256_CBC_SHA256 0x00, 0x68 DH-DSS-AES256-SHA256
DSA签名, TLS 1.2、1.1或1.0:
IANA OpenSSL的
TLS_DH_DSS_WITH_AES_128_CBC_SHA 0x00, 0x30 DH-DSS-AES128-SHA
TLS_DH_DSS_WITH_AES_256_CBC_SHA 0x00, 0x36 DH-DSS-AES256-SHA
RSA签名, TLS 1.2年:
IANA OpenSSL的
TLS_DH_RSA_WITH_AES_128_GCM_SHA256 0x00, 0xA0 DH-RSA-AES128-GCM-SHA256
TLS_DH_RSA_WITH_AES_256_GCM_SHA384 0x00, 0xA1 DH-RSA-AES256-GCM-SHA384
TLS_DH_RSA_WITH_AES_128_CBC_SHA256 0x00, 0x3F DH-RSA-AES128-SHA256
TLS_DH_RSA_WITH_AES_256_CBC_SHA256 0x00, 0x69 DH-RSA-AES256-SHA256
RSA签名, TLS 1.2、1.1或1.0:
IANA OpenSSL的
TLS_DH_RSA_WITH_AES_128_CBC_SHA 0x00, 0x31 DH-RSA-AES128-SHA
TLS_DH_RSA_WITH_AES_256_CBC_SHA 0x00, 0x37 DH-RSA-AES256-SHA
ECDH证书密码套件
ECDSA签署, TLS 1.2年:
IANA OpenSSL的
TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0xC0, 0x2D ECDH-ECDSA-AES128-GCM-SHA256
TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0xC0, 0x2E ECDH-ECDSA-AES256-GCM-SHA384
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 0xC0, 0x25 ECDH-ECDSA-AES128-SHA256
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 0xC0, 0x26 ECDH-ECDSA-AES256-SHA384
ECDSA签署, TLS 1.2、1.1或1.0:
IANA OpenSSL的
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0xC0, 0x04 ECDH-ECDSA-AES128-SHA
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0xC0, 0x05 ECDH-ECDSA-AES256-SHA
RSA签名, TLS 1.2年:
IANA OpenSSL的
TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 0xC0, 0x31 ECDH-RSA-AES128-GCM-SHA256
TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 0xC0, 0x32 ECDH-RSA-AES256-GCM-SHA384
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 0xC0, 0x29 ECDH-RSA-AES128-SHA256
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 0xC0, 0x2A ECDH-RSA-AES256-SHA384
RSA签名, TLS 1.2、1.1或1.0:
IANA OpenSSL的
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA 0xC0, 0x0E ECDH-RSA-AES128-SHA
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA 0xC0, 0x0F ECDH-RSA-AES256-SHA

TLS 1.3

TLS 1.3的密码套件列表要短得多:

  • TLS_AES_128_GCM_SHA256 (0x13, 0x01)
  • TLS_AES_256_GCM_SHA384 (0x13, 0x02)
  • TLS_AES_128_CCM_SHA256 (0x13, 0x04)
  • TLS_AES_128_CCM_8_SHA256 (0x13, 0x05)

结论

我们希望这份简短的指南可以帮助您了解更多有关 TLS,并在配置时为您提供帮助 TLS 在您自己的服务器上。 关于我们已经讨论过的标准和建议,以下部分包含一个示例配置,您应该可以将其应用于最流行的Web服务器解决方案。 如果您对如何保持在线合规性有任何疑问,请随时通过电子邮件与我们联系。 Support@SSL.com 或单击此屏幕底部的实时聊天按钮。

附录:示例 TLS 配置

收集三个规范文档中所述的规则,现代安全服务器应实施 TLS 1.2和/或 TLS 1.3,列出了简短而多样化的所选密码套件。 作为快速参考,下面显示了市场上最流行的Web服务器的示例配置。 这些是Mozilla生成的“中间”(通用)配置 SSL配置生成器:

阿帕奇Nginx的轻量级HAProxy的AWS弹性负载均衡器

Apache HTTP服务器

... SSLProtocol all -SSLv3-TLSv1  - TLSv1.1 SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20- POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 SSLHonorCipherOrder off SSLSessionTickets off

Nginx的

... ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;

轻量级

... ssl.openssl.ssl-conf-cmd =(“协议” =>“ ALL,-SSLv2,-SSLv3,-TLSv1-TLSv1.1“)ssl.cipher-list =” ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM- SHA384​​20:ECDHE-ECDSA-CHACHA1305-POLY20:ECDHE-RSA-CHACHA1305-POLY128:DHE-RSA-AES256-GCM-SHA256:DHE-RSA-AES384-GCM-SHAXNUMX“ ssl.honor-cipher-order =” disable“

HAProxy的

...

ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
ssl-default-bind-options prefer-client-ciphers no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets

ssl-default-server-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl-default-server-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256 ssl-默认服务器选项 no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets

AWS弹性负载均衡器

...策略:-PolicyName:Mozilla-intermediate-v5-0 PolicyType:SSLNegotiationPolicyType属性:-名称:Protocol-TLSv1.2值:true-名称:服务器定义的密码顺序值:false-名称:ECDHE-ECDSA-AES128-GCM-SHA256值:true-名称:ECDHE-RSA-AES128-GCM-SHA256值:true-名称:ECDHE-ECDSA-AES256-GCM-SHA384值:true-名称:ECDHE-RSA-AES256-GCM-SHA384值:true-名称:DHE-RSA-AES128-GCM-SHA256值:true-名称:DHE-RSA -AES256-GCM-SHA384值:true

Twitter
Facebook
LinkedIn
Reddit
电子邮箱

保持信息灵通和安全

SSL.com 是网络安全领域的全球领导者, PKI 和数字证书。注册以接收最新的行业新闻、提示和产品公告 SSL.com.

我们希望收到您的反馈

参加我们的调查,让我们知道您对最近购买的想法。