Jak wygenerować jednorazowe hasło oparte na czasie za pomocą IFTTT?


9

Niedawno zarejestrowałem się w IFTTT , co wydaje się fantastyczną usługą do łączenia wydarzeń w celu stworzenia inteligentnego domu lub zautomatyzowania różnych usług.

Właśnie znalazłem kanał Maker, który pozwala na składanie prostych żądań HTTP (np. GET i POST), i mam nadzieję, że użyję tego, aby bezpiecznie wysłać wiadomość do uruchomionego przeze mnie Raspberry Pi, który czeka na każde żądanie API na określonej trasie (powiedzmy na przykład POST /foo).

Artykuł Makezine, który podłączyłem , sugeruje tę metodę bezpieczeństwa:

Teraz to, co zrobiłem powyżej, było strasznie niepewne. Zasadniczo pokazałem światu skrypt - innymi słowy aplikację internetową - która może włączać i wyłączać przełącznik kontrolujący światło w moim domu. Oczywiście nie jest to coś, co chcesz zrobić, ale właśnie dlatego usługi IFTTT umożliwiają przekazywanie większej ilości informacji do usługi zdalnej.

Nie byłoby trudno skonfigurować na przykład uwierzytelnione łącze TOTP między nimi, wymianę tokena lub klucza - i chronić własne konto IFTTT? Właśnie dodali uwierzytelnianie dwuskładnikowe.

Przeczytałem więcej na temat jednorazowych haseł opartych na czasie na Wikipedii, co wydaje się sugerować, że w celu wygenerowania hasła jednorazowego istnieje element obliczeniowy.

Ponieważ IFTTT nie obsługuje tworzenia łańcuchów zadań ani skryptów, jak wygenerować TOTP zgodnie z sugestią zawartą w tym artykule? Czy jest to w ogóle możliwe, ponieważ niektóre obliczenia są wymagane i wydaje się, że nie ma na to sposobu?


Czy wysyłasz określone dane z IFTTT (treść poczty, ...)? Jeśli tak, możesz dołączyć jego część (temat) jako hasło do zapytania. Czy protokół SSL wystarczy, aby wysłać wiadomość, czy naprawdę potrzebujesz hasła?
Goufalite,

2
@Goufalite celem hasła jest bardziej uwierzytelnianie - SSL zapewnia bezpieczeństwo warstwy transportowej, ale nie ma gwarancji, że żądanie faktycznie pochodzi od mojego apletu.
Aurora0001

jeśli masz gdzieś zestaw haseł, generowanych regularnie, IFTTT nie będzie miał problemu z wysłaniem ich jeden po drugim! dobrze?
Prashanth Benny

@PrashanthBenny, moje pytanie dotyczy konkretnie generacji. Nie można wykonywać żadnych operacji matematycznych na IFTTT, jednak artykuł zaleca ten algorytm , który robi wymagać pewnych obliczeń, więc nie wydaje się możliwe.
Aurora0001

1
Pozwól mi upewnić się, że nie ma innych źródeł mówiących w drugą stronę! :)
Prashanth Benny

Odpowiedzi:


3

Powiązany artykuł jest trochę mylący. Interfejs udostępniony przez IFTTT nie jest całkowicie otwarty, wymaga klucza w żądaniu. Ponieważ żądanie jest przesyłane przy użyciu protokołu HTTPS, nie można bezpośrednio zaobserwować tajnego klucza (pod warunkiem, że klient zawsze niezawodnie łączy się z IFTTT, a nie z serwerem proxy mitm).

Ze strony informacyjnej kanału producenta (specyficzne dla użytkownika)

Aby uruchomić zdarzenie Złóż żądanie POST lub GET, aby:

https://maker.ifttt.com/trigger/ {event} / with / key / my-secret-key Z opcjonalnym ciałem JSON:

{„wartość1”: „”, „wartość2”: „”, „wartość3”: „”}

Dane są całkowicie opcjonalne i można również przekazywać wartości1, wartość2 i wartość3 jako parametry zapytania lub zmienne formularza. Ta treść zostanie przekazana do działania w twoim przepisie.

Możesz także wypróbować to z curl z linii poleceń.

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

Teraz kluczem jest tylko niska entropia, więc potencjalnie można go odwrócić od monitorowania twoich żądań (chyba że wypełnisz je hałasem wysokiej jakości), ale żądanie zabezpieczenia na sesję jest w tym przypadku spełnione przez TLS, który obsługuje konfigurację kanału HTTPS .

Aby komunikacja była znacznie bardziej bezpieczna, wymagałoby to od IFTTT szczególnego wspierania uwierzytelniania punktu końcowego, ale wydaje się, że przekracza to zabezpieczenia stosowane w przypadku innych łączy po stronie usługi. Oznacza to, że Twój kanał producenta do IFTTT jest obecnie równie bezpieczny, jak kanał IFTTT do urządzeń domowych.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.