法律:数据公开指引
Appearance
维基媒体政策 |
---|
![]() |
维基媒体项目 |
基金会理事会与成员 |
其他 |
隐私权是社区为维基媒体计划做贡献的核心,维护这项权利是我们人权承诺的中心部分。此信息公开指引是维基媒体基金会管理信息公开风险的最佳实践,补充了我们的数据保留指引,帮助我们实现隐私政策所述的保护用户数据的承诺。
为更全面地管理维基媒体基金会系统中数据的全生命周期,涉及数据收集的类似指引也即将制定实行。
数据发布风险分级网格
数据分类 | 机密 | 受限 | |
---|---|---|---|
风险等级 | 一级:高风险 | 二级:中风险 | 三级:低风险 |
肯定会被用于造成损伤的数据 | 可能会被用于造成损伤的数据 | 不太可能被用于造成损伤或因行政原因而不公开的数据 | |
示例(非详尽清单) |
|
||
响应时间目标 | 3个工作周 | 5个工作日 | 不适用 |
预期请求的%(内部指标) | 15% | 35% | 50% |
这对维基媒体基金会团队来说意味着 | |||
后续行动 |
|
|
|
注:受保护国家名单是对互联网自由有潜在危险的国家的参考指南,并不代表基金会与每个国家的工作关系。
常见问题
- 问:风险分级网格有什么用?风险分级网格是为了帮助维基媒体基金会中处理数据的团队了解他们的工作何时需要法律和安全部门进行隐私审查。
- 问:分级网格衡量的关键风险是什么?关键风险在于频谱的过度使用和使用不足。如果在使用过程中,有太多的事情被分流到法律和安全部,那么法律和安全部门就会成为必要工作流程的瓶颈。另一方面,如果在隐私审查下本应停止或缓解的项目上线,那么基金会将面临隐私风险,包括声誉、法律和安全风险。
- 问:分级网格的目标受众是谁?在产品和技术领域处理数据的团队。
- 问:与现有的风险审查流程相比,有哪些变化?现有的审查流程要求每个模式和数据项目都要经过法律审查。这两项要求都没有得到遵守,而且对于数据团队或法律部门来说,遵守这两项要求都不切实际。
- 问:更新分级网格或解决分级分歧的流程是什么?
- 获得隐私部门的批准
- 任何人都可以提出更新/修订,但在实施前必须获得各方批准
- 发布后立即进行持续反馈,并在此后定期重新校准(例如,每季度或每半年一次)
- 问:如果我不确定是否要联系法律和安全团队,该怎么办?如有疑问,最好谨慎行事并提交一个L3SC 申请。
阈值表
使用此表可确定您的分析是细粒度还是高层级,从而确定分析属于哪个层级/风险级别。注意:阈值的确定完全基于发布的统计数据,即如果您只发布有关编辑的信息,则无需考虑有多少编者生成了这些编辑。
数据单位类型 | 基于计数的分析分类 | |
---|---|---|
"细粒度" | "高层级" | |
用户(包括唯一设备) | <25 | ≥25 |
编辑 | <50 | ≥50 |
App 交互 | <100 | ≥100 |
查看 | <250 | ≥250 |
对于撤销次数,如果撤销编辑数或总编辑数小于阈值,则报告撤销率和粗略总数。例如:
- 如果49个编辑中有8个被撤销:
- "16.3%被撤销(在<50次编辑中)"
- 如果49个编辑中有49个被撤销:
- "100%被撤销(在<50次编辑中)"
- 如果580个编辑中有20个被撤销:
- "3.4%被撤销(在~600次编辑中)"
- "3.4%被撤销(在>500次编辑中)"
- 如果50个编辑中有50个被撤销:
- 可以保持原样(两个计数都达到阈值)
本指南也适用于报告其他数据类型低于阈值的百分比。
发布风险缓解核查表
这份自助核对表旨在帮助数据科学家和分析师降低高或中风险数据发布的风险,减少私人信息的无意披露。
在公开发布数据(包括将笔记本推送到 gerrit 或 gitlab)之前,您是否已经
- 是否在数据发布记录表中输入了该数据发布?
- 清除了显示原始数据的输出?
- 是否清除了显示粒度数据(如上文阈值表中所定义)的输出?
- 混淆了显示细粒度数据的行?例如
Python | R |
---|---|
# 试想我们正在对尝试某项功能的*用户*数量进行分析
# 设置常量
threshold = 25
col = "num_users"
# 混淆行
df.loc[df[col] < threshold, col] = f'<{threshold}'
|
library(tidyverse)
library(glue)
# {{tunit|69|set constants}}
threshold <- 25
df <- df |>
mutate(num_users = ifelse(num_users < threshold, glue("<{threshold}"), num_users))
|
- 过滤掉显示细粒度数据的行?例如
Python | R |
---|---|
# 试想我们正在对用户的*应用程序交互*进行分析。
# {{tunit|69|set constants}}
threshold = 100
col = "num_interactions"
# 过滤掉低于阈值的行
df = df[df[col] >= threshold]
|
library(tidyverse)
# {{tunit|69|set constants}}
threshold <- 100
df <- df |>
filter(num_interactions >= threshold)
|
一般风险启示
下面,"X > Y > Z "表示 X 的风险高于 Y,而 Y 的风险又高于 Z。
- 数据类型:
- 地理:
- 城市 > (次国家)地区 > 国家 > 次大陆 > 大陆 > 全球
- 受保护国家名单 > 非受保护国家名单
- 设备详情:
- 原始用户代理 > 浏览器或操作系统类型 > 设备类型
- 原始 IP > 部分编辑的 IP 范围
- 时间:
- 日期时间 > 每小时 > 每日 > 每月
- 多个键的组合 > 单独的任何键(即国家 + 项目 > 国家或项目)
- 地理:
- 用户活动类型:
- 筹资活动 > 编辑活动 > 交互活动 > 阅读活动
- 维基媒体基金会活动类型:
- 数据收集 > 数据分析
- 细粒度分析 > 高层级分析
联系我们
如果您认为以上指引可能已被钻漏洞,或者如果您对遵守指引有疑问或意见,请通过privacywikimedia.org联系我们。
备注
- ↑ 这一过程需要专家的帮助以确保 DP 算法配置正确,并提供充足的文档资料。