专栏首页芋道源码1024Unix 之父的密码终于被破解咧

Unix 之父的密码终于被破解咧

最近,开发人员 Leah Neukirchen 在博客中称,Unix 之父 Ken Thompson 的旧密码被破解了。这是什么情况呢?

早在 2014 年时,Leah 在 BSD 3 源码树的文件转储中发现了一个 /etc/passwd 文件,其中包含了计算机领域中一些具有传奇性色彩的工程师的旧密码,如Dennis Ritchie、Ken Thompson、Brian Kernighan、Steve Bourne 和 Bill Joy 等开发 Unix 的大师。Leah 对他们使用的密码非常感兴趣,由于该密码用基于 DES 的 crypt(3) 算法加密后的散列(hash)值,而 crypt(3)是一种弱加密算法(最多限于 8 个字符),Leah 觉得破解起来应该比较容易,所以决定尝试。

Leah 使用各种破解工具,如 John the Ripper 和 hashcat。很快,Leah 就破解了其中一些比较脆弱的密码,破解的部分哈希码和密码的组合如下:

gfVwhuAMF0Trw: dmac Pb1AmSpsVPG0Y: uio ymVglQZjbWYDE: /.,/., c8UdIntIZCUIA: bourne AAZk9Aj5 / Ue0E: foobar E9i8fWghn1p / I: apr1744 IIVxQSvq1V9R2: axolotl 9EZLtSYjeEABE: network P0CHBwE / mB51k: whatnot Nc3IkFJyW2u7E: … hello olqH1vDqH38aw: sacristy 9ULn5cWTc0b9E: sherril. N33.MCNcTh5Qw: uucpuucp FH83PFo4z55cU :wendy !!! OVCPatZ8RFmFY: cowperso X.ZNnZrciWauE: 5% ghj IL2bmGECQJgbk: pdq; dq 4BkcEieEtjWXI: jilland1 8PYh / dUBQT9Ss :theik !!! lj1vXnxTAPnDc: sn74193n

这些破解出来的密码字符组成比较简单。不过,Ken Thompson 的密码却没能破解,尽管花了几天时间对所有小写字母和数字进行彻底遍历,结果仍没有用。因为如此,再加上这个算法是由 Ken 和 Morris 开发的,Leah 好奇心更加重,更加想要破解这个密码。他还发现,与其他密码散列方案(如 NTLM)相比,Crypt(3) 破解速度要慢得多。

Leah 猜想 Ken 可能用大写字母,甚至是特殊字符。如果这种情况,在现代 GPU 上穷举搜索一个 7 位的密码也需要两年的时间,甚至可能不止,所以放弃了分析。然而 10 月初,这个话题再次出现在了 The Unix Heritage Society 邮件列表上,Leah 分享了他破解的结果和进展,表示自己没能够破解 Ken 的密码。当众多黑客都陷入苦思时,澳大利亚工程师 Nigel Williams 宣称终于破解 Ken 的密码,他在邮件中做了描述:

Ken 的密码结果是:ZghOT0eRm4U9s:p/q2-q4!

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

皇后前面的兵(Queen's Pawn Opening)一般在游戏开始时就占据棋盘的中心位置,这是下棋最常用的策略,这也只能是 Ken 才独有的想法,Ken 是一个国际象棋爱好者,他曾经是 1980 年第 3 届全球计算机国际象棋锦标赛的冠军,还是一个国际象棋程序 Belle 的作者之一。

Ken 之后在邮件上得知这个事情后,他对 Williams 表示赞赏。

本文分享自微信公众号 - 芋道源码(javayuanma)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux身份鉴别机制概述

    Linux身份鉴别机制是保护操作系统安全的重要机制之一,是防止恶意用户进入系统的一个重要环节。早期的身份鉴别机制就是传统的UNIX身份鉴别机制,它采用口令加密并...

    Linux阅码场
  • rsync配置

    rsync error: error starting client-server protocol (code 5) at main.c(1648) send...

    陈雷雷
  • 日志采集中的关键技术分析

    日志从最初面向人类演变到现在的面向机器发生了巨大的变化。最初的日志主要的消费者是软件工程师,他们通过读取日志来排查问题,如今,大量机器日夜处理日志数...

    Linux阅码场
  • Android架构纵横谈之——软件自愈能力 (2)

    上回书(Android架构纵横谈之——软件自愈能力 (1))我们说到Android里的init会监测init.rc中启动的service并根据情况重启之。今回书...

    Linux阅码场
  • 黄东升: inotify学习笔记

    inotify是Linux中用于监控文件系统变化的一个框架,不同于前一个框架dnotify, inotify可以实现基于inode的文件监控。也就是说监...

    Linux阅码场
  • Linux三剑客入门

    grep命令是Linux系统中最重要的命令之一,功能是从文本文件或管道数据流中筛选匹配的行和数据,如果再配合正则表达式,功能十分强大,是Linux运维人员必备的...

    超蛋lhy
  • Shell脚本处理浮点数的运算和比较实例

    这篇文章主要介绍了Shell脚本处理浮点数的运算和比较实例,文中分别使用了bc或awk实现,需要的朋友可以参考下。

    Linux阅码场
  • Hbase入门(三)——数据模型

    Hbase最核心但也是最难理解的就是数据模型,由于与传统的关系型数据库不同,虽然Hbase也有表(Table),也有行(Row)和列(Column),但是与关系...

    实时计算
  • 赵晨雨:从文件系统的数据结构看Linux内核设计

    赵晨雨:西安邮电大学2018级陈莉君教授研究生,天真无邪小白一枚,已经爱上linux内核而不能自拔,正在成长为内核狂热爱好者?

    Linux阅码场
  • Semaphore流量控制和源码分析

    原文链接:https://www.jhonrain.org/2019/09/18/高并发-高并发-Semaphore源码解析和使用场景/

    用户6391658

扫码关注云+社区

领取腾讯云代金券