如何测试浏览器以查看它是否支持128位加密?

时间:2010-02-01 20:18:17

标签: php browser encryption cross-browser

我的任务是找到一段旧代码的替代品。我假设它已经过测试,看看浏览器是否支持128位加密。这是旧代码:(我故意将链接分成4行)

http://www.verisign.com/update-cgi/outPage.exe
?good=../docs/html/good.html
&nsbad=../docs/html/upgradeNSonly.html
&ie2=../docs/html/upgradeIEonly.html

你以前见过这些代码了吗? 如何在php页面中复制此功能?

澄清
旧的网站管理员找到了一个链接到verisign,浏览器检查。此后,Verisign停止支持此链接。就个人而言,我认为我们应该简单地告诉客户点击帮助>关于里面有浏览器并寻找密码强度。如果它不是至少128,那么我们只是告诉他们升级浏览器。

4 个答案:

答案 0 :(得分:1)

所有现代浏览器都支持开箱即用的128位加密。您是否需要支持早于IE 5.5的浏览器?

您可以检查浏览器的User-Agent字符串并进行假设,也可以将它们指向使用128位SSL证书的页面,如果它们继续通过它......那么,他们必须支持它。 / p>

答案 1 :(得分:1)

你在这里粘贴的东西不是代码 - 它是一个URL。

如果您不理解其中的差异,那么我希望您不会真正理解“如何在PHP中测量加密质量?”这一隐含问题的任何答案。但无论如何都要去....

首先,没有办法测试浏览器是否支持特定的加密算法或密钥大小,而不是使用该加密方法测试连接 - 这意味着在服务器上配置多个不同级别的加密并在每个加密算法中创建网页然后测试浏览器可以连接的内容。这不是一项微不足道的任务,也不是大多数人在正常生活中会遇到的事情。

如果你在apache上使用mod_ssl,结合mod_php(你没有说PHP运行的OS / web服务器),那么你将能够看到各种额外的$ _SERVER变量,包括“SSL_CIPHER”, “SSL_CIPHER_USEKEYSIZE”,“SSL_CIPHER_ALGKEYSIZE”和“SSL_SERVER_A_KEY”

另见

http://httpd.apache.org/docs/2.0/mod/mod_ssl.html#envvars

所以我真的怀疑你问的是错误的问题,但在你能回答这个问题之前我无法说出正确的问题:

通过了解浏览器是否支持128位加密,您期望实现什么目标?

下进行。

答案 2 :(得分:1)

在SSL中,客户端连接并发送它支持的密码列表;然后服务器选择它也支持的密码之一,并使用该密码进行连接。只有在建立连接(“握手”完成)后,HTTP才会起作用。

在您的设置中,这意味着您应该将SSL服务器配置为接受各种密码,但要使用128位或更多私钥的用户。因此,只有当客户端和服务器都不支持128位或更多密码时,才会选择小于128位的密码。然后,在该连接中发送的页面将被更改,具体取决于实际协商的密码。

对于这样的设置,您需要能够执行以下操作:

  • 配置SSL服务器支持的密码列表;
  • 在客户端和服务器支持的密码列表中,通过客户端首选项强制执行服务器首选项;
  • 访问页面生成引擎中实际使用的密码,例如: PHP。

在Apache的mod_ssl中,似乎第1点很容易(“SSLCipherSuite”指令),“环境变量”部分似乎表明SSL服务器愿意提供有关选择了哪些密码的一些信息到页面生成引擎;特别是,SSL_CIPHER_USEKEYSIZE变量看起来非常好。因此,第3点看起来也很容易。但是,我不确定这会如何转化为PHP世界。

对于第2点,它有点困难。 “SSLCipherSuite”的文档似乎告诉默认情况下,服务器使用自己的首选项顺序,因此第2点也很容易,但这需要进行一些测试。

现在只剩下一个小点,这是3DES的状态。名义上,它使用192位密钥。任何体面的密码学家或程序员都会指出,在这192位中,只使用了168位(额外的位应该用作奇偶校验位,但没有人会对这些位进行验证,它们只会被忽略)。现在,一些学者也表明,实际的算法强度较低,有点相当于112位密钥,至少在正确的学术角度中看到。 NIST(处理此类标准的美国联邦机构)因此发布了一项建议,即3DES应被视为“仅提供112位安全性”,而112则低于128位。

当然,112位还远远超出了技术上不可行的范围(并且至少应保持30年,即使技术进步保持其紧张的步伐),所以这对任何一个都不是一个真正的问题。实际情况,但如果你处于标准 - 疯狂的心态并希望强制执行“真正的”128位,那么这是一个需要考虑的问题。

答案 3 :(得分:0)

所有现代浏览器都支持128位。但是,您应该以管理方式强制执行此服务器端,因为有人可能会使用较旧的浏览器或伪造请求以使用较低位级别的加密(例如40或56)。

我建议您询问如何设置Web服务器以根据您的平台强制执行它:

http://serverfault.com