Ach jo. Nemotat transportní vrstvu a definici protokolu. Pro jistotu jsem znovu projel dokumentaci http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718111 Mimo jiné: "As a transport protocol, MQTT is concerned only with message transmission and it is the implementer’s responsibility to provide appropriate security features" a "A conformant Server MUST support the use of one or more underlying transport protocols that provide an ordered, lossless, stream of bytes from the Client to Server and Server to Client [MQTT-7.1.1-1]. However conformance does not depend on it supporting any specific transport protocols. A Server MAY support any of the transport protocols listed in Section 4.2, or any other transport protocol that meets the requirements of [MQTT-7.1.1-1]"
Takže ještě jednou. MQTT jako takové nedefinuje zabezpečení z pohledu útoků, útočníků. Tedy např. mohu vydat zařízení, o kterém mohu prohlásit, že je MQTT klient či server a žádné zabezpečení (krom toho plaintext login+hesla) mít nemusí.
Odpověď na otázku "Jak je to s bezpečností? Jak je zaručeno, že zprávu X odeslalo zařízení A a ne zařízení A', které se za A vydává?" ... tedy je ... "Není nijak zaručeno", musí se to ohlídat jiným způsobem - např. fyzickým oddělením sítě či na úrovni přeposílaných dat - ať už vlastní kontrolní implementace dovnitř dat paketu nebo zabalení celého protokolu (standardizovaně ssl/tsl/... nebo zase nějaké vlastní /coby extrém/).