关于RTMPS功能
RTMPS功能支持多种加密算法以确保RTMPS流式传输的安全。为了确保兼容各种目标服务器,该功能支持多种加密算法,其中包括一些可能不符合当前安全最佳实践的算法。
RTMPS功能支持的加密算法
支持以下加密算法。
- TLS_AES_256_GCM_SHA384
- TLS_AES_128_GCM_SHA256
- TLS_AES_128_CCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_256_CCM
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_DHE_RSA_WITH_AES_256_CCM
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_128_CCM
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_RSA_WITH_AES_128_CCM
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
关于推荐的加密算法
基于NIST的建议(NIST SP 800-57 Part 1, Revision 5)以及相关安全标准,推荐使用以下加密算法。
- TLS_AES_256_GCM_SHA384
- TLS_AES_128_GCM_SHA256
- TLS_AES_128_CCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_256_CCM
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_128_CCM
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
关于已弃用的算法
出于兼容性原因,RTMPS功能还支持以下算法,但根据NIST的建议(NIST SP 800-57 Part 1, Revision 5)以及相关安全标准,这些算法已被弃用,可能会在未来版本中被移除。
Key exchange algorithms
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_DHE_RSA_WITH_AES_256_CCM
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_RSA_WITH_AES_128_CCM
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
连接兼容性
RTMPS功能旨在平衡安全性与兼容性。目前,我们出于以下原因仍支持已弃用的算法,但未来版本可能会移除这些算法以提高安全性。
- 若要使用RTMPS流式传输功能,需要连接支持RTMPS传输的各类服务器。
- 必须保持与旧系统和旧服务器的兼容性。
- 在服务器端更改加密算法设置比较复杂,并非所有用户都准备好更改为安全的设置。
- RTMPS服务器设置经常与其他安全服务共享,因此有必要考虑其对服务器上其他服务的影响,而这些更改往往并不容易实施。
- 为了确保在不同环境中的互操作性,必须支持广泛的加密算法。
在RTMPS连接期间使用的加密算法由与目标服务器的自动协商决定,因此取决于服务器的设置。虽然我们意识到安全风险,但目前我们优先考虑广泛的兼容性,以满足用户多样化的需求。
安全风险
使用已弃用的算法(包括CBC和DHE)会增大加密数据被攻击者解密的风险,从而导致流式传输中的数据被泄露。
安全连接建议
在使用RTMPS流式传输功能时,请事先确认所连接的服务器是否支持推荐的加密算法。建议您仅启用推荐的算法,并在服务器端禁用非推荐的算法。
参考资料
- Recommendation for Key Management, Special Publication 800-57 Part 1 Revision 5, NIST, 2020.
- Transitioning the Use of Cryptographic Algorithms and Key Lengths, Special Publication 800-131A Revision 2, NIST, 2019.
- Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication, Special Publication 800-38B, NIST, 2005 (includes updates as of 10/06/2016).
TP1002071133

