这听起来像是一个愚蠢的问题,但我注意到在不同 TCP/IP 层的许多标头中有很多未使用/保留的字段。
比如TCP头的100到103位是不用的,应该设置为0。最后还有不用的填充字段。
这些字段中的值是否通过网络保存?当一个数据包每次遍历不同的网络节点时都被重建时,其中一个是否有可能通过跳过或假设这些字段使用默认的常用值并将这些字段设置为 0 来进行优化?
换句话说,两个设备是否可以通过网络发送类似于莫尔斯电码的东西,例如隐藏在 ICMP 标头的保留字段或任何类似内容中?
这听起来像是一个愚蠢的问题,但我注意到在不同 TCP/IP 层的许多标头中有很多未使用/保留的字段。
比如TCP头的100到103位是不用的,应该设置为0。最后还有不用的填充字段。
这些字段中的值是否通过网络保存?当一个数据包每次遍历不同的网络节点时都被重建时,其中一个是否有可能通过跳过或假设这些字段使用默认的常用值并将这些字段设置为 0 来进行优化?
换句话说,两个设备是否可以通过网络发送类似于莫尔斯电码的东西,例如隐藏在 ICMP 标头的保留字段或任何类似内容中?
没有任何地方都表现相同的“网络”这样的东西。网络由路由器组成,它们只是简单地转发数据包。然后你有数据包过滤防火墙,它可能会不改变这些数据包,如果设置了保留位,可能会阻止这些数据包,或者可能通过将保留位设置为零来清理数据包。然后你有应用程序级网关/防火墙,它们实际上是 TCP 连接的端点,它创建一个由不同数据包组成的新连接,当然保留位设置为一个合理的值。
换句话说,两个设备是否可以通过网络发送类似于莫尔斯电码的内容,例如,ICMP 标头的保留字段或类似内容?
有足够多的侧信道可以让设备以隐藏的方式进行通信。这可以是保留位、消息的时间或大小、应用层信息(如额外空间)或基于文本的协议中区分大小写、隐写技术等。根据网络设备的能力,此类旁道信息将不经更改通过,可能会被无意中删除或可能被显式删除。