当用户故意绕过https服务器证书错误时进行检测



服务器上是否有https标头,或浏览器中是否有JavaScript方法,可以让我们检测用户何时故意绕过安全证书,或以任何其他方式检测和报告这种情况?(我们使用的是Linux/Apache/jQuery。)

网络上充斥着常规跳过警告的方法,但我找不到任何关于检测用户何时跳过警告的东西——只有70%的用户尽快跳过警告这一可怕的统计数据。(他们是如何衡量的?)

我们运行一个网络应用程序,让教师制作和管理测试。教师连接到未经授权的WiFi网络,收到无效证书警告,并点击浏览器的"无论如何都接受"功能,这样他们就可以访问我们的应用程序,尽管他们的证书没有经过身份验证。我们想了解这种情况发生的频率,谁在做,以及阻止它的进展

我应该注意到,有些学校通过自己的服务器,用自己的证书代理请求,我们对此表示同意——我们希望衡量和缓解的是"无论如何都忽略并连接"的连接,因为这些都是学生正在建立的连接,他们无法访问自己的CA,但有足够的权限访问懒惰的用户。

确保客户端看到您发送的服务器证书的一种方法是使用客户端证书身份验证。当使用客户端证书身份验证时,SSL/TLS握手的最后一个步骤包括使用客户端私钥签名的所有握手消息的哈希。

这样做的一个副作用是,如果客户端没有看到完全相同的服务器证书,服务器将无法验证来自客户端的签名哈希。

这当然不一定意味着客户端检查了证书(即证书是否受信任,是否属于客户端想要联系的服务器),但至少服务器有一种方法,即在中间没有伪造证书。

HSTS(您提到的)还有一种方法可以让客户端强制执行这些检查(请参阅RFC 6797的8.4节)。然而,只有当客户端已经知道需要使用HSTS时(无论是作为预加载的主机,还是在第一次访问后),它才有效,当然,它依赖于支持HSTS的客户端(浏览器支持仍然有限)。

不知道绕过HTTPS是什么意思。如果你的意思是他们可以在没有HTTPS的情况下访问你的URI,那就意味着你需要在Apache的.htaccess、httpd.conf或default-ssl配置文件中阻止HTTP访问。坏掉的挂锁可能意味着很多不同的事情,所以不清楚你有哪个问题。您可以在这里测试您的网站是否存在SSL安全问题:

https://www.ssllabs.com/ssltest/

编辑

您可以比较服务器和客户端上SSL证书的指纹,以确保它们匹配(如果客户端能够获得指纹)。这应该可以防止中间人用伪造的证书进行攻击。

第条

这里有一个在服务器端这样做的答案。听起来避免拦截的最佳方法是使用客户端自己的证书对其进行身份验证。

没有办法检测到这一点——只有用户才能看到挂锁是绿色锁定还是红色损坏。

Firefox将通过扩展和xhtml来实现这一点,但到目前为止,它是唯一支持这一点的浏览器。

我在找HSTS。以下是它的工作原理和实现方法

TL;DR:Header add Strict-Transport-Security "max-age=15768000 includeSubDomains"

相关内容

  • 没有找到相关文章

最新更新