全世界只有3.14 % 的人关注了

爆炸吧知识

鲁迅先生曾说,记录这东西,就是用来打破的。

前阵子程序员圈子一定热呼的不可开交,咋回事?还不是因为有个程序员妹子捅出了一个大篓子

事情是这样的,在德国慕尼黑有一个名叫 Leah Neukirchen 的程序员妹子,她厌倦了日复一复的解决小儿科程序代码。

直到 2015 年的一天,闲来无事的 Leah 在 BSD3 源码树的文件转储中发现了一个 /etc/passwd 文件,其中包含了计算机领域中一些传奇工程师的旧密码,令人惊讶的是,这些密码竟然已经存放了39年之久。

Leah找到的部分旧密码名单

Leah 对他们使用的密码非常感兴趣,加上此刻鲁迅先生的名言在她耳边萦绕不散。她相信,再古老的密码都会有被破译的一天。

因此,Leah 展开了一段暴力破解密码之旅

 计算机大师用的都是些小儿科密码?

她这一破就是破了5年,您别说,大部分密码还真就都被她破解了。

但其实在大多数情况下,leah的成功是因为用户的密码比较容易猜到

毕竟大部分计算机大师以前使用的密码保护程序是 Unix 早期的版本——BSD,这是一个古老的操作系统,因此从今天的密码保护标准来衡量,它们的安全保障措施确实不敢恭维。

首先,保护密码的哈希函数虽然在40年前是最先进的技术,但现在要破解它并不难。更奇怪的是,一些BSD创建者的密码散列包含在公开的源代码中。

比如:

BSD的共同发明者Dennis Ritchie使用了“dmac”作为密码(他的中间名是MacAlistair);

Stephen R. Bourne是Bourne shell命令行解释器的创建者,他的密码是“Bourne”;

Eric Schmidt是Unix软件的早期开发者,现在是谷歌母公司Alphabet的执行董事长,他的密码竟然是妻子的名字“wendy”;

Unix自动化工具make的作者、同时也是第一个Fortran编译器的作者Stuart Feldman,他使用的密码是“axolotl”(一种墨西哥蝾螈的名字)。

其中最弱的是Unix贡献者Brian W. Kernighan的密码:“/.,/.,”,表示一个三个字符的字符串,重复敲两次QWERTY键盘上的相邻键就得到了。

但是,就像超模君说过,巨人总会遇到比他更大的巨人一样(?),至少有五个纯文本密码 Leah 是一点想法也没有。

这里面包括土耳其计算机科学家Ozalp Babaoğlu, Unix 软件开发人员Howard Katseff,Unix 的重要贡献者 Tom London 和 Bob Fabry。

但其中令 Leah 最不甘心、最费解、花了最长时间甚至一度想把电脑砸了的是Unix之父Ken Thompson 使用的密码。

Ken Thompson 和他的 UNIX

Ken Thompson 是硅谷传奇计算机科学家和工程师,UNIX 之父,江湖人称“ken桑”,他同时也是 1983 年图灵奖得主。

1983年ACM图灵奖评语(节选):

“UNIX系统的成功是由于英明地选用了一些有决定意义的观念并且准确地加以了实现。UNIX系统作为一个样板,已经引导了一代软件设计者思考程序设计的新途径。UNIX的精髓是它的体系结构,这种结构可使程序员藉此开展其他工作。

鉴于Ken Thompson和Ritchie在UNIX操作系统的开发和实现中所作出的卓越贡献,美国计算机协会(ACM)将授予1983年的ACM图灵奖。”

说出来你可能不信,就这么一个大人物的小学成绩却是烂到极点,烂到他母亲足足给他退了三次学都被他成功说服回去再读一遍试试。

直到有一节课讲了二进制,自小喜欢逻辑的他瞬间被迷住了,他做了很多二进制运算,还借助一台十进制计算器扩展到各种进制。

展现出计算机天赋的他,在1960 年如愿进入了加州大学伯克利分校主修电气工程

在二年级的时候他有机会使用一台模拟计算机,其实因为根本没人想用,实际上成了他的专用计算机。他仔细研读,学会了编程,并在学校找到编程的工作,直到 1966 年他加入了贝尔实验室。

在贝尔实验室工作期间,汤普森在参与 Multics 操作系统项目的过程中开发了一款游戏 ——《星际旅行》。

Space Travel 游戏

后来贝尔实验室撤出了 Multics 项目。为了能够继续玩游戏,汤普森只好找到一台老式 PDP-7 机器,重写了游戏代码。

但他发现游戏在新机器下玩起来太卡,于是又吸取了其他程序员在开发 Multics 文件系统时的经验,在他们工作的基础上设计了自己的文件系统。

后经扩展,形成了一个完备的操作系统,在公司内部广泛传播,并于 1970 年被命名为 Unix。

Ken Thompson 最难破译的密码

回到现在,Leah 对无法破解 Ken 的密码感到沮丧,她在 Unix Heritage Society 的邮件列表中表示:

“我一直没有办法用散列ZghOT0eRm4U9s破解 Ken 的密码,我列举了所有8个小写字母+特殊符号键空间。任何帮助都行,欢(求)迎(求)大家给我指点!”

(字里行间透露出一丝心酸和不甘,超模君抱抱。)

姐是真的破译不下去了

leah发邮件后不久,就被一个自称 Nigel Williams 的论坛哥们看到了,抱着自古江湖儿女,你有困难我定拔刀相助的想法,令所有人惊讶的是,

这哥们仅花了4天半的时间,用 AMD Radeon Vega64 以大约930MH/sd的速度运行Hashcat(一个密码破解程序),并利用了强大的显卡运行计算能力之后就破解了ken的密码。

随后他兴奋地一路屁颠屁颠跑去给leach发邮件声称他已破译这个密码了。

Ken的密码加密后的字符串是:ZghOT0eRm4U9s

解密后得到的明文是:p/q2-q4!

Nigel Williams的论坛原文

要知道ken这个密码可是在1980年设置的,现在都0202年了,用这么现代的计算机才能破解这样一个古老的密码,这确实很Ken桑。

随着 Unix 之父 Ken Thompson 的旧密码被破解,这个消息瞬间在技术论坛中炸开了锅。

有意思的是,汤普森的密码“p/q2-q4!”其实是国际象棋中一种常见的开局走法的符号。

乍一看“p/q2-q4!”像是一个数学公式,而实际上是一种古老的符号,代表国际象棋中棋子的走位,意思是 “皇后前面的兵 (Pawn) 向前移动 2 个方格”。q 代表 Queen,p 代表 Pawn,这种走棋记法属于国际象棋的代数记谱法

p/q2-q4!——皇后前面的兵从第2行走到第4行

是国际象棋注释符号,表示“好棋”

好了藏不住了,这里超模君要公布一下这位1980 年度第 3 届全球计算机国际象棋锦标赛的冠军——Ken Thompson!!

Ken是一名实实在在的国际象棋迷,还曾经在空余的时间另外开发一个专用于下国际象棋的计算机程序 “Belle”。

眼看着自己39年前的密码被人破解

当事人 Ken Thompson 通过邮件得知这件事后

对 Williams 表示了深切且由衷的赞赏

并回复道:“恭(ma)喜(de)!”

参考资料:

https://thehackernews.com/2019/10/unix-bsd-password-cracked.html

https://arstechnica.com/information-technology/2019/10/forum-cracks-the-vintage-passwords-of-ken-thompson-and-other-unix-pioneers/

作者简介:超模君,数学教育与生活自媒体博主,新晋理工科奶爸。出版过《芥子须弥 · 大科学家的小故事》;《数学之旅·闪耀人类的54个数学家》。后续数学文化创意多多,欢迎关注认识!

文系网易新闻·网易号“各有态度”特色内容

部分资料来源于网络

转载请在公众号中,回复“转载”

再现神人!仅仅只花4天半就解开了史上最难密码,这下整个圈子都炸开了.........相关推荐

  1. 口布杯花的60种叠法_史上最全的口布花折法教程,简单实用!超美呦~

    开这功德金花--这功德金花--" 风信子干笑两声,也知道方元没法糊弄,只能实话实说:"第一点用处,便是能让我们加快融入那个世界,在请外援之时也有意想不到的效果!还有--则是在一些偏 ...

  2. 花了30天才肝出来,史上最全面Java设计模式总结,看完再也不会忘

    本文所有内容均节选自<设计模式就该这样学> 序言 Design Patterns: Elements of Reusable Object-Oriented Software(以下简称&l ...

  3. 一纸红笺清花泪,半世琉璃山海盟:QQ伤感日志

    一纸红笺清花泪,半世琉璃山海盟:QQ伤感日志 - 一纸红笺清花泪,半世琉璃山海盟:QQ伤感日志 蝶恋彩云霞衣瘦,风绕青柳轻舟滚. 寒烟雾笼锁重楼,柴门灯火掩黄昏. 一道霞光晕开了结局,兰舟催发,盘结的 ...

  4. 2名数学家或发现史上最快超大乘法运算法,欲破解困扰人类近半个世纪的问题...

    早在数千年之前,巴比伦人就已经发明了乘法.而就在上个月,数学家们又对这一运算方式进行了优化,使它越来越完美. 3 月 18 日,两位研究人员有可能发现有史以来最快的计算两个超大数的乘法运算方式.这篇论 ...

  5. 程序员与产品经理大打出手,公司的处理结果让所有人都笑开了花

    每个人在职场上,跟自己打交道最多的就是同事,处理好同事之间的关系一直都是对职场人最为重要的一件事,如果跟同事关系不好,不仅影响工作的进度,也会影响办公室的工作氛围,造成的后果也不堪设想. 都知道程序员 ...

  6. 史上最牛独立开发者:花20美元狂赚100万美元

    史上最牛独立开发者:花20美元狂赚100万美元 摘要:一般的独立开发者年平均收入在1万美金左右,但有一个人,开发的所有游戏,没有广告.没有应用内购买,痴迷一种跨平台开发工具Corona SDK,只花2 ...

  7. 频率控制和滞环控制的半桥/全桥LLC电路仿真对比 两种方式下均可实现输出电压闭环控制 ,模型中包含负载的阶跃变化过程 ,可以验证闭环系统稳定性

    频率控制和滞环控制的半桥/全桥LLC电路仿真对比 两种方式下均可实现输出电压闭环控制 ,模型中包含负载的阶跃变化过程 ,可以验证闭环系统稳定性 滞环控制和变频控制下的电感电流和输出电压波形图如第二幅图 ...

  8. agx 安装ros opencv_史上最全的OpenCV入门教程!这篇够你学习半个月了!万字长文入门...

    一.Python OpenCV 入门 欢迎阅读系列教程,内容涵盖 OpenCV,它是一个图像和视频处理库,包含 C ++,C,Python 和 Java 的绑定. OpenCV 用于各种图像和视频分析 ...

  9. 史上最全的OpenCV入门教程!这篇够你学习半个月了!万字长文入门

    推荐下我自己建的人工智能Python学习群:[809160367],群里有我整理的一份关于pytorch.python基础,图像处理opencv\自然语言处理.机器学习.数学基础等资源库,想学习人工智 ...

最新文章

  1. hbase 数据插入指定rowkey_「HBase大爆炸」HBase之常用Shell命令
  2. C#程序如何对接比特币钱包节点?
  3. android系统默认铃声,Android系统修改默认铃声
  4. WinAPI: midiInReset - 重置输入
  5. 独家对话阿里云函数计算负责人不瞋:你所不知道的 Serverless
  6. 真诚推荐7个能助你成长的前端大佬
  7. 《深入浅出WPF》学习笔记之深入浅出话属性
  8. html中svg的css,HTML5 内联 SVG
  9. 黑猿大叔-译文 | TensorFlow实现Batch Normalization
  10. java.io 相关tips
  11. 网络流24题 餐巾计划(DCOJ8008)
  12. 【Oracle】查看用户的信息(状态、默认表空间等)
  13. 【Unreal4】gitignore目录减小项目大小
  14. win10蓝牙开关不见了_山灵MW200评测:玩转高清蓝牙全编码,MMCX换线耳机必备升级线...
  15. centos6操作系统升级到centos7
  16. 从现代操作系统中学到的东西--批处理、多道程序设计、分时系统
  17. 【译文】追求生产极简主义
  18. php微信app支付教程,PHP APP端微信支付的方法
  19. 清洗神舟笔记本电脑风扇的方法
  20. 怎样用CMD命令强行删除目录

热门文章

  1. Blazor带我重玩前端(五)
  2. WebBenchmark之动态数据测试
  3. 搭建一套ASP.NET Core+Nacos+Spring Cloud Gateway项目
  4. ASP.NET Core分布式项目实战(集成ASP.NETCore Identity)--学习笔记
  5. Dotnet core使用JWT认证授权最佳实践(一)
  6. 从壹开始 [Admin] 之五 ║ 实现『按钮』级别权限配置
  7. .NET Core 性能分析: xUnit.Performance 简介
  8. 最大限度地降低多线程 C# 代码的复杂性
  9. .NET Core微服务之路:基于Ocelot的API网关实现--http/https协议篇
  10. Asp.Net Core SignalR 用泛型Hub优雅的调用前端方法及传参