System licencjonowania aplikacji

0

Witam, czy zna może ktoś gotowe systemy do licencjonowania i zarządzania licencjami aplikacji. Prościej mówiąc, napisałem aplikację i chcę coś gotowego co pozwoliło by mi wprowadzić system zabezpieczeń przed dekompilacją itp. tego programu oraz autoryzowało że ten program może być uruchomiony tylko na tym komputerze z tym kluczem licencji. Szukam już dość długo a znajduje tylko bełkot o gpl i innych licencjach.

1

Obfuscatory utrudniają odczytanie źródeł z byte-code'u. Jednak za pomocą refactoringu można nawet po obfuskacji odczytać taki program. Słyszałem, że do prawdziwego bezpieczeństwa przed dekompilacją dla programów w językach zarządzalnych potrzebne są rozwiązania kryptograficzne (np. z kluczem symetrycznym).

Poza tym dochodzi zagadnienie klonowania komputerów (maszyn wirtualnych). Problem nie jest oczywisty. Może na zewnątrz powinna być robiona taka aktywacja, może telefonicznie jak by to miało być skuteczne. Sam jestem ciekaw jak to skutecznie można by rozwiązać i czy warto się w to bawić.

0

Sam nie wymyślisz nic poważnego. Z drugiej strony jeśli skorzystasz z komercyjnego rozwiązania, to jest duża szansa, że powstanie uniwersalne narzędzie do łamania danego zabezpieczenia i Twój program będzie można złamać za pomocą kilku klików ściągając odpowiedni soft. Tak źle i tak niedobrze. Nie ma co przesadzać, bo przecież wiadomo, że prawie każde zabezpieczenie da się złamać. Przecież nawet łamią/klonują zabezpieczenia sprzętowe w postaci kluczy na USB. Jedynym 100% zabezpieczeniem byłoby trzymanie wszystkiego na serwerze i tyle. No chyba, że Ci się ktoś włamie na serwer. Tak więc i takie coś da się złamać. Kwestia tylko ile czasu trzeba na to poświęcić.

Osobiście odradzam aktywacje telefoniczne. Jakbym miał aktywować program przez telefon to poszukałbym innego, bardziej przyjaznego użytkownikowi programu.

margor90 napisał(a):

Słyszałem, że do prawdziwego bezpieczeństwa przed dekompilacją dla programów w językach zarządzalnych potrzebne są rozwiązania kryptograficzne (np. z kluczem symetrycznym).
Ale przecież kod i tak musi być odszyfrowany przed wykonaniem przez CPU. Więc wystarczy poczekać i będziemy mieli odszyfrowany program. Co innego jakby program byłby odszyfrowywany kawałkami (a do tego klucz licencyjny byłby użyty do odszyfrowania programu) na chwilkę przed wykonaniem danej funkcji. Jeśli program byłby duży, a pewne funkcje mało używane całkowite odszyfrowanie programu trochę by trwało.

Jednak wtedy wymaga to posiadania narzędzia do szyfrowania unikalnym kluczem ustalanym na podstawie parametrów komputera. I przy tysiącu klientów już robi się nieciekawie.

2

Do tego kupuje się zazwyczaj narzędzie typu Licence Manager > http://www.capterra.com/license-management-software/

Założenie, że kod ma być "nie do odczytania" jest niepoprawne. Jak komuś będzie zależało to wyciągnie to co chce. Poprawne założenie to możliwość licencjonowania oprogramowania w łatwy i spójny sposób przy jednoczesnym zapewnieniu, że koszty łamania zabezpieczenia licencyjnego są znacznie większe od ceny licencji.

0

Jest wiele rozwiązań jeśli chodzi o zabezpieczanie programów przed kopiowaniem i użytkowaniem bez posiadania licencji.

Kiedyś były HASPy, dziś widzę, że droższe programy mają albo serwery licencji (np. FlexIm) albo klucze sprzętowe na USB (gdzie często część kodu, np. mała DLL-ka siedzi w USB). Jednak jedne i drugie zostały już złamane :) Firmy liczyły, że przeniesienie oprogramowania do chmury pozwoli ukrócić piractwo, ale też nie wyszło to po ich myśli. Na torrentach przecież są wszelkie programy "chmurowe", jak np. Adobe Cloud Collection, itp.

0

Dziękuję wam wszystkim za odpowiedź, autorskie rozbudowane zabezpieczenia to koszmarne koszty, dlatego szukam jakichś gotowców które można sobie kupić i użyć. @margor90 Obfuscatory to dobry pomysł i o tym już myślałem ale brakuje mi tu zabezpieczeń przed dobieraniem się do procesu w realtime jak możemy to uczynić w ollydbg czy cheatengine, więc coś muszę wymyślić.
@Koziołek to jest właśnie coś co między innymi szukałem i ten License4J nawet ładnie się prezentuje.
@Tokyo o zabezpieczeniach typu klucze USB już wiedziałem, tylko przesadą byłaby implementacji jak na apke za 100 czy 200 zł :D

0

@Tokyo o zabezpieczeniach typu klucze USB już wiedziałem, tylko przesadą byłaby implementacji jak na apke za 100 czy 200 zł

To fakt, aczkolwiek najtańsze klucze widziałem od 20 zł. Nie wiem dokładnie, ale podejrzewam że taki FlexIM jest dużo droższy.

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