无尘阁日记

无尘阁日记

深度解密丹麦880万人数据泄露:一个“123456”密码的完整杀伤链
2026-10-15

2026年10月15日16:00:54(北京时间),我的微信主号给我转来一条合并转发的群聊记录。记录里只有两条内容:一个B站视频,和一段一百多字的文字摘要——

10月13日,据The Register新闻网站报道,一名黑客使用密码“123456”获取了丹麦中央登记系统的访问权限,此次入侵影响了880万人的数据。据报道,黑客通过一家可访问该登记系统的IT公司账户进入了系统,而该公司的企业账户正是用“123456”作为密码。该黑客称,他不打算出售或散布丹麦人的数据。

从The Register发稿,到RT中文频道做成视频,到群友转发,到我自己的主号转进小号——不到48小时,这条新闻跨越了8000公里,零衰减地落进了我的微信。我花了一个下午把它挖了个底朝天。结论先说:这段摘要里的每一句话,都能在丹麦官方通报和一线媒体信源里得到印证或限定;但这起事件的真正故事,比“123456”这个梗图级密码深得多。

消息档案(本报告消息侧元数据提取自本机微信桌面版数据库,只读解密,未动客户端):
· 消息类型:合并转发的群聊记录(应用消息,子类型19)
· 转发时间:2026-10-15 16:00:54(北京时间)
· 发送方:我自己的主号(wxid_9qmum059syb221,昵称“江楠”)——当前登录的是我的小号,两个号互发消息;主号在小号通讯录里的备注名是“爸爸”(家人设的)
· 群内原发:群友“自在”,2026-10-15 15:24
· 附带视频:RT今日俄罗斯《黑客猜中丹麦国家系统密码“123456”》,B站,2026-10-15 06:30发布,截至转发时播放约19.4万
· 附注:群消息里的文字与B站视频简介逐字相同,群友应是直接复制了视频简介

一、被“扒”的是什么:丹麦CPR国家登记系统

这次被“扒”的不是哪家银行、哪个电商,而是丹麦的中央人员登记系统(CPR,Det Centrale Personregister)——这个国家的地基级数据库。

CPR于1968年4月2日正式上线,把全国分散的市政人口登记册合并为一个国家级登记系统,是全球最早的国家级民事登记系统之一,也是后来北欧多国同类系统的范本;格陵兰于1972年并入。1100万年来它只做一件事:给每个登记在册的人一个终身的10位号码,格式为 DDMMYY-SSSS——前6位是出生日期,第7位编码出生世纪,最后一位既是校验位又表示性别(奇男偶女)。

登记册里现存约1100万条记录:现居居民、已故者、移居海外者都在册(丹麦现住人口约600万,所以880万这个数字超过总人口并不矛盾)。每条记录包含姓名、地址、出生信息、性别、国籍、婚姻状况、亲子关系、公民身份、死亡日期。在丹麦,CPR号码是事实上的社会通行证:开户、报税、看病、领福利、上学、考驾照,全部靠它。

关键在访问机制:按《CPR法》第38条,有合法利益的私营公司和协会可以查询登记数据——但只能查“事先逐一指明”的特定人群,比如核对客户地址、会员信息。目前共有1039家企业和机构持有CPR查询权,覆盖金融、电信、律所、工会、保险等各行各业。

记住这个“合法查询”的设定——它是理解整起事件的钥匙。

二、完整时间线(丹麦当地时间)

时间事件
9月10日未授权访问开始,通过一家名为Pays ApS的公司账户(据TV2获取的CPR管理处报告)
9月20日大规模自动查询活动停止;但账户权限并未关闭
10月2日(周五)晚CPR管理处在给Pays开具9月账单时发现查询费异常高,倒查后切断该公司访问——此时距活动停止已12天
10月3日(周六)晚国家特种犯罪部队(NSK)到Pays公司固定证据
10月4日(周日)CPR管理处向丹麦数据保护局(Datatilsynet)通报
10月5日(周一)研究、教育与数字化部公开披露事件;部长Christina Egelund称“极其严重”
10月6日(周二)新闻发布会:部门主管Mikkel Leihardt披露“发票发现法”;NSK负责人Henriette Erbs确认无人被锁定、无人被指控
10月8日(周四)一名匿名黑客通过加密聊天(使用英语)联系《Politiken》,自称对此事负责
10月9日(周五)Pays ApS总经理Sophie Laursen向TV2确认该公司访问被滥用;CPR管理处向全部1039家持权机构发出安全新规函
10月10日(周六)Egelund向议会两个委员会提交备忘录;《Politiken》报道Pays至少3个账户使用“123456”,含管理员账户
10月12日(周日)TV2公布内部文件:账户权限实际开放21天17小时; Aarhus大学教授批评系统缺乏异常检测
10月13日(周一)The Register发文;《Politiken》补充:涉事代码由AI编写,且存在“1877/1977”年份bug
10月15日RT中文频道B站视频上线(北京时间06:30)→ 群友“自在”转发(15:24)→ 我的主号转进小号(16:00)

三、攻击链逐环解密

第一环:一把没被收回的钥匙

按黑客对《Politiken》的自述:入口不是任何高深漏洞,而是一家小公司前员工的登录凭证——密码早在此前的某轮数据泄露中“躺”过,而那个离职员工的账户仍然有效。《Politiken》核查后发现,Pays ApS至少有3个账户在用“123456”,其中一个是管理员账户。需要强调:此说法来自黑客单方,丹麦警方并未确认。

第二环:为什么一家两个人的公司,握着全国数据的钥匙

被点名的公司叫Pays ApS,位于欧登塞(Odense,菲英岛),据丹麦工商登记册,2026年7月时公司只有2名员工。它的业务是帮企业客户核对地址、死亡、搬迁等信息,属于典型的数据更新与清洗服务商。按《CPR法》第38条和主管部的访问条款,这类公司可以为“事先逐一指明”的人群做CPR查询,并且按次计费。

10月9日,公司总经理兼老板Sophie Laursen向TV2承认:“我们确认,我们就是那家遭受攻击的公司,我们对CPR系统的合法查询访问被滥用了。”公司网站随后下线,Laursen通过律师以调查正在进行为由拒绝了进一步采访。

第三环:1400万次自动查询——CPR号码的结构性弱点

这是整起事件技术含量最高、也最少被讲清楚的一环。

前文说过,CPR号码前6位就是出生日期。这意味着:知道一个人的生日,剩下4位在同一天出生的人里最多几千种组合,再算上校验位,有效的只有几百种。换句话说——CPR号码是可以被“算”出来的。Datatilsynet对事件的描述印证了这一点:那是一大批“旨在识别有效CPR号码”的自动化查询。

结果是:9月10日到20日,约1400万次自动查询通过Pays的合法通道涌入CPR系统,日均超过百万次;约880万次命中并返回了记录,接近登记册总量的80%。按TV2文件与《Politiken》的数据,其中约550万在世者、330万已故者;因为北欧移民离开丹麦后仍保留登记,一些曾经旅居的瑞典人也在受影响之列。

每一笔查询都在这家公司被允许的权限范围内。单看任何一次请求,都毫无可疑——是“量”最终暴露了它。

第四环:AI写的4万字符脚本,和一个百年虫

黑客对《Politiken》否认自己有多高技术能力,并称作案程序由AI生成:“过去一年内发布的任何AI模型都能做到这事。”《Politiken》把这段超过4万字符的代码交给两名专家评估,结论是:确系AI生成。

最能说明问题的是一个bug:脚本把“1977年出生”误写成了“1877年出生”——于是1977年出生者的数据,在这批材料里整整缺席了一年。黑客交给《Politiken》作为证据的CPR号码清单里,没有1977。一个标准的两位数字年份错误,在AI时代被原样继承了。

按黑客自述,他写了两个程序:一个负责从登记册拉数据,一个负责把数据存到系统之外;他还向《Politiken》提交了一份CPR号码文件作为证据。丹麦安全公司Defend Denmark的Emil Hørning看过之后认为,其说法是可信的。

第五环:唯一“发现”了入侵的,是一张发票

整起事件最荒诞、也最值得警钟长鸣的部分:没有任何安全告警。10月2日周五晚上,CPR管理处只是在给Pays开9月账单时,发现这家两人公司的查询费高得离谱,才顺着账单倒查,然后切断了访问。

此时距离查询活动停止已经12天;而账户权限从9月10日一直开到被发现,总计21天17小时。奥胡斯大学网络安全教授Jens Myrup Pedersen看完文件后的评价一针见血:“看起来,他想要的东西拿到了,然后自己走了。”他同时批评:系统里根本没有有效的异常活动检测机制。

一家年查询量以千计的两人公司,一个月跑了一千四百万次查询——发现它的不是SIEM,不是SOC,是财务对账。

四、“123456”的来龙去脉

“123456”连续多年霸占全球最常用密码榜榜首。NordPass的数据还补了一个有趣的细节:丹麦人自己的最爱并不是它——丹麦最常用密码是admin,其次是thunder和klovn123,“123456”在丹麦只排第4。NordPass产品负责人Karolis Arbaciauskas评论说:这种密码“任何人都不该用,尤其不该用在能访问公共基础设施或公共数据的敏感系统上”。

但所有严肃媒体都特意做了同一个澄清,这也是本案最容易被标题党带偏的地方:“123456”不是丹麦国家系统的密码,而是一家两人公司账户的密码。国家数据库没有被“攻破”,而是被一把合法的钥匙“走进来”。CSIS安全集团的总结更直白:每一次请求都在权限之内——是数量,而不是任何单次行为,暴露了入侵。

五、官方与社会的反应

数字化部长Christina Egelund的定性是:“这是一个极其严重的事件,我已就此通知议会的商业与数字化委员会。我们正与所有相关机构一起摸清事件全貌。我们已围绕CPR启动防范类似事件的举措,我也已要求对CPR系统进行一次彻底的安全审查。”据TV2报道,她承认现有安全措施“不够好”;对于是否给全民换发CPR新号码,她的回答是“言之过早”。她同时确认,事件未波及基于MitID(国家数字身份)的系统。

其他值得记录的反应:

· 丹麦社会安全局(Styrelsen for Samfundssikkerhed)局长Laila Reenberg公开要求:企业和机构停止把CPR号码单独当作身份证明——药房等场景必须另寻核身办法。
· 独立数字调查员Jan Kaastrup对TV2直言:这个系统“坏了”。“我们生活在数字化社会里,本该有更好的身份识别系统。”
· 曾在军方网络安全中心(CFCS)任职的独立安全顾问John Foley在《Politiken》撰文:“CPR号码加上姓名和地址,可以用于极具迷惑性的诈骗……你只能猜测这会造成什么后果,只有想象力能限制这些数据的用途。”
· 民众用脚投票:CPR登记“信用预警”的人数从10月1日的不足25万,一周内涨到10月7日的约97万。
· 移民局等机构加强了电话核身;官方安全指南站sikkerdigital.dk延长了热线服务时间。
· 10月9日,CPR管理处向全部1039家持权机构发出新规函,要求包括:设置安全经理、持续监控员工对登记数据的访问、监控每月查询交易量以防滥用。

六、哪些是确认的,哪些还没有

“深度解密”的底线是把证据分级摆清楚。目前的状态是:

说法状态
CPR系统遭未授权访问,约880万人的姓名、地址、CPR号码等信息被获取官方确认(10月5日披露)
入侵利用了Pays ApS的合法查询权,9月10日至20日活动,权限开放21天17小时,约1400万次查询官方文件确认(CPR管理处给Datatilsynet的报告,经TV2获取)
入口是前员工泄露的“123456”密码,至少3个账户(含管理员)在用未确认——黑客单方自述 +《Politiken》核查,警方未证实
作案程序由AI编写(4万余字符),两名专家认可AI生成判断未确认——仅专家对代码风格的评估
精确取走8,749,975个CPR号码(约550万在世+330万已故)未确认——黑客向《Politiken》提供的数据;官方口径为“约880万人”
不打算出售或公开数据无法核实——单方面声明
选择了姓名和地址保护的人未受影响官方确认
无嫌疑人被锁定或指控;NSK正在联系多国警方官方确认(10月6日发布会)

还有一个值得玩味的细节:黑客材料里缺了1977年出生的人。如果他的自述属实,那么这次泄露的真实总量,可能比呈现在《Politiken》眼前的还要再大一圈。

七、深度分析:这不是一个密码的故事

1. 这是一次结构性失败,换任何密码都治不好

把整条链摆在一起看:一家两人公司,拿着覆盖全国人口的永久查询权;没有速率限制,没有实时异常检测,没有强制多因素认证;发现入侵的是计费系统而不是安全系统。这不是一个坏密码穿透了一个好系统,而是一个好系统把钥匙长期借给了一个不设防的第三方。修掉“123456”,下一个Pays还会以别的方式出事。

2. “CPR号码是秘密”这个假设,已经破产

丹麦社会安全局局长要求“停止把CPR号单独当身份证明”,等于官方承认了一个残酷现实:当880万人(含死者)的号码连同姓名、地址成批外流,而CPR号在银行、雇主、医院、房东那里又无处不在时,“保密”这个属性对CPR号已经不存在了。正如Kaastrup所说——系统“坏了”。这不只是丹麦的问题:任何把唯一标识符当“准密码”用的社会,都该照照镜子。

3. AI的真实含义:不是新武器,是流水线

“AI写的代码”是这轮报道里最耸动的词,但值得冷静拆解:枚举顺序号码、拉取匹配记录,这件事的技术门槛从来就不高,AI改变的是时间与人力成本——把“写个脚本”从几天压缩到几分钟,把攻击从手艺活变成了工业品。1877/1977的bug也提醒我们:AI继承了软件工程几十年的老毛病(两位数字年份问题从AI时代之前就在咬人)。真正该担心的不是AI多聪明,而是攻击的边际成本趋近于零。

4. 2026年的共同模式:没有“攻破”,只有“借用”

把这起事件放进今年的序列里,模式熟悉得可怕:8月,ShinyHunters靠一个电话社工从RingCall拿走160万条记录;同月,一次凭证失窃让法国税务部门赔上67.8万人的数据;列支敦士登的实益所有人登记册被“光顾”;Thomson Reuters的法庭记录暴露……共同点全是合法访问被滥用,没有一次是正面“攻破”了目标系统。丹麦的不同只在于:被借用的那把钥匙,开的门后面是全国人口。

5. 丹麦不是第一次,甚至早有预警

据披露的文件,2023年6月至2024年7月间,哥本哈根一名市政前员工曾制造过1745次未授权CPR查询;2026年3月20日哥本哈根市给市议会的备忘录显示,市政当局当时已在和主管部推进“查询日志自动跟踪”机制。但显然,这套机制在9月没有覆盖到Pays这类企业账户——一家两人公司一个月一千四百万次查询,硬是跑满了10天才被一张发票拦下。

6. 一点不客气的镜鉴

这件事离中文读者并不远:任何机构只要存在“可信第三方查询通道”,那就是攻击面;离职账户必须当天停权;异常检测的灵敏度必须超过计费系统;还有最朴素的一条——别在能触达公共数据的账户上用“123456”。丹麦为此启动了系统级安全审查、给1039家机构上新规、劝全民换心态;我们至少可以先把自家系统的查询日志翻出来看看量。

八、一条新闻的48小时传播链

最后回到这条消息本身。把它作为一个信息传播的样本来拆,其实相当漂亮:

· 10月13日,The Register(英国老牌科技媒体)发布英文报道,把丹麦官方披露、TV2文件、《Politiken》的黑客采访串成了完整故事;
· 10月15日06:30(北京时间),RT中文频道把故事压成一条B站视频《黑客猜中丹麦国家系统密码“123456”》,简介就是后来在微信里流传的那段文字;
· 15:24,群友“自在”把视频和简介文本一起转发进群;
· 16:00:54,我的主号把群聊记录合并转发到小号;
· 当天下午,它变成了你现在看到的这篇报告。

从哥本哈根到我的微信:三层转发、两个平台、不到48小时,核心信息零失真——那段一百多字的摘要与视频简介逐字一致。这是2026年信息传播的常态切片:专业媒体定调,二创平台放大,熟人社交完成最后一公里。至于视频里19.4万的播放,则是这条新闻在中文互联网热度的直接注脚。

尾注:信源与方法

一手信源:丹麦研究、教育与数字化部10月5日公告及10月10日议会备忘录;Datatilsynet案件通报;TV2获取的CPR管理处内部报告;politiken.dk(10月5日、8日、13日报道)。

媒体与行业信源:The Register(10月13日)、The Copenhagen Post(10月9日)、Help Net Security(10月6日)、NordiskPost(10月12日)、Ritzau通讯社、CSIS安全集团、Cybernews(NordPass数据)。

受访专家:Christina Egelund(数字化部长)、Laila Reenberg(社会安全局)、Jens Myrup Pedersen(奥胡斯大学)、Emil Hørning(Defend Denmark)、John Foley(前军方CFCS)、Jan Kaastrup(独立数字调查员)、Karolis Arbaciauskas(NordPass)。

方法附注:本报告的消息侧时间线与元数据,提取自本机微信桌面版(4.x,WCDB加密数据库)——包括密钥提取、选择性解密与WAL合并在内的全部操作为只读;消息原文一字未改。所有新闻事实均经至少两个独立信源交叉核对;凡属黑客单方说法的内容,文中均已标注“未确认”。

(完)本文为个人调研笔记,不构成任何安全建议;文中数据以丹麦官方后续通报为准。