Apakah HTTPS cukup untuk menghindari serangan replay?

10

Saya memaparkan beberapa metode REST di server untuk aplikasi seluler.

Saya ingin menghindari bahwa pengguna dapat mengendus bagaimana metode HTTP dibangun (dari aplikasi seluler) dan kemudian mengirimnya lagi ke server. Contoh:

  • Aplikasi seluler mengirim permintaan
  • Pengguna menggunakan proxy dan dapat memeriksa apa yang terjadi di jaringan
  • Pengguna melihat dan menyimpan permintaan yang baru saja dikirim oleh ponsel
  • => Sekarang saya tidak ingin pengguna dapat mengirim secara manual permintaan itu

Apakah cukup untuk mengamankan server melalui HTTPS?

MartinMoizard
sumber

Jawaban:

7

HTTPS dapat mencukupi untuk mengamankan server dari serangan replay (pesan yang sama dikirim dua kali) jika server dikonfigurasikan untuk hanya mengizinkan protokol TLS sesuai rfc2246 bagian F.2.

Data keluar dilindungi dengan MAC sebelum pengiriman. Untuk mencegah serangan replay atau modifikasi pesan, MAC dihitung dari rahasia MAC, nomor urut [...]

Emirikol
sumber
1
Ini tidak lagi berlaku dengan (draft) TLS 1.3 jika tiket 0-RTT diaktifkan. Juga — meski tidak sepenuhnya dalam cakupan pertanyaan — serangan replay masih dapat dipasang bahkan dengan versi TLS saat ini jika menggunakan browser web .
Alex Shpilkin
9

HTTPS berarti bahwa data yang diangkut dienkripsi sehingga hanya klien dan server yang dapat mendekripsi (dalam dunia yang ideal, tidak berbicara tentang serangan MITM dll).

Dengan demikian, tidak ada dalam protokol akan menghentikan serangan replay terjadi.

Anda perlu membangun semacam mekanisme penghindaran serangan replay (seperti token yang kedaluwarsa, atau token yang batal setelah proses selesai) untuk memastikan bahwa aplikasi Anda tidak rentan terhadap serangan replay. Mekanisme ini dapat digunakan dengan HTTP normal.

Oded
sumber
8
Jawaban ini tampaknya menyarankan yang sebaliknya: stackoverflow.com/questions/2769992 /... Adakah yang tahu bedanya?
Brian Armstrong
1
@BrianArmstrong Saya pikir masalahnya adalah HTTPS memiliki implementasi yang berbeda seperti yang disebutkan oleh jawaban Emirikol. Beberapa protokol mencegah serangan replay, sementara beberapa tidak. (Ini terjadi ketika melakukan pertukaran kunci, pertukaran kunci RSA mencegah tetapi pertukaran kunci Anonim tidak. Ref: tools.ietf.org/html/draft-ietf-tls-ssl-version3-00#appendix-F ) Jadi itu sebabnya token ( seperti csrf) penting (skenario referensi ada di sini: stackoverflow.com/a/2770135/4206925 )
MewX