konto usunięte

Temat: Zabezpieczenie licencji

Witam,

tworzę aplikacje, która będzie używana przez wiele firm. Każda aplikacja będzie posiadać klucz licencyjny ( serial, cd-key zwał jak zwał ). Jak najlepiej kontrolować licencje czy nie jest kopiowana itp. ? W zamyśle planuje napisać panel, w którym będę miał wypisane dostępne sprzedane licencje. Na nich będę mógł operować różne akcje typu np. banuj licencje. Najprościej mówiąc aplikacja wysyła do panelu co 24h swój ID ( licencja ) wraz z IP. Gdy licencja będzie działać na dwóch różnych IP, polecą bany. Czekam na propozycje/sugestie,

pozdrawiamKonrad Mariusz Kur edytował(a) ten post dnia 30.03.11 o godzinie 01:55

Temat: Zabezpieczenie licencji

Metodą dającą największe szanse na prawidłowe działanie Twojego planu jest własny hosting i udostępnianie aplikacji w modelu np SaaS.

Najprościej porobić *.pyc i dostarczyć je klientowi, ale to przy odrobinie zabawy da się prze konwertować do .py

Jak klient zobaczy Twój kod i będzie mógł go zmienić, to ma możliwość wyłączenia/obejścia Twoich "banów". Więc tak jakby tego zabezpieczenia nie było jesteś zdany na etyczne zachowanie klienta.

Jeżeli kod jest dostarczany na Windows to widziałem kiedyś kilka narzędzi, które kompresowały kod razem z interpreterem Pythona i wybranymi bibliotekami robiąc z tego jednego dużego .exe takie coś: http://www.py2exe.org/ . Dzięki temu bez inżynierii wstecznej kodu nie zobaczy i nic nie zmieni.

Same sterowanie licencja i blokowanie/kontrola to małe piwo... można to zrobić na wiele sposobów.

Największy problem, to jak dać komuś aplikacje w Pythonie by nie miał dostępu do kodu.
Podobny problem jest w PHP i tam z pomocą przychodzi: http://phpencoder.pl/

Więc powinieneś moim zdaniem pytać / szukać czy jest odpowiednik phpencoder dla Pythona :]

Temat: Zabezpieczenie licencji

Yyyyy... szczerze mówiąc nie znam licencji BSD ale czy ona nie obliguje do udostępnienia kodu?

Czy aplikacje pisane w pythonie mogą być udostępniane na innej licencji niż BSD?

konto usunięte

Temat: Zabezpieczenie licencji

Paweł Sopel:
Yyyyy... szczerze mówiąc nie znam licencji BSD ale czy ona nie obliguje do udostępnienia kodu?

Czy aplikacje pisane w pythonie mogą być udostępniane na innej licencji niż BSD?

Nie, nie obliguje. Kod możesz zamknąć i sprzedać, jedynym obowiązkiem jest dostarczenie informacji o autorach kodu zamkniętego.

Możesz zamknąć kod i wydać na innej licencji.

Ogólnie, licencja BSD jest najbardziej liberalna.Jakub Purtal edytował(a) ten post dnia 30.03.11 o godzinie 09:14

Temat: Zabezpieczenie licencji

Jakub Purtal:

Nie, nie obliguje. Kod możesz zamknąć i sprzedać, jedynym obowiązkiem jest dostarczenie informacji o autorach kodu zamkniętego.

Możesz zamknąć kod i wydać na innej licencji.

Do publikacji kodu obliguje GNU GPL, MIT i BSD jest bardziej liberalna. Jak napisał Jakub Purtal.

Temat: Zabezpieczenie licencji

Problem w tym, że interpreter musi dostać odczytywany kod źródłowy. I jedyny sposób na dobre zamaskowanie kodu, to połączenie go z interpreterem w jedną całość.
W każdym innym przypadku mamy:
[zaszyfrowany kod] -A-> [dekoder z kluczem] -B-> [interpreter]

Jeżeli klient dostanie zaszyfrowany kod, to nic z nim nie zrobi, ale też go nie uruchomi bez klucza i dekodera. Tyle tylko, że dekodowanie odbywa się na jego maszynie i jego interpreterze. Więc jeżeli podsłucha co się dzieje w miejscu B to będzie widział jakie linijki kodu są przekazywane do interpretera. I wystarczy to zapisać do jednego dużego pliku .py :]

Tak też właśnie kiedyś dekodowałem phpencoder.
Mało komu się chce w to bawić... ale można to zrobić.

Jeżeli natomiast całość połączymy w jedną paczę:
[nasz program .bin lub .exe]

Jedynym problemem jest inżynieria wsteczna, ale na to nikt jeszcze nie wymyślił lekarstwa, a wielu próbowało.

Jeżeli ktoś zna narzędzia umożliwiające łączenie kodu Pythona z interpreterem i szyfrowanie tego jakimś algorytmem - proszę o informację. Sam jestem ciekawy, a za leniwy by googlować ;)

Ja problem rozwiązałem przez hosting reseller, własny hosting itp. Jak klient chce aplikacje to do ceny doliczam jakiś hosting i nie daje mu do kodu dostępu. Sprzedaję licencje na działający produkt, a nie jego kod. Klienta nie interesuje w jakim to jest języku i co tam pod maską siedzi. Ma mieć dostęp 24/h do aplikacji i ma zwracać poprawny wynik.

konto usunięte

Temat: Zabezpieczenie licencji

Nikt jeszcze nie wymyślił sposobu ochrony oprogramowania przed kopiowaniem i mam silne przeczucie, że to w ogóle niemożliwe. Możesz zniechęcić tych z mniejszą determinacją - w takim wypadku py2exe powinno wystarczyć - ale jeżeli ktoś będzie bardzo chciał, to złamie wszystko. Sztuką jest balansować na granicy zniechęcania potencjalnych cwaniaków i nie doprowadzania legalnych użytkowników do szału. Np. producentom gier ta sztuka zdecydowanie się nie udaje.

Trochę zależy do jakich firm kierujesz swoją ofertę. Większej firmie bardziej opłaca się zapłacić rozsądną cenę niż choćby tylko ryzykować problemy prawne. O ile cena faktycznie jest rozsądna ;)

Temat: Zabezpieczenie licencji

Mikołaj Siedlarek:
Trochę zależy do jakich firm kierujesz swoją ofertę. Większej firmie bardziej opłaca się zapłacić rozsądną cenę niż choćby tylko ryzykować problemy prawne. O ile cena faktycznie jest rozsądna ;)

Dokładnie tak. Dla dużej firmy nawet nie warto robić zabezpieczeń. Ich stać na legalny program i nie potrzeba rozgłosu, że piracą soft :]

A szary polak, będzie kombinował, kopiował i szukał sposobu. Nawet zapłaci ! by ktoś mu złamał jakie tam nie wymyślisz zabezpieczenia.
Tomasz M.

Tomasz M. never go full
retard!

Temat: Zabezpieczenie licencji

Konrad Mariusz Kur:
Najprościej mówiąc aplikacja wysyła do panelu co 24h swój ID ( licencja ) wraz z IP. Gdy licencja będzie działać na dwóch różnych IP, polecą bany. Czekam na propozycje/sugestie,

pozdrawiamKonrad Mariusz Kur edytował(a) ten post dnia 30.03.11 o godzinie 01:55

bez sensu, a co jak firma ma dynamiczne IP? może rozwiązaniem byłoby dołączenie do projektu biblioteki wołanej z pythona w której zaszyta jest licencja, w środku masz funkcję zwracającą jakiegoś hasha z id urządzeń perfyferyjnych serwera np. MAC adres karty, id procesora itd. potrzebowałbyś jakiś generator licencji skleić, ale to chyba nie problem.

konto usunięte

Temat: Zabezpieczenie licencji

Tak jak ktoś napisał - SaaS lub sam serwer licencji u siebie.
W przypadku nr 2 nie ma się pewności, ale można monitorować.
Np. blokować równoległe połączenia, sprawdzać częstotliwość itd...

Hasło do guglania: "license server".

konto usunięte

Temat: Zabezpieczenie licencji

Tomasz M.:
bez sensu, a co jak firma ma dynamiczne IP? może rozwiązaniem byłoby dołączenie do projektu biblioteki wołanej z pythona w której zaszyta jest licencja, w środku masz funkcję zwracającą jakiegoś hasha z id urządzeń perfyferyjnych serwera np. MAC adres karty, id procesora itd. potrzebowałbyś jakiś generator licencji skleić, ale to chyba nie problem.
Też o tym myślałem ;)

Python i pliki 'otwarte' załatwia właśnie py2exe sprawę, jednakże nie wiem jak się zachowa przy wielu plikach ;-)

dzięki za odpowiedzi

Następna dyskusja:

Zabezpieczenie kopii Win10 ...




Wyślij zaproszenie do