我知道数据包嗅探器非常强大。它可以嗅探出密码和图像等。它也能嗅探 URL 吗?也就是说,如果我将身份验证放在 URL 中而不是 cookie 中,嗅探器是否能够从 URL 中获取经过身份验证的会话 ID?基于表单的身份验证中的隐藏值呢?它们都容易受到嗅探器攻击吗?
基本上,公共网络(非 https 非 ssh)没有安全性?不确定 https 怎么会安全。我的意思是,在建立连接之前,第一次握手尝试就会被嗅探到。不确定那有多安全。
谢谢。
答案1
它们都容易受到嗅探器攻击吗?
是的。
不确定 https 如何才能保证安全。
那么你读的还不够。
从这里开始:http://en.wikipedia.org/wiki/Transport_Layer_Security#How_it_works
然后这里:http://en.wikipedia.org/wiki/Transport_Layer_Security#Further_reading
答案2
数据包嗅探器将看到完整的 URL,因为它是 HTTP GET 请求的一部分 - 同样,它将看到隐藏的 FORM 项,因为这些项也是通过网络发送的(它们是“隐藏的”,因为它们在页面上不可见)。
HTTPS 比纯文本信息交换安全得多——即使获取了数据包,如果不知道存储在客户端机器上的具体信息(私钥),就无法解密它们,而且这些信息都是暂时的,所以你很难找到它们。
答案3
这个问题很典型/正常。加密看起来像一根魔杖,但只有正确使用时才有效。
未加密的文本:每一点都会暴露。cookie、URL 请求、您使用的浏览器、表单、值和提示、每个图像、您使用的操作系统、您的计算机和 Web 服务器之间有多少个网络设备,甚至您点击链接的时间,精确到毫秒。
使用 SSL 加密(https://...) 以某种方式加密该信息,使得加密密钥实际上永远不会通过网络发送。握手是一种魔法。这是一种数学魔法,但除非你在数论等领域有大量研究,否则它也不会不那么神奇。
希望这些能对你有所帮助。密码学是一个很难理解的概念,但对当今的网络来说却至关重要。
答案4
数据包中的任何信息都可以被数据包嗅探器获取。当然,加密数据在数据包本身中,但同时也是无用的。Https 使用公钥加密建立连接,然后在连接上传递共享密钥。使用公钥加密解决了 2 个问题:一是处理公钥加密/解密对 CPU 的占用非常高;二是允许以非明文形式传递共享密钥。