我正在开发一个通过互联网接受客户端连接的应用程序。所有这些客户端都在固定的IP地址上,并将建立一个非加密的TCP连接。
当前计划是服务器检查连接来自哪个IP,并且只允许来自已知IP列表的客户端连接?
防止IP欺骗有多安全?
我的理由是,由于这是一个TCP连接,攻击者不能伪造其发件人IP(这很容易),但必须确保数据包返回给他,因此他将不得不破解所有路径上的路由器似乎相当困难。
我知道我可以使用加密技术,比如SSH,但是请坚持使用普通TCP连接的安全性问题。
答案 0 :(得分:2)
通过IP地址限制连接通常是一种很好的实践,因为它可以大大减少攻击面并使攻击的复杂性更高。如其他答案中所述,您现在必须执行IP欺骗或攻击网络本身(错误的BGP路由等)。
尽管如此,IP地址限制应该被用作深度防御方法的一层。你可以加密TCP流而不需要太多的返工吗?也许SSL?如果你不能修改程序,网络怎么样?站点ti站点IPSEC VPN隧道并不难建立,因为几乎任何商业防火墙都支持它们。甚至可以修改一些soho路由器以支持IPSEC(例如,使用OpenWrt和OpenSwan)。
最后,您是否可以要求客户端和服务器进行相互身份验证?
答案 1 :(得分:1)
不安全。 BGP网关不能免受攻击,因此可以通告虚假路由,并且可以欺骗IP。
答案 2 :(得分:0)
首先,使用IP你不是在识别客户端,而只是识别一些数字。 即使如果IP是正确的,用户的计算机上仍然可以有一个特洛伊木马,代替用户本身进行身份验证(因为我不知道你提供什么样的服务,我认为这可能是合理)。
现在,如果有人可以访问客户端和服务器之间通过其中一个路由器的路由器,那么他几乎可以做任何事情 - 他可以以客户端的名义发送和接收数据包,或者他可以修改它们(因为数据未加密)。此外,攻击者不需要攻击所有或一个路由器 - 他只需要访问数据所在的通道(包括合法的路由器),无论是路由器本身还是电缆(可以切断和路由器可以插入)。
总而言之,IP可以作为在一定程度上加强欺骗的组件之一,但它不能成为主要的安全措施。