Unix 之父 Ken Thompson 的密碼在 4 天內被破解

Gino Crescoli發表於2019-10-12

最近,開發人員 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 Thompson 可能用大寫字母,甚至是特殊字元。如果這種情況,在現代 GPU 上窮舉搜尋一個 7 位的密碼也需要兩年的時間,甚至可能不止,所以放棄了分析。然而 10 月初,這個話題再次出現在了 The Unix Heritage Society 郵件列表上,Leah 分享了他破解的結果和進展,表示自己沒能夠破解 Ken Thompson 的密碼。當眾多黑客都陷入苦思時,澳大利亞工程師 Nigel Williams 宣稱終於破解 Ken Thompson 的密碼,他在郵件中做了描述:

KenS 的密碼結果是:ZghOT0eRm4U9s: p/q2-q4!

乍一看,p/q2-q4! 像是一個數學公式,而實際上是一種古老的符號,代表國際象棋中棋子的走位,意思是“線上的棋子向前移動 2 個方格Pawns in the line move forward 2 squares”。q 代表 Queen,p 代表 Pawn,這種走棋記法屬於國際象棋的代數記譜法。

皇后前面的兵Queen's Pawn Opening一般在遊戲開始時就佔據棋盤的中心位置,這是下棋最常用的策略,這也只能是 Ken Thompson 才獨有的想法,他是一個國際象棋愛好者,曾經是 1980 年第 3 屆全球計算機國際象棋錦標賽的冠軍,還是一個國際象棋程式 Belle 的作者之一。

根據 Williams 的說法,這個分析是在 4 天內使用了 AMD 的 RadeonRXVega 64 和分析軟體 Hashcat 完成。Ken Thompson 之後在郵件上得知這個事情後,他對 Williams 表示讚賞。

Unix 之父 Ken Thompson 的密碼在 4 天內被破解

訂閱“Linux 中國”官方小程式來檢視

相關文章