Powrót do projektów
2020

Reverse engineering protokołu TP-Link Tapo

JavaPython

Inteligentne gniazdka TP-Link Tapo posługują się nieudokumentowanym lokalnym protokołem HTTP. Odtworzyłem go, dekompilując aplikację na Androida: handshake z wymianą kluczy RSA, warstwę szyfrowania AES nazywaną przez producenta securePassthrough oraz przepływ logowania, który działa na jej podstawie.

Opublikowałem implementacje proof-of-concept w Javie i Pythonie, które były szeroko forkowane i przepisywane przez społeczność. TP-Link przeszedł od tego czasu na nowszy protokół KLAP, ale securePassthrough pozostaje udokumentowaną ścieżką zapasową w wielu bibliotekach.