Score:0

ข้อมูลแอปพลิเคชัน TLS 1.3 เข้ารหัสด้วย AES-GCM ที่ส่ง 'ผ่านสาย' อย่างไร

ธง mx

ฉันพยายามถอดรหัสทราฟฟิก TLS 1.3 บางส่วนด้วยตนเองด้วยเหตุผลด้านการศึกษา และพบสิ่งกีดขวางบนถนน จนถึงตอนนี้ ฉันสามารถดำเนินการตามกำหนดเวลาที่สำคัญเกือบทั้งหมด รวมถึงรับข้อมูลลับการรับส่งข้อมูลที่ถูกต้องของแฮนด์เชคจากคีย์ ECDHE อย่างไรก็ตาม ฉันไม่พบข้อมูลมากนักเกี่ยวกับวิธีจัดรูปแบบข้อความเข้ารหัสและแท็กการตรวจสอบสิทธิ์ภายในข้อความข้อมูลแอปพลิเคชัน

นี่คือบันทึกทั้งหมด

1703030017bf687d10e2f209661418d92aaf3626dfe5670f3127d6ed

และนี่คือความลับของทราฟฟิกการจับมือกันของเซิร์ฟเวอร์:

475a0f3b5a86d4797e24545c2eb6388de9507e5e0bc367c74c3e78e0d8033f34b721a2e3a1d89ec5990287954402fc43

Wireshark บอกฉันว่าการถอดรหัสข้อความนี้จะให้ข้อความธรรมดา 08 00 00 02 00 00ที่สอดคล้องกับข้อความส่วนขยายที่เข้ารหัส

จากสิ่งที่ฉันสามารถบอกได้ "ข้อมูลที่เชื่อมโยง" ควรเป็นไบต์ 17 03 03 00 17และส่วนที่เหลือของบันทึกคือ ciphertext + แท็กการพิสูจน์ตัวตนRFC 8446 บอกว่าชุดรหัส TLS_AES_256_GCM_SHA384 ถูกกำหนดไว้ใน RFC 5116 แต่ RFC 5116 บอกว่า:

เอกสารนี้ไม่ได้ระบุการเข้ารหัสเฉพาะใดๆ สำหรับ AEAD อินพุตและเอาต์พุตเนื่องจากการเข้ารหัสไม่ส่งผลกระทบต่อความปลอดภัย ให้บริการโดยอัลกอริทึม AEAD

แต่ความพยายามทั้งหมดของฉันในการถอดรหัสข้อมูลล้มเหลวในการตรวจสอบสิทธิ์ ซึ่งทำให้ฉันมีความเป็นไปได้สองประการ:

  • ฉันได้รับรหัสจราจรผิด ฉันรู้ว่ารูทีน HKDF-Expand-Label ของฉันทำงานได้เนื่องจากข้อมูลลับอื่นๆ ทั้งหมดได้รับมาอย่างถูกต้องและตรงกับค่าที่ OpenSSL บันทึกไว้ อย่างไรก็ตาม ฉันไม่แน่ใจ 100% ว่าคีย์และความยาว IV ที่ถูกต้องคืออะไร ขณะนี้ฉันใช้คีย์ 32 ไบต์และ 12 ไบต์ IV ฉันไม่รู้ว่านั่นคือสิ่งที่ TLS 1.3 ใช้หรือไม่
  • ฉันกำลังอ่านแท็กการรับรองความถูกต้อง/ข้อความเข้ารหัสผิด ฉันไม่สามารถหาข้อมูลอ้างอิงใด ๆ ว่ารูปแบบที่เหมาะสมคืออะไร ดังนั้นความพยายามทั้งหมดของฉันในพื้นที่นี้จึงเป็นเพียงการคาดเดา โดยเฉพาะอย่างยิ่ง ฉันไม่แน่ใจว่าแท็กรับรองความถูกต้องสำหรับชุดการเข้ารหัสนี้มีความยาวเท่าใด แม้ว่า Google จะแนะนำว่าแท็กนี้มีขนาด 12 ไบต์ก็ตาม

ผมทำอะไรผิดหรือเปล่า?

adrian avatar
mx flag
ฉันเพิ่งรู้ว่าฉันได้ปัดเศษส่วนหนึ่งของข้อมูลจำเพาะที่กล่าวถึง IV คือ XOR'd ตามหมายเลขลำดับการบันทึก .. ปัญหาไม่ได้รับการแก้ไข แต่ตอนนี้ใกล้จะยั่วเย้าแล้ว
dave_thompson_085 avatar
cn flag
5116 กำหนดเฉพาะ AEAD ดั้งเดิม ซึ่งใช้งานได้ในแอปพลิเคชันเข้ารหัสทุกประเภท รวมถึงแต่ไม่เฉพาะเจาะจงกับ TLS ciphersuite รูปแบบและการสร้างบันทึกที่เข้ารหัสอยู่ใน 8446 5.2 และไม่มีการสร้าง (ที่คุณดูเหมือนจะพบ) ใน 5.3
Score:0
ธง mx

กลายเป็นว่าฉันไม่ได้ทำผิดแค่ข้อเดียวแต่ผิดถึงสองข้อ!

  • ฉันไม่ได้อ่านส่วนของ RFC ที่อธิบายว่า nonce ต่อเรกคอร์ดถูกคำนวณโดย XORing หมายเลขลำดับเทียบกับ IV
  • ฉันใช้ความยาวแท็กไม่ถูกต้องเป็น 12 แทนที่จะเป็น 16

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา