Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Skrócony regulamin

Zabezpieczanie programów - własny serwer licencji/aktywacji

Idź do strony 1, 2  Następny

 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Algorytmy + inżynieria oprogramowania
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
kropek



Dołączył: 17 Sie 2010
Posty: 8
Skąd: Wrocław

PostWysłany: Wto Sie 17, 2010 9:36 pm      Temat postu: Zabezpieczanie programów - własny serwer licencji/aktywacji Odpowiedz z cytatem Pisownia

Witam wszystkich,

Chciałbym zabezpieczyć swoje programy, za pomocą aktywacji programu przez internet.
Serwerem licencji byłby zwykły hostingowany serwer LAMP.
Czy ktoś z szanownych forumowiczów ma jakieś doświadczenia w tym temacie?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Garf



Dołączył: 25 Maj 2005
Posty: 3348
Skąd: Rzeszów

PostWysłany: Sro Sie 18, 2010 8:19 am      Temat postu: Odpowiedz z cytatem Pisownia

Doświadczeń w tym konkretnym przypadku nie, ale nie widzę żadnego problemu ze zrobieniem czegoś takiego.
_________________
Zakochanie - to relacja międzyosobowa wynikająca z upodobania sobie w kimś,
powodującego zależność emocjonalną od tego kogoś.
Na miarę siły owej zależności następuje proporcjonalnie:
utrata zdrowego rozsądku oraz zdolności do samodecydowania.
o. Paweł Gużyński OP
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
kropek



Dołączył: 17 Sie 2010
Posty: 8
Skąd: Wrocław

PostWysłany: Sro Sie 18, 2010 9:57 am      Temat postu: Odpowiedz z cytatem Pisownia

Dzięki za odpowiedź:)

Też mi się wydaje to proste. Problem w tym, że nie mam dużego doświadczenia w php. Na upartego coś bym napisał, ale nie mając doświadczenia prawdopodobnie popełnię wiele błędów związanych z bezpieczeństwem.

A działało by to tak:

Użytkownik otrzymuje numer seryjny. Po wpisaniu w formularzu aktywacji, aplikacja wysyła na serwer zapytanie w postaci zaszyfrowanego numeru seryjnego. Na serwerze w mysql są 2 tabele: lista kluczy dopuszczonych do użytkowania (w postaci zaszyfrowanej) i druga tabela z dziennikiem zdarzeń.
Po otrzymaniu zapytania serwer analizuje obie tabele i zwraca aplikacji odpowiedź (może być też zaszyfrowana), czy pozwala na uruchomienie aplikacji.
Warunkiem udzielenia pozytywnej odpowiedzi jest to czy klucz jest prawidłowy (istnieje w pierwszej tabeli), oraz czy program nie był aktywowany więcej niż X razy w jakimś okresie Y. Wartości X i Y mogły by być dodatkowo przypisane do tabeli 1.

Wydaje mi się że zasada działania jest prosta.

Czy ma to sens Waszym zdaniem?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
lethern



Dołączył: 09 Paź 2007
Posty: 729
Skąd: Bstok/Lublin

PostWysłany: Sro Sie 18, 2010 1:50 pm      Temat postu: Odpowiedz z cytatem Pisownia

Spróbuj sam pogłówkować, jak można obejść Twoje zabezpieczenie.


Ogólnie istnieje cracking programów, nie wiem czy czytałeś o tym. W przypadku np. aplikacji jest to możliwe - mimo braku internetu zasymulować przepływ pakietów (które można podejrzeć w przypadku autentycznym), napisać to w postaci programu (cracka) i każdy program będzie mógł być zarejestrowany tym samym kodem (mimo braku połączenia z internetem!). Dodam: tego nie da się obejść (na obecny stan wiedzy).

_________________
używasz Dev-Cpp? tools->editor options -> use tab character (włącz), smart tabs (wyłącz)... albo ściągnij np. Code::Blocks lub Visual Studio C++ darmowe
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Numer GG
kropek



Dołączył: 17 Sie 2010
Posty: 8
Skąd: Wrocław

PostWysłany: Sro Sie 18, 2010 2:21 pm      Temat postu: Odpowiedz z cytatem Pisownia

lethern napisał:

Ogólnie istnieje cracking programów, nie wiem czy czytałeś o tym.


Pierwsze słyszę ;)

OK, zdaję sobie sprawę z zagrożeń, ale nie jest to tak istotne w przypadku programów, które tworzę.
Ze względu na grupę odbiorców, używanie crackowanych programów mojej produkcji nie ma sensu lub jest niemile widziane:) Zresztą wiele programów jest zabezpieczonych w ten sposób (z Windowsem włącznie) i ludzie to crackują, a producenci i tak jakoś zarabiają:)

Dlatego ponawiam prośbę o pomoc przy tworzeniu takiego rozwiązania.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Garf



Dołączył: 25 Maj 2005
Posty: 3348
Skąd: Rzeszów

PostWysłany: Pią Sie 20, 2010 8:19 am      Temat postu: Odpowiedz z cytatem Pisownia

Podstawowe pytanie: jak mocno chcesz zabezpieczyć swój program? Bo można dojść nawet do stosowania kluczy sprzętowych (np. tych na USB), ale czy potrzebujesz aż czegoś takiego?

Większość aplikacji wymaga podania przy instalacji/pierwszym uruchomieniu klucza licencji. Możesz dodatkowo sprawdzać ten klucz przez internet na swoim serwerze. Warunek: serwer musi być zabezpieczony przed "odpytywaniem" o klucze. Ważne jest, aby zabezpieczenie nie było paranoiczne (czyli koszt wytworzenia zabezpieczenia przekracza wartość rzeczy zabezpieczanej).

_________________
Zakochanie - to relacja międzyosobowa wynikająca z upodobania sobie w kimś,
powodującego zależność emocjonalną od tego kogoś.
Na miarę siły owej zależności następuje proporcjonalnie:
utrata zdrowego rozsądku oraz zdolności do samodecydowania.
o. Paweł Gużyński OP
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
kropek



Dołączył: 17 Sie 2010
Posty: 8
Skąd: Wrocław

PostWysłany: Pią Sie 20, 2010 9:59 am      Temat postu: Odpowiedz z cytatem Pisownia

Zabezpieczanie aplikacji w wersji bez aktywacji przez internet mam opanowane:)
Jak dotąd zabezpieczeń nikt nie złamał, a wiem że ludzie szukają cracków - można znaleźć mnóstwo zapytań w sieci.
Decydując się na aktywację przez internet, głównym moim celem jest ułatwienie życia legalnym użytkownikom i zautomatyzowanie procesu aktywacji programu.

Ponieważ nic tak nie motywuje do pracy, jak brak odpowiedzi na forum, poświęciłem wieczór i napisałem skrypt php który moim zdaniem załatwia sprawę. Zaledwie 30 linijek kodu:).

Wszystko bazuje na plikach tekstowych.
W folderze na serwerze znajdują się pliki o nazwach odpowiadającym numerom seryjnym w postaci zaszyfrowanej. Te pliki są puste.

Podczas aktywacji program kliencki wysyła zapytanie mniej więcej takie ..../activation.php?key1=zaszyfrowany_nr_seryjny_&key2=kod_żądania

Skrypt sprawdza czy istnieje na serwerze plik zaszyfrowany_nr_seryjny.
Jeżeli istnieje, to sprawdzane są inne warunki, np. czy ostatnie 2 aktywacje nie była robiona wcześniej niż 30 dni. Jeżeli te zaś pozwalają na aktywację programu, skrypt odpowiednio koduje kod_żądania i zwraca odpowiedz aplikacji klienckiej, dodatkowo zapisując fakt aktywacji w logu.

Jeżeli zaś plik zaszyfrowany_nr_seryjny nie istnieje lub nie są spełnione inne warunki pozwalające na aktywację, skrypt odpowiednio koduje kod_żądania (ale w sposób udawany, inaczej niż w przypadku pozytywnej odpowiedzi) i zwraca odpowiedz aplikacji klienckiej.

kod_żądania jest za każdym razem inny, więc odpada problem z zasymulowaniem przepływu pakietów.

Dopóki nie zostanie złamany sposób kodowania kodu_żądania powinno moim zdaniem działać ok.
No chyba że ktoś się włamie na serwer :)

Czy są jeszcze jakieś inne zagrożenia?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
samolot



Dołączył: 26 Sty 2006
Posty: 5404
Skąd: Toruń

PostWysłany: Pią Sie 20, 2010 9:11 pm      Temat postu: Odpowiedz z cytatem Pisownia

Może pisanie o tym jawnie na forum?
Cytat:
Zabezpieczanie aplikacji w wersji bez aktywacji przez internet mam opanowane:)

Cytat:
poświęciłem wieczór

Tylko? Uważam to za zbytnie zaufanie w swą niomylność.
Jest takie powiedzenie, że wzsystko co człowiek zabezpieczył, to też czlowiek znajdzie na to antidotum.

_________________
Vista SP2+VB 2008 EE + .NET 3.5 + IE 9.0.8112 /431 przykładowych programów do Warsztatu programisty (Helion)
W życiu bowiem istnieją rzeczy , o które warto walczyć do samego końca. (P. Coelho)
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
kropek



Dołączył: 17 Sie 2010
Posty: 8
Skąd: Wrocław

PostWysłany: Pią Sie 20, 2010 10:43 pm      Temat postu: Odpowiedz z cytatem Pisownia

samolot napisał:
Może pisanie o tym jawnie na forum?
Cytat:
Zabezpieczanie aplikacji w wersji bez aktywacji przez internet mam opanowane:)


Napisałem tak, ponieważ chcę żeby ten wątek skupił się na serwerowej części zabezpieczenia. Nie uważam że moje dotychczasowe zabezpieczenia są jakieś rewelacyjne, wręcz przeciwnie, są proste i głupie i czasem się dziwię że tego nikt nie złamał. Chociaż tłumaczę sobie to faktem, że są to programy specyficzne, których nie można nawet uruchomić nie mając wiedzy z branży, dla której te programy są przeznaczone.

Cytat:
poświęciłem wieczór

Tylko? Uważam to za zbytnie zaufanie w swą niomylność.


Gdybym wierzył w swoją nieomylność, nie zapuścił bym tego tematu na forum.
Ponieważ nie znalazłem nic w sieci, liczyłem na to, że uda mi się skontaktować z kimś, kto ma jakieś doświadczenie w temacie, żeby wymienić się poglądami, kodami, podyskutować, od tego chyba jest forum?
Przedstawiłem swoje podejście do rozwiązania problemu, mając nadzieję że być może dostanę jakieś wskazówki, uwagi od specjalistów. Proszę więc o pomoc, radę, jeżeli oczywiście ktoś ma ochotę pomóc, doradzić.

Cytat:
Jest takie powiedzenie, że wzsystko co człowiek zabezpieczył, to też czlowiek znajdzie na to antidotum.

To ma być pomoc? Przecież wiem, nie jestem kretynem, każde zabezpieczenie da się złamać.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
samolot



Dołączył: 26 Sty 2006
Posty: 5404
Skąd: Toruń

PostWysłany: Pią Sie 20, 2010 11:31 pm      Temat postu: Odpowiedz z cytatem Pisownia

Cytat:
czasem się dziwię że tego nikt nie złamał

W żadnym razie nie chciałem Cie urazić. Żeby złamać , to trzeba najpierw chcieć złamać. I tu nie chodzi akurat o Twoj program, którego przecież nie znam.
Ponadto wiem ile to trzeba włożyc wysiłku i w pisanie programu i w to by działał bez błędów.
Znam to uczucie checi zabezpieczenia swego programu. To jest naturalne.
Cytat:
wymienić się poglądami

Tak , wyzej wymieniłem swój pogląd.
Cytat:
podyskutować, od tego chyba jest forum?

A to nie dyskusja?
Cytat:
To ma być pomoc?


Jeżeli w wyniku zrozumienia sensu mojej wypowiedzi zmienisz zdanie , lub, powiedzmy zweryfikujesz to, co na temat zabezpieczeń programów sam sadzisz, to będzie to jakieś przybliżenie sedna sprawy.
Nie wiem jak długo piszesz programy, nie wiem jakie one są.
Jednak z doswiadczenia i obserwacji wiadomo, że ta chęć zabezpieczenia swego programu u ludzi , którzy napisali jeden , dwa programy, jest przemożna. (to nie jest przytyk do Ciebie, to jest ogólna uwaga)
Wartość kazdego (dobrego) programu wzrasta wraz z jego rozpowszechnieniem, jesli jest dobry, to bedzie wiedziało o tym wiecej ludzi, a w konsekwencji wiecej ludzi bedzie chcialo go mieć.
Cytat:
Przedstawiłem swoje podejście do rozwiązania problemu

Ja też, i nie złość się od pierwszego posta :)

_________________
Vista SP2+VB 2008 EE + .NET 3.5 + IE 9.0.8112 /431 przykładowych programów do Warsztatu programisty (Helion)
W życiu bowiem istnieją rzeczy , o które warto walczyć do samego końca. (P. Coelho)
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Algorytmy + inżynieria oprogramowania Wszystkie czasy w strefie CET (Europa)
Idź do strony 1, 2  Następny
Strona 1 z 2

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 1.67405 sekund, zapytan = 7
contact

| Darmowe programy i porady Jelcyna | VB4all | Tansze zakupy w Helionie |