Slijede razlike između dviju inačica stranice.
Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
racfor_wiki:mrezna_forenzika:mqtt_protokol [2020/01/09 16:58] kvesligaj [Chapter 4] |
racfor_wiki:mrezna_forenzika:mqtt_protokol [2024/12/05 12:24] (trenutno) |
||
---|---|---|---|
Redak 1: | Redak 1: | ||
====== MQTT protokol ====== | ====== MQTT protokol ====== | ||
- | |||
===== Sažetak ===== | ===== Sažetak ===== | ||
- | Živimo u vremenu kada nastojimo sve uređaje povezati na internet i integrirati u jednu cjelinu koju je onda lagano kontrolirati od bilo gdje na svijetu. | + | Živimo u vremenu kada nastojimo sve uređaje povezati na internet i integrirati u jednu cjelinu koju je onda lagano kontrolirati od bilo gdje na svijetu. |
- | + | ||
- | Keywords: **MQTT**, **Internet of Things**, | + | |
- | + | ||
- | Uredi | + | |
- | Uredi | + | Keywords: **MQTT**, **Internet of Things** |
===== Uvod ===== | ===== Uvod ===== | ||
- | Napretkom tehnologije svijet teži tome da se svi uređaji u nečijem posjedu međusobno povežu na internet kako bi se omogućila kontrola i nadzor svih tih uređaja od bilo gdje na svijetu, to je osnovna ideja iza tzv. //Internet of Things//. Kod takvih se mreža javlja potreba za komunikacijom između uređaja koja je u pravilu bežična, a dimenzije čim manje zbog čega je svako iole kompliciranije rješenje teško izvedivo. Upravo radi takvih situacija je osmišljen MQTT (//MQ Telemetry Transport// | + | Napretkom tehnologije svijet teži tome da se svi uređaji u nečijem posjedu međusobno povežu na internet kako bi se omogućila kontrola i nadzor svih tih uređaja od bilo gdje na svijetu, to je osnovna ideja iza tzv. //Internet of Things//. Kod takvih se mreža javlja potreba za komunikacijom između uređaja koja je u pravilu bežična, a dimenzije čim manje zbog čega je svako iole kompliciranije rješenje teško izvedivo. Upravo radi takvih situacija je osmišljen MQTT (//MQ Telemetry Transport// |
Redak 38: | Redak 33: | ||
Također je moguće koristiti gotove i javno dostupne MQTT brokere od kojih se informacije o nekima od njih nalaze na sljedećim web stranicama: [[http:// | Također je moguće koristiti gotove i javno dostupne MQTT brokere od kojih se informacije o nekima od njih nalaze na sljedećim web stranicama: [[http:// | ||
- | |||
- | \\ | ||
- | |||
===== Osnovni koncepti ===== | ===== Osnovni koncepti ===== | ||
Redak 63: | Redak 55: | ||
Ova funkcija omogućava da klijent napiše poruku koja će biti objavljena (broker će objaviti) u predviđenu temu ukoliko se dogodi nenadani prekid veze. Ova mogućnost je veoma korisna jer je moguće obavijestiti korisnika o prestanku rada čvora što se zna dosta često dogoditi. | Ova funkcija omogućava da klijent napiše poruku koja će biti objavljena (broker će objaviti) u predviđenu temu ukoliko se dogodi nenadani prekid veze. Ova mogućnost je veoma korisna jer je moguće obavijestiti korisnika o prestanku rada čvora što se zna dosta često dogoditi. | ||
- | |||
- | \\ | ||
- | |||
===== Struktura MQTT paketa ===== | ===== Struktura MQTT paketa ===== | ||
Redak 94: | Redak 83: | ||
|UNSUBSCRIBE|10|klijent → broker|zahtjev za otkazivanje pretplate| | |UNSUBSCRIBE|10|klijent → broker|zahtjev za otkazivanje pretplate| | ||
|UNSUBACK|11|broker → klijent|potvrda za otkazivanje pretplate| | |UNSUBACK|11|broker → klijent|potvrda za otkazivanje pretplate| | ||
- | | \\ PINGREQ|12|klijent → broker|zahtjev za odaziv| | + | | PINGREQ|12|klijent → broker|zahtjev za odaziv| |
|PINGRESP|13|broker → klijent|odgovor na odaziv| | |PINGRESP|13|broker → klijent|odgovor na odaziv| | ||
|DISCONNECT|14|klijent → broker|klijent prekida vezu| | |DISCONNECT|14|klijent → broker|klijent prekida vezu| | ||
Redak 100: | Redak 89: | ||
==== ==== | ==== ==== | ||
+ | |||
+ | \\ | ||
+ | |||
==== Varijabilno zaglavlje ==== | ==== Varijabilno zaglavlje ==== | ||
Redak 111: | Redak 103: | ||
* naziv teme | * naziv teme | ||
- | === Specifične zastavice | + | === Specifične zastavice === |
* zastavica čiste sesije - broker mora pohraniti pretplate klijenta | * zastavica čiste sesije - broker mora pohraniti pretplate klijenta | ||
Redak 119: | Redak 111: | ||
* zastavica za korisničko ime i lozinku - znači da su korisničko ime i lozinka uključeni u sadržaju (// | * zastavica za korisničko ime i lozinku - znači da su korisničko ime i lozinka uključeni u sadržaju (// | ||
- | ==== Sadržaj ( Payload | + | ==== Sadržaj ( Payload ) ==== |
- | Samo neki MQTT paketi sadrže sadržaj. Znamo da očito sadržaj sadrži PUBLISH tip poruke u kojem se nalazi sam sadržaj koji klijent želi objaviti u neku temu. Osim njega, sadržaj sadrži i CONNECT paket kojemu se u sadržaju mogu nalaziti: jedinstveni ID, tema oporkuke, poruka oporuke, korisničko ime i lozinka. Također sadržaj ima i SUBSCRIBE poruka koja na taj način prenosi teme na koje se želi klijent pretplatiti i QoS kojim želi komunicirati sa brokerom. | + | Samo neki MQTT paketi sadrže sadržaj. Znamo da očito sadržaj sadrži PUBLISH tip poruke u kojem se nalazi sam sadržaj koji klijent želi objaviti u neku temu. Osim njega, sadržaj sadrži i CONNECT paket kojemu se u sadržaju mogu nalaziti: jedinstveni ID, tema oporuke, poruka oporuke, korisničko ime i lozinka. Također sadržaj ima i SUBSCRIBE poruka koja na taj način prenosi teme na koje se želi klijent pretplatiti i QoS kojim želi komunicirati sa brokerom. |
- | + | ||
- | \\ | + | |
Redak 130: | Redak 120: | ||
Što se tiče sigurnosti MQTT sam po sebi nema neku zaštitu. Kako se poruke u takvom načinu prenose kao običan tekst (čak i korisničko ime i lozinka!) veoma je lagano presresti te podatke. Takvo presretanje podataka bi se moglo izvesti //Man in the middle //napadom. | Što se tiče sigurnosti MQTT sam po sebi nema neku zaštitu. Kako se poruke u takvom načinu prenose kao običan tekst (čak i korisničko ime i lozinka!) veoma je lagano presresti te podatke. Takvo presretanje podataka bi se moglo izvesti //Man in the middle //napadom. | ||
- | Kako bi se takve situacije izbjegle preporuča se korištenje sigurnosnog TLS/SSL protokola. TLS i SSL su kriptografski protokoli koji omogućavaju sigurnu komunikaciju pomoću hash funkcija. Hash funkcija koja će se koristiti se dogovori na početku pomoću rukovanja. Za provjeru identiteta se koriste digitalni potpisi koji se prenose pomoću certifikata. | + | Kako bi se takve situacije izbjegle preporuča se korištenje sigurnosnog TLS/SSL protokola. TLS i SSL su kriptografski protokoli koji omogućavaju sigurnu komunikaciju pomoću hash funkcija. Hash funkcija koja će se koristiti se dogovori na početku pomoću rukovanja. |
+ | Takvom zaštitom se štite poruke i unatoč npr. //Man in the middle //napada podaci štite jer nitko bez ključa ne može pročitati podatke tj. sigurnost ovisi o samoj sigurnosti TLS/SSL protokola. | ||
- | ===== Chapter 5 ===== | + | ===== Izvori |
- | Uredi | + | [1] [[https:// |
- | Uredi | + | [2] [[http:// |
- | ===== Chapter 6 ===== | + | [3] [[http:// |
- | Uredi | + | [4] [[http:// |
- | Uredi | + | [5] [[https:// |
+ | |||
+ | [6] [[https:// | ||
+ | |||
+ | \\ | ||