Tcp 网络有多不安全?

Tcp 网络有多不安全?,tcp,security,Tcp,Security,我刚刚开始编写套接字程序。了解到单个UDP数据包有源端口、目标端口和一些代表路由器的MAC地址等。我想知道为什么任何人都不能创建带有虚假信息的自定义数据包并通过互联网发送。我想知道我们的电脑有多安全。应该做些什么来保护它 正如我曾经说过的,大多数TCP/IP协议栈都“泄漏信任”——作为一名软件开发人员,您并没有多少泄漏信任(假设您正在寻找编程解决方案,否则,stackoverflow是一个错误的论坛,请转到serverfault或superuser;-)除了选择和仔细实施在安全预期方面合理的协议

我刚刚开始编写套接字程序。了解到单个UDP数据包有源端口、目标端口和一些代表路由器的MAC地址等。我想知道为什么任何人都不能创建带有虚假信息的自定义数据包并通过互联网发送。我想知道我们的电脑有多安全。应该做些什么来保护它

正如我曾经说过的,大多数TCP/IP协议栈都“泄漏信任”——作为一名软件开发人员,您并没有多少泄漏信任(假设您正在寻找编程解决方案,否则,stackoverflow是一个错误的论坛,请转到serverfault或superuser;-)除了选择和仔细实施在安全预期方面合理的协议之外,我们还可以做到这一点


HTTPS(具有对证书的严格检查等)是一种相当强大的方法;为了增强安全性,请研究基于SSH和VPN的方法。当然,任何人都不应该假设隐私或强身份验证已经到位,除非他们已经采取了特定的步骤(如果他们已经采取了这些步骤,他们可能仍然会受到成功的攻击,这就是为什么建议使用现有的或多或少“经验证”的解决方案,如HTTPS、SSH、VPN;-)答案有两个不同的方面

一是网络依赖于TCP,而不是UDP。这意味着它是面向连接的。您的包将被拒绝,除非它似乎是现有连接的一部分(这意味着,除其他外,它必须具有正确的源IP和端口,并且必须具有正确的序列号才能放入接收窗口)。当然,这仍然可以不费吹灰之力地伪造。但它确实需要您了解一些原始连接上发送的数据包

另一部分是,每当我们需要确保数据包的发送者是他们声称的人时,我们都会使用加密


大多数数据包并不真的需要这个。如果有人向谷歌发送一个似乎来自我IP的请求,这并不是什么大不了的事。但是在进行信用卡交易时,它变得更为重要。

是的,任何人都可以用他们想要的任何数据创建数据包并通过互联网发送出去。特别是使用UDP,您可以假装成任何您想要的人(除非您的ISP进行出口过滤)。无法信任UDP的源地址。TCP的源地址在某种程度上可以更改(您知道数据必须来自有问题的IP地址或路由上的某个人)

欢迎来到互联网:)


编辑:只是为了澄清出口过滤是发送ISP必须做的事情。作为接收者,在不与发送者通信的情况下,您实际上无法验证UDP数据包上的地址。您至少可以部分信任传入的TCP连接的唯一原因是,TCP需要某些控制数据流返回到发送方(因此需要有效的IP地址/端口来设置和维护连接)。

嗯,许多人创建无效数据包并通过Internet发送它们;例如,阅读


[完全]安全的计算机是指关闭的计算机。为了使您运行的电脑更安全,您应该依靠防火墙软件/硬件,它可以检测到格式错误的数据包。

可以轻松创建带有虚假信息的自定义数据包。因此,您必须确保自己不易受到攻击。

您说过web依赖于TCP,但我认为一些多媒体内容是在UDP上运行的。这是正确的吗?@fella HTTP是TCP,而UDP通常留给流媒体和其他东西,如果一些数据包由于正常的网络噪音而消失,这并不重要。还要注意,“web”是HTTP,它与“Internet”不同