Je me suis récemment inscrit à IFTTT , ce qui semble être un service fantastique pour enchaîner des événements afin de créer une maison intelligente ou d'automatiser divers services.
Je viens de trouver le canal Maker qui vous permet de faire de simples requêtes HTTP (par exemple GET et POST), et j'espère l'utiliser pour envoyer en toute sécurité un message à un Raspberry Pi que j'exécute et qui attend toute demande d'API sur une certaine route (disons, par exemple, POST /foo
).
L' article de Makezine que j'ai lié suggère cette méthode de sécurité:
Maintenant, ce que j'ai fait ci-dessus était horriblement précaire, j'ai essentiellement exposé au monde un script - une application Web en d'autres termes - qui pouvait activer et désactiver un interrupteur contrôlant une lumière dans ma maison. Ce n'est évidemment pas quelque chose que vous voulez faire, mais c'est pourquoi les services d'IFTTT offrent les capacités de transmettre plus d'informations au service distant.
Il ne serait pas difficile de mettre en place un lien authentifié TOTP entre les deux par exemple, ou un échange de jetons ou de clés - et de protéger votre compte IFTTT lui-même? Ils viennent d'ajouter une authentification à deux facteurs.
J'ai lu plus sur les mots de passe à usage unique basés sur le temps sur Wikipedia, ce qui semble suggérer qu'il y a un élément de calcul impliqué afin de générer le mot de passe à usage unique.
Étant donné que IFTTT ne prend pas en charge le chaînage des tâches ou tout script, comment puis-je générer le TOTP comme suggéré dans l'article? Est-il possible de le faire, car certains calculs sont nécessaires et il ne semble pas y avoir de moyen de les faire?
la source
Réponses:
L'article lié est un peu trompeur. L'interface fournie par IFTTT n'est pas complètement ouverte, elle nécessite une clé dans la demande. Étant donné que la demande est effectuée à l'aide de HTTPS, le secret n'est pas directement observable (à condition que votre client se connecte toujours de manière fiable à IFTTT, pas à un proxy mitm).
À partir de la page d'informations sur le canal du fabricant (spécifique à l'utilisateur)
Maintenant, la clé n'est qu'une faible entropie et pourrait donc être inversée par la surveillance de vos demandes (sauf si vous les remplissez avec un bruit de haute qualité), mais la demande de sécurité par session est dans ce cas satisfaite par TLS qui gère la configuration du canal HTTPS .
Pour rendre la communication beaucoup plus sécurisée, IFTTT devrait spécifiquement prendre en charge l'authentification des points d'extrémité, mais cela semble dépasser la sécurité qui est appliquée aux autres liaisons côté service. Cela signifie que votre canal de fabricant vers IFTTT est actuellement aussi sécurisé que le canal IFTTT vers vos appareils ménagers.
la source