0

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

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

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

我应该注意到,有些学校通过他们自己的服务器和他们自己的证书代理请求,我们对此表示同意 - 这是我们想要衡量和减轻的“忽略并连接”连接,因为那些是那些学生正在设置,无法访问自己的 CA,但可以访问懒惰的用户。

4

4 回答 4

1

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

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

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

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

于 2015-05-30T14:43:56.960 回答
0

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

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

于 2015-03-16T16:58:58.273 回答
0

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

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

编辑

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

文章

这是在服务器端执行此操作的答案。听起来避免拦截的最佳方法是使用自己的证书对客户端进行身份验证。

于 2015-03-06T19:16:00.270 回答
0

我一直在寻找 HSTS。这是它的工作原理以及如何实现它。

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

于 2015-05-30T14:00:09.590 回答