Integrar sistema de controle de piscina ao Home Assistant

Achei esse tópico e gostaria de explicar algumas coisas sobre os equipamentos da Tholz, eu fiz minha casa e me rendi a usar os sistemas de Aquecimento e Piscina deles Wifi, com finalidade de posteriormente usar MITM para construir uma integração com HA, oque não foi possível devido algumas coisas, vou explanar abaixo.(Lembrando meu background é Cloud Engineer e não tenho conhecimento em engenharia reversa)

  1. O App está em AWS Amplify - framework para construção de app mobile da AWS
  2. O app utiliza (o pior) serviço da AWS para Autenticação, o AWS Cognito que basicamente gera credenciais temporarias para você utiliar/logar no serviço.
  3. Aqui as coisas começam a complicar, não é simplesmente “Usa wireshark para pegar as requisições”, por 2 motivos
    3a. Certificado, você precisa usar engenharia reversa para burlar a captura de pacotes
    3b. O app não utiliza HTTPS/Rest para chamada nenhuma.
  4. O app Utiliza invés de REST/HTTPS um serviço chamado - AWS IOT, que não é nada mais que um MQTT da AWS para utilização de devices IOT porém utilizando websocket, nesse caso os equipamentos da Tholz

Bom já explanado o App da Tholz, agora oque foi oque consegui até agora:

  1. Descobrir os itens acima
  2. Consegui desencriptar a comunicação do App usando um self-signed certificate, ou seja o poonto 3.a da lista acima

Tirando essa parte não consegui avançar, coisas que faltam entendimento:

  • Como de fato o Cognito se comporta para autenticação, é um fluxo não tão trivial, eu mesmo não conheço a fundo esse serviço da AWS
  • Conseguir via engenharia reversa pegar as infos que ele manda para o Cognito autenticar, USERPOOL, Secret ID, etc.
  • Descobrir uma maneira de se conecar ao MQTT da AWS IOT utilizando as chaves autenticadas obtidas se por acaso conseguir autenticar manualmente fora do app.

Bom, se alguém quiser mais alguma info posso passar, por enquanto coloquei a idéia de lado pois não tenho tempo muito menos conhecimento em algumas areas desse problema, então se alguem manjar só falar podemos ver junto.

Exemplo de um fluxo de autenticação do Cognito:


Enfim, não é tão simples assim.

1 curtida