ฉันได้ศึกษาการโจมตีแบบ crypto ต่างๆ และหนึ่งในการโจมตีที่ฉันเพิ่งศึกษาเมื่อเร็วๆ นี้ก็คือการโจมตีแบบออราเคิลแบบแพดดิ้ง ตอนนี้ฉันเข้าใจเป็นส่วนใหญ่ แต่มีแง่มุมหนึ่งของการโจมตีด้วย oracle ที่ขยายออกไปซึ่งครูหลายคนจากแหล่งต่างๆ ทำให้ฉันสับสน:
สมมติว่าฉันมี URL:
http://somesite.com/place?ciphertext=aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbccccccccccccddddddddddddddddd
(สมมติว่าไซเฟอร์เท็กซ์อยู่ในฐานสิบหก และ 'aa' คือหนึ่งไบต์ ดังนั้นโดยรวมแล้ว ไซเฟอร์เท็กซ์นี้ประกอบด้วย 32 ไบต์ที่จัดเรียงเป็นสองบล็อกขนาด 16 ไบต์ ในตัวอย่างนี้ บล็อกแรกเริ่มต้นที่ 'aa' แรกและ ลงท้ายด้วย 'bb' สุดท้าย ทุกอย่างหลังจากนั้นคือบล็อคที่ 2 ของไซเฟอร์เท็กซ์)
ตอนนี้ ฉันรู้ว่าในการเริ่มการแพดดิ้ง oracle โจมตี คุณต้องเพิ่มบล็อก 0 เป็นเวกเตอร์การเริ่มต้นให้กับข้อความไซเฟอร์เท็กซ์นี้ อย่างไรก็ตาม ฉันได้รับสัญญาณที่ไม่ชัดเจนและไม่สอดคล้องกันว่าจะเพิ่ม 0 เหล่านี้ไปที่ใด
ตัวอย่างเช่น แหล่งที่มาหนึ่งทำให้ดูเหมือนว่าจะมีการเพิ่มเลข 0 เป็นคำนำหน้าบล็อกแรกของไซเฟอร์เท็กซ์ ดังนั้น URL ด้านบนจึงกลายเป็น:
http://somesite.com/place?ciphertext=00000000000000000000000000000000000000000000000000000000000000000000000000000000dddddddddddddd
อย่างไรก็ตาม แหล่งข้อมูลอื่นทำให้ดูเหมือนว่าเลขศูนย์จะแทนที่บล็อกแรกของไซเฟอร์เท็กซ์ ดังนั้น URL จึงกลายเป็น:
http://somesite.com/place?ciphertext=00000000000000000000000000000000ccccccccccccccddddddddddddddddd
แต่แหล่งข้อมูลอื่นทำให้ดูเหมือนว่าคุณต่อท้ายเลขศูนย์ที่ส่วนท้ายของไซเฟอร์เท็กซ์ดังนี้:
http://somesite.com/place?ciphertext=aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbccccccccccccccddddddddddddddd0000000000000000000000000000000
มันคืออะไรหรือเป็นทางเลือก?
นอกจากนี้ วิธีการข้างต้นในการพยายามแพดดิ้ง oracle โจมตีจะถือว่าข้อความเข้ารหัสมีอยู่ใน URL แต่ถ้าคุณต้องการถอดรหัสไฟล์ เช่น คุกกี้หรืออะไรทำนองนั้นล่ะ เมื่อโจมตีผ่าน URL คุณจะได้รับการตอบสนอง เช่น สถานะ 200 และ 500 การตอบกลับจากเซิร์ฟเวอร์ อย่างไรก็ตาม หากเป็นเพียงไฟล์ในคอมพิวเตอร์ของคุณที่คุณกำลังพยายามถอดรหัส แล้วอะไรจะทำหน้าที่เป็นเซิร์ฟเวอร์ เท่าที่ฉันทราบ หากเป็นเพียงไฟล์ ก็ไม่มีเซิร์ฟเวอร์ที่จะตอบกลับคุณหรือข้อผิดพลาด "badPaddingException" หรืออะไรทำนองนั้นนอกจากนี้ยังหมายความว่าไม่มีเซิร์ฟเวอร์ที่จะรู้ถึงไบต์ตัวกลางที่ใช้ในการเข้ารหัส ถ้าอย่างนั้น คุณจะไปถอดรหัสไฟล์ (ซึ่งตรงข้ามกับ URL) โดยใช้วิธีการโจมตีจาก oracle ได้อย่างไร