3

我的任务是寻找一段旧代码的替代品。我假设它经过测试以查看浏览器是否支持 128 位加密。这是旧代码:(我故意将链接分成 4 行) 你以前见过这个代码吗? 如何在 php 页面中复制此功能?

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




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

4

4 回答 4

1

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

您可以检查浏览器的 User-Agent 字符串并做出假设,或者您可以将它们定向到使用 128 位 SSL 证书的页面,如果它们继续通过它......好吧,它们必须支持它。

于 2010-02-01T20:28:22.130 回答
1

您在此处粘贴的内容不是代码 - 它是一个 URL。

如果您不了解其中的区别,那么我希望您不会真正理解“如何测量 php 中的加密质量?”这一隐含问题的任何答案。但不管怎样……

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

如果您在 apache 上使用 mod_ssl,并结合 mod_php(您没有说明 PHP 在哪个操作系统/网络服务器中运行),那么您将能够看到各种附加的 $_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 位加密,您期望实现什么?

C。

于 2010-02-01T21:44:26.297 回答
1

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

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

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

  • 配置 SSL 服务器支持的密码列表;
  • 在客户端和服务器都支持的密码列表中强制执行服务器首选项而不是客户端首选项;
  • 从您的页面生成引擎(例如 PHP)中访问实际使用的密码。

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

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

Now only remains a minor point, which is the status of 3DES. Nominally, it uses a 192-bit key. Any decent cryptographer or programmer would point out that out of those 192 bits, only 168 bits are used (the extra bits were supposed to act as parity check bits, but nobody bothers verifying those, they are just ignored). Now, some academics have also shown that the actual algorithm strength is lower, somewhat equivalent to a 112-bit key, at least when seen in the proper academic light. The NIST (the US federal institution which deals with such standards) has therefore issued a recommendation, that 3DES should be considered as offering "only 112 bits of security", and 112 is lower than 128.

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

于 2010-02-02T14:09:28.033 回答
0

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

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

http://serverfault.com

于 2010-02-01T20:30:57.477 回答