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.