Certains articles populaires récents de Home Assistant sur Reddit ont révélé que la maison intelligente d’une personne vivant à Miami Gardens était exposée à Internet. D'autres personnes pourraient éteindre leurs lumières et même renommer leurs appareils. Tout cela était dû au fait que leur courtier MQTT était public et non sécurisé.
Voici comment vous assurer de ne pas être victime du même problème de sécurité.
Votre maison intelligente a besoin d'un mode Invité, voici comment en configurer un
Un mode invité dédié est préférable pour vous et pour vos invités.
Pourquoi les maisons intelligentes utilisent MQTT
Communication efficace pour les appareils intelligents
MQTT signifie Message Queuing Telemetry Transport. Le nom peut paraître déroutant, mais le concept est assez simple. Il s'agit d'un protocole de messagerie léger qui utilise un modèle de publication-abonnement. Un appareil « publie » des messages et un autre appareil peut « s'abonner » à ces messages.
Par exemple, un capteur de température peut publier la température actuelle toutes les dix minutes. Votre logiciel de maison intelligente peut ensuite s'abonner à ces messages pour connaître la température actuelle.
La clé de ce processus est le courtier MQTT. Le courtier se charge de recevoir les informations de l'éditeur et de les transmettre aux abonnés concernés. L'éditeur et l'abonné n'ont pas besoin de savoir que l'autre existe ; le courtier MQTT se charge de s'assurer que les messages arrivent là où ils doivent aller.
MQTT est idéal pour les maisons intelligentes car il est rapide, à faible bande passante et peut fonctionner sur des appareils simples tels que des capteurs ou des microcontrôleurs de maison intelligente. Par exemple, dans Home Assistant, vous pouvez utiliser MQTT pour autoriser vos appareils Zigbee à transmettre des informations à votre serveur Home Assistant à l'aide de Zigbee2MQTT.
Comment les courtiers finissent par être exposés sur Internet
Évitez d'utiliser un courtier MQTT public
Pour que votre maison intelligente et vos appareils communiquent à l'aide de MQTT, vous devez exécuter un courtier MQTT capable de gérer le travail de routage des messages. C'est quelque chose qui doit fonctionner localement dans votre maison, afin que toute la communication entre vos capteurs et votre maison intelligente se fasse sur votre réseau local.
Dans le cas de la personne de Miami Gardens, il semble qu'au lieu de créer son propre courtier MQTT, elle utilisait un courtier MQTT public. Étant donné que ce courtier était accessible à toute personne ayant accès à Internet, d'autres personnes ont pu envoyer des messages à la maison intelligente Miami Gardens à partir du courtier MQTT. Avec les bonnes commandes, n’importe qui peut contrôler les appareils connectés de la maison intelligente, comme allumer et éteindre les lumières.
Il n'y a aucune raison réelle pour laquelle vous devriez avoir besoin d'utiliser un courtier MQTT public pour votre maison intelligente dans la plupart des cas. Certains guides peuvent mentionner cette pratique à des fins de test, et c'est peut-être ce qu'a fait la personne de Miami Gardens. Il est possible qu'un chatbot IA ait régurgité des informations erronées et conseillé à l'utilisateur d'utiliser un courtier MQTT public.
Par souci de clarté : ne faites pas cela. Vous devez toujours exécuter un courtier MQTT localement sur vos propres appareils. C'est incroyablement léger ; vous pouvez exécuter un courtier MQTT sur un Raspberry Pi Zero si vous le souhaitez, il n'y a donc aucune raison de ne pas héberger le vôtre.
- Marque
-
Framboise Pi
- Processeur
-
ARM Cortex-A53 quadricœur 64 bits
Le Raspberry Pi Zero 2 W est super petit et très abordable, mais il offre suffisamment de puissance de calcul pour une variété de projets de bricolage. Vous pouvez l'utiliser pour créer une console de jeu rétro portable, pour Klipper/Mainsail, un serveur domestique ou multimédia super compact, et bien plus encore.
Comment vérifier si votre courtier MQTT est accessible au public
Assurez-vous qu'il est local et non exposé
Le moyen rapide de vérifier si votre courtier MQTT est exposé est d’essayer d’y accéder depuis l’extérieur de votre réseau domestique. Vous pouvez désactiver votre Wi-Fi sur votre téléphone et utiliser une application telle que Explorateur MQTTen lui transmettant votre adresse IP publique et le port 1883. Si vous pouvez vous connecter à votre courtier MQTT via le réseau cellulaire, alors votre courtier MQTT est exposé.
Dans Home Assistant, vérifiez que votre courtier MQTT est configuré avec une adresse IP locale plutôt qu'une adresse Web publique. Aller à Paramètres > Appareils et servicesouvrez le MQTT intégration, puis cliquez sur le bouton trois points icône. Sélectionner Reconfigurer. Assurez-vous que Courtier est défini sur une adresse IP locale ou un nom d'hôte interne, et non sur une URL externe. Vous devez également vous assurer que vous disposez d’un mot de passe fort.
Si vous exploitez votre propre courtier MQTT (ce que vous devriez absolument faire), le moyen le plus probable pour qu'il soit exposé à l'extérieur de votre domicile est que vous ayez configuré la redirection de port. Si vous transférez le port 1883 vers votre serveur domestique, n'importe qui sur Internet peut également y accéder. Cela peut également se produire accidentellement si vous utilisez des fonctionnalités telles que Universal Plug and Play (UPnP).
Vous pouvez voir si votre courtier MQTT est exposé au monde extérieur en utilisant un service en ligne tel que Shodan et en fournissant votre adresse IP publique. Il peut alors vous permettre de voir les services exposés sur votre IP publique. Vous pouvez également utiliser nmap à partir de la ligne de commande pour obtenir un effet similaire.
Verrouiller votre courtier MQTT
La sécurité est la clé
Si vous exposez accidentellement votre courtier MQTT et qu'il n'est pas sécurisé, vous constaterez peut-être que des inconnus à l'autre bout du monde commencent à éteindre vos lumières, ou pire encore. C'est pourquoi il est important de ne pas autoriser les connexions anonymes ; la bonne nouvelle est que le Intégration MQTT dans Home Assistant ne prend pas en charge les connexions anonymes.
Essayez également d’éviter la redirection de port. Bien que le port de transfert 1883 puisse vous permettre de contrôler vos lumières à distance, il peut également permettre à d'autres personnes de le faire. Il existe de nombreuses autres options plus sécurisées pour accéder à Home Assistant à distance. Vous pouvez améliorer la sécurité de votre courtier MQTT en activant le cryptage TLS et en utilisant le port 8883.
Ne laissez pas les autres éteindre vos lumières
Il s'agit d'un exemple inhabituel, mais il montre ce qui peut arriver si vous ne configurez pas correctement votre maison intelligente. Les utilisateurs de Reddit n'ont rien fait de plus malveillant que d'allumer et d'éteindre quelques lumières, mais les mauvais acteurs pourraient faire bien pire.
Vous pouvez lire l’article original (en Angais) sur le blogwww.howtogeek.com