Rabbit desky - ukladani klice do pameti

dejfson dejfson@solnet.ch
Čtvrtek Duben 19 23:54:55 CEST 2007


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
>  
>



Další informace o konferenci Hw-list