说我试图访问https://www.secretplace.com/really/really/secret.php
,在SSL会话建立之前,用纯文本发送了什么?
浏览器是否介入,看到我想要https,发起与secretplace.com的SSL会话(即没有以明文形式传递路径),并且只有在设置SSL会话后才通过路径?
好奇。
答案 0 :(得分:5)
保护级别取决于Web浏览器和服务器软件的实现的正确性以及支持的实际加密算法。
此外,HTTPS在应用于公开可用的静态内容时容易受到攻击。可以使用Web爬网程序对整个站点编制索引,并且可以通过仅知道截获的请求/响应大小来推断加密资源的URI。这允许攻击者访问明文(公共可用的静态内容)和加密文本(静态内容的加密版本),允许加密攻击。
由于SSL在HTTP下运行且不了解更高级别的协议,因此SSL服务器只能为特定的IP /端口组合严格提供一个证书。这意味着,在大多数情况下,使用基于名称的虚拟主机与HTTPS是不可行的。存在一种称为服务器名称指示(SNI)的解决方案,它在加密连接之前将主机名发送到服务器,尽管许多旧版浏览器不支持此扩展。自Windows Vista上的Firefox 2,Opera 8和Internet Explorer 7以来,支持SNI。
答案 1 :(得分:5)
通常,您正在与之交谈的服务器的名称已泄露(“stackoverflow.com”)。但是,在SSL / TLS可以开始连接之前,这可能是通过DNS泄露的。
服务器的证书泄露。您发送的任何客户端证书(不是通用配置)可能已经或可能未被明确发送。一个活跃的攻击者(中间人)可能只是问你的浏览器并接收它。
不应泄露URL的路径部分(“/ questions / 2146863 / how-much-data-is-leaked-from-ssl-connection”)。它通过加密和安全传递(假设客户端和服务器设置正确,并且您没有点击任何证书错误)。
另一张海报是正确的,可能存在流量分析攻击,可能会推断出有关静态内容的一些内容。如果该站点非常大且动态(比如stackoverflow.com),我怀疑从中获取更多有用的信息可能非常困难。但是,如果只有少数文件具有不同的大小,那么下载可能是显而易见的。
表格POST数据不应泄露。虽然如果您要传输已知尺寸的物体,通常需要注意事项。
时间攻击可能会泄露一些信息。例如,攻击者可能会对应用程序的各个部分(例如,某个数据库表)施加压力,或者从磁盘预加载一些静态文件,并观察您的连接如何减慢或加速响应。
这是一个“泄密”信息,但对大多数网站来说可能不是什么大问题。
答案 2 :(得分:-2)
请求由您的浏览器发送到https://url:443,这是明确的。然后服务器和客户端将协商密码套件以保护数据。通常,这将包括对称加密算法(例如,3DES或RC4或AES)和用于检测篡改的消息认证码(例如HMAC-SHA1)。请注意,从技术上讲,这两个都是可选的, IS 可以使SSL没有加密,但今天不太可能。
一旦客户端(您的浏览器)和Web服务器同意了密码套件并确定了密钥,则会话的其余部分受到保护。
说实话,我会挂上一个协议分析仪,然后在你的眼前展开它!
请记住,SSL位于TCP / IP堆栈的传输层,它位于浏览器数据之下,因此它都受到保护。
希望有所帮助。