내 강아지를 감시하려 했더니, TP-Link를 감시하게 됨

8 hours ago 3

  • 집안 강아지 관찰을 위해 Tapo 카메라를 구입했지만, 예기치 않게 TP-Link 기기와 앱의 동작 원리를 역설명함
  • 온보딩 과정암호화 API 통신 구조를 분석하기 위해 MITM, APK 디컴파일, 암호 해독 스크립트 생성 등 다양한 기법을 사용함
  • 초기 관리자 비밀번호의 발견 및 세션 키 파생 과정을 통해 암호화된 메시지를 해독하고, 디바이스와 클라우드 계정 간 신뢰성 없는 동기화 문제를 파악함
  • 온보딩 전체 흐름을 분석해 주요 API 호출 과정, 계정 생성, 비밀번호 변경, Wi-Fi 연결 과정 등을 Bash 스크립트로 자동화함
  • Tapo 펌웨어 보안 설계의 허점과 덜 정교한 암호화 구현, 불규칙한 계정 동기화 등, 저가형 IoT 디바이스의 특징을 지적함

프로젝트 개요

  • 필자는 실내 강아지 관찰을 위해 저가형 Tapo 카메라를 구입해 사용함
  • 사용 과정에서 설정의 불편함과 온라인 정보의 부족으로 인해, 제품 동작 원리를 깊이 파헤치게 되는 동기를 갖게 됨
  • frigate 연동, 2way audio 활성화 등에서 예상치 못한 문제가 발생해, 클라우드 연동 없는 직접 온보딩 방법에 관심을 갖게 됨

온보딩 및 인증 구조 분석

  • Tapo 카메라의 연결 절차를 분석하기 위해 MITM proxyfrida 동적 후킹 도구를 사용해 앱과 카메라 간 트래픽을 가로챔
    • 최신 앱들은 프록시 무시, certificate pinning 등 우회 저항 기능이 있으므로, 동적 도구를 이용한 방법이 유효함
  • 이러한 우회 구조 세팅 후, 카메라 온보딩 플로우에서 기본 관리자 계정 login 과정을 정확하게 확인함
  • 기본 로그인 API는 클라우드 계정 암호와 별개로 디바이스 고유의 기본 비밀번호로 동작함을 발견함

암호화 구조 및 기본 비밀번호 탐색

  • APK 디컴파일(JADX 사용) 및 코드 분석을 통해, admin 계정의 기본 비밀번호(TPL075526460603)를 확보함
  • 클라우드 암호를 변경해도 이미 연동된 카메라 기기는 변경을 인지하지 못하는 점에서, 앱과 카메라 간 비밀번호 동기화가 부정확함을 확인함
  • 기본 비밀번호를 알아냈으므로, 세션 키(lsk, ivb) 파생 로직을 구현해 암호화 API 메시지를 실시간으로 해독 가능하게 함

mitmproxy 스크립팅 및 API 분석

  • PyTapo 오픈소스 프로젝트를 참고해, 실제 Tapo 온보딩 절차의 API 흐름을 정밀히 분석함
  • tapo_decrypt_pretty.py 스크립트를 통해
    • 로그인 핸드셰이크 감지
    • 세션 키 추출
    • 암호화 API 해독 및 가독성 높은 출력, JSON 저장
  • 전체 온보딩 API 호출 내역 중 유의미한 주요 과정만 추려 자동화 워크플로우를 생성함
    • Wi-Fi 목록 조회(scanApList)
    • RTSP/ONVIF 계정 활성화
    • 관리자 비밀번호 변경
    • Wi-Fi 연결

자동화 및 결과

  • Bash 스크립트(tapo_onboard.sh)로 위 모든 온보딩 과정을 자동 실행하게 구성함
    • 기본 admin 로그인
    • Wi-Fi 선택 및 연결
    • 카메라 피드 로고 제거
    • RTSP/ONVIF 사용 허용
    • 관리자 비밀번호 재설정
  • 카메라 펌웨어 구조상 다음과 같은 특징 및 허점을 발견함
    • 일부 API는 SHA-256 해시를 사용하나, 몇몇은 MD5 등 구식 암호 방식 유지
    • 공개키가 2개 존재하며, 어떤 상황에 어느 키를 사용해야 하는지 불분명함
    • 앱과 디바이스 간 비밀번호 동기화가 매우 불안정함

결론 및 소감

  • Tapo 카메라 펌웨어와 API 보안 구조는 임시방편 및 덜 정교한 설계로 느껴짐
  • 저가형 IoT 기기의 보안적 허점과 불완전한 온보딩 시스템 현실을 간접적으로 체험함
  • 프로젝트의 궁극적인 목표였던 강아지 체크에는 성공했으며, 강아지는 소파 혹은 침대에서 자는 모습을 주로 확인함

Read Entire Article