[elektro] kriptelt kommunikacio

Stolmár Tamás knight at borsodi.qualitis.hu
Sat Mar 15 18:27:38 CET 2008


>
> Adott egy mechanika meg egy zar.
> A ketto kozott digitalis busz.
> A zarat ha mozgatom a mechanika nyit/zar.
> Ezt kellene tudni atombiztosra megcsinalni.
>
> Ne lehessen megfejteni azaz szimulalni a zarat, ne lehessen menet kozben 
> belenyulni a kommunikacioba ugy hogy az eredmenye nyitas legyen pl.
Mivel kis teljesítményű prociról van szó, ezért a nagyon nagy méretű
kulcsok alkalmazása nem lehetséges - nem fér bele a ram-ba, sokáig tart 
a számolás stb.

Tehát az üzenet nem kell hogy titkos legyen
hiszen csak néhány üzenet van, a nyitás és a zárás plusz az egyéb 
szinkronizáció.

A lényeg az, hogy az üzenet authentikus legyen,
és a visszajátszhatóságot illetve a man-in-the-middle
jellegű támadásokat akarod kijátszani.

Erre ez az egyszerű megoldás:

- Aláírás az, ha az üzeneted mögé biggyeszted a saját titkos kulcsodat, 
és erre számolsz egy hash értéket.
értelemszerűen csak az alapüzenetet + hash értéket küldöd át.
- A hash függvény lehetőleg ne legyen invertálható.
- A túloldal is ismeri a titkos kulcsot, ez alapján tudja ellenőrizni az 
üzenet eredetiségét.
A védelem jóságát a kulcs és a hash mérete határozza meg. ezt lehet 
brute force módszerrel végigpróbálgatni,
illetve ha jó sok üzeneted van akkor megpróbálni kitalálni mi is a hash 
algoritmus illetve titkos kulcs.

0. Adatot küldő küld egy spec csomagot, amivel jelzi a fogadónak hogy 
üzenetet akar küldeni.

1. Adatot fogadó egység küld a másiknak egy random értéket, ez a 
challenge. Ezt ha akarod aláírod, ha akarod nem.
Mellette és ellene is vannak érvek.
Adatot fogadó megjegyzi a challenge-t, hogy ezzel lehet neki küldeni.

2. Adatot küldő küldi: challenge + üzenet + aláírás megy vissza.

3. Fogadónál:
- Ha a challenge nem ok, akkor vagy visszajátszással próbálkoznak, vagy 
vételi zavar. Kuka.
- Ha az aláírás nem ok, akkor piszkálták az üzenetet, vagy vételi zavar. 
Kuka, esetleg NACK mehet vissza.
- Ha minden OK akkor pl. challenge + ACK + hash mehet vissza ha fontos.

Ezt innentől csak bonyolítani lehet :)

Én a kucsot az atmega eeprom részbébe tenném. Lehet master kulcs is a 
programkódban,
az ezzel aláírt parancsokkal lehet pl. saját kulcsot cserélni.

További ötletek:
- Címek bevezetése - Busz topológiához :)
- A túl rövid üzenetek felhizlalása random bitekkel/byteokkal
- A felhizlalt üzenetekben nem mindig ugyanott van a tényleges adat
- a 0-1 lépést is levédheted egy másik random challenge-el

Üdv: Tamás
> Ez nem gond, automatikusan megcsinaljak a teszteles alatt, elso tapfeszkor
> Ennyire nem veszes a tortenet, hogy ez ellen is vedekezni kell.
>   
Ezt nem bíznám automatizmusra, hiszen pont ekkor válik támadhatóvá.
Áram le, közéjük a behatoló, áram vissza.




>> Szintén könnyebben visszafejthető a kulcs ha a továbbítandó üzenet nem
>> elég véletlenszerű.
>>     
>
> Hat igen... ezert gondoltam bele ál-veletlen szamot....
>
>   
>> Ez ellen úgy tudsz védekezni, hogy a master által kiküldött challenge
>> nem csak véletlenszerű
>> adatot tartalmaz, hanem van benne egy időbélyeg is. Az meg idővel lejár
>> és monoton megy előre,
>> főleg ha egy rtc-d is van.
>>     
>
> nincs, 16k-s atmel 8bit szintu proci van, slusszpassz
>
>   
>> Sokszor nem a titkosítási elv a gyenge hanem a megvalósítás, pl.
>> a vezérlő üzenetek piszkálásával lehet a rendszert átverni.
>>     
>
> Pontosan erre gondoltam, hogy igy ne legyen tamadhato...
> Aki elkezdi a titkositast visszafejteni az mar had vigye ha sikerult neki.
> De olyan ne legyen hogy az adatfolyamban vmi bitet 0-ra kenyszeritenek es 
> nyit.
>
> A. 
>
> -----------------------------------------
>           elektro[-flame|-etc]



More information about the Elektro mailing list