我目前正在开发软件,需要各种远程站点安全地连接到我们的服务器才能访问基本的网络应用程序。
到目前为止,我一直在研究客户端/服务器 VPN 设置 - 它当然非常安全,但在 Windows/Linux 连接、客户端计算机之间的路由以及对额外的客户端服务器/硬件的需求等方面存在很多困难。
我现在认为,如果严格限制在授权的 IP 范围内,则允许使用用户名/密码进行 SSL Web 访问是可以接受的 - 我认为这种设置不安全,存在 IP 欺骗等,但我找不到任何人对此发出警告。
我的问题是这有多安全?有人有可能欺骗客户端 IP 并设法连接吗?这与 VPN 相比如何?
答案1
通过 IP 欺骗来验证网络身份并非易事,但可以做到。大多数 IP 欺骗攻击只想隐藏身份,因为他们并不关心得到答案(DDoS)。要成功进行 SSL 握手,您需要能够拦截您欺骗的 IP 的所有数据包,因为您需要回答它们。这是可以做到的,但极其困难因为您需要访问某些路由器或与您假装的 IP 位于同一子网。
由于您还添加了身份验证机制,我认为攻击它并不容易。只需跟踪登录尝试并实施一些阈值,这样您就可以在多次攻击后阻止 IP(以及通知机制),您就没事了。
答案2
基于 IP 欺骗的攻击具有高度针对性,因此风险级别可能与成功攻击的价值有关。
我认为这是防御探测攻击的良好方法,与安全身份验证机制相结合会很有效。如果你能用 https 接口实现所需的一切,那么它可能就足够了。
答案3
只要您的流量传输也是安全的,限制每个 IP 应该被认为是相当安全的,您应该使用 SSL。如果信息非常敏感,您也可以查看客户端 SSL 证书来确认用户访问权限。
答案4
我认为这种设置不安全,存在 IP 欺骗等问题,
您无法伪造 IP 地址。
或者:你可以伪造返回IP,但这样你就永远无法建立连接。
这就像你想让某人给你回电话,但你给了他们错误的电话号码。他们可以给你回电话,但永远联系不上你。
有人可以伪造客户端 IP 并设法进行连接吗?
不。他们可以开始建立连接,然后卡在半开状态 - 因为他们没有收到来自服务器的返回数据包。这是一种已知的(旧的,但由于 syn-cookies 而不再适用)拒绝服务攻击(服务器无法处理数十万个半开 TCP 连接)。但如果没有通过路由访问源 IP,他们永远无法建立完整的通信。