Fórum témák

» Több friss téma
Fórum » Rádiós adó-vevő modulok
Lapozás: OK   44 / 44
(#) Gj hozzászólása Kedd, 21:22 /
 
Még amíg emésztem a LoRa-t, feltennék még egy kérdést, biztonsági szempontból.

Ennek a LoRa modulokból felépített hálózatnak egyes elemei elvileg csak a hálózaton belüli üzenetek hatására végezhetnének bármilyen feladatot. Ennek a meghatározására van nyilván a hálózatnak ID-je, a címzettnek ID-je, és a feladónak ID-je.
Tehát aki ezek közül valamelyiket nem ismeri, az elvileg nem tud utasítást küldeni az egyes eszközöknek a hub nevében.
Viszont egy mezei LoRa modullal el tudja fogni a levegőben szálló üzeneteket a hub és az eszköz között.

AES:
Teszem azt, van egy A eszközöm, ami ki és be tud kapcsolni. A bekapcsoláshoz a hub mindig a 0x1234ABCD üzenetet küldi el. (ebben benne van a preamble, címzés, crc, minden) Ha ezt titkosítom AES-sel, akkor a titkosított üzenet is mindig ugyan úgy fog kinézni, lesz mondjuk 0x12345678. Ha valaki el fogja ezt a titkosított üzenetet, akkor nem szükséges tudnia az eredetit, hisz ha ezt a titkosítottat elküldi, úgy, ahogy van, akkor az eszköz ugyan azt fogja megkapni, mintha a hub küldte volna titkosítva az eredeti 0x1234ABCD üzenetet. (visszafejti, és megkapja belőle, hogy kapcsoljon be)
Tehát az AES-sel titkosított üzenetbe még valamit bele kell titkosítani, ami változik, és csak a hub és az eszköz által ismert.

RSA:
Van másik lehetőségként az RSA, amihez viszont egyeztetni kell a nyilvános kulcsokat, ami az RF miatt szintén preamble, címzett, feladó, crc... vagyis nagyon sok plusz kommunikáció, ami ezeken a sebességeken nem lenne túl jó. RSA nélkül elmegy az üzenet, hogy "kapcsolj be" és visszajön egy nyugta. RSA-val viszont elmegy egy megszólítás a hubtól az eszköznek, amiben kéri a public kulcsot, az eszköz ezt visszaküldi, ez után a hub ezzel a kulcscsal titkosítva elküldi az üzenetet, amire az eszköz nyugtát küld a hub-nak, hogy megkapta. Ez így kétszer annyi kommunikáció (mivel a hasznos adat se lenne sokkal hosszabb egy RSA kulcsnál).

AES időszink I.:
Emiatt inkább az AES-t választanám, de ahhoz kell valami közösen ismert dolog, amit csak a hub és az eszköz ismer. Ez lehetne mondjuk az idő. A hub egy general call-lal időnként az összes eszközzel szinkronizálná a közös időt (ami lehetne persze egy számláló is, nem csak az idő, a lényeg az, hogy mindig azonos legyen) és ezt a közös időt beletitkosítaná a bekapcsolást kiváltó üzenetbe, amit a vevő miután az AES kulccsal (ami nem változik, az IC felprogramozásakor bele lenne írva a kódba) visszafejt, csak akkor hajtana végre, ha a visszafejtés után kapott idő megegyezne a saját idejével.

AES időszink II.:
Ez utóbbinak a következő változata (hogy a general call-lal járó szinkronizálást, illetve azt kiküszöböljük, hogy egy eszköz úgy kapcsolódik be a hálózatba, hogy "lekéste" a legutolsó general call-os szinkronizálást, és így sosem egyezne meg a visszafejtett és a saját ideje, egészen a következő szinkronizálásig) azt csinálná, hogy fogná a küldendő adatot és az időt, titkosítaná AES-sel, ahogy az előző változat, majd ehhez a titkosított adatsor végéhez hozzácsapná az időt titkosítatlanul. Amikor az eszköz megkapja, összehasonlítja, hogy a végéhez rakott titkosítatlan idő megegyezik-e a visszafejtés után a titkosított részből kapott idővel. Ha igen, az feltételezi, hogy a feladó ismerte az AES kulcsot, vagyis a hálózat tagja.

Az RSA-s megoldás nyilván tuti, viszont kétszer annyi kommunikáció szükséges hozzá.
A két AES-es megoldásnál fontos, hogy az AES-kulcs ne szivároghasson ki se a hubból, se az eszközökből. Az AES kulcsot RF-en nem küldöm el, így a kiszivárgást úgy értem, hogy ha valaki fizikai hozzáférést nyer valamelyik végponthoz, és kiolvassa a programot az IC-ből.

És a kérdésem: Melyiket használnátok inkább a fenti három megoldás közül, és miért? Vagy inkább egy itt le nem írt megoldást ajánlanátok?

Tudom, jó hosszú lett, köszönöm, hogy elolvastad és segítesz!
A hozzászólás módosítva: Kedd, 21:28
(#) Gj válasza Gj hozzászólására (») Kedd, 21:47 /
 
módosítani akartam, de már késő volt

A program kiolvasása ellen lehet persze védekezni lock bitekkel.
Van olyan lehetőség, hogy csak a kiolvasást tiltom le, de a programozást nem? (egyszerűbb lenne a fejlesztés során)
(#) Kera_Will válasza Gj hozzászólására (») Sze, 7:54 / 1
 
Előzőekben már mutattam egy 1 2 linket ... amin megtalálod azokat akiket keresned és kérdezned kellenne a témában . LoRaWANon 128 bites titkosítást alkalmaznak.
Következő: »»   44 / 44
Bejelentkezés

Belépés

Hirdetés
Frissek
2016. Dec, 08. Csü
1:06:45
Jelenleg 135 fő olvassa az oldalt
Online tagok:
Lapoda.hu     XDT.hu     HEStore.hu