Rabbit desky - ukladani klice do pameti

Martin matesmk1@seznam.cz
Pátek Duben 20 00:11:56 CEST 2007


uf, dekuji Vam za vycerpavajici informace, ktere jsou pro me zajimave a budu 
se nad nimi rozmyslet. Je jasne, ze zbrani "disasemblingu" bude trpet vicero 
reseni. Me v tomhle pripade spis slo o to, aby pripadny skudce nevzal modul, 
nepreprogramoval ho svym programem a cetl tedy data v externi flash pameti.

Tak me napadlo, ze by se dala pouzit cast flash pameti primo u rabbita, ta 
xmem, nebo co tam je a ze by se prave tam dal ulozit klic, ktery sice nebude 
chranen proti tomu, ze by nekdo "precetl" obsah kralika cili jak program tak 
klic, ale bude chranit proto aby v pripade nahravani "cracku" tedy programu, 
ktery by umel cist flash se dana cast pameti vymazala.

Jde o to, ze kdyz se v jednotce pouzije modul, je tedy stejne tak snadno 
programovatelny skudcem jako vyrobcem.
Plus jako domplnkova ochrana nejaka modifikace klice pred ulozenim.

No nevim, ale dekuji Vam za tip!!

s pozdravem martin
----- Original Message ----- 
From: "dejfson" <dejfson@solnet.ch>
To: "HW-news" <hw-list@list.hw.cz>
Sent: Thursday, April 19, 2007 11:54 PM
Subject: Re: Rabbit desky - ukladani klice do pameti


Je to problem. Protoze rabbit je mikroprocessor, funguje se standardnimi
pametmi a pokud me pamet neklame, nema k dispozici interni cast pameti
ke ktere se nemate sanci dostat. Z tohoto duvodu bych spis doporucil
reseni odvozena. Tedy priklad:

pouzijeme-li attiny12 (8pinovy kram, stoji par eurocentu) jako
'sifrovaci modul', dostamene cosi, co lze pomerne efektivne pouzit na
vlastni desifrovani. tedy fungovat by to mohlo nasledovne: pri bootu
procesoru se v programove eeprom rabbitu vyskytuje pouze nezakodovany
bootloader, ktery ma za ukol desifrovat vlatni program+eeprom data a
ulozit je do ram odkud je lze spustit. kazdy attiny by obsahoval v
interni eeprom seriove cislo, ktere pouzijete napr. jako hash v aes256
sifre, ktera je pomerne jednoduse realizovatelna v assembleru
(jednoduse=zdrojaky jsou dostupne, napr. z linuxu). pri bootu rabbitu
poslete vsechna data z externi programove eeprom do attiny (napr seriovy
port, popripade cokoliv rychlejsiho) a v attiny realizujete na zaklade
jedinecneho serioveho cisla ktere je ulozeno v jeho eeprom (ktera je
samozrejme chranena fuse bits, takze ji nelze cist) aes256 decoding.
dekodovana data vraci attiny  rozkodovana zpet procesoru, ktery je ulozi
do sram na urcitou adresu. Takhle prekopirujete cely obsah eeprom do
sram a pote spustite. Vyhody jsou naprosto jasne: aes sifra je pomerne
silna a bez znalosti serioveho cisla ktere pouzivate jako hash nemate
sanci jej rozlousknout. nevyhod takoveho reseni je dost. napr:
neexistuje 100% ochrana proti okopirovani te veci. kdyz se nekdo nastve,
udela si takovy hardware ktery emuluje chovani sram a okopiruje vam
dekodovana data,  dalsi nevyhodou je zvyseni naroku na vyvoj takoveho
zarizeni (potrebujete aby 'nekdo' udelal sw do attiny a potrebujete aby
'nekdo' zkompiloval vas soft tak aby bezel od specificke adresy ktera je
samozrejme v sram), nevyhodou je take zvyseni ceny vyrobku (o attiny a
cenu za vyvoj potrebneho softu).....
nicmene tento algoritmus v 99% odradi potencionalniho zlodeje od
kopirovani. duvod je jednoduchy: da to pomerne dost prace a vyzaduje to
jiz dobre znalosti vaseho systemu. protoze on nevi co se deje ve
vlastnim attiny a jedine co vi je ze nekam posilate data a nejak je
dostavate zpet (z disassemblingu bootloaderu). slabym mistem je
samozrejme porad sram, kde se data budou kdykoliv vyskytovat v
nesifrovane forme.

pokud chcete metodu jeste vic znepruhlednit, muzete pouzit napr ds2401
jako cast vaseho hashe a spolu se seriovym cislem vygenerujete
'jakekoliv jine cislo' ktere slouzi pro dekodovani Vaseho supertajneho
kusu eeprom.



btw: rabbit neni moc vhodny pro 'chraneni' dat. vzdy musite pouzit
nejake externi reseni
cheers
d.



Martin napsal(a):

> Zdravim,
> zcela jiste se zde nekdo zabyva vyvojem aplikaci pro desky s
> procesorem rabbit. Chtel jsem se zeptat, resp poprosit o radu.
> Pouzivam RCM3700 se seriovou flash pameti, kterou vyuzivam na ukladani
> ruznych promenych a v neposledni rade i k ulozeni klice, pro sifrovani
> dat. A ted tedy dotaz: kam ukladat klic, aby se v pripade ukradeni
> jednotky, jejim  preprogramovani,ci "natazeni" obsahu pameti, nedal
> cist klic, ktery se tedy pouziva pro sifrovani prenosu. Tedy jak jej
> ochranit? Napadl me algoritmus pro ulozeni modifikovaneho klice, ale
> ten by se snad dal pak disasemblovanim programu taky nejak odvodit?
> Mozna placam blbiny, zastavte me kdyz tak, ale napada vas neco
> pouzitelneho? :)
>
> Za pripadnou spolupraci predem dekuji Martin
>
>------------------------------------------------------------------------
>
>_______________________________________________
>HW-list mailing list  -  sponsored by www.HW.cz
>Hw-list@list.hw.cz
>http://list.hw.cz/mailman/listinfo/hw-lis
>
>
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list

__________ NOD32 2205 (20070419) Information __________

This message was checked by NOD32 antivirus system.
http://www.eset.com





Další informace o konferenci Hw-list