我们在我们的网站上不再支持TLS 1.0和1.1,因为它们不再被认为是安全的。
我们如何看到会受到这种变化影响的访问者百分比? (即那些不支持TLS 1.2的访问者)。
我们使用Windows Server 2012 R2 w / IIS8。
设置第二个服务器(例如虚拟机或同一主机上的第二个守护进程)。 使用重写规则来反向第二服务器可选的代理请求,如隐藏在页面上的不可见图像。 configuration第二台服务器只允许TLS 1.2; 不要热链接到另一个主机名…确保代理,否则将不安全,所以也许浏览器将有一个警告,或者可能永远不会加载图像。
然后跟踪图像的请求。 没有支持的客户端应该有SSL / TLS错误。 支持客户端会生成一些“200 OK”日志。 如果日志没有说任何有用的东西,可以尝试使用代理来代替一些javascript,这可以在成功时执行AJAX请求来loggingstream量(但是脚本阻止程序可能会阻止此操作)。
为了testing你的第二台服务器的ssl / tls支持,然后依赖日志来合理化,使用一个像nmap这样可以列出大量细节的好testing。
nmap --script ssl-enum-ciphers example.com
一种可能性是使用可以loggingSSL / TLS握手版本的反向代理(Squid,Apache等)。 或者,如果您的webservice主机数量非常有限(说到一位数),则可以直接在服务器上使用Wireshark来分析握手。
我不知道有任何检查服务器日志的方法来查看连接使用了什么SSL / TLS协议。
因此,如果您使用任何跟踪操作系统和浏览器版本的分析软件(例如Google Analytics),我认为这样做的最佳方式就是如此。 这不会100%准确(有些人在浏览器中closuresJavaScript和/或跟踪)。
注意使用Google Analytics(分析)等比试图找出隐藏的USER_AGENT字段要好得多,尽pipe在理论上这是做这件事的另一种方式,而且可能会logging在服务器日志中。 看到这里的更多细节如何去做这样做,如果你想要的: https : //stackoverflow.com/questions/17798944/get-browser-name-and-version-from-iis-log-file-in-日志parsing器 。
一旦你有浏览器和操作系统版本的访问者,你可以查看这个表,看看他们是否支持TLS 1.2: https : //en.m.wikipedia.org/wiki/Transport_Layer_Security#Web_browsers ,这应该让你算出一个大概的百分比。
您也可以使用ssllabs扫描工具( https://www.ssllabs.com/ssltest/ )来扫描您的网站以testing您的SSL / TLS设置 – 包括告诉您哪个版本的TLS和哪个密码的参考列表浏览器将使用。 强烈build议做这个扫描无论如何看到你的SSL / TLSconfiguration的状态。
您将主要关注IE的旧版本和旧版本的Android。
您也可以在您的网站上执行一些浏览器检测,以在closuresTLS 1.0和1.1之前的一个月左右向这些用户添加警告。 有一个“[if lt IE 11]”语句很容易包含一个CSS样式表,该样式表显示了旧IE版本的警告。但是IE10不再支持标准模式下的这种语法,它是一个受影响的浏览器。 对于较老的Android浏览器也是这样做并不容易。