如何使用IFTTT生成基于时间的一次性密码?


9

我最近在IFTTT注册,这似乎是一项很棒的服务,可以将事件链接在一起,以创建智能家居或自动执行各种服务。

我刚刚找到了Maker通道,该通道可让您发出简单的HTTP请求(例如GET和POST),我希望以此为基础向正在运行的Raspberry Pi安全发送消息,该消息正在等待任何API请求在某条路线上(例如POST /foo)。

我链接的Makezine文章建议使用此方法来提高安全性:

现在,我在上面所做的操作非常不安全,我基本上向世人展示了一个脚本(换句话说就是Web应用程序),该脚本可以打开和关闭控制我家照明的开关。显然,这不是您想要执行的操作,这就是IFTTT的服务提供将更多信息传递到远程服务的功能的原因。

例如,在这两者之间建立经过TOTP身份验证的链接,或者令牌或密钥交换,并保护您的IFTTT帐户本身,将不会很困难?他们刚刚添加了两因素身份验证。

我在Wikipedia上阅读了更多有关基于时间的一次性密码的信息,这似乎表明为了生成一次性密码,涉及到一些计算元素。

由于IFTTT不支持任务链或任何脚本,因此如何按照本文中的建议生成TOTP?由于需要进行一些计算并且似乎没有一种方法可以执行,因此完全可以这样做吗?


您是否正在从IFTTT发送特定数据(邮件内容,...)?如果是这样,您可以将其一部分(主题)作为查询密码。SSL是否足以发送消息或您确实需要密码?
Goufalite

2
@Goufalite密码的目的更多是用于身份验证-SSL提供传输层安全性,但不能保证请求实际上来自我的applet。
Aurora0001

如果您有一组定期存储的密码存储在某个地方,那么IFTTT一次发送就不会有问题!对?
Prashanth Benny

@PrashanthBenny,我的问题专门针对一代。您无法在IFTTT上进行任何数学运算,但是本文推荐此算法,它确实需要进行一些计算,因此似乎不可能。
Aurora0001

1
让我确保没有其他消息来源在说!:)
Prashanth Benny

Answers:


3

链接的文章有点误导。IFTTT提供的接口尚未完全打开,它需要请求中的密钥。由于请求是使用HTTPS发出的,因此无法直接观察到机密(前提是您的客户端始终可靠地连接到IFTTT,而不是mitm代理)。

制造商渠道信息页面(特定于用户)

触发事件发出POST或GET Web请求至:

https://maker.ifttt.com/trigger/ {event} / with / key / my-secret-key具有可选的JSON主体:

{“ value1”:“”,“ value2”:“”,“ value3”:“”}

数据是完全可选的,您还可以将value1,value2和value3传递为查询参数或表单变量。该内容将被传递到配方中的操作。

您也可以从命令行使用curl尝试一下。

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

现在,密钥仅是低熵,因此有可能从监视您的请求中被逆转(除非您用高质量的噪声填充它们),但是在这种情况下,用于处理HTTPS通道的TLS满足了每次会话安全性的请求。

为了使通信更加安全,需要IFTTT特别支持终结点身份验证,但这似乎超出了应用于其他服务端链路的安全性。这意味着,您通往IFTTT的制造商渠道目前与通往家用电器的IFTTT渠道同样安全。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.