มีข้อบกพร่องด้านความปลอดภัยหรือสิ่งอื่น ๆ ที่ฉันลืมพิจารณาหรือไม่?
ใช่ GCM มีปัญหาด้านความปลอดภัยเกี่ยวกับวิธีที่ SRTP ต้องการใช้งาน
SRTP ได้รับการออกแบบมาให้มีแบนด์วิธ-โอเวอร์เฮด (นั่นคือ ขนาดแพ็กเก็ต) ต่ำที่สุดเท่าที่จะเป็นไปได้ บางครั้งใช้ SRTP ผ่านระบบไร้สาย และที่นั่น ขนาดแพ็กเก็ตค่อนข้างแพง IIRC แบนด์วิดท์เดียวที่ SRTP เพิ่มคือแท็กความสมบูรณ์ (IV หากโหมดต้องการโหมดที่ไม่ซ้ำ อาจเป็นฟังก์ชันของตำแหน่งในสตรีม ซึ่งรวมอยู่ในส่วนที่ไม่ได้เข้ารหัสของแพ็กเก็ตอยู่แล้ว) เราต้องการลดแท็กให้สั้นที่สุดเท่าที่จะเป็นไปได้ (ทั้งเพื่อลดค่าใช้จ่าย และสำหรับ SRTP การที่มีคนแนะนำแพ็กเก็ตปลอมเพียงชุดเดียวก็ไม่ได้แย่ขนาดนั้น - สำหรับการใช้งานด้านเสียง พวกเขาอาจแก้ไขได้ 20 มิลลิวินาทีของ การเชื่อมต่อเสียงที่ไม่สูงเกินไป ($<10^{-6}$) ความน่าจะเป็น และถือว่ายอมรับได้สำหรับกรณีการใช้งานนี้)
เมื่อเราไปถึง GCM เรามีปัญหากับแท็กแบบสั้น GCM มีคุณสมบัตินี้: ถ้าเรามีข้อความ GCM ที่เข้ารหัสด้วย IV, ciphertext/tag $(IV, C, T)$ และมีคนพบข้อความหลอกลวง $(IV, C', T')$ ที่ได้รับการยอมรับ (หมายเหตุ: ใช้ IV เดียวกัน ข้อความเข้ารหัสและแท็กถูกแก้ไขโดยพลการ) จากนั้นสำหรับข้อความที่เข้ารหัสในอนาคต $(IV", C", T")$จากนั้นข้อความ $(IV", C" \oplus C \oplus C', T" \oplus T \oบวก T')$ จะได้รับการยอมรับด้วย นั่นคือ เมื่อพบการปลอมแปลงเพียงครั้งเดียว ผู้โจมตีสามารถแนะนำการปลอมแปลงจากที่นี่ออกไป
และหากคุณมีแท็กสั้นๆ ผู้โจมตีก็มีโอกาสสูงที่จะพบข้อความหลอกลวงที่ยอมรับได้ $(IV, C', T')$ โดยเพียงแค่ทายไปต่างๆ $T'$ ค่า
การปลอมแปลงเพียงครั้งเดียวถือว่าพอทนได้ การปล่อยให้ผู้โจมตีสร้างกระแสการปลอมแปลงอย่างต่อเนื่องนั้นน้อยลง เมื่อใช้ GCM เราสามารถหลีกเลี่ยงปัญหานี้ได้โดยใช้แท็กแบบยาว (ซึ่งความน่าจะเป็นของการคาดเดาแบบสุ่มต่ำพอสมควร) อย่างไรก็ตาม กรณีการใช้งานสำหรับ SRTP ไม่ชอบแท็กแบบยาว
HMAC ไม่มีคุณสมบัตินี้ หากผู้โจมตีพบการปลอมแปลง $(ค', ท')$ (HMAC ไม่มี IV) ซึ่งไม่ได้ช่วยให้เขาสร้างการปลอมในอนาคตได้