Como gerar uma senha de uso único com base no tempo com o IFTTT?

9

Registrei-me recentemente no IFTTT , que parece um serviço fantástico para encadear eventos para criar uma casa inteligente ou automatizar vários serviços.

Acabei de encontrar o canal Maker, que permite fazer solicitações HTTP simples (por exemplo, GET e POST), e espero usá-lo para enviar com segurança uma mensagem para um Raspberry Pi que estou executando aguardando qualquer solicitação de API em uma determinada rota (digamos, por exemplo POST /foo).

O artigo Makezine que vinculei sugere este método para segurança:

Agora, o que fiz acima foi terrivelmente inseguro, basicamente expus ao mundo um script - um aplicativo da Web em outras palavras - que poderia alternar um interruptor que controla uma luz na minha casa. Obviamente, isso não é algo que você deseja fazer, mas é por isso que os serviços da IFTTT oferecem os recursos para passar mais informações ao serviço remoto.

Não seria difícil configurar um link autenticado TOTP entre os dois, por exemplo, ou uma troca de token ou chave - e proteger sua própria conta IFTTT? Eles acabaram de adicionar autenticação de dois fatores.

Li mais sobre Senhas descartáveis baseadas em tempo na Wikipedia, o que parece sugerir que há um elemento de computação envolvido para gerar a senha descartável.

Como o IFTTT não suporta encadeamento de tarefas ou scripts, como eu gero o TOTP conforme sugerido no artigo? É possível fazer isso, pois alguns cálculos são necessários e não parece haver uma maneira de fazer isso?

Aurora0001
fonte
Você está enviando dados específicos do IFTTT (conteúdo do correio, ...)? Nesse caso, você pode incluir uma parte (assunto) como uma senha para sua consulta. O SSL também é suficiente para você enviar uma mensagem ou realmente precisa de uma senha?
Goufalite
2
@ Goufalite, o objetivo da senha é mais para autenticação - o SSL fornece segurança da camada de transporte, mas não garante que a solicitação seja realmente do meu applet.
Aurora0001
se você tiver um conjunto de senhas armazenadas em algum lugar, gerado regularmente, o IFTTT não terá problemas em enviá-las uma a uma! direita?
Prashanth Benny
@PrashanthBenny, minha pergunta é especificamente sobre a geração. Você não pode fazer quaisquer operações matemáticas em IFTTT, no entanto, o artigo recomenda este algoritmo que faz requerem alguma computação, por isso não parece ser possível.
Aurora0001
11
Deixe-me garantir que não haja fontes falando o contrário! :)
Prashanth Benny 02/02

Respostas:

3

O artigo vinculado é um pouco enganador. A interface fornecida pelo IFTTT não está completamente aberta, requer uma chave na solicitação. Como a solicitação é feita usando HTTPS, o segredo não é diretamente observável (desde que seu cliente sempre se conecte de maneira confiável ao IFTTT, não a um proxy mitm).

Na página de informações do canal do fabricante (específico do usuário)

Para acionar um evento Faça uma solicitação da web POST ou GET para:

https://maker.ifttt.com/trigger/ {event} / com / key / my-secret-key Com um corpo JSON opcional de:

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

Os dados são completamente opcionais e você também pode passar value1, value2 e value3 como parâmetros de consulta ou variáveis ​​de formulário. Este conteúdo será passado para a ação em sua receita.

Você também pode experimentá-lo com curl a partir de uma linha de comando.

curl -X POST https://maker.ifttt.com/trigger/ {event} / com / key / minha chave secreta

Agora, a chave é apenas baixa entropia; portanto, pode ser revertida o monitoramento de suas solicitações (a menos que você as atenda com ruído de alta qualidade), mas a solicitação de segurança por sessão é, neste caso, atendida pelo TLS, que lida com a configuração do canal HTTPS .

Para tornar a comunicação significativamente mais segura, seria necessário que o IFTTT suporte especificamente a autenticação de terminal, mas isso parece exceder a segurança aplicada aos outros links do lado do serviço. Isso significa que seu canal do fabricante para o IFTTT é atualmente igualmente seguro como o canal IFTTT para seus eletrodomésticos.

Sean Houlihane
fonte