Is it possible to detect whether certain TCP or UDP traffic is generated and processed directly by an Android mobile phone itself, or is being tethered to a different machine?
With HTTP, detection is relatively simple -- just look at the User-Agent
string in the requests, and there is a certain likelihood to see some sort of a revealing pattern.
What about the discreet protocols, like https, ssh, IPsec, OpenVPN etc? Is it possible to detect the originator OS based on the TCP/UDP headers or content?
How would one masquerade the traffic to avoid detection through the passive fingerprinting of the encrypted protocols?
For example, if the mobile phone is running Android 2.2, and is tethered to OS X or OpenBSD, which TCP/UDP and https/ssh/IPsec/OpenVPN parameters would reveal the non-Android OS?