Як створити одноразовий пароль на основі часу за допомогою IFTTT?


9

Нещодавно я зареєструвався в IFTTT , що видається фантастичним сервісом для об'єднання подій разом, щоб створити розумний дім або автоматизувати різні сервіси.

Щойно я знайшов канал Maker, який дозволяє робити прості HTTP-запити (наприклад, GET і POST), і я сподіваюся використовувати це для надійного надсилання повідомлення на Raspberry Pi, який я працюю, і чекає будь-якого запиту API за певним маршрутом (скажімо, наприклад, POST /foo).

Стаття про Makezine, яку я пов’язувала, пропонує цей спосіб для безпеки:

Тепер те, що я робив вище, було жахливо незахищеним, я в основному виставив світові сценарій - веб-додаток іншими словами - який міг включати і вимикати вимикач, що управляє світлом у моєму будинку. Це, очевидно, не те, що ви хочете робити, але саме тому послуги IFTTT надають можливість передавати більше інформації віддаленій службі.

Не важко було б встановити, наприклад, аутентифікований TOTP зв’язок між ними, або маркер або обмін ключами - і захистити свій обліковий запис IFTTT? Вони щойно додали двофакторну автентифікацію.

Я читаю докладніше про одноразові паролі в Вікіпедії, які, начебто, підказують, що для формування одноразового пароля є елемент обчислення.

Оскільки IFTTT не підтримує ланцюжок завдань або будь-який сценарій, то як я можу генерувати TOTP, як запропоновано в статті? Чи взагалі це можливо зробити, оскільки потрібні деякі обчислення і, здається, не існує способу це зробити?


Ви надсилаєте конкретні дані з IFTTT (вміст пошти, ...)? Якщо так, ви можете включити частину (тему) як пароль для вашого запиту. Також SSL достатньо, щоб ви надіслали повідомлення чи вам справді потрібен пароль?
Гуфаліт

2
@Goufalite метою пароля є більше автентифікації - SSL забезпечує безпеку транспортного рівня, але не має гарантій, що запит насправді є з мого аплету.
Aurora0001

якщо у вас є набір паролів, які зберігаються десь, генеруються регулярно, IFTTT не матиме жодних проблем при надсиланні їх один за одним! правильно?
Прашант Бенні

@PrashanthBenny, моє запитання стосується конкретно покоління. Ви не можете робити будь-які математичні операції IFTTT, але стаття рекомендує цей алгоритм , який робить вимагає деяких обчислень, тому не представляється можливим.
Aurora0001

1
Дозвольте мені переконатися, що немає джерел, які говорять іншим способом! :)
Prashanth Benny

Відповіді:


3

Пов'язана стаття трохи вводить в оману. Інтерфейс, наданий IFTTT, не є повністю відкритим, для нього потрібен ключ у запиті. Оскільки запит робиться за допомогою HTTPS, секрет безпосередньо не спостерігається (за умови, що ваш клієнт завжди надійно підключається до IFTTT, а не mitm-проксі).

На сторінці інформації про канал виробника (конкретно для користувача)

Для запуску події Зробіть веб-запит POST або GET на:

https://maker.ifttt.com/trigger/ {event} / з / key / my-secret-key З необов'язковим корпусом JSON з:

{"value1": "", "value2": "", "value3": ""}

Дані є абсолютно необов’язковими, і ви також можете передавати значення1, значення2 та значення3 як параметри запиту або змінну форми. Цей вміст буде передано до дії за вашим рецептом.

Ви також можете спробувати його з завитком з командного рядка.

curl -X POST https://maker.ifttt.com/trigger/ {подія} / з / ключ / мій секретний ключ

Тепер ключ лише низької ентропії, тому потенційно може бути відхилений від моніторингу ваших запитів (якщо ви не піддаєте їх високоякісному шуму), але запит на безпеку за сеанс в цьому випадку задовольняється TLS, який здійснює обробку каналу HTTPS .

Щоб зробити зв’язок значно більш безпечним, потрібно IFTTT спеціально підтримувати аутентифікацію кінцевих точок, але це, схоже, перевищує захист, який застосовується до інших посилань на стороні послуги. Це означає, що ваш канал виробника до IFTTT наразі настільки ж безпечний, як канал IFTTT для ваших домашніх приладів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.