Comment on Does Shuzku / wireless debugging demand a trusted wifi device?
wyfpm@lemdro.id 3 weeks agoPerhaps my question had semiconsciously stemmed from this:
Why would Android ask me to authorize a whole network for wireless debugging, if it then proceeds to demand device-permissions anyway?
I understand it is just a second layer of security, or, a relic of times when wifi connections were unencrypted. But if so, then wireless debugging should be just unenanable if elsewhere in Android settings, insecure wifi networks are enabled / if you presently are on one.
(Is adb encrypted anyway, as a protocol itself? If I authorized, say, my laptop, wirelessly, would the modem be able to read my comments? Those aren’t questions for you, btw, just musings. I should probably hit ai / Github for those.)
FooBarrington@lemmy.world 3 weeks ago
Ah, sorry, seems like I was wrong on the whole “no network connection needed”, but the reason is the explanation for your question!
The only way for your phone to recognize/authenticate the source of an incoming ADB connection is the MAC address. Basically every device that sends/receives ethernet packets has to have a unique “fingerprint”, so everyone knows it’s still the same device if it disconnects & reconnects etc. Everything else (IP address etc.) can change at any time, so the MAC address is the only fingerprint available.
But devices can spoof (change) their MAC address. That’s a really useful feature in many cases, e.g. phones these days use a random MAC for every new network, so a network provider can’t track you moving through multiple different networks. Also there’s no way to prevent it with our current network design. But this means that a malicious actor could wait for your trusted device to disconnect, then change their MAC to the one from your trusted device, and thus send malicious ADB commands.
Androids solution is to make you trust both the network and the device. So as long as you don’t have malicious actors in your trusted network, you’re safe - even if you connect to a different network with malicious actors, they can’t send ADB commands.
wyfpm@lemdro.id 3 weeks ago
I see, makes sense. Thanks.
Hm, so, even if it is true that Shizuku-pairing directly privileges only the phone itself – that the adb commands never leave the phone – it follows that a malicious wifi modem, knowing all devices’ mac addresses, could, perhaps, feign being the phone, mac-wise. And issue its own commands, which the phone wouldn’t tell aren’t its own.
Unless adb privileges are also identified by the ip address of origin. Unless, the modem could also feign those and multicast them, or something. Could it?
Oh well. This is straying quite far from Android. Thank you regardless.
FooBarrington@lemmy.world 3 weeks ago
I just tested some scenarios:
So you’re safe as long as you don’t start Shizuku & trust the network while connected to a potentially malicious network.
wyfpm@lemdro.id 3 weeks ago
That is a lovely analysis for this lowly thread of mine. Thanks again.
Thing is, I don’t trust my modem. Just on principle. It’s nonlibre software.
I’ll reread your posts in a while.
Right. The very thing I want adb for is, among other things, to install apps which Google arbitrarily declared obsolete (the api version declaration, I believe it is). I believe many good apps on F-Droid are uninstallable because of that.
And sadly – though that doesn’t seem to be Google’s fault – it still doesn’t seem possible to compile Android apps on Android, so I can’t just get sources, change the manifest, and recompile them and install them myself, to escape that.
But that’s for another thread.