再古老的密碼都會有被破譯的一天。
UNIX的聯合創始人Ken Thompson的舊密碼終於被破解了。
該密碼屬於基於BSD的系統,這是UNIX的原始版本之一,曾被許多人使用。
那麼究竟是怎麼一回事呢?一起來看下面這個故事。
Leah破解密碼遇到難題
早在2014年,開發人員Leah Neukirchen在BSD 3版本中可公開獲得的原始碼樹中發現了一個有趣的“ / etc / passwd ”檔案,該檔案包含二十多位在計算機領域的大師級開發人員使用的舊密碼,包括Dennis Ritchie(C 語言之父),Steve Bourne(Bourne shell的建立者),Ken Thompson(Unix之父),Brian Kernighan(第一本C語言教程的作者之一)和Bill Joy(前任Sun的首席科學家、vi和csh的建立者)等。
由於該列表中的所有密碼均受到基於DES的crypt(3)演算法的保護,並且最多隻能包含8個字元,Leah感覺弱加密演算法破解起來應該比較容易,因此她使用John Ripper和hashcat之類的各種破解工具,成功破解了大部分密碼。
但其中仍有幾個密碼她無法破解,包括Ken Thompson和其他五位Unix開發人員。由於這個演算法是由Ken和Morris開發的,再加上她花了幾天時間對所有小寫字母和數字進行遍歷依然沒有任何收穫,Leah對這個密碼的好奇心更強烈了。
因此她猜想可能是大寫字母或者特殊字元,但在現代 GPU 上,窮舉搜尋一個 7 位的密碼,花費的時間要兩年以上,所以放棄了分析。
然而在本月初,Leah在Unix遺產學會(Unix Heritage Society)的郵件列表中釋出了此話題,並公佈此前她的所有破解結果和進展,並請求其他成員幫助破解剩餘的幾個密碼,其中就包括Ken的密碼。
Ken的密碼是國際象棋符號
此後僅6天,來自澳大利亞的工程師Williams聲稱其成功破解。
他使用了AMD Radeon RX Vega 64,以約930MH/s的速度執行hashcat,用了短短四天多一點的時間破解了密碼雜湊值。
湯普森的密碼顯示為“ p / q2-q4!a ”,乍一看這串密碼像是一個公式,實際上卻是一種古老的符號,代表國際象棋中走位的資訊,其中q代表Queen,p代表Pawn。Thompson為計算機國際象棋的發展做出過貢獻。
UNIX作為算機科學的先驅,其聯合創始人Ken Thompson不僅開發了Unix和Go程式語言,也是一個國際象棋愛好者,曾拿下1980年第3屆全球計算機國際象棋錦標賽的冠軍,同時還是一個國際象棋程式Belle的開發者之一。在得知此事後,他對Williams主動表示了祝賀。
在Willians公佈Ken的密碼的第二天,另一位郵件列表成員Arthur Krewat成功破解並提供了另外四個未破解的密碼。到目前為止,除了Bill Joy之外,其他成員的密碼均已被破解。
* 本文由看雪編輯 LYA 編譯自 The Hacker News,轉載請註明來源及作者。