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

全世界只有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个数学家》。后续数学文化创意多多,欢迎关注认识!

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

部分资料来源于网络

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296675.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

布鲁克大学计算机科学,布鲁克大学计算机科学本科.pdf

布鲁克大学计算机科学本科.pdf留学监理服务网布鲁克大学计算机科学 - Computer Science基本信息所属学校 布鲁克大学 - Brock University 所在院系 数学与科学学院 - 计算科学系专业名称 计算机科学 - Computer Science 学历层次 本科计算机与信息科学 计算与计算授予学位 计算…

HDU 1856 Brave Game(巴什博奕)

Brave Game Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3175 Accepted Submission(s): 2105 Problem Description十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部…

拥抱开源!除了微软红帽,这些国际大厂你认识几个?

在上世纪 90 年代,开源操作系统 Linux 出现时,有能力自行安装使用的用户并不多。因此,早期开源社区和开源软件厂商的一大工作就是向用户售卖书籍,提供初始的技术支持。比如基于 Linux 的内核,一批开源软件厂商开发出不…

J2EE第五课Servlet随课笔记

把上课笔记全上传到博客中,二原因: 1 方便自己以后查阅,看得多,记得多 2 提供一些笔记给刚学JAVA的朋友, 笔记: 1 1、什么是Servlet? 2 是运行于服务端(java服务器)的一个jav…

乒乓球单循环赛_乒乓球淘汰赛制和单循环赛制的比赛方法是什么?

展开全部一、乒乓球淘汰赛制比赛方法:1、32人先进行1轮淘汰赛,获胜的16人进入胜62616964757a686964616fe78988e69d8331333431363531者组,失败的16人进入败者组2、败者组第一轮:16人参赛,失败的8人被淘汰,胜…

详解Oracle DELETE和TRUNCATE 的区别

语法delete from aa truncate table aa 区别 1.delete from后面可以写条件,truncate不可以。2.delete from记录是一条条删的,所删除的每行记录都会进日志,而truncate一次性删掉整个页,因此日至里面只记录页释放,简言之…

湖南工业职业技术学院计算机协会,计算机网络协会

一、协会简介于2005年成立,系信息工程系直属协会。以学习网络知识理论及技术实践为主,以业余活动为辅的双向协会。由我系专业教研团队亲自授课教学,达到教学合一效果。注重培养高技能、高素质综合能力人才。二、协会宗旨以普及计算机基础知识…

浙大月赛C题(2012/8)Cinema in Akiba(线段树)

http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId4791 (1)第一次写浙大的题目,这题让我十分意外,基本的线段树类型(求第x个空位)。 (2)电影院里,一次…

你是一个优秀的IT PRO吗?(下篇)

首先感谢一些朋友阅读我的拙作《你是一个优秀的IT PRO吗?(上篇)》才使得我有动力写出这个下篇。在上篇中,我只是简单的总结了几条,要成为优秀的IT PRO所需要注意的几点,在这片文章中,我将根据我…

oss多线程 上传_oss-android/ios-sdk 断点续传(多线程)

oss-android/ios-sdk 断点续传前言移动端现状随着移动端设备的硬件水平的不断提高,如今的cpu,内存等方面都大大的超过了一般的pc电脑,因此在现今的程序中,合理的使用多线程去完成一些事情是非常有必要的。多线程上传的好处进一步占…

生病了女朋友说要「陪床」,结果真的是陪床不是陪我......

1 生病住院了女朋友说要来陪床结果真的是陪床不是陪我......▼2 气氛突然微妙......▼3 隔壁的一家人都馋哭了!▼4 上街偷拍帅哥的正确方法▼5 WOW!AMAZING!▼6 史上最强小学生出现了!▼‍7 养二哈不光挺费家具的还挺废人的▼你点的每个赞&#x…

uiuc计算机课程,UIUC计算机科学专业解读

UIUC的计算机科学专业创建于1972年,到1986年基本定型,十多年来几乎没有什么变化。其中,数值分析方向课程中,Math225为矩阵论,CS257为数值方法,CS35x代表数值分析导论、常微分数值方法、偏微分与数值逼近和数…

Nutch 是一个开源Java 实现的搜索引擎

Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。 Nutch的创始人是Doug Cutting,他同时也是Lucene、Hadoop和Avro开源项目的创始人。Nutch 诞生于2002年8月,是Apache旗下的一个用Java实现的…

我的KT库之----数据对象

了解或者认识KT: http://www.cnblogs.com/kingthy/archive/2011/08/08/2130973.html 在项目中如何使用KT? KT是一个库,所以将KT的dll文件引用到您的项目上即可使用KT里的函数功能。 本节将介绍大家认识KT库里的数据对象(DbObject)。KT里的数据…

System.Text.Json 自定义 Conveter

System.Text.Json 自定义 ConveterIntroSystem.Text.Json 作为现在 .NET 默认提供的高性能 JSON 序列化器,对于一些比较特殊类型支持的并不太好,业务需求中总是有各种各样的需要,很多时候就需要用到自定义 Converter ,对于微软新出…

jwt的token自动续约_JWT(JSON Web Token)自动延长到期时间

cchamberlain..6如果您使用的是节点(React/Redux/Universal JS),则可以安装npm i -S jwt-autorefresh.此库根据用户计算的访问令牌到期之前的秒数(基于令牌中编码的exp声明)计划刷新JWT令牌.它有一个广泛的测试套件,可以检查很多条件,以确保任何奇怪的活动都伴随着有关环境配置…

50张图,带你认识大学各专业

全世界只有3.14 % 的人关注了爆炸吧知识专业选的好每天像高考掐指一算,开学就近在眼前。当初纠结自己是考清华还是北大的那一幕也还是历历在目。不过,最后还是没有选择他们,一是因为北京离家太远,怕自己想家,二是因为他…

通达学院计算机组成原理试卷及答案,2021全国网络工程专业大学排名(5篇)

2018全国网络工程专业大学排名(5篇)高考填报志愿选择专业的话,考生需要了解你选择的专业在全国排名怎么样以及选择学校开设的专业在全国排名怎么样?高考升学网小编带你一起了解关于网络工程开设专业的大学排名。以及网络工程就业前景排名怎么样&#xff…

diff和patch工具使用(转)

本文转自 http://blog.chinaunix.net/uid-22848040-id-1767554.html diff和patch是一对工具,在数学上来说,diff是对两个集合的差运算,patch是对两个集合的和运算。 diff比较两个文件或文件集合的差异,并记录下来,生成…

自动布局

以前iOS 布局UI界面的经常编写大量的坐标计算代码为了保证在3.5 4.0屏幕上都有完美UI界面效果 有时需要分别为2中屏幕编写不同坐标计算代码(屏幕适配)Autolayout是一种自动布局 自ios7 Autolayout效率增加Autolayout功能比Autoresizing强大很多 黄色 控件的frame不匹配所添加的…