Jak sprawdzić/zabezpieczyć licencje dla pracy offline?

0

Witam.
Stworzyłem sobie API, w którym zarządzam i sprawdzam licencje do programów. Problem zaczyna się w momencie gdy nie ma internetów. Założyliśmy, że damy klientowi czas na ogarnięcie się i nie zablokujemy od razu programu. Kilka, w losowo generowanym czasie, prób sprawdzenia licencji. Jeśli po tych próbach dalej nie będzie neta to program przestaje działać.

Gdzie zapisać licznik odpytań? Na tę chwilę mam to w pliku w swojej ścieżce w AppData, ustaliliśmy, ze max 5 prób. Obawiam się, że ktoś mądrzejszy może do tego zajrzeć. Jest jakaś opcja, aby zrobić to mądrzej, czy próbuje wymyślić koło na nowo i niepotrzebnie się tym martwię? Może jest jakieś inne wyjście, aby zabezpieczyć się przed "mądralińskimi"?

2

@AdamWox:

trochę tu, trochę tam.
Coś rejestrze - zwykły mądraliński ma dość, jak w rejestrze musi przeanalizować przez pięć podrzędnych GUIDów

2

A może klucz HASP i tego (praktycznie) nie da się obejść?
OK, w przypadku jakichś wielkich rzeczy typu AutoCAD to jeszcze ktoś się pobawi w hackowanie, ale taki programik napisany przez Adama z 4P raczej nie wzbudzi zainteresowania radzieckich hackerów ;)

https://systherm-info.pl/hasp/sentinel-ldk/?cn-reloaded=1 - możesz sobie zamówić wersję demo, czyli dostaniesz paczkę z kluczem/kluczami (z biegiem lat zmieniała się zawartość wysyłanego pudełka) - będziesz mógł zrobić testy i zobaczyć, czy taka opcja jest fajna.

AAAAaaaa... ważna rzecz.
Ogólnie odchodzi się od takich zabezpieczeń na rzecz sprawdzania licencji online. Dlatego - główny system licencjonowania bym zrobił w oparciu o jakiś serwer licencji, a HASP jedynie dla tych, którzy z jakiegoś powodu nie mogą/nie chcą korzystać z licencji online.

Albo jeszcze jedna opcja - po prostu napisz wprost, że aplikacja wymaga do działania dostępu do netu i jak komuś się to nie podoba to niech spada na drzewo :D

0

Pytanie, przed kim chcesz się bronić. Jeśli komuś będzie bardzo zależało, to sobie jakimś narzędziem sprawdzi, gdzie twój proces sięga i nic z tym nie zrobisz. Sam tak (wstyd się przyznać) oszukałem zabezpieczenie w jednym programie, a wystarczyło o dziwo trywialne strace i kilka minut szukania, gdzie w /home program sobie trzyma licznik.

Ogólnie filesystem, rejestr windowsowy, możesz sobie też w procesie programu trzymać licznik w pamięci - to będzie ciężej oszukać typowemu użytkownikowi.

0

@cerrato:
Klucz HASP to chyba za dużo zachodu. Z drugiej strony jeśli masz na myśli klucz na USB to zdecydowanie odpada. Musiałoby to być jakimś oprogramowaniem online, a wtedy na jedno wychodzi. Ktoś kupując od nas system musiałby też dostać klucz, a tak mam API, które sobie odpytuje, mogę zrobić licencje demo na parę dni, mogę wyłączyć licencje i przestanie działać itp itd. Owszem, radzieckich hakerów to nie zainteresuje, ale zarząd myśli, ze ma jedyne w swoim rodzaju oprogramowanie i ma być zabezpieczone. Wymaganie dostępu do internetu jest najlepszym rozwiązaniem, ale nie chcemy blokować klienta z powodu usługodawcy, bo coś robi na łączu.

@kelog:
Zarząd myśli, że ma na tyle mądrych klientów naszego oprogramowania, że chce za wszelką cenę ukrywać wszystko najgłębiej jak się da z jednoczesnym zapasem czasu na reakcje klienta. W przypadku opcji trzymania licznika w pamięci programu, jak to się ma do dzielenia się tymi danymi pomiędzy oknem konfiguracyjnym, a usługą? Da radę? Jeśli okno już policzy do 3, to chciałbym, aby uruchomiona usługa kontynuowała licznik.

Po tym poście i po waszych sugestiach widzę jakie to głupie, ale upartość monarchy jest nie do objeścia. Nie da się nic przetłumaczyć i te oczka kotka ze shreka wpatrzone w oprogramowanie, które ich zdaniem znosi złote jajka i już w głowach liczą miliony ojro 😅🤷‍♂️

0

Z opisu to zrozumiałem że to jest system OFLINOWO-ONLINOWY :D

Czasami klucze maja zegar RTC (real time clock)
na pewno dało by zintegrować taki klucz z Twoim systemem zarządzania licencjami

0

Jest kilka systemów, które chciałbym spiąć z tym "medżerem licencji", niektóre wymagają do pracy internet, a inne nie. To nie jest jeden program, dlatego staram się wyciągnąć jakąś część wspólną i wdrożyć jedno rozwiązanie do każdego. Owszem, nie ma w tym logiki, bo jak nie ma neta, a program do poprawnego działania tego neta wymaga no to zwyczajnie nie zrobi tego co ma zrobić 😅 ale patrz punkt 1 - upartość monarchy.

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