Torrenty: Czy mogę chronić moje oprogramowanie, wysyłając błędne bajty?

15

To temat, który interesuje wszystkich. Jak mogę chronić swoje oprogramowanie przed kradzieżą, hakowaniem, inżynierią wsteczną?

Myślałem: Zrobię co w mojej mocy, aby chronić program do inżynierii odwrotnej. Wtedy ludzie rozbiją go i posadzą torrentami . Następnie pobieram własne pęknięte oprogramowanie torrentem z własnym oprogramowaniem torrentowym . Moje własne oprogramowanie torrentowe musi wtedy wysyłać nieprawidłowe dane (bajty). Oczywiście musi zaszczepić krytyczne bajty.

Więc ludzie, którzy chcą ukraść moje oprogramowanie, pobierają moje błędne bajty. Tylko te bajty, które są ważne przy uruchamianiu, zapisywaniu i ładowaniu danych itp. Więc jeśli Stealer pobierze ode mnie (i zapuści go później), Stealer nie może nic z tym zrobić, ponieważ jest zepsuty.

Czy ten pomysł jest istotny? Może dobrzy klienci torrenta sprawdzają skróty od większej liczby peerów, aby sprawdzić, czy pakiety (zawierające moje uszkodzone bajty), które chcę zainicjować, są prawidłowe, czy nie?

Martijn Courteaux
źródło
3
Przeczytałem, że RIAA już to zrobiła dla plików muzycznych.
26
marnujesz czas, nie tracisz pieniędzy od złodziei, z definicji nigdy nie kupiliby twojego oprogramowania.
27
Odrzucając fakt, że nie zadziałałoby to z powodu kontroli CRC itp., Sugerowałbym, że może to być zły pomysł z innego powodu. Ludzie, którzy kradną oprogramowanie, prawdopodobnie i tak za to nie zapłacą, ale jeśli to nie zadziała, mogą powiedzieć swoim znajomym lub szefom, że twoje oprogramowanie jest złej jakości, więc oni też go nie kupią.
ho 1
9
W większości przypadków piracka kopia nie jest utraconą sprzedażą.
13
Cokolwiek robisz, upewnij się, że nie
utrudnisz

Odpowiedzi:

42

Ich aplikacja do torrentów (piraci) po prostu odrzuci bajty, które wysiewasz, jako złe z powodu kontroli CRC. Wtedy zostaniesz zbanowany przez ten adres IP za to, że jesteś wielokrotnym przestępcą.

graham.reeds
źródło
Z jakiego CRC korzysta bit torrent? Czy można wygenerować pakiet śmieci, który ma poprawne CRC? Istnieją aplikacje, które mogą to zrobić dla MD5 i jestem pewien, że prawdziwe CRC byłoby równie łatwe.
deft_code
16
Teoretycznie można to wygenerować ; jednak protokół BitTorrent używa mieszania SHA-1; w SHA-1 trudniej jest znaleźć kolizje skrótów (o to tu chodzi) niż w MD5. W praktyce nie jest to obecnie możliwe.
Piskvor opuścił budynek
@Caspin W istocie nie. W idealnych warunkach zajmie to co najmniej tydzień, naprawdę szybki komputer (superkomputer) i zespół kryptografów, aby złamać skrót CRC dla jednego pliku. Powodzenia z tym.
Evan Plaice,
9

P: Czy mogę chronić moje oprogramowanie, wysyłając błędne bajty?
Odp .: Nie, można go w jakiś sposób zhakować, zwłaszcza jeśli ktoś dostanie legalną kopię.

P: Jak mogę chronić moje oprogramowanie przed kradzieżą, hakowaniem, inżynierią wsteczną?
A. Sprzedaj go za uczciwą cenę, co podważy próby włamania.


źródło
Zobacz plagiarismtoday.com/2010/05/26/... w punkcie 2. Piraci piraci. Lepsze oprogramowanie ci nie pomoże.
Paul Nathan
1
@Paul: Jest wielu ludzi, którzy nie pirują. Wiele osób odmawia zapłaty. Ale są też ludzie, którzy są bardziej skłonni zapłacić za coś, jeśli jest oferowana za niższą cenę niż za wyższą. Są to ludzie, którzy ucierpieliby na niższej cenie. (Chyba nie chciałbyś wyceniać go zbyt nisko).
7

Sugeruję podejście do problemu z drugiego końca. Osadź unikalny kod identyfikacyjny w każdej kopii oprogramowania, którą przekazujesz swoim klientom. W przypadku, gdy ktoś się wysiewa, możesz przynajmniej określić, kto to zrobił i podjąć kroki prawne.


źródło
5
Tylko jeśli potrafią to znaleźć.
2
@Developer Art: Jeśli mają dostęp do wielu kopii oprogramowania, mogą być w stanie dokonać binarnych porównań, aby dowiedzieć się, jak dokładnie różnią się od siebie kopie i gdzie się różnią, więc o ile nie skonfigurujesz sposobu dla części Identyfikator, który należy zaciemnić w sposób przypadkowy, może nie być trudny do odgadnięcia.
2
Nie jest to zrobione za pomocą jednej zmiennej. Możesz rozpowszechniać informacje we wszystkich modułach swojej aplikacji, udając, że naprawdę używasz ich do pewnych celów. To w pewnym sensie sztuka, jak uczynić dyskretnym dla wścibskich oczu. Może zadaj osobne pytanie dotyczące technik, aby to osiągnąć. Byłoby ciekawie.
18
Możesz sprawdzić różne wersje dla tego, czy znak jest zoptymalizowany, czy nie. Ale i użytkownicy mogą! W rzeczywistości żaden profesjonalny cracker nie przesyła rzeczy bez uprzedniego uzyskania kilku kopii i porównania ich, ponieważ chcą chronić swoje źródła. W końcu walczysz z wiatrakami; o wiele lepiej poświęcić wysiłek na pisanie świetnego oprogramowania, które zachęca użytkowników do płacenia, niż na zaprzestanie kopiowania, co po prostu zachęca ich, aby bardziej starali się nie płacić.
2
Walczysz pod górę. Niezależnie od tego, jaki jest twój schemat szyfrowania / hasła, organizacje crackerów widziały go i wiedzą, jak je złamać. Mają wieloletnie doświadczenie i znacznie lepszych programistów niż ty. Przepraszam.
Evan Plaice,
7

Czy DRM działa? Nie. Czy konfigurowanie złych rzeczy BitTorrent / EDonkey2000 działa? Nie. Czy ktoś obchodzi piractwo twojej małej aplikacji? Nie. Nikt nigdy o tym nie słyszał.

Warren P.
źródło
„Nikt nigdy o tym nie słyszał”. To dobra uwaga ...
Jeśli ktoś chce go pirować, warto go chronić.
1
@ Ben313: lepszym wyrażeniem byłoby „Jeśli ktoś chce go kupić, warto go chronić”.
1
O ile nie napisałeś czegoś lepszego niż AutoCad, MS Word itp., Twoje oprogramowanie jest jeszcze mniej warte ochrony niż inni ludzie (Microsoft, AutoDesk), którzy mają dla nich 100 inteligentniejszych ludzi, niż ty (jeden programista) i nadal oni nie zbudowali DRM, który działa.
Warren P,
4

bittorent i większość innych dobrych programów p2p chroni się przed tego rodzaju manipulacjami za pomocą skrótów plików, np. md5.

cody
źródło
1
Algorytm haszujący to SHA-1, według Wikipedii: en.wikipedia.org/wiki/... - nieco bezpieczniejszy niż MD5
Piskvor opuścił budynek
2

To temat, który interesuje wszystkich. Jak mogę chronić swoje oprogramowanie przed kradzieżą, hakowaniem, inżynierią wsteczną?

Jedynym sposobem (mogę to wymyślić) jest całkowite uruchomienie oprogramowania na serwerze i brak przydatnego kodu w aplikacji klienckiej - ponieważ jeśli nie możesz go zdobyć, nie możesz (łatwo) złamać go. W ten sposób będziesz mieć kontrolę nad kontami i będziesz wiedział, kto korzysta z Twojej aplikacji. Użytkownicy nie będą jednak zadowoleni. A jeśli uruchomisz tylko kod związany z ochroną przed kopiowaniem na swoim serwerze, ktoś zhakuje go, pisząc emulator serwera LUB zidentyfikuje kod i całkowicie obejdzie ochronę. Tak się stało z nowym systemem ochrony przed kopiowaniem Ubisoft.

Przechowywanie oprogramowania na serwerze nie jest całkowicie kuloodporne. Zamiast łamać oprogramowanie, ktoś zacznie atakować twój serwer, aby się włamać i zdobyć oprogramowanie. I zawsze są dziury w zabezpieczeniach „inżynierii społecznej”. „zachowaj wszystko na serwerze” będzie działało najlepiej, jeśli twoje oprogramowanie nie może być uruchomione na normalnym komputerze (tj. wymaga superkomputera lub klastra komputerowego). Dobrym tego przykładem jest EVE Online - w przeciwieństwie do WOW i Lineage, nie znam emulatorów serwerów, ponieważ do uruchomienia serwera wymaga klastra komputerowego.

Moje własne oprogramowanie torrentowe musi wtedy wysyłać nieprawidłowe dane (bajty). Oczywiście musi zaszczepić krytyczne bajty.

  1. Jeśli spróbujesz „przejąć” istniejący torrent, każdy rozsądny klient zgłosi błędy CRC i zignoruje twojego klienta. Wszystkie programy p2p używają skrótów.
  2. Jeśli prześlesz „zły” torrent, inny użytkownik zgłosi twój torrent jako fałszywy, więc nikt go nie pobierze.

złodziej

„Pirat”, ponieważ nazywa się to naruszeniem praw autorskich.

SigTerm
źródło