Pracuję na małym, wieloplatformowym produkcie dla systemów Windows i Mac napisanym w C++/Obj-C. Zostałem poproszony o wdrożenie modułu licencjonowania dla tego samego. Zadanie to jest częścią bardzo ambitnego projektu wprowadzenia licencji na wszystkie nasze produkty. Na koniec będziemy mieli kompletny system licencjonowania, w którym będziemy mogli sprzedawać licencje naszym klientom, którzy będą obsługiwać coroczne odnowienia, poziomy licencji itd. Moim problemem jest to, że nie wiem, co jest najważniejsze w implementacji kontrolerów licencji. Czy ktoś może mi wskazać, jak to zrobić? Czy są dostępne jakieś moduły licencjonowania typu open source?Wdrażanie biblioteki sprawdzania licencji
Odpowiedz
Używam systemu weryfikacji klucza częściowego (PKV), a ja zaimplementowałem to w języku C# z generatorem PHP. Google przedstawi różne hity, objaśnienia i implementacje; ale Brandon Staggs napisał dobry przegląd (aczkolwiek w Delphi!), tu:
PKV działa poprzez zakodowanie pewnych informacji (typ licencji, seryjny produktu, data, itd) w kluczu wraz z hash nazwy użytkownika i skrótów zakodowanych informacji. Znaczna część klucza składa się z wielu różnych skrótów. Chodzi o to, aby sprawdzić tylko podzbiór tych skrótów. Dokładny podzestaw, który został wydany, może zostać zmieniony w miarę upływu czasu dla bezpieczeństwa i ochrony przed niektórymi rodzajami inżynierii wstecznej.
Chciałbym również zaszyfrować klucz, aby ukryć znaczenie każdego znaku w licencji. W przeciwnym razie ktoś z wieloma kluczami może określić pewne pozycje char oznaczają pewne rzeczy ("oh, znaki 3-4 to numer seryjny"). To może być szpara w twojej zbroi!
Każdy opracowany system licencji będzie niedoskonały. Będzie on dostępny do spacyfikowania, a jeśli twoje produkty będą popularne, zostaną popękane. Istnieje jednak silny argument, że istnieje system licencji, aby uczciwi uczciwi ludzie mogli produkować wystarczające przeszkody dla nieco nieuczciwych osób - ale nie tak wiele przeszkód, że staje się to zbyt dużym utrudnieniem (np.). Ci, którzy włamują się do twojego systemu prawdopodobnie nie zapłacą za to.
+1 za ostatni akapit, nigdy nie będzie idealny, ale jeśli będzie wystarczająco twardy, wszystko będzie dobrze. –
Uwielbiam twoje wyjaśnienie, a zwłaszcza ostatni akapit. Podsumowuje to wszystko! –