zabezpieczenie programu - trial + pelna wersja

0

Witam, zastanawiam sie nad sposobami implementacji ograniczen czasowych dla tworzonej przeze mnie aplikacji,
rzeczy ktore mnie interesuja to latwa implementacja wersji trial programu np. 14 dniowa - czyli po 14 dniach program nie nadaje sie do uzytku, chyba ze wpiszemu kod aktywujacy licencje albo pozostanie nam sciagniecie pelnej wersji platnej.

WYpadaloby aby program byl odporny na manipulacje czasem systemowym itd. Gdzie przechowywac i w jaki sposob czas pozostaly do konca triala.

Drugą rzeczą nad ktora rozmyslam to system licencyjny, tzn. jak mozna latwo zaimplementowac system abonamentowy na program?
na ta chwile w glowie mam klucze licencyjne ktore beda umozliwialy uzywanie aplikacji, np 1 klucz - 30 dni.
jak wtedy zarzadzac tymi kluczami, a bedzie ich raczej duzo.

a moze rozwiazania sprzetowe - klucze usb/hasp tutaj jednak powstaje koszt 30-100 zl za urzadzenie i raczej nie widze mozliwosci wykorzystania tego do Abonamentu.

Czy wykorzystac 'internet' do sprawdzania licencji?

prosze o rady, prosze takze nie pisac ze wszystko da sie zlamac itd itp, bo to raczej wiemy, - ma byc to zabezpiecznie przed pania krysią oraz jej informatykiem z firmy panem Rysiem od drukarek, a nie przed zawodowcami.

PS. Technologa oprogramowania - Delphi, ale to raczej bez znaczenia?

pozdrawiam

0

Do poczytania:
http://delphi.about.com/od/productreviews/l/aa022503a.htm
http://www.woodmann.com/fravia/protec.htm

Gotowe rozwiązanie:
http://sourceforge.net/projects/tponguard/
http://www.torry.net/pages.php?id=1534

  • Jeśli internet to czy nie odstraszysz tym userów? Szczególnie jeśli to ma być dla pani Jadzi, która niekoniecznie może mieć internet na swoim stanowisku.
  • Jeśli zrobisz wersję demo to zamiast robić np. Exit na początku funkcji, której ma nie być lepiej dodaj kompilację warunkową aby ten kod fizycznie nie pojawił się w pliku wynikowym.
  • Jeśli trial to nie ustrzeżesz się przed zmianą czasu na kompie. Możesz ew. odpytywać jakiś serwer czasu ale do tego potrzebny jest internet.
  • Gdzie trzymać dane? Musisz wziąć pod uwagę, że XP niestety się kończy. W 7/8 masz większe ograniczenia. Nie zapiszesz nic do Program Files ani do Windows bez uprawnień admina.
0

Zainteresuj się exe-protectorami, haspy sobie daruj na start, wydasz kasę, źle wykonasz implementację i wszystko na marne. Większość systemów opartych o HASP-y bazuje tylko na funkcji sprawdzającej obecność klucza i to tyle. Jak można się domyśleć - złamanie takiego zabezpieczenia jest w miarę proste.

Ogólnie nie polecam schematu time-trial, łatwo wykryć gdzie właśnie trzymasz te dane, np. monitorując zmiany w Rejestrze, w systemie plików.

Postaw na schemat w wersji demo, demówke udostępniasz na stronie, końcowy klient dostaje wersję full. Demo ma być pozbawione kodu z pełnej wersji (bez żadnej aktywacji). Można upiec przy tym 2 pieczenie na 1 ogniu, tzn. wersję demo udostępniasz jako "czystą" aplikację bez jakichkolwiek zabezpieczeń, a pełną wersję dajesz zabezpieczoną exe-protectorem, zaleta jest taka, że do wersji demo nie będą się pluły programy antywirusowe, a do wersji końcowej i zabezpieczonej mogą wyskakiwać false-positive detection (czyli taki durny AV wykryje zabezpieczenie i oznaczy je jako wirusa), jednak gdy klient wyda już pieniądze to łatwo go przekonać żeby kliknął po prostu "Ignoruj" w programie AV (nie mówie, że to się często zdarza, ale trzeba to wziąć pod uwagę).

Jeśli już musisz mieć te sprawdzenia czasu działania - wersja odpytująca serwer jest OK, pod warunkiem, że będziesz szyfrował komunikację i zabezpieczysz końcowy plik aplikacji przed modyfikacjami (exe-protectorem), jak nie zabezpieczysz końcowego pliku aplikacji, łatwo będzie podmienić adres serwera czy spatchować kod.

0

Dzięki za odpowiedzi,

jeśli exeprotector to jaki konkretny? dobry a tani?

i co z abonamentem - jako trzeba sprawdzac powiedzmy czy minelo 30 dni czy nie, albo lokalnie albo serwerem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1