ชั้นระเบียน TLS และชุดรหัสเข้ารหัส
ทำความเข้าใจการแบ่งระเบียน การเข้ารหัส AEAD และการเลือกชุดรหัสเข้ารหัส
ชั้นระเบียน TLS และชุดรหัสเข้ารหัส เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
ภาพรวมชั้นระเบียน
ชั้นระเบียน TLS เป็นชั้นย่อยด้านการขนส่งของ TLS โดยแบ่งข้อมูลออกเป็นระเบียนขนาดไม่เกิน 16 KB บีบอัดข้อมูลได้หากจำเป็น (เฉพาะ TLS 1.2) เข้ารหัสด้วย AEAD และเพิ่มส่วนหัวขนาด 5 ไบต์
ฟิลด์ในส่วนหัวระเบียน
ไบต์ 0: ContentType (20=ChangeCipherSpec, 21=Alert, 22=Handshake, 23=ApplicationData) ไบต์ 1-2: รุ่นแบบเดิม (0x0303 สำหรับความเข้ากันได้กับ TLS 1.2) ไบต์ 3-4: ความยาวของ payload ที่ตามมา
การเข้ารหัส AEAD ในระเบียน
ใน TLS 1.3 แต่ละระเบียนจะถูกเข้ารหัสด้วย AEAD (เช่น AES-GCM) nonce ได้มาจากการทำ XOR ระหว่างหมายเลขลำดับโดยนัยกับ traffic IV ส่วน AAD คือส่วนหัวระเบียนขนาด 5 ไบต์ และจะแนบแท็กยืนยันความถูกต้องไว้ท้ายข้อมูล
การตั้งชื่อชุดรหัส
TLS_AES_128_GCM_SHA256 = การแลกเปลี่ยนกุญแจ (ECDHE โดยนัยใน TLS 1.3) + AES-128-GCM (AEAD) + SHA-256 (สำหรับ HKDF) ใน TLS 1.2: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ระบุองค์ประกอบทั้งหมดอย่างชัดเจน
ชุดรหัสที่เลิกใช้แล้ว
TLS 1.3 ห้ามใช้: RC4 (กระแสกุญแจมีอคติ), 3DES (การโจมตีแบบพบกันตรงกลางและ Sweet32), โหมด CBC (BEAST, Lucky13, POODLE), การเข้ารหัสแบบ NULL, รหัสระดับส่งออก (40 บิต) และ MD5/SHA-1 ใน PRF เหลือเพียงชุดรหัส AEAD เท่านั้น
การแบ่งส่วนระเบียน
ระเบียน TLS ขนาดใหญ่ถูกแบ่งเป็นส่วนย่อยขนาดไม่เกิน 16 KB แต่ละส่วนย่อยถูกเข้ารหัสแยกจากกัน ตัวรับจะประกอบระเบียนกลับคืนก่อนส่งต่อให้ชั้นแอปพลิเคชัน ขอบเขตของส่วนย่อยไม่ได้สื่อความหมายใด ๆ
โพรโทคอลการแจ้งเตือน
การแจ้งเตือนถูกส่งเป็นระเบียน TLS โดยมี ContentType=21 มีสองไบต์: level (1=warning, 2=fatal) + description (0=close_notify, 40=handshake_failure, 42=bad_certificate, 70=protocol_version) การแจ้งเตือนระดับ fatal จะยุติการเชื่อมต่อ
นอนซ์จากหมายเลขลำดับ
หมายเลขลำดับต่อระเบียนเริ่มที่ 0 และเพิ่มขึ้นทีละ 1 โดยจะเติมให้มีความยาวเท่ากับ IV (12 ไบต์สำหรับ GCM) แล้วนำไป XOR กับ IV ของทราฟฟิก วิธีนี้ป้องกันการใช้นอนซ์ซ้ำระหว่างระเบียนโดยไม่ต้องส่งนอนซ์อย่างชัดแจ้ง
การเลือกชุดการเข้ารหัส
ควรเลือก TLS_AES_256_GCM_SHA384 เป็นหลักเพื่อความปลอดภัยระดับ 256 บิต ใช้ TLS_CHACHA20_POLY1305_SHA256 กับอุปกรณ์มือถือหรืออุปกรณ์ฝังตัวที่ไม่มี AES-NI หลีกเลี่ยงชุดการเข้ารหัสระดับ 128 บิตสำหรับข้อมูลที่มีความละเอียดอ่อนสูงและต้องเก็บไว้นาน
DTLS: TLS ผ่าน UDP
DTLS (RFC 6347) ปรับ TLS ให้ใช้กับ UDP โดยเพิ่มหมายเลขลำดับในส่วนหัวของระเบียน รองรับการเรียงลำดับแพ็กเก็ตใหม่ และใช้การจับมือแบบใช้คุกกี้เพื่อป้องกันการโจมตีแบบปฏิเสธการให้บริการ ใช้ใน WebRTC เครือข่ายส่วนตัวเสมือน และโพรโทคอลสำหรับอินเทอร์เน็ตของสรรพสิ่ง
การตรวจสอบระเบียนด้วย Python
ใช้โมดูล ssl หรือ scapy เพื่อดักจับระเบียน TLS เมื่อกำหนดค่า SSLKEYLOGFILE แล้ว Wireshark จะถอดรหัสระเบียนโดยอัตโนมัติ การเรียก SSL.SSLSocket.read() ของ Python จะถอดรหัสอย่างโปร่งใสที่ชั้นแอปพลิเคชัน
ตรวจสอบความเข้าใจ
หมายเลขลำดับช่วยป้องกันอะไรในการเข้ารหัสระเบียนของ TLS 1.3
สรุป
คุณเข้าใจโครงสร้างระเบียน TLS การเข้ารหัสแบบ AEAD การสร้างนอนซ์ และการเลือกชุดการเข้ารหัสแล้ว ขั้นต่อไป: วิธีที่ TLS ตรวจสอบใบรับรองเซิร์ฟเวอร์ระหว่างการจับมือ
เรียนรู้ Cryptology Academy ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 67
- บทเรียน
- 261
คำถามที่พบบ่อย
บทเรียน “ชั้นระเบียน TLS และชุดรหัสเข้ารหัส” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ชั้นระเบียน TLS และชุดรหัสเข้ารหัส” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ชั้นระเบียน TLS และชุดรหัสเข้ารหัส”
ทำความเข้าใจการแบ่งระเบียน การเข้ารหัส AEAD และการเลือกชุดรหัสเข้ารหัส คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “ชั้นระเบียน TLS และชุดรหัสเข้ารหัส” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม
ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แฮนด์เชก TLS 1.3 ทีละขั้นตอน
- ชั้นระเบียน TLS และชุดรหัสเข้ารหัส
- การตรวจสอบใบรับรองใน TLS
- การโจมตี TLS: BEAST, POODLE และการลดระดับ