Pozwoliłby, aby protokół SSL zapobiegał manipulacji odtwarzaniem przez uwierzytelnionego użytkownika


0

Czy w kontekście gry (HTML5 / Flash / Silverlight), która wysyła dane do usługi online w celu zarejestrowania postępu (np. Gracz zabił orka), czy komunikowanie się z usługą za pośrednictwem protokołu SSL w sposób dorozumiany uniemożliwiłoby graczowi nagrywanie i odtwarzanie wiadomości? Wiem, że SSL zawiera wartość jednorazową, ale czy pozostaje stała przez czas trwania połączenia, czy zmienia się po każdym cyklu żądania / odpowiedzi?


Ale zakładając, że żądanie jest czymś bardziej skomplikowanym, takim jak test POST danych zaszyfrowanych za pomocą RSA, wartości nonces SSL uniemożliwić odtworzenie żądania?
Mark Rendle

Odpowiedzi:


2

Wartość jednorazowa znajduje się na poziomie warstwy transportowej, a nie na warstwie aplikacyjnej. Protokół SSL zapobiegnie powtórce tylko wtedy, gdy odtwarzacz przechwytuje pakiety TCP i wtedy próbuje je odtworzyć. Ale w przeglądarce na poziomie HTTP użytkownik może łatwo utworzyć nowe żądanie, po prostu odświeżając stronę ...


1

Nie, nie byłoby tak, ponieważ użytkownik mógłby użyć serwera proxy, który odszyfrowałby przesyłane dane w obu kierunkach, a serwer proxy pokazałby wszystkie żądania i wszystkie odpowiedzi. Dowie się, że prośba wysłana po zabiciu Orka jest czymś podobnym GET /killed/orci może po prostu wysłać ją z przeglądarki lub Curl. Mógłby następnie napisać skrypt, który zabije Orka 100 razy za pomocą prostej pętli bash.

Musisz sprawdzić, czy rzeczywiście wysłałeś orka, by go zabił przynajmniej. Prawdopodobnie nadaj temu Orkowi unikalny identyfikator, aby w najgorszym przypadku użytkownik mógł zabić tylko to, co faktycznie wysłałeś.


Cieszę się, że pomysł Orc-UUID jest dobry, dzięki.
Mark Rendle
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.