Wie generiere ich mit IFTTT ein zeitbasiertes Einmalpasswort?

9

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?

Aurora0001
quelle
Senden Sie bestimmte Daten von IFTTT (E-Mail-Inhalt, ...)? In diesem Fall können Sie einen Teil davon (Betreff) als Kennwort für Ihre Abfrage angeben. Reicht SSL auch aus, um eine Nachricht zu senden, oder benötigen Sie wirklich ein Passwort?
Goufalite
2
@Goufalite Das Ziel des Kennworts ist eher die Authentifizierung. SSL bietet Sicherheit auf Transportschicht, kann jedoch nicht garantieren, dass die Anforderung tatsächlich von meinem Applet stammt.
Aurora0001
Wenn Sie eine Reihe von Passwörtern gespeichert haben, die regelmäßig generiert werden, kann IFTTT sie problemlos einzeln senden! richtig?
Prashanth Benny
@PrashanthBenny, meine Frage bezieht sich speziell auf die Generation. Sie können keine mathematischen Operationen mit IFTTT ausführen. In diesem Artikel wird jedoch dieser Algorithmus empfohlen , für den einige Berechnungen erforderlich sind. Daher scheint dies nicht möglich zu sein.
Aurora0001
1
Lassen Sie mich sicherstellen, dass keine Quellen in die andere Richtung sprechen! :)
Prashanth Benny

Antworten:

3

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)

So lösen Sie ein Ereignis aus Stellen Sie eine POST- oder GET-Webanforderung an:

https://maker.ifttt.com/trigger/ {event} / with / key / my-secret-key Mit einem optionalen JSON-Body von:

{"Wert1": "", "Wert2": "", "Wert3": ""}

Die Daten sind vollständig optional, und Sie können auch value1, value2 und value3 als Abfrageparameter oder Formularvariablen übergeben. Dieser Inhalt wird an die Aktion in Ihrem Rezept weitergeleitet.

Sie können es auch mit Curl über eine Befehlszeile versuchen.

curl -X POST https://maker.ifttt.com/trigger/ {event} / with / key / my-secret-key

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.

Sean Houlihane
quelle