จากรายการ ciphersuite คีย์ส่วนตัวใด ๆ (CA, เซิร์ฟเวอร์หรือไคลเอนต์) สามารถเป็นแบบ EC หรือทั้งหมดต้องเป็น RSA?
ไม่ใช่แค่ RSA หรือความลับแบบสมมาตรที่แชร์ไว้ล่วงหน้าสำหรับ TLS-PSK แน่นอน
โปรดทราบว่าสำหรับชุดการเข้ารหัส TLS-RSA คีย์จะใช้สำหรับการห่อหุ้มคีย์ เช่น การใช้คีย์การเข้ารหัสและชุดการเข้ารหัส TLS-ECDHE-RSA คุณต้องมีใบรับรองที่สามารถใช้สำหรับการรับรองความถูกต้องของเอนทิตีโดยใช้คีย์สำหรับการเซ็นชื่อ บ่อยครั้งที่ทั้งสองบิตถูกตั้งค่าสำหรับใบรับรองเฉพาะ TLS
ฉันควรเก็บแพ็คเกจ MQTT แต่ละแพ็คเกจที่ห่อด้วย TLS ให้เล็กที่สุดเท่าที่จะเป็นไปได้หรือเป็นสิ่งที่จะเสริมด้วยไบต์เพิ่มเติม (เช่น.มันจะสร้างความแตกต่างหรือไม่หากแพ็คเกจของฉันมีขนาดเล็กถึง 5 ไบต์หรือฉันสามารถเขียนแพ็คเกจที่มีความยาว 25 ไบต์ได้อย่างอิสระ)
AES จะเข้ารหัสเป็นทวีคูณของ 16 ไบต์ 3DES เป็นทวีคูณของ 8 3DES ยังคงปลอดภัยพอสมควร แต่ก็ไม่ควรใช้อีกต่อไป โชคดีที่ TLS ใช้ 3DES 3 คีย์ ดังนั้นจึงเป็นเช่นนั้น
ชุดการเข้ารหัส ECDHE-RSA ทำให้ฉันปวดหัว พวกเขาใช้ EC สำหรับการแลกเปลี่ยนคีย์ แต่ RSA สำหรับ PKI ? นี่หมายความว่าเซิร์ฟเวอร์สามารถมีรหัสส่วนตัวของ EC
ถูกต้อง แต่ E ใน ECDHE หมายถึง Ephemeral-ephemeral Diffie-Hellman ทั้งไคลเอ็นต์และเซิร์ฟเวอร์จะสร้างคู่คีย์ใหม่สำหรับการเชื่อมต่อแต่ละครั้ง การสร้างคู่คีย์สำหรับ EC นั้นเร็วพอๆ กับการทำข้อตกลงคีย์ DH แม้ว่าจะเร็วกว่าการสร้างคู่คีย์ RSA มาก
คู่คีย์นี้เป็นเซสชันเฉพาะและไม่จำเป็นต้องจัดเก็บ คุณจึงไม่ต้องดำเนินการจัดการคีย์ใดๆ เฉพาะคีย์ RSA เท่านั้นที่ใช้สำหรับการรับรองความถูกต้องของเอนทิตี ดังนั้นคีย์ส่วนตัวและใบรับรอง ทำ ต้องมีการจัดการ