2008-09-26 16 views
18

Używamy standardowych elementów, takich jak dysk twardy i identyfikator procesora, aby zablokować nasze licencje na sprzęt fizyczny. W jaki sposób możemy zmniejszyć ryzyko instalacji na maszynie wirtualnej klientów, a następnie sklonować maszynę wirtualną, omijając nasze licencjonowanie?Jak chronić aplikację przed duplikacją maszyny wirtualnej?

+1

Jak wspomniano poniżej, blokowanie w oparciu o sprzęt sprawia, że ​​jest to ból w dupie nawet dla płacących użytkowników. Wolałbym raczej sprawdzić, czy inny komputer używa tej samej licencji w innym miejscu w sieci (licencja wskazująca również, ilu użytkowników może z niej korzystać) i nie powiedzie się zupełnie cicho, jeśli licencja zostanie unieważniona: po prostu spraw, aby program się zawieszył z nie tak wyraźnym komunikat o błędzie na przykład. Płacący klienci skontaktują się z tobą, jeśli kiedykolwiek się zdarzy, piraci przeniosą się na inne oprogramowanie ... –

Odpowiedz

1

Nie można wiele zrobić AFAIK, z wyjątkiem okresowej aktywacji online.

Mamy problemy z urządzeniami Norton-ghosting fizycznych maszyn. Wygląda na to, że numery seryjne dysku twardego również są widmowe.

0

Wiem, że niektóre oprogramowanie maszyny wirtualnej (przynajmniej VMware) ma funkcje, które pozwalają oprogramowaniu wykrywać wirtualizację. Ale nie ma żadnej niezawodnej metody, ale i tak można usunąć takie funkcje. Tajemnicza zmiana wydajności (ze względu na skoky procesora w hoście) może być również używana, niezawodność jest wątpliwa. Istnieje mnóstwo "znaków zwirtualizowanych", ale zazwyczaj nie są one w 100% niezawodne.

1

Jeśli oprogramowanie działa pod maszyną wirtualną, będzie działało pod dowolną liczbą sklonowanych maszyn wirtualnych. Dlatego wydaje się, że jedyna opcja uniemożliwia działanie pod maszyną wirtualną. Oto artykuł dotyczący wykrywania maszyny wirtualnej: Detect if your program is running inside a Virtual Machine i jeden o numerze thwarting.

Nawiasem mówiąc, klonowanie maszyny wirtualnej zwykle wystarcza, aby zniechęcić zwykłych użytkowników do ominięcia licencji, a ci, którzy zdecydują się na pękanie, zapewne znajdą sposób, aby ją ominąć.

8

Licencja. Poinformuj swoich użytkowników, że nie mogą uruchamiać nielicencjonowanych kopii.

Jesteśmy rzeczywiście upadającego kupić licencję na oprogramowanie w tej chwili, ponieważ sprzedawca boi maszyn wirtualnych: Infrastruktura dla naszego działu jest przenoszony do scentralizowanego zwirtualizowanych sollution i musimy walczyć ze sprzedawcą być dozwolone, aby kupić licencję na jego oprogramowanie!

Nie bój się płacić użytkownikom.

Ludzie zbyt tępi, aby kupić licencje, będą szukać innego rozwiązania i będą i tak za dużo kłopotów.

(powodzenia opowiadać swojemu szefowi, że choć ...)

+1

Zgadzam się, piraci będą piratami - drakońskie ustalenia licencyjne szkodzą tylko rzeczywistym użytkownikom końcowym. – Ycros

+1

Nie do końca - dobre schematy licencjonowania pomagają uczciwemu uczciwemu klientowi, ponieważ pomaga on zarządzać oceną użytkowania, a tym samym odpowiednio płacić. – jakobengblom2

+0

@jake: ditto, serwery licencji zezwalają na takie rzeczy, jak posiadanie większej liczby stacji roboczych, które licencjonują. – BCS

0

Jest to problem, a każdy bystry użytkownik będzie w stanie pokonać prawie wszystko co z tym zrobić. Niepewni użytkownicy mogą zostać złapani przez zachowania, takie jak odtwarzacz VmWare, który zmienia MAC i inne identyfikatory wirtualnej maszyny, kiedy ją przenosisz, prawdopodobnie w ukłon w stronę tego rodzaju problemu.

Najlepszym rozwiązaniem jest użycie serwera licencji, ponieważ serwer zlicza liczbę aktywnych licencji. Blokowanie węzłów jest łatwiejsze do pokonania, a korzystanie z serwera powoduje również przerzucenie odpowiedzialności na dział IT, który jest bardziej wrażliwy na niezabezpieczanie umów licencyjnych w porównaniu do indywidualnych użytkowników, którzy chcą jak najszybciej wykonać swoją pracę.

Ale ostatecznie zgadzam się, że wszystko wraca do właściwego języka licencji i posiadania klientów, którym ufasz. Jeśli uważasz, że ludzie robią z ciebie durnia w ten sposób, nie powinieneś sprzedawać im oprogramowania na pierwszym miejscu ...

+1

Założę się, że zmiana adresu MAC była bardziej praktyczna: właściwie co by się stało, gdyby dwie maszyny wirtualne z tym samym adresem MAC były połączone z tym samym (wirtualnym) ethernetem? – SamB

6

Nie ma żadnego powodu, aby blokować komputer fizyczny.Ostatnio sprawdziłem, czy komputery mogą się zepsuć, a wtedy użytkownik prawdopodobnie odczuje niedogodności nie tylko z powodu martwego komputera, ale także z konieczności skontaktowania się z tobą, aby zamknąć oprogramowanie na nowej maszynie. Jeśli musisz musi drakońskie zarządzanie licencjami używać (lokalnego) serwera zarządzania i mieć uruchomione kopie sprawdzić, czy mają licencję co kilka minut. Po prostu zdaj sobie sprawę, że cokolwiek robisz, jeśli ktoś naprawdę chce używać twojego oprogramowania bez płacenia ci, znajdzie sposób.

1

"Nie przeszkadzaj" to krótka wersja. To nie jest banalne dla twoich klientów, aby to zrobili, jeśli to robią, to albo nie zapłacą za to, czego używają bez względu na wszystko (nie będą go używać, chyba że będą mogli je otrzymać za darmo) albo jesteś po prostu płaski ładowanie za dużo (jak w żłobie.)

"Prawdziwy" klient będzie ogólnie płacić za rzeczy. Z tego, co widziałem, miejsca takie jak firmy ogólnie uznają, że nie jest to warte wysiłku.

+8

Nieprawda. Istnieją trzy różne rodzaje użytkowników: a) Ci, którzy nigdy nie będą piracić oprogramowania, ze względu na względy etyczne lub dlatego, że nie warto się tym przejmować. b) Osoby, które będą pirackie, jeśli będzie to łatwe (tzn. po prostu sklonuj migawkową maszynę wirtualną, na której oprogramowanie jest już licencjonowane). c) Ci, którzy mają umiejętności, aby zhakować mechanizm antypiracki, który chcesz wprowadzić. Sensowne jest wprowadzenie podstawowych zabezpieczeń dla użytkowników w kategorii "B". Nie przejmuj się zbytnio C - zawsze znajdą sposób. –

+0

Twierdzę, że klonowanie maszyny wirtualnej nie jest "łatwe do zrobienia", niezależnie od umiejętności ustawionych jako uruchamianie aplikacji, co kończy się bólem. Inne progi dla "łatwych" mogą się różnić, ale nie sądzę (bez dowodów) wystarczającej woli, by się liczyły. – BCS

2

Potrzebujesz czegoś poza komputerowym "sprzętem" do uwierzytelnienia. Większość firm wybiera klucze sprzętowe (klucze sprzętowe) do oprogramowania o wysokim koszcie, w którym użytkownicy będą znosić to.

Inne firmy korzystają z metod online - jeśli więcej niż jeden użytkownik z CPUID i innym sprzętem korzysta z danej licencji jednocześnie, nie zezwalaj na inną instancję lub zamknij istniejącą instancję.

Musisz wybrać ochronę zgodnie z własnymi potrzebami i chęć konsumenta do przeskoczenia przez antypirackie obręcze.

-Adam

+0

Prawdopodobnie, jeśli klucz sprzętowy działa na jednej maszynie wirtualnej, będzie działał na wielu. Dlatego, jeśli nie zamierzasz zakazać wirtualizacji (co jest obecnie ograniczającym sprzedaż), nie sądzę, że dongle będą działały. –

+1

@david - Urządzenia Dongle, w szczególności USB, nie mogą być współdzielone jednocześnie przez sklonowane maszyny wirtualne, do czego odnosi się PO. –

+0

Jeśli możesz wykryć duplikaty CPUID, to nie ma * powodu *, aby zapobiec dwóm instancjom z tym samym CPUID tak czy inaczej: po prostu policz to jako dwie instancje i zrób to! – SamB

7

Jednym ze sposobów jest posiadanie serwera licencyjnego. Po wprowadzeniu kodu licencji do klienta (na maszynie wirtualnej), kontaktuje się on z serwerem i przesyła mu kod licencji oraz inne informacje. Kontaktuje się z nim wielokrotnie (definiujesz interwał - może raz na kilka godzin) z zapytaniem "Czy nadal jestem ważny"? Wraz z tym żądaniem wysyła unikatowy identyfikator, serwer odpowiada "Tak, jesteś ważny" i wysyła nowy unikalny ID z powrotem do klienta.Klient wysyła ten unikalny ID z powrotem do następnego żądania do serwera.Klient sprawdza, czy jest to ten sam identyfikator, który wysłał do klienta dla tej licencji, poprzednie żądanie. Maszyna wirtualna jest duplikowana, gdy następnym razem zapyta serwer "Czy mam rację?", Unikalny identyfikator będzie niepoprawny dla niego lub dla innej maszyny wirtualnej. Obie nie będą kontynuować pracy.

Należy określić co zrobić, gdy serwer przestanie działać lub sieć przestanie działać, tak aby klient nie mógł się komunikować z serwerem wyłączyć swoje oprogramowanie? Kiepski pomysł! Nie rozzłościj swoich klientów. Będziesz chciał dać im okres karencji. Jak długo powinno to być? Parę dni? Tygodnie?

Załóżmy, że przyznajesz im 1-miesięczny okres karencji. Teoretycznie mogliby sklonować rodzicielską maszynę wirtualną zaraz po wprowadzeniu klucza licencyjnego, a następnie przywrócić inne maszyny wirtualne temu klonowi, zanim skończy się okres oczekiwania, uniemożliwiając im dostęp do sieci. Byłoby to jednak kłopotliwe dla twoich klientów, gdybyś miał pirackie dodatkowe kopie oprogramowania. Musisz określić, jaki okres karencji nie będzie kłopotliwy dla twoich legalnych klientów, mając nadzieję, że zapewni ci ochronę, której szukasz.

Dodatkową ochronę można uzyskać, sprawdzając, czy zegar VM jest ustawiony prawidłowo. Zapobiegłoby to powyższemu podejściu do piractwa.

Innym ważnym aspektem jest to, że doświadczony użytkownik może napisać własny serwer licencyjny, aby komunikować się z instancjami maszyn wirtualnych, i powiedzieć im wszystko "jesteś dobry" - więc szyfrowanie komunikacji może pomóc w odstraszaniu. To, jak daleko chcesz się tu dostać, zależy od tego, jak bardzo piractwo naprawdę może być problemem dla Twoich klientów.W końcu nie będziesz w stanie powstrzymać prawdziwych piratów, którzy mają czas na swoich rękach, ale możesz uczciwie uczciwych użytkowników.

+0

Jak obsłużyć wycofanie do migawki, przywrócenie kopii zapasowej lub ponowne uruchomienie obrazu dokowanego? We wszystkich tych przypadkach stary unikatowy identyfikator powinien być nieprawidłowy. – Horcrux7

+0

Tak, musisz zbudować funkcje administracyjne, w których użytkownik może "zresetować" swoje urządzenie. Resetowanie to daje serwerowi i klientowi zupełnie nowy unikalny identyfikator i rozpoczyna proces synchronizacji ponownie. –