HTTPS เพียงพอที่จะหลีกเลี่ยงการโจมตีซ้ำหรือไม่


10

ฉันกำลังเปิดเผยวิธี REST สองสามรายการบนเซิร์ฟเวอร์สำหรับแอปมือถือ

ฉันต้องการหลีกเลี่ยงที่ผู้ใช้สามารถดมกลิ่นวิธีการสร้าง HTTP (จากแอพมือถือ) แล้วส่งไปยังเซิร์ฟเวอร์อีกครั้ง ตัวอย่าง:

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

การรักษาความปลอดภัยเซิร์ฟเวอร์ผ่าน HTTPS เพียงพอหรือไม่

คำตอบ:


7

HTTPS อาจเพียงพอที่จะรักษาความปลอดภัยเซิร์ฟเวอร์จากการโจมตีซ้ำ (ข้อความเดียวกันจะถูกส่งสองครั้ง) หากเซิร์ฟเวอร์ได้รับการกำหนดค่าให้อนุญาตโปรโตคอล TLS เท่านั้นตามส่วน rfc2246 F.2

ข้อมูลขาออกได้รับการป้องกันด้วย MAC ก่อนการส่ง เพื่อป้องกันการเล่นซ้ำข้อความหรือแก้ไขการโจมตี MAC จะถูกคำนวณจากความลับของ Mac หมายเลขลำดับ [... ]


1
สิ่งนี้ไม่เป็นความจริงอีกต่อไป (ร่าง) TLS 1.3 หากเปิดใช้งานตั๋ว 0-RTT นอกจากนี้แม้ว่าไม่เคร่งครัดภายในขอบเขตสำหรับคำถามโจมตีเล่นใหม่ยังสามารถติดตั้งได้แม้จะมีรุ่น TLS ปัจจุบันถ้าใช้เว็บเบราว์เซอร์
Alex Shpilkin

9

HTTPS นั้นหมายถึงว่าข้อมูลที่ถูกส่งนั้นถูกเข้ารหัสเพื่อให้ลูกค้าและเซิร์ฟเวอร์เท่านั้นที่สามารถถอดรหัสได้ (ในโลกอุดมคติไม่พูดถึงการโจมตีของ MITM และอื่น ๆ )

ดังนั้นจึงไม่มีสิ่งใดในโปรโตคอลที่จะหยุดไม่ให้มีการโจมตีซ้ำเกิดขึ้น

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


8
คำตอบนี้ดูเหมือนจะแนะนำสิ่งที่ตรงกันข้าม: stackoverflow.com/questions/2769992/… ความคิดใดที่ทำให้เกิดความแตกต่าง
Brian Armstrong

1
@BrianArmstrong ฉันคิดว่าปัญหาคือ HTTPS มีการใช้งานที่แตกต่างกันตามที่ระบุไว้โดยคำตอบของ Emirikol โปรโตคอลบางตัวป้องกันการโจมตีซ้ำในขณะที่บางคนไม่ (มันเกิดขึ้นเมื่อทำการแลกเปลี่ยนกุญแจการแลกเปลี่ยนคีย์ RSA ป้องกันไม่ให้ แต่การแลกเปลี่ยนคีย์ไม่ระบุชื่ออ้างอิง: tools.ietf.org/html/draft-ietf-tls-ssl-version3-00#appendix-F ) นั่นเป็นเหตุผลที่โทเค็น ( ชอบ csrf) มีความสำคัญ (สถานการณ์อ้างอิงอยู่ที่นี่: stackoverflow.com/a/2770135/4206925 )
MewX
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.