เกี่ยวกับฟังก์ชัน 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).

