Problemy z ochroną przed kopiowaniem, ochroną intelektualną i wdrażaniem

10

Po pewnym czasie z Raspberry Pi 2 Model B v1.1. Mam następujące obawy?

  1. Wiem, że koncentruje się na ulepszaniu wrażliwych sektorów edukacyjnych, ale można sprzedawać produkt oparty na RPi ?. Zarabiać na tym? Zostań zillionaire'em ?.
  2. Jak powinienem chronić rozwój, powiedzmy, nie chcę, aby ktoś wziął moją kartę SD RPi, powielił ją i miał własne repliki ? Moja obecna alternatywa to wypełnienie portu SDCard superglue :). Innym wyborem może być wysłanie przez RPi polecenia ping do serwera licencji online, co oczywiście wymagałoby połączenia WiFi . Lub sprzętowy identyfikator HASH (chyba powinna być lepsza odpowiedź ...)
  3. Sprawdziłem, że istnieją również mechanizmy przywracania instalacji, nawet jeśli nie masz roota, poprzez zamontowanie karty SD. Ponownie moim najlepszym rozwiązaniem jest podejście superglue ...

Z góry dziękuję.

Brethlosze
źródło
2
To jest ogólne pytanie dotyczące systemu Linux. Jest to złożony problem zarówno pod względem technicznym, jak i prawnym.
Craig,
2
Witaj na RaspberryPi.SE! To zbyt wiele pytań w jednym. Niektóre kwestie są również bardzo ogólne i nie dotyczą konkretnie Pi. Należy wziąć pod uwagę, że przy danym czasie i wysiłku można obejść wszystkie systemy ochrony przed kopiowaniem. Zwłaszcza jeśli Twój system jest wdrożony i nie masz możliwości powstrzymania „złego faceta” od użycia wszystkich dostępnych narzędzi do złamania ochrony.
Ghanima
@craig: Czy istnieje społeczność Embedded Linux?
Brethlosze,
WRT # 2: Nie możesz technicznie zapobiec piractwu na żadnej platformie, wszystko co możesz zrobić, to walczyć z nim legalnie . Myślę, że masz wózek przed koniem tutaj. Do czasu, gdy będzie to projekt oprogramowania opartego na pi, zauważysz, że nie ma projektu opartego na pi, który byłby naprawdę związany z pi. To tylko urządzenie ogólnego przeznaczenia, a społeczność jest zorientowana na rozwój.
Złotowłosa
2
To nie jest „ich platforma”, jeśli chodzi o tworzenie aplikacji, i wiedzą o tym i nie obchodzi ich to. To nie jest „ich cel”. To Broadcom SoC implementujący architekturę ARM. Nic nie ma wspólnego z pi, którego nie można by w prosty sposób przenieść na wiele innych urządzeń. Więc jeszcze raz: masz wózek przed koniem . Zanim dojdziesz do punktu, w którym twoja troska o własność intelektualną ma jakiekolwiek znaczenie lub znaczenie, zrozumiesz, co próbuję ci powiedzieć ...
goldilocks

Odpowiedzi:

6

Jeśli naprawdę zależy Ci na ochronie swojej własności intelektualnej, możesz połączyć aplikację opartą na Rapberry Pi z jakimś zewnętrznym niestandardowym mikrokontrolerem (MCU, takim jak AVR, PIC, 8051 ...) klucz sprzętowy (podłączony do Pi przez USB, RXTX, I2C, SPI, 1wire ...). Na przykład aplikacja po stronie Pi generuje losową liczbę, która jest wysyłana do MCU, dekodowana i wysyłana z powrotem jako klucz odblokowujący w celu odszyfrowania czegoś ważnego. Następnie dodatkowo masz ważną funkcję wykonaną bezpośrednio w MCU (po prostu przekazujesz parametry i otrzymujesz wynik z MCU). Możesz sobie wyobrazić, w jaki sposób zwiększyłoby to trudność hakera o rząd wielkości, ponieważ jego wiedza musiałaby być znacznie szersza niż zwykle. Nie ma idealnej ochrony, ale jeśli naprawdę chcesz uczynić to wyzwaniem, może to być dobry sposób.

avra
źródło
1
To naprawdę fajne rozwiązanie .... Spróbuję tego
pomysłu
1
Niestety rozwiązanie klucza sprzętowego jest takie samo jak klucz programowy - wystarczy usunąć niepoprawną część kodu, wpisać poprawną odpowiedź itp. Tak więc te same umiejętności będą działać przeciwko kluczowi sprzętowemu.
tomnexus
2
Nie, jeśli umieścisz ważną funkcję w kluczu sprzętowym i sprawisz, że wynik będzie krytyczny dla funkcjonalności aplikacji Pi. Ponieważ funkcja istnieje tylko w mikrokontrolerze, nie ma nic do usunięcia po stronie Pi. Nie jest to niemożliwe do złamania, ale wiele, wiele razy trudniejsze, ponieważ wymaga znacznie wyższych umiejętności niż zwykłe łamanie kodu.
avra
1
Podczas gdy te zewnętrzne obwody rzeczywiście zapewniają ochronę, te rzeczy kosztują dużo pieniędzy: badania, prototypowanie, produkcja, testowanie, wdrażanie, utrzymanie. Co jeśli coś stanie się wzdłuż linii? Co jeśli Raspberry zmieni swoje interfejsy w przyszłych modelach? Jeśli jest to krótki okres życia lub projekt hobby, wybierz go. Jeśli jest to produkt przemysłowy / komercyjny, być może OEM jest bezpieczniejszym wyborem.
EDP
5
  1. Myślę, że taki był pomysł z modułem obliczeniowym przez cały czas. Zysk nie powinien być problemem.

  2. / 4. Opcja superglue jest prawdopodobnie dobrym kompromisem. Ostatecznie nie możesz pokonać atakującego z fizycznym dostępem do urządzenia. Rzuć okiem na konsole do gier, które prawdopodobnie zainwestowały miliony w infrastrukturę DRM i wszystkie one ostatecznie upadają. W innym duchu możesz również przyjąć otwartość i sprzedać wersję programistyczną swojego produktu oraz dołączyć jakiś zestaw SDK. Informacje zwrotne od technicznej grupy użytkowników mogą być cenne i działać w twoim interesie.

użytkownik1217949
źródło
Opcja superglue jest prawdopodobnie całkowicie szalona, ​​ale robisz tutaj kilka innych dobrych punktów. ; |
złotowłosa
Właściwie myślałem o jakimś identyfikatorze sprzętowym z Raspberri Pi, aby każde oprogramowanie RPi mogło zostać zaprogramowane dla każdej karty RPi, a zatem, jeśli sklonuję oprogramowanie, system nie będzie działał. Stare uProcesory zostały po prostu zaprogramowane na pokładzie, więc nie można go odłączyć :).
Brethlosze,
1
Nawet jeśli posiadasz identyfikator sprzętu, każdy z fizycznym dostępem może go odczytać. Procesory, które są programowane na pokładzie, oczywiście zapewniają również interfejsy debugowania, dzięki czemu można je odczytać. W bardziej wyrafinowanych systemach SOC prawdopodobnie zajmie się tylko wykonaniem podpisanego kodu. Nie zdziwiłbym się, gdyby chip Broadcom miał jakąś funkcjonalność w tym kierunku, ale nie masz na to dokumentacji. Jeśli chcesz sprzedać miliony na jednostkach, mogą z tobą o tym porozmawiać;)
użytkownik1217949
LOL .. nie, chyba sprzedam naprawdę niewielką ich ilość! Więc jeśli mam kod działający pod Raspbian, ktoś inny może wziąć kartę SD i ją odczytać? debugować? Rozwal to?. Jestem całkowicie pewien, że odpowiedź brzmi oczywiście tak. Czy najlepszym wyborem będzie Hardware Keyzasugerowanie przez firmę avra i zakopanie karty SD z SuperGlue w złączu?
Brethlosze,
4

Chociaż ta praktyka zdecydowanie traci zasięg, zaskoczyłaby Cię ilość złączy USB przyklejonych do komputerów stacjonarnych w korporacyjnych środowiskach biurowych. Mówię tu o dużych międzynarodowych korporacjach.

Ale teraz na temat ...

W przypadku projektów komercyjnych, w których ochrona IP jest głównym czynnikiem, Pi jest najlepszy w przypadku wczesnego prototypowania / weryfikacji koncepcji. Nawet jeśli ochrona nie byłaby problemem, wdrożenia Pi na większą skalę nie są najlepszym rozwiązaniem IMHO - z wielu powodów opisałem we wcześniejszym wątku na tym forum.

Nie ma systemu bezpiecznego przed inżynierią wsteczną / hakowaniem / odtwarzaniem. Każdy system można wykorzystać. Każdy system ma jednak wynik penetracji. Dzięki otwartemu podejściu i zewnętrznej karcie SD Pi ma bardzo niski poziom. Specjalnie zaprojektowana, zatwierdzona przez wojsko płyta sprzętowa z niestandardowym układem SoC, komponentami sandwiczowymi i wielowarstwową płytką drukowaną w połączeniu z niestandardowym programem ładującym, szyfrowanie sprzętowe będzie miało wyższy wynik.

Do tego dochodzi czynnik wdrażania. Im szerszy jest rynek, tym bardziej interesujące będzie dla ludzi włamanie się i kradzież twojej technologii.

Jeśli sprzęt jest twoim oporem w całej konfiguracji, a ochrona twojej technologii jest głównym czynnikiem, nie sądzę, że Pi jest produktem dla ciebie. Jeśli twój sprzęt ułatwia sprzedaż usług, być może technologia ochrony powinna odbywać się po stronie serwera, a nie po stronie klienta.

Używamy Pi do sprzedaży takich usług. Nasze oprogramowanie na Pi ma wyższy poziom ochrony, używamy skompilowanej aplikacji C, zablokowanej na MAC i / lub numerze seryjnym procesora. Ale w końcu bez strony naszego serwera nawet kod źródłowy jest praktycznie bezużyteczny.

EDP
źródło
3

Możesz użyć piggy-back wewnątrz maliny z kluczem szyfrującym. Na rynku jest kilka urządzeń komercyjnych. Użyłem tego oprogramowania Serial Protection dla Raspberry Pi , które działa bardzo dobrze.

Paulo Arede
źródło
2
Nie pomoże ci to chronić systemu przed klonowaniem - hakerzy usuną zaznaczenie klucza sprzętowego z pliku binarnego, jeśli chcą ... Klucz sprzętowy zapewni tylko pewien poziom ochrony (być może zatrzyma hobby pierwszego poziomu hakerzy).
Kozuch,
2

Zrób to jako open source

Poważnie, nie próbuj go chronić przed kopiowaniem. Zrób to jako open source. Jeśli to możliwe, pozwól innym dołączyć do twojego projektu.

Następnie nalicz opłaty za usługi. Możesz zrobić wiadra pieniędzy, jeśli zrobisz to dobrze.

Red-had robi to w ten sposób i kilka innych firm. Wszystkie mają się dobrze i rosną.

MadMike
źródło
1
Nie, to produkt, nie projekt, ani duży projekt, ani bardzo interesujący projekt programistyczny. Brzmi nieźle, ale znowu nie.
Brethlosze
1
Nie zgadzam się. Z mojego doświadczenia wynika, że ​​każdy program, który napisałem i który był aktywnie używany przez klienta, zawierałby wezwania pomocy technicznej, prośby o ulepszenia i, oczywiście, naprawę błędów. Jedynym oprogramowaniem, które nie miało żadnego z nich, było oprogramowanie, które po wysłaniu nigdy nie było używane.
MadMike,
O to chodzi, chodzi o produkt, urządzenie. w oprogramowaniu nie ma sztuki, ale sposób przetwarzania zmiennych musi być chroniony, tak jak każdy inteligentny kontroler. W tym sensie nie zamierzasz otwierać swoich źródeł na otwarte źródła, to jest wykluczone, to jest inny rodzaj pracy. Być może jesteś w firmie i jesteś wkurzony, gdy klient do ciebie dzwoni, gdy w rzeczywistości daje to więcej rozliczeń szefom i zapewnia obsługę posprzedażną, co w dłuższej perspektywie jest dobre. W każdym razie otwarte źródło jest dobre dla ludzkości, a nie dla zysku.
Brethlosze
1
Znowu jest to utopiczna dyskusja na temat obdarowywania całą swoją pracą dla ludzkiej korzyści lub obciążania wszystkich za wszystko, co robisz.
Brethlosze,
1

Kilka moich centów:

  1. Nigdy nie twórz rozwiązania dla skryptów, które można bezpośrednio odczytać.
  2. Podział funkcjonalności pod względem wielu programów / procesów i sprzętu.
  3. Dodaj trochę „funkcjonalnej” zależności sprzętowej do odczytu.
  4. Dodaj czytnik kart inteligentnych i sprzedawaj wraz ze swoim produktem kartę inteligentną „aktywującą”.
  5. Mieć serwer licencji
  6. Posiadaj licznik zużycia w EEPROM !!! I powinien istnieć sposób na „doładowanie” online .. ;-)

...

Jatin Gandhi
źródło
1

Jako podstawową ochronę znajduje się unikalny identyfikator karty SD, pod /sys/block/mmcblk0/device/którym nie jest klonowany przez typowe oprogramowanie do klonowania obrazu dysku. Ma to tę zaletę, że nie wymaga oddzielnego urządzenia do przechowywania unikalnego identyfikatora i działa całkiem dobrze jako druga warstwa ochrony po superglue. Przynajmniej zatrzyma ludzi, którzy są w stanie po prostu sklonować kartę SD.

Kolejną wskazówką dotyczącą ochrony przy użyciu identyfikatorów jest unikanie prostej kontroli, tj

if(readID() != 0xDEADBEEF) exit();

Takie proste kontrole są łatwe do wykrycia (poprzez wyszukanie znanego ID lub monitorowanie połączeń z exit()) i usunięcie. O wiele lepszym podejściem jest włączenie identyfikatora jako stałej do obliczeń. Oznacza to, że zamiast i++gdzieś w kodzie napiszesz

i = i + readID() - 0xDEADBEEF + 1;

Będzie to znacznie trudniejsze do wykrycia, ponieważ dokładny identyfikator nie pojawi się w kodzie verbatim ( 0xDEADBEEF + 1 == 0xDEADBEF0), a sprawdzenie wszystkich wywołań exit()również nie ujawni położenia kodu ochronnego. Zamiast tego kod po prostu zawiesi się w systemie z niewłaściwym identyfikatorem, a osoba atakująca będzie musiała debugować logikę aplikacji, aby zrozumieć i naprawić problem.

Dmitrij Grigoriew
źródło
0

Używając zewnętrznego komponentu, miałem na myśli, że komponent bezpieczeństwa rozwiązałby ten problem. Jeśli naprawdę uważasz, że Twój pomysł jest świetny i warty dodatkowych kosztów, sugeruję skorzystanie z profesjonalnej jednostki MCU / CPU. Podobnie jak seria Broadcom BCM58101, nie jest tak naprawdę opłacalny i nie jest przyjazny dla nowego użytkownika, ale wysoki poziom bezpieczeństwa może również chronić Twój pomysł / projekt.

Benjamin LIiiiiiiii
źródło