HTTPS có đủ để tránh các cuộc tấn công phát lại không?


10

Tôi đang hiển thị một vài phương thức REST trên máy chủ cho một ứng dụng di động.

Tôi muốn tránh việc người dùng có thể đánh hơi cách các phương thức HTTP được xây dựng (từ ứng dụng di động) và sau đó gửi lại cho máy chủ. Thí dụ :

  • Ứng dụng di động gửi yêu cầu
  • Người dùng sử dụng proxy và có thể kiểm tra những gì đang diễn ra trên mạng
  • Người dùng nhìn thấy và lưu yêu cầu mà điện thoại di động vừa gửi
  • => Bây giờ tôi không muốn người dùng có thể gửi yêu cầu đó theo cách thủ công

Có đủ để bảo mật máy chủ qua HTTPS không?

Câu trả lời:


7

HTTPS có thể đủ để bảo mật máy chủ khỏi các cuộc tấn công phát lại (cùng một thông điệp được gửi hai lần) nếu máy chủ được cấu hình để chỉ cho phép giao thức TLS theo phần F.2 rfc2246.

Dữ liệu gửi đi được bảo vệ bằng MAC trước khi truyền. Để ngăn chặn các cuộc tấn công phát lại hoặc sửa đổi tin nhắn, MAC được tính từ bí mật MAC, số thứ tự [...]


1
Điều này không còn đúng với (bản nháp) TLS 1.3 nếu vé 0-RTT được bật. Ngoài ra, mặc dù không hoàn toàn trong phạm vi cho câu hỏi, một cuộc tấn công chơi lại vẫn có thể được gắn kết ngay cả với các phiên bản TLS hiện tại nếu sử dụng trình duyệt web .
Alex Shpilkin

9

HTTPS đơn giản có nghĩa là dữ liệu đang được vận chuyển được mã hóa để chỉ khách hàng và máy chủ có thể giải mã nó (trong một thế giới lý tưởng, không nói về các cuộc tấn công MITM, v.v.).

Như vậy, không có gì trong giao thức sẽ ngăn các cuộc tấn công phát lại xảy ra.

Bạn sẽ cần xây dựng một số loại cơ chế tránh tấn công phát lại (thứ gì đó như hết hạn mã thông báo hoặc mã thông báo không hợp lệ sau khi quá trình kết thúc) để đảm bảo rằng ứng dụng của bạn không dễ bị tấn công lại. Cơ chế này có thể được sử dụng với HTTP bình thường.


8
Câu trả lời này dường như gợi ý ngược lại: stackoverflow.com/questions/2769992/ Khăn Có ai biết tại sao lại có sự khác biệt?
Brian Armstrong

1
@BrianArmstrong Tôi nghĩ rằng vấn đề là HTTPS có các cách triển khai khác nhau như được đề cập bởi câu trả lời của Emirikol. Một số giao thức ngăn chặn các cuộc tấn công phát lại, trong khi một số thì không. (. Nó xảy ra khi thực hiện trao đổi khóa, RSA ngăn chặn trao đổi khóa nhưng trao đổi khóa Anonymous không ref: tools.ietf.org/html/draft-ietf-tls-ssl-version3-00#appendix-F ) Vì vậy, lý do tại sao thẻ ( như csrf) rất quan trọng (kịch bản tham khảo có tại đây: stackoverflow.com/a/2770135/4206925 )
MewX
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.