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

Ssl 当用户故意绕过https服务器证书错误时检测,ssl,https,man-in-the-middle,Ssl,Https,Man In The Middle,服务器上是否有https头,浏览器中是否有JavaScript方法,可以让我们检测用户何时有意绕过安全证书,或者是否有任何其他方法来检测和报告此类情况?(我们使用的是Linux/Apache/jQuery。) 网络上充斥着日常跳过警告的方法,但我还没有找到一个关于检测用户何时跳过警告的方法——只是一个可怕的统计数据,即70%的用户尽可能快地绕过警告。(他们是如何衡量的?) 我们运行一个web应用程序,让教师制作和管理考试。教师正在连接未经授权的WiFi网络,收到无效证书警告,并单击浏览器的“无论

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

网络上充斥着日常跳过警告的方法,但我还没有找到一个关于检测用户何时跳过警告的方法——只是一个可怕的统计数据,即70%的用户尽可能快地绕过警告。(他们是如何衡量的?)

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


我应该注意到,有些学校通过他们自己的服务器代理请求,使用他们自己的证书,我们对此没有意见——我们要测量和缓解的是“不管怎样忽略和连接”连接,因为这些是学生正在设置的连接,没有访问他们自己的CA的权限,但是有足够的权限访问懒惰的用户

不确定您绕过HTTPS是什么意思。如果您的意思是他们可以不使用HTTPS访问您的URI,则意味着您需要在的.htaccess、httpd.conf或
default ssl
config文件中阻止HTTP访问。挂锁坏了可能意味着很多不同的事情,所以不清楚你遇到了什么问题。您可以在此处测试站点的SSL安全问题:

编辑

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


在服务器端做这件事。听起来,避免拦截的最佳方法是使用自己的证书对客户端进行身份验证。

没有办法检测到这一点-只有用户可以看到挂锁是绿色且已锁定的还是红色且已损坏的

Firefox将做到这一点,但到目前为止,它是唯一支持这一点的浏览器

我在找HST


TL;DR:
头添加严格的传输安全性“max age=15768000 includeSubDomains”

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

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

这当然不一定意味着客户机检查了它应该拥有的证书(即证书是否被信任并且属于客户想要联系的服务器),但至少服务器在中间没有假证书。


HST(您提到的)还有一种方法可以让客户机强制执行这些检查(请参阅)。但是,只有当客户端已经知道需要使用HST(作为预加载主机,或在首次访问之后)并且当然依赖于支持HST的客户端()时,它才起作用。

我澄清了我的问题,以解释他们似乎连接到未经授权的WiFi网络,收到无效的证书警告,然后点击浏览器的“无论如何都接受”功能,这样他们就可以访问我们的应用程序。HTTP长期被阻止。@JTW您是否能够在客户端web应用程序上读取SSL证书的指纹?如果是这样,您可以告诉服务器这两个指纹是否不匹配。是的,使用SSL指纹可以工作,但JavaScript似乎没有办法做到这一点。您提到的建议建议用户使用浏览器的安全对话框,但这又将责任推到了最终用户身上。甚至有些困惑。@JTW有一些关于如何在服务器端检测MITM攻击的答案,因为您无法使用JavaScript检测它。感谢您的研究,XHTTP信息可能是获取此信息的网关,但这只是Firefox。更近了。无论如何,有些学校有自己的合法https代理服务器,并使用自签名证书进行设置。这正是用户不应该绕过浏览器警告的原因!我希望浏览器告诉我用户何时绕过了浏览器警告。我会升级我的问题,让它更清楚。我要结束这个。答案似乎是“没有办法检测到这一点。”羞愧。客户端应该能够绕过安全机制,但服务器也应该拒绝服务。如果我们可以拒绝为Internet Explorer 8提供服务,那么我们应该能够拒绝为明显受损的连接提供服务。但我会把这个留给标准委员会。我在找HST。[以下是它的工作原理和实现方法。][1]TL;DR:
标题添加严格的传输安全性“最大年龄=15768000包括子域”
[1]: