Score:1

ฉันจำเป็นต้องเปลี่ยน IV ใน AES-256 GCM เมื่อฉันใช้เฉพาะการเข้ารหัสสำหรับการแลกเปลี่ยนการตอบสนองต่อความท้าทายด้วยสตริงแบบสุ่มหรือไม่

ธง ag

เมื่อฉันต้องการใช้การเข้ารหัสเฉพาะสำหรับการแลกเปลี่ยนการตอบคำถามและไม่ต้องการซ่อนเนื้อหาของข้อความที่เข้ารหัส ยังคงเป็นภัยคุกคามหรือไม่หากฉันไม่เปลี่ยน IV สำหรับการเข้ารหัสใหม่

เพื่อความเข้าใจที่ง่ายขึ้นว่าทำไมฉันถึงถามนี่คือสถานการณ์ของฉัน:

ฉันใช้ Arduinos สองตัวกับตัวรับส่งสัญญาณ LoRa เพื่อสื่อสารระหว่างกัน หนึ่งคือบริดจ์ที่เชื่อมต่อกับอินเทอร์เน็ตและอีกอันเชื่อมต่อกับเซอร์โวและเซ็นเซอร์

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

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

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

แต่ไม่มีทาง (อย่างน้อยหนึ่งอย่างที่ฉันรู้) สำหรับฉันที่จะแลกเปลี่ยน IV กับ Arduino อื่น ๆ ดังนั้นมันจึงสามารถถอดรหัสความท้าทายได้

คำถามของฉันคือ:

ไม่สามารถเปลี่ยน IV ในกรณีของฉันอย่างใด? ถ้าใช่. มีความหมายอย่างไรและอย่างไรสำหรับฉัน

มีวิธีที่ดีกว่าที่จะทำ?

Maarten Bodewes avatar
in flag
CBC-MAC ใช้ได้กับข้อความขนาดคงที่ คุณสามารถลดขนาดลงเป็น 64 บิตได้หากพื้นที่ของคุณเต็ม
kelalaka avatar
in flag
IV ไม่มีการแลกเปลี่ยน IV ถูกสร้างขึ้นในเครื่องแล้วส่งด้วยข้อความเข้ารหัส โดยปกติจะเป็น $IV|Ciphertext|AuthenticanTag$ หากคุณไม่สนใจว่าผู้โจมตีจะรู้ข้อมูลของคุณ คุณอาจต้องการเพียงความสมบูรณ์และการรับรองความถูกต้องเท่านั้น คุณสามารถใช้เพียง HMAC โปรดทราบว่าการโจมตีซ้ำอาจเกิดขึ้นได้ในกรณีของคุณ
Maarten Bodewes avatar
in flag
ดูเหมือนว่า HMAC ได้รับการสนับสนุนทันทีด้วยไลบรารีล่าสุด แต่สำหรับ CBC-MAC คุณจะต้องใช้งานโหมด CBC เดิม (และทำการเติมบิตด้วยตัวคุณเอง) มันอาจจะเร็วกว่า แต่ก็ขึ้นอยู่กับรายละเอียดการใช้งานเป็นอย่างมาก HMAC-SHA-1 ควรรวดเร็วและปลอดภัยเพียงพอสำหรับวัตถุประสงค์ส่วนใหญ่
kelalaka avatar
in flag
และรายละเอียดเพิ่มเติมเกี่ยวกับหายนะการใช้ซ้ำ IV ของ AES/GCM คือ[ที่นี่](https://crypto.stackexchange.com/q/26790/18298)
Score:3
ธง ru

คุณต้องเปลี่ยน IV ทุกครั้ง

มีการบันทึกไว้ในที่ต่างๆ (ดูตัวอย่าง Joux "การตรวจสอบสิทธิ์ล้มเหลวใน GCM เวอร์ชัน NIST" ส่วนที่ 3) ที่ IV ซ้ำเพียงครั้งเดียวมีแนวโน้มที่จะทำให้ผู้โจมตีมีความสามารถในการคำนวณแท็กการตรวจสอบความถูกต้องสำหรับตนเอง เมื่อรวมกับความอ่อนของโหมดเคาน์เตอร์ หากผู้โจมตีทราบ XOR ของการตอบสนองสองรายการและการเข้ารหัสที่รับรองความถูกต้องของหนึ่งพวกเขา จากนั้นจะสามารถปลอมแปลงอื่น ๆ ได้อย่างอิสระ

ตามที่ระบุไว้ในความคิดเห็น คีย์ เอชแมค ให้ทางเลือกที่ดีมาก การแลกเปลี่ยนการตอบสนองความท้าทายอย่างง่ายอาจเป็น:

  • สะพาน: "ฉันต้องการให้คำแนะนำแก่คุณ"
  • เซอร์โว: ไม่เคย
  • สะพาน: สั่งการ,เอชแมค(กุญแจลับ,นอนซ์|command)

Servo ตรวจสอบค่า HMAC กับการคำนวณของตัวเอง และหากมีค่าเท่ากัน จะดำเนินการตามคำสั่ง โดยมีเงื่อนไขว่าเซอร์โวไม่ทำซ้ำ nonce และคีย์ยังคงเป็นความลับ สิ่งนี้น่าจะใช้ได้ nonce สามารถมาจากเคาน์เตอร์ด้วยซ้ำ (โดยที่เคาน์เตอร์ไม่สามารถบังคับให้ทำซ้ำได้)

kelalaka avatar
in flag
ที่จริงแล้ว ค่า IV เท่ากับศูนย์สามารถใช้ได้เป็นเวลานานโดยมีโครงสร้างเชิงกำหนดหากว่าไม่มีการกดทับระบบ [NIST แนะนำการใช้งานประเภทนี้แล้ว](https://crypto.stackexchange.com/q/84357/18298) ยังคงมีความเสี่ยงสำหรับ OP และ GCM ที่มีข้อผิดพลาดมากมาย HMAC ดีกว่าที่จะใช้เนื่องจากปล่อยให้มีข้อผิดพลาด

โพสต์คำตอบ

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