Jestem ciekawy, jak chronisz swoje oprogramowanie przed crackingiem, włamaniem itp.
Czy stosujesz jakiś rodzaj sprawdzania numeru seryjnego? Klucze sprzętowe?
Czy korzystasz z rozwiązań innych firm?
Jak podchodzisz do rozwiązywania problemów z licencjami? (np. zarządzanie licencjami ruchomymi)
EDYCJA: nie mówię o żadnym open source, ale stricte komercyjnej dystrybucji oprogramowania ...
Odpowiedzi:
Dostępnych jest wiele, wiele, wiele zabezpieczeń. Kluczem jest:
Nic nie jest niezniszczalne, więc ważniejsze jest, aby ocenić te rzeczy i wybrać dobrą ochronę, niż po prostu klepnąć najlepszą (najgorszą) ochronę, na którą możesz sobie pozwolić.
I odmiany powyższego.
źródło
Niezależnie od wybranej trasy, pobieraj uczciwą cenę, ułatwiaj aktywację, udostępniaj bezpłatne drobne aktualizacje i nigdy nie dezaktywuj ich oprogramowania. Jeśli będziesz traktować swoich użytkowników z szacunkiem, wynagrodzą Cię za to. Mimo to, bez względu na to, co zrobisz, niektórzy ludzie będą go piratować.
źródło
Nie.
Piraci będą piratem. Bez względu na to, jakie rozwiązanie wymyślisz, może i będzie pęknięte.
Z drugiej strony, Twoi faktyczni, płacący klienci są tymi, którym bzdury przeszkadzają.
źródło
Ułatw kupowanie niż kradzież. Jeśli postawisz mnóstwo zabezpieczeń przed kopiowaniem, to po prostu obniży to wartość posiadania prawdziwej transakcji.
Użyj prostego klucza aktywacyjnego i zapewnij klientów, że zawsze mogą otrzymać klucz aktywacyjny lub ponownie pobrać oprogramowanie, jeśli kiedykolwiek zgubią swój.
Wszelkie zabezpieczenia przed kopiowaniem (poza komponentami dostępnymi wyłącznie online, takimi jak gry dla wielu graczy i oprogramowanie finansowe, które łączy się z Twoim bankiem itp.), Które możesz założyć, zostaną pokonane. Chcesz, aby nielegalne pobieranie oprogramowania było przynajmniej nieco trudniejsze niż jego zakup.
Mam gry na PC, których nigdy nie otwierałem, ponieważ jest na niej tyle śmieci z ochrony przed kopiowaniem, że w rzeczywistości łatwiej jest pobrać fałszywą wersję.
źródło
Zabezpieczenia oprogramowania nie są warte swojej ceny - jeśli na Twoje oprogramowanie jest zapotrzebowanie, zostanie ono pokonane bez względu na wszystko.
To powiedziawszy, zabezpieczenia sprzętowe mogą działać dobrze. Przykładowy sposób, w jaki może dobrze działać, jest następujący: Znajdź (dość) prosty, ale niezbędny składnik oprogramowania i zaimplementuj go w Verilog / VHDL. Wygeneruj parę kluczy publiczny-prywatny i utwórz usługę sieciową, która przyjmuje ciąg wyzwania i szyfruje go kluczem prywatnym. Następnie utwórz klucz USB, który zawiera Twój klucz publiczny i generuje losowe ciągi wyzwań. Twoje oprogramowanie powinno poprosić klucz USB o ciąg wyzwania i wysłać go do serwera w celu zaszyfrowania. Oprogramowanie następnie przesyła go do klucza sprzętowego. Klucz sprzętowy sprawdza zaszyfrowany ciąg wyzwania za pomocą klucza publicznego i przechodzi w tryb „włączony”. Następnie oprogramowanie wywołuje klucz sprzętowy za każdym razem, gdy musi wykonać operację zapisaną w HDL.
Edycja: właśnie zdałem sobie sprawę, że niektóre rzeczy weryfikacyjne są wsteczne od tego, co powinno, ale jestem prawie pewien, że pomysł się pojawia.
źródło
Schemat licencji na oprogramowanie firmy Microsoft jest szalenie kosztowny dla małej firmy. Koszt serwera to około 12 000 $, jeśli chcesz go skonfigurować samodzielnie. Nie polecam tego ze względu na udrękę serca.
Właściwie właśnie wdrożyliśmy Intellilock w naszym produkcie. Umożliwia podjęcie wszystkich decyzji dotyczących tego, jak surowa ma być Twoja licencja, a także jest bardzo opłacalna. Ponadto robi zaciemnianie, zapobieganie kompilatorom itp.
Innym dobrym rozwiązaniem, które widziałem w małych / średnich firmach, jest SoloServer . To znacznie bardziej system e-commerce i kontroli licencji. Jest bardzo konfigurowalny do tego stopnia, że może być zbyt skomplikowany. Ale z tego, co słyszałem, robi bardzo dobrą robotę.
W przeszłości korzystałem również z systemu licencji Desaware dla dot net. Jest to dość lekki system w porównaniu z dwoma powyższymi. Jest to bardzo dobry system kontroli licencji pod względem kryptograficznym. Ale jest to interfejs API bardzo niskiego poziomu, w którym musisz zaimplementować prawie wszystko, czego Twoja aplikacja będzie faktycznie używać.
źródło
Cyfrowe zarządzanie „prawami” jest największym pojedynczym produktem w branży. Aby pożyczyć stronę z klasycznej kryptografii, typowym scenariuszem jest to, że Alicja chce dostać wiadomość do Boba, a Charlie nie może jej przeczytać. DRM nie działa, ponieważ w jego aplikacji Bob i Charlie to ta sama osoba!
Lepiej byłoby zadać odwrotne pytanie, które brzmi: „Jak skłonić ludzi do zakupu mojego oprogramowania zamiast go kraść?” I to jest bardzo szerokie pytanie. Ale zazwyczaj zaczyna się od badań. Dowiadujesz się, kto kupuje oprogramowanie, które chcesz sprzedać, a następnie tworzysz oprogramowanie, które przemawia do tych osób.
Dodatkowym problemem jest ograniczenie aktualizacji / dodatków tylko do legalnych kopii. Może to być coś tak prostego, jak kod zamówienia otrzymany podczas transakcji zakupu.
Sprawdź oprogramowanie Stardock, twórców WindowBlinds i gier, takich jak Sins of a Solar Empire, ta ostatnia nie ma DRM i przyniosła spory zysk z budżetu 2 mln USD.
źródło
Istnieje kilka metod, na przykład użycie identyfikatora procesora do wygenerowania „klucza aktywacji”.
Najważniejsze jest to, że jeśli ktoś chce tego wystarczająco mocno - odtworzy wszelkie dostępne zabezpieczenia.
Najbardziej bezpiecznymi metodami są weryfikacja online w czasie wykonywania lub sprzętowa.
Powodzenia!
źródło
Jeśli minie trochę czasu, twoje oprogramowanie zawsze zostanie złamane. Możesz wyszukać crackowane wersje dowolnego dobrze znanego oprogramowania, aby to potwierdzić. Ale nadal warto dodać jakąś formę ochrony do swojego oprogramowania.
Pamiętaj, że nieuczciwi ludzie nigdy nie zapłacą za twoje oprogramowanie i zawsze znajdują / używają crackowanej wersji. Bardzo uczciwi ludzie zawsze będą trzymać się zasad, nawet bez systemu licencjonowania, tylko dlatego, że takim właśnie są. Ale większość ludzi znajduje się między tymi dwoma skrajnościami.
Dodanie prostego schematu ochrony to dobry sposób, by większość ludzi pośrodku działała uczciwie. Jest to sposób na nakłonienie ich do zapamiętania, że oprogramowanie nie jest darmowe i powinni płacić za odpowiednią liczbę licencji. Wiele osób faktycznie na to reaguje. Firmy szczególnie dobrze trzymają się zasad, ponieważ menedżer nie wydaje własnych pieniędzy. Konsumenci rzadziej trzymają się zasad, ponieważ to ich własne pieniądze.
Jednak ostatnie doświadczenia z takimi wydawnictwami jak Spore z Electronic Arts pokazują, że licencjonowanie można zajść za daleko. Jeśli sprawisz, że nawet legalni ludzie poczują się jak przestępcy, ponieważ są ciągle weryfikowani, wtedy zaczną się buntować. Dodaj więc proste licencje, aby przypomnieć ludziom, że są nieuczciwi, ale jest mało prawdopodobne, aby cokolwiek więcej zwiększyło sprzedaż.
źródło
Gry dostępne tylko w trybie online, takie jak World of Warcraft (WoW), mają to za sobą, każdy musi za każdym razem łączyć się z serwerem, dzięki czemu konta mogą być stale weryfikowane. Żadna inna metoda nie działa w przypadku fasoli.
źródło
Nie jest dokładnie odpowiedzią, której szukasz, ale jest świetnym źródłem informacji na temat piractwa od twórcy gier, który aktywnie zapytał swoich piratów dlaczego to robią. I jest związany z pierwszą częścią wybranej odpowiedzi.
Przeczytaj to w Talking to Pirates .
źródło
Ogólnie istnieją dwa systemy, które często się mylą -
Aby uzyskać licencję, użyj pakietu komercyjnego FlexLM wiele firm inwestuje ogromne sumy w licencjonowanie i uważa, że zyskują również bezpieczeństwo. Jest to częsty błąd, który generuje klucze dla tych pakietów komercyjnych.
Zalecałbym licencjonowanie tylko wtedy, gdy sprzedajesz je korporacjom, które zgodnie z prawem będą płacić na podstawie użytkowania, w przeciwnym razie prawdopodobnie będzie to więcej wysiłku niż jest to warte.
Pamiętaj, że gdy Twoje produkty odniosą sukces, wszystkie licencje i środki bezpieczeństwa zostaną w końcu naruszone. Zdecyduj więc teraz, czy naprawdę warto.
Wdrożyliśmy klon FlexLM do pomieszczeń czystych kilka lat temu, musieliśmy również ulepszyć nasze aplikacje pod kątem ataków binarnych, jego długi proces, trzeba go ponownie odwiedzać w każdym wydaniu. Zależy to również od tego, które rynki globalne również sprzedajesz lub gdzie jest Twoja główna baza klientów, co do tego, co musisz zrobić.
Sprawdź inną z moich odpowiedzi na temat zabezpieczania biblioteki DLL .
źródło
Jak już wspomniano, ochrona oprogramowania nigdy nie jest niezawodna. To, czego zamierzasz użyć, zależy w dużej mierze od docelowych odbiorców. Na przykład gra nie jest czymś, co będziesz w stanie chronić na zawsze. Z drugiej strony, oprogramowanie serwera jest czymś znacznie mniej prawdopodobnym do rozpowszechniania w Internecie z wielu powodów (przychodzą na myśl penetracja produktu i odpowiedzialność; duża korporacja nie chce być pociągnięta do odpowiedzialności za oprogramowanie typu bootleg oraz piraci zajmują się tylko rzeczami, na które jest duży popyt). Szczerze mówiąc, w przypadku głośnej gry najlepszym rozwiązaniem jest prawdopodobnie samodzielne zasianie torrenta (potajemnie!) I zmodyfikowanie go w jakiś sposób (na przykład tak, aby po dwóch tygodniach gry wyskoczył z wiadomościami proszę rozważyć wsparcie programistów poprzez zakup legalnej kopii).
Jeśli wprowadzisz ochronę, pamiętaj o dwóch rzeczach. Po pierwsze, niższa cena uzupełni ochronę przed kopiowaniem, zwiększając skłonność ludzi do płacenia ceny zakupu. Po drugie, ochrona nie może przeszkadzać użytkownikom - zobacz ostatni przykład w Spore.
źródło
DRM to, DRM tamto - wydawcy, którzy wymuszają DRM w swoich projektach, robią to, ponieważ jest to opłacalne. Ich ekonomiści wyciągają z tego wnioski na podstawie danych, których nikt z nas nigdy nie zobaczy. Trolle „DRM to zło” posuwają się trochę za daleko.
W przypadku produktu o słabej widoczności prosta aktywacja internetowa powstrzyma przypadkowe kopiowanie. Jakiekolwiek inne kopiowanie jest prawdopodobnie nieistotne dla wyniku finansowego.
źródło
Niemożliwe jest zapobieżenie nielegalnej dystrybucji; po prostu zapytaj RIAA. Treść cyfrową można po prostu skopiować; zawartość analogową można zdigitalizować, a następnie skopiować.
Powinieneś skoncentrować swoje wysiłki na zapobieganiu nieautoryzowanemu wykonywaniu . Nigdy nie jest możliwe całkowite uniemożliwienie wykonania kodu na czyimś komputerze, ale możesz podjąć pewne kroki, aby podnieść poprzeczkę na tyle wysoko, że łatwiej będzie kupić oprogramowanie, niż je piracić.
Zapoznaj się z artykułem Developing for Software Protection and Licensing, w którym wyjaśniono, jak najlepiej opracować aplikację z myślą o licencjonowaniu.
Obowiązkowe zastrzeżenie i wtyczka: firma, której jestem współzałożycielem, produkuje licencjonowanie oprogramowania OffByZero Cobalt dla platformy .NET .
źródło
Problem z pomysłem, by pozwolić piratom go używać, i tak nie kupią, a pokażą znajomym, kto mógłby to kupić, jest dwojaki.
W przypadku oprogramowania korzystającego z usług stron trzecich pirackie kopie zużywają cenną przepustowość / zasoby, co zapewnia legalnym użytkownikom gorsze wrażenia, sprawia, że moje oprogramowanie wygląda na bardziej popularne niż jest, a usługi innych firm proszą mnie o zapłacenie więcej za ich usługi, ponieważ używanej przepustowości.
Wielu zwykłych ludzi nie marzy o tym, by samodzielnie złamać SW, ale jeśli w witrynie takiej jak piratbay istnieje łatwe do oszacowania pęknięcie, skorzystają z niego, a jeśli go nie ma, mogą go kupić.
Ta koncepcja niewyłączania raz odkrytego pirackiego oprogramowania również wydaje się szalona, nie rozumiem, dlaczego powinienem pozwolić komuś dalej używać oprogramowania, którego nie powinien używać, wydaje mi się, że to tylko pogląd / nadzieja piratów.
Warto również zauważyć, że utrudnianie złamania programu to jedno, ale należy również uniemożliwić udostępnianie legalnych kopii, w przeciwnym razie ktoś mógłby po prostu kupić jedną kopię, a następnie
udostępnić ją tysiącom innych za pośrednictwem strony z torrentami. Fakt, że ich imię i nazwisko / adres e-mail jest osadzony w licencji, nie wystarczy, aby odwieść wszystkich od zrobienia tego, a wystarczy tylko jeden, aby pojawił się problem.
Jedynym sposobem, aby temu zapobiec, jest:
Niech serwer sprawdza i blokuje licencję przy każdym uruchomieniu programu i zwalnia licencję po zakończeniu programu. Jeśli inny klient uruchomi się z tą samą licencją, podczas gdy pierwszy klient ma licencję, zostanie odrzucony. W ten sposób nie zapobiega używaniu licencji przez więcej niż jednego użytkownika, ale zapobiega jednoczesnemu używaniu jej przez więcej niż jednego użytkownika - co jest wystarczające. Umożliwia również prawowitemu użytkownikowi przeniesienie licencji na dowolny ze swoich komputerów, co zapewnia lepsze wrażenia.
Przy pierwszym uruchomieniu klienta klient wysyła licencję do serwera, a serwer weryfikuje ją, powodując ustawienie flagi w oprogramowaniu klienta. Dalsze żądania od innych klientów z tą samą licencją są odrzucane. Problem z tym podejściem polega na tym, że oryginalny klient miałby problemy, gdyby ponownie zainstalował oprogramowanie lub chciał użyć innego komputera.
źródło
Nawet jeśli użyjesz jakiegoś biometrycznego uwierzytelniania odcisków palców, ktoś znajdzie sposób, aby to złamać. Naprawdę nie ma praktycznego sposobu na obejście tego. Zamiast próbować uczynić swoje oprogramowanie odpornym na włamania, zastanów się, ile dodatkowych przychodów przyniesie dodanie dodatkowej ochrony przed kopiowaniem, a ile czasu i pieniędzy zajmie jej wdrożenie. W pewnym momencie tańsze może być zastosowanie mniej rygorystycznego schematu ochrony przed kopiowaniem.
Zależy to od tego, czym dokładnie jest oprogramowanie, ale jedną z możliwości jest usunięcie „wartościowej” części programu z oprogramowania i pozostawienie jej pod wyłączną kontrolą. Pobrałbyś skromną opłatę za oprogramowanie (głównie na pokrycie kosztów druku i dystrybucji) i generowałbyś przychody z zewnętrznego komponentu. Na przykład program antywirusowy, który jest sprzedawany tanio (lub w pakiecie bezpłatnie z innymi produktami), ale sprzedaje subskrypcje usługi aktualizacji definicji wirusów. W tym modelu piracka kopia, która subskrybuje twoją usługę aktualizacji, nie oznaczałaby dużej straty finansowej. Wraz z rosnącą popularnością aplikacji „w chmurze” metoda ta staje się coraz łatwiejsza do wdrożenia; hostuj aplikację w swojej chmurze i pobieraj od użytkowników opłaty za dostęp do chmury. To nie działa
źródło
Jeśli jesteś zainteresowany ochroną oprogramowania, które zamierzasz sprzedawać konsumentom, polecam jedną z wielu bibliotek generujących klucze licencyjne (wyszukiwanie w Google na temat generowania kluczy licencyjnych). Zwykle użytkownik musi podać coś w rodzaju nasienia, takiego jak adres e-mail lub imię i nazwisko, a następnie otrzyma kod rejestracyjny.
Kilka firm będzie hostować i dystrybuować Twoje oprogramowanie lub dostarczać kompletną aplikację do instalacji / zakupu, z którą możesz zintegrować i robić to automatycznie, prawdopodobnie bez dodatkowych kosztów.
Sprzedawałem oprogramowanie konsumentom i uważam, że zapewnia to właściwą równowagę między kosztami / łatwością użytkowania / ochroną.
źródło
Prostym i najlepszym rozwiązaniem jest po prostu naładowanie ich z góry. Ustaw cenę, która będzie odpowiednia dla Ciebie i dla nich.
Proszenie płacących klientów o udowodnienie, że płacą klientom po tym, jak już zapłacili, po prostu ich wkurza. Wdrożenie kodu uniemożliwiającego uruchamianie oprogramowania marnuje Twój czas i pieniądze oraz wprowadza błędy i irytacje dla legalnych klientów. Lepiej byłoby spędzić ten czas na tworzeniu lepszego produktu.
Wiele gier / etc będzie „chronić” pierwszą wersję, a następnie porzucić zabezpieczenia w pierwszej łatce z powodu problemów z kompatybilnością z prawdziwymi klientami. Nie jest to nierozsądna strategia, jeśli nalegasz na odrobinę ochrony.
źródło
Prawie wszystkie zabezpieczenia przed kopiowaniem są zarówno nieskuteczne, jak i koszmar użyteczności. Niektóre z nich, takie jak umieszczanie root-kitów na komputerach klientów, stają się wręcz nieetyczne
źródło
Uczyń część swojego produktu komponentem online, który wymaga połączenia i uwierzytelnienia. Oto kilka przykładów:
Ten paradygmat idzie jednak tylko tak daleko i może zniechęcić niektórych konsumentów.
źródło
Zgadzam się z wieloma plakatami, że żaden program ochrony przed kopiowaniem nie powstrzyma wykwalifikowanego pirata komputerowego. W przypadku komercyjnego oprogramowania opartego na platformie .NET Microsoft Software License Protection (SLP) jest rozwiązaniem w bardzo przystępnej cenie. Obsługuje licencje ograniczone czasowo i zmienne. Ich cena zaczyna się od 10 USD / miesiąc + 5 USD za aktywację, a składniki ochrony wydają się działać zgodnie z reklamą. Jest to jednak dość nowa oferta, więc kupujący uważaj.
źródło
Proponuję prosty klucz aktywacyjny (nawet jeśli wiesz, że można go zepsuć), naprawdę nie chcesz, aby Twoje oprogramowanie przeszkadzało użytkownikom lub po prostu go odepchną.
Upewnij się, że mogą ponownie pobrać oprogramowanie, proponuję stronę internetową, na której mogą zalogować się i pobrać oprogramowanie dopiero po zapłaceniu (i tak, powinni mieć możliwość pobierania dowolną liczbę razy, bezpośrednio, bez pytania o tym, dlaczego z Twojej strony).
Zaufaj przede wszystkim swoim płatnym użytkownikom, nie ma nic bardziej irytującego niż oskarżenie o bycie przestępcą, gdy jesteś legalnym użytkownikiem (antypirackie ostrzega każdego z DVD).
Możesz dodać usługę, która sprawdza klucz na serwerze w trybie online, a jeśli dwa różne adresy IP używają tego samego klucza, wyskakuje sugestia zakupu kolejnej licencji.
Ale nie dezaktywuj go, może to być szczęśliwy użytkownik, który pokaże twoje oprogramowanie znajomemu !!!!
źródło
Jeśli jesteś programistą, jednym z możliwych rozwiązań jest osadzenie metadanych bezpośrednio w swoim produkcie. Sprawdź przykładowe narzędzie Destruction Security z theredsunrise.
źródło
Udzielamy licencji na nasze oprogramowanie komercyjne za pomocą własnego systemu licencjonowania - czyli tego, co sprzedajemy (narzędzia do zarządzania licencjami). Zwykle sprzedajemy licencje subskrypcyjne, ale jeśli chcemy, możemy również sprzedawać w oparciu o wykorzystanie. Jak dotąd jest to dla nas bezpieczne: www.agilis-sw.com
źródło