關於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).
TP1002070633