苹果「篡改」cURL行为引起开发者不满 这种篡改实际弱化了安全性

💡 原文中文,约1000字,阅读约需3分钟。
📝

内容提要

cURL开发者丹尼尔指责苹果篡改cURL导致的安全问题。cURL允许开发者使用参数--cacert指定一组CA证书,但苹果在macOS中修改了这个功能,导致CA验证不可靠。丹尼尔向苹果报告了这个问题,但苹果表示不需要修复。问题目前无法解决。

🔎

延伸解读

参数行为差异带来的安全风险

cURL 的 --cacert 参数允许开发者指定一组自定义 CA 证书,用于限制信任范围。但苹果在 macOS 中修改了这一行为:即使开发者指定了证书,系统仍会检查 macOS 内置的 CA 存储库。这意味着,如果服务器证书不在开发者指定的列表中,但存在于系统存储库中,cURL 不会返回失败。这可能导致开发者预期的严格验证被绕过,从而引入安全风险。

苹果的立场与开发者分歧

苹果安全团队在回复中表示,其 OpenSSL(LibreSSL)有意使用内置系统信任存储作为默认信任源,并认为不需要修复。而 cURL 开发者丹尼尔则认为,这种未记录的行为篡改了 cURL 的功能,使 CA 验证不可靠,且与 cURL 文档不符。双方对安全模型的理解存在根本分歧,导致问题无法通过常规渠道解决。

问题僵局与用户影响

由于问题并非源自 cURL 本身,丹尼尔无法发布 CVE 或采取其他官方行动,目前问题陷入僵局。对于 macOS 用户而言,这意味着使用 cURL 时,--cacert 参数可能无法按预期工作,CA 验证的可靠性降低。开发者需注意这一平台差异,在依赖严格证书验证的场景中谨慎评估风险。

❓

Q&A

苹果对cURL的修改具体是什么?

苹果在macOS中修改了cURL的--cacert参数处理方式,导致CA验证不可靠。

丹尼尔为什么认为苹果的修改是安全缺陷?

因为苹果的修改使得开发者指定的CA证书无法正常验证,导致CA验证不可靠。

丹尼尔向苹果报告问题后得到了什么回应?

苹果表示不需要修复,认为使用内置系统信任存储作为默认信任源是合理的。

cURL的--cacert参数有什么重要性?

该参数允许开发者指定CA证书,以确保只信任特定的CA,增强安全性。

苹果的做法对开发者有什么影响?

开发者在使用cURL时可能会面临CA验证不可靠的问题,影响安全性。

丹尼尔能否发布CVE来解决这个问题?

丹尼尔无法发布CVE,因为问题并不是cURL本身的错误,而是苹果的篡改。

🏷️

标签

➡️

继续阅读