Tekrar oynatma saldırılarını önlemek için HTTPS yeterli mi?


10

Bir mobil uygulama için bir sunucuda birkaç REST yöntemini açığa vuruyorum.

Kullanıcıların HTTP yöntemlerinin nasıl oluşturulduğunu (mobil uygulamadan) nasıl koklayabilmelerini ve sonra tekrar sunucuya gönderebilmelerini önlemek istiyorum. Misal :

  • Mobil uygulama istek gönder
  • Kullanıcı bir proxy kullanır ve ağda neler olup bittiğini kontrol edebilir
  • Kullanıcı mobilin yeni gönderdiği isteği görür ve kaydeder
  • => Şimdi kullanıcının bu isteği manuel olarak gönderebilmesini istemiyorum

Sunucuyu HTTPS üzerinden güven altına almak yeterli mi?

Yanıtlar:


7

HTTPS tekrar saldırılarına karşı sunucu (Aynı mesaj varlık iki defa gönderilir) sabitlemek için yeterli olabilir eğer sunucu rfc2246 bölüm F.2'deki göre sadece izin TLS protokolüne yapılandırılır.

Giden veriler iletimden önce bir MAC ile korunur. Mesaj tekrarını veya değişiklik saldırılarını önlemek için MAC, MAC sırrından, sıra numarasından [...] hesaplanır.


1
Bu artık doğru if (taslak) TLS 1.3 ile 0-RTT biletler etkindir. Ayrıca, tam olarak sorunun kapsamı dahilinde olmasa da, bir web tarayıcısı kullanılıyorsa geçerli TLS sürümleriyle bile bir tekrar saldırısı yapılabilir .
Alex Shpilkin

9

HTTPS, taşınan verilerin şifrelenmesi anlamına gelir, böylece yalnızca istemci ve sunucu şifresini çözebilir (ideal bir dünyada, MITM saldırıları hakkında konuşmamak vb.).

Bu nedenle, protokolde hiçbir şey tekrar saldırılarının olmasını durduramaz.

Uygulamanızın yeniden saldırılara karşı savunmasız olmamasını sağlamak için bir tür tekrar saldırıdan kaçınma mekanizması (süresi dolan belirteçler veya işlem bittikten sonra geçersiz kılan belirteçler gibi) oluşturmalısınız. Bu mekanizma normal HTTP ile kullanılabilir.


8
Bu cevaplar tam tersini gösteriyor gibi görünüyor: stackoverflow.com/questions/2769992/… Farkın neden olduğu hakkında bir fikriniz var mı?
Brian Armstrong

1
@BrianArmstrong Sorun HTTPS'nin Emirikol'un cevabında belirtildiği gibi farklı uygulamalara sahip olduğunu düşünüyorum. Bazı protokoller tekrar saldırılarını önlerken bazıları engellemez. (Anahtar değişimi yapılırken olur, RSA anahtar değişimi önler, ancak Anonim anahtar değişimi önlenmez . Ref: tools.ietf.org/html/draft-ietf-tls-ssl-version3-00#appendix-F ) Bu yüzden jetonlar ( csrf gibi) önemlidir (referans senaryo burada: stackoverflow.com/a/2770135/4206925 )
MewX
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.