Score:0

จัดเก็บคำนำหน้าอักขระ 4 ตัวสำหรับโทเค็นฐานสิบหก 32 บิตหลังจากจัดเก็บไดเจสต์ HMAC

ธง us

ขณะนี้ฉันกำลังทำงานกับ API สาธารณะที่ใช้การรับรองความถูกต้องของโทเค็น โทเค็นเป็นเลขฐานสิบหกแบบสุ่ม 32 บิตที่แชร์กับผู้ใช้ จากนั้นจัดเก็บไว้ในฐานข้อมูลของเราเป็นไดเจสต์ HMAC โดยใช้รหัสลับ โทเค็นจะไม่ถูกจัดเก็บยกเว้นอักขระ 4 ตัวแรก

คำถามของฉันคือ การจัดเก็บคำนำหน้าแบบนี้ปลอดภัยหรือไม่

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

ป้อนคำอธิบายรูปภาพที่นี่

ขอบคุณล่วงหน้า.

Maarten Bodewes avatar
in flag
สุ่ม 32 บิต *hex*? เลขฐานสิบหกเป็นแบบแผนเลขฐาน 16 ซึ่งมักใช้เพื่อแสดงจำนวนไบต์ บิตคือ *เลขฐานสอง* เช่น ฐาน 2
Score:0
ธง in

ในการเข้ารหัส เราจะทำการคำนวณทั้งหมดเป็นบิตเสมอ HMAC มีขนาดเท่ากับแฮชที่ใช้ สมมติว่าฟังก์ชันแฮชที่ปลอดภัย เช่น SHA-256 คุณจะมีเอาต์พุต 256 บิต ดังที่แสดงไว้ในชื่อ

จาก 32 บิตนี้ถูกเก็บไว้ในโครงร่างของคุณ ตอนนี้สำหรับแฮชและ HMAC บิตทั้งหมดขึ้นอยู่กับอินพุต แต่โดยหลักการแล้ว คุณไม่สามารถบอกอะไรเกี่ยวกับบิตที่ไม่รู้จักจากบิตเอาต์พุตได้ หมายความว่าเหลืออีก 224 บิต ผู้โจมตีจะใช้เวลาโดยเฉลี่ย $2^{223}$ เดาว่าจะได้รับค่า HMAC เต็ม

ดังนั้นคุณจึงไม่ต้องกังวลกับการบังคับแบบเดรัจฉานโดยสมมติว่าคุณกำลังใช้ฟังก์ชันแฮชที่ปลอดภัย

Maarten Bodewes avatar
in flag
ระวังว่าคำตอบนี้ไม่ได้บ่งชี้ถึงความปลอดภัยของโซลูชันของคุณ ไม่ใช่การวิเคราะห์เชิงลึกและการวิเคราะห์ดังกล่าวถือว่านอกประเด็นสำหรับไซต์ถาม/ตอบนี้

โพสต์คำตอบ

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