用过 Python 的开发者,想必都听过 PyPI。它是 Python 官方软件存储库,为 超过 700,000 名用户和超过 450,000 个项目提供服务。
(资料图片)
近日,PyPI 对用户隐私保护引发了不少人的担忧。事情起因于 5 月 24 日,Python 软件基金会的基础设施总监 Ee Durbin 在官方博客上发布了一篇《PyPI was subpoenaed》的公告。
在公告中, Ee Durbin 称 Python 软件基金会(PSF) 在 2023 年 3 月和 4 月 收到了美国司法部发出来的三张传票,要求 PSF 提供关于 PyPI 用户数据。
PyPI 是一个可以上传 Python 包的平台,通过在 PyPI 上发布的包可以使用\"pip install\"命令进行安装。为了在 PyPI 上发布包,用户需要创建一个账户,而这次司法部发出的传票要求的就是与这些用户账户相关的信息。
然而,根据 PSF 的说法,他们并没有得到任何关于为何司法部要求用户数据的法律背景信息, 但是司法部 要求他们提供总共五名 PyPI 用户的数据。
PSF 公告写道,「 保护 PyPI 用户的隐私对于 PSF 和 PyPI 管理员来说至关重要,我们致力于尽可能地保护用户数据不被披露。」
不过,在这种情况下,他们在咨询律师之后,最终决定履行数据提供的要求,并对此事进行了公开说明。
司法部要求 PSF 提供的数据如下,PSF 官方也对此进行了说明:
1. 姓名(包括订阅者姓名、用户名和昵称) 。
PSF 表示,“PyPI 在其数据库中有一个元素用户名,该名称是在其中注册的。用户可以更改显示名称,但不会记录 PyPI 的用户显示名称更改历史。”
2. 地址(包括邮寄地址、居住地址、工作地址和电子邮件地址) 。
PSF 回应道,由于 PyPI 不要求用户注册时填写邮寄或居住地址,因此仅存储用户的电子邮件地址”,仅将电子邮件地址提供给司法部。
3. 连接记录。
PyPI 在索引中保留项目的所有更改记录。这些记录存储在数据库中,并通过 XMLRPC API 发布,用户名和 IP 地址除外。此外,账户创建、电子邮件发送、电子邮件地址更改、登录、登录失败等用户事件的记录也被保留并可以从数据库中检索到。
4. 会话时间和持续时间记录,以及与这些会话相关的临时分配的网络地址(如Internet 协议地址 )。
PyPI 提供 session 时间,即登录时间作为数据,但不记录 session 时长。
5. 服务时长(包括开始日期)和使用的服务类型。
PyPI 保留用户账号创建的日期和最后一次成功登录的记录。这些记录集存储在数据库中,是 PyPI 上的私有信息。
6. 电话或设备号码(包括注册 Internet 协议地址)。
每个用户的所有 IP 地址都是共享的。这些是从数据库记录中获取的,并且是 PyPI 私有的。
7. 支付方式和来源(包括任何信用卡或银行账户号码)和账单记录。
PyPI 不设置用户使用费,因此不存在信用卡支付记录或账单记录。
8. 与给定用户名相关的所有 Python 软件包索引(PyPI)上传的记录。
提供了与每个用户名关联的所有项目的列表。这些是从数据库记录中获取的,并且是 PyPI 私有的。
9. 与给定用户名相关的任何 Python 软件包索引(PyPI)上传的 IP 下载日 志。
PyPI 不保存包含 IP 地址的包下载日志。下载日志会经过一个处理流程,其中包括由 CDN 报告的 GeoIP 信息,并从 Google BigQuery 公共数据集中获取。
其实,根据公告也不难看出,虽然 PSF 不愿,但是依然还是会将数据提供给司法部门,至于此举会不会引发更多用户对 PyPI 的不信任,以及会带来哪些影响,目前尚未可知。
公告全文详见:
https://blog.pypi.org/posts/2023-05-24-pypi-was-subpoenaed/