Fórumok
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
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.
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?
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
>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. :)
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.
>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.
"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?
--
https://portal.gacivs.info
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.
É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.
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.
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.
Picit bonyolultank tunik ez a megoldas.
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... ;)
É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.
Azért nem feltétlen, egy dns manipulációt egyszerűbb kivitelezni, mint egy ip routeba beleállni direktben.
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.
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.
Van esélye és a még a Man-In-The-Middle attacks-nak is.
Erre keresek biztonságos megoldást.
az ntp beépített public key cryptoja ellen van valami kifogásod?
Igen, ez egy jo megoldas ha van sever oldalon tamogatas.
hát, akkor olyan szervert kell futtatni. :)
Az van, hogy ha bizalmatlan vagy mindenféle szolgáltatással szemben, akkor magad kell megcsináld.
Igen, ez egy jo megoldas ha van sever oldalon tamogatas.
Az MQTT másik vége saját kézben van?
--
https://portal.gacivs.info
Nem, egy clour providere . Oket majd holnap kerdezem, hogy mit ajanlanak.
Hm... és mi a secure transport az MQTT csatorna alatt?
--
https://portal.gacivs.info
TLS vagy VPN. Meg nincs eldontve.
És akkor ugyanazon a transport csatornán miért nem lehet NTP-t keresztülvinni? :)
--
http://wiki.javaforum.hu/display/~auth.gabor/Home
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.
É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!"
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
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.
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.
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.
Ne fontos a teljesen pontos idő.
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.
Koszi az otleteket.
Nem talaltam sehol utalast ra, hogy time sensitive lenne az mqtt protokol, tudsz valami forrast mutatni?
--
NetBSD - Simplicity is prerequisite for reliability
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.
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 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.
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).