Skocz do zawartości

[delphi]


kammm

Polecane posty

czesc

 

Mam program, w którym loguję sie na serwer ftp przez indy. Wiem, że bardzo trudno jest zabezpieczyć dane czyli haslo i login podczas logowania się. Bo można wyciągnąć te dane za pomoca sniferow. Też wiem, że można zastosować ssl w palecie indy.

Ale chciałbym wiedziec czy wyciągniecie passow do konta gdy loguje się ze strony opartej o php, która nie ma opcji logowania przez ssl jest tak samo łatwe jak wyciągniecie tych danych z programu w delphi?

Bo powiem szczerze, że ludzie nastraszyli mnie ze dane z mojego programu w łatwy sposób wyciągną a przecież strony www też nie stosują ssl

Link do komentarza
Udostępnij na innych stronach

Z tym jest taka bajka:

 

Umieszczając z byle zmiennej jakieś login i hasło do serwerów www czy też ftp jesteś narażony na "jawność" tych o to danych.

Uparty 'gracz' chcąc zdobyć te dane użyje debugera, edytora hex i znajdzie Twoje dane szybciej niż się to wydaje.

Jest możliwość ukrycia tych danych po przez ich dynamiczne tworzenie 'sklejanie' w programie... :D lub szyfrowanie.

 

Skrypty php mają to do siebie, że się wykonują podczas zapytania do serwera www. Jawne dane w zmiennych nie będą widoczne dla typowego użytkownika otwierającego dany skrypt. Dostęp do FTP lub wykorzystany błąd w skrypcie umożliwi mu nawet wgląd do całego skryptu, a tym samym do loginów i haseł.

 

Raada:

Jeżeli w programie chcesz ukryć jakieś dane, aby później soft komuś dać lepiej używaj dziwacznych zmiennych oraz sklejania loginu i hasła z kilku innych zmiennych... :P lub je zaszyfruj jakimś algorytmem.

 

Tyle z mojej strony.

 

Pozdrawiam.

Prawdziwy programista wiesza sie wraz ze swoim programem.

Link do komentarza
Udostępnij na innych stronach

jesli chodzi o indy to w programie mam login i haslo zaszyfrowane i chce uzywac ssl bo dostalem tu wskazowki ze w indy 10 mozna to zrobic.

Jesli chodzi o inne metody szyfrowania czy uzywania zmiennych tak jak mowisz niestety nie mam az takiej wiedzy :P

 

ale jesli cie moge spike prosic o wyjasnienie tej linijki

 

Jest możliwość ukrycia tych danych po przez ich dynamiczne tworzenie 'sklejanie' w programie...
Link do komentarza
Udostępnij na innych stronach

Chodzi mi o generowanie nazwy loginu czy hasła w programie...

Przykładowo wysyłając login na ftp składasz go z stringa, znaków char (kodem ASCII) i np. przesunięcia jakiegoś znaku xor-em...

Chodzi mi dokładnie o takie zamotanie loginu, by debugując program nie było widoczne hasło czy login w 1 zmiennej...

Jednak nie jestem tego w 100% pewien czy to da się ukryć tym sposobem :] Skromna moja wiedza o ukrywaniu danych w exe.

Prawdziwy programista wiesza sie wraz ze swoim programem.

Link do komentarza
Udostępnij na innych stronach

szyfrowanie loginu i hasla nie zrobilem za pomoca jakis algorytmow znanych ... tylko wlasne szyfrowanie ze 1 literka hasla jest zakodowana 5 znakami .. i jak haslo sie sklada z 10 znakow to bedzie x 5 jego dlugosc... moze jakos to mnie troche zabezpieczy

 

i pomyslalem tez zeby w ten sam sposob zaszyfrowac adres serwera.... tylko z tego co wiem i mi mowili to w momencie logowania i tak dane musza byc odszyfrowane

 

jednak Brainer udzielil mi tu wskazowek ze da rade zrobic ssl w indy.. no i mam serwer na ktorym jest ssl

 

no i jeden koles mi zaoferowal zaszyfrowanie w taki sposob ze ponoc nic sie nie da wyciagnac ... ale chce za to kase... a juz raz sie nacialem na kolesia ktory mial mi zrobic zabezpieczenie programu wzial za to 50 zl a to samo zabezpieczenie znalazlem w opublikowane w necie juz dawno dawno temu

Link do komentarza
Udostępnij na innych stronach

Jesli to ma być klient FTP to nie możesz sobie pozwolić na wprowadzenie własnej procedury autoryzacji ;X. Co do szyfrowania tego typu danych w pliku exe to mija sie z celem, powstrzymalo by chyba tylko "kopiuj/wklej koderów". Przecież te dane i tak musza być sklejone w całość i wysłane plain textem do serwera ftp (wystarczy przechwycić wywołanie send() i kontrolować buffor).

 

Edit:

Poszukaj czegoś o FTPS, może w Indy jest komponent do tego(nie znam za bardzo indy) - to tak odnosnie tego ssl i ftp.

Lubię cytryny !

Link do komentarza
Udostępnij na innych stronach

tak myslalem ze ten koles chce mnie naciagnac

 

sugeruje sie tym tematem http://forum.unit1.pl/index.php?showtopic=...459entry16459 gdzie Brainer napisal mi jak moge uzywac ssl w indy

 

ale zastanawia mnie jak jest zabezpieczona gra napisana w delphi

 

adres gry www.vsonline.pl tam tez wysyla sie dane na serwer nie umiem obslugiwac debugerow itp zeby wyciagnac dane ale jesli ktos sie na tym zna to moze zajrzy na ta gre i zobaczy czy to jest latwe :P

Link do komentarza
Udostępnij na innych stronach

xevil21 jak juz odpalisz to daj znac o swoich wynikach :P

 

znalazlem jeszcze info, że mozna zabezpieczyć się przed debugerami przez pakery(np. UPX, PeLock, ASProtect) programy, które potrafią spakować *.exe tak by odczytanie z niego informacji i sposobu działania było bardzo trudne ale nie zmienia to kodu programu i funkocjowania tego programu.

 

ale dochodze do wniosku, ze bez sensowne jest uzywanie indy skoro nie mozna sie zabezpieczyc dobrze.

Link do komentarza
Udostępnij na innych stronach

Można zawsze odpakować ..Wystarczy znać jak program to pakuje i juz ,to też nie jest bezpieczne ..Najlepiej ,to trzymać hasła gdzieś poza execami ,zaszyfrować i wszystko ,a w programie tylko odszyfrowywac wysłać i skasowac z pamieci ...

Aktualnie piszę 32 bitowy system operacyjny.

ASE2.0 100% ,DME (Dynamic Motion Engine) v2.0 10% ,32 bit PumaOS - 40%

Stick's Adventure 3 - 0%

Komp nr.1 AMD Duron 1,3 Ghz ,256 MB Ram DDR PC133 (na eBoostr mam jeszcze 1 GB) ,Nvidia GeForce FX 5500 256MB DDR

Komp nr.2 (laptop) AMD Athlon XP 2,0 Ghz , 192 MB Ram DDR PC2700 (na eBoostr mam jeszcze 3 GB) , Via S3 Unichrome IGP

Przykład programu w ASE2.0:

<?arg #CreateProcs; $i:?;

#For('$i,10,1,@Lab');@Lab;

#Sleep(100);

#Message("Ten komputer ulegnie autodestrukcji za $i sekund");

#Retf;

#Message('Dead'); arg?>

Link do komentarza
Udostępnij na innych stronach

nom i postawic breakpointa tuz za juz odszyfrowanymi danymi i sprawdzic.

 

Panowie i Panie, jak pokazuje nasz prezny rynek piracki wszelakie zabezpieczenia staja sie bez znaczenia gdy produkt staje sie na tyle popularny ze ktos ze skillem postanawia do niego siasc. Zrob takie zabezpieczenia jakie wg ciebie wystarcza. Po co siedziec 2 miesiace nad zabezpieczeniem czegos co tak naprawde ma znikome znaczenie ? (i na odwrot)

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

no to jednak zostane przy tym ssl i zaszyfrowaniem danych w programie, wymysle jakis pokrecony szyfr zeby nie byl latwy :P

 

 

a jeszcze takie jedno pytanie: czy ma znaczenie to, ze lacze sie z serwerem wysylam plik i koniec polaczenia ? czyli trwa to sekunde niz w przypadku gdy lacze sie wysylam i nie koncze polaczenia az do momenty gdy wylacze calkowicie program?

Link do komentarza
Udostępnij na innych stronach

wiem, ze nie zabezpiecze sie w 100% ale biore tez pod uwage to ze nie kazdy zna sie na tym jak wyciagnac dane z programu wiec dla laika zaszyfrowane dane to i tak bedzie nie lada wyczyn

 

a jeszcze jedno pytanie zeby nie zakladac kolejnego tematu.

 

uzylem sobie debugera zeby podejrzec stringi z programu i tak w jednym programie mam polaczenie z 1 serwerem ftp i jak na tacy zostalo mi pokaze nazwa strony i haslo (serwer na yoyo.pl ) . Natomiast w innym programie gdzie mam polaczenia z 2 serwerami jedno z hostingiem na interi.pl a drugie na myhosting247.com i podczas debugowania nie pokazalo wogole tych danych ... czy ilosc polaczen przypisanych w programie ma znaczenie i utrudnia wychwycenie danych do tych kont ??

Link do komentarza
Udostępnij na innych stronach

czy ilosc polaczen przypisanych w programie ma znaczenie i utrudnia wychwycenie danych do tych kont ??

Nie...

 

Do czego używasz tego FTP? Sam upload plików na serwer?

Jeżeli tak to napisz prosty skrypt w PHP/RoR/Whatever, który będzie zapisywał plik wysłany metodą POST przez HTTP z twojego programu.

I masz z głowy te "zabezpieczenia" :P

 

Albo serwer z odpowiednimi prawami dostępu, zależy czego potrzebujesz ;-)

W każdym razie możesz być pewien że jak zostawisz hasło w pliku to na 100% ktoś je wyciągnie, jeżeli będzie chciał.

Chociaż w tym przypadku czuję zabawę z darmowymi hostingami, więc zostaw hasło w kodzie - sam program i dane tym wysyłane też pewnie są niewiele warte.

Obrazek
Link do komentarza
Udostępnij na innych stronach

1. Do czego ma służyć ten program? Co to za dane potrzebujesz wysyłać? Rozumiem że strasznie tajne i nikt nie może ich przypadkiem odczytać, ale poziom zabezpieczeń dobiera się do wartości informacji jakie zabezpieczasz :P

2. Co ma do tego SSL, jeżeli trzymasz hasła w programie...

3. To nie jest portal zlecenia.przez.net, żebyś proponował mi pisanie skryptów na PM. Ten skrypt jest tak bzdurny, że nawet jakby mi się chciało to pisać, to nie miałbym za co brać pieniędzy. Pierwszy lepszy kurs i jazda! :)

4. Ten program piszesz na zlecenie, zaliczenie, czy co? :lol:

 

Dopóki nie dowiemy się po co chcesz te dane wysyłać i co to za dane, to nie za bardzo możemy ci coś więcej poradzić.

Obrazek
Link do komentarza
Udostępnij na innych stronach

1. jest to gra i zapisuje dane z gry plik wysylam na serwer no i pobieram z serwera zeby dalej moc grac (taki save game) - no nie chcialbym zeby ktos sobie sam dopisywal cos do pliku

2. to ze wiem ze indy 10 ma obsluge ssl wiec snifer nie wykryje mi danych wiec jako tako jedno zabezpieczenie juz jest

3. spytalem ciebie o cene bo widze ze wiesz o co chodzi... a opcje napisania skryptu dalem paru osoba i nie wiem czy ich ceny sa odpowiednie do poziomu tego skryptu

4. program pisze dla siebie tzn ani na zlecenie ani nei na zaliczenie ...gre tworze od kilku miesiecy i nie chcialbym zeby na koniec osoba x sobie wziela i dopisala do pliku informacje

 

 

haslo i login do serweru musze miec zapisana w kodzie poniewaz nei udostepnie tych danychy osoba (znajomym) zeby sami wpisywali sobie te dane zeby sie zalogowac na serwerze

Link do komentarza
Udostępnij na innych stronach

Ech... Tak się tego nie robi! :blink:

 

1. Wymuszasz rejestracje do grania na stronie, dopiero po tym można pobrać aplikacje i w aplikacji wpisuje się te dane - inaczej nie działa...

2. Dane wysyłasz i pobierasz tak jak mówiłem po HTTP - napisz skrypt w php, który będzie odbierał dane w XML. Wysyłasz postem XML w którym masz login, hash hasła, dane zapisu gry kodowane w Base64, a najlepiej zapisuj grę odrazu do XML i po prostu dołącz do tego zapytania jako gałąź. Jak chcesz wczytać save wysyłasz login, hash hasła. Musisz jeszcze w tych pakietach dołączyć informacje o typie - odczyt/zapis. Oczywiście zakładam tutaj że gra nie jest multiplayer!!!

3. Skoro program piszesz dla zabawy, to po co jeszcze w to inwestujesz? Przeczytaj jakiś kurs PHP, albo znajdź kogoś kto się dołączy do projektu ;-)

4. Zapomnij o FTP, to na nie jest odpowiedni protokół do tego!

Obrazek
Link do komentarza
Udostępnij na innych stronach

mam napisany panel rejestracji i logowania w delphi ... zainwestowalem juz w ten program wiec nie chce od tak go skonczyc

jak juz mowilem nie znam sie na php (gdybym mial sie tego uczyc teraz to tez mi troche to zajmie ) wiec wole zaplacic.

tak jak juz tez pisalem jest grac www.vsonline.pl napisana w delphi gdzie jest rejestracja i logowanie zrobione w delphi wiec poszedlem tym tropem

 

 

a gdyby pobierac plik i wysylac za pomoca idhttp zamiast idftp ? to cos da ?

Link do komentarza
Udostępnij na innych stronach

Słuchaj... To jest gra online-multiplayer.

Oni pewnie mają samodzielnie napisany serwer, on obsługuje rejestracje etc.

Z tego co wiem Ty zamierzasz trzymać na serwerze tylko zapisy gry, czyli coś co będzie przez pojedynczego gracza wrzucane raz na kilka minut, a nie kilkaset razy na sekundę...

Rejestracje też możesz spokojnie zrobić przez ten skrypt, a PHP nie jest trudne :-)

Na twoim miejscu poszukałbym jakiegoś początkującego programisty PHP, zrobicie sobie taki dwu-osobowy team i do boju! ;-)

 

Do użycia HTTP, chcąc czy nie chcąc musisz pisać skrypt, lub własny serwer tegoż protokołu :P

No i co to jest napisać panel rejestracji...

 

Odpowiedź na edit:

Na pewno twój własny szyfr będzie słabszy i łatwiejszy do złamania niż znaczna większość gotowych.

To nic nie zmieni, bo i tak ktoś odpali sobie debugger i ogląda co masz w pamięci! ;P

Obrazek
Link do komentarza
Udostępnij na innych stronach

mam osobe ktora napisze mi skrypt rejestracji/ logowania w php za kase tylko nei wiem czy oby napisze mi to ze bedzie dzialac w 100% ...bo juz raz nacialem sie na oszusta

tylko myslalem ze mimo wszystko jest jakis sposob aby zabezpieczyc to tylko i wylacznie w programie

 

no nic to dziekuje bardzo za wszystkie odpowiedzi :)

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...