RTV forum PL | NewsGroups PL

Bootloader AVR: Zdalne wgrywanie firmware z karty MMC i zabezpieczenie danych

bootloader AVR nieco inaczej.

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Bootloader AVR: Zdalne wgrywanie firmware z karty MMC i zabezpieczenie danych

Sebastian Bialy
Guest

Sat Oct 16, 2004 3:54 pm   



Witam!

Dłubie pewne urządzenie, którego głównym zadaniem będzie sterowanie
pewnym procesem. Niestety bieganie z komputerem za każdym razem, gdy
trzeba zmienić program jest dla mnie kłopotliwe (śjakieś 1000km Wink stąd
zaczynam zastanawiać się nad następującą sprawą:

Tworze bardzo prosty soft, którego zadaniem jest komunikacja z kartą MMC
na której znajdą się dane pomiarowe zbierane przez urządzneie, ale
również kod programu (firmware) do wykonania przez procka. Po połączeniu
"bootloader" zrzuca zawartośc MMC do węwnetrznego Flash'a i rozpoczyna
wykonywanie kodu.

I mam pytanie: jako, że z bootloaderem nie miałem do tej pory do
czynienia chciałbym zapytać czy to w ogóle jest wykonalne (czytam
dokumentacje do ATmega* i wydaje mi się że tak ...) w tej formie jaką
podałem. W szczególności czy bootloader ma nieograniczony dostęp do
pamięci Flash.

Ponadto jest jeszcze jedna sprawa ... być może chciałbym zaszyfrować
firmware jakimś szyfrem jednostronnym. Po zrzuceniu danych do Flasha i
ich rozkodowaniu ktoś mógłby wyjśc procka z podstawiki i zczytać
rozkodowany kod. Pytanie zatem, czy bootloader może sam sobie przepalić
fuse na odczyt kodu ? Z tego co widze są dwa bezpieczniki do bootloadera
i reszty ...

Na razie jestem na etapie rozmyślania, czy w ogóle ma to sens, ale
wydaje mi się to jednynym sensownym rozwiązaniem na taką odległość.

--
Sebastian Bialy - heby@poczta.onet.pl

Paweł K
Guest

Sat Oct 16, 2004 8:18 pm   



Quote:
Dłubie pewne urządzenie, którego głównym zadaniem będzie sterowanie
pewnym procesem. Niestety bieganie z komputerem za każdym razem, gdy
trzeba zmienić program jest dla mnie kłopotliwe (śjakieś 1000km Wink stąd
zaczynam zastanawiać się nad następującą sprawą:
Po co sie meczyc, z atmegi mozna wydlubac bez problemu zawartosc

znam 2 osoby w polsce ktore to potrafia Smile)

Quote:
[ciach] Po połączeniu
"bootloader" zrzuca zawartośc MMC do węwnetrznego Flash'a i rozpoczyna
wykonywanie kodu.
sprytne ...


Quote:
[ciach] W szczególności czy bootloader ma nieograniczony dostęp do
pamięci Flash.
Bootloader znajduje sie na koncu flasha poczytaj w dokumentacji

bo wielkosc zajmowanej pamieci bootloadera jest zalezna od fusebitow.

Quote:
Ponadto jest jeszcze jedna sprawa ... być może chciałbym zaszyfrować
firmware jakimś szyfrem jednostronnym. Po zrzuceniu danych do Flasha i
ich rozkodowaniu ktoś mógłby wyjśc procka z podstawiki i zczytać
rozkodowany kod. Pytanie zatem, czy bootloader może sam sobie przepalić
fuse na odczyt kodu ? Z tego co widze są dwa bezpieczniki do bootloadera
i reszty ...
zobacz tu http://www.microsyl.com zrodla bootloader ktory mam mozliwosc

zabezpieczenia. Skoro bootloader ma zczytac nowy firmware (zaszyfrowany) z
MMC to znaczy ze nie moze byc jednostronnie szyfrowalny :(

Quote:
Na razie jestem na etapie rozmyślania, czy w ogóle ma to sens, ale
wydaje mi się to jednynym sensownym rozwiązaniem na taką odległość.
czy to cos posiada karte sieciowa? jezeli tak to jest jakis loader oparty na

tcp/ip, txn mozna ladowac firmware z sieci.

--
--
Best regards
K@pW from Poland

kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------

Sebastian Bialy
Guest

Sat Oct 16, 2004 9:00 pm   



Paweł K wrote:
Quote:
Po co sie meczyc, z atmegi mozna wydlubac bez problemu zawartosc
znam 2 osoby w polsce ktore to potrafia Smile)

Sad Ale przynajmniej amatorów jakoś zablokuje. Swoją drogą robią to
jakimiś metodami typu rozpuszczanie plastiku czy kombinacja z zasilaniem
? A może jakoś inaczej Wink ?

Quote:
[ciach] Po połączeniu
"bootloader" zrzuca zawartośc MMC do węwnetrznego Flash'a i rozpoczyna
wykonywanie kodu.
sprytne ...

No ba ;)

Quote:
[ciach] W szczególności czy bootloader ma nieograniczony dostęp do
pamięci Flash.
Bootloader znajduje sie na koncu flasha poczytaj w dokumentacji
bo wielkosc zajmowanej pamieci bootloadera jest zalezna od fusebitow.

Wiem, ale dokumentacja jest słaba w tym miejscu, i nie jestem na 100%
pewny, czy mam dostęp do całego flasza włacznie z wektorami przerwań
itd. W ogóle mam wrażenie, że ta technika bootloadera jest jakaś taka
niedorobiona do końca :/

Quote:
zobacz tu http://www.microsyl.com zrodla bootloader ktory mam mozliwosc
zabezpieczenia. Skoro bootloader ma zczytac nowy firmware (zaszyfrowany) z
MMC to znaczy ze nie moze byc jednostronnie szyfrowalny Sad

Źle się wyraziłem - chodzi o algorytm z asymetrycznym kluczem -
deszyfrować można wyłącznie na konkretnym uC. To lekkie utrudnienie,
nawet gdyby ktoś wyrwał mi program z atmegi, to będzie miał poważny
kłopot w przygotowaniu plikow do zaladowania - z racji innego klucza.
Oczywiście dla chcącego nic trudnego i można zmodyfikować binarkę, ale
tu już bym postarał się lekko utrudnić życie.

Quote:
Na razie jestem na etapie rozmyślania, czy w ogóle ma to sens, ale
wydaje mi się to jednynym sensownym rozwiązaniem na taką odległość.

czy to cos posiada karte sieciowa? jezeli tak to jest jakis loader oparty na
tcp/ip, txn mozna ladowac firmware z sieci.

Nie - żadnej łaczności - z róznych względów. Jesli miałbym sieć to w
ogóle nie było by o czym mówić na pewno bym to wybrał i pozbył się MMC.

--
Sebastian Bialy - heby@poczta.onet.pl

Paweł K
Guest

Sat Oct 16, 2004 11:06 pm   



Quote:
Wiem, ale dokumentacja jest słaba w tym miejscu, i nie jestem na 100%
pewny, czy mam dostęp do całego flasza włacznie z wektorami przerwań
itd. W ogóle mam wrażenie, że ta technika bootloadera jest jakaś taka
niedorobiona do końca :/
Moim zdaniem jest wszystko z nim OK. Sam bootloader znajduje sie na

koncu gdzie wielkosc zalezna od fusebitow. Z poziomu bootloadera
masz dostep do calego flasha.

Quote:
Źle się wyraziłem - chodzi o algorytm z asymetrycznym kluczem -
deszyfrować można wyłącznie na konkretnym uC. To lekkie utrudnienie,
nawet gdyby ktoś wyrwał mi program z atmegi, to będzie miał poważny
kłopot w przygotowaniu plikow do zaladowania - z racji innego klucza.
Oczywiście dla chcącego nic trudnego i można zmodyfikować binarkę, ale
tu już bym postarał się lekko utrudnić życie.
Jak umiesz zdeasembloac i przeanalizowac to mam przykladowego bina

z takim rozwiazaniem Smile Poszukaj dobrze w sieci kiedys przemknal mi przed
oczami takie rozwiazanie.


--

--
Best regards
K@pW from Poland

kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------

Fish
Guest

Sun Oct 17, 2004 8:44 am   



W artykule news:cksd4j$evj$1@atlantis.news.tpi.pl,
niejaki(a): Paweł K z adresu <kpw@qs.pl> napisał(a):


Quote:
Źle się wyraziłem - chodzi o algorytm z asymetrycznym kluczem -
deszyfrować można wyłącznie na konkretnym uC. To lekkie utrudnienie,
nawet gdyby ktoś wyrwał mi program z atmegi, to będzie miał poważny
kłopot w przygotowaniu plikow do zaladowania - z racji innego klucza.
Oczywiście dla chcącego nic trudnego i można zmodyfikować binarkę,
ale tu już bym postarał się lekko utrudnić życie.
Jak umiesz zdeasembloac i przeanalizowac to mam przykladowego bina
z takim rozwiazaniem Smile Poszukaj dobrze w sieci kiedys przemknal mi
przed oczami takie rozwiazanie.


Na stronie Atmela jest nota aplikacyjna AVR230 - DES Bootloader
Żeby uzyskać namiastkę asymetrycznego szyfrowania trzeba by klucz do DES-a
trzymać na karcie zaszyfrowany "niesymetrycznie".
Wtedy najpierw trzeba by odszyfrować klucz a potem wykorzystać go do
odszyfrowania samego programu.
Obawiam się tylko że tak skomplikowane operacje nie zmieszczą sie w obszar
przeznaczony dla bootloadera.

--
Janusz

Dariusz Zolna
Guest

Sun Oct 17, 2004 6:40 pm   



Użytkownik "Sebastian Bialy" <heby@poczta.onet.pl> napisał:
Quote:
I mam pytanie: jako, że z bootloaderem nie miałem do tej pory do
czynienia chciałbym zapytać czy to w ogóle jest wykonalne

Tak, robiłem coś takiego, przeciez niewielka różnica czy kod bootloadera
odczyta program z portu szeregowego, z karty, przez USB czy z internetu.

Darek Żołna

Dariusz Zolna
Guest

Sun Oct 17, 2004 6:42 pm   



Użytkownik "Fish" <n.o.s.p.a.m.abuse@onet.pl> napisał:
Quote:
Obawiam się tylko że tak skomplikowane operacje nie zmieszczą sie w obszar
przeznaczony dla bootloadera.


Dokładnie tak. Nawet z samym odczytem kodu z MMC mogą być problemy.

Darek Żołna

Wojtek Kaniewski
Guest

Mon Oct 18, 2004 8:33 am   



Dariusz Zolna wrote:
Quote:
Dokładnie tak. Nawet z samym odczytem kodu z MMC mogą być problemy.

w miarę uniwersalne funkcje odczytu karty MMC przy użyciu sprzętowego
portu SPI zajmują mi 324 bajty. po optymalizacji na pewno da się zejść
poniżej 300. reszta to już tylko kwestia tego, ile chcemy przeznaczyć na
aplikację.

w.

Dariusz Zolna
Guest

Mon Oct 18, 2004 9:28 am   



Użytkownik "Wojtek Kaniewski" <wojtekka@SPAM.SPAM.SPAM> napisał:
Quote:
w miarę uniwersalne funkcje odczytu karty MMC przy użyciu sprzętowego
portu SPI zajmują mi 324 bajty. po optymalizacji na pewno da się zejść
poniżej 300.

Dodaj do tego kod obsługi FAT i samego programowania flash'a i już nie
będzie tak różowo.

Darek Żołna

Wojtek Kaniewski
Guest

Mon Oct 18, 2004 10:25 am   



Dariusz Zolna wrote:
Quote:
w miarę uniwersalne funkcje odczytu karty MMC przy użyciu sprzętowego
portu SPI zajmują mi 324 bajty. po optymalizacji na pewno da się zejść
poniżej 300.

Dodaj do tego kod obsługi FAT i samego programowania flash'a i już nie
będzie tak różowo.

ale w czym problem? masz do dyspozycji maksymalnie 2kB na bootloader.
programowa obsługa SPI, MMC, FAT, paru klawiszy i zewnętrznego dekodera
MP3 zajęła mi 1,7kB. poza tym, jeśli sam wrzucasz firmware na kartę,
równie dobrze możesz umieścić go w określonych blokach pamięci i obsługa
FAT nie będzie konieczna. programowanie to góra kilkaset bajtów. na oko
wychodzi, że zmieściłyby się co najmniej 2 bootloadery.

w.

Dariusz Zolna
Guest

Mon Oct 18, 2004 10:29 am   



Użytkownik "Wojtek Kaniewski" <wojtekka@SPAM.SPAM.SPAM> napisał:
Quote:
ale w czym problem? masz do dyspozycji maksymalnie 2kB na bootloader.

To akurat zależy od procka.

Darek Żołna

Wojtek Kaniewski
Guest

Mon Oct 18, 2004 11:12 am   



Dariusz Zolna wrote:
Quote:
ale w czym problem? masz do dyspozycji maksymalnie 2kB na bootloader.

To akurat zależy od procka.

2kB to maksymalna przestrzeń w najmniejszym ATmega8. wszystko co się w
tym zmieści, można zastosować w dowolnym ATmega.

w.

elektroda NewsGroups Forum Index - Elektronika Polska - Bootloader AVR: Zdalne wgrywanie firmware z karty MMC i zabezpieczenie danych

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map