About the RTMPS function

The RTMPS function supports a variety of encryption algorithms for secure RTMPS streaming. To ensure compatibility with a wide range of destination servers, several encryption algorithms are supported, including some that may not comply with current security best practices.

Encryption algorithms supported by the RTMPS function

The following encryption algorithms are supported.

  • 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

About recommended encryption algorithms

Based on the NIST Recommendations (NIST SP 800-57 Part 1, Revision 5) and related security standards, the following encryption algorithms are recommended.

  • 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

About deprecated algorithms

The RTMPS function also supports the following algorithms for compatibility reasons, but they are deprecated based on the NIST Recommendations (NIST SP 800-57 Part 1, Revision 5) and related security standards and may be removed in future versions.

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

Connection compatibility

The RTMPS function is designed to balance security and compatibility. Currently, we support deprecated algorithms for the following reasons, but we may remove these algorithms in future versions to enhance security.

  • To use the RTMPS streaming function, you need to connect to various servers that support RTMPS delivery.
  • Compatibility with older systems and legacy servers must be maintained.
  • Changing the encryption algorithm settings on the server side is complex, and not all users are prepared to change to a secure setting.
  • RTMPS server settings are often shared with other secure services, so it is necessary to consider the impact on other services on the server, and changes may not always be easy to implement.
  • To ensure interoperability in different environments, support for a wide range of cryptographic algorithms is necessary.

The encryption algorithm used during RTMPS connection is determined by automatic negotiation with the destination server, so it depends on the server's settings. While we are aware of the security risks, we currently prioritize broad compatibility in order to meet the diverse needs of our users.

Security risks

The use of deprecated algorithms, including CBC and DHE, increases the risk that encrypted data may be decrypted by an attacker, exposing data being streamed.

Recommendations for a secure connection

When using the RTMPS streaming function, check in advance whether the server to which you are connecting supports the recommended encryption algorithms. We recommend that you enable only the recommended algorithms and disable non-recommended algorithms on the server side.


References

  • 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).
TP1002013390