Sziasztok !
Adott egy device aminek van internet kapcsolata :3G/4G modem.
A devicenak egy szerverhez kene kapcsolodnia egy időérzékeny (mqtt)
protokollal. Ez azt jelenti, hogy ha rossz az idő a device-on
akkor az kliens nem tud csatlakozni a szerverhez.
Ilyen paraméterek mellett hogyan tudnám biztonságosan
beállitani a pontos időt a device-n egy boot után.
* Hw-es megoldás - extra elem nem jó
* Sima ntp nem jó :
http://security.stackexchange.com/questions/4981/is-ntp-vulnerable-to-d…
Van pár megoldás rá. Kinek milyen gyakorlati tapasztalata van?
Köszi !
Üdv. Gábor
- 7349 megtekintés
Hozzászólások
Nagy királyság az mqtt. Sok lehetőség van a legkönnyebb ténylegesen az ntp vagy RTC.
Amennyiben tud AT commandot akkor érdemes a szolgáltató felé menni idő kéréssel:
AT+CTZU=1
AT+CCLK?
+CCLK: "12/01/06,07:51:26+04"
Favágó megoldás is van rá, pl. valamilyen folyamat weblapnak a módosítási dátumát headerből lekérni, pl . youtube.com.
- A hozzászóláshoz be kell jelentkezni
Sajnos az ntp vagy RTC nem lehetséges.
Miden mobil szolgáltatónak (világon) van a "AT+CCLK" szolgáltatása.
És mindegyik uo formában adja meg a pontos időt? Ennek mi a szabványa?
- A hozzászóláshoz be kell jelentkezni
Ugye elvileg a 3gpp nitz szabvány, de hogy ezt minden mobilszolgáltató betartja azt nem tudom, olyan mélységben nem vagyok benne.
Esetleg mqtt topicra feliratkozni ami időt ad?
Nehéz megfogni ezt a történetet :D
- A hozzászóláshoz be kell jelentkezni
>Ugye elvileg a 3gpp nitz szabvány, de hogy ezt minden mobilszolgáltató betartja
Igen, ettől félek én is, hogy nem mindenki tartja be a szabványt.
Tehát a pontos idő az mqtt kapcsolathoz kell. Ha nincs pontos idő
akkor nincs mqtt kapcsolat. :)
- A hozzászóláshoz be kell jelentkezni
Ez ok, de ha van egy másik szerver amin le lehet kérni a mqtt topicot, aminek kisebb a security besorolása, nincs idő syncronizálási nyűgje, akkor máris megoldódott a probléma.
- A hozzászóláshoz be kell jelentkezni
>Favágó megoldás is van rá, pl. valamilyen folyamat weblapnak a módosítási dátumát headerből lekérni, pl . youtube.com.
Igen van mar ilyen megoldas mostansag az ntp-ben is és CONSTRAINTS-nek mondják.
Ez nem pontos idő csak egy alsó korlátot ad. Ez egy jó megoldásnak tűnik.
- A hozzászóláshoz be kell jelentkezni
"Attacker somehow compromises the DNS lookup for the NTP server used by the victim"
Ennek úgy nagyjából mekkora esélye van az adott környezetben? Ha erre lehetőség van, akkor érdemes lenne az _összes szolgáltatást megnézni, hogy érzékeny-e ugyanerre a DNS kompromittálásra, nem?
- A hozzászóláshoz be kell jelentkezni
Na igen, ha katonai célokra akarják használni szegény iot ezsközt akkor nem lehet elmenni a saját RTC vagy NTP mellett, de akkor már érdemesebb lenne tunnelt felhúzni.
- A hozzászóláshoz be kell jelentkezni
És ugye ki is lehet hagyni az DNS-t, a time.kfki.hu IP címe mióta az eszemet tudom ugyanaz. De én is a mobilszolgáltatót kérdezném le inkább.
- A hozzászóláshoz be kell jelentkezni
Ez a device a világon mindenhol lesz. Egyébbként ha csak
Mo-on lenne akkor se merném belerakni ezt a trükköt.
Ha ugyanis változik mégis akkor mehet a kukába a device.
- A hozzászóláshoz be kell jelentkezni
3 saját szerver fix IP-vel 3 különböző szolgáltatónál. Alapból az eszközökben mindhárom fixen be van égetve, de szavazós alapon. Két beégetett kiszavazhat egy harmadikat, átszavazva azt egy új címre, onnantól az a beégetett.
Hacsak nem ugyanazt a jelszót használod, nem nyomnak fel egyszerre 3 helyen. Ezzel költözhetsz is bármely lábbal. Arra kell csak figyelni, hogy az eszközöknek legyen egy elvárható maximális offline idejük, azaz ha ennél nagyobb ideig nincsenek hálózaton, akkor elveszettnek tekinthetők (és addigra az időérzékeny cuccod úgyis elmászik). Ha a költözések, vagy egynél több lábat érintő változások ritkábbak mint a max offline idő, az eszközök mindig friss konfiggal futhatnak.
Saját ötletem kinyírása: berakom egy teszthálóba, köré 3 gépet a fenti IP címekkel, és máris az én konfigomban bízik meg az eszköz.
Megoldás: Ha ezekkel egy jófajta kulcscserét csinálsz, akkor IP-től függetlenül nem megszemélyesíthetőek a szervereid.
- A hozzászóláshoz be kell jelentkezni
Picit bonyolultank tunik ez a megoldas.
- A hozzászóláshoz be kell jelentkezni
Viszont nem csak az időszinkront, hanem bármi egyéb konfig vagy szoftver változást is végre lehet vele hajtani biztonságosan, azaz nem évülnek el a kütyük amikor napvilágra kerül egy bug... ;)
- A hozzászóláshoz be kell jelentkezni
És nem is old meg szinte semmilyen problémát... aki el tudja téríteni az összes DNS kérést, az el tudja téríteni az NTP kéréseket is.
- A hozzászóláshoz be kell jelentkezni
Azért nem feltétlen, egy dns manipulációt egyszerűbb kivitelezni, mint egy ip routeba beleállni direktben.
- A hozzászóláshoz be kell jelentkezni
Nem a fenét, pont azt a problémát oldja meg, amitől a kérdező parázik. Mert ugye ha nincs DNS, akkor ezen keresztül nem lehet támadni.
Máshogy persze igen, és az ellen nem véd.
- A hozzászóláshoz be kell jelentkezni
Jó, akkor közelítsük meg máshogy a kérdést:
- kinézel szerte a világon 10 szimpatikus NTP szervert
- ezeknek az IP-jét berakod az eszköz default konfigjába
- és időnként ezt szerverlistát a meglevő mqtt csatornádon keresztül frissíted
Kicsit favágás jellegű, de ha tényleg ennyire félsz a dns-től, akkor így kikerülheted.
- A hozzászóláshoz be kell jelentkezni
Van esélye és a még a Man-In-The-Middle attacks-nak is.
Erre keresek biztonságos megoldást.
- A hozzászóláshoz be kell jelentkezni
az ntp beépített public key cryptoja ellen van valami kifogásod?
- A hozzászóláshoz be kell jelentkezni
Igen, ez egy jo megoldas ha van sever oldalon tamogatas.
- A hozzászóláshoz be kell jelentkezni
hát, akkor olyan szervert kell futtatni. :)
Az van, hogy ha bizalmatlan vagy mindenféle szolgáltatással szemben, akkor magad kell megcsináld.
- A hozzászóláshoz be kell jelentkezni
Igen, ez egy jo megoldas ha van sever oldalon tamogatas.
- A hozzászóláshoz be kell jelentkezni
Az MQTT másik vége saját kézben van?
- A hozzászóláshoz be kell jelentkezni
Nem, egy clour providere . Oket majd holnap kerdezem, hogy mit ajanlanak.
- A hozzászóláshoz be kell jelentkezni
Hm... és mi a secure transport az MQTT csatorna alatt?
- A hozzászóláshoz be kell jelentkezni
TLS vagy VPN. Meg nincs eldontve.
- A hozzászóláshoz be kell jelentkezni
És akkor ugyanazon a transport csatornán miért nem lehet NTP-t keresztülvinni? :)
- A hozzászóláshoz be kell jelentkezni
Ha MIM támadástól is félsz, akkor csak valamilyen kriptográfiában bízhatsz. Mivel az eszközöket kiadod a kezedből, ezért szimmetrikus kulcs nem jöhet szóba, tehát marad a nyilvános kulcsú. A legegyszerűbb talán a https, egyetlen, beégetett certet elfogadva.
- A hozzászóláshoz be kell jelentkezni
Én ilyen esetekben eleve A Szervert használom NTP-nek, akkor egymáshoz képest tuti nem térnek el. Azt meg DNS nélkül, IP-vel is megadhatod és jó eséllyel ki is kerülted a problémát.
----------------------------------^v--------------------------------------
"Probléma esetén nyomják meg a piros gombot és nyugodjanak békében!"
- A hozzászóláshoz be kell jelentkezni
Esetleg GPS modul?
Akkor tuti jó és pontos lesz az idő... És a hely alapján be tudod állíttatni az időzónát is.
Oykawa
- A hozzászóláshoz be kell jelentkezni
Azt irta, nem akar plusz hardware elemet beletenni a kutyube.
--
Is that a banana in your pocket, or are you just happy to see me?
Neither, it's my new iPhone.
- A hozzászóláshoz be kell jelentkezni
Kell hozza extra elem? IOT-tol kaphat tapot? En is GPS modulra szavaztam volna.
Szerk: ahhhh ebed hatas. Extra elem: rendes elem/aksi etc..-re gondoltam.
- A hozzászóláshoz be kell jelentkezni
Mennyire kritikus, hogy pontos legyen az az ido?
Nehany masodperc, masodperc alatti tevedes, millisec?
Egyebkent szerintem tulliheged az NTP-s tamadast, ennyi erovel a szerveredhez iranyitott adatforgalmat is manipulalhatja, a titkositast feltorheti, a mobilhalot zavarhatja, stb..
--
Is that a banana in your pocket, or are you just happy to see me?
Neither, it's my new iPhone.
- A hozzászóláshoz be kell jelentkezni
Ne fontos a teljesen pontos idő.
- A hozzászóláshoz be kell jelentkezni
Akkor atomora alatt nem uszod meg, es a relativisztikus hatasokat is bele kell kodolnod!
gyk.: mi az, hogy pontos??
--
Is that a banana in your pocket, or are you just happy to see me?
Neither, it's my new iPhone.
- A hozzászóláshoz be kell jelentkezni
Koszi az otleteket.
- A hozzászóláshoz be kell jelentkezni
Nem talaltam sehol utalast ra, hogy time sensitive lenne az mqtt protokol, tudsz valami forrast mutatni?
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
Ott a pont.
Az POC-ban egy olyan klienst hasznaltunk amit a Cloud Provider adott es valoszinuleg az authentikalas soran
volt valami ido erzekenysege azert nem tudott csatlakozni az brokerhez.
Egyebbkent az MQTT-nek nincs ido erzekenysege.
- A hozzászóláshoz be kell jelentkezni
Szia,
Bocsánat a kérdésért, de ha NTP esetén problémás lehet a DNS spoofing, akkor bármi más kapcsolat esetén ez nem vethet fel problémát ( például az mqtt-s kapcsolatodban )? Vagy, ott létezik valami megoldás, amivel elkerülöd a dns feloldást?
Ezt csak azért kérdezem, mert ha problémát jelenthet a dns spoof ntp-hez, akkor minden komponensnél fent áll a veszélye. Ahogy annak is, hogy a 3g/4g modem nem feltétlenül isp hálózathoz kapcsolódik...
Üdv,
LuiseX
- A hozzászóláshoz be kell jelentkezni
A tobbi kommunikacio valamilyen security layeren lesz (VPN/TLS) az NTP-nel nincs ilyen.
Persze azt is belehet csapni, de az NTP-nel semmilyen vedelem nincs. Nem 100%-os vedelem a cel mivel ilyen nincs, de legalabb csokkensuk amennyire tudjuk.
- A hozzászóláshoz be kell jelentkezni
Többen írták már, hogy az ntp-t is áthúzhatod vpn-en.
Vagy épp kiépíthetsz saját NTP infrastruktúrát amit áthúzol stunnel-en, már ha nem lesz vpn.
És DNS nélkül, IP címekkel (nyilván többel) is operálhatsz.
Illetve az ntp-t is kiválthatod valami saját vacakkal, már ha nem kritikus a tizedmásodperces pontosság. Pl. csinálsz egy https weboldalt ami a - szerinte - pontos időt visszaadja, és kliens oldalon certificate pinning.
Ezek bármelyikével ki tudod védeni a dns problémáját (amit szerintem túllihegsz, de nem ismerem a konkrét feladatot).
- A hozzászóláshoz be kell jelentkezni