• घर के अंदर कुत्ते पर नज़र रखने के लिए Tapo कैमरा खरीदा, लेकिन अनपेक्षित रूप से TP-Link डिवाइस और ऐप कैसे काम करते हैं इसका रिवर्स-इंजीनियरिंग जैसा विश्लेषण करने लगा
  • onboarding प्रक्रिया और encrypted API communication की संरचना का विश्लेषण करने के लिए MITM, APK decompile, और decryption script बनाना जैसी कई तकनीकों का उपयोग किया
  • शुरुआती admin password की खोज और session key derivation प्रक्रिया के जरिए encrypted messages को decrypt किया, और डिवाइस व cloud account के बीच अविश्वसनीय synchronization समस्या को पहचाना
  • पूरे onboarding flow का विश्लेषण करके मुख्य API call प्रक्रिया, account creation, password change, और Wi‑Fi connection जैसी चीज़ों को Bash script से automate किया
  • Tapo firmware security design की कमियाँ, कम परिष्कृत encryption implementation, और अनियमित account synchronization जैसी बातें दिखाती हैं कि सस्ते IoT डिवाइसों में कैसी समस्याएँ होती हैं

परियोजना का अवलोकन

  • लेखक ने घर के अंदर कुत्ते पर नज़र रखने के लिए कम कीमत वाला Tapo कैमरा खरीदा और इस्तेमाल किया
  • इस्तेमाल के दौरान setup की असुविधा और ऑनलाइन जानकारी की कमी के कारण, उत्पाद के काम करने के तरीके को गहराई से समझने की प्रेरणा मिली
  • frigate integration और 2way audio enable करने में अप्रत्याशित समस्याएँ आईं, जिससे cloud integration के बिना direct onboarding तरीके में रुचि बनी

Onboarding और authentication संरचना का विश्लेषण

  • Tapo कैमरा की connection प्रक्रिया का विश्लेषण करने के लिए MITM proxy और frida dynamic hooking tool का उपयोग करके ऐप और कैमरा के बीच का traffic intercept किया गया
    • नई ऐप्स अक्सर proxy ignore करना, certificate pinning जैसी bypass-रोधी सुविधाएँ रखती हैं, इसलिए dynamic tools वाला तरीका प्रभावी रहा
  • इस bypass सेटअप के बाद, कैमरा onboarding flow में default administrator account login प्रक्रिया को ठीक-ठीक पहचाना गया
  • यह भी पता चला कि default login API, cloud account password से अलग, डिवाइस-विशिष्ट default password के साथ काम करता है

Encryption संरचना और default password की खोज

  • APK decompile (JADX का उपयोग) और code analysis के जरिए, admin account का default password (TPL075526460603) हासिल किया गया
  • cloud password बदलने पर भी पहले से linked कैमरा डिवाइस उस बदलाव को नहीं पहचानते, इससे ऐप और कैमरा के बीच password synchronization की अशुद्धि की पुष्टि हुई
  • default password पता चलने के बाद, session key (lsk, ivb) derivation logic लागू करके encrypted API messages को real time में decrypt करना संभव हुआ

mitmproxy scripting और API विश्लेषण

  • PyTapo open source project को संदर्भ बनाकर, वास्तविक Tapo onboarding प्रक्रिया के API flow का बारीकी से विश्लेषण किया गया
  • tapo_decrypt_pretty.py script के माध्यम से
    • login handshake का पता लगाना
    • session key निकालना
    • encrypted API को decrypt करके अधिक पठनीय output देना, और JSON में सहेजना
  • पूरे onboarding API call रिकॉर्ड में से केवल महत्वपूर्ण चरण चुनकर एक automated workflow बनाया गया
    • Wi‑Fi सूची देखना (scanApList)
    • RTSP/ONVIF account enable करना
    • administrator password बदलना
    • Wi‑Fi connection करना

Automation और परिणाम

  • Bash script (tapo_onboard.sh) के जरिए ऊपर की पूरी onboarding प्रक्रिया को स्वचालित रूप से चलने लायक बनाया गया
    • default admin login
    • Wi‑Fi चुनना और connect करना
    • कैमरा feed से logo हटाना
    • RTSP/ONVIF उपयोग की अनुमति देना
    • administrator password reset करना
  • कैमरा firmware संरचना में निम्नलिखित विशेषताएँ और कमियाँ मिलीं
    • कुछ APIs SHA-256 hash का उपयोग करती हैं, लेकिन कुछ अब भी MD5 जैसे पुराने cryptographic तरीकों पर टिके हैं
    • public key 2 मौजूद हैं, लेकिन किस स्थिति में कौन-सी key उपयोग करनी है यह स्पष्ट नहीं है
    • ऐप और डिवाइस के बीच password synchronization बहुत अस्थिर है

निष्कर्ष और अनुभव

  • Tapo कैमरा firmware और API security संरचना तात्कालिक जुगाड़ और कम परिष्कृत design जैसी लगती है
  • इस परियोजना के जरिए कम कीमत वाले IoT डिवाइसों की security कमजोरियों और अपूर्ण onboarding सिस्टम की वास्तविकता का अप्रत्यक्ष अनुभव हुआ
  • परियोजना का अंतिम लक्ष्य, यानी कुत्ते पर नज़र रखना, सफल रहा; और कुत्ता ज़्यादातर सोफ़े या बिस्तर पर सोता हुआ ही दिखा

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.