我正在开发一款基于 Linux 的安全设备。其功能之一是隐藏 VPN 中的用户流量,我需要一种简单的方法来证明此功能正常运行,更重要的是,证明用户为什么需要这种类型的保护(以防止窃听、中间人攻击等)
起初,我认为 Firesheep 可以作为一个很好的演示。如果用户在使用我的安全产品时,看到自己的 Facebook、Twitter 等帐户出现在 Firesheep 扫描中,他/她可以立即识别出这一点;此外,当我(假装是攻击者)劫持他们的身份、阅读和发布他们的墙上的内容等时,这将是一个极具影响力的演示。(注意:在进行现场演示时,我会使用自己的“假装”Facebook 帐户,我永远不会真正危及实际用户的帐户)然而,随着越来越多的网站强制使用始终开启的 HTTPS,这种方法的效果越来越差。(总体上对安全性有利,但对这种演示不利!)
我唯一的另一个想法是运行 Wireshark 并进行数据包捕获。不幸的是,虽然更高级的用户可以轻松理解这一点,但我担心新手会觉得非常困惑,即使我详细解释了发生了什么。此外,期望新手/不太高级的用户能够自己做到这一点是不现实的。
有什么想法/主意吗?
答案1
好像你有两个问题:
如何证明 VPN 正常运行:
不使用 VPN,转到http://www.whatismyip.com/
(或类似方式)并查看公共 IP 等。最好在网络连接上执行此操作,因为全球 GeoIP 数据库对实际位置的定位非常准确。如果一个站点没有提供非常准确的位置,请在查询公共 IP 后尝试使用另一个专用 GeoIP 查找服务。
然后,使用 VPN(理想情况下,VPN 应该安装在另一个地理位置),执行相同的过程并向他们展示 GeoIP 如何认为他们位于不同的位置并具有不同的公共 IP 地址。您可能希望在记事本中记录原始 IP 和 VPN IP,然后直接比较它们以表明它们根本不相似(如果它们恰好相似,例如您正在进行演示在数据中心您的 VPN 托管在哪里,请向客户解释原因。如何向他们展示如果受到中间人攻击会发生什么:
您可以编写一个简单的 HTTP(无 SSL/TLS)Web 应用程序,其中包含一个简单的注册和登录屏幕,并将其托管在您提供演示的计算机上的 localhost 上。然后,让用户创建一个帐户,然后在他们登录时使用 Firesheep。
一般流程:要求用户注册一个帐户并使用无价值的密码(不执行任何密码质量检查),然后关闭浏览器并重新打开“以确保没有缓存任何内容”(技术人员可能认为没有必要,但它会说服新用户,相信我),然后要求他们登录,同时使用 Firesheep 或 Fiddler 或类似工具对他们进行 MITM 攻击。
除了以上这些,可能值得指出的是(对客户来说,也提醒自己),即使启用了 VPN,MITM 和 IP 解密仍然可行。它创建了一个间接层,使用户解密变得复杂和受挫,但在对抗高级持续性威胁(主要是政府情报机构和有组织犯罪)时,它无法达到其目标。