Firmware - jak zabezpieczyc sie przed kopiowaniem.

Feb 07, 2007 25 Replies

Witam


Piszê oprogramowanie na uC i projektujê PLD. Generalnie wykazuje



ograniczony poziom zaufania do klientów, choæ tego dla którego



wykonuje zlecenie akurat znam i to w sensie pozytywnym - co nie zmienia



mojego podej¶cia.


Sytuacja wygl±da tak, czê¶æ moich zysków, bêdzie to prowizja za sprzeda¿



i w zwi±zku z tym chcê zachowaæ kontrolê nad Tym ile sztuk urz±dzenia zosta³o



wyprodukowanych. Z pewnych wzglêdów sam nie bêdê móg³ wrzucaæ oprogramowania



do uC + pliku konfiguracyjnego do PLD - problemem bêdzie dziel±ca odleg³o¶æ.



Oczywi¶cie s± przesy³ki itd. Ale to raczej nie wchodzi w grê, ze wzglêdu na wynikaj±ce



opó¼nienia itd. W zwi±zku z powy¿szym, zbiory wynikowe udostêpniê klientowi.


Szukam sposobu zabezpieczenia mojego projektu przed niekontrolowan±



produkcj±. Jednym z rozwi±zañ jest ko¶æ "serial number", wtedy wymagany



bêdzie plik dedykowany pod konkretn± sztukê. Oczywi¶cie jest to jakie¶ rozwi±zanie,



ale do chyba stosunkowo ³atwego obej¶cia.


Mo¿na pewnie to za³atwiæ przez Bootloadera, programuj±c BL ko¶ci i pozostawienie



ich klientowi , a nastêpnie dosy³anie w miarê potrzeb kolejne pliki dedykowane pod



ko¶æ z BL z zaszytym kluczem. Problem tylko w tym ¿e uC bêdzie w obudowie



TQFP i zaprogramowanie go po za systemem, bêdzie raczej trudne.


Mo¿e z w³asnych do¶wiadczeñ mo¿ecie podsun±æ jakie¶ rozwi±zania



pozwalaj±ce w miarê skutecznie siê zabezpieczyæ w takiej sytuacji?



Pozdrawiam Darek



Powitanko,

Gosc po wlaczeniu ma unikalny kod. Musi go wpisac na Twojej stronie www i dostaje klucz odblokowujacy urzadzonko. Ow unikalny kod moglby byc generowany np. na podstawie czasu od wlaczenia do nacisniecia jakiegos przycisku, dzieki czemu bylby unikalny przy takim samym pliku wsadowym.

Pozdroofka, Pawel Chorzempa

Jest to jakis pomysl. Ale skoro gosc ma firmware w postaci pliku binarnego, mikrokontrolerki nie sa jakies strasznie wypasne, to zhackowanie i wywalenie koniecznosci aktywaci to robota na jeden wieczor, moze mniej. IMHO wylacznie preprogramowane kosci daja jakotakie zabezpieczenie.

U¿ytkownik "news.onet.pl" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:eqcc1b$kf9$ snipped-for-privacy@news.onet.pl...

rozwi±zanie, ale do chyba stosunkowo ³atwego obej¶cia.

hint: "stosunkowo"

Je¶li sprzedaje siê tego Bóg wie ile i za jakie pieni±dze, wtedy zawsze siê znajdzie jakie¶ rozwi±zanie, ³±cznie z napisaniem programu od nowa. Je¶li nie - chip dallasa wystarczy :) Zreszt± sam mo¿esz najlepiej oceniæ ten stosunek.

pozdrawiam entrop3r

T.M.F. napisał(a):

A może bootloader z wszytym kluczem zabezpieczającym. Przy programowaniu procesor dekoduje w locie zawartość przesyłaną przez klienta.

U¿ytkownik "news.onet.pl" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:eqcc1b$kf9$ snipped-for-privacy@news.onet.pl...

He he Jeden chce wykolegowac drugiego, tak po przyjacielsku, po polsku ? Bill Gates próbuje to robiæ na ca³ym ¶wiecie i jako tako mu wychodzi ? Na ka¿de zabezpieczenie znajdzie siê rada. Nawet jak Ciebie nie bêdzie jako dostawcy podzespo³u, bêdzie tam jaki¶ fachowiec, m³odszy kolega. On sobie poradzi z twoim zabezpieczeniem. Ty sobie te¿ radzi³e¶ :-) Ile sprzedano ? Najlepiej zaprzyja¼nij siê finansowo z jakim¶ majstrem, to ci chlapnie czy nadal to produkuj± i ile. Za rok mo¿esz te¿ zapytaæ przez kolegê o referencje, w podtek¶cie ile sztuk ju¿ sprzedano. Jakiej w ogóle spodziewali¶cie siê sprzeda¿y ? Tysi±ce , miliony, miliardy sztuk ? Mo¿e siê okazaæ, ¿e bêdzie klapa i towar nie sprzeda siê w ¿adnej znacz±cej ilo¶ci. Mo¿e zmieni mu siê opakowanie i nazwê ? Do takich dzia³añ potrzebna jest wzajemna uczciwo¶æ. Procent od sprzeda¿y to g³upi uk³ad, gdy towar drobny i nie ma siê wgl±du w dane finansowe. Nawet jak ci siê bêdzie wydawaæ, ¿e zosta³e¶ oszukany jak zamierzasz dochodziæ swoich praw ? Za ile i jak bardzo upierdliwie ? Przy du¿ej warto¶ci og³asza siê upad³o¶æ dzia³u, wywala koz³a ofiarnego, tylko stracisz na prawników.

no to jest najlepsze rozwi±zanie o którym zreszt± pisa³em w g³ównym po¶cie, jednak ma ten minus, ¿e bootloadera musia³ bym wrzuciæ do ko¶ci która nie jest przylutowana, a to ju¿ problem, obudowa TQFP64.

Pozdrawiam Darek

nikt nikogo nie chce wykolegowac i to nie ma nic wspolnego z Polska! A w Niemczech jeste¶ gotów zostawiæ otwarty samochod? To ¿e go zostawisz otwartego nie znaczy ¿e zginie, powiem wiêcej, niewielkie jest prawdopodobienstwo ze zginie, ale nie jest to rozs±dne....

no tak, id±c dalej, to nie maja sensu zadne zabezpieczenia?...

a co mi to da, jak strace tygodnie pracy i nic z tego nie bede mial, procz wiedzy ze mnie zrobiono w balona ...

nie wiem skad te skrajnosc :-).

to wykluczone, nie chce sie na ten temat rozpisywac i podawac powodow, poniewaz nie o to pytam, nie o taka analize mi chodzi

wiesz, ja "Utopie" czyta³em, fajna bajka... Nie mam powodu twierdz, ze moj zleceniodawca jest nieuczciwy! ale eksperymentowac i go sprawdzac nie mam zamiaru.

Pozdrawiam Darek

U¿ytkownik "Anna" snipped-for-privacy@buziaczek.pl napisa³ w wiadomo¶ci news:eqd5sj$dgd$ snipped-for-privacy@atlantis.news.tpi.pl...

Wystarczy zatem podpisana umowa. Ksiêgowo¶æ automatycznie przeleje Ci pieni±dze -komputer sam to zrobi.. Nie op³aca siê Niemcowi wpa¶æ. Chyba ,ze to polski czy enerdowski niemiec. Czy to urz±dzenie ma ³±czno¶æ z Internetem ? Je¶li tak, identyfikatory z dallasów , czy produkowane pseudolosowo i zapisane w EEPROMIE przy pierwszym w³±czeniu zasilania mog± siê wysy³aæ "choæ raz w ¿yciu" na Twój e-mail - zliczysz sobie ro¿ne kody. Je¶li nie ma komunikacji ze ¶wiatem zewnêtrznym, TY nie jeste¶ dostawc± jakichkolwiek podzespo³ów, to ja nie wyobra¿am sobie ¿adnego skutecznego innego ni¿ audyt zabezpieczenia.

"news.onet.pl" napisal:

Rozwiązanie z zewnętrzna kością serial pewnie dałoby się ominąć przy pomocy prostego "emulatora" - pytanie tylko czy byłoby to opłacalne. Niedawno widziałem chipy PLD (prod. zdaje się Actel) z wbudowanym dekoderem AES. Programuje się je przy pomocy zaszyfrowanego zbioru wynikowego - klucz ustala się podczas wstępnego programowania - dzięki temu nawet mając plik wynikowy nie jesteś w stanie poprawnie zaprogramować "obcego" chipa - nie eliminuje to jednak konieczności wstępnego zaprogramowanie wszystkich kostek. GRG

Anna napisał(a):

Obudowa to zaden problem, do tego masz podstawki testowe, programowanie to chwilka. Problemem jest to, ze majac kod binarny mozna prosto kazde zabezpieczenie z niego wywalic. I jak bys nie kombinowal to da sie to ominac, jedynie preprogramowane chipy mialyby sens, bo ominiecie tego chyba byloby nieoplacalne ekonomicznie.

Thu, 08 Feb 2007 11:10:54 +0100 jednostka biologiczna o nazwie Tomasz Sliwa snipped-for-privacy@TOprz-rzeszow.pl wyslala do portu 119 jednego z serwerow news nastepujace dane:

To może być też do obejścia, ktoś weźmie analizator cyfrowy, posiedzi i rozgryzie protokół...

Witam > jakieś rozwiązania

Tak sobie gdybam...

A moze jakis "typowany" pod urzadzenie programator z wlasnym softem, ktory bedzie liczyl ilosc zaprogramowanych urzadzen. Taki programator moglby wpalac glowny program do urzadzenia i jednoczesnie odblokowywac, np. poprzez wpis w jakiejs dodatkowej pamieci albo "przepalenie" jakiegos zabezpiecznia, np. konkretnym napieciem.

Pozdrawiam Tomasz Sliwa

Thu, 08 Feb 2007 11:53:46 +0100 jednostka biologiczna o nazwie Tomasz Sliwa snipped-for-privacy@TOprz-rzeszow.pl wyslala do portu 119 jednego z serwerow news nastepujace dane:

Tak - klient wgrywa tylko loader, podłącza do urządzenia antenę, urządzenie zgłasza przez radio żądanie pobrania programu a my wysyłamy. Oczywiście w obie strony używamy DSSS ;-)

To zakodowac sygnal cyfrowy poprzez modulacje analogowa ;).

Chodzi mi bardziej o "rozliczanie" klienta. Urzadzenie projektujemy tak, zby wspolpracowalo z naszym programatorem, dajemy klientowi binarke i sprzedajemy za pare groszy lub dajemy programator z odpowiedniem softem na PC. Programator pamieta, ile urzadzen zaprogramowal. Po roku klient "uczciwie" mowi, ze zaprogramowal 1000 urzadzen. Przyjezdzamy z faktura, podlaczamy sie z innym softem do programatora, a programator mowi nam, ze zaprogramowal 3500 urzadzen i juz mamy poglad na uczciwosc klienta.

Pozdrawiam Tomasz Sliwa

I jeszcze inne pomysly z zastosowaniem programatora:

  1. Nasze binarne Firmware mozna latwo zaszyfrowac i zahardkodowac w Software do programatora. Dodatkowo mozna jeszcze jakies kroki odszyfrowania zostawic programatorowi. Wowczas zmuszamy klienta do zastosowania naszego softu z naszym programatorem.
  2. Binarke szyfrujemy sobie znanym szyfrem ktory potrafi odszyfrowac tylko nasz Software do programatora.

Pozdrawiam Tomasz Sliwa

:-) mozna i tak. Prosciej: W programatorze umieszczamy wejscie internetowe i konfigurujemy go tak, zeby wspolpracowal z jakims naszym serwerkiem. Klient, zeby zaprogramowac urzadzenie, podlacza programator do sieci, wchodzi na nasza strone, naciska opowiedni przycisk i urzadzenie mu sie programuje "online" z sieci. Mozna wtedy klientowi zrobic ladny licznik zaprogramowanych urzadzen na naszej stronie www w stylu: Gratulujemy zaprogramowania urzdzenia nr 1292. Dziekujemy za wspolprace. :-) Pozdrawiam Tomasz Sliwa

...

Z pomysłów "nieelektronicznych": może napisać umowę z % od ilości sprzedanych sztuk. Kontrola prawidłowości na podstawie prawa wglądu (a nie kopiowania) do faktur. Wystarczy sprawdzić wyrywkowo wybrane miesiące.

Z pomysłów elektronicznych,

  1. dostarczyć programator z "licencją" na określoną ilość programowań - do obejścia.
  2. współuczesniczysz w produkcji na etapie programowania układu.

Generalnie umawianie się na % jako podstawą wynagrodzenia ma więcej wad niż zalet i dawno już od tego odszedłem. K.

Te metody maj± jedn± s³abo¶æ: Do kontrolera dane musz± i¶æ jawne, wiêc o ile mo¿na dostaæ siê fizyczne pomiêdzy programator a programowany uk³ad to u¿ytkownik mo¿e pods³uchaæ transmisjê miêdzy programatorem a programowanym uk³adem i w ten sposób uzyska jawn± zawarto¶æ pliku programuj±cego. Potem wystarczy programowaæ uk³adu innym standardowym programatorem.

Witam

Je¶li produkt bêdzie produkowany na du¿± skalê nawet nie my¶l o programowaniu poza systemem.

Kilka lat temu robi³em projekt który zosta³ wprowadzony na rynek w ilo¶ci oko³o 20000 sztuk. Moim zabezpieczeniem by³a podpisana umowa z klientem ( znana firma gie³dowa ) z okre¶leniem wysoko¶ci tantiem. Fakt ¿e ka¿dy egzemplarz urz±dzenia posiada unikalny numer umo¿liwiaj±cy kontrolê, ale mój kontrahent zachowuje siê uczciwie, i nie mam potrzeby weryfikacji informacji o wysoko¶ci sprzeda¿y.

Pamiêtaj tak¿e o prawie Murphy'ego " ..urz±dzenie zabezpieczaj±ce niszczy urz±dzenie zabezpieczane...".

Pamiêtaj ¿e koszty serwisowania oprogramowania du¿ej populacji produktu mog± skonsumowaæ ca³y zysk a nawet jeszcze wiêcej. Mo¿e pamiêtacie drakê zwi±zan± z drukarka fiskaln± i rokiem 2000?

Co innego je¶li chodzi o produkcjê kilkudziesiêciu sztuk. Przecie¿ nikt o zdrowych zmys³ach nie bêdzie dzisiaj montowa³ kilku sztuk p³yt, wiêc mo¿esz ko¿dy egzemplarz przygotowaæ osobi¶cie.

To trochê inne spojrzenie ale mo¿e siê przydaæ:-)

RomanF

U¿ytkownik "news.onet.pl" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:eqcc1b$kf9$ snipped-for-privacy@news.onet.pl...

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required