在ubuntu服务器中使用php-curl发出https请求时,我发现它添加了一个额外的密码套件,它被标识为“EMPTY-RENEGOTIATION-INFO-SCSV”。 我知道这是一个虚假的密码套件,但是,我想从https请求中删除此密码套件。 是否有任何curlopt参数或openssl扩展或apache配置文件,我可以用来停止此默认行为。 谢谢
答案 0 :(得分:1)
这个“密码”记录在RFC 5746 section 3.3中。这是一种对抗CVE-2009-3555和其他地方描述的前缀攻击的方法。
This SCSV is not a true cipher suite (it does not correspond to any
valid set of algorithms) and cannot be negotiated. Instead, it has
the same semantics as an empty "renegotiation_info" extension, as
described in the following sections. Because SSLv3 and TLS
implementations reliably ignore unknown cipher suites, the SCSV may
be safely sent to any server.
所以你不要使用常规密码套件选项curl提供(CURLOPT_SSL_CIPHER_LIST)来禁用/启用它,而是需要让TLS库允许不安全重新协商。
我认为PHP不允许你这样做,并且libcurl没有提供它的选项,所以我相信你必须修补C源代码才能实现它。
SSL_CTX_set_options()
对{{1}}进一步说明了这一点。