1.4.34
2014年1月20日
重要变更
有一些重要的安全修复正在进行中(您应该已经通过您喜欢的发行版获得);对于延迟发布我深表歉意(我们可能也应该在我们的页面和邮件列表中公布安全漏洞,以供那些未关注 oss-security 的人了解)。
我们更新了“标准”SSL密码串推荐为 ssl.cipher-list = "aRSA+HIGH !3DES +kEDH +kRSA !kSRP !kPSK"
;详细原因请参见下文。
回归警告
针对 lighttpd SA-2013-01 (CVE-2013-4508,“使用可能存在漏洞的SNI密码套件”) 的修复包含一个回归问题
每个 SSL_CTX 也会从配置中的所有块加载 ssl.ca-file 的所有值。
这意味着您的 ssl.ca-file
值不得包含循环链,并且应使用唯一的主题名称。
更多详情请参见 Debian Bug - #729555。
安全修复
- lighttpd SA-2013-01 (CVE-2013-4508)
- lighttpd SA-2013-02 (CVE-2013-4559)
- lighttpd SA-2013-03 (CVE-2013-4560)
OpenSSL 密码串推荐
密码串推荐基于 ssllabs 的 SSL/TLS 部署最佳实践 1.3 / 2013年9月17日
- BEAST 现在被认为在客户端已得到缓解,并且 RC4 中发现了新的弱点,因此强烈建议禁用 RC4 密码(
HIGH
不包含 RC4) - 也建议禁用 3DES(尽管禁用 RC4 和 3DES 会导致 Windows XP 上的 IE6+8 无法正常工作,所以您可能暂时仍希望支持 3DES——只需移除下面的
!3DES
部分;在末尾用+3DES !MD5
替换它,以优先选择 AES128 而非 3DES,并禁用使用 MD5 的 3DES 变体)。 - 它优先选择具有“前向保密性”(Forward Secrecy)的密码套件,以及 ECDHE 优于 DHE(又名 EDH);如果您不希望如此,请移除
+kEDH +kRSA
。 - SRP 和 PSK 无论如何都不受支持,排除这些(
!kSRP !kPSK
)只是为了使列表更小(更易于审查) - 由于目前几乎所有密钥都是 RSA,因此限制为
aRSA+HIGH
会使列表更小。对于更通用的版本,请使用HIGH
而不是aRSA+HIGH
。 - 如果您想强制执行“前向保密性”(Forward Secrecy)(这会破坏某些客户端),请将
+kRSA
替换为-kRSA
。
故意未包含
STRENGTH
:来自HIGH
的列表已经排序,无需重新排序。STRENGTH
也优先选择 3DES 而非 AES128。!SSLv2
、!EXPORT
、!eNULL
、!DES
、!RC4
、!LOW
:在最新的 openssl 版本中,HIGH
不应包含这些密码,无需移除它们。如果您使用的是旧版本,附加!RC4 !NULL
应该可以修复(并且在最新版本中无害)。也请考虑升级——您可能缺少 TLS1.2。!MD5
:在旧系统中,HIGH
可能包含使用 MD5 的 3DES 密码;!3DES
也应该移除 MD5。!aNULL
、!ADH
:在服务器端无关紧要,客户端应始终验证服务器证书,如果服务器没有证书,验证将失败。
您可以使用以下命令检查密码列表:openssl ciphers -v 'aRSA+HIGH !3DES +kEDH +kRSA !kSRP !kPSK' | column -t
(请使用单引号,因为您的 shell 不会在双引号中处理 !
字符)。
lighttpd 中包含的默认 DH 参数仅为 1024 位;有些现有实现无法处理更多位,并且您也无法协商它们。要解决此问题,您有两种选择
- 移除 DH 密码:将
+kEDH
替换为-kEDH
。 - 使用 4096 位参数,这会破坏那些您会协商 DH 但只支持 1024 位参数的客户端。将以下(gnutls 中包含的)参数放入文件中,并使用
ssl.dh-file
选项进行设置
-----BEGIN DH PARAMETERS-----
MIICCAKCAgEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb
IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft
awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT
mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh
fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq
5RXSJhiY+gUQFXKOWoqqxC2tMxcNBFB6M6hVIavfHLpk7PuFBFjb7wqK6nFXXQYM
fbOXD4Wm4eTHq/WujNsJM9cejJTgSiVhnc7j0iYa0u5r8S/6BtmKCGTYdgJzPshq
ZFIfKxgXeyAMu+EXV3phXWx3CYjAutlG4gjiT6B05asxQ9tb/OD9EI5LgtEgqSEI
ARpyPBKnh+bXiHGaEL26WyaZwycYavTiPBqUaDS2FQvaJYPpyirUTOjbu8LbBN6O
+S6O/BQfvsqmKHxZR05rwF2ZspZPoJDDoiM7oYZRW+ftH2EpcM7i16+4G912IXBI
HNAGkSfVsFqpk7TqmI2P3cGG/7fckKbAj030Nck0BjGZ//////////8CAQU=
-----END DH PARAMETERS-----
下载
- lighttpd-1.4.34.tar.gz (GPG 签名)
- SHA256:
468f8bbe7bac9d294c79d6454cd97990c13191b270c21b7c4e398936713b2642
- SHA256:
- lighttpd-1.4.34.tar.bz2 (GPG 签名)
- SHA256:
e4b5682ef21b0bdea4a18dc7ccac6b5a0bf526b691ad0fe5c25c8b9fc38d0c12
- SHA256:
- lighttpd-1.4.34.tar.xz (GPG 签名)
- SHA256:
3e067bd12a6c953862139f0ee4cb03a0cd8cff9b3ffe393ddc7dc3956431cb72
- SHA256:
- SHA256 校验和
从 1.4.33 版本以来的变更
- [mod_auth] 显式链接 SHA1 的 ssl(修复了 #2517)
- [mod_extforward] 修复了在没有 IPv6 的情况下编译时使用未定义变量的问题(修复了 #2515,感谢 mm)
- [ssl] 修复 SNI 处理;仅使用来自 SNI 特定配置的密钥+证书(修复了 #2525, CVE-2013-4508)
- [doc] 更新 ssl.cipher-list 推荐
- [stat-cache] FAM: 修复释放后使用(use after free)漏洞 (CVE-2013-4560)
- [stat-cache] 修复 FAM 清理/fdevent 处理
- [core] 检查 setuid, setgid, setgroups 的成功性 (CVE-2013-4559)
- [ssl] 修复来自 CVE-2013-4508 的回归问题(客户端证书会话已损坏)
- 在更多地方维护 physical.basedir(作为 physical.path 前缀的“实际”文档根目录)
- [core] 在重写前解码 URL,使其能在 $HTTP[“url”] 条件句中工作(修复了 #2526)
- [auto* build] 从链接器标志中移除 -no-undefined,因为我们实际链接的模块带有未定义符号(修复了 #2533)
- [mod_mysql_vhost] 修复配置初始化时的内存泄漏(#2530)
- [mod_webdav] 修复使用 parfait 发现的 fd 泄漏(修复了 #2530,感谢 kukackajiri)