3 points par GN⁺ 2025-09-16 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • J’ai acheté une caméra Tapo pour observer mon chien à la maison, mais cela m’a finalement amené à expliquer à rebours le fonctionnement des appareils et de l’app TP-Link
  • Pour analyser le processus d’onboarding et la structure des communications API chiffrées, diverses techniques ont été utilisées : MITM, décompilation d’APK, création de scripts de déchiffrement, etc.
  • La découverte du mot de passe administrateur initial et du processus de dérivation des clés de session a permis de déchiffrer les messages chiffrés et d’identifier un problème de synchronisation peu fiable entre l’appareil et le compte cloud
  • L’analyse de l’ensemble du flux d’onboarding a permis d’automatiser en Bash les principaux appels API, la création de compte, le changement de mot de passe, la connexion au Wi‑Fi, etc.
  • Le billet pointe les failles de conception de la sécurité du firmware Tapo, une implémentation du chiffrement peu sophistiquée et une synchronisation de compte irrégulière, autant de traits typiques des appareils IoT à bas coût

Aperçu du projet

  • L’auteur a acheté et utilisé une caméra Tapo d’entrée de gamme pour surveiller son chien à l’intérieur
  • Au fil de l’utilisation, face à une configuration peu pratique et au manque d’informations disponibles en ligne, il a été poussé à creuser en profondeur le fonctionnement du produit
  • Des problèmes inattendus sont survenus lors de l’intégration avec frigate et de l’activation du 2way audio, ce qui a éveillé son intérêt pour une méthode d’onboarding direct sans intégration cloud

Analyse de l’onboarding et de la structure d’authentification

  • Pour analyser la procédure de connexion de la caméra Tapo, l’auteur a intercepté le trafic entre l’app et la caméra à l’aide d’un proxy MITM et de l’outil de hook dynamique frida
    • Les applications récentes ignorent souvent les proxys et utilisent des mécanismes de résistance au contournement comme le certificate pinning, ce qui rend pertinente une approche fondée sur des outils dynamiques
  • Une fois ce dispositif de contournement en place, il a pu confirmer précisément le processus de connexion du compte administrateur par défaut dans le flux d’onboarding de la caméra
  • Il a découvert que l’API de connexion par défaut fonctionnait avec un mot de passe par défaut propre à l’appareil, distinct du mot de passe du compte cloud

Structure du chiffrement et recherche du mot de passe par défaut

  • Grâce à la décompilation de l’APK (avec JADX) et à l’analyse du code, il a récupéré le mot de passe par défaut du compte admin (TPL075526460603)
  • Il a constaté que, même après modification du mot de passe cloud, les caméras déjà associées ne détectaient pas le changement, ce qui confirme une synchronisation imparfaite des mots de passe entre l’app et la caméra
  • Ayant découvert le mot de passe par défaut, il a implémenté la logique de dérivation des clés de session (lsk, ivb), rendant possible le déchiffrement en temps réel des messages API chiffrés

Scripts mitmproxy et analyse de l’API

  • En s’appuyant sur le projet open source PyTapo, il a analysé avec précision le flux API réel de l’onboarding Tapo
  • Le script tapo_decrypt_pretty.py permet de :
    • détecter le handshake de connexion
    • extraire les clés de session
    • déchiffrer les API chiffrées, produire une sortie plus lisible et enregistrer le JSON
  • Parmi l’ensemble des appels API de l’onboarding, seuls les processus significatifs ont été retenus pour créer un workflow automatisé
    • récupération de la liste Wi‑Fi (scanApList)
    • activation des comptes RTSP/ONVIF
    • changement du mot de passe administrateur
    • connexion au Wi‑Fi

Automatisation et résultats

  • Un script Bash (tapo_onboard.sh) a été conçu pour exécuter automatiquement l’ensemble de ce processus d’onboarding
    • connexion admin par défaut
    • sélection et connexion au Wi‑Fi
    • suppression du logo sur le flux de la caméra
    • autorisation de l’usage de RTSP/ONVIF
    • réinitialisation du mot de passe administrateur
  • En raison de la structure du firmware de la caméra, les caractéristiques et faiblesses suivantes ont été observées
    • certaines API utilisent un hachage SHA-256, mais d’autres conservent des mécanismes plus anciens comme MD5
    • il existe deux clés publiques, sans qu’il soit clair dans quelles situations utiliser l’une ou l’autre
    • la synchronisation des mots de passe entre l’app et l’appareil est très instable

Conclusion et impressions

  • La structure de sécurité du firmware et des API de la caméra Tapo donne l’impression d’un assemblage de fortune et d’une conception peu sophistiquée
  • Le projet lui a permis d’entrevoir concrètement les failles de sécurité et la réalité d’un système d’onboarding imparfait dans les appareils IoT à bas coût
  • Il a finalement atteint son objectif initial, à savoir surveiller son chien, et a surtout constaté que celui-ci dormait la plupart du temps sur le canapé ou le lit

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.