eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › Aplikacja pod Win32/Linux i <-> zdalna baza lub PHP API. Jak chronic polaczenie przed podmiana danych?
Ilość wypowiedzi w tym wątku: 11

  • 1. Data: 2010-02-11 12:44:01
    Temat: Aplikacja pod Win32/Linux i <-> zdalna baza lub PHP API. Jak chronic polaczenie przed podmiana danych?
    Od: WRonX <w...@-...wronx.net>

    Czesc.

    Mam taka zagwozdke teoretyczna. Zalozmy, ze chce napisac aplikacje,
    ktora bedzie robila COS. Dla uproszczenia wywodu zalozmy, ze bedzie to
    jakas minigra. Calosc "gry" musi odbywac sie na maszynie lokalnej,
    wlacznie z liczeniem "punktow".

    W dowolnym momencie aplikacja ma miec mozliwosc aktualizacji ogolnej
    ilosci punktow zdobytych przez danego "gracza" (uzytkownika) przez
    wyslanie informacji o nowych punktach do serwera. Najlepiej przez
    wywolanie zdalnego skryptu PHP, ktory by te baze aktualizowal.

    No i teraz pytanie - jak zabezpieczyc sie przed nieuczciwymi graczami,
    ktorzy chcieliby sobie podmienic wysylana do serwera liczbe punktow?

    Zakladam, ze gracze nie beda dekompilowali aplikacji, bo jesli beda, to
    chyba nic nie pomoze :) Ale moga miec chyba dosyc latwy podglad tego, co
    aplikacja odbiera i wysyla (WireShark i wszystko jasne). Wiec nie moze
    to byc po prostu proste
    GET http://mojserwer/skrypt.php?uzytkownik=XYZ&dodaj_pun
    kty=1234

    Czy przychodzi Wam do glowy jakiekolwiek sensowne rozwiazanie?

    Myslalem o tym, ze w momencie uruchomienia aplikacja moglaby sie laczyc
    z serwerem i odbierac jakis unikatowy ID, ktory pozniej by przetwarzala
    (zakladamy brak dekompilacji) np. algorytmem kodujacym wynik, gdzie
    kluczem kodowania bylby ten ID... ale to chyba troche za bardzo zamotane.

    Oczywiscie przesylanie punktow przez polaczenie z baza (osobne konto dla
    dodawania punktow, aby baza byla bezpieczna) jest tak samo narazone na
    ingerencje, wiec pozwole sobie pozostac chwilowo przy opcji PHP, chyba
    ze macie argumenty :)

    Podpowiem, ze na razie mecze C# pod Windowsem i poczatkowo to bedzie
    platforma wyjsciowa.


    Pozdrawiam.
    --
    [= WRonX =] [= W...@-...NET =] [= http://WRonX.NET =]
    [= GCS/CC d->++ s+:- a- C++++$ U P>++ L+ !E W+++$ N++(+++) =]
    [= !o-- K-? w++$ !O !M- !V-- PS+ PE !Y !PGP !t !5 X++ R++ =]
    [= tv+ b+++ DI++ D+ G+ e+++ h--->---- r+++ y? =]


  • 2. Data: 2010-02-11 13:09:33
    Temat: Re: Aplikacja pod Win32/Linux i <-> zdalna baza lub PHP API. Jak chronic polaczenie przed podmiana danych?
    Od: Adam Kłobukowski <a...@k...pl>

    WRonX pisze:
    > Czesc.

    Cześć.

    <ciach>

    > Czy przychodzi Wam do glowy jakiekolwiek sensowne rozwiazanie?

    <ciach>

    Szyfrowanie.

    Adam Kłobukowski


  • 3. Data: 2010-02-11 13:26:36
    Temat: Re: Aplikacja pod Win32/Linux i <-> zdalna baza lub PHP API. Jak chronic polaczenie przed podmiana danych?
    Od: xuesheng <p...@e...fi>

    On 11 Lut, 14:44, WRonX <w...@-...wronx.net> wrote:
    [..]
    > No i teraz pytanie - jak zabezpieczyc sie przed nieuczciwymi graczami,
    > ktorzy chcieliby sobie podmienic wysylana do serwera liczbe punktow?
    >
    > Zakladam, ze gracze nie beda dekompilowali aplikacji, bo jesli beda, to
    > chyba nic nie pomoze :) Ale moga miec chyba dosyc latwy podglad tego, co
    > aplikacja odbiera i wysyla (WireShark i wszystko jasne). Wiec nie moze
    > to byc po prostu proste
    >    GEThttp://mojserwer/skrypt.php?uzytkownik=XYZ&dodaj
    _punkty=1234
    >
    > Czy przychodzi Wam do glowy jakiekolwiek sensowne rozwiazanie?
    >

    Propozycja:

    Serwer ma dobry generator liczb losowych, źródło entropii i tak dalej.
    Generuje co jakiś czas (niezbyt długi!) nową parę kluczy (prywatny i
    publiczny) do jakiegoś algorytmu asymetrycznego szyfrowania. Każdy
    klient ma swój klucz, który odgrywa rolę ID. Serwer ogłasza klucz
    publiczny. Klienci muszą mieć aktualny czas (zsynchronizowany mniej
    więcej z serwerem). Każdy klient bierze swoją wiadomość, dokleja do
    niej czas oraz swoje ID i szyfruje całość za pomocą publicznego klucza
    serwera. Wysyła wiadomość zaszyfrowaną. Serwer deszyfruje wiadomość za
    pomocą swojego prywatnego klucza i sprawdza czas. Jeśli czas bardzo
    odbiega od aktualnego - uznaje to za formę ataku i ignoruje wiadomość.
    Jeżeli czas jest OK, ale ID klienta się nie zgadza - to również jest
    atak. Jeśli serwer odbiera za dużo ataków - zaczyna ignorować
    wszystko. W żaden sposób nie odpowiada na żadną wiadomość, która nie
    przeszła weryfikacji.

    Inny wariant - klient generuje tylko "odcisk" wiadomości z czasem i z
    ID. Do każdej wiadomości dołącza taki zaszyfrowany "odcisk". Wtedy
    każdy może wiadomość przeczytać, ale nikt nie może jej sfałszować (to
    jest tylko autentykacja).

    Pozdrowienia,
    Paweł Biernacki


  • 4. Data: 2010-02-11 13:48:55
    Temat: Re: Aplikacja pod Win32/Linux i <-> zdalna baza lub PHP API. Jak chronic polaczenie przed podmiana danych?
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2010-02-11, WRonX <w...@-...wronx.net> wrote:
    > Mam taka zagwozdke teoretyczna. Zalozmy, ze chce napisac aplikacje,
    > ktora bedzie robila COS. Dla uproszczenia wywodu zalozmy, ze bedzie to
    > jakas minigra. Calosc "gry" musi odbywac sie na maszynie lokalnej,
    > wlacznie z liczeniem "punktow".
    >
    > W dowolnym momencie aplikacja ma miec mozliwosc aktualizacji ogolnej
    > ilosci punktow zdobytych przez danego "gracza" (uzytkownika) przez
    > wyslanie informacji o nowych punktach do serwera. Najlepiej przez
    > wywolanie zdalnego skryptu PHP, ktory by te baze aktualizowal.
    >
    > No i teraz pytanie - jak zabezpieczyc sie przed nieuczciwymi graczami,
    > ktorzy chcieliby sobie podmienic wysylana do serwera liczbe punktow?

    Przeprowadźmy eksperyment myślowy.
    Załóżmy, że kod źródłowy gry jest otwarty i każdy z graczy go ma.
    Automatycznie każdy z graczy zna (może poznać) protokół komunikacji
    z serwerem. Skoro zna ten protokół, to może napisać własny program do
    komunikacji, który zgłasza wyniki wzięte z sufitu. Jeśli ten program
    zachowuje się zgodnie z protokołem, serwer nie jest w stanie odróżnić go
    od twojej aplikacji-gry.

    Widać co się da dalej zrobić z architekturą "słowo honoru, ja nie
    oszukuję"?

    --
    Secunia non olet.
    Stanislaw Klekot


  • 5. Data: 2010-02-11 14:03:59
    Temat: Re: Aplikacja pod Win32/Linux i <-> zdalna baza lub PHP API. Jak chronic polaczenie przed podmiana danych?
    Od: Mariusz Kruk <M...@e...eu.org>

    epsilon$ while read LINE; do echo \>"$LINE"; done < "WRonX"
    >Mam taka zagwozdke teoretyczna. Zalozmy, ze chce napisac aplikacje,
    >ktora bedzie robila COS. Dla uproszczenia wywodu zalozmy, ze bedzie to
    >jakas minigra. Calosc "gry" musi odbywac sie na maszynie lokalnej,
    >wlacznie z liczeniem "punktow".
    >
    >W dowolnym momencie aplikacja ma miec mozliwosc aktualizacji ogolnej
    >ilosci punktow zdobytych przez danego "gracza" (uzytkownika) przez
    >wyslanie informacji o nowych punktach do serwera. Najlepiej przez
    >wywolanie zdalnego skryptu PHP, ktory by te baze aktualizowal.
    >
    >No i teraz pytanie - jak zabezpieczyc sie przed nieuczciwymi graczami,
    >ktorzy chcieliby sobie podmienic wysylana do serwera liczbe punktow?

    Zauważ, że masz dużo więcej rzeczy do zabezpieczenia się przed. (grrr,
    jakaś angielska składnia mi wyszła).
    Na przykład gmeranie w pamięci procesu po stronie klienta.

    --
    Kruk@ -\ |
    }-> epsilon.eu.org |
    http:// -/ |
    |


  • 6. Data: 2010-02-11 14:21:21
    Temat: Re: Aplikacja pod Win32/Linux i <-> zdalna baza lub PHP API. Jak chronicpolaczenie przed podmiana danych?
    Od: lolo <n...@n...com>

    > Mam taka zagwozdke teoretyczna. Zalozmy, ze chce napisac aplikacje,
    > ktora bedzie robila COS. Dla uproszczenia wywodu zalozmy, ze bedzie to
    > jakas minigra. Calosc "gry" musi odbywac sie na maszynie lokalnej,
    > wlacznie z liczeniem "punktow".
    >
    > W dowolnym momencie aplikacja ma miec mozliwosc aktualizacji ogolnej
    > ilosci punktow zdobytych przez danego "gracza" (uzytkownika) przez
    > wyslanie informacji o nowych punktach do serwera. Najlepiej przez
    > wywolanie zdalnego skryptu PHP, ktory by te baze aktualizowal.
    >
    > No i teraz pytanie - jak zabezpieczyc sie przed nieuczciwymi graczami,
    > ktorzy chcieliby sobie podmienic wysylana do serwera liczbe punktow?

    nie wysyłać samych punktów, ale także "log" - zapis działań/event'ów
    powodujących ich przyrost wraz ze znacznikami czasowymi

    statystycznie wyłapiesz zbyt duże/nieprawdopodobne fizycznie
    zagęszczenie zdarzeń nawet przy inteligentnej próbie oszustwa


  • 7. Data: 2010-02-11 20:08:31
    Temat: Re: Aplikacja pod Win32/Linux i <-> zdalna baza lub PHP API. Jak chronicpolaczenie przed podmiana danych?
    Od: proglem <c...@s...net>

    "lolo" rozwiązał/a/o:
    >> Mam taka zagwozdke teoretyczna. Zalozmy, ze chce napisac aplikacje,
    >> ktora bedzie robila COS. Dla uproszczenia wywodu zalozmy, ze bedzie to
    >> jakas minigra. Calosc "gry" musi odbywac sie na maszynie lokalnej,
    >> wlacznie z liczeniem "punktow".
    >>
    >> W dowolnym momencie aplikacja ma miec mozliwosc aktualizacji ogolnej
    >> ilosci punktow zdobytych przez danego "gracza" (uzytkownika) przez
    >> wyslanie informacji o nowych punktach do serwera. Najlepiej przez
    >> wywolanie zdalnego skryptu PHP, ktory by te baze aktualizowal.
    >>
    >> No i teraz pytanie - jak zabezpieczyc sie przed nieuczciwymi graczami,
    >> ktorzy chcieliby sobie podmienic wysylana do serwera liczbe punktow?
    >
    > nie wysyłać samych punktów, ale także "log" - zapis działań/event'ów
    > powodujących ich przyrost wraz ze znacznikami czasowymi
    >
    > statystycznie wyłapiesz zbyt duże/nieprawdopodobne fizycznie
    > zagęszczenie zdarzeń nawet przy inteligentnej próbie oszustwa
    wtedy oszust po prostu wykorzysta maksima pozwalane przez serwer,
    których użytkownich nie będzie w stanie osiągnąć, ponieważ osiągniecia
    użytkownika podpadają pod znormalizowaną przestrzeń zdarzeń, a osiągnię-
    cia oszusta- pod liniową rozpraszaną przestrzeń zdarzeń, a oprogramowa-
    nie z samej definicji nie może znać wszystkich dozwolonych losowych
    przestrzeni zdarzeń, ponieważ losowość w informatyce jest nieskończonoś-
    cią.
    --
    / qo |) :@=N%_g=v=a=g_eD_e=c()=d=8! =%!gN@8'Re. w8in/ad
    \ _x/ , ;h-%-a'hA'H4,X0'Xo~xo~xO,R`-%EXp01ITed: *-7/+eh
    / | ng `-%__%--'__%--'__%--~__%--^%B`/$qV3r[o; &GooMee
    L_._o_O_*_^_"_'_`_ -> http://thereis.notlong.com <- `L"EnOF"


  • 8. Data: 2010-02-11 20:16:03
    Temat: Re: Aplikacja pod Win32/Linux i <-> zdalna baza lub PHP API. Jak chronic polaczenie przed podmiana danych?
    Od: proglem <c...@s...net>

    "WRonX" rozwiązał/a/o:
    > Mam taka zagwozdke teoretyczna. Zalozmy, ze chce napisac aplikacje,
    > ktora bedzie robila COS. Dla uproszczenia wywodu zalozmy, ze bedzie to
    > jakas minigra. Calosc "gry" musi odbywac sie na maszynie lokalnej,
    > wlacznie z liczeniem "punktow".
    >
    > W dowolnym momencie aplikacja ma miec mozliwosc aktualizacji ogolnej
    > ilosci punktow zdobytych przez danego "gracza" (uzytkownika) przez
    > wyslanie informacji o nowych punktach do serwera. Najlepiej przez
    > wywolanie zdalnego skryptu PHP, ktory by te baze aktualizowal.
    >
    > No i teraz pytanie - jak zabezpieczyc sie przed nieuczciwymi graczami,
    > ktorzy chcieliby sobie podmienic wysylana do serwera liczbe punktow?
    >
    > Zakladam, ze gracze nie beda dekompilowali aplikacji, bo jesli beda, to
    > chyba nic nie pomoze :) Ale moga miec chyba dosyc latwy podglad tego, co
    > aplikacja odbiera i wysyla (WireShark i wszystko jasne). Wiec nie moze
    > to byc po prostu proste
    > GET http://mojserwer/skrypt.php?uzytkownik=XYZ&dodaj_pun
    kty=1234
    >
    > Czy przychodzi Wam do glowy jakiekolwiek sensowne rozwiazanie?
    >
    > Myslalem o tym, ze w momencie uruchomienia aplikacja moglaby sie laczyc
    > z serwerem i odbierac jakis unikatowy ID, ktory pozniej by przetwarzala
    > (zakladamy brak dekompilacji) np. algorytmem kodujacym wynik, gdzie
    > kluczem kodowania bylby ten ID... ale to chyba troche za bardzo
    > zamotane.
    >
    > Oczywiscie przesylanie punktow przez polaczenie z baza (osobne konto dla
    > dodawania punktow, aby baza byla bezpieczna) jest tak samo narazone na
    > ingerencje, wiec pozwole sobie pozostac chwilowo przy opcji PHP, chyba
    > ze macie argumenty :)
    kierunek próby zabezpieczenia zależy od przyjętej strategii postępowa-
    nia:
    ?czy ma być tylko zabezpieczenie prawdziwości danych bez ich ukrywania
    ?czy ma być tylko ukrywanie danych z ufaniem ich prawdziwości.
    a które z powyższych zależy również od postępowania w przypadku wykrycia
    oszustwa; na pewno znajdzie się ktoś kto wykorzysta wszystkie dostępne
    możliwości oszukania serwera, jeśli będzie tego potrzebować.
    --
    qo |) CPL<=dataDPL CPL==/>=codeDPL:conform'/nc';max=CPL! AV0ID bHp
    _x/ , CPL<=TSS,gateDPL CPL>=/==dest_DPL:/(jmp&nc') ,RPL!- #GP -o0o
    | ng __ -- __ -- __ -- __ -- __ -- __ -- __ -- __ -x86-, EV3RY o0o
    ,__ -- __ -- Current/Requested/DescriptorPrivilegeLevel C/R/DPL , d4y m:#=


  • 9. Data: 2010-02-12 08:10:03
    Temat: Re: Aplikacja pod Win32/Linux i <-> zdalna baza lub PHP API. Jak chronic polaczenie przed podmiana danych?
    Od: Michoo <m...@v...pl>

    WRonX pisze:
    > Czesc.
    >
    > Mam taka zagwozdke teoretyczna. Zalozmy, ze chce napisac aplikacje,
    > ktora bedzie robila COS. Dla uproszczenia wywodu zalozmy, ze bedzie to
    > jakas minigra. Calosc "gry" musi odbywac sie na maszynie lokalnej,
    > wlacznie z liczeniem "punktow".
    >
    > W dowolnym momencie aplikacja ma miec mozliwosc aktualizacji ogolnej
    > ilosci punktow zdobytych przez danego "gracza" (uzytkownika) przez
    > wyslanie informacji o nowych punktach do serwera. Najlepiej przez
    > wywolanie zdalnego skryptu PHP, ktory by te baze aktualizowal.
    >
    [...]
    >
    > Czy przychodzi Wam do glowy jakiekolwiek sensowne rozwiazanie?
    >
    Przesyłanie informacji o przebiegu rozgrywki a na podstawie tego serwer
    będzie liczył punkty. Tylko:
    a) nie zawsze się da
    b) jak ktoś będzie uparty to napisze bota

    --
    Pozdrawiam
    Michoo


  • 10. Data: 2010-02-12 22:12:40
    Temat: Re: Aplikacja pod Win32/Linux i <-> zdalna baza lub PHP API. Jakchronicpolaczenie przed podmiana danych?
    Od: lolo <n...@n...com>

    >>
    >> statystycznie wyłapiesz zbyt duże/nieprawdopodobne fizycznie
    >> zagęszczenie zdarzeń nawet przy inteligentnej próbie oszustwa
    > wtedy oszust po prostu wykorzysta maksima pozwalane przez serwer,
    > których użytkownich nie będzie w stanie osiągnąć, ponieważ osiągniecia
    > użytkownika podpadają pod znormalizowaną przestrzeń zdarzeń, a osiągnię-
    > cia oszusta- pod liniową rozpraszaną przestrzeń zdarzeń, a oprogramowa-
    > nie z samej definicji nie może znać wszystkich dozwolonych losowych
    > przestrzeni zdarzeń, ponieważ losowość w informatyce jest nieskończonoś-
    > cią.

    maksima musiałby znać lub wytestować np. kosztem tworzenia kolejnych
    kont/ich autoryzacji/banowania itd.

    kto mówi o super automatyce? dane mogą podlegać weryfikacji
    niekoniecznie w momencie aktualizacji - można je cyklicznie obrabiać
    statystycznie, wyłapywać anomalie, sprawdzać, uszczegóławiać kryteria
    odrzuceń nie ujawniając metodologii kontroli (przez wstawienie w sztywny
    automat) - google nie mówi dlaczego nisko indeksuje/banuje ani nie
    podaje pozycji zaraz po dodaniu adresu

strony : [ 1 ] . 2


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: