Telefono IT a casa … come comunica un’app mobile su Internet con un dispositivo IoT in una casa?

Una delle sfide per gli sviluppatori di automazione domestica è stata come fa qualcosa seduto nella tua rete domestica, che è presumibilmente su una rete privata dietro un firewall nascosto dagli hacker, e può essere prontamente disponibile per un’app mobile su un telefono cellulare che potrebbe essere potenzialmente ovunque nel mondo.

Quando ricevi la piccola Internet Box di plastica dal tuo ISP, quello che stai generalmente ricevendo è un modem, un router e un firewall in uno. La combinazione di questi significa che puoi essere connesso a Internet ma nascosto in modo sicuro alla vista. Puoi aprire un browser e richiedere una pagina da un server Web su Internet, ma qualcuno su Internet non può accedere ai tuoi dispositivi domestici.

Il principio alla base di ciò è piuttosto semplice ed è tutto sulla direzione della connessione. Fa rima, quindi è facile da ricordare.

Di ‘che sei a casa, apri un browser e digita http://robpope.com perché vuoi dare un’occhiata al mio sito blog davvero brutto. Il tuo router ISP sa che dovrebbe passare i pacchetti di rete su Internet e al mio server web ospitato e consentire di rispondere nuovamente da quel server. La direzione della connessione è in uscita dalla mia rete domestica e il firewall consente solo di rispondere nuovamente.

Ed è esattamente quello che il compito principale di un firewall domestico è tenere traccia di quei pacchetti di reti in uscita e consente solo risposte a quei pacchetti di ritorno da Internet.

Se un hacker seduto sul web inizia a lanciare connessioni alla tua scatola di plastica ISP, il firewall sa di lasciarli cadere come ha visto la richiesta uscire per cominciare.

Quindi ora sappiamo come funzionano le basi dei firewall, potresti essere in grado di vedere il problema con l’IoT e l’automazione domestica. Come facciamo a far funzionare un’app sul nostro cellulare connessa a Internet per comunicare con il nostro tostapane IoT in modo da poter fare un brindisi mentre saremo a casa tra 5 minuti?

Esistono varie soluzioni per risolvere questo problema, inclusi router perimetrali aggiuntivi e perforazione di buchi in entrata nei firewall, ma il più bello che ho trovato è il “MQTT over WebSocket”. Voglio solo aggiungere qui questa è un’ottima soluzione per i dispositivi che non devono preoccuparsi troppo dell’alimentazione come l’automazione domestica. Nel nostro esempio un tostapane IoT che è collegato all’alimentazione di rete.

MQTT è un protocollo di messaggistica leggero che viene utilizzato dai fornitori di IoT. Non abbiamo bisogno di entrare nei dettagli qui. In sostanza, invia e riceve informazioni dai dispositivi IoT a un server centrale o sistema cloud. Nel nostro esempio, inviamo un messaggio “Metti un toast”.

WebSocket è davvero il protocollo killer qui. Sì, mi eccito per i protocolli. WebSocket è progettato per aggirare il problema della direzione della connessione.

Tornando al nostro esempio in precedenza, stai visitando il mio sito blog. Quello che sta succedendo è che il tuo browser richiede una pagina web che è un mucchio di HTML, JavaScript e immagini. Ognuno di questi elementi è richiesto e una volta completate le risposte, il firewall sa che la connessione a quel server è completa.

Con WebSocket la connessione non viene chiusa, invece i pacchetti di rete vengono passati avanti e indietro per mantenere attiva la connessione in modo che il firewall si aspetti più traffico. In effetti, per assicurarsi che la connessione rimanga attiva i pacchetti PING / PONG del passaggio WebSocket avanti e indietro . Sì, si chiamano davvero PING / PONG.

Quindi quando tiri fuori il telefono e premi il pulsante toast sull’app tostapane. L’app invia un comando al sistema cloud IoT, il sistema cloud è quindi in grado di passare quel comando attraverso il firewall quando la connessione è aperta e il tostapane IoT ottiene il comando toast.

Quindi questo richiederà molta della mia larghezza di banda domestica? No, questi pacchetti sono molto piccoli e le connessioni moderne a banda larga domestica sono generalmente molto veloci. Se metti uno strumento chiamato sniffer di pacchetti su una rete domestica, sarai in grado di vedere il traffico della rete volare in giro. Vedrai traffico quasi continuo da telefoni, tablet, computer che effettuano il check-in per gli aggiornamenti.

È sicuro? bene si e no. Se non garantito c’è un potenziale per gli attacchi dell’uomo in mezzo stile. Come qualsiasi sistema, è necessario adottare misure per proteggerlo. Ho usato l’implementazione IoT di Amazon e forniscono crittografia TLS e autenticazione basata su certificati per assicurarsi che un hacker non possa saltare nel flusso WebSocket e impostare il brindisi.