是否可以检测某些 TCP 或 UDP 流量是否由 Android 手机本身直接生成和处理,或者是否被绑定到其他机器?
使用 HTTP,检测相对简单 - 只需查看请求中的
User-Agent
字符串,就有可能看到某种揭示模式。
那些谨慎的协议呢,比如 https、ssh、IPsec、OpenVPN 等?是否可以根据 TCP/UDP 标头或内容来检测发起者操作系统?
如何伪装流量以避免通过加密协议的被动指纹识别进行检测?
例如,如果手机运行 Android 2.2,并且连接到 OS X 或 OpenBSD,哪些 TCP/UDP 和 https/ssh/IPsec/OpenVPN 参数会显示非 Android 操作系统?
可以根据TTL、TCP ISN等进行分析。http://www.cse.sc.edu/~wyxu/papers/wisec66-schulz.pdfu200e包含详细分析
您似乎正在寻找 TCP/IP 堆栈指纹识别 软件。
P0f,代表“被动操作系统指纹识别”,在 TCP 级别观察数据包,并根据网络堆栈实现对操作系统做出假设。 P0f 被动地执行此操作,这意味着它不需要与客户端交互。
p0f 网站有一个示例,您可以用它来检查自己的指纹。请注意,许多移动网络提供商通过代理运行,这往往意味着代理是指纹识别的对象,而不是客户端。
另请参阅 EFF 的 Panopticlick 项目,该项目表明几乎每个网络浏览器都具有唯一的指纹识别功能,即使在阻止 cookie 时也是如此。请不要滥用指纹侵犯用户隐私。