ฉันได้เกาหัวของฉันในขณะที่ทำไม TLS 1.3 ไม่รวมโหมดเข้ารหัสแล้ว MAC (EtM) ปัญหาก่อนหน้านี้ทั้งหมดใน TLS เกิดจาก MAC แล้วเข้ารหัส ในขณะที่เข้ารหัสแล้ว MAC จะหลีกเลี่ยงปัญหาทั้งหมดที่เกิดจากการเติมข้อมูลในอดีต เนื่องจากผู้รับสามารถตรวจสอบความสมบูรณ์ของข้อความได้โดยไม่ต้องถอดรหัสข้อความก่อน แล้วจึงจัดการการเติมข้อมูลผิดพลาดอย่างถูกต้อง
สิ่งที่น่ารำคาญสำหรับฉันคือมีไมโครคอนโทรลเลอร์ไม่กี่ตัวที่มีการเร่งฮาร์ดแวร์ AES ในตัว อย่างไรก็ตาม บางอย่างเช่นการคูณแบบไม่ต้องพกพาสำหรับ GCM มีอยู่จริงบนเซิร์ฟเวอร์และซีพียูเดสก์ท็อปเท่านั้น
ในขณะที่มี ChaCha20-Poly1305 ใช้แทน หมายความว่าคุณละทิ้งการใช้ฮาร์ดแวร์ AES บนไมโครคอนโทรลเลอร์ แม้ว่า ChaCha20 จะทำงานได้ดีกับไมโคร 32 บิต แต่ก็ยังคงใช้พลังงานมากกว่าฮาร์ดแวร์ AES ในตัว และน่าจะช้ากว่านั้นขึ้นอยู่กับไมโคร นอกจากนี้ Poly1305 ยังต้องการการคำนวณทางคณิตศาสตร์แบบโมดูลาร์ตัวเลขขนาดใหญ่เมื่อเทียบกับฟังก์ชันแฮชจำนวนมาก
ฉันแค่เกาหัวเพราะไม่มีอะไรผิดปกติกับ EtM ฉันยังพบร่าง IETF AES-CBC-HMAC ที่ดำเนินการ EtMอย่างไรก็ตาม มันไม่เคยผ่านการร่างซึ่งทำให้ฉันรู้สึกแปลก
แก้ไข:
เนื่องจากมีการกล่าวถึงชุด CCM Cipher ในขณะที่เรียกใช้ AES ในโหมด CTR จะหลีกเลี่ยงการเติม oracles มันไม่ได้อยู่ในชุดรหัสบังคับหรืออย่างใดอย่างหนึ่ง ควร ใช้ห้องชุด ดู: Cipher Suites ที่จำเป็นต้องนำไปใช้ ดังนั้นโดยทั่วไปแล้วเราไม่สามารถใช้ประโยชน์จากฮาร์ดแวร์ AES บนไมโครได้หากไม่มี GCM (เช่น เซิร์ฟเวอร์จำนวนมากปิดใช้งาน CCM โดยค่าเริ่มต้น และทั้ง Firefox และ Chrome ก็เปิดใช้งาน CCM) ดูเหมือนจะแปลกอีกครั้งที่ไม่มีอะไรอยู่ระหว่างนี้ และฉันไม่เห็นเหตุผลที่ดีว่าทำไม และโหมด EtM ดูเหมือนจะเป็นตัวเลือกที่ดี แต่ไม่เคยถูกเพิ่มเข้าไปในมาตรฐานด้วยซ้ำ