Ich habe mich kürzlich bei IFTTT registriert. Dies scheint ein fantastischer Service zu sein, um Ereignisse miteinander zu verketten, um ein Smart Home zu erstellen oder verschiedene Services zu automatisieren.
Ich habe gerade den Maker-Kanal gefunden , über den Sie einfache HTTP-Anforderungen (z. B. GET und POST) stellen können, und ich hoffe, dass ich damit sicher eine Nachricht an einen Raspberry Pi senden kann, der auf eine API-Anforderung wartet auf einer bestimmten Route (sagen wir zum Beispiel POST /foo
).
Der von mir verlinkte Makezine-Artikel schlägt diese Methode aus Sicherheitsgründen vor:
Was ich oben getan habe, war schrecklich unsicher. Ich habe der Welt im Grunde genommen ein Skript - mit anderen Worten eine Webanwendung - zur Verfügung gestellt, mit dem ein Schalter, der ein Licht in meinem Haus steuert, ein- und ausgeschaltet werden kann. Dies ist offensichtlich nicht das, was Sie tun möchten, aber aus diesem Grund bieten die Dienste von IFTTT die Möglichkeit, mehr Informationen an den Remote-Dienst weiterzuleiten.
Es wäre nicht schwierig, beispielsweise eine TOTP- authentifizierte Verbindung zwischen beiden herzustellen oder einen Token- oder Schlüsselaustausch durchzuführen - und Ihr IFTTT-Konto selbst zu schützen? Sie haben gerade die Zwei-Faktor-Authentifizierung hinzugefügt.
Ich habe mehr über zeitbasierte Einmalpasswörter auf Wikipedia gelesen , was darauf hindeutet, dass ein Berechnungselement erforderlich ist, um das Einmalpasswort zu generieren.
Wie generiere ich das TOTP, wie im Artikel vorgeschlagen, da IFTTT keine Verkettung von Aufgaben oder Skripten unterstützt? Ist dies überhaupt möglich, da einige Berechnungen erforderlich sind und es keinen Weg zu geben scheint, dies zu tun?
quelle
Antworten:
Der verlinkte Artikel ist etwas irreführend. Die von IFTTT bereitgestellte Schnittstelle ist nicht vollständig geöffnet, sondern erfordert einen Schlüssel in der Anforderung. Da die Anforderung über HTTPS erfolgt, ist das Geheimnis nicht direkt erkennbar (vorausgesetzt, Ihr Client stellt immer eine zuverlässige Verbindung zu IFTTT her, nicht zu einem Mitm-Proxy).
Von der Herstellerkanal-Informationsseite (benutzerspezifisch)
Jetzt ist der Schlüssel nur noch eine niedrige Entropie, sodass die Überwachung Ihrer Anforderungen möglicherweise rückgängig gemacht werden kann (es sei denn, Sie füllen sie mit hochqualitativem Rauschen auf). Die Anforderung der Sicherheit pro Sitzung wird in diesem Fall jedoch von TLS erfüllt, das die Einrichtung des HTTPS-Kanals übernimmt .
Um die Kommunikation wesentlich sicherer zu machen, müsste IFTTT die Endpunktauthentifizierung speziell unterstützen. Dies scheint jedoch die Sicherheit zu überschreiten, die auf die anderen dienstseitigen Verbindungen angewendet wird. Dies bedeutet, dass Ihr Herstellerkanal zu IFTTT derzeit genauso sicher ist wie der IFTTT-Kanal zu Ihren Haushaltsgeräten.
quelle