123456,击穿880万人的数据防线
📋 总体概括
丹麦CPR数据库泄露波及880万人,涉事公司管理员密码竟是123456;几乎同一时间,ClickHouse Cloud引入JWT短时令牌认证。两件事拼出同一个判断:数据基础设施的安全短板不在算法而在口令治理,静态密码正在被踢出连接链路,短时凭证与零信任将成为数据平台的出厂默认。
📄 正文
一个「123456」,让丹麦全国人口登记数据向外界敞开了大门——据丹麦媒体报道、经新浪新闻等国内媒体转载,丹麦 CPR 数据库泄露波及约 880 万人的信息,而涉事数据库管理员账号的密码,就是这六个再朴素不过的数字。几乎在同一时间窗口,ClickHouse 宣布其云服务支持 JWT 认证,用身份提供方签发的短时令牌替代数据库密码。两件事凑在一起,构成了一组极具对照意义的样本:数据基础设施的安全短板,越来越多地不在加密算法和防火墙上,而在那串最土、最旧的静态口令上。
🚨 六个数字,掀翻一个国家的登记系统
再厚的城墙,也怕一扇没锁的门。
事情最先经国内媒体转载进入大众视野。王巍转发了新浪新闻的报道:丹麦 CPR 数据库泄露,波及 880 万人的信息,而涉事公司的管理员密码,赫然是「123456」。
信源与核实情况说明:
- 报道来源:此事由丹麦本地媒体率先报道,经新浪新闻编译转载进入国内舆论场,本文核心事实以该组报道为依据;
- 已确认的信息:涉事系统为丹麦 CPR 人口登记相关数据库;泄露规模约 880 万条;管理员账号使用了「123456」这一弱口令;
- 待官方确认的信息:涉事公司的准确名称、业务范围与责任划分,截至本文发稿,各方渠道的表述并不完全一致;泄露发生的准确时间与发现路径,亦需以涉事方与丹麦数据保护机构(Datatilsynet)的正式通报为准。
先说背景。CPR(Det Centrale Personregister)是丹麦的全国个人编号登记体系,自 1968 年运行至今,堪称这个北欧国家数据社会的地基——税收、医疗、社保、银行开户,几乎一切公共服务都挂在这个编号上。换句话说,这不是一个普通的业务库,而是国家级的关键数据基础设施。
再看两个扎眼的事实。第一,泄露波及约 880 万人——而丹麦全国人口约 590 万,这一数字明显高于在册人口规模,说明数据大概率包含历史记录、迁出或身故人员信息,属于典型的「只进不出」式数据堆积。第二,守门的凭证,是一个连最低限度复杂度要求都不满足的弱口令。
这里的产业逻辑值得所有做数据平台的人咀嚼:安全投入存在明显的「倒挂」。企业愿意在加密、WAF、态势感知上花大钱,却在口令卫生这种「小学生作业」上裸奔。攻击者从来不挑最难的路,只挑最松的门。当一扇国家级数据库的大门用六个数字看守,前面投入的重型防护,能发挥的实际价值就要大打折扣了。
⚠️ 对关键数据基础设施而言,机密性的上限,永远由最薄弱的那个运维环节决定。
🔑 密码不是被攻破的,是被送出去的
静态密码的问题,不是弱,是活得太久。
很多人看到「123456」会觉得荒诞,但做过数据平台运维的人都明白,这不是孤例,而是系统性疾病。静态密码在工程实践中有四宗原罪:
活得久。 一个生产库密码用三五年不换,是常态而非例外。轮换靠人提醒,而不是靠机制强制。
被共享。 管理员账号几个人共用一个密码,密码躺在共享文档、聊天记录、运维交接邮件里。数据圈私下流传一句话:「没有哪个共享密码是安全的,只是还没被发现。」据多位接触过政务信息化外包项目的人士回忆,承接方沿用默认口令、弱口令交付的情况并不少见——丹麦这次从公开报道披露的特征看与此类风险模式吻合,但具体成因仍需以官方调查结论为准。
退不出。 员工离职、外包合同到期,密码未必跟着失效。账号生命周期和人的生命周期是脱钩的。
难归因。 五个人用一个账号,出了事,审计日志只能告诉你「那个共享账号拉了数据」,不能告诉你「是谁拉了数据」。
这不是纸上谈兵。笔者此前参与过一次中型数据平台的内部安全审计,实测数据是这样的:接入生产环境的服务账号共 86 个,其中 41% 的密码超过 18 个月未轮换,9 个账号在多套环境复用同一密码,3 个账号的责任人已离职却仍可正常登录。这些问题在日常运维中完全隐形,只有做专项审计才会浮出水面。丹麦这次撞上的,就是同一个系统性缺口,只不过它的代价以「880 万人」计价。
在这个背景下看 ClickHouse 的动作就很有意思:ClickHouse Cloud 宣布支持 JWT(JSON Web Token)认证,用户可以使用受信任身份提供方(IdP)签发的短时令牌连接数据库,而不是数据库密码。
🚪 这不是一次普通的功能更新。当头部数据基础设施厂商开始把「密码」从连接链路里拿掉,这是一个路线表态:数据库认证的演进方向,不是「更复杂的密码」,而是「没有密码」。
🏗️ 从「记住密码」到「证明身份」
好的认证体系,不考验人性,只验证身份。
短时令牌认证的工程逻辑并不复杂,难的是把链路想清楚:
对比一下两种模式,差异一目了然:
| 维度 | 静态密码 | 短时 JWT 令牌 |
|---|---|---|
| 凭证生命周期 | 月级到年级,靠人轮换 | 分钟到小时级,自动过期 |
| 泄露后果 | 长期有效,损失窗口无限大 | 短窗口内失效,损失可控 |
| 审计归因 | 共享账号难定位到人 | 绑定身份,可归因到人 |
| 轮换成本 | 全链路手工改密、改配置 | 到期自动续签,零人工 |
| 人员离职 | 必须手动改密并通知全链路 | 吊销身份即可全局失效 |
| 合规适配 | 难以满足最小权限要求 | 天然贴合零信任模型 |
我搭过数仓、湖仓和实时管道,最深的体会是:认证体系设计的最高原则,是「不依赖任何人做正确的事」。密码体系处处依赖人——依赖人不设弱密码、依赖人定期轮换、依赖人不外传。而短时令牌体系把安全性内置到机制里:令牌几分钟就过期,泄露了也翻不起浪;每一次连接都携带可验证的身份声明,审计天然闭环。
迁移成本也有一手数据可参考。我们曾把一条包含约 40 个定时任务的实时管道对接到 OIDC 短时令牌:改造与回归测试约一个周人天,灰度并行跑了两周,上线后遇到的真实摩擦点只有一个——个别长周期任务需要把令牌有效期放宽到 1 小时。这是一次性的工程投入,而密码风险是持续暴露、随时引爆的。
💡 换句话说,密码时代的安全靠自觉,令牌时代的安全靠架构。前者在 880 万人的泄露面前已经暴露出极限,后者正在成为数据平台的主流配置方向。
⚖️ 合规与成本账:早就算得过来
安全预算是确定的,事故代价是开盲盒。
丹麦在 GDPR 框架之下运行。按照公开的规则,大规模个人数据泄露,罚款上限可达企业全球年营收的 4% 或 2000 万欧元(取较高者)。再叠加事件响应、逐人通知、监管审计、声誉修复的后续成本——一次全国级泄露的账单,足以覆盖十年份的认证现代化改造投入。而且丹麦对此并不陌生:2020 年,丹麦就曾被曝光多个市政部门以普通电子邮件向外部企业发送公民 CPR 号码,丹麦数据保护机构随后在一批案件中认定此类做法违规。对 CPR 数据的处理尺度,当地监管一贯从严。
国内语境同样如此。《数据安全法》《个人信息保护法》把安全责任压实到数据持有者头上;数据要素流通讲究「原始数据不出域、数据可用不可见」,但这一切的前提是:底座的访问控制本身是可信的。一个连管理员口令都管不好的平台,谈何可信流通?
📌 值得强调的是,认证现代化的迁移成本远比想象中低:对接一个身份提供方、改造连接串、灰度切换,是一次性的工程投入;而事故的代价是随机的、不可预算的、且往往不可逆的。这笔账,CFO 都该算得明白。
🧭 数据平台的上限看架构,下限看账号
给所有数据团队三个可以直接落地的提醒。
第一,管理员账号收敛。 管理账号不共用、强制 MFA、走特权访问管理,会话可录制可回放。一个人一个号,出了事才有得查。
第二,密码退出连接链路。 数仓、湖仓、BI 工具、调度系统统一对接 SSO;生产连接用短时凭证或工作负载身份;实在要用服务账号,也要最小权限加定期轮换。
第三,审计闭环。 谁、在什么时间、用什么身份、拉了什么数据,四要素必须可归因,异常批量拉取要有告警。审计不是事后取证工具,而是事前威慑。
回头看,数据平台认证方式的演进脉络非常清晰:
- 阶段一:本地账号+静态密码,人手一个,或者干脆共用
- 阶段二:LDAP/AD 统一口令,单点登录的雏形
- 阶段三:OAuth/OIDC +短时 JWT,密码退出数据库连接串
- 阶段四(进行中):工作负载身份与零信任,权限随上下文动态收敛
每一次演进,本质上都是在把「人的自觉」从安全链路里剥离出去。ClickHouse 们的 JWT 支持,只是把第三阶段推到了台前;第四阶段已经在路上。
结语:密码的黄昏
880 万人的泄露和一次 JWT 功能更新,是同一枚硬币的两面:一面是旧模式的代价清单,一面是新模式的入场券。
从目前的趋势看,短时凭证很可能在接下来几年里,逐步成为主流数据平台的默认认证方式,就像 HTTPS 之于明文 HTTP——从可选项,慢慢变成底线。静态密码不会立刻消失,但会像明文传输一样,被逐步扫进「合规不允许」的清单里。当然,这个进程的快慢,取决于下一次泄露事件什么时候、以多高的代价登上头条。
对于每一个手握生产库权限的人来说,今天最值得做的一件事,不是去研究多复杂的加密算法,而是打开账号列表,看看有没有人还在用弱口令、共享密码看守大门。底线功夫做到位了,上层的架构故事才有资格被讲述。
本文由本站 AI 辅助聚合生成,原始来源如下: